From ea97ff8180ad163def4bdca2e2541bd8dd40e851 Mon Sep 17 00:00:00 2001 From: ermouth Date: Sat, 16 Apr 2022 01:54:38 +0300 Subject: [PATCH] 1.20.5 No more browser tab stalls in Chrome when undumping zips containing tens of thousands small docs. --- photon.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/photon.json b/photon.json index 11b9a26..65c027b 100644 --- a/photon.json +++ b/photon.json @@ -1,7 +1,7 @@ { "_id": "_design/photon", "name": "Photon 1.20 \n(c) 2022 ermouth \n\nRun attachment `index.html` to start Photon. \n\nSee https://github.com/ermouth/couch-photon \nrepo for more details.", - "version": "1.20.3", + "version": "1.20.5", "rewrites": [ { "from": "/", @@ -37,13 +37,13 @@ "shows": { "home": "function (doc,req) {\n \n // Processes _rewrite request to domain root,\n // used if Photon runs through vhost.\n // If json requested imitates CouchDB root,\n // otherwise redirects to Photon.\n \n\t\tvar info = req.info,\n\t\t\t\tuuid = req.uuid,\n\t\t\t\trejson = /(application|text)\\/json/;\n\n\t\t// We have request to DB root, fake CouchDB root response\n\t\tif (!req.headers.Accept || rejson.test(req.headers.Accept+'')) return {json:{\n\t\t\tcouchdb: \t\t'Welcome',\n\t\t\tuuid: \t\t\tuuid,\n\t\t\tversion: \t\t'1.6.1',\n\t\t\tvendor: {\n\t\t\t\tname: \t\t'The Apache Software Foundation',\n\t\t\t\tversion: \t'1.6.1'\n\t\t\t}\n\t\t}};\n\n\t\t// Page requested, redirecting to Photon\n\t\treturn {\n\t\t\tcode:\t\t\t302,\n\t\t\theaders:\t{Location:'/_photon/'},\n\t\t\tbody:\t\t\t''\n\t\t}\n\t}" }, - "stamp": 1649163917852, + "stamp": 1650063095526, "validate_doc_update": "function (newDoc,oldDoc,userCtx,secObj) {\n\n\tvar members = (secObj||{}).members || {names:[], roles:[]};\n \n // Pass through if bucket is already protected by Couch\n if (members.names.length || members.roles.length) {\n return;\n }\n\t\n // For public bucket only allow admins to write\n\tif (!_admin()) throw({forbidden: 'Insufficient privileges'});\n \n return;\n \n // - - - - - - - - - - - -\n \n function _admin() {\n\t\t// see if the user is a server admin\n\t\tif(userCtx.roles.indexOf('_admin') !== -1) {\n\t\t\treturn true; // a server admin\n\t\t}\n\n\t\t// see if the user a database admin specified by name\n\t\tif(secObj && secObj.admins && secObj.admins.names) {\n\t\t\tif(secObj.admins.names.indexOf(userCtx.name) !== -1) {\n\t\t\t\treturn true; // database admin\n\t\t\t}\n\t\t}\n\n\t\t// see if the user a database admin specified by role\n\t\tif(secObj && secObj.admins && secObj.admins.roles) {\n\t\t\tvar db_roles = secObj.admins.roles;\n\t\t\tfor(var idx = 0; idx < userCtx.roles.length; idx++) {\n\t\t\t\tvar user_role = userCtx.roles[idx];\n\t\t\t\tif(db_roles.indexOf(user_role) !== -1) {\n\t\t\t\t\treturn true; // role matches!\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false; // default to no admin\n\t}\n\n}", - "versions": "## 1.20.3\n\nA lot of minor dark theme related UI tweaks here and there.\n\n## 1.20.2\n\nNew feature: dark theme, controlled in Photon config.\n\n## 1.19.10\n\nMango validator now catches invalid/misspelled $ operators.\n\n## 1.19.9\n\nAdded response size/duration indicator at the bottom of \nview results. Some refactoring, moving from ES5 to ES6.\n\n## 1.19.8\n\nFixed doc clone dlg, copying a design doc is now ok.\n\nPhoton default repo URL was changed, updates are now delivered \nstrictly over https.\n\n## 1.19.7\n\nImproved DB list group segmentation.\n\n## 1.19.6\n\nFixed DB info rolldown z-index issues.\n\n## 1.19.5\n\nAdded horizontal rulers to DB groups, for better group demarcation. \nSwitching to grid view now tries to guess most relevant columns.\nMinor Linux FF-related fixes.\n\n## 1.19.2\n\nNew feature: expandable DB auto-groups. Grouping makes Photon\ncomfortable for nodes with thousands DBs. Grouping mode and limits \nare tunable in Photon settings.\n\nDoc list for `_users` doesn’t read security descriptors for all\nDBs any more, only first 100 of not present are read.\n\n## 1.18.7\n\nMinor tweaks and fixes.\n\n## 1.18.3\n\nFixed corrupted long DB names display in old Safari. Fixed \nintermittent X axis scroll appeared here and there in Win/Ubuntu\nFF with native scroll on.\n\n## 1.18.2\n\nDB list render performance improved. Starred DBs read bucket info \nand security status regardless of Photon settings. DB info block\nnow shows security settings.\n\n## 1.17\n\nAdded Mango syntax validator into query editor. Added\nPing session config option. \n\nCouchDB 3.2 related: incompatible CSP config handling.\n\nAdded Ctrl-S and Ctrl-Z (Cmd-S and Cmd-Z for Mac) global keyboard \nshortcuts for config, doc and attachment editors.\n\nCompatibility with old IEs is no more maintained.\n\n## 1.16\n\nAdded Undo history panel into doc and config editors. The panel \nis a list of all json changes, and in most cases allows to \nundo json tree changes out of order.\n\n## 1.15\n\nAdded left panel / top bar switch to match wide monitors better. \nVertical panel only available for 1420px+ wide screens.\n\nMax 15 tabs message removed, older tabs are auto-closed if needed.\n\nBucket stats numbers in DB list are clickable and show DB info.\n\nAdded typecast ` /cast` modifiers for selectors in grid view.\n\nAdded [Clone...] button in doc editor; basically `Save as...`.\n\nAdded [../] button in views, which opens bucket root doc list.\n\n## 1.14\n\nAdded grid (table) representation mode for docs lists, view and \nMango queries. Tables are copy/pastable to Excel. \n\nAdded Include docs option for `/_all_docs` view, it is turned on \nautomatically for grid view mode.\n\nViews now memoize their particular source code editor state, as \nwell as reduce level and grid settings.\n\n## 1.12\n\nAdded ZIP dump/restore. A [Delete DB] dlg now offers to re-create \nDB(s) after deletion. Several JSON editor fixes and improvements. \nTask list grouping improved. \n\nTT Mono font excluded from the Photon package. \n\n## 1.11\n\nAdded `/_changes` feed view, added compound index stats for \nddocs view.\n\n## 1.10\n\nAdded index stats for each ddoc in ddocs view; also a lot of \nslight UI improvements.\n\n## 1.9\n\nAdded: group DB sync; Couch perf test; CouchDB v3 support. \n\n## 1.8\n\nImproved JSON editor, added `/_stats` graphs.\n\n## 1.7\n\nAdded structured diff for doc revisions.\n\n## 1.6\n\nNew features: editor for text-based attachments and doc purge. \nDB view received `db/_design_docs` and `db/_local_docs` modes.\n\n## 1.4\n\nAdded access restrictions, Photon no more starts without \nauthorization.\n\n## 1.2\n\nAdded in-place editors for Erlang, JS and Mango view syntax.\n\n## 0.9.99\n\nMore or less usable version with all basic features. March, 2018.", + "versions": "## 1.20.5\n\nNo more browser tab stalls in Chrome when undumping zips\ncontaining tens of thousands small docs.\n\n## 1.20.3\n\nA lot of minor dark theme related UI tweaks here and there.\n\n## 1.20.2\n\nNew feature: dark theme, controlled in Photon config.\n\n## 1.19.10\n\nMango validator now catches invalid/misspelled $ operators.\n\n## 1.19.9\n\nAdded response size/duration indicator at the bottom of \nview results. Some refactoring, moving from ES5 to ES6.\n\n## 1.19.8\n\nFixed doc clone dlg, copying a design doc is now ok.\n\nPhoton default repo URL was changed, updates are now delivered \nstrictly over https.\n\n## 1.19.7\n\nImproved DB list group segmentation.\n\n## 1.19.6\n\nFixed DB info rolldown z-index issues.\n\n## 1.19.5\n\nAdded horizontal rulers to DB groups, for better group demarcation. \nSwitching to grid view now tries to guess most relevant columns.\nMinor Linux FF-related fixes.\n\n## 1.19.2\n\nNew feature: expandable DB auto-groups. Grouping makes Photon\ncomfortable for nodes with thousands DBs. Grouping mode and limits \nare tunable in Photon settings.\n\nDoc list for `_users` doesn’t read security descriptors for all\nDBs any more, only first 100 of not present are read.\n\n## 1.18.7\n\nMinor tweaks and fixes.\n\n## 1.18.3\n\nFixed corrupted long DB names display in old Safari. Fixed \nintermittent X axis scroll appeared here and there in Win/Ubuntu\nFF with native scroll on.\n\n## 1.18.2\n\nDB list render performance improved. Starred DBs read bucket info \nand security status regardless of Photon settings. DB info block\nnow shows security settings.\n\n## 1.17\n\nAdded Mango syntax validator into query editor. Added\nPing session config option. \n\nCouchDB 3.2 related: incompatible CSP config handling.\n\nAdded Ctrl-S and Ctrl-Z (Cmd-S and Cmd-Z for Mac) global keyboard \nshortcuts for config, doc and attachment editors.\n\nCompatibility with old IEs is no more maintained.\n\n## 1.16\n\nAdded Undo history panel into doc and config editors. The panel \nis a list of all json changes, and in most cases allows to \nundo json tree changes out of order.\n\n## 1.15\n\nAdded left panel / top bar switch to match wide monitors better. \nVertical panel only available for 1420px+ wide screens.\n\nMax 15 tabs message removed, older tabs are auto-closed if needed.\n\nBucket stats numbers in DB list are clickable and show DB info.\n\nAdded typecast ` /cast` modifiers for selectors in grid view.\n\nAdded [Clone...] button in doc editor; basically `Save as...`.\n\nAdded [../] button in views, which opens bucket root doc list.\n\n## 1.14\n\nAdded grid (table) representation mode for docs lists, view and \nMango queries. Tables are copy/pastable to Excel. \n\nAdded Include docs option for `/_all_docs` view, it is turned on \nautomatically for grid view mode.\n\nViews now memoize their particular source code editor state, as \nwell as reduce level and grid settings.\n\n## 1.12\n\nAdded ZIP dump/restore. A [Delete DB] dlg now offers to re-create \nDB(s) after deletion. Several JSON editor fixes and improvements. \nTask list grouping improved. \n\nTT Mono font excluded from the Photon package. \n\n## 1.11\n\nAdded `/_changes` feed view, added compound index stats for \nddocs view.\n\n## 1.10\n\nAdded index stats for each ddoc in ddocs view; also a lot of \nslight UI improvements.\n\n## 1.9\n\nAdded: group DB sync; Couch perf test; CouchDB v3 support. \n\n## 1.8\n\nImproved JSON editor, added `/_stats` graphs.\n\n## 1.7\n\nAdded structured diff for doc revisions.\n\n## 1.6\n\nNew features: editor for text-based attachments and doc purge. \nDB view received `db/_design_docs` and `db/_local_docs` modes.\n\n## 1.4\n\nAdded access restrictions, Photon no more starts without \nauthorization.\n\n## 1.2\n\nAdded in-place editors for Erlang, JS and Mango view syntax.\n\n## 0.9.99\n\nMore or less usable version with all basic features. March, 2018.", "_attachments": { "css/photon.css": { "content_type": "text/css", - "data": "LyogUGhvdG9uIDEuMjAgQ1NTICovCkBjaGFyc2V0ICJVVEYtOCI7Cip7Ym94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KaHRtbHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59CmJvZHl7cGFkZGluZzowOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpub25lO2ZvbnQ6MTlweCAnLWFwcGxlLXN5c3RlbScsICdCbGlua01hY1N5c3RlbUZvbnQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnU2Vnb2UgVUknLCBVYnVudHUsIFJvYm90bywgSGVsdmV0aWNhLCBUYWhvbWEsIEFyaWFsLCBWZXJkYW5hLCBTYW5zLXNlcmlmO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4zZW07YmFja2dyb3VuZDojZmZmO2hlaWdodDoxMDAlfQpzZWN0aW9uLCBkaXYsIHNwYW57cG9zaXRpb246cmVsYXRpdmV9CmgxLCBoMiwgaDMsIGg0e2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW46MC40ZW0gMCAwLjNlbSAwO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4xZW19Cmgxe2ZvbnQtc2l6ZToyLjVlbX0KaDJ7Zm9udC1zaXplOjJlbX0KaDN7Zm9udC1zaXplOjEuNGVtfQpoNHtmb250LXNpemU6MS4xZW19CmRpdiA+IGgxOm50aC1vZi10eXBlKDEpIHttYXJnaW4tdG9wOjAuMWVtfQpkaXYgPiBoMjpudGgtb2YtdHlwZSgxKSB7bWFyZ2luLXRvcDowLjFlbX0KZGl2ID4gaDM6bnRoLW9mLXR5cGUoMSkge21hcmdpbi10b3A6MC4xZW19CnB7Zm9udDoxZW0gO2xpbmUtaGVpZ2h0OjEuNGVtO21hcmdpbjowLjJlbSAwIDAuNWVtIDB9Cmxpe21hcmdpbi1sZWZ0OjFlbX0Kc21hbGx7Zm9udC1zaXplOjkwJX0KdGFibGV7Ym9yZGVyOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2JvcmRlci1zcGFjaW5nOjB9CnRke3ZlcnRpY2FsLWFsaWduOnRvcDtsaW5lLWhlaWdodDoxLjJlbX0KdGh7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMmVtfQouaW52aXN7dmlzaWJpbGl0eTpoaWRkZW59Ci5oaWRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Ci5jcHtjdXJzb3I6cG9pbnRlcn0KLmNte2N1cnNvcjptb3ZlfQouY3p7Y3Vyc29yOnpvb20taW59Ci5jeHtjdXJzb3I6Y29sLXJlc2l6ZX0KLndoaXRle2NvbG9yOndoaXRlIWltcG9ydGFudH0KLmJnLXdoaXRle2JhY2tncm91bmQtY29sb3I6d2hpdGUhaW1wb3J0YW50fQouZ3JheS0ye2NvbG9yOiMxYzIwMjYhaW1wb3J0YW50fQouYmctZ3JheS0ye2JhY2tncm91bmQtY29sb3I6IzFjMjAyNiFpbXBvcnRhbnR9Ci5ncmF5LTF7Y29sb3I6IzM4NDE0YyFpbXBvcnRhbnR9Ci5iZy1ncmF5LTF7YmFja2dyb3VuZC1jb2xvcjojMzg0MTRjIWltcG9ydGFudH0KLmdyYXkwe2NvbG9yOiM0ZDVhNmEhaW1wb3J0YW50fQouYmctZ3JheTB7YmFja2dyb3VuZC1jb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmdyYXkxe2NvbG9yOiM4ODkyOWYhaW1wb3J0YW50fQouYmctZ3JheTF7YmFja2dyb3VuZC1jb2xvcjojODg5MjlmIWltcG9ydGFudH0KLmdyYXkye2NvbG9yOiNiOWMwY2IhaW1wb3J0YW50fQouYmctZ3JheTJ7YmFja2dyb3VuZC1jb2xvcjojYjljMGNiIWltcG9ydGFudH0KLmdyYXkze2NvbG9yOiNkMGQ2ZGQhaW1wb3J0YW50fQouYmctZ3JheTN7YmFja2dyb3VuZC1jb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXk0e2NvbG9yOiNlM2U4ZWIhaW1wb3J0YW50fQouYmctZ3JheTR7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmdyYXk1e2NvbG9yOnJnYmEoMTM2LCAxNDYsIDE1OSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEzNiwgMTQ2LCAxNTksIDAuMzUpIWltcG9ydGFudH0KLmdyYXk2e2NvbG9yOnJnYmEoMTg1LCAxOTIsIDIwMywgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpIWltcG9ydGFudH0KLmdyYXk3e2NvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJsdWUtMntjb2xvcjojMTYzMjVhIWltcG9ydGFudH0KLmJnLWJsdWUtMntiYWNrZ3JvdW5kLWNvbG9yOiMxNjMyNWEhaW1wb3J0YW50fQouYmx1ZS0xe2NvbG9yOiMyMzRmOGYhaW1wb3J0YW50fQouYmctYmx1ZS0xe2JhY2tncm91bmQtY29sb3I6IzIzNGY4ZiFpbXBvcnRhbnR9Ci5ibHVlMHtjb2xvcjojMmQ2NmI4IWltcG9ydGFudH0KLmJnLWJsdWUwe2JhY2tncm91bmQtY29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5ibHVlMXtjb2xvcjojNmI5ZmRiIWltcG9ydGFudH0KLmJnLWJsdWUxe2JhY2tncm91bmQtY29sb3I6IzZiOWZkYiFpbXBvcnRhbnR9Ci5ibHVlMntjb2xvcjojOWVjZGY4IWltcG9ydGFudH0KLmJnLWJsdWUye2JhY2tncm91bmQtY29sb3I6IzllY2RmOCFpbXBvcnRhbnR9Ci5ibHVlM3tjb2xvcjojYjdkYmZiIWltcG9ydGFudH0KLmJnLWJsdWUze2JhY2tncm91bmQtY29sb3I6I2I3ZGJmYiFpbXBvcnRhbnR9Ci5ibHVlNHtjb2xvcjojY2JlN2ZlIWltcG9ydGFudH0KLmJnLWJsdWU0e2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5ibHVlNXtjb2xvcjpyZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlNntjb2xvcjpyZ2JhKDE1OCwgMjA1LCAyNDgsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU2e2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlN3tjb2xvcjpyZ2JhKDIwMywgMjMxLCAyNTQsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KSFpbXBvcnRhbnR9Ci5jeWFuLTJ7Y29sb3I6IzA5NTQ3MCFpbXBvcnRhbnR9Ci5iZy1jeWFuLTJ7YmFja2dyb3VuZC1jb2xvcjojMDk1NDcwIWltcG9ydGFudH0KLmN5YW4tMXtjb2xvcjojMGU4MmFkIWltcG9ydGFudH0KLmJnLWN5YW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMwZTgyYWQhaW1wb3J0YW50fQouY3lhbjB7Y29sb3I6IzEyYTVkYyFpbXBvcnRhbnR9Ci5iZy1jeWFuMHtiYWNrZ3JvdW5kLWNvbG9yOiMxMmE1ZGMhaW1wb3J0YW50fQouY3lhbjF7Y29sb3I6IzVkYzVlOCFpbXBvcnRhbnR9Ci5iZy1jeWFuMXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZGM1ZTghaW1wb3J0YW50fQouY3lhbjJ7Y29sb3I6IzlhZTBmMSFpbXBvcnRhbnR9Ci5iZy1jeWFuMntiYWNrZ3JvdW5kLWNvbG9yOiM5YWUwZjEhaW1wb3J0YW50fQouY3lhbjN7Y29sb3I6I2IyZTlmNiFpbXBvcnRhbnR9Ci5iZy1jeWFuM3tiYWNrZ3JvdW5kLWNvbG9yOiNiMmU5ZjYhaW1wb3J0YW50fQouY3lhbjR7Y29sb3I6I2M2ZjBmYSFpbXBvcnRhbnR9Ci5iZy1jeWFuNHtiYWNrZ3JvdW5kLWNvbG9yOiNjNmYwZmEhaW1wb3J0YW50fQouY3lhbjV7Y29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmJnLWN5YW41e2JhY2tncm91bmQtY29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmN5YW42e2NvbG9yOnJnYmEoMTU0LCAyMjQsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMjI0LCAyNDEsIDAuMzUpIWltcG9ydGFudH0KLmN5YW43e2NvbG9yOnJnYmEoMTk4LCAyNDAsIDI1MCwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE5OCwgMjQwLCAyNTAsIDAuMzUpIWltcG9ydGFudH0KLnRlYWwtMntjb2xvcjojMGM1NDQ4IWltcG9ydGFudH0KLmJnLXRlYWwtMntiYWNrZ3JvdW5kLWNvbG9yOiMwYzU0NDghaW1wb3J0YW50fQoudGVhbC0xe2NvbG9yOiMxNThlN2EhaW1wb3J0YW50fQouYmctdGVhbC0xe2JhY2tncm91bmQtY29sb3I6IzE1OGU3YSFpbXBvcnRhbnR9Ci50ZWFsMHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmJnLXRlYWwwe2JhY2tncm91bmQtY29sb3I6IzFiYmJhMCFpbXBvcnRhbnR9Ci50ZWFsMXtjb2xvcjojNjJkMmMwIWltcG9ydGFudH0KLmJnLXRlYWwxe2JhY2tncm91bmQtY29sb3I6IzYyZDJjMCFpbXBvcnRhbnR9Ci50ZWFsMntjb2xvcjojOWNlNWRhIWltcG9ydGFudH0KLmJnLXRlYWwye2JhY2tncm91bmQtY29sb3I6IzljZTVkYSFpbXBvcnRhbnR9Ci50ZWFsM3tjb2xvcjojYjdlY2UxIWltcG9ydGFudH0KLmJnLXRlYWwze2JhY2tncm91bmQtY29sb3I6I2I3ZWNlMSFpbXBvcnRhbnR9Ci50ZWFsNHtjb2xvcjojY2RmMmU2IWltcG9ydGFudH0KLmJnLXRlYWw0e2JhY2tncm91bmQtY29sb3I6I2NkZjJlNiFpbXBvcnRhbnR9Ci50ZWFsNXtjb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQouYmctdGVhbDV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDZ7Y29sb3I6cmdiYSgxNTYsIDIyOSwgMjE4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsNntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU2LCAyMjksIDIxOCwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDd7Y29sb3I6cmdiYSgyMDUsIDI0MiwgMjMwLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LCAyNDIsIDIzMCwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW4tMntjb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmJnLWdyZWVuLTJ7YmFja2dyb3VuZC1jb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmdyZWVuLTF7Y29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5iZy1ncmVlbi0xe2JhY2tncm91bmQtY29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5ncmVlbjB7Y29sb3I6IzY1OWMxMyFpbXBvcnRhbnR9Ci5iZy1ncmVlbjB7YmFja2dyb3VuZC1jb2xvcjojNjU5YzEzIWltcG9ydGFudH0KLmdyZWVuMXtjb2xvcjojOWFjNTVjIWltcG9ydGFudH0KLmJnLWdyZWVuMXtiYWNrZ3JvdW5kLWNvbG9yOiM5YWM1NWMhaW1wb3J0YW50fQouZ3JlZW4ye2NvbG9yOiNjNmU2OTchaW1wb3J0YW50fQouYmctZ3JlZW4ye2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5ncmVlbjN7Y29sb3I6I2Q0ZWViMSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjN7YmFja2dyb3VuZC1jb2xvcjojZDRlZWIxIWltcG9ydGFudH0KLmdyZWVuNHtjb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVuNHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzYhaW1wb3J0YW50fQouZ3JlZW41e2NvbG9yOnJnYmEoMTU0LCAxOTcsIDkyLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMTk3LCA5MiwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW42e2NvbG9yOnJnYmEoMTk4LCAyMzAsIDE1MSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JlZW42e2JhY2tncm91bmQtY29sb3I6cmdiYSgxOTgsIDIzMCwgMTUxLCAwLjM1KSFpbXBvcnRhbnR9Ci5ncmVlbjd7Y29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNCwgMjQ1LCAxOTgsIDAuMzUpIWltcG9ydGFudH0KLnllbGxvdy0ye2NvbG9yOiM4ZDVkMDkhaW1wb3J0YW50fQouYmcteWVsbG93LTJ7YmFja2dyb3VuZC1jb2xvcjojOGQ1ZDA5IWltcG9ydGFudH0KLnllbGxvdy0xe2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQouYmcteWVsbG93LTF7YmFja2dyb3VuZC1jb2xvcjojY2M4NjBkIWltcG9ydGFudH0KLnllbGxvdzB7Y29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cwe2JhY2tncm91bmQtY29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci55ZWxsb3cxe2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQouYmcteWVsbG93MXtiYWNrZ3JvdW5kLWNvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoueWVsbG93Mntjb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLXllbGxvdzJ7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLnllbGxvdzN7Y29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cze2JhY2tncm91bmQtY29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci55ZWxsb3c0e2NvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQouYmcteWVsbG93NHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQoueWVsbG93NXtjb2xvcjpyZ2JhKDI0OCwgMjAxLCA4MiwgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ4LCAyMDEsIDgyLCAwLjM1KSFpbXBvcnRhbnR9Ci55ZWxsb3c2e2NvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQoueWVsbG93N3tjb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLmJnLXllbGxvdzd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZS0ye2NvbG9yOiNhMTQwMDUhaW1wb3J0YW50fQouYmctb3JhbmdlLTJ7YmFja2dyb3VuZC1jb2xvcjojYTE0MDA1IWltcG9ydGFudH0KLm9yYW5nZS0xe2NvbG9yOiNlMTVhMDchaW1wb3J0YW50fQouYmctb3JhbmdlLTF7YmFja2dyb3VuZC1jb2xvcjojZTE1YTA3IWltcG9ydGFudH0KLm9yYW5nZTB7Y29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uwe2JhY2tncm91bmQtY29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5vcmFuZ2Uxe2NvbG9yOiNmYjlmNjchaW1wb3J0YW50fQouYmctb3JhbmdlMXtiYWNrZ3JvdW5kLWNvbG9yOiNmYjlmNjchaW1wb3J0YW50fQoub3JhbmdlMntjb2xvcjojZmVjMjllIWltcG9ydGFudH0KLmJnLW9yYW5nZTJ7YmFja2dyb3VuZC1jb2xvcjojZmVjMjllIWltcG9ydGFudH0KLm9yYW5nZTN7Y29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uze2JhY2tncm91bmQtY29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5vcmFuZ2U0e2NvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQouYmctb3JhbmdlNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQoub3JhbmdlNXtjb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLmJnLW9yYW5nZTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZTZ7Y29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2U2e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5vcmFuZ2U3e2NvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQouYmctb3JhbmdlN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQoucmVkLTJ7Y29sb3I6Izc2MTcyNyFpbXBvcnRhbnR9Ci5iZy1yZWQtMntiYWNrZ3JvdW5kLWNvbG9yOiM3NjE3MjchaW1wb3J0YW50fQoucmVkLTF7Y29sb3I6I2FkMjIzOSFpbXBvcnRhbnR9Ci5iZy1yZWQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNhZDIyMzkhaW1wb3J0YW50fQoucmVkMHtjb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLmJnLXJlZDB7YmFja2dyb3VuZC1jb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLnJlZDF7Y29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5iZy1yZWQxe2JhY2tncm91bmQtY29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5yZWQye2NvbG9yOiNmYWFiYjghaW1wb3J0YW50fQouYmctcmVkMntiYWNrZ3JvdW5kLWNvbG9yOiNmYWFiYjghaW1wb3J0YW50fQoucmVkM3tjb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLmJnLXJlZDN7YmFja2dyb3VuZC1jb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLnJlZDR7Y29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5iZy1yZWQ0e2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5yZWQ1e2NvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQouYmctcmVkNXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQoucmVkNntjb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLmJnLXJlZDZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLnJlZDd7Y29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1yZWQ3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQtMntjb2xvcjojNGMyMzYzIWltcG9ydGFudH0KLmJnLXZpb2xldC0ye2JhY2tncm91bmQtY29sb3I6IzRjMjM2MyFpbXBvcnRhbnR9Ci52aW9sZXQtMXtjb2xvcjojNzIzNTk0IWltcG9ydGFudH0KLmJnLXZpb2xldC0xe2JhY2tncm91bmQtY29sb3I6IzcyMzU5NCFpbXBvcnRhbnR9Ci52aW9sZXQwe2NvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQouYmctdmlvbGV0MHtiYWNrZ3JvdW5kLWNvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQoudmlvbGV0MXtjb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLmJnLXZpb2xldDF7YmFja2dyb3VuZC1jb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLnZpb2xldDJ7Y29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQye2JhY2tncm91bmQtY29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci52aW9sZXQze2NvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQouYmctdmlvbGV0M3tiYWNrZ3JvdW5kLWNvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQoudmlvbGV0NHtjb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLmJnLXZpb2xldDR7YmFja2dyb3VuZC1jb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLnZpb2xldDV7Y29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQ1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQ2e2NvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctdmlvbGV0NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQoudmlvbGV0N3tjb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLmJnLXZpb2xldDd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLm8we29wYWNpdHk6MC4wMSFpbXBvcnRhbnR9Ci5vMTB7b3BhY2l0eTowLjEhaW1wb3J0YW50fQoubzIwe29wYWNpdHk6MC4yIWltcG9ydGFudH0KLm8zMHtvcGFjaXR5OjAuMyFpbXBvcnRhbnR9Ci5vNDB7b3BhY2l0eTowLjQhaW1wb3J0YW50fQoubzUwe29wYWNpdHk6MC41IWltcG9ydGFudH0KLm82MHtvcGFjaXR5OjAuNiFpbXBvcnRhbnR9Ci5vNzB7b3BhY2l0eTowLjchaW1wb3J0YW50fQoubzgwe29wYWNpdHk6MC44IWltcG9ydGFudH0KLm85MHtvcGFjaXR5OjAuOSFpbXBvcnRhbnR9Ci5vMTAwe29wYWNpdHk6MSFpbXBvcnRhbnR9Ci5sZ3JheXtjb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXl7Y29sb3I6Izg4OTI5ZiFpbXBvcnRhbnR9Ci54Z3JheXtjb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmJsdWV7Y29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5za3libHVle2NvbG9yOiM0M2E0ZWYhaW1wb3J0YW50fQouc2t5e2NvbG9yOiM3NmM2ZjMhaW1wb3J0YW50fQoudGVhbHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmxncmVlbntjb2xvcjojYzZlNjk3IWltcG9ydGFudH0KLmdyZWVue2NvbG9yOiM2NTljMTMhaW1wb3J0YW50fQoueWVsbG93e2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoub3Jhbmdle2NvbG9yOiNmODc0MjMhaW1wb3J0YW50fQoucGlua3tjb2xvcjojZmFhYmI4IWltcG9ydGFudH0KLnNhbG1vbntjb2xvcjojZmRhMDk2IWltcG9ydGFudH0KLmJyb3due2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQoucmVke2NvbG9yOiNkNjJjNDkhaW1wb3J0YW50fQouYmctbGdyYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJnLWdyYXl7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmJnLWxibHVle2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5iZy1sZ3JlZW57YmFja2dyb3VuZC1jb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVue2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3d7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZWMyOWUhaW1wb3J0YW50fQouYmctY2hhbGt7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjMzLCAxMjcsIDAuMzUpIWltcG9ydGFudH0KLmJnLWxzYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjExKSFpbXBvcnRhbnR9Ci5iZy1zYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjUpIWltcG9ydGFudH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1yYW5nZV0sIHRleHRhcmVhey13ZWJraXQtYXBwZWFyYW5jZTpub25lO3RyYW5zaXRpb246Y29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzLCBib3JkZXItY29sb3IgMC4yc30KaW5wdXQsIHNlbGVjdCwgb3B0aW9uLCBidXR0b257Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtvdXRsaW5lOm5vbmUhaW1wb3J0YW50fQppbnB1dFt0eXBlPXJhZGlvXSwgaW5wdXRbdHlwZT1jaGVja2JveF0ge2FjY2VudC1jb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgaW5wdXRbdHlwZT1udW1iZXJdLCBpbnB1dFt0eXBlPWVtYWlsXSwgaW5wdXRbdHlwZT10ZWxdLCBpbnB1dFt0eXBlPWRhdGVdLCBpbnB1dFt0eXBlPXRpbWVdIHtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlci1jb2xvcjojZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7cG9zaXRpb246cmVsYXRpdmV9CmlucHV0W3R5cGU9bnVtYmVyXSB7cGFkZGluZzowLjM1ZW0gMC4yZW0gMC4zNWVtIDAuNGVtfQppbnB1dDpkaXNhYmxlZCwgc2VsZWN0OmRpc2FibGVkLCBvcHRpb246ZGlzYWJsZWQsIHRleHRhcmVhOmRpc2FibGVkLCBidXR0b246ZGlzYWJsZWR7Y29sb3I6Izg4OTI5Zjtib3JkZXItY29sb3I6I2I5YzBjYiFpbXBvcnRhbnQ7b3BhY2l0eTowLjc1fQppbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9YnV0dG9uXSk6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjojOWVjZGY4fQo6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNiOWMwY2J9CjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KdGV4dGFyZWF7Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtwYWRkaW5nOjAuMzVlbSAwLjRlbSAwLjM1ZW0gMC40ZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7d2lkdGg6OTAlO21pbi1oZWlnaHQ6NjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0KdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzllY2RmOH0Kc2VsZWN0e21hcmdpbjo0cHggMCA0cHggMH0Kc2VsZWN0IG9wdGlvbntwYWRkaW5nOjJweCAzcHggM3B4IDNweH0Kc2VsZWN0W211bHRpcGxlXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO21hcmdpbjo0cHggMCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0KbGFiZWwsIC5sYWJlbHtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOiM4ODkyOWY7bWFyZ2luOjNweCAwIDRweCAwfQppbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWx7ZGlzcGxheTppbmxpbmV9CmlucHV0W3R5cGU9J3JhZGlvJ10gKyBsYWJlbHtkaXNwbGF5OmlubGluZX0KZmllbGRzZXR7Ym9yZGVyLXJhZGl1czoycHg7bWFyZ2luOjBweCAwIDIwcHggMDtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzoxMHB4fQpsZWdlbmR7cGFkZGluZzowIDJweCAwIDJweH0KaW5wdXRbdHlwZT1idXR0b25dOmZvY3VzLCBidXR0b246Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNGQ1YTZhO2JvcmRlci1jb2xvcjojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MC4zZW0gMC43ZW0gMC40ZW0gMC43ZW07bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViO3RyYW5zaXRpb246Ym9yZGVyIDAuM3MsIGNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcywgYmFja2dyb3VuZC1jb2xvciAwLjNzOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZX0KaW5wdXRbdHlwZT0nYnV0dG9uJ106aG92ZXIsIC5idXR0b246aG92ZXIsIGJ1dHRvbjpob3Zlcntib3JkZXItY29sb3I6IzZiOWZkYjtjb2xvcjojMmQ2NmI4O2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7b3BhY2l0eToxfQppbnB1dFt0eXBlPSdidXR0b24nXTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0nYnV0dG9uJ106ZGlzYWJsZWQ6aG92ZXIsIGJ1dHRvbjpkaXNhYmxlZCwgYnV0dG9uOmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVye2JvcmRlci1jb2xvcjojZTNlOGViIWltcG9ydGFudDtjb2xvcjojODg5MjlmIWltcG9ydGFudDtvcGFjaXR5OjAuNjUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2UzZThlYiFpbXBvcnRhbnQ7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50fQpidXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVye2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7cmlnaHQ6M3B4O3dpZHRoOjRweDtoZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6M3B4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O3otaW5kZXg6Mn0KaW5wdXRbdHlwZT1idXR0b25dLmJsdWU6aG92ZXIsIC5idXR0b24uYmx1ZTpob3ZlciwgYnV0dG9uLmJsdWU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM2YjlmZGJ9CmlucHV0W3R5cGU9YnV0dG9uXS5ibHVlLCAuYnV0dG9uLmJsdWUsIGJ1dHRvbi5ibHVle2JvcmRlci1jb2xvcjojY2JlN2ZlO2JhY2tncm91bmQtY29sb3I6I2NiZTdmZTtjb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPWJ1dHRvbl0udGVhbDpob3ZlciwgLmJ1dHRvbi50ZWFsOmhvdmVyLCBidXR0b24udGVhbDpob3Zlcntib3JkZXItY29sb3I6IzFiYmJhMH0KaW5wdXRbdHlwZT1idXR0b25dLnRlYWwsIC5idXR0b24udGVhbCwgYnV0dG9uLnRlYWx7Ym9yZGVyLWNvbG9yOiNjZGYyZTY7YmFja2dyb3VuZC1jb2xvcjojY2RmMmU2fQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW46aG92ZXIsIC5idXR0b24uZ3JlZW46aG92ZXIsIGJ1dHRvbi5ncmVlbjpob3Zlcntib3JkZXItY29sb3I6IzlhYzU1Yztjb2xvcjojNjU5YzEzfQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW4sIC5idXR0b24uZ3JlZW4sIGJ1dHRvbi5ncmVlbntib3JkZXItY29sb3I6I2UwZjVjNjtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzZ9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2U6aG92ZXIsIC5idXR0b24ub3JhbmdlOmhvdmVyLCBidXR0b24ub3JhbmdlOmhvdmVye2JvcmRlci1jb2xvcjojZmVjMjllO2NvbG9yOiNmODc0MjN9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2UsIC5idXR0b24ub3JhbmdlLCBidXR0b24ub3Jhbmdle2JvcmRlci1jb2xvcjojZmZkYWFhO2JhY2tncm91bmQtY29sb3I6I2ZmZGFhYTtjb2xvcjojZjg3NDIzfQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkOmhvdmVyLCAuYnV0dG9uLnJlZDpob3ZlciwgYnV0dG9uLnJlZDpob3Zlcntib3JkZXItY29sb3I6I2ZhYWJiODtjb2xvcjojZDYyYzQ5fQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkLCAuYnV0dG9uLnJlZCwgYnV0dG9uLnJlZHtib3JkZXItY29sb3I6I2ZlZDNkMztiYWNrZ3JvdW5kLWNvbG9yOiNmZWQzZDM7Y29sb3I6I2Q2MmM0OX0KYTphY3RpdmUsIGE6Zm9jdXN7b3V0bGluZTpub25lfQphLCAucHNldWRvbGlua3tjb2xvcjojMmQ2NmI4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgMC4zczstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW9wZXJhLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1zLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOmNvbG9yIDAuM3MsIGJvcmRlciAwLjNzfQoucHNldWRvbGlua3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2NvbG9yOiMyZDY2Yjh9CmE6aG92ZXIsIC5wc2V1ZG9saW5rOmhvdmVyLCAucHNldWRvYnV0dG9uOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5ob3ZlcmxpbmsgLnBzZXVkb2xpbmt7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApfQouaG92ZXJsaW5rOmhvdmVyIC5wc2V1ZG9saW5re3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMyZDY2Yjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzllY2RmOH0KLmhvdmVybGluazpob3ZlciAucHNldWRvbGluazpob3Zlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOWFlMGYxO2NvbG9yOiMxMmE1ZGN9CmEgaW1ne2JvcmRlcjpub25lIWltcG9ydGFudH0KLncxe3dpZHRoOjFweCFpbXBvcnRhbnR9Ci53Mnt3aWR0aDoycHghaW1wb3J0YW50fQoudzN7d2lkdGg6M3B4IWltcG9ydGFudH0KLnc0e3dpZHRoOjRweCFpbXBvcnRhbnR9Ci53NXt3aWR0aDo1cHghaW1wb3J0YW50fQoudzZ7d2lkdGg6NnB4IWltcG9ydGFudH0KLnc3e3dpZHRoOjdweCFpbXBvcnRhbnR9Ci53OHt3aWR0aDo4cHghaW1wb3J0YW50fQoudzl7d2lkdGg6OXB4IWltcG9ydGFudH0KLncxMHt3aWR0aDoxMHB4IWltcG9ydGFudH0KLncxMXt3aWR0aDoxMXB4IWltcG9ydGFudH0KLncxMnt3aWR0aDoxMnB4IWltcG9ydGFudH0KLncxM3t3aWR0aDoxM3B4IWltcG9ydGFudH0KLncxNHt3aWR0aDoxNHB4IWltcG9ydGFudH0KLncxNXt3aWR0aDoxNXB4IWltcG9ydGFudH0KLncxNnt3aWR0aDoxNnB4IWltcG9ydGFudH0KLncxN3t3aWR0aDoxN3B4IWltcG9ydGFudH0KLncxOHt3aWR0aDoxOHB4IWltcG9ydGFudH0KLncxOXt3aWR0aDoxOXB4IWltcG9ydGFudH0KLncyMHt3aWR0aDoyMHB4IWltcG9ydGFudH0KLncyMXt3aWR0aDoyMXB4IWltcG9ydGFudH0KLncyMnt3aWR0aDoyMnB4IWltcG9ydGFudH0KLncyM3t3aWR0aDoyM3B4IWltcG9ydGFudH0KLncyNHt3aWR0aDoyNHB4IWltcG9ydGFudH0KLncyNXt3aWR0aDoyNXB4IWltcG9ydGFudH0KLnczMHt3aWR0aDozMHB4IWltcG9ydGFudH0KLnczMnt3aWR0aDozMnB4IWltcG9ydGFudH0KLnczNXt3aWR0aDozNXB4IWltcG9ydGFudH0KLnc0MHt3aWR0aDo0MHB4IWltcG9ydGFudH0KLnc0NXt3aWR0aDo0NXB4IWltcG9ydGFudH0KLnc0OHt3aWR0aDo0OHB4IWltcG9ydGFudH0KLnc1MHt3aWR0aDo1MHB4IWltcG9ydGFudH0KLnc1NXt3aWR0aDo1NXB4IWltcG9ydGFudH0KLnc2MHt3aWR0aDo2MHB4IWltcG9ydGFudH0KLnc2NHt3aWR0aDo2NHB4IWltcG9ydGFudH0KLnc2NXt3aWR0aDo2NXB4IWltcG9ydGFudH0KLnc3MHt3aWR0aDo3MHB4IWltcG9ydGFudH0KLnc3NXt3aWR0aDo3NXB4IWltcG9ydGFudH0KLnc4MHt3aWR0aDo4MHB4IWltcG9ydGFudH0KLnc4NXt3aWR0aDo4NXB4IWltcG9ydGFudH0KLnc5MHt3aWR0aDo5MHB4IWltcG9ydGFudH0KLnc5NXt3aWR0aDo5NXB4IWltcG9ydGFudH0KLnc5Nnt3aWR0aDo5NnB4IWltcG9ydGFudH0KLncxMDB7d2lkdGg6MTAwcHghaW1wb3J0YW50fQoudzEwNXt3aWR0aDoxMDVweCFpbXBvcnRhbnR9Ci53MTEwe3dpZHRoOjExMHB4IWltcG9ydGFudH0KLncxMTV7d2lkdGg6MTE1cHghaW1wb3J0YW50fQoudzEyMHt3aWR0aDoxMjBweCFpbXBvcnRhbnR9Ci53MTI1e3dpZHRoOjEyNXB4IWltcG9ydGFudH0KLncxMzB7d2lkdGg6MTMwcHghaW1wb3J0YW50fQoudzEzNXt3aWR0aDoxMzVweCFpbXBvcnRhbnR9Ci53MTQwe3dpZHRoOjE0MHB4IWltcG9ydGFudH0KLncxNDV7d2lkdGg6MTQ1cHghaW1wb3J0YW50fQoudzE1MHt3aWR0aDoxNTBweCFpbXBvcnRhbnR9Ci53MTU1e3dpZHRoOjE1NXB4IWltcG9ydGFudH0KLncxNjB7d2lkdGg6MTYwcHghaW1wb3J0YW50fQoudzE2NXt3aWR0aDoxNjVweCFpbXBvcnRhbnR9Ci53MTcwe3dpZHRoOjE3MHB4IWltcG9ydGFudH0KLncxNzV7d2lkdGg6MTc1cHghaW1wb3J0YW50fQoudzE4MHt3aWR0aDoxODBweCFpbXBvcnRhbnR9Ci53MTg1e3dpZHRoOjE4NXB4IWltcG9ydGFudH0KLncxOTB7d2lkdGg6MTkwcHghaW1wb3J0YW50fQoudzE5NXt3aWR0aDoxOTVweCFpbXBvcnRhbnR9Ci53MjAwe3dpZHRoOjIwMHB4IWltcG9ydGFudH0KLncyMTB7d2lkdGg6MjEwcHghaW1wb3J0YW50fQoudzIyMHt3aWR0aDoyMjBweCFpbXBvcnRhbnR9Ci53MjMwe3dpZHRoOjIzMHB4IWltcG9ydGFudH0KLncyNDB7d2lkdGg6MjQwcHghaW1wb3J0YW50fQoudzI1MHt3aWR0aDoyNTBweCFpbXBvcnRhbnR9Ci53MjYwe3dpZHRoOjI2MHB4IWltcG9ydGFudH0KLncyNzB7d2lkdGg6MjcwcHghaW1wb3J0YW50fQoudzI4MHt3aWR0aDoyODBweCFpbXBvcnRhbnR9Ci53Mjkwe3dpZHRoOjI5MHB4IWltcG9ydGFudH0KLnczMDB7d2lkdGg6MzAwcHghaW1wb3J0YW50fQoudzMxMHt3aWR0aDozMTBweCFpbXBvcnRhbnR9Ci53MzIwe3dpZHRoOjMyMHB4IWltcG9ydGFudH0KLnczMzB7d2lkdGg6MzMwcHghaW1wb3J0YW50fQoudzM0MHt3aWR0aDozNDBweCFpbXBvcnRhbnR9Ci53MzUwe3dpZHRoOjM1MHB4IWltcG9ydGFudH0KLnczNjB7d2lkdGg6MzYwcHghaW1wb3J0YW50fQoudzM3MHt3aWR0aDozNzBweCFpbXBvcnRhbnR9Ci53Mzgwe3dpZHRoOjM4MHB4IWltcG9ydGFudH0KLnczOTB7d2lkdGg6MzkwcHghaW1wb3J0YW50fQoudzQwMHt3aWR0aDo0MDBweCFpbXBvcnRhbnR9Ci53NDIwe3dpZHRoOjQyMHB4IWltcG9ydGFudH0KLnc0NTB7d2lkdGg6NDUwcHghaW1wb3J0YW50fQoudzUwMHt3aWR0aDo1MDBweCFpbXBvcnRhbnR9Ci53NTIwe3dpZHRoOjUyMHB4IWltcG9ydGFudH0KLnc1NTB7d2lkdGg6NTUwcHghaW1wb3J0YW50fQoudzYwMHt3aWR0aDo2MDBweCFpbXBvcnRhbnR9Ci53NjIwe3dpZHRoOjYyMHB4IWltcG9ydGFudH0KLnc2NTB7d2lkdGg6NjUwcHghaW1wb3J0YW50fQoudzcwMHt3aWR0aDo3MDBweCFpbXBvcnRhbnR9Ci53NzIwe3dpZHRoOjcyMHB4IWltcG9ydGFudH0KLnc3NTB7d2lkdGg6NzUwcHghaW1wb3J0YW50fQoudzgwMHt3aWR0aDo4MDBweCFpbXBvcnRhbnR9Ci53ODIwe3dpZHRoOjgyMHB4IWltcG9ydGFudH0KLnc4NTB7d2lkdGg6ODUwcHghaW1wb3J0YW50fQoudzkwMHt3aWR0aDo5MDBweCFpbXBvcnRhbnR9Ci53OTIwe3dpZHRoOjkyMHB4IWltcG9ydGFudH0KLnc5NTB7d2lkdGg6OTUwcHghaW1wb3J0YW50fQoudzEwMDB7d2lkdGg6MTAwMHB4IWltcG9ydGFudH0KLncxMDUwe3dpZHRoOjEwNTBweCFpbXBvcnRhbnR9Ci53MTEwMHt3aWR0aDoxMTAwcHghaW1wb3J0YW50fQoudzExNTB7d2lkdGg6MTE1MHB4IWltcG9ydGFudH0KLncxMTYwe3dpZHRoOjExNjBweCFpbXBvcnRhbnR9Ci53MTIwMHt3aWR0aDoxMjAwcHghaW1wb3J0YW50fQoudzEyNTB7d2lkdGg6MTI1MHB4IWltcG9ydGFudH0KLncxMzAwe3dpZHRoOjEzMDBweCFpbXBvcnRhbnR9Ci53MTM1MHt3aWR0aDoxMzUwcHghaW1wb3J0YW50fQoudzE0MDB7d2lkdGg6MTQwMHB4IWltcG9ydGFudH0KLncxNDUwe3dpZHRoOjE0NTBweCFpbXBvcnRhbnR9Ci53MTUwMHt3aWR0aDoxNTAwcHghaW1wb3J0YW50fQoudzVwe3dpZHRoOjUlIWltcG9ydGFudH0KLncxMHB7d2lkdGg6MTAlIWltcG9ydGFudH0KLncxNXB7d2lkdGg6MTUlIWltcG9ydGFudH0KLncyMHB7d2lkdGg6MjAlIWltcG9ydGFudH0KLncyNXB7d2lkdGg6MjUlIWltcG9ydGFudH0KLnczMHB7d2lkdGg6MzAlIWltcG9ydGFudH0KLnczNXB7d2lkdGg6MzUlIWltcG9ydGFudH0KLnc0MHB7d2lkdGg6NDAlIWltcG9ydGFudH0KLnc0NXB7d2lkdGg6NDUlIWltcG9ydGFudH0KLnc1MHB7d2lkdGg6NTAlIWltcG9ydGFudH0KLnc1NXB7d2lkdGg6NTUlIWltcG9ydGFudH0KLnc2MHB7d2lkdGg6NjAlIWltcG9ydGFudH0KLnc2NXB7d2lkdGg6NjUlIWltcG9ydGFudH0KLnc3MHB7d2lkdGg6NzAlIWltcG9ydGFudH0KLnc3NXB7d2lkdGg6NzUlIWltcG9ydGFudH0KLnc4MHB7d2lkdGg6ODAlIWltcG9ydGFudH0KLnc4NXB7d2lkdGg6ODUlIWltcG9ydGFudH0KLnc5MHB7d2lkdGg6OTAlIWltcG9ydGFudH0KLnc5NXB7d2lkdGg6OTUlIWltcG9ydGFudH0KLncxMDBwe3dpZHRoOjEwMCUhaW1wb3J0YW50fQouaDB7aGVpZ2h0OjBweCFpbXBvcnRhbnR9Ci5oMXtoZWlnaHQ6MXB4IWltcG9ydGFudH0KLmgye2hlaWdodDoycHghaW1wb3J0YW50fQouaDN7aGVpZ2h0OjNweCFpbXBvcnRhbnR9Ci5oNHtoZWlnaHQ6NHB4IWltcG9ydGFudH0KLmg1e2hlaWdodDo1cHghaW1wb3J0YW50fQouaDEwe2hlaWdodDoxMHB4IWltcG9ydGFudH0KLmgxNXtoZWlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5oMTZ7aGVpZ2h0OjE2cHghaW1wb3J0YW50fQouaDIwe2hlaWdodDoyMHB4IWltcG9ydGFudH0KLmgyNHtoZWlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5oMjV7aGVpZ2h0OjI1cHghaW1wb3J0YW50fQouaDMwe2hlaWdodDozMHB4IWltcG9ydGFudH0KLmgzMntoZWlnaHQ6MzJweCFpbXBvcnRhbnR9Ci5oMzV7aGVpZ2h0OjM1cHghaW1wb3J0YW50fQouaDQwe2hlaWdodDo0MHB4IWltcG9ydGFudH0KLmg0NXtoZWlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5oNDh7aGVpZ2h0OjQ4cHghaW1wb3J0YW50fQouaDUwe2hlaWdodDo1MHB4IWltcG9ydGFudH0KLmg1NXtoZWlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5oNjB7aGVpZ2h0OjYwcHghaW1wb3J0YW50fQouaDY0e2hlaWdodDo2NHB4IWltcG9ydGFudH0KLmg2NXtoZWlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5oNzB7aGVpZ2h0OjcwcHghaW1wb3J0YW50fQouaDc1e2hlaWdodDo3NXB4IWltcG9ydGFudH0KLmg4MHtoZWlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5oODV7aGVpZ2h0Ojg1cHghaW1wb3J0YW50fQouaDkwe2hlaWdodDo5MHB4IWltcG9ydGFudH0KLmg5NXtoZWlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5oOTZ7aGVpZ2h0Ojk2cHghaW1wb3J0YW50fQouaDEwMHtoZWlnaHQ6MTAwcHghaW1wb3J0YW50fQouaDExMHtoZWlnaHQ6MTEwcHghaW1wb3J0YW50fQouaDEyMHtoZWlnaHQ6MTIwcHghaW1wb3J0YW50fQouaDEzMHtoZWlnaHQ6MTMwcHghaW1wb3J0YW50fQouaDE0MHtoZWlnaHQ6MTQwcHghaW1wb3J0YW50fQouaDE1MHtoZWlnaHQ6MTUwcHghaW1wb3J0YW50fQouaDE2MHtoZWlnaHQ6MTYwcHghaW1wb3J0YW50fQouaDE3MHtoZWlnaHQ6MTcwcHghaW1wb3J0YW50fQouaDE4MHtoZWlnaHQ6MTgwcHghaW1wb3J0YW50fQouaDE5MHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50fQouaDIwMHtoZWlnaHQ6MjAwcHghaW1wb3J0YW50fQouaDI1MHtoZWlnaHQ6MjUwcHghaW1wb3J0YW50fQouaDMwMHtoZWlnaHQ6MzAwcHghaW1wb3J0YW50fQouaDM1MHtoZWlnaHQ6MzUwcHghaW1wb3J0YW50fQouaDQwMHtoZWlnaHQ6NDAwcHghaW1wb3J0YW50fQouaDQ1MHtoZWlnaHQ6NDUwcHghaW1wb3J0YW50fQouaDUwMHtoZWlnaHQ6NTAwcHghaW1wb3J0YW50fQouaDU1MHtoZWlnaHQ6NTUwcHghaW1wb3J0YW50fQouaDYwMHtoZWlnaHQ6NjAwcHghaW1wb3J0YW50fQouaDY1MHtoZWlnaHQ6NjUwcHghaW1wb3J0YW50fQouaDcwMHtoZWlnaHQ6NzAwcHghaW1wb3J0YW50fQouaDc1MHtoZWlnaHQ6NzUwcHghaW1wb3J0YW50fQouaDgwMHtoZWlnaHQ6ODAwcHghaW1wb3J0YW50fQouaDg1MHtoZWlnaHQ6ODUwcHghaW1wb3J0YW50fQouaDkwMHtoZWlnaHQ6OTAwcHghaW1wb3J0YW50fQouaDk1MHtoZWlnaHQ6OTUwcHghaW1wb3J0YW50fQouaDEwMDB7aGVpZ2h0OjEwMDBweCFpbXBvcnRhbnR9Ci5oYXtoZWlnaHQ6YXV0byFpbXBvcnRhbnR9Ci5kaXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9Ci5kaWJ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fQouZGJ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Ci5kaS5oaWRlLCAuZGIuaGlkZSwgLmRpYi5oaWRlLCAuZGkuZmlsdGVyLW5vbWF0Y2gsIC5kYi5maWx0ZXItbm9tYXRjaCwgLmRpYi5maWx0ZXItbm9tYXRjaHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQoub2h7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0KLm92e292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fQouZmx7ZmxvYXQ6bGVmdH0KLmZye2Zsb2F0OnJpZ2h0fQouY2J7Y2xlYXI6Ym90aH0KLmNye2NsZWFyOnJpZ2h0fQouY2x7Y2xlYXI6bGVmdH0KLnAwe3BhZGRpbmc6MHB4IWltcG9ydGFudH0KLnAxe3BhZGRpbmc6MXB4IWltcG9ydGFudH0KLnAye3BhZGRpbmc6MnB4IWltcG9ydGFudH0KLnAze3BhZGRpbmc6M3B4IWltcG9ydGFudH0KLnA0e3BhZGRpbmc6NHB4IWltcG9ydGFudH0KLnA1e3BhZGRpbmc6NXB4IWltcG9ydGFudH0KLnA2e3BhZGRpbmc6NnB4IWltcG9ydGFudH0KLnA3e3BhZGRpbmc6N3B4IWltcG9ydGFudH0KLnA4e3BhZGRpbmc6OHB4IWltcG9ydGFudH0KLnA5e3BhZGRpbmc6OXB4IWltcG9ydGFudH0KLnAxMHtwYWRkaW5nOjEwcHghaW1wb3J0YW50fQoucDE1e3BhZGRpbmc6MTVweCFpbXBvcnRhbnR9Ci5wMjB7cGFkZGluZzoyMHB4IWltcG9ydGFudH0KLnAyNXtwYWRkaW5nOjI1cHghaW1wb3J0YW50fQoucDMwe3BhZGRpbmc6MzBweCFpbXBvcnRhbnR9Ci5wMzV7cGFkZGluZzozNXB4IWltcG9ydGFudH0KLnA0MHtwYWRkaW5nOjQwcHghaW1wb3J0YW50fQoucDQ1e3BhZGRpbmc6NDVweCFpbXBvcnRhbnR9Ci5wNTB7cGFkZGluZzo1MHB4IWltcG9ydGFudH0KLnA1NXtwYWRkaW5nOjU1cHghaW1wb3J0YW50fQoucDYwe3BhZGRpbmc6NjBweCFpbXBvcnRhbnR9Ci5wNjV7cGFkZGluZzo2NXB4IWltcG9ydGFudH0KLnA3MHtwYWRkaW5nOjcwcHghaW1wb3J0YW50fQoucDc1e3BhZGRpbmc6NzVweCFpbXBvcnRhbnR9Ci5wODB7cGFkZGluZzo4MHB4IWltcG9ydGFudH0KLnA4NXtwYWRkaW5nOjg1cHghaW1wb3J0YW50fQoucDkwe3BhZGRpbmc6OTBweCFpbXBvcnRhbnR9Ci5wOTV7cGFkZGluZzo5NXB4IWltcG9ydGFudH0KLnAxMDB7cGFkZGluZzoxMDBweCFpbXBvcnRhbnR9Ci5wMTEwe3BhZGRpbmc6MTEwcHghaW1wb3J0YW50fQoucDEyMHtwYWRkaW5nOjEyMHB4IWltcG9ydGFudH0KLnAxMzB7cGFkZGluZzoxMzBweCFpbXBvcnRhbnR9Ci5wMTQwe3BhZGRpbmc6MTQwcHghaW1wb3J0YW50fQoucDE1MHtwYWRkaW5nOjE1MHB4IWltcG9ydGFudH0KLnAxNjB7cGFkZGluZzoxNjBweCFpbXBvcnRhbnR9Ci5wMTcwe3BhZGRpbmc6MTcwcHghaW1wb3J0YW50fQoucDE4MHtwYWRkaW5nOjE4MHB4IWltcG9ydGFudH0KLnAxOTB7cGFkZGluZzoxOTBweCFpbXBvcnRhbnR9Ci5wMjAwe3BhZGRpbmc6MjAwcHghaW1wb3J0YW50fQoucDI1MHtwYWRkaW5nOjI1MHB4IWltcG9ydGFudH0KLnAzMDB7cGFkZGluZzozMDBweCFpbXBvcnRhbnR9Ci5wMzUwe3BhZGRpbmc6MzUwcHghaW1wb3J0YW50fQoucDQwMHtwYWRkaW5nOjQwMHB4IWltcG9ydGFudH0KLnA0NTB7cGFkZGluZzo0NTBweCFpbXBvcnRhbnR9Ci5wNTAwe3BhZGRpbmc6NTAwcHghaW1wb3J0YW50fQoucGwwe3BhZGRpbmctbGVmdDowcHghaW1wb3J0YW50fQoucGwxe3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50fQoucGwye3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50fQoucGwze3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50fQoucGw0e3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50fQoucGw1e3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50fQoucGw2e3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50fQoucGw3e3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50fQoucGw4e3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50fQoucGw5e3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50fQoucGwxMHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnR9Ci5wbDExe3BhZGRpbmctbGVmdDoxMXB4IWltcG9ydGFudH0KLnBsMTJ7cGFkZGluZy1sZWZ0OjEycHghaW1wb3J0YW50fQoucGwxM3twYWRkaW5nLWxlZnQ6MTNweCFpbXBvcnRhbnR9Ci5wbDE0e3BhZGRpbmctbGVmdDoxNHB4IWltcG9ydGFudH0KLnBsMTV7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50fQoucGwxNntwYWRkaW5nLWxlZnQ6MTZweCFpbXBvcnRhbnR9Ci5wbDE3e3BhZGRpbmctbGVmdDoxN3B4IWltcG9ydGFudH0KLnBsMTh7cGFkZGluZy1sZWZ0OjE4cHghaW1wb3J0YW50fQoucGwxOXtwYWRkaW5nLWxlZnQ6MTlweCFpbXBvcnRhbnR9Ci5wbDIwe3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudH0KLnBsMjF7cGFkZGluZy1sZWZ0OjIxcHghaW1wb3J0YW50fQoucGwyMntwYWRkaW5nLWxlZnQ6MjJweCFpbXBvcnRhbnR9Ci5wbDIze3BhZGRpbmctbGVmdDoyM3B4IWltcG9ydGFudH0KLnBsMjR7cGFkZGluZy1sZWZ0OjI0cHghaW1wb3J0YW50fQoucGwyNXtwYWRkaW5nLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5wbDI2e3BhZGRpbmctbGVmdDoyNnB4IWltcG9ydGFudH0KLnBsMjd7cGFkZGluZy1sZWZ0OjI3cHghaW1wb3J0YW50fQoucGwyOHtwYWRkaW5nLWxlZnQ6MjhweCFpbXBvcnRhbnR9Ci5wbDI5e3BhZGRpbmctbGVmdDoyOXB4IWltcG9ydGFudH0KLnBsMzB7cGFkZGluZy1sZWZ0OjMwcHghaW1wb3J0YW50fQoucGwzNXtwYWRkaW5nLWxlZnQ6MzVweCFpbXBvcnRhbnR9Ci5wbDQwe3BhZGRpbmctbGVmdDo0MHB4IWltcG9ydGFudH0KLnBsNDV7cGFkZGluZy1sZWZ0OjQ1cHghaW1wb3J0YW50fQoucGw1MHtwYWRkaW5nLWxlZnQ6NTBweCFpbXBvcnRhbnR9Ci5wbDU1e3BhZGRpbmctbGVmdDo1NXB4IWltcG9ydGFudH0KLnBsNjB7cGFkZGluZy1sZWZ0OjYwcHghaW1wb3J0YW50fQoucGw2NXtwYWRkaW5nLWxlZnQ6NjVweCFpbXBvcnRhbnR9Ci5wbDcwe3BhZGRpbmctbGVmdDo3MHB4IWltcG9ydGFudH0KLnBsNzV7cGFkZGluZy1sZWZ0Ojc1cHghaW1wb3J0YW50fQoucGw4MHtwYWRkaW5nLWxlZnQ6ODBweCFpbXBvcnRhbnR9Ci5wbDg1e3BhZGRpbmctbGVmdDo4NXB4IWltcG9ydGFudH0KLnBsOTB7cGFkZGluZy1sZWZ0OjkwcHghaW1wb3J0YW50fQoucGw5NXtwYWRkaW5nLWxlZnQ6OTVweCFpbXBvcnRhbnR9Ci5wbDEwMHtwYWRkaW5nLWxlZnQ6MTAwcHghaW1wb3J0YW50fQoucGwxMTB7cGFkZGluZy1sZWZ0OjExMHB4IWltcG9ydGFudH0KLnBsMTIwe3BhZGRpbmctbGVmdDoxMjBweCFpbXBvcnRhbnR9Ci5wbDEzMHtwYWRkaW5nLWxlZnQ6MTMwcHghaW1wb3J0YW50fQoucGwxNDB7cGFkZGluZy1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLnBsMTUwe3BhZGRpbmctbGVmdDoxNTBweCFpbXBvcnRhbnR9Ci5wbDE2MHtwYWRkaW5nLWxlZnQ6MTYwcHghaW1wb3J0YW50fQoucGwxNzB7cGFkZGluZy1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLnBsMTgwe3BhZGRpbmctbGVmdDoxODBweCFpbXBvcnRhbnR9Ci5wbDE5MHtwYWRkaW5nLWxlZnQ6MTkwcHghaW1wb3J0YW50fQoucGwyMDB7cGFkZGluZy1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLnByMHtwYWRkaW5nLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5wcjF7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50fQoucHIye3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudH0KLnByM3twYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5wcjR7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50fQoucHI1e3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudH0KLnByNntwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5wcjd7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50fQoucHI4e3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudH0KLnByOXtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5wcjEwe3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnR9Ci5wcjExe3BhZGRpbmctcmlnaHQ6MTFweCFpbXBvcnRhbnR9Ci5wcjEye3BhZGRpbmctcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5wcjEze3BhZGRpbmctcmlnaHQ6MTNweCFpbXBvcnRhbnR9Ci5wcjE0e3BhZGRpbmctcmlnaHQ6MTRweCFpbXBvcnRhbnR9Ci5wcjE1e3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5wcjE2e3BhZGRpbmctcmlnaHQ6MTZweCFpbXBvcnRhbnR9Ci5wcjE3e3BhZGRpbmctcmlnaHQ6MTdweCFpbXBvcnRhbnR9Ci5wcjE4e3BhZGRpbmctcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5wcjE5e3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnR9Ci5wcjIwe3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnR9Ci5wcjIxe3BhZGRpbmctcmlnaHQ6MjFweCFpbXBvcnRhbnR9Ci5wcjIye3BhZGRpbmctcmlnaHQ6MjJweCFpbXBvcnRhbnR9Ci5wcjIze3BhZGRpbmctcmlnaHQ6MjNweCFpbXBvcnRhbnR9Ci5wcjI0e3BhZGRpbmctcmlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5wcjI1e3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5wcjI2e3BhZGRpbmctcmlnaHQ6MjZweCFpbXBvcnRhbnR9Ci5wcjI3e3BhZGRpbmctcmlnaHQ6MjdweCFpbXBvcnRhbnR9Ci5wcjI4e3BhZGRpbmctcmlnaHQ6MjhweCFpbXBvcnRhbnR9Ci5wcjI5e3BhZGRpbmctcmlnaHQ6MjlweCFpbXBvcnRhbnR9Ci5wcjMwe3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnR9Ci5wcjM1e3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnR9Ci5wcjQwe3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5wcjQ1e3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5wcjUwe3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnR9Ci5wcjU1e3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5wcjYwe3BhZGRpbmctcmlnaHQ6NjBweCFpbXBvcnRhbnR9Ci5wcjY1e3BhZGRpbmctcmlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5wcjcwe3BhZGRpbmctcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5wcjc1e3BhZGRpbmctcmlnaHQ6NzVweCFpbXBvcnRhbnR9Ci5wcjgwe3BhZGRpbmctcmlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5wcjg1e3BhZGRpbmctcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5wcjkwe3BhZGRpbmctcmlnaHQ6OTBweCFpbXBvcnRhbnR9Ci5wcjk1e3BhZGRpbmctcmlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5wcjEwMHtwYWRkaW5nLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLnByMTEwe3BhZGRpbmctcmlnaHQ6MTEwcHghaW1wb3J0YW50fQoucHIxMjB7cGFkZGluZy1yaWdodDoxMjBweCFpbXBvcnRhbnR9Ci5wcjEzMHtwYWRkaW5nLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLnByMTQwe3BhZGRpbmctcmlnaHQ6MTQwcHghaW1wb3J0YW50fQoucHIxNTB7cGFkZGluZy1yaWdodDoxNTBweCFpbXBvcnRhbnR9Ci5wcjE2MHtwYWRkaW5nLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLnByMTcwe3BhZGRpbmctcmlnaHQ6MTcwcHghaW1wb3J0YW50fQoucHIxODB7cGFkZGluZy1yaWdodDoxODBweCFpbXBvcnRhbnR9Ci5wcjE5MHtwYWRkaW5nLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLnByMjAwe3BhZGRpbmctcmlnaHQ6MjAwcHghaW1wb3J0YW50fQoucHQwe3BhZGRpbmctdG9wOjBweCFpbXBvcnRhbnR9Ci5wdDF7cGFkZGluZy10b3A6MXB4IWltcG9ydGFudH0KLnB0MntwYWRkaW5nLXRvcDoycHghaW1wb3J0YW50fQoucHQze3BhZGRpbmctdG9wOjNweCFpbXBvcnRhbnR9Ci5wdDR7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudH0KLnB0NXtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50fQoucHQ2e3BhZGRpbmctdG9wOjZweCFpbXBvcnRhbnR9Ci5wdDd7cGFkZGluZy10b3A6N3B4IWltcG9ydGFudH0KLnB0OHtwYWRkaW5nLXRvcDo4cHghaW1wb3J0YW50fQoucHQ5e3BhZGRpbmctdG9wOjlweCFpbXBvcnRhbnR9Ci5wdDEwe3BhZGRpbmctdG9wOjEwcHghaW1wb3J0YW50fQoucHQxMXtwYWRkaW5nLXRvcDoxMXB4IWltcG9ydGFudH0KLnB0MTJ7cGFkZGluZy10b3A6MTJweCFpbXBvcnRhbnR9Ci5wdDEze3BhZGRpbmctdG9wOjEzcHghaW1wb3J0YW50fQoucHQxNHtwYWRkaW5nLXRvcDoxNHB4IWltcG9ydGFudH0KLnB0MTV7cGFkZGluZy10b3A6MTVweCFpbXBvcnRhbnR9Ci5wdDE2e3BhZGRpbmctdG9wOjE2cHghaW1wb3J0YW50fQoucHQxN3twYWRkaW5nLXRvcDoxN3B4IWltcG9ydGFudH0KLnB0MTh7cGFkZGluZy10b3A6MThweCFpbXBvcnRhbnR9Ci5wdDE5e3BhZGRpbmctdG9wOjE5cHghaW1wb3J0YW50fQoucHQyMHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudH0KLnB0MjF7cGFkZGluZy10b3A6MjFweCFpbXBvcnRhbnR9Ci5wdDIye3BhZGRpbmctdG9wOjIycHghaW1wb3J0YW50fQoucHQyM3twYWRkaW5nLXRvcDoyM3B4IWltcG9ydGFudH0KLnB0MjR7cGFkZGluZy10b3A6MjRweCFpbXBvcnRhbnR9Ci5wdDI1e3BhZGRpbmctdG9wOjI1cHghaW1wb3J0YW50fQoucHQyNntwYWRkaW5nLXRvcDoyNnB4IWltcG9ydGFudH0KLnB0Mjd7cGFkZGluZy10b3A6MjdweCFpbXBvcnRhbnR9Ci5wdDI4e3BhZGRpbmctdG9wOjI4cHghaW1wb3J0YW50fQoucHQyOXtwYWRkaW5nLXRvcDoyOXB4IWltcG9ydGFudH0KLnB0MzB7cGFkZGluZy10b3A6MzBweCFpbXBvcnRhbnR9Ci5wdDM1e3BhZGRpbmctdG9wOjM1cHghaW1wb3J0YW50fQoucHQ0MHtwYWRkaW5nLXRvcDo0MHB4IWltcG9ydGFudH0KLnB0NDV7cGFkZGluZy10b3A6NDVweCFpbXBvcnRhbnR9Ci5wdDUwe3BhZGRpbmctdG9wOjUwcHghaW1wb3J0YW50fQoucHQ1NXtwYWRkaW5nLXRvcDo1NXB4IWltcG9ydGFudH0KLnB0NjB7cGFkZGluZy10b3A6NjBweCFpbXBvcnRhbnR9Ci5wdDY1e3BhZGRpbmctdG9wOjY1cHghaW1wb3J0YW50fQoucHQ3MHtwYWRkaW5nLXRvcDo3MHB4IWltcG9ydGFudH0KLnB0NzV7cGFkZGluZy10b3A6NzVweCFpbXBvcnRhbnR9Ci5wdDgwe3BhZGRpbmctdG9wOjgwcHghaW1wb3J0YW50fQoucHQ4NXtwYWRkaW5nLXRvcDo4NXB4IWltcG9ydGFudH0KLnB0OTB7cGFkZGluZy10b3A6OTBweCFpbXBvcnRhbnR9Ci5wdDk1e3BhZGRpbmctdG9wOjk1cHghaW1wb3J0YW50fQoucHQxMDB7cGFkZGluZy10b3A6MTAwcHghaW1wb3J0YW50fQoucHQxMTB7cGFkZGluZy10b3A6MTEwcHghaW1wb3J0YW50fQoucHQxMjB7cGFkZGluZy10b3A6MTIwcHghaW1wb3J0YW50fQoucHQxMzB7cGFkZGluZy10b3A6MTMwcHghaW1wb3J0YW50fQoucHQxNDB7cGFkZGluZy10b3A6MTQwcHghaW1wb3J0YW50fQoucHQxNTB7cGFkZGluZy10b3A6MTUwcHghaW1wb3J0YW50fQoucHQxNjB7cGFkZGluZy10b3A6MTYwcHghaW1wb3J0YW50fQoucHQxNzB7cGFkZGluZy10b3A6MTcwcHghaW1wb3J0YW50fQoucHQxODB7cGFkZGluZy10b3A6MTgwcHghaW1wb3J0YW50fQoucHQxOTB7cGFkZGluZy10b3A6MTkwcHghaW1wb3J0YW50fQoucHQyMDB7cGFkZGluZy10b3A6MjAwcHghaW1wb3J0YW50fQoucGIwe3BhZGRpbmctYm90dG9tOjBweCFpbXBvcnRhbnR9Ci5wYjF7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudH0KLnBiMntwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50fQoucGIze3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnR9Ci5wYjR7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudH0KLnBiNXtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50fQoucGI2e3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnR9Ci5wYjd7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudH0KLnBiOHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50fQoucGI5e3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnR9Ci5wYjEwe3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50fQoucGIxMXtwYWRkaW5nLWJvdHRvbToxMXB4IWltcG9ydGFudH0KLnBiMTJ7cGFkZGluZy1ib3R0b206MTJweCFpbXBvcnRhbnR9Ci5wYjEze3BhZGRpbmctYm90dG9tOjEzcHghaW1wb3J0YW50fQoucGIxNHtwYWRkaW5nLWJvdHRvbToxNHB4IWltcG9ydGFudH0KLnBiMTV7cGFkZGluZy1ib3R0b206MTVweCFpbXBvcnRhbnR9Ci5wYjE2e3BhZGRpbmctYm90dG9tOjE2cHghaW1wb3J0YW50fQoucGIxN3twYWRkaW5nLWJvdHRvbToxN3B4IWltcG9ydGFudH0KLnBiMTh7cGFkZGluZy1ib3R0b206MThweCFpbXBvcnRhbnR9Ci5wYjE5e3BhZGRpbmctYm90dG9tOjE5cHghaW1wb3J0YW50fQoucGIyMHtwYWRkaW5nLWJvdHRvbToyMHB4IWltcG9ydGFudH0KLnBiMjF7cGFkZGluZy1ib3R0b206MjFweCFpbXBvcnRhbnR9Ci5wYjIye3BhZGRpbmctYm90dG9tOjIycHghaW1wb3J0YW50fQoucGIyM3twYWRkaW5nLWJvdHRvbToyM3B4IWltcG9ydGFudH0KLnBiMjR7cGFkZGluZy1ib3R0b206MjRweCFpbXBvcnRhbnR9Ci5wYjI1e3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50fQoucGIyNntwYWRkaW5nLWJvdHRvbToyNnB4IWltcG9ydGFudH0KLnBiMjd7cGFkZGluZy1ib3R0b206MjdweCFpbXBvcnRhbnR9Ci5wYjI4e3BhZGRpbmctYm90dG9tOjI4cHghaW1wb3J0YW50fQoucGIyOXtwYWRkaW5nLWJvdHRvbToyOXB4IWltcG9ydGFudH0KLnBiMzB7cGFkZGluZy1ib3R0b206MzBweCFpbXBvcnRhbnR9Ci5wYjM1e3BhZGRpbmctYm90dG9tOjM1cHghaW1wb3J0YW50fQoucGI0MHtwYWRkaW5nLWJvdHRvbTo0MHB4IWltcG9ydGFudH0KLnBiNDV7cGFkZGluZy1ib3R0b206NDVweCFpbXBvcnRhbnR9Ci5wYjUwe3BhZGRpbmctYm90dG9tOjUwcHghaW1wb3J0YW50fQoucGI1NXtwYWRkaW5nLWJvdHRvbTo1NXB4IWltcG9ydGFudH0KLnBiNjB7cGFkZGluZy1ib3R0b206NjBweCFpbXBvcnRhbnR9Ci5wYjY1e3BhZGRpbmctYm90dG9tOjY1cHghaW1wb3J0YW50fQoucGI3MHtwYWRkaW5nLWJvdHRvbTo3MHB4IWltcG9ydGFudH0KLnBiNzV7cGFkZGluZy1ib3R0b206NzVweCFpbXBvcnRhbnR9Ci5wYjgwe3BhZGRpbmctYm90dG9tOjgwcHghaW1wb3J0YW50fQoucGI4NXtwYWRkaW5nLWJvdHRvbTo4NXB4IWltcG9ydGFudH0KLnBiOTB7cGFkZGluZy1ib3R0b206OTBweCFpbXBvcnRhbnR9Ci5wYjk1e3BhZGRpbmctYm90dG9tOjk1cHghaW1wb3J0YW50fQoucGIxMDB7cGFkZGluZy1ib3R0b206MTAwcHghaW1wb3J0YW50fQoucGIxMTB7cGFkZGluZy1ib3R0b206MTEwcHghaW1wb3J0YW50fQoucGIxMjB7cGFkZGluZy1ib3R0b206MTIwcHghaW1wb3J0YW50fQoucGIxMzB7cGFkZGluZy1ib3R0b206MTMwcHghaW1wb3J0YW50fQoucGIxNDB7cGFkZGluZy1ib3R0b206MTQwcHghaW1wb3J0YW50fQoucGIxNTB7cGFkZGluZy1ib3R0b206MTUwcHghaW1wb3J0YW50fQoucGIxNjB7cGFkZGluZy1ib3R0b206MTYwcHghaW1wb3J0YW50fQoucGIxNzB7cGFkZGluZy1ib3R0b206MTcwcHghaW1wb3J0YW50fQoucGIxODB7cGFkZGluZy1ib3R0b206MTgwcHghaW1wb3J0YW50fQoucGIxOTB7cGFkZGluZy1ib3R0b206MTkwcHghaW1wb3J0YW50fQoucGIyMDB7cGFkZGluZy1ib3R0b206MjAwcHghaW1wb3J0YW50fQoubWwtNTB7bWFyZ2luLWxlZnQ6LTUwcHghaW1wb3J0YW50fQoubWwtNDB7bWFyZ2luLWxlZnQ6LTQwcHghaW1wb3J0YW50fQoubWwtMzB7bWFyZ2luLWxlZnQ6LTMwcHghaW1wb3J0YW50fQoubWwtMjV7bWFyZ2luLWxlZnQ6LTI1cHghaW1wb3J0YW50fQoubWwtMjB7bWFyZ2luLWxlZnQ6LTIwcHghaW1wb3J0YW50fQoubWwtMTV7bWFyZ2luLWxlZnQ6LTE1cHghaW1wb3J0YW50fQoubWwtMTB7bWFyZ2luLWxlZnQ6LTEwcHghaW1wb3J0YW50fQoubWwtOXttYXJnaW4tbGVmdDotOXB4IWltcG9ydGFudH0KLm1sLTh7bWFyZ2luLWxlZnQ6LThweCFpbXBvcnRhbnR9Ci5tbC03e21hcmdpbi1sZWZ0Oi03cHghaW1wb3J0YW50fQoubWwtNnttYXJnaW4tbGVmdDotNnB4IWltcG9ydGFudH0KLm1sLTV7bWFyZ2luLWxlZnQ6LTVweCFpbXBvcnRhbnR9Ci5tbC00e21hcmdpbi1sZWZ0Oi00cHghaW1wb3J0YW50fQoubWwtM3ttYXJnaW4tbGVmdDotM3B4IWltcG9ydGFudH0KLm1sLTJ7bWFyZ2luLWxlZnQ6LTJweCFpbXBvcnRhbnR9Ci5tbC0xe21hcmdpbi1sZWZ0Oi0xcHghaW1wb3J0YW50fQoubWwwe21hcmdpbi1sZWZ0OjBweCFpbXBvcnRhbnR9Ci5tbDF7bWFyZ2luLWxlZnQ6MXB4IWltcG9ydGFudH0KLm1sMnttYXJnaW4tbGVmdDoycHghaW1wb3J0YW50fQoubWwze21hcmdpbi1sZWZ0OjNweCFpbXBvcnRhbnR9Ci5tbDR7bWFyZ2luLWxlZnQ6NHB4IWltcG9ydGFudH0KLm1sNXttYXJnaW4tbGVmdDo1cHghaW1wb3J0YW50fQoubWw2e21hcmdpbi1sZWZ0OjZweCFpbXBvcnRhbnR9Ci5tbDd7bWFyZ2luLWxlZnQ6N3B4IWltcG9ydGFudH0KLm1sOHttYXJnaW4tbGVmdDo4cHghaW1wb3J0YW50fQoubWw5e21hcmdpbi1sZWZ0OjlweCFpbXBvcnRhbnR9Ci5tbDEwe21hcmdpbi1sZWZ0OjEwcHghaW1wb3J0YW50fQoubWwxMXttYXJnaW4tbGVmdDoxMXB4IWltcG9ydGFudH0KLm1sMTJ7bWFyZ2luLWxlZnQ6MTJweCFpbXBvcnRhbnR9Ci5tbDEze21hcmdpbi1sZWZ0OjEzcHghaW1wb3J0YW50fQoubWwxNHttYXJnaW4tbGVmdDoxNHB4IWltcG9ydGFudH0KLm1sMTV7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnR9Ci5tbDE2e21hcmdpbi1sZWZ0OjE2cHghaW1wb3J0YW50fQoubWwxN3ttYXJnaW4tbGVmdDoxN3B4IWltcG9ydGFudH0KLm1sMTh7bWFyZ2luLWxlZnQ6MThweCFpbXBvcnRhbnR9Ci5tbDE5e21hcmdpbi1sZWZ0OjE5cHghaW1wb3J0YW50fQoubWwyMHttYXJnaW4tbGVmdDoyMHB4IWltcG9ydGFudH0KLm1sMjV7bWFyZ2luLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5tbDMwe21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50fQoubWwzNXttYXJnaW4tbGVmdDozNXB4IWltcG9ydGFudH0KLm1sNDB7bWFyZ2luLWxlZnQ6NDBweCFpbXBvcnRhbnR9Ci5tbDQ1e21hcmdpbi1sZWZ0OjQ1cHghaW1wb3J0YW50fQoubWw1MHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudH0KLm1sNTV7bWFyZ2luLWxlZnQ6NTVweCFpbXBvcnRhbnR9Ci5tbDYwe21hcmdpbi1sZWZ0OjYwcHghaW1wb3J0YW50fQoubWw2NXttYXJnaW4tbGVmdDo2NXB4IWltcG9ydGFudH0KLm1sNzB7bWFyZ2luLWxlZnQ6NzBweCFpbXBvcnRhbnR9Ci5tbDc1e21hcmdpbi1sZWZ0Ojc1cHghaW1wb3J0YW50fQoubWw4MHttYXJnaW4tbGVmdDo4MHB4IWltcG9ydGFudH0KLm1sODV7bWFyZ2luLWxlZnQ6ODVweCFpbXBvcnRhbnR9Ci5tbDkwe21hcmdpbi1sZWZ0OjkwcHghaW1wb3J0YW50fQoubWw5NXttYXJnaW4tbGVmdDo5NXB4IWltcG9ydGFudH0KLm1sMTAwe21hcmdpbi1sZWZ0OjEwMHB4IWltcG9ydGFudH0KLm1sMTEwe21hcmdpbi1sZWZ0OjExMHB4IWltcG9ydGFudH0KLm1sMTIwe21hcmdpbi1sZWZ0OjEyMHB4IWltcG9ydGFudH0KLm1sMTMwe21hcmdpbi1sZWZ0OjEzMHB4IWltcG9ydGFudH0KLm1sMTQwe21hcmdpbi1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLm1sMTUwe21hcmdpbi1sZWZ0OjE1MHB4IWltcG9ydGFudH0KLm1sMTYwe21hcmdpbi1sZWZ0OjE2MHB4IWltcG9ydGFudH0KLm1sMTcwe21hcmdpbi1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLm1sMTgwe21hcmdpbi1sZWZ0OjE4MHB4IWltcG9ydGFudH0KLm1sMTkwe21hcmdpbi1sZWZ0OjE5MHB4IWltcG9ydGFudH0KLm1sMjAwe21hcmdpbi1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLm1yLTUwe21hcmdpbi1yaWdodDotNTBweCFpbXBvcnRhbnR9Ci5tci00MHttYXJnaW4tcmlnaHQ6LTQwcHghaW1wb3J0YW50fQoubXItMzB7bWFyZ2luLXJpZ2h0Oi0zMHB4IWltcG9ydGFudH0KLm1yLTI1e21hcmdpbi1yaWdodDotMjVweCFpbXBvcnRhbnR9Ci5tci0yMHttYXJnaW4tcmlnaHQ6LTIwcHghaW1wb3J0YW50fQoubXItMTV7bWFyZ2luLXJpZ2h0Oi0xNXB4IWltcG9ydGFudH0KLm1yLTEwe21hcmdpbi1yaWdodDotMTBweCFpbXBvcnRhbnR9Ci5tci05e21hcmdpbi1yaWdodDotOXB4IWltcG9ydGFudH0KLm1yLTh7bWFyZ2luLXJpZ2h0Oi04cHghaW1wb3J0YW50fQoubXItN3ttYXJnaW4tcmlnaHQ6LTdweCFpbXBvcnRhbnR9Ci5tci02e21hcmdpbi1yaWdodDotNnB4IWltcG9ydGFudH0KLm1yLTV7bWFyZ2luLXJpZ2h0Oi01cHghaW1wb3J0YW50fQoubXItNHttYXJnaW4tcmlnaHQ6LTRweCFpbXBvcnRhbnR9Ci5tci0ze21hcmdpbi1yaWdodDotM3B4IWltcG9ydGFudH0KLm1yLTJ7bWFyZ2luLXJpZ2h0Oi0ycHghaW1wb3J0YW50fQoubXItMXttYXJnaW4tcmlnaHQ6LTFweCFpbXBvcnRhbnR9Ci5tcjB7bWFyZ2luLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5tcjF7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnR9Ci5tcjJ7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnR9Ci5tcjN7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5tcjR7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnR9Ci5tcjV7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnR9Ci5tcjZ7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5tcjd7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnR9Ci5tcjh7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnR9Ci5tcjl7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5tcjEwe21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudH0KLm1yMTF7bWFyZ2luLXJpZ2h0OjExcHghaW1wb3J0YW50fQoubXIxMnttYXJnaW4tcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5tcjEze21hcmdpbi1yaWdodDoxM3B4IWltcG9ydGFudH0KLm1yMTR7bWFyZ2luLXJpZ2h0OjE0cHghaW1wb3J0YW50fQoubXIxNXttYXJnaW4tcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5tcjE2e21hcmdpbi1yaWdodDoxNnB4IWltcG9ydGFudH0KLm1yMTd7bWFyZ2luLXJpZ2h0OjE3cHghaW1wb3J0YW50fQoubXIxOHttYXJnaW4tcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5tcjE5e21hcmdpbi1yaWdodDoxOXB4IWltcG9ydGFudH0KLm1yMjB7bWFyZ2luLXJpZ2h0OjIwcHghaW1wb3J0YW50fQoubXIyNXttYXJnaW4tcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5tcjMwe21hcmdpbi1yaWdodDozMHB4IWltcG9ydGFudH0KLm1yMzV7bWFyZ2luLXJpZ2h0OjM1cHghaW1wb3J0YW50fQoubXI0MHttYXJnaW4tcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5tcjQ1e21hcmdpbi1yaWdodDo0NXB4IWltcG9ydGFudH0KLm1yNTB7bWFyZ2luLXJpZ2h0OjUwcHghaW1wb3J0YW50fQoubXI1NXttYXJnaW4tcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5tcjYwe21hcmdpbi1yaWdodDo2MHB4IWltcG9ydGFudH0KLm1yNjV7bWFyZ2luLXJpZ2h0OjY1cHghaW1wb3J0YW50fQoubXI3MHttYXJnaW4tcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5tcjc1e21hcmdpbi1yaWdodDo3NXB4IWltcG9ydGFudH0KLm1yODB7bWFyZ2luLXJpZ2h0OjgwcHghaW1wb3J0YW50fQoubXI4NXttYXJnaW4tcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5tcjkwe21hcmdpbi1yaWdodDo5MHB4IWltcG9ydGFudH0KLm1yOTV7bWFyZ2luLXJpZ2h0Ojk1cHghaW1wb3J0YW50fQoubXIxMDB7bWFyZ2luLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLm1yMTEwe21hcmdpbi1yaWdodDoxMTBweCFpbXBvcnRhbnR9Ci5tcjEyMHttYXJnaW4tcmlnaHQ6MTIwcHghaW1wb3J0YW50fQoubXIxMzB7bWFyZ2luLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLm1yMTQwe21hcmdpbi1yaWdodDoxNDBweCFpbXBvcnRhbnR9Ci5tcjE1MHttYXJnaW4tcmlnaHQ6MTUwcHghaW1wb3J0YW50fQoubXIxNjB7bWFyZ2luLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLm1yMTcwe21hcmdpbi1yaWdodDoxNzBweCFpbXBvcnRhbnR9Ci5tcjE4MHttYXJnaW4tcmlnaHQ6MTgwcHghaW1wb3J0YW50fQoubXIxOTB7bWFyZ2luLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLm1yMjAwe21hcmdpbi1yaWdodDoyMDBweCFpbXBvcnRhbnR9Ci5tdC01MHttYXJnaW4tdG9wOi01MHB4IWltcG9ydGFudH0KLm10LTQwe21hcmdpbi10b3A6LTQwcHghaW1wb3J0YW50fQoubXQtMzB7bWFyZ2luLXRvcDotMzBweCFpbXBvcnRhbnR9Ci5tdC0yNXttYXJnaW4tdG9wOi0yNXB4IWltcG9ydGFudH0KLm10LTIwe21hcmdpbi10b3A6LTIwcHghaW1wb3J0YW50fQoubXQtMTV7bWFyZ2luLXRvcDotMTVweCFpbXBvcnRhbnR9Ci5tdC0xMHttYXJnaW4tdG9wOi0xMHB4IWltcG9ydGFudH0KLm10LTl7bWFyZ2luLXRvcDotOXB4IWltcG9ydGFudH0KLm10LTh7bWFyZ2luLXRvcDotOHB4IWltcG9ydGFudH0KLm10LTd7bWFyZ2luLXRvcDotN3B4IWltcG9ydGFudH0KLm10LTZ7bWFyZ2luLXRvcDotNnB4IWltcG9ydGFudH0KLm10LTV7bWFyZ2luLXRvcDotNXB4IWltcG9ydGFudH0KLm10LTR7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudH0KLm10LTN7bWFyZ2luLXRvcDotM3B4IWltcG9ydGFudH0KLm10LTJ7bWFyZ2luLXRvcDotMnB4IWltcG9ydGFudH0KLm10LTF7bWFyZ2luLXRvcDotMXB4IWltcG9ydGFudH0KLm10MHttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnR9Ci5tdDF7bWFyZ2luLXRvcDoxcHghaW1wb3J0YW50fQoubXQye21hcmdpbi10b3A6MnB4IWltcG9ydGFudH0KLm10M3ttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnR9Ci5tdDR7bWFyZ2luLXRvcDo0cHghaW1wb3J0YW50fQoubXQ1e21hcmdpbi10b3A6NXB4IWltcG9ydGFudH0KLm10NnttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnR9Ci5tdDd7bWFyZ2luLXRvcDo3cHghaW1wb3J0YW50fQoubXQ4e21hcmdpbi10b3A6OHB4IWltcG9ydGFudH0KLm10OXttYXJnaW4tdG9wOjlweCFpbXBvcnRhbnR9Ci5tdDEwe21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnR9Ci5tdDExe21hcmdpbi10b3A6MTFweCFpbXBvcnRhbnR9Ci5tdDEye21hcmdpbi10b3A6MTJweCFpbXBvcnRhbnR9Ci5tdDEze21hcmdpbi10b3A6MTNweCFpbXBvcnRhbnR9Ci5tdDE0e21hcmdpbi10b3A6MTRweCFpbXBvcnRhbnR9Ci5tdDE1e21hcmdpbi10b3A6MTVweCFpbXBvcnRhbnR9Ci5tdDE2e21hcmdpbi10b3A6MTZweCFpbXBvcnRhbnR9Ci5tdDE3e21hcmdpbi10b3A6MTdweCFpbXBvcnRhbnR9Ci5tdDE4e21hcmdpbi10b3A6MThweCFpbXBvcnRhbnR9Ci5tdDE5e21hcmdpbi10b3A6MTlweCFpbXBvcnRhbnR9Ci5tdDIwe21hcmdpbi10b3A6MjBweCFpbXBvcnRhbnR9Ci5tdDI1e21hcmdpbi10b3A6MjVweCFpbXBvcnRhbnR9Ci5tdDMwe21hcmdpbi10b3A6MzBweCFpbXBvcnRhbnR9Ci5tdDM1e21hcmdpbi10b3A6MzVweCFpbXBvcnRhbnR9Ci5tdDQwe21hcmdpbi10b3A6NDBweCFpbXBvcnRhbnR9Ci5tdDQ1e21hcmdpbi10b3A6NDVweCFpbXBvcnRhbnR9Ci5tdDUwe21hcmdpbi10b3A6NTBweCFpbXBvcnRhbnR9Ci5tdDU1e21hcmdpbi10b3A6NTVweCFpbXBvcnRhbnR9Ci5tdDYwe21hcmdpbi10b3A6NjBweCFpbXBvcnRhbnR9Ci5tdDY1e21hcmdpbi10b3A6NjVweCFpbXBvcnRhbnR9Ci5tdDcwe21hcmdpbi10b3A6NzBweCFpbXBvcnRhbnR9Ci5tdDc1e21hcmdpbi10b3A6NzVweCFpbXBvcnRhbnR9Ci5tdDgwe21hcmdpbi10b3A6ODBweCFpbXBvcnRhbnR9Ci5tdDg1e21hcmdpbi10b3A6ODVweCFpbXBvcnRhbnR9Ci5tdDkwe21hcmdpbi10b3A6OTBweCFpbXBvcnRhbnR9Ci5tdDk1e21hcmdpbi10b3A6OTVweCFpbXBvcnRhbnR9Ci5tdDEwMHttYXJnaW4tdG9wOjEwMHB4IWltcG9ydGFudH0KLm10MTEwe21hcmdpbi10b3A6MTEwcHghaW1wb3J0YW50fQoubXQxMjB7bWFyZ2luLXRvcDoxMjBweCFpbXBvcnRhbnR9Ci5tdDEzMHttYXJnaW4tdG9wOjEzMHB4IWltcG9ydGFudH0KLm10MTQwe21hcmdpbi10b3A6MTQwcHghaW1wb3J0YW50fQoubXQxNTB7bWFyZ2luLXRvcDoxNTBweCFpbXBvcnRhbnR9Ci5tdDE2MHttYXJnaW4tdG9wOjE2MHB4IWltcG9ydGFudH0KLm10MTcwe21hcmdpbi10b3A6MTcwcHghaW1wb3J0YW50fQoubXQxODB7bWFyZ2luLXRvcDoxODBweCFpbXBvcnRhbnR9Ci5tdDE5MHttYXJnaW4tdG9wOjE5MHB4IWltcG9ydGFudH0KLm10MjAwe21hcmdpbi10b3A6MjAwcHghaW1wb3J0YW50fQoubWItNTB7bWFyZ2luLWJvdHRvbTotNTBweCFpbXBvcnRhbnR9Ci5tYi00MHttYXJnaW4tYm90dG9tOi00MHB4IWltcG9ydGFudH0KLm1iLTMwe21hcmdpbi1ib3R0b206LTMwcHghaW1wb3J0YW50fQoubWItMjV7bWFyZ2luLWJvdHRvbTotMjVweCFpbXBvcnRhbnR9Ci5tYi0yMHttYXJnaW4tYm90dG9tOi0yMHB4IWltcG9ydGFudH0KLm1iLTE1e21hcmdpbi1ib3R0b206LTE1cHghaW1wb3J0YW50fQoubWItMTB7bWFyZ2luLWJvdHRvbTotMTBweCFpbXBvcnRhbnR9Ci5tYi05e21hcmdpbi1ib3R0b206LTlweCFpbXBvcnRhbnR9Ci5tYi04e21hcmdpbi1ib3R0b206LThweCFpbXBvcnRhbnR9Ci5tYi03e21hcmdpbi1ib3R0b206LTdweCFpbXBvcnRhbnR9Ci5tYi02e21hcmdpbi1ib3R0b206LTZweCFpbXBvcnRhbnR9Ci5tYi01e21hcmdpbi1ib3R0b206LTVweCFpbXBvcnRhbnR9Ci5tYi00e21hcmdpbi1ib3R0b206LTRweCFpbXBvcnRhbnR9Ci5tYi0ze21hcmdpbi1ib3R0b206LTNweCFpbXBvcnRhbnR9Ci5tYi0ye21hcmdpbi1ib3R0b206LTJweCFpbXBvcnRhbnR9Ci5tYi0xe21hcmdpbi1ib3R0b206LTFweCFpbXBvcnRhbnR9Ci5tYjB7bWFyZ2luLWJvdHRvbTowcHghaW1wb3J0YW50fQoubWIxe21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudH0KLm1iMnttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnR9Ci5tYjN7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50fQoubWI0e21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudH0KLm1iNXttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnR9Ci5tYjZ7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50fQoubWI3e21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudH0KLm1iOHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnR9Ci5tYjl7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50fQoubWIxMHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50fQoubWIxMXttYXJnaW4tYm90dG9tOjExcHghaW1wb3J0YW50fQoubWIxMnttYXJnaW4tYm90dG9tOjEycHghaW1wb3J0YW50fQoubWIxM3ttYXJnaW4tYm90dG9tOjEzcHghaW1wb3J0YW50fQoubWIxNHttYXJnaW4tYm90dG9tOjE0cHghaW1wb3J0YW50fQoubWIxNXttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50fQoubWIxNnttYXJnaW4tYm90dG9tOjE2cHghaW1wb3J0YW50fQoubWIxN3ttYXJnaW4tYm90dG9tOjE3cHghaW1wb3J0YW50fQoubWIxOHttYXJnaW4tYm90dG9tOjE4cHghaW1wb3J0YW50fQoubWIxOXttYXJnaW4tYm90dG9tOjE5cHghaW1wb3J0YW50fQoubWIyMHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50fQoubWIyNXttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50fQoubWIzMHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50fQoubWIzNXttYXJnaW4tYm90dG9tOjM1cHghaW1wb3J0YW50fQoubWI0MHttYXJnaW4tYm90dG9tOjQwcHghaW1wb3J0YW50fQoubWI0NXttYXJnaW4tYm90dG9tOjQ1cHghaW1wb3J0YW50fQoubWI1MHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50fQoubWI1NXttYXJnaW4tYm90dG9tOjU1cHghaW1wb3J0YW50fQoubWI2MHttYXJnaW4tYm90dG9tOjYwcHghaW1wb3J0YW50fQoubWI2NXttYXJnaW4tYm90dG9tOjY1cHghaW1wb3J0YW50fQoubWI3MHttYXJnaW4tYm90dG9tOjcwcHghaW1wb3J0YW50fQoubWI3NXttYXJnaW4tYm90dG9tOjc1cHghaW1wb3J0YW50fQoubWI4MHttYXJnaW4tYm90dG9tOjgwcHghaW1wb3J0YW50fQoubWI4NXttYXJnaW4tYm90dG9tOjg1cHghaW1wb3J0YW50fQoubWI5MHttYXJnaW4tYm90dG9tOjkwcHghaW1wb3J0YW50fQoubWI5NXttYXJnaW4tYm90dG9tOjk1cHghaW1wb3J0YW50fQoubWIxMDB7bWFyZ2luLWJvdHRvbToxMDBweCFpbXBvcnRhbnR9Ci5tYjExMHttYXJnaW4tYm90dG9tOjExMHB4IWltcG9ydGFudH0KLm1iMTIwe21hcmdpbi1ib3R0b206MTIwcHghaW1wb3J0YW50fQoubWIxMzB7bWFyZ2luLWJvdHRvbToxMzBweCFpbXBvcnRhbnR9Ci5tYjE0MHttYXJnaW4tYm90dG9tOjE0MHB4IWltcG9ydGFudH0KLm1iMTUwe21hcmdpbi1ib3R0b206MTUwcHghaW1wb3J0YW50fQoubWIxNjB7bWFyZ2luLWJvdHRvbToxNjBweCFpbXBvcnRhbnR9Ci5tYjE3MHttYXJnaW4tYm90dG9tOjE3MHB4IWltcG9ydGFudH0KLm1iMTgwe21hcmdpbi1ib3R0b206MTgwcHghaW1wb3J0YW50fQoubWIxOTB7bWFyZ2luLWJvdHRvbToxOTBweCFpbXBvcnRhbnR9Ci5tYjIwMHttYXJnaW4tYm90dG9tOjIwMHB4IWltcG9ydGFudH0KLnppMXt6LWluZGV4OjF9Ci56aTJ7ei1pbmRleDoyfQouemkze3otaW5kZXg6M30KLnppNHt6LWluZGV4OjR9Ci56aTV7ei1pbmRleDo1fQouemk2e3otaW5kZXg6Nn0KLnppN3t6LWluZGV4Ojd9Ci56aTh7ei1pbmRleDo4fQouemk5e3otaW5kZXg6OX0KLnppMTB7ei1pbmRleDoxMH0KLnppMTF7ei1pbmRleDoxMX0KLnppMTJ7ei1pbmRleDoxMn0KLnppMTN7ei1pbmRleDoxM30KLnppMTR7ei1pbmRleDoxNH0KLnppMTV7ei1pbmRleDoxNX0KLnppMTZ7ei1pbmRleDoxNn0KLnppMTd7ei1pbmRleDoxN30KLnppMTh7ei1pbmRleDoxOH0KLnppMTl7ei1pbmRleDoxOX0KLnppMjB7ei1pbmRleDoyMH0KLmZzNDB7Zm9udC1zaXplOjQwJSFpbXBvcnRhbnR9Ci5mczQ1e2ZvbnQtc2l6ZTo0NSUhaW1wb3J0YW50fQouZnM1MHtmb250LXNpemU6NTAlIWltcG9ydGFudH0KLmZzNTV7Zm9udC1zaXplOjU1JSFpbXBvcnRhbnR9Ci5mczYwe2ZvbnQtc2l6ZTo2MCUhaW1wb3J0YW50fQouZnM2NXtmb250LXNpemU6NjUlIWltcG9ydGFudH0KLmZzNzB7Zm9udC1zaXplOjcwJSFpbXBvcnRhbnR9Ci5mczc1e2ZvbnQtc2l6ZTo3NSUhaW1wb3J0YW50fQouZnM4MHtmb250LXNpemU6ODAlIWltcG9ydGFudH0KLmZzODV7Zm9udC1zaXplOjg1JSFpbXBvcnRhbnR9Ci5mczkwe2ZvbnQtc2l6ZTo5MCUhaW1wb3J0YW50fQouZnM5NXtmb250LXNpemU6OTUlIWltcG9ydGFudH0KLmZzMTAwe2ZvbnQtc2l6ZToxMDAlIWltcG9ydGFudH0KLmZzMTA1e2ZvbnQtc2l6ZToxMDUlIWltcG9ydGFudH0KLmZzMTEwe2ZvbnQtc2l6ZToxMTAlIWltcG9ydGFudH0KLmZzMTE1e2ZvbnQtc2l6ZToxMTUlIWltcG9ydGFudH0KLmZzMTIwe2ZvbnQtc2l6ZToxMjAlIWltcG9ydGFudH0KLmZzMTI1e2ZvbnQtc2l6ZToxMjUlIWltcG9ydGFudH0KLmZzMTMwe2ZvbnQtc2l6ZToxMzAlIWltcG9ydGFudH0KLmZzMTQwe2ZvbnQtc2l6ZToxNDAlIWltcG9ydGFudH0KLmZzMTUwe2ZvbnQtc2l6ZToxNTAlIWltcG9ydGFudH0KLmZzMTYwe2ZvbnQtc2l6ZToxNjAlIWltcG9ydGFudH0KLmZzMTcwe2ZvbnQtc2l6ZToxNzAlIWltcG9ydGFudH0KLmZzMTgwe2ZvbnQtc2l6ZToxODAlIWltcG9ydGFudH0KLmZzMTkwe2ZvbnQtc2l6ZToxOTAlIWltcG9ydGFudH0KLmZzMjAwe2ZvbnQtc2l6ZToyMDAlIWltcG9ydGFudH0KLmZzMjEwe2ZvbnQtc2l6ZToyMTAlIWltcG9ydGFudH0KLmZzMjIwe2ZvbnQtc2l6ZToyMjAlIWltcG9ydGFudH0KLmZzMjMwe2ZvbnQtc2l6ZToyMzAlIWltcG9ydGFudH0KLmZzMjQwe2ZvbnQtc2l6ZToyNDAlIWltcG9ydGFudH0KLmZzMjUwe2ZvbnQtc2l6ZToyNTAlIWltcG9ydGFudH0KLmZzMjYwe2ZvbnQtc2l6ZToyNjAlIWltcG9ydGFudH0KLmZzMjgwe2ZvbnQtc2l6ZToyODAlIWltcG9ydGFudH0KLmZzMzAwe2ZvbnQtc2l6ZTozMDAlIWltcG9ydGFudH0KLmZzMzIwe2ZvbnQtc2l6ZTozMjAlIWltcG9ydGFudH0KLmZzMzQwe2ZvbnQtc2l6ZTozNDAlIWltcG9ydGFudH0KLmZzMzYwe2ZvbnQtc2l6ZTozNjAlIWltcG9ydGFudH0KLmZzMzgwe2ZvbnQtc2l6ZTozODAlIWltcG9ydGFudH0KLmZzNDAwe2ZvbnQtc2l6ZTo0MDAlIWltcG9ydGFudH0KLmxoNzB7bGluZS1oZWlnaHQ6MC43ZW19Ci5saDc1e2xpbmUtaGVpZ2h0OjAuNzVlbX0KLmxoODB7bGluZS1oZWlnaHQ6MC44ZW19Ci5saDg1e2xpbmUtaGVpZ2h0OjAuODVlbX0KLmxoOTB7bGluZS1oZWlnaHQ6MC45ZW19Ci5saDk1e2xpbmUtaGVpZ2h0OjAuOTVlbX0KLmxoMTAwe2xpbmUtaGVpZ2h0OjFlbX0KLmxoMTA1e2xpbmUtaGVpZ2h0OjEuMDVlbX0KLmxoMTEwe2xpbmUtaGVpZ2h0OjEuMWVtfQoubGgxMTV7bGluZS1oZWlnaHQ6MS4xNWVtfQoubGgxMjB7bGluZS1oZWlnaHQ6MS4yZW19Ci5saDEyNXtsaW5lLWhlaWdodDoxLjI1ZW19Ci5saDEzMHtsaW5lLWhlaWdodDoxLjNlbX0KLmxoMTQwe2xpbmUtaGVpZ2h0OjEuNGVtfQoubGgxNTB7bGluZS1oZWlnaHQ6MS41ZW19Ci5saDE2MHtsaW5lLWhlaWdodDoxLjZlbX0KLmxoMTcwe2xpbmUtaGVpZ2h0OjEuN2VtfQoubGgxODB7bGluZS1oZWlnaHQ6MS44ZW19Ci5saDE5MHtsaW5lLWhlaWdodDoxLjllbX0KLmxoMjAwe2xpbmUtaGVpZ2h0OjJlbX0KLmxoMjIwe2xpbmUtaGVpZ2h0OjIuMmVtfQoubGgyNDB7bGluZS1oZWlnaHQ6Mi40ZW19Ci5saDI1MHtsaW5lLWhlaWdodDoyLjVlbX0KLmxoMjYwe2xpbmUtaGVpZ2h0OjIuNmVtfQoubGgyODB7bGluZS1oZWlnaHQ6Mi44ZW19Ci5saDMwMHtsaW5lLWhlaWdodDozZW19Ci5zbWFsbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMzdlbX0KLmJvbGR7Zm9udC13ZWlnaHQ6Ym9sZH0KLmJvbGRlcntmb250LXdlaWdodDpib2xkZXJ9Ci5mdzIwMHtmb250LXdlaWdodDoyMDB9Ci5mdzMwMHtmb250LXdlaWdodDozMDB9Ci5mdzQwMHtmb250LXdlaWdodDo0MDB9Ci5mdzUwMHtmb250LXdlaWdodDo1MDB9Ci5mdzYwMHtmb250LXdlaWdodDo2MDB9Ci50ZG57dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fQoudGRse3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2ghaW1wb3J0YW50fQouZmlsdGVyLW5vbWF0Y2h7ZGlzcGxheTpub25lIWltcG9ydGFudH0KLm53e3doaXRlLXNwYWNlOm5vd3JhcH0KLmVsbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30KLndiYXt3b3JkLWJyZWFrOmJyZWFrLWFsbH0KLnZhdHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50fQoudmFie3ZlcnRpY2FsLWFsaWduOmJvdHRvbSFpbXBvcnRhbnR9Ci52YWx7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fQoudmFte3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9Ci50YWN7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fQoudGFye3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fQoudGFse3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9Ci5iYnN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJ0c3tib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmJke2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnRke2JvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmFze2JvcmRlcjoxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJhZHtib3JkZXI6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnIye2JvcmRlci1yYWRpdXM6MnB4IWltcG9ydGFudH0KLmJyNHtib3JkZXItcmFkaXVzOjRweCFpbXBvcnRhbnR9Ci5icjZ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50fQouYnI4e2JvcmRlci1yYWRpdXM6OHB4IWltcG9ydGFudH0KLmJyMTB7Ym9yZGVyLXJhZGl1czoxMHB4IWltcG9ydGFudH0KLmJyMTAwe2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50fQouYjF7Ym9yZGVyLXdpZHRoOjFweCFpbXBvcnRhbnR9Ci5iMntib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudH0KLmIze2JvcmRlci13aWR0aDozcHghaW1wb3J0YW50fQouYjR7Ym9yZGVyLXdpZHRoOjRweCFpbXBvcnRhbnR9Ci5iNXtib3JkZXItd2lkdGg6NXB4IWltcG9ydGFudH0KQGtleWZyYW1lcyByb3RhdGUzNjB7ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDBkZWcpfQp0b3t0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDM2MGRlZyl9fQouYXJvdDA1c3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjAuNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcn0KLmFyb3Qxc3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9Ci5hcm90MnN7YW5pbWF0aW9uLW5hbWU6cm90YXRlMzYwO2FuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyfQpkaXYubXktbW9kYWwtc2NyZWVue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMiwgNTAsIDkwLCAwLjg4KTtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjE5OTc7dG9wOjA7bGVmdDowfQpkaXYubXktbW9kYWx7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxOTk4O2JveC1zaGFkb3c6MCAwIDY5cHggMTBweCByZ2JhKDI4LCAzMiwgMzgsIDAuNSk7cGFkZGluZzozMHB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHh9CmRpdi5teS1tb2RhbC5teS1tb2RhbC1sb2FkaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pL2xvYWRlci1iYXIyLmdpZicpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3B9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZXtmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLCAiU2Vnb2UgVUkiLCBBcmlhbCwgc2Fucztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTlwdDtyaWdodDotOHB0O2ZvbnQtc2l6ZToyMHB0O2xpbmUtaGVpZ2h0OjEzcHQ7bWFyZ2luOjA7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHQgNnB0IDhwdCA2cHQ7Y29sb3I6IzJkNjZiODtib3JkZXItcmFkaXVzOjIwcHQ7YmFja2dyb3VuZDojZTVmM2ZmO3RyYW5zaXRpb246Y29sb3IgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjE5OTl9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZTpob3Zlcntjb2xvcjojMTJhNWRjfQpkaXYubXktbW9kYWwubXktbW9kYWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE5OTg7Ym94LXNoYWRvdzowIDAgMTFweCA2cHggcmdiYSgyOCwgMzIsIDM4LCAwLjA4KSwgMCAwIDZweCByZ2JhKDI4LCAzMiwgMzgsIDAuMTUpO3BhZGRpbmc6MTBweCAxNXB4IDEzcHggMTVweDtib3JkZXItcmFkaXVzOjNweH0KZGl2Lm15LW1vZGFsLm15LW1vZGFsLW92ZXJsYXkgPiAubXktbW9kYWwtY2xvc2V7dG9wOi0wLjJwdDtyaWdodDotMC4ycHQ7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MnB0IDNwdCAzcHQgM3B0fQpkaXYubXktbW9kYWwgPiAubXktbW9kYWwtbm9zZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyOCwgMzIsIDM4LCAwLjE1KTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTt0b3A6MDtsZWZ0OjB9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnQ6YmVmb3JlLCBkaXYubXktbW9kYWwubm9zZS1yaWdodDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLXRvcDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjgsIDMyLCAzOCwgMC4xNSk7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnR7bWFyZ2luLWxlZnQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS1yaWdodHttYXJnaW4tcmlnaHQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS10b3B7bWFyZ2luLXRvcDo3cHh9CmRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbXttYXJnaW4tYm90dG9tOjdweH0KZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmV7bGVmdDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9CmRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZXtyaWdodDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS10b3A6YmVmb3Jle2xlZnQ6NTAlO3RvcDotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS1ib3R0b206YmVmb3Jle2xlZnQ6NTAlO2JvdHRvbTotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfQoubXktdGFnc3twb3NpdGlvbjpyZWxhdGl2ZX0KLm15LXRhZ3MgLnRhZ3twYWRkaW5nOjAuMTVlbSAwLjM1ZW0gMC4yMmVtIDAuMzVlbTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Ci5teS10YWdzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojMjM0ZjhmO3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzNCwgMTE0LCAxMzQsIDAuMzUpO2NvbG9yOiNkNjJjNDl9Ci5teS10YWdzIC50YWcuYWN0aXZlOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5zZWxlY3QyLWNvbnRhaW5lcnttYXJnaW46MDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Ci5zZWxlY3QyLWNvbnRhaW5lciwgLnNlbGVjdDItZHJvcCwgLnNlbGVjdDItc2VhcmNoLCAuc2VsZWN0Mi1zZWFyY2ggaW5wdXR7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNle2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowIDAgMCAwLjRlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDoyZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZXtib3JkZXItYm90dG9tLWNvbG9yOiNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItYWxsb3djbGVhciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDo0MnB4fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlID4gLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDoyNnB4O2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Zsb2F0Om5vbmU7d2lkdGg6YXV0bztsaW5lLWhlaWdodDoxLjllbTtjb2xvcjojNGQ1YTZhfQpodG1sW2Rpcj0icnRsIl0gLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSA+IC5zZWxlY3QyLWNob3NlbnttYXJnaW4tbGVmdDoyNnB4O21hcmdpbi1yaWdodDowfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnJ7ZGlzcGxheTpub25lO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjRweDt0b3A6OHB4O2ZvbnQtc2l6ZToxcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCB0b3A7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1hbGxvd2NsZWFyIC5zZWxlY3QyLWNob2ljZSBhYmJye2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnI6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtMTFweDtjdXJzb3I6cG9pbnRlcn0KLnNlbGVjdDItZHJvcC1tYXNre2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7bWluLWhlaWdodDoxMDAlO21pbi13aWR0aDoxMDAlO2hlaWdodDphdXRvO3dpZHRoOmF1dG87b3BhY2l0eTowO3otaW5kZXg6Mjk5NztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCl9Ci5zZWxlY3QyLWRyb3B7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi0xcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyOTk4O3RvcDoxMDAlO2ZvbnQtc2l6ZTowLjhlbTtsaW5lLWhlaWdodDoxLjM1ZW07YmFja2dyb3VuZDojZmZmO2NvbG9yOmluaGVyaXQ7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci10b3A6MDtjb2xvcjojNGQ1YTZhO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9Ci5zZWxlY3QyLWRyb3AgbGl7bWFyZ2luLWxlZnQ6MH0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmV7bWFyZ2luLXRvcDoxcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXJhZGl1czoycHggMnB4IDAgMH0KLnNlbGVjdDItZHJvcC1hY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O2JvcmRlci10b3A6bm9uZX0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmUuc2VsZWN0Mi1kcm9wLWFjdGl2ZXtib3JkZXItdG9wOjFweCBzb2xpZCAjOWVjZGY4fQouc2VsZWN0Mi1kcm9wLWF1dG8td2lkdGh7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDt3aWR0aDphdXRvfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE4cHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtib3JkZXItbGVmdDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjAgMnB4IDJweCAwO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kOiNlM2U4ZWJ9Ci5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjowIDFweH0KLnNlbGVjdDItc2VhcmNoe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7bWluLWhlaWdodDoyNnB4O21hcmdpbjowO3BhZGRpbmc6NHB4IDRweCAwIDRweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI5OTk7d2hpdGUtc3BhY2U6bm93cmFwfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXR7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDoyNnB4O3BhZGRpbmc6NHB4IDIwcHggNHB4IDVweDttYXJnaW46MDtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIycHh9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dC5zZWxlY3QyLWFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmZmZmYgdXJsKCcuLi9pL3NwaW5uZXIuZ2lmJykgbm8tcmVwZWF0IDEwMCV9Ci5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlLCAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZXN7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O291dGxpbmU6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLWRyb3Bkb3duLW9wZW4uc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZSwgLnNlbGVjdDItZHJvcGRvd24tb3Blbi5zZWxlY3QyLWRyb3AtYWJvdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudH0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnQ7ZmlsdGVyOm5vbmV9Ci5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudDtib3JkZXItbGVmdDpub25lIWltcG9ydGFudDtmaWx0ZXI6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOHB4IDFweH0KLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGV7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9Ci5zZWxlY3QyLXJlc3VsdHN7bWF4LWhlaWdodDoyNTBweDtwYWRkaW5nOjAgMCAwIDRweDttYXJnaW46NHB4IDRweCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMCk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Cmh0bWxbZGlyPSJydGwiXSAuc2VsZWN0Mi1yZXN1bHRze3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjo0cHggMCA0cHggNHB4fQouc2VsZWN0Mi1yZXN1bHRzIHVsLnNlbGVjdDItcmVzdWx0LXN1YnttYXJnaW46MDtwYWRkaW5nLWxlZnQ6MH0KLnNlbGVjdDItcmVzdWx0cyBsaXtsaXN0LXN0eWxlOm5vbmU7ZGlzcGxheTpsaXN0LWl0ZW07YmFja2dyb3VuZC1pbWFnZTpub25lfQouc2VsZWN0Mi1yZXN1bHRzIGxpLnNlbGVjdDItcmVzdWx0LXdpdGgtY2hpbGRyZW4gPiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZzoxcHggMHB4IDJweDttYXJnaW46MDtjdXJzb3I6cG9pbnRlcjttaW4taGVpZ2h0OjFlbTstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0xIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MHB4fQouc2VsZWN0Mi1yZXN1bHRzLWRlcHQtMiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZy1sZWZ0OjEwcHh9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0zIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MjBweH0KLnNlbGVjdDItcmVzdWx0cy1kZXB0LTQgLnNlbGVjdDItcmVzdWx0LWxhYmVse3BhZGRpbmctbGVmdDozMHB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIGxpIGVte2JhY2tncm91bmQ6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KTtmb250LXN0eWxlOm5vcm1hbH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1oaWdobGlnaHRlZCBlbXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVkIHVse2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLW5vLXJlc3VsdHMsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VhcmNoaW5nLCAuc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWFqYXgtZXJyb3IsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VsZWN0aW9uLWxpbWl0e2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbTtwYWRkaW5nLWxlZnQ6NXB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWRpc2FibGVkLnNlbGVjdDItaGlnaGxpZ2h0ZWR7Y29sb3I6IzRkNWE2YTtiYWNrZ3JvdW5kOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7ZGlzcGxheTpsaXN0LWl0ZW07Y3Vyc29yOmRlZmF1bHR9Ci5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItZGlzYWJsZWR7YmFja2dyb3VuZDpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpO2Rpc3BsYXk6bGlzdC1pdGVtO2N1cnNvcjpkZWZhdWx0fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLXNlbGVjdGVke2Rpc3BsYXk6bm9uZX0KLnNlbGVjdDItbW9yZS1yZXN1bHRzLnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KSB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJX0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1hamF4LWVycm9ye2JhY2tncm91bmQ6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KX0KLnNlbGVjdDItbW9yZS1yZXN1bHRze2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbX0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1sZWZ0OjB9Ci5zZWxlY3QyLWNvbnRhaW5lci5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2UgYWJicntkaXNwbGF5Om5vbmV9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2Vze21pbi1oZWlnaHQ6MjZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbjowO3BhZGRpbmc6MCAwIDJweCAwO2N1cnNvcjp0ZXh0O292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmV9Ci5zZWxlY3QyLWxvY2tlZHtwYWRkaW5nOjNweCA1cHggM3B4IDVweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7b3V0bGluZTpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyBsaXtmbG9hdDpsZWZ0O2xpc3Qtc3R5bGU6bm9uZX0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxke21hcmdpbjowO3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpub3dyYXB9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1maWVsZCBpbnB1dHtwYWRkaW5nOjNweCA2cHg7bWFyZ2luOjNweCAwO2ZvbnQtc2l6ZTowLjllbTtsaW5lLWhlaWdodDoxLjFlbTtvdXRsaW5lOm5vbmU7Ym9yZGVyOjAhaW1wb3J0YW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQhaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LCAubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0OmZvY3Vze2JvcmRlcjowIWltcG9ydGFudH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6I2ZmZmZmZiB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJSFpbXBvcnRhbnR9Ci5zZWxlY3QyLWRlZmF1bHR7Y29sb3I6I2I5YzBjYiFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpO2ZpbHRlcjpub25lO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtjb2xvcjojNGQ1YTZhO2JvcmRlcjpub25lO2xpbmUtaGVpZ2h0OjEuMWVtO2ZvbnQtc2l6ZTowLjllbTtwYWRkaW5nOjNweCA4cHggNHB4IDE2cHg7bWFyZ2luOjNweCAwIDBweCAzcHg7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOmRlZmF1bHQ7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlIC5zZWxlY3QyLWNob3NlbntjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1mb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxM3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt0b3A6NHB4O2ZvbnQtc2l6ZToxcHg7b3V0bGluZTpub25lO2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtsZWZ0OjNweH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZSAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTExcHh9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtZm9jdXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0xMXB4fQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkuc2VsZWN0Mi1jb250YWluZXItZGlzYWJsZWQgLnNlbGVjdDItY2hvaWNlc3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZXtwYWRkaW5nLWxlZnQ6NXB4O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSl9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDpub25lfQouc2VsZWN0Mi1yZXN1bHQtc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaCwgLnNlbGVjdDItcmVzdWx0LXVuc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQouc2VsZWN0Mi1vZmZzY3JlZW4sIC5zZWxlY3QyLW9mZnNjcmVlbjpmb2N1c3tjbGlwOnJlY3QoMCAwIDAgMCkhaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O291dGxpbmU6MCFpbXBvcnRhbnQ7bGVmdDowcHghaW1wb3J0YW50O3RvcDowcHghaW1wb3J0YW50fQouc2VsZWN0Mi1kaXNwbGF5LW5vbmV7ZGlzcGxheTpub25lfQouc2VsZWN0Mi1tZWFzdXJlLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwMDAwcHg7bGVmdDotMTAwMDBweDt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7b3ZlcmZsb3c6c2Nyb2xsfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXQsIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2UsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgYWJiciwgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvdyBie2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRHdBQUFBb0NBWUFBQUNpdTVuL0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBcDlKUkVGVWVOcnNtZHRMRzFFUXhqZWFwRjZLWXJXQ1Y3eTBVR3NGcVJTdkQwWGY5S0VQL1RNRjhRK1FncWlsU0d0b29RVXIzckRpTFdnYmE3eWdpZC9ndC9WNFdKbzFOZGFkT1BBankxbGR6cmN6NTV5WjJWQTZuWGJ5eVFxY1BMTzhFeHoyR2d5RlFvR1l2THNjT2Q4dXNBbldlYnNhMUlOWTJsaTNZU1dPYTZLNFNwQUFaNkFEUE9UOU9XMkNkOEZ2Q3V3WDU0TWlqcTFyWE1QaTFTbXdEeDVRYkJLOEIxdGFONjJvcFVldUkxcDM2VWRnQUpReWpCUDBjaDlvK0IrQ293eTFYRmtabjMvRU1KNmhjQm1yeW5nc3dacmRuZDhZS3dScjRDU0xDYjBDeFdBaVI0SlhPTmVmNEpCakh5aDIxWS9nQ3RCdWpmMnkvL2thNGRiQzZ4cXdrYVB6Mko3YkFmRzFodWVzQjZUQU5Eak4wcnZtOVkwdEkwazQvT0IzRGNkNGdJdk44Nnk3cnJVejQzR3RITHk4YzZrbGJaOUNuNEl2Ly9EOEJUc0MrYUpUTjZoRGpwOUI3akhmT05aS3BveDFuVEhUK3NwTTVTVExpWHkrSmNkMWdoZU1xQ1RuTzhJWElkblgySjlsNEZVUEI2VjRNRXhFRGZQTVBXTVVoZW54ZDlBWTE1WjR5Sms3eW1xcGtHSjM2ZG00MXRTeTNxaU94RXJzTEV1VDRDZmdMUVZMR0M4enRYd0RlalFLTG1Bb2I0Tng4c01JNzZ0WmlrMUFyZEVLNldLT1hkR21aWmYyMVFyU3RtbjVqdjE3d2ZlQ0ZWbFF1NVlSNTdKZmRXZzFLdFFKbG41em0zUFpNdHBqa2JLbU1hUjdXUm1kc2treHorN01hK2VpR2EvS3czVk1JYVZBbURSSzFpVXdCTHA1NzBpTGh4djVPMnZWNTNIVzdkSVpyZFFVMGhGMlNSSWU5L2I4NmdtUzRBUE90ODdqbnJ0K2p6VUpYdVN2ZkUyb05id3VyWjBXdnBEdFRBOEpXdkhRU3NFT1F6dkt1dGMxYWVCOStsdnhFTFJ6ZUpGQ24vRTRraDM1TzNVOEorS3RqNW9TangxaVc0cmgzVWJSTWNmanc0R21YRHJHakN2RkNIaWNEOFdEZkRCd1A0QW52ZjdnWElBQkFGdXF0WS9jUUs4aEFBQUFBRWxGVGtTdVFtQ0MpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9CkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOjJkcHB4KSB7LnNlbGVjdDItc2VhcmNoIGlucHV0LCAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlLCAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnIsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQlFDQVlBQUFEU203R0pBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQkRaSlJFRlVlTnJzbk05UEUwRVV4NmVDWWlEQmt6OFNERDlpd2dGamhFUTRlT3FkZjlSL2dJdnh3QmxpaWpFYVUxUzBFVUxrMUNaRlRXM3FHenBMbnN1ODdRN2IyYzRzMzIveTBxWHp1aVQ5N0p2OXZ0bnUxZ2FEZ1lLcXExdjRDZ0FZQW1Bb1ZFM2pLd2hMdFZvdDJkd3dyNDJNOUlzYzhsRU5BSTVMR3R3aSs3dVJsYU1QQ2dreXB1anc0UzZ5YWhaekNQSUdBTWNyRGprTk4zdktSeDhjNURsWWd0aWxtTE84MzVLbWFBQU8yMlRscWRSV2xzbkNGQjJ1TkxSV0ViZ0FIQWZrcmpEV0hkRkNBWEFram5wT0dKdXp1R3NBanJoZHNycHJxVDBDNERqaGRsMGhBM0E4Y0xYaGVpTVlMeXgwUks0V00xUjUzUFdsb2w2TFpqMGoxMVB6K2lFOUVFblBuNEJjdE1BVmM2UjJxV29YRzdTelhEUGIzekphakZnZ3E0eFdxTUVPWExGZGNsckpvb3JacHBmWm5Pbm50Tytka2l1NFRuSGZiSjlSN0VaWXdXT1Y2emw0MzFQdU9MVEE0Q3F6dlhEVFQ5NnVnSDlTbk9USU96RzVaZWsyeGJybC9YVXpCc0FPT3FEb1pZejNURTZaV2hWT0hiTm1ESUFkcEkzTFljYjRZY25taGhzcm05YVV2TndId0lKMEMzSnVNMWEyOXNTek5zZVVBOEE1VE5Ta2paV2tHMnU0aWdCT0c2NnlqWlVTak5VNGNpY20zZnFacUp0UUdYR1JrN1cvb2dzZEI2eUN5alpXeW5lZlBVSFZVK1p3Tnl2SC9LcHkxd2RnYnJpNkN2SUJkOVVDK1VxT0JIbmFzV0lrd3dYNWJ3TVR5SFdYMWc4L3VndndISndCc1VNeGIzbS9LVTNSQUJ3bVlPVlFxU0xjb2k0YThpc05yVmtFTGdESEFia2pqSFVFZHczQWtUbnFlV0ZzM293RGNFWGFKYXU3SHJYUUFjQnh3ZTI0UWdiZ2VPQnF3L1ZLTUY0aVpBQ09RMDFtcVBLNGF3Q09xRDFxV3R6eWxSeGZhOUdRUDhpMmJXdE9WaStNbGF5S0MxTTBBRU1BREFFd0JNQVFBRU1BREFFd0FFTUFEQUV3Qk1DUWIrRnFraWRaSGkraGIwUmZvVmltdUpjYWE2dmhNMFdPVk9yZTY2SVhnM0ExcVJ6QStzN0dUVFg2YVFNYXJyNUQ4eGlBNHdHOHJPejNKeWRmdk8xWlVQdW1vZ3NEeGhUdFZ3c3B1SnFXdmtuK0U4VXBPd0IwekRMWW02YWFqd3NmYUtoZ2J4V3NwK050TmkzM0tiNVN2RGZiWERNVXo5VHd3V1pUYkxyZUlUNDl1T2d3dGNMZzZpcjZvb2IzVVBjdHVYOG8zcHBwZVpBeVpXaVRBdFV5Mjg3ejdCSU45aDNGYjJFZkFCeVllQ3YwbWVKdmpzLzBFM05sMlFjQUJ5d1hzM1RHcG1rRndIRm9hbEwvR0lETDBTT0gzSWRDYnd6QWdhbk50cC9rWEhPWVVmOC83YjBOd09HS215WDlLTVhuSTc3dktaTnpWOWdIQUFjbWZ1RkFUN2xMRkM5TWxhWjFoMktMNGpHYm5yWFJPdUlQUHJ1T3NKTGxTUWFJWHFwOG1lcDFmMUg4VU1PbFNsMWdEOHkwUEdNNTkzNm4yTHY4OERWWUFiQmZ3TWxpaGV2RkJpdGtBQTRUY0ZMSmVTNFhEZ1RnRjVBQk9GekFTdVcvNEw5aHp0ZFhJQk9yUFFDdXhrR3hOUzdJY05GaGFzOU15Mmt0MFVHd2hRcXV6clF1VlhLYnVMMUdCVmUza25OZlpRTGdlQ0VEY01VZzgzWHBqemdIUTZqZ202Qi9BZ3dBU2Y5SmRHbEcwODBBQUFBQVNVVk9SSzVDWUlJPSkhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjYwcHggNDBweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIxcHghaW1wb3J0YW50fX0KLnVpLXNsaWRlcntib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50O2JhY2tncm91bmQ6d2hpdGU7Zm9udC1zaXplOjkwJTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnR9Ci51aS1zbGlkZXItaG9yaXpvbnRhbHtoZWlnaHQ6MC40ZW19Ci51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtiYWNrZ3JvdW5kOiNlM2U4ZWI7Ym9yZGVyLXJhZGl1czozcHg7aGVpZ2h0OjEuMWVtO3dpZHRoOjEuMWVtO291dGxpbmU6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2N1cnNvcjpkZWZhdWx0fQoudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlcntiYWNrZ3JvdW5kOiNjYmU3ZmU7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4fQoudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2ZvbnQtc2l6ZTouN2VtO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZXt0b3A6LTAuNGVtO21hcmdpbi1sZWZ0Oi0wLjU1ZW19Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdle3RvcDowO2hlaWdodDoxMDAlfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7cmlnaHQ6MH0KLnVpLXNsaWRlci12ZXJ0aWNhbHt3aWR0aDouNGVtO2hlaWdodDoxMDBweH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0wLjRlbTttYXJnaW4tbGVmdDowO21hcmdpbi1ib3R0b206LTAuNTVlbX0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdle2xlZnQ6MDt3aWR0aDoxMDAlfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWlue2JvdHRvbTowfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfQppbnB1dFt0eXBlPSJyYW5nZSJdIHtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czoxMDBweDtiYWNrZ3JvdW5kOndoaXRlO2ZvbnQtc2l6ZTo5MCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjAuNGVtfQppbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MDttYXJnaW4tbGVmdDowO3otaW5kZXg6MTtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7YmFja2dyb3VuZDojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2hlaWdodDoxLjFlbTt3aWR0aDoxLjFlbX0KaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojYjdkYmZiO2JvcmRlcjoxcHggc29saWQgI2I3ZGJmYn0KLnVpLXdpZGdldHtmb250LXNpemU6OTAlfQpib2R5ID4gLnVpLWF1dG9jb21wbGV0ZXtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjNlbX0KLnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOndoaXRlO2NvbG9yOiM0ZDVhNmF9Ci51aS1zdGF0ZS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2JlN2ZlfQoudWktc3RhdGUtaGlnaGxpZ2h0e2JveC1zaGFkb3c6MCAwIDAgMXB4ICNkMGQ2ZGQgaW5zZXR9Ci51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApfQoudWktd2lkZ2V0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Ci51aS1zdGF0ZS1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNjYmU3ZmV9Ci51aS1hdXRvY29tcGxldGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2N1cnNvcjpkZWZhdWx0O2JvcmRlci1jb2xvcjojOWVjZGY4O2JvcmRlci10b3A6bm9uZTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7ei1pbmRleDo5OTk5fQoudWktbWVudXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2Rpc3BsYXk6YmxvY2s7b3V0bGluZTpub25lfQoudWktbWVudSAudWktbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDtwYWRkaW5nOjNweCAxZW0gM3B4IC40ZW07Y3Vyc29yOnBvaW50ZXI7bWluLWhlaWdodDowO2xpc3Qtc3R5bGUtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTciKX0KLnVpLXRvb2x0aXB7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk5O21heC13aWR0aDozMDBweDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDVweCAjYWFhO2JveC1zaGFkb3c6MCAwIDVweCAjYWFhfQoudWktdG9vbHRpcHtwYWRkaW5nOjhweCAxMnB4IDlweCAxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NTk5OTk7bWF4LXdpZHRoOjI1MHB4O21pbi13aWR0aDoyMDBweDtib3gtc2hhZG93OjJweCAycHggMHB4IHJnYmEoMjgsIDMyLCAzOCwgMC4wOCk7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Zm9udC1zaXplOjkwJTtsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNmI5ZmRiO2hlaWdodDphdXRvfQoudWktdG9vbHRpcDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi03cHg7dG9wOjEwcHg7d2lkdGg6MTFweDtoZWlnaHQ6MTFweDtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt6LWluZGV4OjU5OTk4fQouQ29kZU1pcnJvcntmb250OjEzcHggQ291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7aGVpZ2h0OmF1dG99Ci5Db2RlTWlycm9yLXNjcm9sbHtvdmVyZmxvdzphdXRvfQouQ29kZU1pcnJvci1saW5lc3twYWRkaW5nOjRweCAwfQouQ29kZU1pcnJvciBwcmV7cGFkZGluZzowIDRweH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlciwgLkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlcntiYWNrZ3JvdW5kLWNvbG9yOndoaXRlfQouQ29kZU1pcnJvci1ndXR0ZXJze2JvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7d2hpdGUtc3BhY2U6bm93cmFwfQouQ29kZU1pcnJvci1saW5lbnVtYmVye3BhZGRpbmc6MCAzcHggMCA1cHg7bWluLXdpZHRoOjIwcHg7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjojOTk5O3doaXRlLXNwYWNlOm5vd3JhcH0KLkNvZGVNaXJyb3IgZGl2LkNvZGVNaXJyb3ItY3Vyc29ye2JvcmRlci1sZWZ0OjFweCBzb2xpZCBibGFjazt6LWluZGV4OjN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLXNlY29uZGFyeWN1cnNvcntib3JkZXItbGVmdDoxcHggc29saWQgc2lsdmVyfQouQ29kZU1pcnJvci5jbS1rZXltYXAtZmF0LWN1cnNvciBkaXYuQ29kZU1pcnJvci1jdXJzb3J7d2lkdGg6YXV0bztib3JkZXI6MDtiYWNrZ3JvdW5kOiM3ZTc7ei1pbmRleDoxfQouY20tdGFie2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouY20tcy1kZWZhdWx0IC5jbS1rZXl3b3Jke2NvbG9yOiM3MjM1OTR9Ci5jbS1zLWRlZmF1bHQgLmNtLWF0b217Y29sb3I6I2ZmNGQwMX0KLmNtLXMtZGVmYXVsdCAuY20tbnVtYmVye2NvbG9yOiM2NTljMTN9Ci5jbS1zLWRlZmF1bHQgLmNtLWRlZntjb2xvcjojYzMwYzNifQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZXtjb2xvcjojMzNiZmFkfQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZS0ye2NvbG9yOiMwMDU1YWF9Ci5jbS1zLWRlZmF1bHQgLmNtLXZhcmlhYmxlLTN7Y29sb3I6IzAwODg1NX0KLmNtLXMtZGVmYXVsdCAuY20tcHJvcGVydHl7Y29sb3I6IzQzNGU1ZH0KLmNtLXMtZGVmYXVsdCAuY20tb3BlcmF0b3J7Y29sb3I6IzM2MzYzNn0KLmNtLXMtZGVmYXVsdCAuY20tY29tbWVudHtjb2xvcjojNGFhYTAwfQouY20tcy1kZWZhdWx0IC5jbS1zdHJpbmd7Y29sb3I6IzQ4NWU3N30KLmNtLXMtZGVmYXVsdCAuY20tc3RyaW5nLTJ7Y29sb3I6I2ZmNTUwMH0KLmNtLXMtZGVmYXVsdCAuY20tbWV0YXtjb2xvcjojNTU1NTU1fQouY20tcy1kZWZhdWx0IC5jbS1xdWFsaWZpZXJ7Y29sb3I6IzU1NTU1NX0KLmNtLXMtZGVmYXVsdCAuY20tYnVpbHRpbntjb2xvcjojMzMwMGFhfQouY20tcy1kZWZhdWx0IC5jbS1icmFja2V0e2NvbG9yOiM5OTk5Nzd9Ci5jbS1zLWRlZmF1bHQgLmNtLXRhZ3tjb2xvcjojNzNhYzE5fQouY20tcy1kZWZhdWx0IC5jbS1hdHRyaWJ1dGV7Y29sb3I6IzAwNDdjY30KLmNtLXMtZGVmYXVsdCAuY20taGVhZGVye2NvbG9yOiNiNjAwMDB9Ci5jbS1zLWRlZmF1bHQgLmNtLXF1b3Rle2NvbG9yOiNmODM0Yzh9Ci5jbS1zLWRlZmF1bHQgLmNtLWhye2NvbG9yOiM5OTk5OTl9Ci5jbS1zLWRlZmF1bHQgLmNtLWxpbmt7Y29sb3I6IzU0ODFhMH0KLmNtLW5lZ2F0aXZle2NvbG9yOiNkZDQ0NDR9Ci5jbS1wb3NpdGl2ZXtjb2xvcjojMjI5OTIyfQouY20taGVhZGVyLCAuY20tc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGR9Ci5jbS1lbXtmb250LXN0eWxlOml0YWxpY30KLmNtLWxpbmt7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0KLmNtLXN0cmlrZXRocm91Z2h7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmNtLXMtZGVmYXVsdCAuY20tZXJyb3J7Y29sb3I6I2Q2MmM0OX0KLmNtLWludmFsaWRjaGFye2NvbG9yOiNmZjAwMDB9CmRpdi5Db2RlTWlycm9yIHNwYW4uQ29kZU1pcnJvci1tYXRjaGluZ2JyYWNrZXR7Y29sb3I6IzAwZmYwMH0KZGl2LkNvZGVNaXJyb3Igc3Bhbi5Db2RlTWlycm9yLW5vbm1hdGNoaW5nYnJhY2tldHtjb2xvcjojZmYyMjIyfQouQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmR7YmFja2dyb3VuZDojZThmMmZmfQouQ29kZU1pcnJvcntsaW5lLWhlaWdodDoxLjMyZW07cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6d2hpdGU7Y29sb3I6IzMzM30KLkNvZGVNaXJyb3Itc2Nyb2xse21hcmdpbi1ib3R0b206LTMwcHg7bWFyZ2luLXJpZ2h0Oi0zMHB4O3BhZGRpbmctYm90dG9tOjMwcHg7cGFkZGluZy1yaWdodDozMHB4O2hlaWdodDoxMDAlO291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0KLkNvZGVNaXJyb3Itc2l6ZXJ7cG9zaXRpb246cmVsYXRpdmV9Ci5Db2RlTWlycm9yLXZzY3JvbGxiYXIsIC5Db2RlTWlycm9yLWhzY3JvbGxiYXIsIC5Db2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXIsIC5Db2RlTWlycm9yLWd1dHRlci1maWxsZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2O2Rpc3BsYXk6bm9uZX0KLkNvZGVNaXJyb3ItdnNjcm9sbGJhcntyaWdodDowO3RvcDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6c2Nyb2xsfQouQ29kZU1pcnJvci1oc2Nyb2xsYmFye2JvdHRvbTowO2xlZnQ6MDtvdmVyZmxvdy15OmhpZGRlbjtvdmVyZmxvdy14OnNjcm9sbH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlcntyaWdodDowO2JvdHRvbTowfQouQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVye2xlZnQ6MDtib3R0b206MH0KLkNvZGVNaXJyb3ItZ3V0dGVyc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cGFkZGluZy1ib3R0b206MzBweDt6LWluZGV4OjN9Ci5Db2RlTWlycm9yLWd1dHRlcnt3aGl0ZS1zcGFjZTpub3JtYWw7aGVpZ2h0OjEwMCU7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7cGFkZGluZy1ib3R0b206MzBweDttYXJnaW4tYm90dG9tOi0zMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyp6b29tOjE7KmRpc3BsYXk6aW5saW5lfQouQ29kZU1pcnJvci1ndXR0ZXItZWx0e3Bvc2l0aW9uOmFic29sdXRlO2N1cnNvcjpkZWZhdWx0O3otaW5kZXg6NH0KLkNvZGVNaXJyb3ItbGluZXN7Y3Vyc29yOnRleHQ7bGluZS1oZWlnaHQ6MS4zZW19Ci5Db2RlTWlycm9yIHByZXstbW96LWJvcmRlci1yYWRpdXM6MDstd2Via2l0LWJvcmRlci1yYWRpdXM6MDtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXdpZHRoOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O21hcmdpbjowO3doaXRlLXNwYWNlOnByZTt3b3JkLXdyYXA6bm9ybWFsO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt6LWluZGV4OjI7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6dmlzaWJsZX0KLkNvZGVNaXJyb3Itd3JhcCBwcmV7d29yZC13cmFwOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpub3JtYWx9Ci5Db2RlTWlycm9yLWNvZGUgcHJle2JvcmRlci1yaWdodDozMHB4IHNvbGlkIHRyYW5zcGFyZW50O3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudH0KLkNvZGVNaXJyb3Itd3JhcCAuQ29kZU1pcnJvci1jb2RlIHByZXtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDphdXRvfQouQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDt6LWluZGV4OjB9Ci5Db2RlTWlycm9yLWxpbmV3aWRnZXR7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO292ZXJmbG93OmF1dG99Ci5Db2RlTWlycm9yLXdyYXAgLkNvZGVNaXJyb3Itc2Nyb2xse292ZXJmbG93LXg6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3Zpc2liaWxpdHk6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJlIHByZXtwb3NpdGlvbjpzdGF0aWN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcntwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDowfQouQ29kZU1pcnJvci1mb2N1c2VkIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OnZpc2libGV9Ci5Db2RlTWlycm9yLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q5ZDlkOX0KLkNvZGVNaXJyb3ItZm9jdXNlZCAuQ29kZU1pcnJvci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiNkN2Q0ZjB9Ci5jbS1zZWFyY2hpbmd7YmFja2dyb3VuZDojZmZhO2JhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMCwgMC40KX0KQG1lZGlhIHByaW50ey5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OmhpZGRlbn19Ci5qY3JvcC1ob2xkZXJ7ZGlyZWN0aW9uOmx0cjt0ZXh0LWFsaWduOmxlZnR9Ci5qY3JvcC12bGluZSwgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I2ZmZmZmZjtmb250LXNpemU6MDtwb3NpdGlvbjphYnNvbHV0ZX0KLmpjcm9wLXZsaW5le2hlaWdodDoxMDAlO3dpZHRoOjFweCFpbXBvcnRhbnR9Ci5qY3JvcC12bGluZS5yaWdodHtyaWdodDowfQouamNyb3AtaGxpbmV7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MTAwJX0KLmpjcm9wLWhsaW5lLmJvdHRvbXtib3R0b206MH0KLmpjcm9wLXRyYWNrZXJ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfQouamNyb3AtaGFuZGxle2JhY2tncm91bmQtY29sb3I6IzM4NDE0Yztib3JkZXI6MXB4ICNlM2U4ZWIgc29saWQ7Zm9udC1zaXplOjFweDtoZWlnaHQ6N3B4O3dpZHRoOjdweH0KLmpjcm9wLWhhbmRsZS5vcmQtbntsZWZ0OjUwJTttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3tib3R0b206MDtsZWZ0OjUwJTttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWhhbmRsZS5vcmQtZXttYXJnaW4tcmlnaHQ6LTRweDttYXJnaW4tdG9wOi00cHg7cmlnaHQ6MDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC13e2xlZnQ6MDttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC1ud3tsZWZ0OjA7bWFyZ2luLWxlZnQ6LTRweDttYXJnaW4tdG9wOi00cHg7dG9wOjB9Ci5qY3JvcC1oYW5kbGUub3JkLW5le21hcmdpbi1yaWdodDotNHB4O21hcmdpbi10b3A6LTRweDtyaWdodDowO3RvcDowfQouamNyb3AtaGFuZGxlLm9yZC1zZXtib3R0b206MDttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3d7Ym90dG9tOjA7bGVmdDowO21hcmdpbi1ib3R0b206LTRweDttYXJnaW4tbGVmdDotNHB4fQouamNyb3AtZHJhZ2Jhci5vcmQtbiwgLmpjcm9wLWRyYWdiYXIub3JkLXN7aGVpZ2h0OjdweDt3aWR0aDoxMDAlfQouamNyb3AtZHJhZ2Jhci5vcmQtZSwgLmpjcm9wLWRyYWdiYXIub3JkLXd7aGVpZ2h0OjEwMCU7d2lkdGg6N3B4fQouamNyb3AtZHJhZ2Jhci5vcmQtbnttYXJnaW4tdG9wOi00cHh9Ci5qY3JvcC1kcmFnYmFyLm9yZC1ze2JvdHRvbTowO21hcmdpbi1ib3R0b206LTRweH0KLmpjcm9wLWRyYWdiYXIub3JkLWV7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWRyYWdiYXIub3JkLXd7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWxpZ2h0IC5qY3JvcC12bGluZSwgLmpjcm9wLWxpZ2h0IC5qY3JvcC1obGluZXtiYWNrZ3JvdW5kOiNmZmZmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApIWltcG9ydGFudDtvcGFjaXR5Oi43MCFpbXBvcnRhbnR9Ci5qY3JvcC1saWdodCAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLWNvbG9yOiNGRkY7Ym9yZGVyLXJhZGl1czozcHh9Ci5qY3JvcC1kYXJrIC5qY3JvcC12bGluZSwgLmpjcm9wLWRhcmsgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6IzAwMDtmaWx0ZXI6YWxwaGEob3BhY2l0eT03MCkhaW1wb3J0YW50O29wYWNpdHk6LjchaW1wb3J0YW50fQouamNyb3AtZGFyayAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czozcHh9Ci5zb2xpZC1saW5lIC5qY3JvcC12bGluZSwgLnNvbGlkLWxpbmUgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I0ZGRn0KLmpjcm9wLWhvbGRlciBpbWcsIGltZy5qY3JvcC1wcmV2aWV3e21heC13aWR0aDpub25lfQouamNyb3AtaG9sZGVyIGRpdntwb3NpdGlvbjpzdGF0aWN9Ci5qc29uZGlmZnBhdGNoLWRlbHRhe2ZvbnQtZmFtaWx5OkNvdXNpbmUsIHVpLW1vbm9zcGFjZSwgTW9uYWNvLCBNZXJsbywgbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW07bWFyZ2luOjA7cGFkZGluZzowIDAgMCAxMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1kZWx0YSBwcmV7Zm9udC1mYW1pbHk6Q291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7Zm9udC1zaXplOjEycHg7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWJsb2NrfQp1bC5qc29uZGlmZnBhdGNoLWRlbHRhe2xpc3Qtc3R5bGUtdHlwZTpub25lO3BhZGRpbmc6MCAwIDAgMjBweDttYXJnaW46MH0KLmpzb25kaWZmcGF0Y2gtZGVsdGEgdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7cGFkZGluZzowIDAgMCAyMHB4O21hcmdpbjowfQouanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lLCAuanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC12YWx1ZSBwcmUsIC5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXJpZ2h0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtYWRkZWR7YmFja2dyb3VuZDojZTBmNWM2fQouanNvbmRpZmZwYXRjaC1kZWxldGVkIC5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWUsIC5qc29uZGlmZnBhdGNoLWRlbGV0ZWQgcHJlLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1sZWZ0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtZGVsZXRlZHtiYWNrZ3JvdW5kOiNmZWQzZDM7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb257Y29sb3I6IzZiNzY4NX0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXt0cmFuc2l0aW9uOmFsbCAwLjNzOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcztvdmVyZmxvdy15OmhpZGRlbn0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXNob3dpbmcgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtc2hvd2luZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkZGVuIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGRlbiAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRpbmcgLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUsIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRkZW4gLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTpibG9ja30KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXZpc2libGUgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtdmlzaWJsZSAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGluZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1zaG93aW5nIC5qc29uZGlmZnBhdGNoLWFycm93LCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLWFycm93e2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1cHg7dmVydGljYWwtYWxpZ246dG9wfQouanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzonfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtYXJyYXkgPiAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzpbJ30KLmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10sJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmJlZm9yZXtjb250ZW50OidbJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10nfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0ID4gLmpzb25kaWZmcGF0Y2gtcHJvcGVydHktbmFtZTphZnRlcntjb250ZW50Oic6eyd9Ci5qc29uZGlmZnBhdGNoLWNoaWxkLW5vZGUtdHlwZS1vYmplY3Q6YWZ0ZXJ7Y29udGVudDonfSwnfQpkaXYuanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0OmJlZm9yZXtjb250ZW50Oid7J30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLW9iamVjdDphZnRlcntjb250ZW50Oid9J30KLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6JywnfQpsaTpsYXN0LWNoaWxkID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVyLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCA+IC5qc29uZGlmZnBhdGNoLWxlZnQtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6Jyd9Ci5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1yaWdodC12YWx1ZXttYXJnaW4tbGVmdDo1cHh9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtbW92ZWQgLmpzb25kaWZmcGF0Y2gtbW92ZWQtZGVzdGluYXRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDojZmZlZjkxO2NvbG9yOiM0ZDVhNmF9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLW1vdmVkLWRlc3RpbmF0aW9uOmJlZm9yZXtjb250ZW50OicgPT4gJ30KdWwuanNvbmRpZmZwYXRjaC10ZXh0ZGlmZntwYWRkaW5nOjB9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxvY2F0aW9ue2NvbG9yOiM4ODkyOWY7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjYwcHh9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmUtbnVtYmVyOmFmdGVye2NvbnRlbnQ6JywnfQouanNvbmRpZmZwYXRjaC1lcnJvcntiYWNrZ3JvdW5kOiNkNjJjNDk7Y29sb3I6d2hpdGU7Zm9udC13ZWlnaHQ6Ym9sZH0KQGZvbnQtZmFjZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7c3JjOnVybCgiZm91bmRhdGlvbi1pY29ucy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiZm91bmRhdGlvbi1pY29ucy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQouZmktYWRkcmVzcy1ib29rOmJlZm9yZSwgLmZpLWFsZXJ0OmJlZm9yZSwgLmZpLWFsaWduLWNlbnRlcjpiZWZvcmUsIC5maS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSwgLmZpLWFsaWduLWxlZnQ6YmVmb3JlLCAuZmktYWxpZ24tcmlnaHQ6YmVmb3JlLCAuZmktYW5jaG9yOmJlZm9yZSwgLmZpLWFubm90YXRlOmJlZm9yZSwgLmZpLWFyY2hpdmU6YmVmb3JlLCAuZmktYXJyb3ctZG93bjpiZWZvcmUsIC5maS1hcnJvdy1sZWZ0OmJlZm9yZSwgLmZpLWFycm93LXJpZ2h0OmJlZm9yZSwgLmZpLWFycm93LXVwOmJlZm9yZSwgLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmUsIC5maS1hcnJvd3MtZXhwYW5kOmJlZm9yZSwgLmZpLWFycm93cy1pbjpiZWZvcmUsIC5maS1hcnJvd3Mtb3V0OmJlZm9yZSwgLmZpLWFzbDpiZWZvcmUsIC5maS1hc3RlcmlzazpiZWZvcmUsIC5maS1hdC1zaWduOmJlZm9yZSwgLmZpLWJhY2tncm91bmQtY29sb3I6YmVmb3JlLCAuZmktYmF0dGVyeS1lbXB0eTpiZWZvcmUsIC5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlLCAuZmktYmF0dGVyeS1oYWxmOmJlZm9yZSwgLmZpLWJpdGNvaW4tY2lyY2xlOmJlZm9yZSwgLmZpLWJpdGNvaW46YmVmb3JlLCAuZmktYmxpbmQ6YmVmb3JlLCAuZmktYmx1ZXRvb3RoOmJlZm9yZSwgLmZpLWJvbGQ6YmVmb3JlLCAuZmktYm9vay1ib29rbWFyazpiZWZvcmUsIC5maS1ib29rOmJlZm9yZSwgLmZpLWJvb2ttYXJrOmJlZm9yZSwgLmZpLWJyYWlsbGU6YmVmb3JlLCAuZmktYnVyc3QtbmV3OmJlZm9yZSwgLmZpLWJ1cnN0LXNhbGU6YmVmb3JlLCAuZmktYnVyc3Q6YmVmb3JlLCAuZmktY2FsZW5kYXI6YmVmb3JlLCAuZmktY2FtZXJhOmJlZm9yZSwgLmZpLWNoZWNrOmJlZm9yZSwgLmZpLWNoZWNrYm94OmJlZm9yZSwgLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmUsIC5maS1jbGlwYm9hcmQtcGVuY2lsOmJlZm9yZSwgLmZpLWNsaXBib2FyZDpiZWZvcmUsIC5maS1jbG9jazpiZWZvcmUsIC5maS1jbG9zZWQtY2FwdGlvbjpiZWZvcmUsIC5maS1jbG91ZDpiZWZvcmUsIC5maS1jb21tZW50LW1pbnVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtcXVvdGVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtdmlkZW86YmVmb3JlLCAuZmktY29tbWVudDpiZWZvcmUsIC5maS1jb21tZW50czpiZWZvcmUsIC5maS1jb21wYXNzOmJlZm9yZSwgLmZpLWNvbnRyYXN0OmJlZm9yZSwgLmZpLWNyZWRpdC1jYXJkOmJlZm9yZSwgLmZpLWNyb3A6YmVmb3JlLCAuZmktY3Jvd246YmVmb3JlLCAuZmktY3NzMzpiZWZvcmUsIC5maS1kYXRhYmFzZTpiZWZvcmUsIC5maS1kaWUtZml2ZTpiZWZvcmUsIC5maS1kaWUtZm91cjpiZWZvcmUsIC5maS1kaWUtb25lOmJlZm9yZSwgLmZpLWRpZS1zaXg6YmVmb3JlLCAuZmktZGllLXRocmVlOmJlZm9yZSwgLmZpLWRpZS10d286YmVmb3JlLCAuZmktZGlzbGlrZTpiZWZvcmUsIC5maS1kb2xsYXItYmlsbDpiZWZvcmUsIC5maS1kb2xsYXI6YmVmb3JlLCAuZmktZG93bmxvYWQ6YmVmb3JlLCAuZmktZWplY3Q6YmVmb3JlLCAuZmktZWxldmF0b3I6YmVmb3JlLCAuZmktZXVybzpiZWZvcmUsIC5maS1leWU6YmVmb3JlLCAuZmktZmFzdC1mb3J3YXJkOmJlZm9yZSwgLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3JlLCAuZmktZmVtYWxlOmJlZm9yZSwgLmZpLWZpbHRlcjpiZWZvcmUsIC5maS1maXJzdC1haWQ6YmVmb3JlLCAuZmktZmxhZzpiZWZvcmUsIC5maS1mb2xkZXItYWRkOmJlZm9yZSwgLmZpLWZvbGRlci1sb2NrOmJlZm9yZSwgLmZpLWZvbGRlcjpiZWZvcmUsIC5maS1mb290OmJlZm9yZSwgLmZpLWZvdW5kYXRpb246YmVmb3JlLCAuZmktZ3JhcGgtYmFyOmJlZm9yZSwgLmZpLWdyYXBoLWhvcml6b250YWw6YmVmb3JlLCAuZmktZ3JhcGgtcGllOmJlZm9yZSwgLmZpLWdyYXBoLXRyZW5kOmJlZm9yZSwgLmZpLWd1aWRlLWRvZzpiZWZvcmUsIC5maS1oZWFyaW5nLWFpZDpiZWZvcmUsIC5maS1oZWFydDpiZWZvcmUsIC5maS1ob21lOmJlZm9yZSwgLmZpLWh0bWw1OmJlZm9yZSwgLmZpLWluZGVudC1sZXNzOmJlZm9yZSwgLmZpLWluZGVudC1tb3JlOmJlZm9yZSwgLmZpLWluZm86YmVmb3JlLCAuZmktaXRhbGljOmJlZm9yZSwgLmZpLWtleTpiZWZvcmUsIC5maS1sYXB0b3A6YmVmb3JlLCAuZmktbGF5b3V0OmJlZm9yZSwgLmZpLWxpZ2h0YnVsYjpiZWZvcmUsIC5maS1saWtlOmJlZm9yZSwgLmZpLWxpbms6YmVmb3JlLCAuZmktbGlzdC1idWxsZXQ6YmVmb3JlLCAuZmktbGlzdC1udW1iZXI6YmVmb3JlLCAuZmktbGlzdC10aHVtYm5haWxzOmJlZm9yZSwgLmZpLWxpc3Q6YmVmb3JlLCAuZmktbG9jazpiZWZvcmUsIC5maS1sb29wOmJlZm9yZSwgLmZpLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlLCAuZmktbWFpbDpiZWZvcmUsIC5maS1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS1tYWxlLXN5bWJvbDpiZWZvcmUsIC5maS1tYWxlOmJlZm9yZSwgLmZpLW1hcDpiZWZvcmUsIC5maS1tYXJrZXI6YmVmb3JlLCAuZmktbWVnYXBob25lOmJlZm9yZSwgLmZpLW1pY3JvcGhvbmU6YmVmb3JlLCAuZmktbWludXMtY2lyY2xlOmJlZm9yZSwgLmZpLW1pbnVzOmJlZm9yZSwgLmZpLW1vYmlsZS1zaWduYWw6YmVmb3JlLCAuZmktbW9iaWxlOmJlZm9yZSwgLmZpLW1vbml0b3I6YmVmb3JlLCAuZmktbW91bnRhaW5zOmJlZm9yZSwgLmZpLW11c2ljOmJlZm9yZSwgLmZpLW5leHQ6YmVmb3JlLCAuZmktbm8tZG9nczpiZWZvcmUsIC5maS1uby1zbW9raW5nOmJlZm9yZSwgLmZpLXBhZ2UtYWRkOmJlZm9yZSwgLmZpLXBhZ2UtY29weTpiZWZvcmUsIC5maS1wYWdlLWNzdjpiZWZvcmUsIC5maS1wYWdlLWRlbGV0ZTpiZWZvcmUsIC5maS1wYWdlLWRvYzpiZWZvcmUsIC5maS1wYWdlLWVkaXQ6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZSwgLmZpLXBhZ2UtZXhwb3J0LWRvYzpiZWZvcmUsIC5maS1wYWdlLWV4cG9ydC1wZGY6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQ6YmVmb3JlLCAuZmktcGFnZS1maWxsZWQ6YmVmb3JlLCAuZmktcGFnZS1tdWx0aXBsZTpiZWZvcmUsIC5maS1wYWdlLXBkZjpiZWZvcmUsIC5maS1wYWdlLXJlbW92ZTpiZWZvcmUsIC5maS1wYWdlLXNlYXJjaDpiZWZvcmUsIC5maS1wYWdlOmJlZm9yZSwgLmZpLXBhaW50LWJ1Y2tldDpiZWZvcmUsIC5maS1wYXBlcmNsaXA6YmVmb3JlLCAuZmktcGF1c2U6YmVmb3JlLCAuZmktcGF3OmJlZm9yZSwgLmZpLXBheXBhbDpiZWZvcmUsIC5maS1wZW5jaWw6YmVmb3JlLCAuZmktcGhvdG86YmVmb3JlLCAuZmktcGxheS1jaXJjbGU6YmVmb3JlLCAuZmktcGxheS12aWRlbzpiZWZvcmUsIC5maS1wbGF5OmJlZm9yZSwgLmZpLXBsdXM6YmVmb3JlLCAuZmktcG91bmQ6YmVmb3JlLCAuZmktcG93ZXI6YmVmb3JlLCAuZmktcHJldmlvdXM6YmVmb3JlLCAuZmktcHJpY2UtdGFnOmJlZm9yZSwgLmZpLXByaWNldGFnLW11bHRpcGxlOmJlZm9yZSwgLmZpLXByaW50OmJlZm9yZSwgLmZpLXByb2hpYml0ZWQ6YmVmb3JlLCAuZmktcHJvamVjdGlvbi1zY3JlZW46YmVmb3JlLCAuZmktcHV6emxlOmJlZm9yZSwgLmZpLXF1b3RlOmJlZm9yZSwgLmZpLXJlY29yZDpiZWZvcmUsIC5maS1yZWZyZXNoOmJlZm9yZSwgLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZSwgLmZpLXJlc3VsdHM6YmVmb3JlLCAuZmktcmV3aW5kLXRlbjpiZWZvcmUsIC5maS1yZXdpbmQ6YmVmb3JlLCAuZmktcnNzOmJlZm9yZSwgLmZpLXNhZmV0eS1jb25lOmJlZm9yZSwgLmZpLXNhdmU6YmVmb3JlLCAuZmktc2hhcmU6YmVmb3JlLCAuZmktc2hlcmlmZi1iYWRnZTpiZWZvcmUsIC5maS1zaGllbGQ6YmVmb3JlLCAuZmktc2hvcHBpbmctYmFnOmJlZm9yZSwgLmZpLXNob3BwaW5nLWNhcnQ6YmVmb3JlLCAuZmktc2h1ZmZsZTpiZWZvcmUsIC5maS1zb2NpYWwtYW5kcm9pZDpiZWZvcmUsIC5maS1zb2NpYWwtYXBwbGU6YmVmb3JlLCAuZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZSwgLmZpLXNvY2lhbC1naXRodWI6YmVmb3JlLCAuZmktc29jaWFsLXNreXBlOmJlZm9yZSwgLmZpLXNvY2lhbC1zdGFjay1vdmVyZmxvdzpiZWZvcmUsIC5maS1zb2NpYWwtdHdpdHRlcjpiZWZvcmUsIC5maS1zb2NpYWwtd2luZG93czpiZWZvcmUsIC5maS1zb2NpYWwteW91dHViZTpiZWZvcmUsIC5maS1zb3VuZDpiZWZvcmUsIC5maS1zdGFyOmJlZm9yZSwgLmZpLXN0b3A6YmVmb3JlLCAuZmktc3RyaWtldGhyb3VnaDpiZWZvcmUsIC5maS1zdWJzY3JpcHQ6YmVmb3JlLCAuZmktc3VwZXJzY3JpcHQ6YmVmb3JlLCAuZmktdGFibGV0LWxhbmRzY2FwZTpiZWZvcmUsIC5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3JlLCAuZmktdGFyZ2V0LXR3bzpiZWZvcmUsIC5maS10YXJnZXQ6YmVmb3JlLCAuZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3JlLCAuZmktdGVsZXBob25lOmJlZm9yZSwgLmZpLXRleHQtY29sb3I6YmVmb3JlLCAuZmktdGh1bWJuYWlsczpiZWZvcmUsIC5maS10aWNrZXQ6YmVmb3JlLCAuZmktdG9yc28tYnVzaW5lc3M6YmVmb3JlLCAuZmktdG9yc28tZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGwtZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGw6YmVmb3JlLCAuZmktdG9yc29zLWZlbWFsZS1tYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS10b3Jzb3M6YmVmb3JlLCAuZmktdHJhc2g6YmVmb3JlLCAuZmktdHJlZXM6YmVmb3JlLCAuZmktdHJvcGh5OmJlZm9yZSwgLmZpLXVuZGVybGluZTpiZWZvcmUsIC5maS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSwgLmZpLXVubGluazpiZWZvcmUsIC5maS11bmxvY2s6YmVmb3JlLCAuZmktdXBsb2FkLWNsb3VkOmJlZm9yZSwgLmZpLXVwbG9hZDpiZWZvcmUsIC5maS11c2I6YmVmb3JlLCAuZmktdmlkZW86YmVmb3JlLCAuZmktdm9sdW1lLW5vbmU6YmVmb3JlLCAuZmktdm9sdW1lLXN0cmlrZTpiZWZvcmUsIC5maS12b2x1bWU6YmVmb3JlLCAuZmktd2ViOmJlZm9yZSwgLmZpLXdoZWVsY2hhaXI6YmVmb3JlLCAuZmktd2lkZ2V0OmJlZm9yZSwgLmZpLXdyZW5jaDpiZWZvcmUsIC5maS14LWNpcmNsZTpiZWZvcmUsIC5maS14OmJlZm9yZSwgLmZpLXllbjpiZWZvcmUsIC5maS16b29tLWluOmJlZm9yZSwgLmZpLXpvb20tb3V0OmJlZm9yZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtsaW5lLWhlaWdodDoxOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9Ci5maS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0KLmZpLWFsZXJ0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9Ci5maS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0KLmZpLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0KLmZpLWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0KLmZpLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9Ci5maS1hbmNob3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0KLmZpLWFubm90YXRlOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9Ci5maS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9Ci5maS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9Ci5maS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9Ci5maS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGIifQouZmktYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTBjIn0KLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmV7Y29udGVudDoiXGYxMGQifQouZmktYXJyb3dzLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYxMGUifQouZmktYXJyb3dzLWluOmJlZm9yZXtjb250ZW50OiJcZjEwZiJ9Ci5maS1hcnJvd3Mtb3V0OmJlZm9yZXtjb250ZW50OiJcZjExMCJ9Ci5maS1hc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0KLmZpLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjExMiJ9Ci5maS1hdC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjExMyJ9Ci5maS1iYWNrZ3JvdW5kLWNvbG9yOmJlZm9yZXtjb250ZW50OiJcZjExNCJ9Ci5maS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjExNSJ9Ci5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTE2In0KLmZpLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYxMTcifQouZmktYml0Y29pbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0KLmZpLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0KLmZpLWJsaW5kOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9Ci5maS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0KLmZpLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFjIn0KLmZpLWJvb2stYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMTFkIn0KLmZpLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0KLmZpLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjExZiJ9Ci5maS1icmFpbGxlOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9Ci5maS1idXJzdC1uZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0KLmZpLWJ1cnN0LXNhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0KLmZpLWJ1cnN0OmJlZm9yZXtjb250ZW50OiJcZjEyMyJ9Ci5maS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMjQifQouZmktY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjEyNSJ9Ci5maS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYxMjYifQouZmktY2hlY2tib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0KLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmV7Y29udGVudDoiXGYxMjgifQouZmktY2xpcGJvYXJkLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYxMjkifQouZmktY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9Ci5maS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYxMmIifQouZmktY2xvc2VkLWNhcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0KLmZpLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9Ci5maS1jb21tZW50LW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9Ci5maS1jb21tZW50LXF1b3RlczpiZWZvcmV7Y29udGVudDoiXGYxMmYifQouZmktY29tbWVudC12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxMzAifQouZmktY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYxMzEifQouZmktY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0KLmZpLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0KLmZpLWNvbnRyYXN0OmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9Ci5maS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMzUifQouZmktY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMzYifQouZmktY3Jvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0KLmZpLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0KLmZpLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9Ci5maS1kaWUtZml2ZTpiZWZvcmV7Y29udGVudDoiXGYxM2EifQouZmktZGllLWZvdXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0KLmZpLWRpZS1vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0KLmZpLWRpZS1zaXg6YmVmb3Jle2NvbnRlbnQ6IlxmMTNkIn0KLmZpLWRpZS10aHJlZTpiZWZvcmV7Y29udGVudDoiXGYxM2UifQouZmktZGllLXR3bzpiZWZvcmV7Y29udGVudDoiXGYxM2YifQouZmktZGlzbGlrZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifQouZmktZG9sbGFyLWJpbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0KLmZpLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGYxNDIifQouZmktZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0KLmZpLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9Ci5maS1lbGV2YXRvcjpiZWZvcmV7Y29udGVudDoiXGYxNDUifQouZmktZXVybzpiZWZvcmV7Y29udGVudDoiXGYxNDYifQouZmktZXllOmJlZm9yZXtjb250ZW50OiJcZjE0NyJ9Ci5maS1mYXN0LWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ4In0KLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0KLmZpLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifQouZmktZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9Ci5maS1maXJzdC1haWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRjIn0KLmZpLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0KLmZpLWZvbGRlci1hZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0KLmZpLWZvbGRlci1sb2NrOmJlZm9yZXtjb250ZW50OiJcZjE0ZiJ9Ci5maS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0KLmZpLWZvb3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0KLmZpLWZvdW5kYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0KLmZpLWdyYXBoLWJhcjpiZWZvcmV7Y29udGVudDoiXGYxNTMifQouZmktZ3JhcGgtaG9yaXpvbnRhbDpiZWZvcmV7Y29udGVudDoiXGYxNTQifQouZmktZ3JhcGgtcGllOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9Ci5maS1ncmFwaC10cmVuZDpiZWZvcmV7Y29udGVudDoiXGYxNTYifQouZmktZ3VpZGUtZG9nOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9Ci5maS1oZWFyaW5nLWFpZDpiZWZvcmV7Y29udGVudDoiXGYxNTgifQouZmktaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTU5In0KLmZpLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0KLmZpLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9Ci5maS1pbmRlbnQtbGVzczpiZWZvcmV7Y29udGVudDoiXGYxNWMifQouZmktaW5kZW50LW1vcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0KLmZpLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0KLmZpLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYxNWYifQouZmkta2V5OmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9Ci5maS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0KLmZpLWxheW91dDpiZWZvcmV7Y29udGVudDoiXGYxNjIifQouZmktbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9Ci5maS1saWtlOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9Ci5maS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9Ci5maS1saXN0LWJ1bGxldDpiZWZvcmV7Y29udGVudDoiXGYxNjYifQouZmktbGlzdC1udW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0KLmZpLWxpc3QtdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxNjgifQouZmktbGlzdDpiZWZvcmV7Y29udGVudDoiXGYxNjkifQouZmktbG9jazpiZWZvcmV7Y29udGVudDoiXGYxNmEifQouZmktbG9vcDpiZWZvcmV7Y29udGVudDoiXGYxNmIifQouZmktbWFnbmlmeWluZy1nbGFzczpiZWZvcmV7Y29udGVudDoiXGYxNmMifQouZmktbWFpbDpiZWZvcmV7Y29udGVudDoiXGYxNmQifQouZmktbWFsZS1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0KLmZpLW1hbGUtc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjE2ZiJ9Ci5maS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE3MCJ9Ci5maS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTcxIn0KLmZpLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYxNzIifQouZmktbWVnYXBob25lOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9Ci5maS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjE3NCJ9Ci5maS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc1In0KLmZpLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9Ci5maS1tb2JpbGUtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9Ci5maS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0KLmZpLW1vbml0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0KLmZpLW1vdW50YWluczpiZWZvcmV7Y29udGVudDoiXGYxN2EifQouZmktbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0KLmZpLW5leHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdjIn0KLmZpLW5vLWRvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTdkIn0KLmZpLW5vLXNtb2tpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0KLmZpLXBhZ2UtYWRkOmJlZm9yZXtjb250ZW50OiJcZjE3ZiJ9Ci5maS1wYWdlLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0KLmZpLXBhZ2UtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9Ci5maS1wYWdlLWRlbGV0ZTpiZWZvcmV7Y29udGVudDoiXGYxODIifQouZmktcGFnZS1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTgzIn0KLmZpLXBhZ2UtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYxODQifQouZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9Ci5maS1wYWdlLWV4cG9ydC1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTg2In0KLmZpLXBhZ2UtZXhwb3J0LXBkZjpiZWZvcmV7Y29udGVudDoiXGYxODcifQouZmktcGFnZS1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0KLmZpLXBhZ2UtZmlsbGVkOmJlZm9yZXtjb250ZW50OiJcZjE4OSJ9Ci5maS1wYWdlLW11bHRpcGxlOmJlZm9yZXtjb250ZW50OiJcZjE4YSJ9Ci5maS1wYWdlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxOGIifQouZmktcGFnZS1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMThjIn0KLmZpLXBhZ2Utc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9Ci5maS1wYWdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZSJ9Ci5maS1wYWludC1idWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMThmIn0KLmZpLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGYxOTAifQouZmktcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0KLmZpLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxOTIifQouZmktcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9Ci5maS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0KLmZpLXBob3RvOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9Ci5maS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTYifQouZmktcGxheS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxOTcifQouZmktcGxheTpiZWZvcmV7Y29udGVudDoiXGYxOTgifQouZmktcGx1czpiZWZvcmV7Y29udGVudDoiXGYxOTkifQouZmktcG91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0KLmZpLXBvd2VyOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9Ci5maS1wcmV2aW91czpiZWZvcmV7Y29udGVudDoiXGYxOWMifQouZmktcHJpY2UtdGFnOmJlZm9yZXtjb250ZW50OiJcZjE5ZCJ9Ci5maS1wcmljZXRhZy1tdWx0aXBsZTpiZWZvcmV7Y29udGVudDoiXGYxOWUifQouZmktcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlmIn0KLmZpLXByb2hpYml0ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0KLmZpLXByb2plY3Rpb24tc2NyZWVuOmJlZm9yZXtjb250ZW50OiJcZjFhMSJ9Ci5maS1wdXp6bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0KLmZpLXF1b3RlOmJlZm9yZXtjb250ZW50OiJcZjFhMyJ9Ci5maS1yZWNvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE0In0KLmZpLXJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0KLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZXtjb250ZW50OiJcZjFhNiJ9Ci5maS1yZXN1bHRzOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9Ci5maS1yZXdpbmQtdGVuOmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9Ci5maS1yZXdpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE5In0KLmZpLXJzczpiZWZvcmV7Y29udGVudDoiXGYxYWEifQouZmktc2FmZXR5LWNvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0KLmZpLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0KLmZpLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9Ci5maS1zaGVyaWZmLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9Ci5maS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWFmIn0KLmZpLXNob3BwaW5nLWJhZzpiZWZvcmV7Y29udGVudDoiXGYxYjAifQouZmktc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYxYjEifQouZmktc2h1ZmZsZTpiZWZvcmV7Y29udGVudDoiXGYxYjIifQouZmktc29jaWFsLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0KLmZpLXNvY2lhbC1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifQouZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9Ci5maS1zb2NpYWwtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9Ci5maS1zb2NpYWwtcmRpbzpiZWZvcmV7Y29udGVudDoiXGYxZDcifQouZmktc29jaWFsLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxZDgifQouZmktc29jaWFsLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9Ci5maS1zb2NpYWwtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMWRmIn0KLmZpLXNvY2lhbC10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9Ci5maS1zb2NpYWwtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxZTYifQouZmktc29jaWFsLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0KLmZpLXNvdW5kOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9Ci5maS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9Ci5maS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjFlZiJ9Ci5maS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjFmMCJ9Ci5maS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0KLmZpLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9Ci5maS10YWJsZXQtbGFuZHNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9Ci5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0KLmZpLXRhcmdldC10d286YmVmb3Jle2NvbnRlbnQ6IlxmMWY1In0KLmZpLXRhcmdldDpiZWZvcmV7Y29udGVudDoiXGYxZjYifQouZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWY3In0KLmZpLXRlbGVwaG9uZTpiZWZvcmV7Y29udGVudDoiXGYxZjgifQouZmktdGV4dC1jb2xvcjpiZWZvcmV7Y29udGVudDoiXGYxZjkifQouZmktdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxZmEifQouZmktdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9Ci5maS10b3Jzby1idXNpbmVzczpiZWZvcmV7Y29udGVudDoiXGYxZmMifQouZmktdG9yc28tZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9Ci5maS10b3JzbzpiZWZvcmV7Y29udGVudDoiXGYxZmUifQouZmktdG9yc29zLWFsbC1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWZmIn0KLmZpLXRvcnNvcy1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0KLmZpLXRvcnNvcy1mZW1hbGUtbWFsZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifQouZmktdG9yc29zLW1hbGUtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9Ci5maS10b3Jzb3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0KLmZpLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9Ci5maS10cmVlczpiZWZvcmV7Y29udGVudDoiXGYyMDUifQouZmktdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9Ci5maS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0KLmZpLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjA4In0KLmZpLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYyMDkifQouZmktdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9Ci5maS11cGxvYWQtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0KLmZpLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYyMGMifQouZmktdXNiOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9Ci5maS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYyMGUifQouZmktdm9sdW1lLW5vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjBmIn0KLmZpLXZvbHVtZS1zdHJpa2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0KLmZpLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyMTEifQouZmktd2ViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9Ci5maS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9Ci5maS13aWRnZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE0In0KLmZpLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYyMTUifQouZmkteC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0KLmZpLXg6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0KLmZpLXllbjpiZWZvcmV7Y29udGVudDoiXGYyMTgifQouZmktem9vbS1pbjpiZWZvcmV7Y29udGVudDoiXGYyMTkifQouZmktem9vbS1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFhIn0KI2N3LW5vdGVze3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MjBweDt0b3A6MjBweDt3aWR0aDoyOTBweDtwYWRkaW5nOjBweDt6LWluZGV4OjMwMDJ9CiNjdy1ub3RlcyA+IGRpdnttYXJnaW4tYm90dG9tOjE1cHg7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjkwcHg7cGFkZGluZzoxNXB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwgNzksIDE0MywgMC45KTtib3gtc2hhZG93OjAgMCAwIDFweCB3aGl0ZTtjb2xvcjp3aGl0ZTtmb250LXNpemU6MTJwdDtsaW5lLWhlaWdodDoxNXB0O3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93OmhpZGRlbn0KI2N3LW5vdGVzID4gZGl2LmVycm9ye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzQsIDExNCwgMTM0LCAwLjkpfQojY3ctbm90ZXMgPiBkaXYud2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC45KTtjb2xvcjpyZ2JhKDIwNCwgMTM0LCAxMywgMC45KX0KI2N3LW5vdGVzID4gZGl2Lm9re2JhY2tncm91bmQtY29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjkpO2NvbG9yOiM2NTljMTN9Ci5teS1lcnJvciBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwgLm15LWVycm9yIHRleHRhcmVhLCAubXktZXJyb3IgYnV0dG9ue2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6Zm9jdXMsIC5teS1lcnJvciB0ZXh0YXJlYTpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9Ci5teS1lcnJvciAubGFiZWwsIC5teS1lcnJvciBsYWJlbCwgLm15LWVycm9ye2NvbG9yOiNlYTcyODYhaW1wb3J0YW50fQoubXktZXJyb3IgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3O2JhY2tncm91bmQtY29sb3I6I2ZlZDNkM30KLm15LWVycm9yIGlucHV0W3R5cGU9InJhbmdlIl06Zm9jdXMgOjotd2Via2l0LXNsaWRlci10aHVtYntib3JkZXI6MXB4IHNvbGlkICNlYTcyODY7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyOjFweCBzb2xpZCAjZWE3Mjg2IWltcG9ydGFudH0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgPiAuc2VsZWN0Mi1jaG9zZW57Y29sb3I6I2Q2MmM0OX0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2Uuc2VsZWN0Mi1kZWZhdWx0ID4gLnNlbGVjdDItY2hvc2Vue2NvbG9yOiNiOWMwY2J9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudDtiYWNrZ3JvdW5kOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSl9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tib3JkZXItbGVmdDoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnQ7YmFja2dyb3VuZDojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3csIC5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2Vze2JvcmRlcjoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNle2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpfQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZ3tjb2xvcjojZWE3Mjg2fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzO2NvbG9yOiNkNjJjNDl9Ci5teS1lcnJvciA+IGRpdi5teS1tb2RhbHtib3JkZXItY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KTtib3gtc2hhZG93OjAgMCAxMXB4IDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjkyKSwgMCAwIDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjg1KX0KLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmUsIC5teS1lcnJvciA+IGRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtdG9wOmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtYm90dG9tOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSk7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KX0KLm15LWVycm9yIC51aS1zbGlkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudH0KLm15LWVycm9yIC51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztiYWNrZ3JvdW5kOiNmZWQzZDN9Ci5teS1lcnJvciAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9CkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0NvdXNpbmUnO3NyYzp1cmwoJ2NvdXNpbmUtcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQojY3ctYm9keXttYXJnaW46MCBhdXRvIDAgYXV0bztmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjRlbTt0ZXh0LXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247Zm9udC13ZWlnaHQ6MzAwO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CiNjdy1ib2R5IC5jdy1idXN5e2hlaWdodDo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjMwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pL2xvYWRlci1iYXIyLmdpZik7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9CiNjdy1ib2R5IGlucHV0LCAjY3ctYm9keSBidXR0b24sICNjdy1ib2R5IHRleHRhcmVhe2ZvbnQtd2VpZ2h0OmluaGVyaXR9CiNjdy1ib2R5IC5teS1lcnJvci10aXB7Zm9udC1zaXplOjg1JTtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyk7cGFkZGluZzowcHggMCA2cHggMHB4O2xpbmUtaGVpZ2h0OjEuMmVtfQojY3ctYm9keSAubXktZXJyb3IgLnZhcmlhbnRzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZkZDtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyl9CiNjdy1ib2R5IC5teS1yb3cgaW5wdXQsIC5teS1yb3cgdGV4dGFyZWEsIC5teS1yb3cgc2VsZWN0LCAubXktcm93IC5idXR0b257bWFyZ2luOjB9CiNjdy1ib2R5IC5teS1yb3cgdGV4dGFyZWF7dmVydGljYWwtYWxpZ246dG9wfQojY3ctYm9keSAubXktcm93IC5teS1sYWJlbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMWVtfQojY3ctYm9keSAubXktcm93IC5teS1zaG9ydGN1dHttYXJnaW46MCAwIDAgMC4yNWVtO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6IzU0ODFhMDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjAuNzt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zczstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzLCBib3JkZXIgMC4zczstb3BlcmEtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MsIGJvcmRlciAwLjNzOy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3N9CiNjdy1ib2R5IC5teS1yb3cgLm15LXNob3J0Y3V0OmhvdmVye29wYWNpdHk6MX0KI2N3LWJvZHkgLm15LXJvdyBkaXYubXktZXJyb3ItdGlwe3BhZGRpbmc6MC4zZW0gMCAwIDB9CiNjdy1ib2R5IC5teS1yb3cgc3Bhbi5teS1lcnJvci10aXB7cGFkZGluZzowfQojY3ctYm9keSAudWktc2VhcmNoe2JvcmRlci1yYWRpdXM6NTBweCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjIycHg7cGFkZGluZy1yaWdodDoyMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfQojY3ctYm9keSAudWktc2VhcmNoLWNsZWFye21hcmdpbjoxcHggMCAtMXB4IC0yMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjV9CiNjdy1ib2R5IC51aS1zZWFyY2guc21hbGwgKyAudWktc2VhcmNoLWNsZWFyICB7bWFyZ2luLWJvdHRvbTotMnB4fQojY3ctYm9keSAudWktc2VhcmNoLmJnLXllbGxvdyArIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjU7ZGlzcGxheTppbmxpbmUtYmxvY2t9CiNjdy1ib2R5IC51aS1zZWFyY2guYmcteWVsbG93ICsgLnVpLXNlYXJjaC1jbGVhcjpob3ZlcntvcGFjaXR5OjF9CiNjdy1ib2R5IC5teS1zZWFyY2ggaW5wdXQudWktc2VhcmNoe2JhY2tncm91bmQtY29sb3I6I0ZGRjA4OCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZmNmNjMhaW1wb3J0YW50fQojY3ctYm9keSAubXktc2VhcmNoIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0KI2N3LWJvZHkgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuN2VtfQojY3ctbm90ZXN7dG9wOjUwcHh9CmJvZHk+c3Bhbi51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0KYnV0dG9uLm1hcmtmb2N1cywgIC5idXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVyLCAuYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O3JpZ2h0OjNweDt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjNweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudDt6LWluZGV4OisyfQpib2R5LnRoZW1lLWRhcmt7ZmlsdGVyOmJyaWdodG5lc3MoMC45NikgaW52ZXJ0KCkgY29udHJhc3QoMC45KSBicmlnaHRuZXNzKDEuMjUpIGh1ZS1yb3RhdGUoMTgyZGVnKSBicmlnaHRuZXNzKDAuOSkgc2F0dXJhdGUoMS4yKX0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5e2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYn0KYm9keS50aGVtZS1kYXJrIGE6aG92ZXIsICBib2R5LnRoZW1lLWRhcmsgLnBzZXVkb2xpbms6aG92ZXIsICBib2R5LnRoZW1lLWRhcmsgLnBzZXVkb2J1dHRvbjpob3Zlcntjb2xvcjojMmU3ZGZmfQpib2R5LnRoZW1lLWRhcmsgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDc2LDEwNCwxMjksMC4zNSl9CmJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRleHRdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9bnVtYmVyXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPWVtYWlsXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRlbF0sICBib2R5LnRoZW1lLWRhcmsgaW5wdXRbdHlwZT1kYXRlXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRpbWVdLCBib2R5LnRoZW1lLWRhcmsgdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayB0ZXh0YXJlYTpmb2N1c3tib3JkZXItY29sb3I6IzllY2RmOH0KYm9keS50aGVtZS1kYXJrIC5teS1lcnJvciBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwgIGJvZHkudGhlbWUtZGFyayAubXktZXJyb3IgdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNmY2MxYzd9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcywgYm9keS50aGVtZS1kYXJrIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyLWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2JvcmRlci1sZWZ0LWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZSwgIGJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZXN7Ym9yZGVyLWNvbG9yOiM5ZWNkZjh9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjNmNWY4IWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAubC10YWIgYXtjb2xvcjojNGM1ZDZlIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAubC10YWIgYS5zeXN0ZW17Y29sb3I6IzQwNzMwMCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgLmwtdGFiLmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZDhkZmU4IWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAjbC1hcHB0YWJzLCBib2R5LnRoZW1lLWRhcmsgI2wtaGVhZGVyICNsLWFzaWRle2JvcmRlci10b3AtY29sb3I6I2NkZDVlMX0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5ICNsLWhlYWRlciAjbC1hc2lkZSAuYXNpZGUtYnRue2JvcmRlci1sZWZ0LWNvbG9yOiNjZGQ1ZTE7Y29sb3I6IzUyNTc1YiFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAjbC1oZWFkZXIgI2wtYXNpZGUgI2J0bi1jbG9zZS1hbGwtdGFic3tjb2xvcjojNTI1NzViIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5ICNsLWhlYWRlciAjbC1hc2lkZSAuYXNpZGUtYnRuIGF7Y29sb3I6IzUyNTc1YiFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgI3N2Zy11bmF1dGh7c3Ryb2tlOiNmZjU0MDAhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgI2wtaGVhZGVyICNzdmctYXV0aHtzdHJva2U6IzMwNzcwMCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAudmlldy1yb3d7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZifQpib2R5LnRoZW1lLWRhcmsgI2N3LWJvZHkgLnZpZXctcm93Om50aC1jaGlsZCgybiswKSB7YmFja2dyb3VuZC1jb2xvcjojZWZmMWY0fQpib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFse2JveC1zaGFkb3c6MHB4IDBweCAwcHggMnB4IHJnYmEoMCwyOSw3OSwwLjYpIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmY2ZjZmN9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keT5kaXYubXktbW9kYWwtc2NyZWVue2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDUsMjQ5LDI1NSwwLjkpIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrIGJ1dHRvbi5tYXJrZm9jdXM6Zm9jdXM6YWZ0ZXIsICBib2R5LnRoZW1lLWRhcmsgLmJ1dHRvbi5tYXJrZm9jdXM6Zm9jdXM6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojNmQ2ZDZkIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrIGRpdi5teS1tb2RhbC5ub3NlLWxlZnQ6YmVmb3JlLCAgYm9keS50aGVtZS1kYXJrIGRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZSwgIGJvZHkudGhlbWUtZGFyayBkaXYubXktbW9kYWwubm9zZS10b3A6YmVmb3JlLCAgYm9keS50aGVtZS1kYXJrIGRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbTpiZWZvcmV7d2lkdGg6NnB4O2hlaWdodDo2cHg7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMjksNzksMC42KTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjfQpib2R5LnRoZW1lLWRhcmsgI2N3LWJvZHkgPiBkaXYubXktbW9kYWwgPiAubXktbW9kYWwtY2xvc2V7YmFja2dyb3VuZC1jb2xvcjojOWJiMWM2fQpib2R5LnRoZW1lLWRhcmsgI2wtYXBwcyAubC1hcHAgLmZlYXRoZXI6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDI0NywyNDgsMjUwLDEpLCByZ2JhKDI0NywyNDgsMjUwLDApKX0KYm9keS50aGVtZS1kYXJrICNsLWFwcHMgLmwtYXBwIC5mZWF0aGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjQ3LDI0OCwyNTAsMSksIHJnYmEoMjQ3LDI0OCwyNTAsMCkpfQpib2R5LnRoZW1lLWRhcmsgLm15LW1hbmlmZXN0LTFhb2MxeGZsICNkb2M6aG92ZXJ7YmFja2dyb3VuZDojZjhmOWZifQpib2R5LnRoZW1lLWRhcmsgaW1nI3NpY29ue2ZpbHRlcjpzYXR1cmF0ZSgxLjEpIGJyaWdodG5lc3MoMC44KSBpbnZlcnQoKSBodWUtcm90YXRlKDE3OGRlZykgY29udHJhc3QoMS4yKX0KYm9keS50aGVtZS1kYXJrIC5pdmFsdWUgYS5iYXNlNjRpbWFnZSBpbWd7ZmlsdGVyOnNhdHVyYXRlKDEuMSkgYnJpZ2h0bmVzcygwLjgpIGludmVydCgpIGh1ZS1yb3RhdGUoMTc4ZGVnKSBjb250cmFzdCgxLjIpfQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLWRlZntjb2xvcjojZmY3ODlifQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLWtleXdvcmR7Y29sb3I6Izk2NDlmZn0KYm9keS50aGVtZS1kYXJrIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZS0ye2NvbG9yOiM1MjhjYzZ9CmJvZHkudGhlbWUtZGFyayAuQ29kZU1pcnJvciAuY20tdmFyaWFibGV7Y29sb3I6IzAwOGM2NH0KYm9keS50aGVtZS1kYXJrIC5qc29uZGlmZnBhdGNoLWFkZGVkIC5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWUsICBib2R5LnRoZW1lLWRhcmsgLmpzb25kaWZmcGF0Y2gtYWRkZWQgLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlLCAgYm9keS50aGVtZS1kYXJrIC5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXJpZ2h0LXZhbHVlIHByZSwgIGJvZHkudGhlbWUtZGFyayAuanNvbmRpZmZwYXRjaC10ZXh0ZGlmZi1hZGRlZHtiYWNrZ3JvdW5kOiNhZGNiODd9" + "data": "LyogUGhvdG9uIDEuMjAgQ1NTICovCkBjaGFyc2V0ICJVVEYtOCI7Cip7Ym94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KaHRtbHtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59CmJvZHl7cGFkZGluZzowOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDpub25lO2ZvbnQ6MTlweCAnLWFwcGxlLXN5c3RlbScsICdCbGlua01hY1N5c3RlbUZvbnQnLCAnSGVsdmV0aWNhIE5ldWUnLCAnU2Vnb2UgVUknLCBVYnVudHUsIFJvYm90bywgSGVsdmV0aWNhLCBUYWhvbWEsIEFyaWFsLCBWZXJkYW5hLCBTYW5zLXNlcmlmO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4zZW07YmFja2dyb3VuZDojZmZmO2hlaWdodDoxMDAlfQpzZWN0aW9uLCBkaXYsIHNwYW57cG9zaXRpb246cmVsYXRpdmV9CmgxLCBoMiwgaDMsIGg0e2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW46MC40ZW0gMCAwLjNlbSAwO2NvbG9yOiMzODQxNGM7bGluZS1oZWlnaHQ6MS4xZW19Cmgxe2ZvbnQtc2l6ZToyLjVlbX0KaDJ7Zm9udC1zaXplOjJlbX0KaDN7Zm9udC1zaXplOjEuNGVtfQpoNHtmb250LXNpemU6MS4xZW19CmRpdiA+IGgxOm50aC1vZi10eXBlKDEpIHttYXJnaW4tdG9wOjAuMWVtfQpkaXYgPiBoMjpudGgtb2YtdHlwZSgxKSB7bWFyZ2luLXRvcDowLjFlbX0KZGl2ID4gaDM6bnRoLW9mLXR5cGUoMSkge21hcmdpbi10b3A6MC4xZW19CnB7Zm9udDoxZW0gO2xpbmUtaGVpZ2h0OjEuNGVtO21hcmdpbjowLjJlbSAwIDAuNWVtIDB9Cmxpe21hcmdpbi1sZWZ0OjFlbX0Kc21hbGx7Zm9udC1zaXplOjkwJX0KdGFibGV7Ym9yZGVyOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2JvcmRlci1zcGFjaW5nOjB9CnRke3ZlcnRpY2FsLWFsaWduOnRvcDtsaW5lLWhlaWdodDoxLjJlbX0KdGh7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMmVtfQouaW52aXN7dmlzaWJpbGl0eTpoaWRkZW59Ci5oaWRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Ci5jcHtjdXJzb3I6cG9pbnRlcn0KLmNte2N1cnNvcjptb3ZlfQouY3p7Y3Vyc29yOnpvb20taW59Ci5jeHtjdXJzb3I6Y29sLXJlc2l6ZX0KLndoaXRle2NvbG9yOndoaXRlIWltcG9ydGFudH0KLmJnLXdoaXRle2JhY2tncm91bmQtY29sb3I6d2hpdGUhaW1wb3J0YW50fQouZ3JheS0ye2NvbG9yOiMxYzIwMjYhaW1wb3J0YW50fQouYmctZ3JheS0ye2JhY2tncm91bmQtY29sb3I6IzFjMjAyNiFpbXBvcnRhbnR9Ci5ncmF5LTF7Y29sb3I6IzM4NDE0YyFpbXBvcnRhbnR9Ci5iZy1ncmF5LTF7YmFja2dyb3VuZC1jb2xvcjojMzg0MTRjIWltcG9ydGFudH0KLmdyYXkwe2NvbG9yOiM0ZDVhNmEhaW1wb3J0YW50fQouYmctZ3JheTB7YmFja2dyb3VuZC1jb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmdyYXkxe2NvbG9yOiM4ODkyOWYhaW1wb3J0YW50fQouYmctZ3JheTF7YmFja2dyb3VuZC1jb2xvcjojODg5MjlmIWltcG9ydGFudH0KLmdyYXkye2NvbG9yOiNiOWMwY2IhaW1wb3J0YW50fQouYmctZ3JheTJ7YmFja2dyb3VuZC1jb2xvcjojYjljMGNiIWltcG9ydGFudH0KLmdyYXkze2NvbG9yOiNkMGQ2ZGQhaW1wb3J0YW50fQouYmctZ3JheTN7YmFja2dyb3VuZC1jb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXk0e2NvbG9yOiNlM2U4ZWIhaW1wb3J0YW50fQouYmctZ3JheTR7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmdyYXk1e2NvbG9yOnJnYmEoMTM2LCAxNDYsIDE1OSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEzNiwgMTQ2LCAxNTksIDAuMzUpIWltcG9ydGFudH0KLmdyYXk2e2NvbG9yOnJnYmEoMTg1LCAxOTIsIDIwMywgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpIWltcG9ydGFudH0KLmdyYXk3e2NvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JheTd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJsdWUtMntjb2xvcjojMTYzMjVhIWltcG9ydGFudH0KLmJnLWJsdWUtMntiYWNrZ3JvdW5kLWNvbG9yOiMxNjMyNWEhaW1wb3J0YW50fQouYmx1ZS0xe2NvbG9yOiMyMzRmOGYhaW1wb3J0YW50fQouYmctYmx1ZS0xe2JhY2tncm91bmQtY29sb3I6IzIzNGY4ZiFpbXBvcnRhbnR9Ci5ibHVlMHtjb2xvcjojMmQ2NmI4IWltcG9ydGFudH0KLmJnLWJsdWUwe2JhY2tncm91bmQtY29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5ibHVlMXtjb2xvcjojNmI5ZmRiIWltcG9ydGFudH0KLmJnLWJsdWUxe2JhY2tncm91bmQtY29sb3I6IzZiOWZkYiFpbXBvcnRhbnR9Ci5ibHVlMntjb2xvcjojOWVjZGY4IWltcG9ydGFudH0KLmJnLWJsdWUye2JhY2tncm91bmQtY29sb3I6IzllY2RmOCFpbXBvcnRhbnR9Ci5ibHVlM3tjb2xvcjojYjdkYmZiIWltcG9ydGFudH0KLmJnLWJsdWUze2JhY2tncm91bmQtY29sb3I6I2I3ZGJmYiFpbXBvcnRhbnR9Ci5ibHVlNHtjb2xvcjojY2JlN2ZlIWltcG9ydGFudH0KLmJnLWJsdWU0e2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5ibHVlNXtjb2xvcjpyZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlNntjb2xvcjpyZ2JhKDE1OCwgMjA1LCAyNDgsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU2e2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KSFpbXBvcnRhbnR9Ci5ibHVlN3tjb2xvcjpyZ2JhKDIwMywgMjMxLCAyNTQsIDAuMzUpIWltcG9ydGFudH0KLmJnLWJsdWU3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KSFpbXBvcnRhbnR9Ci5jeWFuLTJ7Y29sb3I6IzA5NTQ3MCFpbXBvcnRhbnR9Ci5iZy1jeWFuLTJ7YmFja2dyb3VuZC1jb2xvcjojMDk1NDcwIWltcG9ydGFudH0KLmN5YW4tMXtjb2xvcjojMGU4MmFkIWltcG9ydGFudH0KLmJnLWN5YW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMwZTgyYWQhaW1wb3J0YW50fQouY3lhbjB7Y29sb3I6IzEyYTVkYyFpbXBvcnRhbnR9Ci5iZy1jeWFuMHtiYWNrZ3JvdW5kLWNvbG9yOiMxMmE1ZGMhaW1wb3J0YW50fQouY3lhbjF7Y29sb3I6IzVkYzVlOCFpbXBvcnRhbnR9Ci5iZy1jeWFuMXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZGM1ZTghaW1wb3J0YW50fQouY3lhbjJ7Y29sb3I6IzlhZTBmMSFpbXBvcnRhbnR9Ci5iZy1jeWFuMntiYWNrZ3JvdW5kLWNvbG9yOiM5YWUwZjEhaW1wb3J0YW50fQouY3lhbjN7Y29sb3I6I2IyZTlmNiFpbXBvcnRhbnR9Ci5iZy1jeWFuM3tiYWNrZ3JvdW5kLWNvbG9yOiNiMmU5ZjYhaW1wb3J0YW50fQouY3lhbjR7Y29sb3I6I2M2ZjBmYSFpbXBvcnRhbnR9Ci5iZy1jeWFuNHtiYWNrZ3JvdW5kLWNvbG9yOiNjNmYwZmEhaW1wb3J0YW50fQouY3lhbjV7Y29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmJnLWN5YW41e2JhY2tncm91bmQtY29sb3I6cmdiYSg5MywgMTk3LCAyMzIsIDAuMzUpIWltcG9ydGFudH0KLmN5YW42e2NvbG9yOnJnYmEoMTU0LCAyMjQsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMjI0LCAyNDEsIDAuMzUpIWltcG9ydGFudH0KLmN5YW43e2NvbG9yOnJnYmEoMTk4LCAyNDAsIDI1MCwgMC4zNSkhaW1wb3J0YW50fQouYmctY3lhbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE5OCwgMjQwLCAyNTAsIDAuMzUpIWltcG9ydGFudH0KLnRlYWwtMntjb2xvcjojMGM1NDQ4IWltcG9ydGFudH0KLmJnLXRlYWwtMntiYWNrZ3JvdW5kLWNvbG9yOiMwYzU0NDghaW1wb3J0YW50fQoudGVhbC0xe2NvbG9yOiMxNThlN2EhaW1wb3J0YW50fQouYmctdGVhbC0xe2JhY2tncm91bmQtY29sb3I6IzE1OGU3YSFpbXBvcnRhbnR9Ci50ZWFsMHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmJnLXRlYWwwe2JhY2tncm91bmQtY29sb3I6IzFiYmJhMCFpbXBvcnRhbnR9Ci50ZWFsMXtjb2xvcjojNjJkMmMwIWltcG9ydGFudH0KLmJnLXRlYWwxe2JhY2tncm91bmQtY29sb3I6IzYyZDJjMCFpbXBvcnRhbnR9Ci50ZWFsMntjb2xvcjojOWNlNWRhIWltcG9ydGFudH0KLmJnLXRlYWwye2JhY2tncm91bmQtY29sb3I6IzljZTVkYSFpbXBvcnRhbnR9Ci50ZWFsM3tjb2xvcjojYjdlY2UxIWltcG9ydGFudH0KLmJnLXRlYWwze2JhY2tncm91bmQtY29sb3I6I2I3ZWNlMSFpbXBvcnRhbnR9Ci50ZWFsNHtjb2xvcjojY2RmMmU2IWltcG9ydGFudH0KLmJnLXRlYWw0e2JhY2tncm91bmQtY29sb3I6I2NkZjJlNiFpbXBvcnRhbnR9Ci50ZWFsNXtjb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQouYmctdGVhbDV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDk4LCAyMTAsIDE5MiwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDZ7Y29sb3I6cmdiYSgxNTYsIDIyOSwgMjE4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsNntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU2LCAyMjksIDIxOCwgMC4zNSkhaW1wb3J0YW50fQoudGVhbDd7Y29sb3I6cmdiYSgyMDUsIDI0MiwgMjMwLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy10ZWFsN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA1LCAyNDIsIDIzMCwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW4tMntjb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmJnLWdyZWVuLTJ7YmFja2dyb3VuZC1jb2xvcjojMjEzMzA2IWltcG9ydGFudH0KLmdyZWVuLTF7Y29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5iZy1ncmVlbi0xe2JhY2tncm91bmQtY29sb3I6IzQ4NmYwZCFpbXBvcnRhbnR9Ci5ncmVlbjB7Y29sb3I6IzY1OWMxMyFpbXBvcnRhbnR9Ci5iZy1ncmVlbjB7YmFja2dyb3VuZC1jb2xvcjojNjU5YzEzIWltcG9ydGFudH0KLmdyZWVuMXtjb2xvcjojOWFjNTVjIWltcG9ydGFudH0KLmJnLWdyZWVuMXtiYWNrZ3JvdW5kLWNvbG9yOiM5YWM1NWMhaW1wb3J0YW50fQouZ3JlZW4ye2NvbG9yOiNjNmU2OTchaW1wb3J0YW50fQouYmctZ3JlZW4ye2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5ncmVlbjN7Y29sb3I6I2Q0ZWViMSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjN7YmFja2dyb3VuZC1jb2xvcjojZDRlZWIxIWltcG9ydGFudH0KLmdyZWVuNHtjb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVuNHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzYhaW1wb3J0YW50fQouZ3JlZW41e2NvbG9yOnJnYmEoMTU0LCAxOTcsIDkyLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NCwgMTk3LCA5MiwgMC4zNSkhaW1wb3J0YW50fQouZ3JlZW42e2NvbG9yOnJnYmEoMTk4LCAyMzAsIDE1MSwgMC4zNSkhaW1wb3J0YW50fQouYmctZ3JlZW42e2JhY2tncm91bmQtY29sb3I6cmdiYSgxOTgsIDIzMCwgMTUxLCAwLjM1KSFpbXBvcnRhbnR9Ci5ncmVlbjd7Y29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1ncmVlbjd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNCwgMjQ1LCAxOTgsIDAuMzUpIWltcG9ydGFudH0KLnllbGxvdy0ye2NvbG9yOiM4ZDVkMDkhaW1wb3J0YW50fQouYmcteWVsbG93LTJ7YmFja2dyb3VuZC1jb2xvcjojOGQ1ZDA5IWltcG9ydGFudH0KLnllbGxvdy0xe2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQouYmcteWVsbG93LTF7YmFja2dyb3VuZC1jb2xvcjojY2M4NjBkIWltcG9ydGFudH0KLnllbGxvdzB7Y29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cwe2JhY2tncm91bmQtY29sb3I6I2YwYTIxYyFpbXBvcnRhbnR9Ci55ZWxsb3cxe2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQouYmcteWVsbG93MXtiYWNrZ3JvdW5kLWNvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoueWVsbG93Mntjb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLXllbGxvdzJ7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLnllbGxvdzN7Y29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci5iZy15ZWxsb3cze2JhY2tncm91bmQtY29sb3I6I2ZmZWY5MSFpbXBvcnRhbnR9Ci55ZWxsb3c0e2NvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQouYmcteWVsbG93NHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY0YTAhaW1wb3J0YW50fQoueWVsbG93NXtjb2xvcjpyZ2JhKDI0OCwgMjAxLCA4MiwgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ4LCAyMDEsIDgyLCAwLjM1KSFpbXBvcnRhbnR9Ci55ZWxsb3c2e2NvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQouYmcteWVsbG93NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC4zNSkhaW1wb3J0YW50fQoueWVsbG93N3tjb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLmJnLXllbGxvdzd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjQ0LCAxNjAsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZS0ye2NvbG9yOiNhMTQwMDUhaW1wb3J0YW50fQouYmctb3JhbmdlLTJ7YmFja2dyb3VuZC1jb2xvcjojYTE0MDA1IWltcG9ydGFudH0KLm9yYW5nZS0xe2NvbG9yOiNlMTVhMDchaW1wb3J0YW50fQouYmctb3JhbmdlLTF7YmFja2dyb3VuZC1jb2xvcjojZTE1YTA3IWltcG9ydGFudH0KLm9yYW5nZTB7Y29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uwe2JhY2tncm91bmQtY29sb3I6I2Y4NzQyMyFpbXBvcnRhbnR9Ci5vcmFuZ2Uxe2NvbG9yOiNmYjlmNjchaW1wb3J0YW50fQouYmctb3JhbmdlMXtiYWNrZ3JvdW5kLWNvbG9yOiNmYjlmNjchaW1wb3J0YW50fQoub3JhbmdlMntjb2xvcjojZmVjMjllIWltcG9ydGFudH0KLmJnLW9yYW5nZTJ7YmFja2dyb3VuZC1jb2xvcjojZmVjMjllIWltcG9ydGFudH0KLm9yYW5nZTN7Y29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2Uze2JhY2tncm91bmQtY29sb3I6I2ZmY2ZhNSFpbXBvcnRhbnR9Ci5vcmFuZ2U0e2NvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQouYmctb3JhbmdlNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmRhYWEhaW1wb3J0YW50fQoub3JhbmdlNXtjb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLmJnLW9yYW5nZTV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MSwgMTU5LCAxMDMsIDAuMzUpIWltcG9ydGFudH0KLm9yYW5nZTZ7Y29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1vcmFuZ2U2e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDE5NCwgMTU4LCAwLjM1KSFpbXBvcnRhbnR9Ci5vcmFuZ2U3e2NvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQouYmctb3JhbmdlN3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMTgsIDE3MCwgMC4zNSkhaW1wb3J0YW50fQoucmVkLTJ7Y29sb3I6Izc2MTcyNyFpbXBvcnRhbnR9Ci5iZy1yZWQtMntiYWNrZ3JvdW5kLWNvbG9yOiM3NjE3MjchaW1wb3J0YW50fQoucmVkLTF7Y29sb3I6I2FkMjIzOSFpbXBvcnRhbnR9Ci5iZy1yZWQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNhZDIyMzkhaW1wb3J0YW50fQoucmVkMHtjb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLmJnLXJlZDB7YmFja2dyb3VuZC1jb2xvcjojZDYyYzQ5IWltcG9ydGFudH0KLnJlZDF7Y29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5iZy1yZWQxe2JhY2tncm91bmQtY29sb3I6I2VhNzI4NiFpbXBvcnRhbnR9Ci5yZWQye2NvbG9yOiNmYWFiYjghaW1wb3J0YW50fQouYmctcmVkMntiYWNrZ3JvdW5kLWNvbG9yOiNmYWFiYjghaW1wb3J0YW50fQoucmVkM3tjb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLmJnLXJlZDN7YmFja2dyb3VuZC1jb2xvcjojZmNjMWM3IWltcG9ydGFudH0KLnJlZDR7Y29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5iZy1yZWQ0e2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMyFpbXBvcnRhbnR9Ci5yZWQ1e2NvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQouYmctcmVkNXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM0LCAxMTQsIDEzNCwgMC4zNSkhaW1wb3J0YW50fQoucmVkNntjb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLmJnLXJlZDZ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpIWltcG9ydGFudH0KLnJlZDd7Y29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy1yZWQ3e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQtMntjb2xvcjojNGMyMzYzIWltcG9ydGFudH0KLmJnLXZpb2xldC0ye2JhY2tncm91bmQtY29sb3I6IzRjMjM2MyFpbXBvcnRhbnR9Ci52aW9sZXQtMXtjb2xvcjojNzIzNTk0IWltcG9ydGFudH0KLmJnLXZpb2xldC0xe2JhY2tncm91bmQtY29sb3I6IzcyMzU5NCFpbXBvcnRhbnR9Ci52aW9sZXQwe2NvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQouYmctdmlvbGV0MHtiYWNrZ3JvdW5kLWNvbG9yOiM4ZjQyYmEhaW1wb3J0YW50fQoudmlvbGV0MXtjb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLmJnLXZpb2xldDF7YmFja2dyb3VuZC1jb2xvcjojYmQ4YWQ4IWltcG9ydGFudH0KLnZpb2xldDJ7Y29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQye2JhY2tncm91bmQtY29sb3I6I2UyYzVmMSFpbXBvcnRhbnR9Ci52aW9sZXQze2NvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQouYmctdmlvbGV0M3tiYWNrZ3JvdW5kLWNvbG9yOiNlYmNmZjIhaW1wb3J0YW50fQoudmlvbGV0NHtjb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLmJnLXZpb2xldDR7YmFja2dyb3VuZC1jb2xvcjojZjJkN2YyIWltcG9ydGFudH0KLnZpb2xldDV7Y29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci5iZy12aW9sZXQ1e2JhY2tncm91bmQtY29sb3I6cmdiYSgxODksIDEzOCwgMjE2LCAwLjM1KSFpbXBvcnRhbnR9Ci52aW9sZXQ2e2NvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQouYmctdmlvbGV0NntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI2LCAxOTcsIDI0MSwgMC4zNSkhaW1wb3J0YW50fQoudmlvbGV0N3tjb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLmJnLXZpb2xldDd7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0MiwgMjE1LCAyNDIsIDAuMzUpIWltcG9ydGFudH0KLm8we29wYWNpdHk6MC4wMSFpbXBvcnRhbnR9Ci5vMTB7b3BhY2l0eTowLjEhaW1wb3J0YW50fQoubzIwe29wYWNpdHk6MC4yIWltcG9ydGFudH0KLm8zMHtvcGFjaXR5OjAuMyFpbXBvcnRhbnR9Ci5vNDB7b3BhY2l0eTowLjQhaW1wb3J0YW50fQoubzUwe29wYWNpdHk6MC41IWltcG9ydGFudH0KLm82MHtvcGFjaXR5OjAuNiFpbXBvcnRhbnR9Ci5vNzB7b3BhY2l0eTowLjchaW1wb3J0YW50fQoubzgwe29wYWNpdHk6MC44IWltcG9ydGFudH0KLm85MHtvcGFjaXR5OjAuOSFpbXBvcnRhbnR9Ci5vMTAwe29wYWNpdHk6MSFpbXBvcnRhbnR9Ci5sZ3JheXtjb2xvcjojZDBkNmRkIWltcG9ydGFudH0KLmdyYXl7Y29sb3I6Izg4OTI5ZiFpbXBvcnRhbnR9Ci54Z3JheXtjb2xvcjojNGQ1YTZhIWltcG9ydGFudH0KLmJsdWV7Y29sb3I6IzJkNjZiOCFpbXBvcnRhbnR9Ci5za3libHVle2NvbG9yOiM0M2E0ZWYhaW1wb3J0YW50fQouc2t5e2NvbG9yOiM3NmM2ZjMhaW1wb3J0YW50fQoudGVhbHtjb2xvcjojMWJiYmEwIWltcG9ydGFudH0KLmxncmVlbntjb2xvcjojYzZlNjk3IWltcG9ydGFudH0KLmdyZWVue2NvbG9yOiM2NTljMTMhaW1wb3J0YW50fQoueWVsbG93e2NvbG9yOiNmOGM5NTIhaW1wb3J0YW50fQoub3Jhbmdle2NvbG9yOiNmODc0MjMhaW1wb3J0YW50fQoucGlua3tjb2xvcjojZmFhYmI4IWltcG9ydGFudH0KLnNhbG1vbntjb2xvcjojZmRhMDk2IWltcG9ydGFudH0KLmJyb3due2NvbG9yOiNjYzg2MGQhaW1wb3J0YW50fQoucmVke2NvbG9yOiNkNjJjNDkhaW1wb3J0YW50fQouYmctbGdyYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpIWltcG9ydGFudH0KLmJnLWdyYXl7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViIWltcG9ydGFudH0KLmJnLWxibHVle2JhY2tncm91bmQtY29sb3I6I2NiZTdmZSFpbXBvcnRhbnR9Ci5iZy1sZ3JlZW57YmFja2dyb3VuZC1jb2xvcjojZTBmNWM2IWltcG9ydGFudH0KLmJnLWdyZWVue2JhY2tncm91bmQtY29sb3I6I2M2ZTY5NyFpbXBvcnRhbnR9Ci5iZy15ZWxsb3d7YmFja2dyb3VuZC1jb2xvcjojZmZlOTdmIWltcG9ydGFudH0KLmJnLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZWMyOWUhaW1wb3J0YW50fQouYmctY2hhbGt7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjMzLCAxMjcsIDAuMzUpIWltcG9ydGFudH0KLmJnLWxzYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjExKSFpbXBvcnRhbnR9Ci5iZy1zYWxtb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgODAsIDYwLCAwLjUpIWltcG9ydGFudH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1yYW5nZV0sIHRleHRhcmVhey13ZWJraXQtYXBwZWFyYW5jZTpub25lO3RyYW5zaXRpb246Y29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzLCBib3JkZXItY29sb3IgMC4yc30KaW5wdXQsIHNlbGVjdCwgb3B0aW9uLCBidXR0b257Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtvdXRsaW5lOm5vbmUhaW1wb3J0YW50fQppbnB1dFt0eXBlPXJhZGlvXSwgaW5wdXRbdHlwZT1jaGVja2JveF0ge2FjY2VudC1jb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgaW5wdXRbdHlwZT1udW1iZXJdLCBpbnB1dFt0eXBlPWVtYWlsXSwgaW5wdXRbdHlwZT10ZWxdLCBpbnB1dFt0eXBlPWRhdGVdLCBpbnB1dFt0eXBlPXRpbWVdIHtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlci1jb2xvcjojZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7cG9zaXRpb246cmVsYXRpdmV9CmlucHV0W3R5cGU9bnVtYmVyXSB7cGFkZGluZzowLjM1ZW0gMC4yZW0gMC4zNWVtIDAuNGVtfQppbnB1dDpkaXNhYmxlZCwgc2VsZWN0OmRpc2FibGVkLCBvcHRpb246ZGlzYWJsZWQsIHRleHRhcmVhOmRpc2FibGVkLCBidXR0b246ZGlzYWJsZWR7Y29sb3I6Izg4OTI5Zjtib3JkZXItY29sb3I6I2I5YzBjYiFpbXBvcnRhbnQ7b3BhY2l0eTowLjc1fQppbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9YnV0dG9uXSk6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjojOWVjZGY4fQo6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNiOWMwY2J9CjotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KOi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6I2I5YzBjYn0KdGV4dGFyZWF7Zm9udDoxMDAlICctYXBwbGUtc3lzdGVtJywgJ0JsaW5rTWFjU3lzdGVtRm9udCcsICdIZWx2ZXRpY2EgTmV1ZScsICdTZWdvZSBVSScsIFVidW50dSwgUm9ib3RvLCBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsIFZlcmRhbmEsIFNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4zZW07Y29sb3I6IzRkNWE2YTtwYWRkaW5nOjAuMzVlbSAwLjRlbSAwLjM1ZW0gMC40ZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7bWFyZ2luOjA7d2lkdGg6OTAlO21pbi1oZWlnaHQ6NjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0KdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzllY2RmOH0Kc2VsZWN0e21hcmdpbjo0cHggMCA0cHggMH0Kc2VsZWN0IG9wdGlvbntwYWRkaW5nOjJweCAzcHggM3B4IDNweH0Kc2VsZWN0W211bHRpcGxlXSB7cGFkZGluZzowLjM1ZW0gMC40ZW0gMC4zNWVtIDAuNGVtO2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO21hcmdpbjo0cHggMCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZX0KbGFiZWwsIC5sYWJlbHtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOiM4ODkyOWY7bWFyZ2luOjNweCAwIDRweCAwfQppbnB1dFt0eXBlPSdjaGVja2JveCddICsgbGFiZWx7ZGlzcGxheTppbmxpbmV9CmlucHV0W3R5cGU9J3JhZGlvJ10gKyBsYWJlbHtkaXNwbGF5OmlubGluZX0KZmllbGRzZXR7Ym9yZGVyLXJhZGl1czoycHg7bWFyZ2luOjBweCAwIDIwcHggMDtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzoxMHB4fQpsZWdlbmR7cGFkZGluZzowIDJweCAwIDJweH0KaW5wdXRbdHlwZT1idXR0b25dOmZvY3VzLCBidXR0b246Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZH0KaW5wdXRbdHlwZT0nYnV0dG9uJ10sIGJ1dHRvbiwgLmJ1dHRvbntsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNGQ1YTZhO2JvcmRlci1jb2xvcjojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MC4zZW0gMC43ZW0gMC40ZW0gMC43ZW07bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZTNlOGViO3RyYW5zaXRpb246Ym9yZGVyIDAuM3MsIGNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcywgYmFja2dyb3VuZC1jb2xvciAwLjNzOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZX0KaW5wdXRbdHlwZT0nYnV0dG9uJ106aG92ZXIsIC5idXR0b246aG92ZXIsIGJ1dHRvbjpob3Zlcntib3JkZXItY29sb3I6IzZiOWZkYjtjb2xvcjojMmQ2NmI4O2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7b3BhY2l0eToxfQppbnB1dFt0eXBlPSdidXR0b24nXTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0nYnV0dG9uJ106ZGlzYWJsZWQ6aG92ZXIsIGJ1dHRvbjpkaXNhYmxlZCwgYnV0dG9uOmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVye2JvcmRlci1jb2xvcjojZTNlOGViIWltcG9ydGFudDtjb2xvcjojODg5MjlmIWltcG9ydGFudDtvcGFjaXR5OjAuNjUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2UzZThlYiFpbXBvcnRhbnQ7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50fQpidXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVye2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7cmlnaHQ6M3B4O3dpZHRoOjRweDtoZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6M3B4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O3otaW5kZXg6Mn0KaW5wdXRbdHlwZT1idXR0b25dLmJsdWU6aG92ZXIsIC5idXR0b24uYmx1ZTpob3ZlciwgYnV0dG9uLmJsdWU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM2YjlmZGJ9CmlucHV0W3R5cGU9YnV0dG9uXS5ibHVlLCAuYnV0dG9uLmJsdWUsIGJ1dHRvbi5ibHVle2JvcmRlci1jb2xvcjojY2JlN2ZlO2JhY2tncm91bmQtY29sb3I6I2NiZTdmZTtjb2xvcjojMmQ2NmI4fQppbnB1dFt0eXBlPWJ1dHRvbl0udGVhbDpob3ZlciwgLmJ1dHRvbi50ZWFsOmhvdmVyLCBidXR0b24udGVhbDpob3Zlcntib3JkZXItY29sb3I6IzFiYmJhMH0KaW5wdXRbdHlwZT1idXR0b25dLnRlYWwsIC5idXR0b24udGVhbCwgYnV0dG9uLnRlYWx7Ym9yZGVyLWNvbG9yOiNjZGYyZTY7YmFja2dyb3VuZC1jb2xvcjojY2RmMmU2fQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW46aG92ZXIsIC5idXR0b24uZ3JlZW46aG92ZXIsIGJ1dHRvbi5ncmVlbjpob3Zlcntib3JkZXItY29sb3I6IzlhYzU1Yztjb2xvcjojNjU5YzEzfQppbnB1dFt0eXBlPWJ1dHRvbl0uZ3JlZW4sIC5idXR0b24uZ3JlZW4sIGJ1dHRvbi5ncmVlbntib3JkZXItY29sb3I6I2UwZjVjNjtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY1YzZ9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2U6aG92ZXIsIC5idXR0b24ub3JhbmdlOmhvdmVyLCBidXR0b24ub3JhbmdlOmhvdmVye2JvcmRlci1jb2xvcjojZmVjMjllO2NvbG9yOiNmODc0MjN9CmlucHV0W3R5cGU9YnV0dG9uXS5vcmFuZ2UsIC5idXR0b24ub3JhbmdlLCBidXR0b24ub3Jhbmdle2JvcmRlci1jb2xvcjojZmZkYWFhO2JhY2tncm91bmQtY29sb3I6I2ZmZGFhYTtjb2xvcjojZjg3NDIzfQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkOmhvdmVyLCAuYnV0dG9uLnJlZDpob3ZlciwgYnV0dG9uLnJlZDpob3Zlcntib3JkZXItY29sb3I6I2ZhYWJiODtjb2xvcjojZDYyYzQ5fQppbnB1dFt0eXBlPWJ1dHRvbl0ucmVkLCAuYnV0dG9uLnJlZCwgYnV0dG9uLnJlZHtib3JkZXItY29sb3I6I2ZlZDNkMztiYWNrZ3JvdW5kLWNvbG9yOiNmZWQzZDM7Y29sb3I6I2Q2MmM0OX0KYTphY3RpdmUsIGE6Zm9jdXN7b3V0bGluZTpub25lfQphLCAucHNldWRvbGlua3tjb2xvcjojMmQ2NmI4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgMC4zczstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW9wZXJhLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1zLXRyYW5zaXRpb246Y29sb3IgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOmNvbG9yIDAuM3MsIGJvcmRlciAwLjNzfQoucHNldWRvbGlua3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2NvbG9yOiMyZDY2Yjh9CmE6aG92ZXIsIC5wc2V1ZG9saW5rOmhvdmVyLCAucHNldWRvYnV0dG9uOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5ob3ZlcmxpbmsgLnBzZXVkb2xpbmt7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApfQouaG92ZXJsaW5rOmhvdmVyIC5wc2V1ZG9saW5re3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMyZDY2Yjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzllY2RmOH0KLmhvdmVybGluazpob3ZlciAucHNldWRvbGluazpob3Zlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOWFlMGYxO2NvbG9yOiMxMmE1ZGN9CmEgaW1ne2JvcmRlcjpub25lIWltcG9ydGFudH0KLncxe3dpZHRoOjFweCFpbXBvcnRhbnR9Ci53Mnt3aWR0aDoycHghaW1wb3J0YW50fQoudzN7d2lkdGg6M3B4IWltcG9ydGFudH0KLnc0e3dpZHRoOjRweCFpbXBvcnRhbnR9Ci53NXt3aWR0aDo1cHghaW1wb3J0YW50fQoudzZ7d2lkdGg6NnB4IWltcG9ydGFudH0KLnc3e3dpZHRoOjdweCFpbXBvcnRhbnR9Ci53OHt3aWR0aDo4cHghaW1wb3J0YW50fQoudzl7d2lkdGg6OXB4IWltcG9ydGFudH0KLncxMHt3aWR0aDoxMHB4IWltcG9ydGFudH0KLncxMXt3aWR0aDoxMXB4IWltcG9ydGFudH0KLncxMnt3aWR0aDoxMnB4IWltcG9ydGFudH0KLncxM3t3aWR0aDoxM3B4IWltcG9ydGFudH0KLncxNHt3aWR0aDoxNHB4IWltcG9ydGFudH0KLncxNXt3aWR0aDoxNXB4IWltcG9ydGFudH0KLncxNnt3aWR0aDoxNnB4IWltcG9ydGFudH0KLncxN3t3aWR0aDoxN3B4IWltcG9ydGFudH0KLncxOHt3aWR0aDoxOHB4IWltcG9ydGFudH0KLncxOXt3aWR0aDoxOXB4IWltcG9ydGFudH0KLncyMHt3aWR0aDoyMHB4IWltcG9ydGFudH0KLncyMXt3aWR0aDoyMXB4IWltcG9ydGFudH0KLncyMnt3aWR0aDoyMnB4IWltcG9ydGFudH0KLncyM3t3aWR0aDoyM3B4IWltcG9ydGFudH0KLncyNHt3aWR0aDoyNHB4IWltcG9ydGFudH0KLncyNXt3aWR0aDoyNXB4IWltcG9ydGFudH0KLnczMHt3aWR0aDozMHB4IWltcG9ydGFudH0KLnczMnt3aWR0aDozMnB4IWltcG9ydGFudH0KLnczNXt3aWR0aDozNXB4IWltcG9ydGFudH0KLnc0MHt3aWR0aDo0MHB4IWltcG9ydGFudH0KLnc0NXt3aWR0aDo0NXB4IWltcG9ydGFudH0KLnc0OHt3aWR0aDo0OHB4IWltcG9ydGFudH0KLnc1MHt3aWR0aDo1MHB4IWltcG9ydGFudH0KLnc1NXt3aWR0aDo1NXB4IWltcG9ydGFudH0KLnc2MHt3aWR0aDo2MHB4IWltcG9ydGFudH0KLnc2NHt3aWR0aDo2NHB4IWltcG9ydGFudH0KLnc2NXt3aWR0aDo2NXB4IWltcG9ydGFudH0KLnc3MHt3aWR0aDo3MHB4IWltcG9ydGFudH0KLnc3NXt3aWR0aDo3NXB4IWltcG9ydGFudH0KLnc4MHt3aWR0aDo4MHB4IWltcG9ydGFudH0KLnc4NXt3aWR0aDo4NXB4IWltcG9ydGFudH0KLnc5MHt3aWR0aDo5MHB4IWltcG9ydGFudH0KLnc5NXt3aWR0aDo5NXB4IWltcG9ydGFudH0KLnc5Nnt3aWR0aDo5NnB4IWltcG9ydGFudH0KLncxMDB7d2lkdGg6MTAwcHghaW1wb3J0YW50fQoudzEwNXt3aWR0aDoxMDVweCFpbXBvcnRhbnR9Ci53MTEwe3dpZHRoOjExMHB4IWltcG9ydGFudH0KLncxMTV7d2lkdGg6MTE1cHghaW1wb3J0YW50fQoudzEyMHt3aWR0aDoxMjBweCFpbXBvcnRhbnR9Ci53MTI1e3dpZHRoOjEyNXB4IWltcG9ydGFudH0KLncxMzB7d2lkdGg6MTMwcHghaW1wb3J0YW50fQoudzEzNXt3aWR0aDoxMzVweCFpbXBvcnRhbnR9Ci53MTQwe3dpZHRoOjE0MHB4IWltcG9ydGFudH0KLncxNDV7d2lkdGg6MTQ1cHghaW1wb3J0YW50fQoudzE1MHt3aWR0aDoxNTBweCFpbXBvcnRhbnR9Ci53MTU1e3dpZHRoOjE1NXB4IWltcG9ydGFudH0KLncxNjB7d2lkdGg6MTYwcHghaW1wb3J0YW50fQoudzE2NXt3aWR0aDoxNjVweCFpbXBvcnRhbnR9Ci53MTcwe3dpZHRoOjE3MHB4IWltcG9ydGFudH0KLncxNzV7d2lkdGg6MTc1cHghaW1wb3J0YW50fQoudzE4MHt3aWR0aDoxODBweCFpbXBvcnRhbnR9Ci53MTg1e3dpZHRoOjE4NXB4IWltcG9ydGFudH0KLncxOTB7d2lkdGg6MTkwcHghaW1wb3J0YW50fQoudzE5NXt3aWR0aDoxOTVweCFpbXBvcnRhbnR9Ci53MjAwe3dpZHRoOjIwMHB4IWltcG9ydGFudH0KLncyMTB7d2lkdGg6MjEwcHghaW1wb3J0YW50fQoudzIyMHt3aWR0aDoyMjBweCFpbXBvcnRhbnR9Ci53MjMwe3dpZHRoOjIzMHB4IWltcG9ydGFudH0KLncyNDB7d2lkdGg6MjQwcHghaW1wb3J0YW50fQoudzI1MHt3aWR0aDoyNTBweCFpbXBvcnRhbnR9Ci53MjYwe3dpZHRoOjI2MHB4IWltcG9ydGFudH0KLncyNzB7d2lkdGg6MjcwcHghaW1wb3J0YW50fQoudzI4MHt3aWR0aDoyODBweCFpbXBvcnRhbnR9Ci53Mjkwe3dpZHRoOjI5MHB4IWltcG9ydGFudH0KLnczMDB7d2lkdGg6MzAwcHghaW1wb3J0YW50fQoudzMxMHt3aWR0aDozMTBweCFpbXBvcnRhbnR9Ci53MzIwe3dpZHRoOjMyMHB4IWltcG9ydGFudH0KLnczMzB7d2lkdGg6MzMwcHghaW1wb3J0YW50fQoudzM0MHt3aWR0aDozNDBweCFpbXBvcnRhbnR9Ci53MzUwe3dpZHRoOjM1MHB4IWltcG9ydGFudH0KLnczNjB7d2lkdGg6MzYwcHghaW1wb3J0YW50fQoudzM3MHt3aWR0aDozNzBweCFpbXBvcnRhbnR9Ci53Mzgwe3dpZHRoOjM4MHB4IWltcG9ydGFudH0KLnczOTB7d2lkdGg6MzkwcHghaW1wb3J0YW50fQoudzQwMHt3aWR0aDo0MDBweCFpbXBvcnRhbnR9Ci53NDIwe3dpZHRoOjQyMHB4IWltcG9ydGFudH0KLnc0NTB7d2lkdGg6NDUwcHghaW1wb3J0YW50fQoudzUwMHt3aWR0aDo1MDBweCFpbXBvcnRhbnR9Ci53NTIwe3dpZHRoOjUyMHB4IWltcG9ydGFudH0KLnc1NTB7d2lkdGg6NTUwcHghaW1wb3J0YW50fQoudzYwMHt3aWR0aDo2MDBweCFpbXBvcnRhbnR9Ci53NjIwe3dpZHRoOjYyMHB4IWltcG9ydGFudH0KLnc2NTB7d2lkdGg6NjUwcHghaW1wb3J0YW50fQoudzcwMHt3aWR0aDo3MDBweCFpbXBvcnRhbnR9Ci53NzIwe3dpZHRoOjcyMHB4IWltcG9ydGFudH0KLnc3NTB7d2lkdGg6NzUwcHghaW1wb3J0YW50fQoudzgwMHt3aWR0aDo4MDBweCFpbXBvcnRhbnR9Ci53ODIwe3dpZHRoOjgyMHB4IWltcG9ydGFudH0KLnc4NTB7d2lkdGg6ODUwcHghaW1wb3J0YW50fQoudzkwMHt3aWR0aDo5MDBweCFpbXBvcnRhbnR9Ci53OTIwe3dpZHRoOjkyMHB4IWltcG9ydGFudH0KLnc5NTB7d2lkdGg6OTUwcHghaW1wb3J0YW50fQoudzEwMDB7d2lkdGg6MTAwMHB4IWltcG9ydGFudH0KLncxMDUwe3dpZHRoOjEwNTBweCFpbXBvcnRhbnR9Ci53MTEwMHt3aWR0aDoxMTAwcHghaW1wb3J0YW50fQoudzExNTB7d2lkdGg6MTE1MHB4IWltcG9ydGFudH0KLncxMTYwe3dpZHRoOjExNjBweCFpbXBvcnRhbnR9Ci53MTIwMHt3aWR0aDoxMjAwcHghaW1wb3J0YW50fQoudzEyNTB7d2lkdGg6MTI1MHB4IWltcG9ydGFudH0KLncxMzAwe3dpZHRoOjEzMDBweCFpbXBvcnRhbnR9Ci53MTM1MHt3aWR0aDoxMzUwcHghaW1wb3J0YW50fQoudzE0MDB7d2lkdGg6MTQwMHB4IWltcG9ydGFudH0KLncxNDUwe3dpZHRoOjE0NTBweCFpbXBvcnRhbnR9Ci53MTUwMHt3aWR0aDoxNTAwcHghaW1wb3J0YW50fQoudzVwe3dpZHRoOjUlIWltcG9ydGFudH0KLncxMHB7d2lkdGg6MTAlIWltcG9ydGFudH0KLncxNXB7d2lkdGg6MTUlIWltcG9ydGFudH0KLncyMHB7d2lkdGg6MjAlIWltcG9ydGFudH0KLncyNXB7d2lkdGg6MjUlIWltcG9ydGFudH0KLnczMHB7d2lkdGg6MzAlIWltcG9ydGFudH0KLnczNXB7d2lkdGg6MzUlIWltcG9ydGFudH0KLnc0MHB7d2lkdGg6NDAlIWltcG9ydGFudH0KLnc0NXB7d2lkdGg6NDUlIWltcG9ydGFudH0KLnc1MHB7d2lkdGg6NTAlIWltcG9ydGFudH0KLnc1NXB7d2lkdGg6NTUlIWltcG9ydGFudH0KLnc2MHB7d2lkdGg6NjAlIWltcG9ydGFudH0KLnc2NXB7d2lkdGg6NjUlIWltcG9ydGFudH0KLnc3MHB7d2lkdGg6NzAlIWltcG9ydGFudH0KLnc3NXB7d2lkdGg6NzUlIWltcG9ydGFudH0KLnc4MHB7d2lkdGg6ODAlIWltcG9ydGFudH0KLnc4NXB7d2lkdGg6ODUlIWltcG9ydGFudH0KLnc5MHB7d2lkdGg6OTAlIWltcG9ydGFudH0KLnc5NXB7d2lkdGg6OTUlIWltcG9ydGFudH0KLncxMDBwe3dpZHRoOjEwMCUhaW1wb3J0YW50fQouaDB7aGVpZ2h0OjBweCFpbXBvcnRhbnR9Ci5oMXtoZWlnaHQ6MXB4IWltcG9ydGFudH0KLmgye2hlaWdodDoycHghaW1wb3J0YW50fQouaDN7aGVpZ2h0OjNweCFpbXBvcnRhbnR9Ci5oNHtoZWlnaHQ6NHB4IWltcG9ydGFudH0KLmg1e2hlaWdodDo1cHghaW1wb3J0YW50fQouaDEwe2hlaWdodDoxMHB4IWltcG9ydGFudH0KLmgxNXtoZWlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5oMTZ7aGVpZ2h0OjE2cHghaW1wb3J0YW50fQouaDIwe2hlaWdodDoyMHB4IWltcG9ydGFudH0KLmgyNHtoZWlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5oMjV7aGVpZ2h0OjI1cHghaW1wb3J0YW50fQouaDMwe2hlaWdodDozMHB4IWltcG9ydGFudH0KLmgzMntoZWlnaHQ6MzJweCFpbXBvcnRhbnR9Ci5oMzV7aGVpZ2h0OjM1cHghaW1wb3J0YW50fQouaDQwe2hlaWdodDo0MHB4IWltcG9ydGFudH0KLmg0NXtoZWlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5oNDh7aGVpZ2h0OjQ4cHghaW1wb3J0YW50fQouaDUwe2hlaWdodDo1MHB4IWltcG9ydGFudH0KLmg1NXtoZWlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5oNjB7aGVpZ2h0OjYwcHghaW1wb3J0YW50fQouaDY0e2hlaWdodDo2NHB4IWltcG9ydGFudH0KLmg2NXtoZWlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5oNzB7aGVpZ2h0OjcwcHghaW1wb3J0YW50fQouaDc1e2hlaWdodDo3NXB4IWltcG9ydGFudH0KLmg4MHtoZWlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5oODV7aGVpZ2h0Ojg1cHghaW1wb3J0YW50fQouaDkwe2hlaWdodDo5MHB4IWltcG9ydGFudH0KLmg5NXtoZWlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5oOTZ7aGVpZ2h0Ojk2cHghaW1wb3J0YW50fQouaDEwMHtoZWlnaHQ6MTAwcHghaW1wb3J0YW50fQouaDExMHtoZWlnaHQ6MTEwcHghaW1wb3J0YW50fQouaDEyMHtoZWlnaHQ6MTIwcHghaW1wb3J0YW50fQouaDEzMHtoZWlnaHQ6MTMwcHghaW1wb3J0YW50fQouaDE0MHtoZWlnaHQ6MTQwcHghaW1wb3J0YW50fQouaDE1MHtoZWlnaHQ6MTUwcHghaW1wb3J0YW50fQouaDE2MHtoZWlnaHQ6MTYwcHghaW1wb3J0YW50fQouaDE3MHtoZWlnaHQ6MTcwcHghaW1wb3J0YW50fQouaDE4MHtoZWlnaHQ6MTgwcHghaW1wb3J0YW50fQouaDE5MHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50fQouaDIwMHtoZWlnaHQ6MjAwcHghaW1wb3J0YW50fQouaDI1MHtoZWlnaHQ6MjUwcHghaW1wb3J0YW50fQouaDMwMHtoZWlnaHQ6MzAwcHghaW1wb3J0YW50fQouaDM1MHtoZWlnaHQ6MzUwcHghaW1wb3J0YW50fQouaDQwMHtoZWlnaHQ6NDAwcHghaW1wb3J0YW50fQouaDQ1MHtoZWlnaHQ6NDUwcHghaW1wb3J0YW50fQouaDUwMHtoZWlnaHQ6NTAwcHghaW1wb3J0YW50fQouaDU1MHtoZWlnaHQ6NTUwcHghaW1wb3J0YW50fQouaDYwMHtoZWlnaHQ6NjAwcHghaW1wb3J0YW50fQouaDY1MHtoZWlnaHQ6NjUwcHghaW1wb3J0YW50fQouaDcwMHtoZWlnaHQ6NzAwcHghaW1wb3J0YW50fQouaDc1MHtoZWlnaHQ6NzUwcHghaW1wb3J0YW50fQouaDgwMHtoZWlnaHQ6ODAwcHghaW1wb3J0YW50fQouaDg1MHtoZWlnaHQ6ODUwcHghaW1wb3J0YW50fQouaDkwMHtoZWlnaHQ6OTAwcHghaW1wb3J0YW50fQouaDk1MHtoZWlnaHQ6OTUwcHghaW1wb3J0YW50fQouaDEwMDB7aGVpZ2h0OjEwMDBweCFpbXBvcnRhbnR9Ci5oYXtoZWlnaHQ6YXV0byFpbXBvcnRhbnR9Ci5kaXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9Ci5kaWJ7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fQouZGJ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Ci5kaS5oaWRlLCAuZGIuaGlkZSwgLmRpYi5oaWRlLCAuZGkuZmlsdGVyLW5vbWF0Y2gsIC5kYi5maWx0ZXItbm9tYXRjaCwgLmRpYi5maWx0ZXItbm9tYXRjaHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQoub2h7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0KLm92e292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fQouZmx7ZmxvYXQ6bGVmdH0KLmZye2Zsb2F0OnJpZ2h0fQouY2J7Y2xlYXI6Ym90aH0KLmNye2NsZWFyOnJpZ2h0fQouY2x7Y2xlYXI6bGVmdH0KLnAwe3BhZGRpbmc6MHB4IWltcG9ydGFudH0KLnAxe3BhZGRpbmc6MXB4IWltcG9ydGFudH0KLnAye3BhZGRpbmc6MnB4IWltcG9ydGFudH0KLnAze3BhZGRpbmc6M3B4IWltcG9ydGFudH0KLnA0e3BhZGRpbmc6NHB4IWltcG9ydGFudH0KLnA1e3BhZGRpbmc6NXB4IWltcG9ydGFudH0KLnA2e3BhZGRpbmc6NnB4IWltcG9ydGFudH0KLnA3e3BhZGRpbmc6N3B4IWltcG9ydGFudH0KLnA4e3BhZGRpbmc6OHB4IWltcG9ydGFudH0KLnA5e3BhZGRpbmc6OXB4IWltcG9ydGFudH0KLnAxMHtwYWRkaW5nOjEwcHghaW1wb3J0YW50fQoucDE1e3BhZGRpbmc6MTVweCFpbXBvcnRhbnR9Ci5wMjB7cGFkZGluZzoyMHB4IWltcG9ydGFudH0KLnAyNXtwYWRkaW5nOjI1cHghaW1wb3J0YW50fQoucDMwe3BhZGRpbmc6MzBweCFpbXBvcnRhbnR9Ci5wMzV7cGFkZGluZzozNXB4IWltcG9ydGFudH0KLnA0MHtwYWRkaW5nOjQwcHghaW1wb3J0YW50fQoucDQ1e3BhZGRpbmc6NDVweCFpbXBvcnRhbnR9Ci5wNTB7cGFkZGluZzo1MHB4IWltcG9ydGFudH0KLnA1NXtwYWRkaW5nOjU1cHghaW1wb3J0YW50fQoucDYwe3BhZGRpbmc6NjBweCFpbXBvcnRhbnR9Ci5wNjV7cGFkZGluZzo2NXB4IWltcG9ydGFudH0KLnA3MHtwYWRkaW5nOjcwcHghaW1wb3J0YW50fQoucDc1e3BhZGRpbmc6NzVweCFpbXBvcnRhbnR9Ci5wODB7cGFkZGluZzo4MHB4IWltcG9ydGFudH0KLnA4NXtwYWRkaW5nOjg1cHghaW1wb3J0YW50fQoucDkwe3BhZGRpbmc6OTBweCFpbXBvcnRhbnR9Ci5wOTV7cGFkZGluZzo5NXB4IWltcG9ydGFudH0KLnAxMDB7cGFkZGluZzoxMDBweCFpbXBvcnRhbnR9Ci5wMTEwe3BhZGRpbmc6MTEwcHghaW1wb3J0YW50fQoucDEyMHtwYWRkaW5nOjEyMHB4IWltcG9ydGFudH0KLnAxMzB7cGFkZGluZzoxMzBweCFpbXBvcnRhbnR9Ci5wMTQwe3BhZGRpbmc6MTQwcHghaW1wb3J0YW50fQoucDE1MHtwYWRkaW5nOjE1MHB4IWltcG9ydGFudH0KLnAxNjB7cGFkZGluZzoxNjBweCFpbXBvcnRhbnR9Ci5wMTcwe3BhZGRpbmc6MTcwcHghaW1wb3J0YW50fQoucDE4MHtwYWRkaW5nOjE4MHB4IWltcG9ydGFudH0KLnAxOTB7cGFkZGluZzoxOTBweCFpbXBvcnRhbnR9Ci5wMjAwe3BhZGRpbmc6MjAwcHghaW1wb3J0YW50fQoucDI1MHtwYWRkaW5nOjI1MHB4IWltcG9ydGFudH0KLnAzMDB7cGFkZGluZzozMDBweCFpbXBvcnRhbnR9Ci5wMzUwe3BhZGRpbmc6MzUwcHghaW1wb3J0YW50fQoucDQwMHtwYWRkaW5nOjQwMHB4IWltcG9ydGFudH0KLnA0NTB7cGFkZGluZzo0NTBweCFpbXBvcnRhbnR9Ci5wNTAwe3BhZGRpbmc6NTAwcHghaW1wb3J0YW50fQoucGwwe3BhZGRpbmctbGVmdDowcHghaW1wb3J0YW50fQoucGwxe3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50fQoucGwye3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50fQoucGwze3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50fQoucGw0e3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50fQoucGw1e3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50fQoucGw2e3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50fQoucGw3e3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50fQoucGw4e3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50fQoucGw5e3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50fQoucGwxMHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnR9Ci5wbDExe3BhZGRpbmctbGVmdDoxMXB4IWltcG9ydGFudH0KLnBsMTJ7cGFkZGluZy1sZWZ0OjEycHghaW1wb3J0YW50fQoucGwxM3twYWRkaW5nLWxlZnQ6MTNweCFpbXBvcnRhbnR9Ci5wbDE0e3BhZGRpbmctbGVmdDoxNHB4IWltcG9ydGFudH0KLnBsMTV7cGFkZGluZy1sZWZ0OjE1cHghaW1wb3J0YW50fQoucGwxNntwYWRkaW5nLWxlZnQ6MTZweCFpbXBvcnRhbnR9Ci5wbDE3e3BhZGRpbmctbGVmdDoxN3B4IWltcG9ydGFudH0KLnBsMTh7cGFkZGluZy1sZWZ0OjE4cHghaW1wb3J0YW50fQoucGwxOXtwYWRkaW5nLWxlZnQ6MTlweCFpbXBvcnRhbnR9Ci5wbDIwe3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudH0KLnBsMjF7cGFkZGluZy1sZWZ0OjIxcHghaW1wb3J0YW50fQoucGwyMntwYWRkaW5nLWxlZnQ6MjJweCFpbXBvcnRhbnR9Ci5wbDIze3BhZGRpbmctbGVmdDoyM3B4IWltcG9ydGFudH0KLnBsMjR7cGFkZGluZy1sZWZ0OjI0cHghaW1wb3J0YW50fQoucGwyNXtwYWRkaW5nLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5wbDI2e3BhZGRpbmctbGVmdDoyNnB4IWltcG9ydGFudH0KLnBsMjd7cGFkZGluZy1sZWZ0OjI3cHghaW1wb3J0YW50fQoucGwyOHtwYWRkaW5nLWxlZnQ6MjhweCFpbXBvcnRhbnR9Ci5wbDI5e3BhZGRpbmctbGVmdDoyOXB4IWltcG9ydGFudH0KLnBsMzB7cGFkZGluZy1sZWZ0OjMwcHghaW1wb3J0YW50fQoucGwzNXtwYWRkaW5nLWxlZnQ6MzVweCFpbXBvcnRhbnR9Ci5wbDQwe3BhZGRpbmctbGVmdDo0MHB4IWltcG9ydGFudH0KLnBsNDV7cGFkZGluZy1sZWZ0OjQ1cHghaW1wb3J0YW50fQoucGw1MHtwYWRkaW5nLWxlZnQ6NTBweCFpbXBvcnRhbnR9Ci5wbDU1e3BhZGRpbmctbGVmdDo1NXB4IWltcG9ydGFudH0KLnBsNjB7cGFkZGluZy1sZWZ0OjYwcHghaW1wb3J0YW50fQoucGw2NXtwYWRkaW5nLWxlZnQ6NjVweCFpbXBvcnRhbnR9Ci5wbDcwe3BhZGRpbmctbGVmdDo3MHB4IWltcG9ydGFudH0KLnBsNzV7cGFkZGluZy1sZWZ0Ojc1cHghaW1wb3J0YW50fQoucGw4MHtwYWRkaW5nLWxlZnQ6ODBweCFpbXBvcnRhbnR9Ci5wbDg1e3BhZGRpbmctbGVmdDo4NXB4IWltcG9ydGFudH0KLnBsOTB7cGFkZGluZy1sZWZ0OjkwcHghaW1wb3J0YW50fQoucGw5NXtwYWRkaW5nLWxlZnQ6OTVweCFpbXBvcnRhbnR9Ci5wbDEwMHtwYWRkaW5nLWxlZnQ6MTAwcHghaW1wb3J0YW50fQoucGwxMTB7cGFkZGluZy1sZWZ0OjExMHB4IWltcG9ydGFudH0KLnBsMTIwe3BhZGRpbmctbGVmdDoxMjBweCFpbXBvcnRhbnR9Ci5wbDEzMHtwYWRkaW5nLWxlZnQ6MTMwcHghaW1wb3J0YW50fQoucGwxNDB7cGFkZGluZy1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLnBsMTUwe3BhZGRpbmctbGVmdDoxNTBweCFpbXBvcnRhbnR9Ci5wbDE2MHtwYWRkaW5nLWxlZnQ6MTYwcHghaW1wb3J0YW50fQoucGwxNzB7cGFkZGluZy1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLnBsMTgwe3BhZGRpbmctbGVmdDoxODBweCFpbXBvcnRhbnR9Ci5wbDE5MHtwYWRkaW5nLWxlZnQ6MTkwcHghaW1wb3J0YW50fQoucGwyMDB7cGFkZGluZy1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLnByMHtwYWRkaW5nLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5wcjF7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50fQoucHIye3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudH0KLnByM3twYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5wcjR7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50fQoucHI1e3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudH0KLnByNntwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5wcjd7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50fQoucHI4e3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudH0KLnByOXtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5wcjEwe3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnR9Ci5wcjExe3BhZGRpbmctcmlnaHQ6MTFweCFpbXBvcnRhbnR9Ci5wcjEye3BhZGRpbmctcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5wcjEze3BhZGRpbmctcmlnaHQ6MTNweCFpbXBvcnRhbnR9Ci5wcjE0e3BhZGRpbmctcmlnaHQ6MTRweCFpbXBvcnRhbnR9Ci5wcjE1e3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5wcjE2e3BhZGRpbmctcmlnaHQ6MTZweCFpbXBvcnRhbnR9Ci5wcjE3e3BhZGRpbmctcmlnaHQ6MTdweCFpbXBvcnRhbnR9Ci5wcjE4e3BhZGRpbmctcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5wcjE5e3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnR9Ci5wcjIwe3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnR9Ci5wcjIxe3BhZGRpbmctcmlnaHQ6MjFweCFpbXBvcnRhbnR9Ci5wcjIye3BhZGRpbmctcmlnaHQ6MjJweCFpbXBvcnRhbnR9Ci5wcjIze3BhZGRpbmctcmlnaHQ6MjNweCFpbXBvcnRhbnR9Ci5wcjI0e3BhZGRpbmctcmlnaHQ6MjRweCFpbXBvcnRhbnR9Ci5wcjI1e3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5wcjI2e3BhZGRpbmctcmlnaHQ6MjZweCFpbXBvcnRhbnR9Ci5wcjI3e3BhZGRpbmctcmlnaHQ6MjdweCFpbXBvcnRhbnR9Ci5wcjI4e3BhZGRpbmctcmlnaHQ6MjhweCFpbXBvcnRhbnR9Ci5wcjI5e3BhZGRpbmctcmlnaHQ6MjlweCFpbXBvcnRhbnR9Ci5wcjMwe3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnR9Ci5wcjM1e3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnR9Ci5wcjQwe3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5wcjQ1e3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnR9Ci5wcjUwe3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnR9Ci5wcjU1e3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5wcjYwe3BhZGRpbmctcmlnaHQ6NjBweCFpbXBvcnRhbnR9Ci5wcjY1e3BhZGRpbmctcmlnaHQ6NjVweCFpbXBvcnRhbnR9Ci5wcjcwe3BhZGRpbmctcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5wcjc1e3BhZGRpbmctcmlnaHQ6NzVweCFpbXBvcnRhbnR9Ci5wcjgwe3BhZGRpbmctcmlnaHQ6ODBweCFpbXBvcnRhbnR9Ci5wcjg1e3BhZGRpbmctcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5wcjkwe3BhZGRpbmctcmlnaHQ6OTBweCFpbXBvcnRhbnR9Ci5wcjk1e3BhZGRpbmctcmlnaHQ6OTVweCFpbXBvcnRhbnR9Ci5wcjEwMHtwYWRkaW5nLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLnByMTEwe3BhZGRpbmctcmlnaHQ6MTEwcHghaW1wb3J0YW50fQoucHIxMjB7cGFkZGluZy1yaWdodDoxMjBweCFpbXBvcnRhbnR9Ci5wcjEzMHtwYWRkaW5nLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLnByMTQwe3BhZGRpbmctcmlnaHQ6MTQwcHghaW1wb3J0YW50fQoucHIxNTB7cGFkZGluZy1yaWdodDoxNTBweCFpbXBvcnRhbnR9Ci5wcjE2MHtwYWRkaW5nLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLnByMTcwe3BhZGRpbmctcmlnaHQ6MTcwcHghaW1wb3J0YW50fQoucHIxODB7cGFkZGluZy1yaWdodDoxODBweCFpbXBvcnRhbnR9Ci5wcjE5MHtwYWRkaW5nLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLnByMjAwe3BhZGRpbmctcmlnaHQ6MjAwcHghaW1wb3J0YW50fQoucHQwe3BhZGRpbmctdG9wOjBweCFpbXBvcnRhbnR9Ci5wdDF7cGFkZGluZy10b3A6MXB4IWltcG9ydGFudH0KLnB0MntwYWRkaW5nLXRvcDoycHghaW1wb3J0YW50fQoucHQze3BhZGRpbmctdG9wOjNweCFpbXBvcnRhbnR9Ci5wdDR7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudH0KLnB0NXtwYWRkaW5nLXRvcDo1cHghaW1wb3J0YW50fQoucHQ2e3BhZGRpbmctdG9wOjZweCFpbXBvcnRhbnR9Ci5wdDd7cGFkZGluZy10b3A6N3B4IWltcG9ydGFudH0KLnB0OHtwYWRkaW5nLXRvcDo4cHghaW1wb3J0YW50fQoucHQ5e3BhZGRpbmctdG9wOjlweCFpbXBvcnRhbnR9Ci5wdDEwe3BhZGRpbmctdG9wOjEwcHghaW1wb3J0YW50fQoucHQxMXtwYWRkaW5nLXRvcDoxMXB4IWltcG9ydGFudH0KLnB0MTJ7cGFkZGluZy10b3A6MTJweCFpbXBvcnRhbnR9Ci5wdDEze3BhZGRpbmctdG9wOjEzcHghaW1wb3J0YW50fQoucHQxNHtwYWRkaW5nLXRvcDoxNHB4IWltcG9ydGFudH0KLnB0MTV7cGFkZGluZy10b3A6MTVweCFpbXBvcnRhbnR9Ci5wdDE2e3BhZGRpbmctdG9wOjE2cHghaW1wb3J0YW50fQoucHQxN3twYWRkaW5nLXRvcDoxN3B4IWltcG9ydGFudH0KLnB0MTh7cGFkZGluZy10b3A6MThweCFpbXBvcnRhbnR9Ci5wdDE5e3BhZGRpbmctdG9wOjE5cHghaW1wb3J0YW50fQoucHQyMHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudH0KLnB0MjF7cGFkZGluZy10b3A6MjFweCFpbXBvcnRhbnR9Ci5wdDIye3BhZGRpbmctdG9wOjIycHghaW1wb3J0YW50fQoucHQyM3twYWRkaW5nLXRvcDoyM3B4IWltcG9ydGFudH0KLnB0MjR7cGFkZGluZy10b3A6MjRweCFpbXBvcnRhbnR9Ci5wdDI1e3BhZGRpbmctdG9wOjI1cHghaW1wb3J0YW50fQoucHQyNntwYWRkaW5nLXRvcDoyNnB4IWltcG9ydGFudH0KLnB0Mjd7cGFkZGluZy10b3A6MjdweCFpbXBvcnRhbnR9Ci5wdDI4e3BhZGRpbmctdG9wOjI4cHghaW1wb3J0YW50fQoucHQyOXtwYWRkaW5nLXRvcDoyOXB4IWltcG9ydGFudH0KLnB0MzB7cGFkZGluZy10b3A6MzBweCFpbXBvcnRhbnR9Ci5wdDM1e3BhZGRpbmctdG9wOjM1cHghaW1wb3J0YW50fQoucHQ0MHtwYWRkaW5nLXRvcDo0MHB4IWltcG9ydGFudH0KLnB0NDV7cGFkZGluZy10b3A6NDVweCFpbXBvcnRhbnR9Ci5wdDUwe3BhZGRpbmctdG9wOjUwcHghaW1wb3J0YW50fQoucHQ1NXtwYWRkaW5nLXRvcDo1NXB4IWltcG9ydGFudH0KLnB0NjB7cGFkZGluZy10b3A6NjBweCFpbXBvcnRhbnR9Ci5wdDY1e3BhZGRpbmctdG9wOjY1cHghaW1wb3J0YW50fQoucHQ3MHtwYWRkaW5nLXRvcDo3MHB4IWltcG9ydGFudH0KLnB0NzV7cGFkZGluZy10b3A6NzVweCFpbXBvcnRhbnR9Ci5wdDgwe3BhZGRpbmctdG9wOjgwcHghaW1wb3J0YW50fQoucHQ4NXtwYWRkaW5nLXRvcDo4NXB4IWltcG9ydGFudH0KLnB0OTB7cGFkZGluZy10b3A6OTBweCFpbXBvcnRhbnR9Ci5wdDk1e3BhZGRpbmctdG9wOjk1cHghaW1wb3J0YW50fQoucHQxMDB7cGFkZGluZy10b3A6MTAwcHghaW1wb3J0YW50fQoucHQxMTB7cGFkZGluZy10b3A6MTEwcHghaW1wb3J0YW50fQoucHQxMjB7cGFkZGluZy10b3A6MTIwcHghaW1wb3J0YW50fQoucHQxMzB7cGFkZGluZy10b3A6MTMwcHghaW1wb3J0YW50fQoucHQxNDB7cGFkZGluZy10b3A6MTQwcHghaW1wb3J0YW50fQoucHQxNTB7cGFkZGluZy10b3A6MTUwcHghaW1wb3J0YW50fQoucHQxNjB7cGFkZGluZy10b3A6MTYwcHghaW1wb3J0YW50fQoucHQxNzB7cGFkZGluZy10b3A6MTcwcHghaW1wb3J0YW50fQoucHQxODB7cGFkZGluZy10b3A6MTgwcHghaW1wb3J0YW50fQoucHQxOTB7cGFkZGluZy10b3A6MTkwcHghaW1wb3J0YW50fQoucHQyMDB7cGFkZGluZy10b3A6MjAwcHghaW1wb3J0YW50fQoucGIwe3BhZGRpbmctYm90dG9tOjBweCFpbXBvcnRhbnR9Ci5wYjF7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudH0KLnBiMntwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50fQoucGIze3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnR9Ci5wYjR7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudH0KLnBiNXtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50fQoucGI2e3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnR9Ci5wYjd7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudH0KLnBiOHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50fQoucGI5e3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnR9Ci5wYjEwe3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50fQoucGIxMXtwYWRkaW5nLWJvdHRvbToxMXB4IWltcG9ydGFudH0KLnBiMTJ7cGFkZGluZy1ib3R0b206MTJweCFpbXBvcnRhbnR9Ci5wYjEze3BhZGRpbmctYm90dG9tOjEzcHghaW1wb3J0YW50fQoucGIxNHtwYWRkaW5nLWJvdHRvbToxNHB4IWltcG9ydGFudH0KLnBiMTV7cGFkZGluZy1ib3R0b206MTVweCFpbXBvcnRhbnR9Ci5wYjE2e3BhZGRpbmctYm90dG9tOjE2cHghaW1wb3J0YW50fQoucGIxN3twYWRkaW5nLWJvdHRvbToxN3B4IWltcG9ydGFudH0KLnBiMTh7cGFkZGluZy1ib3R0b206MThweCFpbXBvcnRhbnR9Ci5wYjE5e3BhZGRpbmctYm90dG9tOjE5cHghaW1wb3J0YW50fQoucGIyMHtwYWRkaW5nLWJvdHRvbToyMHB4IWltcG9ydGFudH0KLnBiMjF7cGFkZGluZy1ib3R0b206MjFweCFpbXBvcnRhbnR9Ci5wYjIye3BhZGRpbmctYm90dG9tOjIycHghaW1wb3J0YW50fQoucGIyM3twYWRkaW5nLWJvdHRvbToyM3B4IWltcG9ydGFudH0KLnBiMjR7cGFkZGluZy1ib3R0b206MjRweCFpbXBvcnRhbnR9Ci5wYjI1e3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50fQoucGIyNntwYWRkaW5nLWJvdHRvbToyNnB4IWltcG9ydGFudH0KLnBiMjd7cGFkZGluZy1ib3R0b206MjdweCFpbXBvcnRhbnR9Ci5wYjI4e3BhZGRpbmctYm90dG9tOjI4cHghaW1wb3J0YW50fQoucGIyOXtwYWRkaW5nLWJvdHRvbToyOXB4IWltcG9ydGFudH0KLnBiMzB7cGFkZGluZy1ib3R0b206MzBweCFpbXBvcnRhbnR9Ci5wYjM1e3BhZGRpbmctYm90dG9tOjM1cHghaW1wb3J0YW50fQoucGI0MHtwYWRkaW5nLWJvdHRvbTo0MHB4IWltcG9ydGFudH0KLnBiNDV7cGFkZGluZy1ib3R0b206NDVweCFpbXBvcnRhbnR9Ci5wYjUwe3BhZGRpbmctYm90dG9tOjUwcHghaW1wb3J0YW50fQoucGI1NXtwYWRkaW5nLWJvdHRvbTo1NXB4IWltcG9ydGFudH0KLnBiNjB7cGFkZGluZy1ib3R0b206NjBweCFpbXBvcnRhbnR9Ci5wYjY1e3BhZGRpbmctYm90dG9tOjY1cHghaW1wb3J0YW50fQoucGI3MHtwYWRkaW5nLWJvdHRvbTo3MHB4IWltcG9ydGFudH0KLnBiNzV7cGFkZGluZy1ib3R0b206NzVweCFpbXBvcnRhbnR9Ci5wYjgwe3BhZGRpbmctYm90dG9tOjgwcHghaW1wb3J0YW50fQoucGI4NXtwYWRkaW5nLWJvdHRvbTo4NXB4IWltcG9ydGFudH0KLnBiOTB7cGFkZGluZy1ib3R0b206OTBweCFpbXBvcnRhbnR9Ci5wYjk1e3BhZGRpbmctYm90dG9tOjk1cHghaW1wb3J0YW50fQoucGIxMDB7cGFkZGluZy1ib3R0b206MTAwcHghaW1wb3J0YW50fQoucGIxMTB7cGFkZGluZy1ib3R0b206MTEwcHghaW1wb3J0YW50fQoucGIxMjB7cGFkZGluZy1ib3R0b206MTIwcHghaW1wb3J0YW50fQoucGIxMzB7cGFkZGluZy1ib3R0b206MTMwcHghaW1wb3J0YW50fQoucGIxNDB7cGFkZGluZy1ib3R0b206MTQwcHghaW1wb3J0YW50fQoucGIxNTB7cGFkZGluZy1ib3R0b206MTUwcHghaW1wb3J0YW50fQoucGIxNjB7cGFkZGluZy1ib3R0b206MTYwcHghaW1wb3J0YW50fQoucGIxNzB7cGFkZGluZy1ib3R0b206MTcwcHghaW1wb3J0YW50fQoucGIxODB7cGFkZGluZy1ib3R0b206MTgwcHghaW1wb3J0YW50fQoucGIxOTB7cGFkZGluZy1ib3R0b206MTkwcHghaW1wb3J0YW50fQoucGIyMDB7cGFkZGluZy1ib3R0b206MjAwcHghaW1wb3J0YW50fQoubWwtNTB7bWFyZ2luLWxlZnQ6LTUwcHghaW1wb3J0YW50fQoubWwtNDB7bWFyZ2luLWxlZnQ6LTQwcHghaW1wb3J0YW50fQoubWwtMzB7bWFyZ2luLWxlZnQ6LTMwcHghaW1wb3J0YW50fQoubWwtMjV7bWFyZ2luLWxlZnQ6LTI1cHghaW1wb3J0YW50fQoubWwtMjB7bWFyZ2luLWxlZnQ6LTIwcHghaW1wb3J0YW50fQoubWwtMTV7bWFyZ2luLWxlZnQ6LTE1cHghaW1wb3J0YW50fQoubWwtMTB7bWFyZ2luLWxlZnQ6LTEwcHghaW1wb3J0YW50fQoubWwtOXttYXJnaW4tbGVmdDotOXB4IWltcG9ydGFudH0KLm1sLTh7bWFyZ2luLWxlZnQ6LThweCFpbXBvcnRhbnR9Ci5tbC03e21hcmdpbi1sZWZ0Oi03cHghaW1wb3J0YW50fQoubWwtNnttYXJnaW4tbGVmdDotNnB4IWltcG9ydGFudH0KLm1sLTV7bWFyZ2luLWxlZnQ6LTVweCFpbXBvcnRhbnR9Ci5tbC00e21hcmdpbi1sZWZ0Oi00cHghaW1wb3J0YW50fQoubWwtM3ttYXJnaW4tbGVmdDotM3B4IWltcG9ydGFudH0KLm1sLTJ7bWFyZ2luLWxlZnQ6LTJweCFpbXBvcnRhbnR9Ci5tbC0xe21hcmdpbi1sZWZ0Oi0xcHghaW1wb3J0YW50fQoubWwwe21hcmdpbi1sZWZ0OjBweCFpbXBvcnRhbnR9Ci5tbDF7bWFyZ2luLWxlZnQ6MXB4IWltcG9ydGFudH0KLm1sMnttYXJnaW4tbGVmdDoycHghaW1wb3J0YW50fQoubWwze21hcmdpbi1sZWZ0OjNweCFpbXBvcnRhbnR9Ci5tbDR7bWFyZ2luLWxlZnQ6NHB4IWltcG9ydGFudH0KLm1sNXttYXJnaW4tbGVmdDo1cHghaW1wb3J0YW50fQoubWw2e21hcmdpbi1sZWZ0OjZweCFpbXBvcnRhbnR9Ci5tbDd7bWFyZ2luLWxlZnQ6N3B4IWltcG9ydGFudH0KLm1sOHttYXJnaW4tbGVmdDo4cHghaW1wb3J0YW50fQoubWw5e21hcmdpbi1sZWZ0OjlweCFpbXBvcnRhbnR9Ci5tbDEwe21hcmdpbi1sZWZ0OjEwcHghaW1wb3J0YW50fQoubWwxMXttYXJnaW4tbGVmdDoxMXB4IWltcG9ydGFudH0KLm1sMTJ7bWFyZ2luLWxlZnQ6MTJweCFpbXBvcnRhbnR9Ci5tbDEze21hcmdpbi1sZWZ0OjEzcHghaW1wb3J0YW50fQoubWwxNHttYXJnaW4tbGVmdDoxNHB4IWltcG9ydGFudH0KLm1sMTV7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnR9Ci5tbDE2e21hcmdpbi1sZWZ0OjE2cHghaW1wb3J0YW50fQoubWwxN3ttYXJnaW4tbGVmdDoxN3B4IWltcG9ydGFudH0KLm1sMTh7bWFyZ2luLWxlZnQ6MThweCFpbXBvcnRhbnR9Ci5tbDE5e21hcmdpbi1sZWZ0OjE5cHghaW1wb3J0YW50fQoubWwyMHttYXJnaW4tbGVmdDoyMHB4IWltcG9ydGFudH0KLm1sMjV7bWFyZ2luLWxlZnQ6MjVweCFpbXBvcnRhbnR9Ci5tbDMwe21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50fQoubWwzNXttYXJnaW4tbGVmdDozNXB4IWltcG9ydGFudH0KLm1sNDB7bWFyZ2luLWxlZnQ6NDBweCFpbXBvcnRhbnR9Ci5tbDQ1e21hcmdpbi1sZWZ0OjQ1cHghaW1wb3J0YW50fQoubWw1MHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudH0KLm1sNTV7bWFyZ2luLWxlZnQ6NTVweCFpbXBvcnRhbnR9Ci5tbDYwe21hcmdpbi1sZWZ0OjYwcHghaW1wb3J0YW50fQoubWw2NXttYXJnaW4tbGVmdDo2NXB4IWltcG9ydGFudH0KLm1sNzB7bWFyZ2luLWxlZnQ6NzBweCFpbXBvcnRhbnR9Ci5tbDc1e21hcmdpbi1sZWZ0Ojc1cHghaW1wb3J0YW50fQoubWw4MHttYXJnaW4tbGVmdDo4MHB4IWltcG9ydGFudH0KLm1sODV7bWFyZ2luLWxlZnQ6ODVweCFpbXBvcnRhbnR9Ci5tbDkwe21hcmdpbi1sZWZ0OjkwcHghaW1wb3J0YW50fQoubWw5NXttYXJnaW4tbGVmdDo5NXB4IWltcG9ydGFudH0KLm1sMTAwe21hcmdpbi1sZWZ0OjEwMHB4IWltcG9ydGFudH0KLm1sMTEwe21hcmdpbi1sZWZ0OjExMHB4IWltcG9ydGFudH0KLm1sMTIwe21hcmdpbi1sZWZ0OjEyMHB4IWltcG9ydGFudH0KLm1sMTMwe21hcmdpbi1sZWZ0OjEzMHB4IWltcG9ydGFudH0KLm1sMTQwe21hcmdpbi1sZWZ0OjE0MHB4IWltcG9ydGFudH0KLm1sMTUwe21hcmdpbi1sZWZ0OjE1MHB4IWltcG9ydGFudH0KLm1sMTYwe21hcmdpbi1sZWZ0OjE2MHB4IWltcG9ydGFudH0KLm1sMTcwe21hcmdpbi1sZWZ0OjE3MHB4IWltcG9ydGFudH0KLm1sMTgwe21hcmdpbi1sZWZ0OjE4MHB4IWltcG9ydGFudH0KLm1sMTkwe21hcmdpbi1sZWZ0OjE5MHB4IWltcG9ydGFudH0KLm1sMjAwe21hcmdpbi1sZWZ0OjIwMHB4IWltcG9ydGFudH0KLm1yLTUwe21hcmdpbi1yaWdodDotNTBweCFpbXBvcnRhbnR9Ci5tci00MHttYXJnaW4tcmlnaHQ6LTQwcHghaW1wb3J0YW50fQoubXItMzB7bWFyZ2luLXJpZ2h0Oi0zMHB4IWltcG9ydGFudH0KLm1yLTI1e21hcmdpbi1yaWdodDotMjVweCFpbXBvcnRhbnR9Ci5tci0yMHttYXJnaW4tcmlnaHQ6LTIwcHghaW1wb3J0YW50fQoubXItMTV7bWFyZ2luLXJpZ2h0Oi0xNXB4IWltcG9ydGFudH0KLm1yLTEwe21hcmdpbi1yaWdodDotMTBweCFpbXBvcnRhbnR9Ci5tci05e21hcmdpbi1yaWdodDotOXB4IWltcG9ydGFudH0KLm1yLTh7bWFyZ2luLXJpZ2h0Oi04cHghaW1wb3J0YW50fQoubXItN3ttYXJnaW4tcmlnaHQ6LTdweCFpbXBvcnRhbnR9Ci5tci02e21hcmdpbi1yaWdodDotNnB4IWltcG9ydGFudH0KLm1yLTV7bWFyZ2luLXJpZ2h0Oi01cHghaW1wb3J0YW50fQoubXItNHttYXJnaW4tcmlnaHQ6LTRweCFpbXBvcnRhbnR9Ci5tci0ze21hcmdpbi1yaWdodDotM3B4IWltcG9ydGFudH0KLm1yLTJ7bWFyZ2luLXJpZ2h0Oi0ycHghaW1wb3J0YW50fQoubXItMXttYXJnaW4tcmlnaHQ6LTFweCFpbXBvcnRhbnR9Ci5tcjB7bWFyZ2luLXJpZ2h0OjBweCFpbXBvcnRhbnR9Ci5tcjF7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnR9Ci5tcjJ7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnR9Ci5tcjN7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnR9Ci5tcjR7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnR9Ci5tcjV7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnR9Ci5tcjZ7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnR9Ci5tcjd7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnR9Ci5tcjh7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnR9Ci5tcjl7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnR9Ci5tcjEwe21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudH0KLm1yMTF7bWFyZ2luLXJpZ2h0OjExcHghaW1wb3J0YW50fQoubXIxMnttYXJnaW4tcmlnaHQ6MTJweCFpbXBvcnRhbnR9Ci5tcjEze21hcmdpbi1yaWdodDoxM3B4IWltcG9ydGFudH0KLm1yMTR7bWFyZ2luLXJpZ2h0OjE0cHghaW1wb3J0YW50fQoubXIxNXttYXJnaW4tcmlnaHQ6MTVweCFpbXBvcnRhbnR9Ci5tcjE2e21hcmdpbi1yaWdodDoxNnB4IWltcG9ydGFudH0KLm1yMTd7bWFyZ2luLXJpZ2h0OjE3cHghaW1wb3J0YW50fQoubXIxOHttYXJnaW4tcmlnaHQ6MThweCFpbXBvcnRhbnR9Ci5tcjE5e21hcmdpbi1yaWdodDoxOXB4IWltcG9ydGFudH0KLm1yMjB7bWFyZ2luLXJpZ2h0OjIwcHghaW1wb3J0YW50fQoubXIyNXttYXJnaW4tcmlnaHQ6MjVweCFpbXBvcnRhbnR9Ci5tcjMwe21hcmdpbi1yaWdodDozMHB4IWltcG9ydGFudH0KLm1yMzV7bWFyZ2luLXJpZ2h0OjM1cHghaW1wb3J0YW50fQoubXI0MHttYXJnaW4tcmlnaHQ6NDBweCFpbXBvcnRhbnR9Ci5tcjQ1e21hcmdpbi1yaWdodDo0NXB4IWltcG9ydGFudH0KLm1yNTB7bWFyZ2luLXJpZ2h0OjUwcHghaW1wb3J0YW50fQoubXI1NXttYXJnaW4tcmlnaHQ6NTVweCFpbXBvcnRhbnR9Ci5tcjYwe21hcmdpbi1yaWdodDo2MHB4IWltcG9ydGFudH0KLm1yNjV7bWFyZ2luLXJpZ2h0OjY1cHghaW1wb3J0YW50fQoubXI3MHttYXJnaW4tcmlnaHQ6NzBweCFpbXBvcnRhbnR9Ci5tcjc1e21hcmdpbi1yaWdodDo3NXB4IWltcG9ydGFudH0KLm1yODB7bWFyZ2luLXJpZ2h0OjgwcHghaW1wb3J0YW50fQoubXI4NXttYXJnaW4tcmlnaHQ6ODVweCFpbXBvcnRhbnR9Ci5tcjkwe21hcmdpbi1yaWdodDo5MHB4IWltcG9ydGFudH0KLm1yOTV7bWFyZ2luLXJpZ2h0Ojk1cHghaW1wb3J0YW50fQoubXIxMDB7bWFyZ2luLXJpZ2h0OjEwMHB4IWltcG9ydGFudH0KLm1yMTEwe21hcmdpbi1yaWdodDoxMTBweCFpbXBvcnRhbnR9Ci5tcjEyMHttYXJnaW4tcmlnaHQ6MTIwcHghaW1wb3J0YW50fQoubXIxMzB7bWFyZ2luLXJpZ2h0OjEzMHB4IWltcG9ydGFudH0KLm1yMTQwe21hcmdpbi1yaWdodDoxNDBweCFpbXBvcnRhbnR9Ci5tcjE1MHttYXJnaW4tcmlnaHQ6MTUwcHghaW1wb3J0YW50fQoubXIxNjB7bWFyZ2luLXJpZ2h0OjE2MHB4IWltcG9ydGFudH0KLm1yMTcwe21hcmdpbi1yaWdodDoxNzBweCFpbXBvcnRhbnR9Ci5tcjE4MHttYXJnaW4tcmlnaHQ6MTgwcHghaW1wb3J0YW50fQoubXIxOTB7bWFyZ2luLXJpZ2h0OjE5MHB4IWltcG9ydGFudH0KLm1yMjAwe21hcmdpbi1yaWdodDoyMDBweCFpbXBvcnRhbnR9Ci5tdC01MHttYXJnaW4tdG9wOi01MHB4IWltcG9ydGFudH0KLm10LTQwe21hcmdpbi10b3A6LTQwcHghaW1wb3J0YW50fQoubXQtMzB7bWFyZ2luLXRvcDotMzBweCFpbXBvcnRhbnR9Ci5tdC0yNXttYXJnaW4tdG9wOi0yNXB4IWltcG9ydGFudH0KLm10LTIwe21hcmdpbi10b3A6LTIwcHghaW1wb3J0YW50fQoubXQtMTV7bWFyZ2luLXRvcDotMTVweCFpbXBvcnRhbnR9Ci5tdC0xMHttYXJnaW4tdG9wOi0xMHB4IWltcG9ydGFudH0KLm10LTl7bWFyZ2luLXRvcDotOXB4IWltcG9ydGFudH0KLm10LTh7bWFyZ2luLXRvcDotOHB4IWltcG9ydGFudH0KLm10LTd7bWFyZ2luLXRvcDotN3B4IWltcG9ydGFudH0KLm10LTZ7bWFyZ2luLXRvcDotNnB4IWltcG9ydGFudH0KLm10LTV7bWFyZ2luLXRvcDotNXB4IWltcG9ydGFudH0KLm10LTR7bWFyZ2luLXRvcDotNHB4IWltcG9ydGFudH0KLm10LTN7bWFyZ2luLXRvcDotM3B4IWltcG9ydGFudH0KLm10LTJ7bWFyZ2luLXRvcDotMnB4IWltcG9ydGFudH0KLm10LTF7bWFyZ2luLXRvcDotMXB4IWltcG9ydGFudH0KLm10MHttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnR9Ci5tdDF7bWFyZ2luLXRvcDoxcHghaW1wb3J0YW50fQoubXQye21hcmdpbi10b3A6MnB4IWltcG9ydGFudH0KLm10M3ttYXJnaW4tdG9wOjNweCFpbXBvcnRhbnR9Ci5tdDR7bWFyZ2luLXRvcDo0cHghaW1wb3J0YW50fQoubXQ1e21hcmdpbi10b3A6NXB4IWltcG9ydGFudH0KLm10NnttYXJnaW4tdG9wOjZweCFpbXBvcnRhbnR9Ci5tdDd7bWFyZ2luLXRvcDo3cHghaW1wb3J0YW50fQoubXQ4e21hcmdpbi10b3A6OHB4IWltcG9ydGFudH0KLm10OXttYXJnaW4tdG9wOjlweCFpbXBvcnRhbnR9Ci5tdDEwe21hcmdpbi10b3A6MTBweCFpbXBvcnRhbnR9Ci5tdDExe21hcmdpbi10b3A6MTFweCFpbXBvcnRhbnR9Ci5tdDEye21hcmdpbi10b3A6MTJweCFpbXBvcnRhbnR9Ci5tdDEze21hcmdpbi10b3A6MTNweCFpbXBvcnRhbnR9Ci5tdDE0e21hcmdpbi10b3A6MTRweCFpbXBvcnRhbnR9Ci5tdDE1e21hcmdpbi10b3A6MTVweCFpbXBvcnRhbnR9Ci5tdDE2e21hcmdpbi10b3A6MTZweCFpbXBvcnRhbnR9Ci5tdDE3e21hcmdpbi10b3A6MTdweCFpbXBvcnRhbnR9Ci5tdDE4e21hcmdpbi10b3A6MThweCFpbXBvcnRhbnR9Ci5tdDE5e21hcmdpbi10b3A6MTlweCFpbXBvcnRhbnR9Ci5tdDIwe21hcmdpbi10b3A6MjBweCFpbXBvcnRhbnR9Ci5tdDI1e21hcmdpbi10b3A6MjVweCFpbXBvcnRhbnR9Ci5tdDMwe21hcmdpbi10b3A6MzBweCFpbXBvcnRhbnR9Ci5tdDM1e21hcmdpbi10b3A6MzVweCFpbXBvcnRhbnR9Ci5tdDQwe21hcmdpbi10b3A6NDBweCFpbXBvcnRhbnR9Ci5tdDQ1e21hcmdpbi10b3A6NDVweCFpbXBvcnRhbnR9Ci5tdDUwe21hcmdpbi10b3A6NTBweCFpbXBvcnRhbnR9Ci5tdDU1e21hcmdpbi10b3A6NTVweCFpbXBvcnRhbnR9Ci5tdDYwe21hcmdpbi10b3A6NjBweCFpbXBvcnRhbnR9Ci5tdDY1e21hcmdpbi10b3A6NjVweCFpbXBvcnRhbnR9Ci5tdDcwe21hcmdpbi10b3A6NzBweCFpbXBvcnRhbnR9Ci5tdDc1e21hcmdpbi10b3A6NzVweCFpbXBvcnRhbnR9Ci5tdDgwe21hcmdpbi10b3A6ODBweCFpbXBvcnRhbnR9Ci5tdDg1e21hcmdpbi10b3A6ODVweCFpbXBvcnRhbnR9Ci5tdDkwe21hcmdpbi10b3A6OTBweCFpbXBvcnRhbnR9Ci5tdDk1e21hcmdpbi10b3A6OTVweCFpbXBvcnRhbnR9Ci5tdDEwMHttYXJnaW4tdG9wOjEwMHB4IWltcG9ydGFudH0KLm10MTEwe21hcmdpbi10b3A6MTEwcHghaW1wb3J0YW50fQoubXQxMjB7bWFyZ2luLXRvcDoxMjBweCFpbXBvcnRhbnR9Ci5tdDEzMHttYXJnaW4tdG9wOjEzMHB4IWltcG9ydGFudH0KLm10MTQwe21hcmdpbi10b3A6MTQwcHghaW1wb3J0YW50fQoubXQxNTB7bWFyZ2luLXRvcDoxNTBweCFpbXBvcnRhbnR9Ci5tdDE2MHttYXJnaW4tdG9wOjE2MHB4IWltcG9ydGFudH0KLm10MTcwe21hcmdpbi10b3A6MTcwcHghaW1wb3J0YW50fQoubXQxODB7bWFyZ2luLXRvcDoxODBweCFpbXBvcnRhbnR9Ci5tdDE5MHttYXJnaW4tdG9wOjE5MHB4IWltcG9ydGFudH0KLm10MjAwe21hcmdpbi10b3A6MjAwcHghaW1wb3J0YW50fQoubWItNTB7bWFyZ2luLWJvdHRvbTotNTBweCFpbXBvcnRhbnR9Ci5tYi00MHttYXJnaW4tYm90dG9tOi00MHB4IWltcG9ydGFudH0KLm1iLTMwe21hcmdpbi1ib3R0b206LTMwcHghaW1wb3J0YW50fQoubWItMjV7bWFyZ2luLWJvdHRvbTotMjVweCFpbXBvcnRhbnR9Ci5tYi0yMHttYXJnaW4tYm90dG9tOi0yMHB4IWltcG9ydGFudH0KLm1iLTE1e21hcmdpbi1ib3R0b206LTE1cHghaW1wb3J0YW50fQoubWItMTB7bWFyZ2luLWJvdHRvbTotMTBweCFpbXBvcnRhbnR9Ci5tYi05e21hcmdpbi1ib3R0b206LTlweCFpbXBvcnRhbnR9Ci5tYi04e21hcmdpbi1ib3R0b206LThweCFpbXBvcnRhbnR9Ci5tYi03e21hcmdpbi1ib3R0b206LTdweCFpbXBvcnRhbnR9Ci5tYi02e21hcmdpbi1ib3R0b206LTZweCFpbXBvcnRhbnR9Ci5tYi01e21hcmdpbi1ib3R0b206LTVweCFpbXBvcnRhbnR9Ci5tYi00e21hcmdpbi1ib3R0b206LTRweCFpbXBvcnRhbnR9Ci5tYi0ze21hcmdpbi1ib3R0b206LTNweCFpbXBvcnRhbnR9Ci5tYi0ye21hcmdpbi1ib3R0b206LTJweCFpbXBvcnRhbnR9Ci5tYi0xe21hcmdpbi1ib3R0b206LTFweCFpbXBvcnRhbnR9Ci5tYjB7bWFyZ2luLWJvdHRvbTowcHghaW1wb3J0YW50fQoubWIxe21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudH0KLm1iMnttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnR9Ci5tYjN7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50fQoubWI0e21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudH0KLm1iNXttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnR9Ci5tYjZ7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50fQoubWI3e21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudH0KLm1iOHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnR9Ci5tYjl7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50fQoubWIxMHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50fQoubWIxMXttYXJnaW4tYm90dG9tOjExcHghaW1wb3J0YW50fQoubWIxMnttYXJnaW4tYm90dG9tOjEycHghaW1wb3J0YW50fQoubWIxM3ttYXJnaW4tYm90dG9tOjEzcHghaW1wb3J0YW50fQoubWIxNHttYXJnaW4tYm90dG9tOjE0cHghaW1wb3J0YW50fQoubWIxNXttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50fQoubWIxNnttYXJnaW4tYm90dG9tOjE2cHghaW1wb3J0YW50fQoubWIxN3ttYXJnaW4tYm90dG9tOjE3cHghaW1wb3J0YW50fQoubWIxOHttYXJnaW4tYm90dG9tOjE4cHghaW1wb3J0YW50fQoubWIxOXttYXJnaW4tYm90dG9tOjE5cHghaW1wb3J0YW50fQoubWIyMHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50fQoubWIyNXttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50fQoubWIzMHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50fQoubWIzNXttYXJnaW4tYm90dG9tOjM1cHghaW1wb3J0YW50fQoubWI0MHttYXJnaW4tYm90dG9tOjQwcHghaW1wb3J0YW50fQoubWI0NXttYXJnaW4tYm90dG9tOjQ1cHghaW1wb3J0YW50fQoubWI1MHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50fQoubWI1NXttYXJnaW4tYm90dG9tOjU1cHghaW1wb3J0YW50fQoubWI2MHttYXJnaW4tYm90dG9tOjYwcHghaW1wb3J0YW50fQoubWI2NXttYXJnaW4tYm90dG9tOjY1cHghaW1wb3J0YW50fQoubWI3MHttYXJnaW4tYm90dG9tOjcwcHghaW1wb3J0YW50fQoubWI3NXttYXJnaW4tYm90dG9tOjc1cHghaW1wb3J0YW50fQoubWI4MHttYXJnaW4tYm90dG9tOjgwcHghaW1wb3J0YW50fQoubWI4NXttYXJnaW4tYm90dG9tOjg1cHghaW1wb3J0YW50fQoubWI5MHttYXJnaW4tYm90dG9tOjkwcHghaW1wb3J0YW50fQoubWI5NXttYXJnaW4tYm90dG9tOjk1cHghaW1wb3J0YW50fQoubWIxMDB7bWFyZ2luLWJvdHRvbToxMDBweCFpbXBvcnRhbnR9Ci5tYjExMHttYXJnaW4tYm90dG9tOjExMHB4IWltcG9ydGFudH0KLm1iMTIwe21hcmdpbi1ib3R0b206MTIwcHghaW1wb3J0YW50fQoubWIxMzB7bWFyZ2luLWJvdHRvbToxMzBweCFpbXBvcnRhbnR9Ci5tYjE0MHttYXJnaW4tYm90dG9tOjE0MHB4IWltcG9ydGFudH0KLm1iMTUwe21hcmdpbi1ib3R0b206MTUwcHghaW1wb3J0YW50fQoubWIxNjB7bWFyZ2luLWJvdHRvbToxNjBweCFpbXBvcnRhbnR9Ci5tYjE3MHttYXJnaW4tYm90dG9tOjE3MHB4IWltcG9ydGFudH0KLm1iMTgwe21hcmdpbi1ib3R0b206MTgwcHghaW1wb3J0YW50fQoubWIxOTB7bWFyZ2luLWJvdHRvbToxOTBweCFpbXBvcnRhbnR9Ci5tYjIwMHttYXJnaW4tYm90dG9tOjIwMHB4IWltcG9ydGFudH0KLnppMXt6LWluZGV4OjF9Ci56aTJ7ei1pbmRleDoyfQouemkze3otaW5kZXg6M30KLnppNHt6LWluZGV4OjR9Ci56aTV7ei1pbmRleDo1fQouemk2e3otaW5kZXg6Nn0KLnppN3t6LWluZGV4Ojd9Ci56aTh7ei1pbmRleDo4fQouemk5e3otaW5kZXg6OX0KLnppMTB7ei1pbmRleDoxMH0KLnppMTF7ei1pbmRleDoxMX0KLnppMTJ7ei1pbmRleDoxMn0KLnppMTN7ei1pbmRleDoxM30KLnppMTR7ei1pbmRleDoxNH0KLnppMTV7ei1pbmRleDoxNX0KLnppMTZ7ei1pbmRleDoxNn0KLnppMTd7ei1pbmRleDoxN30KLnppMTh7ei1pbmRleDoxOH0KLnppMTl7ei1pbmRleDoxOX0KLnppMjB7ei1pbmRleDoyMH0KLmZzNDB7Zm9udC1zaXplOjQwJSFpbXBvcnRhbnR9Ci5mczQ1e2ZvbnQtc2l6ZTo0NSUhaW1wb3J0YW50fQouZnM1MHtmb250LXNpemU6NTAlIWltcG9ydGFudH0KLmZzNTV7Zm9udC1zaXplOjU1JSFpbXBvcnRhbnR9Ci5mczYwe2ZvbnQtc2l6ZTo2MCUhaW1wb3J0YW50fQouZnM2NXtmb250LXNpemU6NjUlIWltcG9ydGFudH0KLmZzNzB7Zm9udC1zaXplOjcwJSFpbXBvcnRhbnR9Ci5mczc1e2ZvbnQtc2l6ZTo3NSUhaW1wb3J0YW50fQouZnM4MHtmb250LXNpemU6ODAlIWltcG9ydGFudH0KLmZzODV7Zm9udC1zaXplOjg1JSFpbXBvcnRhbnR9Ci5mczkwe2ZvbnQtc2l6ZTo5MCUhaW1wb3J0YW50fQouZnM5NXtmb250LXNpemU6OTUlIWltcG9ydGFudH0KLmZzMTAwe2ZvbnQtc2l6ZToxMDAlIWltcG9ydGFudH0KLmZzMTA1e2ZvbnQtc2l6ZToxMDUlIWltcG9ydGFudH0KLmZzMTEwe2ZvbnQtc2l6ZToxMTAlIWltcG9ydGFudH0KLmZzMTE1e2ZvbnQtc2l6ZToxMTUlIWltcG9ydGFudH0KLmZzMTIwe2ZvbnQtc2l6ZToxMjAlIWltcG9ydGFudH0KLmZzMTI1e2ZvbnQtc2l6ZToxMjUlIWltcG9ydGFudH0KLmZzMTMwe2ZvbnQtc2l6ZToxMzAlIWltcG9ydGFudH0KLmZzMTQwe2ZvbnQtc2l6ZToxNDAlIWltcG9ydGFudH0KLmZzMTUwe2ZvbnQtc2l6ZToxNTAlIWltcG9ydGFudH0KLmZzMTYwe2ZvbnQtc2l6ZToxNjAlIWltcG9ydGFudH0KLmZzMTcwe2ZvbnQtc2l6ZToxNzAlIWltcG9ydGFudH0KLmZzMTgwe2ZvbnQtc2l6ZToxODAlIWltcG9ydGFudH0KLmZzMTkwe2ZvbnQtc2l6ZToxOTAlIWltcG9ydGFudH0KLmZzMjAwe2ZvbnQtc2l6ZToyMDAlIWltcG9ydGFudH0KLmZzMjEwe2ZvbnQtc2l6ZToyMTAlIWltcG9ydGFudH0KLmZzMjIwe2ZvbnQtc2l6ZToyMjAlIWltcG9ydGFudH0KLmZzMjMwe2ZvbnQtc2l6ZToyMzAlIWltcG9ydGFudH0KLmZzMjQwe2ZvbnQtc2l6ZToyNDAlIWltcG9ydGFudH0KLmZzMjUwe2ZvbnQtc2l6ZToyNTAlIWltcG9ydGFudH0KLmZzMjYwe2ZvbnQtc2l6ZToyNjAlIWltcG9ydGFudH0KLmZzMjgwe2ZvbnQtc2l6ZToyODAlIWltcG9ydGFudH0KLmZzMzAwe2ZvbnQtc2l6ZTozMDAlIWltcG9ydGFudH0KLmZzMzIwe2ZvbnQtc2l6ZTozMjAlIWltcG9ydGFudH0KLmZzMzQwe2ZvbnQtc2l6ZTozNDAlIWltcG9ydGFudH0KLmZzMzYwe2ZvbnQtc2l6ZTozNjAlIWltcG9ydGFudH0KLmZzMzgwe2ZvbnQtc2l6ZTozODAlIWltcG9ydGFudH0KLmZzNDAwe2ZvbnQtc2l6ZTo0MDAlIWltcG9ydGFudH0KLmxoNzB7bGluZS1oZWlnaHQ6MC43ZW19Ci5saDc1e2xpbmUtaGVpZ2h0OjAuNzVlbX0KLmxoODB7bGluZS1oZWlnaHQ6MC44ZW19Ci5saDg1e2xpbmUtaGVpZ2h0OjAuODVlbX0KLmxoOTB7bGluZS1oZWlnaHQ6MC45ZW19Ci5saDk1e2xpbmUtaGVpZ2h0OjAuOTVlbX0KLmxoMTAwe2xpbmUtaGVpZ2h0OjFlbX0KLmxoMTA1e2xpbmUtaGVpZ2h0OjEuMDVlbX0KLmxoMTEwe2xpbmUtaGVpZ2h0OjEuMWVtfQoubGgxMTV7bGluZS1oZWlnaHQ6MS4xNWVtfQoubGgxMjB7bGluZS1oZWlnaHQ6MS4yZW19Ci5saDEyNXtsaW5lLWhlaWdodDoxLjI1ZW19Ci5saDEzMHtsaW5lLWhlaWdodDoxLjNlbX0KLmxoMTQwe2xpbmUtaGVpZ2h0OjEuNGVtfQoubGgxNTB7bGluZS1oZWlnaHQ6MS41ZW19Ci5saDE2MHtsaW5lLWhlaWdodDoxLjZlbX0KLmxoMTcwe2xpbmUtaGVpZ2h0OjEuN2VtfQoubGgxODB7bGluZS1oZWlnaHQ6MS44ZW19Ci5saDE5MHtsaW5lLWhlaWdodDoxLjllbX0KLmxoMjAwe2xpbmUtaGVpZ2h0OjJlbX0KLmxoMjIwe2xpbmUtaGVpZ2h0OjIuMmVtfQoubGgyNDB7bGluZS1oZWlnaHQ6Mi40ZW19Ci5saDI1MHtsaW5lLWhlaWdodDoyLjVlbX0KLmxoMjYwe2xpbmUtaGVpZ2h0OjIuNmVtfQoubGgyODB7bGluZS1oZWlnaHQ6Mi44ZW19Ci5saDMwMHtsaW5lLWhlaWdodDozZW19Ci5zbWFsbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMzdlbX0KLmJvbGR7Zm9udC13ZWlnaHQ6Ym9sZH0KLmJvbGRlcntmb250LXdlaWdodDpib2xkZXJ9Ci5mdzIwMHtmb250LXdlaWdodDoyMDB9Ci5mdzMwMHtmb250LXdlaWdodDozMDB9Ci5mdzQwMHtmb250LXdlaWdodDo0MDB9Ci5mdzUwMHtmb250LXdlaWdodDo1MDB9Ci5mdzYwMHtmb250LXdlaWdodDo2MDB9Ci50ZG57dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50fQoudGRse3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2ghaW1wb3J0YW50fQouZmlsdGVyLW5vbWF0Y2h7ZGlzcGxheTpub25lIWltcG9ydGFudH0KLm53e3doaXRlLXNwYWNlOm5vd3JhcH0KLmVsbHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30KLndiYXt3b3JkLWJyZWFrOmJyZWFrLWFsbH0KLnZhdHt2ZXJ0aWNhbC1hbGlnbjp0b3AhaW1wb3J0YW50fQoudmFie3ZlcnRpY2FsLWFsaWduOmJvdHRvbSFpbXBvcnRhbnR9Ci52YWx7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fQoudmFte3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9Ci50YWN7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fQoudGFye3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fQoudGFse3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9Ci5iYnN7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJ0c3tib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmJke2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnRke2JvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYmFze2JvcmRlcjoxcHggc29saWQgcmdiYSgxMDcsIDE1OSwgMjE5LCAwLjM1KX0KLmJhZHtib3JkZXI6MXB4IGRvdHRlZCByZ2JhKDEwNywgMTU5LCAyMTksIDAuMzUpfQouYnIye2JvcmRlci1yYWRpdXM6MnB4IWltcG9ydGFudH0KLmJyNHtib3JkZXItcmFkaXVzOjRweCFpbXBvcnRhbnR9Ci5icjZ7Ym9yZGVyLXJhZGl1czo2cHghaW1wb3J0YW50fQouYnI4e2JvcmRlci1yYWRpdXM6OHB4IWltcG9ydGFudH0KLmJyMTB7Ym9yZGVyLXJhZGl1czoxMHB4IWltcG9ydGFudH0KLmJyMTAwe2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50fQouYjF7Ym9yZGVyLXdpZHRoOjFweCFpbXBvcnRhbnR9Ci5iMntib3JkZXItd2lkdGg6MnB4IWltcG9ydGFudH0KLmIze2JvcmRlci13aWR0aDozcHghaW1wb3J0YW50fQouYjR7Ym9yZGVyLXdpZHRoOjRweCFpbXBvcnRhbnR9Ci5iNXtib3JkZXItd2lkdGg6NXB4IWltcG9ydGFudH0KQGtleWZyYW1lcyByb3RhdGUzNjB7ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDBkZWcpfQp0b3t0cmFuc2Zvcm06c2NhbGUoMSkgcm90YXRlKDM2MGRlZyl9fQouYXJvdDA1c3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjAuNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcn0KLmFyb3Qxc3thbmltYXRpb24tbmFtZTpyb3RhdGUzNjA7YW5pbWF0aW9uLWR1cmF0aW9uOjFzO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9Ci5hcm90MnN7YW5pbWF0aW9uLW5hbWU6cm90YXRlMzYwO2FuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyfQpkaXYubXktbW9kYWwtc2NyZWVue2JhY2tncm91bmQtY29sb3I6cmdiYSgyMiwgNTAsIDkwLCAwLjg4KTtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjE5OTc7dG9wOjA7bGVmdDowfQpkaXYubXktbW9kYWx7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxOTk4O2JveC1zaGFkb3c6MCAwIDY5cHggMTBweCByZ2JhKDI4LCAzMiwgMzgsIDAuNSk7cGFkZGluZzozMHB4O2JhY2tncm91bmQtY29sb3I6d2hpdGU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czozcHh9CmRpdi5teS1tb2RhbC5teS1tb2RhbC1sb2FkaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pL2xvYWRlci1iYXIyLmdpZicpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JhY2tncm91bmQtcG9zaXRpb246bGVmdCB0b3B9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZXtmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLCAiU2Vnb2UgVUkiLCBBcmlhbCwgc2Fucztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTlwdDtyaWdodDotOHB0O2ZvbnQtc2l6ZToyMHB0O2xpbmUtaGVpZ2h0OjEzcHQ7bWFyZ2luOjA7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHQgNnB0IDhwdCA2cHQ7Y29sb3I6IzJkNjZiODtib3JkZXItcmFkaXVzOjIwcHQ7YmFja2dyb3VuZDojZTVmM2ZmO3RyYW5zaXRpb246Y29sb3IgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjE5OTl9CmRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZTpob3Zlcntjb2xvcjojMTJhNWRjfQpkaXYubXktbW9kYWwubXktbW9kYWwtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE5OTg7Ym94LXNoYWRvdzowIDAgMTFweCA2cHggcmdiYSgyOCwgMzIsIDM4LCAwLjA4KSwgMCAwIDZweCByZ2JhKDI4LCAzMiwgMzgsIDAuMTUpO3BhZGRpbmc6MTBweCAxNXB4IDEzcHggMTVweDtib3JkZXItcmFkaXVzOjNweH0KZGl2Lm15LW1vZGFsLm15LW1vZGFsLW92ZXJsYXkgPiAubXktbW9kYWwtY2xvc2V7dG9wOi0wLjJwdDtyaWdodDotMC4ycHQ7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MnB0IDNwdCAzcHQgM3B0fQpkaXYubXktbW9kYWwgPiAubXktbW9kYWwtbm9zZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyOCwgMzIsIDM4LCAwLjE1KTtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTt0b3A6MDtsZWZ0OjB9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnQ6YmVmb3JlLCBkaXYubXktbW9kYWwubm9zZS1yaWdodDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLXRvcDpiZWZvcmUsIGRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjgsIDMyLCAzOCwgMC4xNSk7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CmRpdi5teS1tb2RhbC5ub3NlLWxlZnR7bWFyZ2luLWxlZnQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS1yaWdodHttYXJnaW4tcmlnaHQ6N3B4fQpkaXYubXktbW9kYWwubm9zZS10b3B7bWFyZ2luLXRvcDo3cHh9CmRpdi5teS1tb2RhbC5ub3NlLWJvdHRvbXttYXJnaW4tYm90dG9tOjdweH0KZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmV7bGVmdDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9CmRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZXtyaWdodDotNnB4O3RvcDo1MCU7bWFyZ2luLXRvcDotNXB4O3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS10b3A6YmVmb3Jle2xlZnQ6NTAlO3RvcDotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfQpkaXYubXktbW9kYWwubm9zZS1ib3R0b206YmVmb3Jle2xlZnQ6NTAlO2JvdHRvbTotNnB4O21hcmdpbi1sZWZ0Oi01cHg7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfQoubXktdGFnc3twb3NpdGlvbjpyZWxhdGl2ZX0KLm15LXRhZ3MgLnRhZ3twYWRkaW5nOjAuMTVlbSAwLjM1ZW0gMC4yMmVtIDAuMzVlbTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Ci5teS10YWdzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojMjM0ZjhmO3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzNCwgMTE0LCAxMzQsIDAuMzUpO2NvbG9yOiNkNjJjNDl9Ci5teS10YWdzIC50YWcuYWN0aXZlOmhvdmVye2NvbG9yOiMxMmE1ZGN9Ci5zZWxlY3QyLWNvbnRhaW5lcnttYXJnaW46MDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Ci5zZWxlY3QyLWNvbnRhaW5lciwgLnNlbGVjdDItZHJvcCwgLnNlbGVjdDItc2VhcmNoLCAuc2VsZWN0Mi1zZWFyY2ggaW5wdXR7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNle2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowIDAgMCAwLjRlbTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDoyZW07Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZC1jb2xvcjojZmZmfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZXtib3JkZXItYm90dG9tLWNvbG9yOiNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItYWxsb3djbGVhciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDo0MnB4fQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlID4gLnNlbGVjdDItY2hvc2Vue21hcmdpbi1yaWdodDoyNnB4O2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Zsb2F0Om5vbmU7d2lkdGg6YXV0bztsaW5lLWhlaWdodDoxLjllbTtjb2xvcjojNGQ1YTZhfQpodG1sW2Rpcj0icnRsIl0gLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSA+IC5zZWxlY3QyLWNob3NlbnttYXJnaW4tbGVmdDoyNnB4O21hcmdpbi1yaWdodDowfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnJ7ZGlzcGxheTpub25lO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjRweDt0b3A6OHB4O2ZvbnQtc2l6ZToxcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCB0b3A7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowfQouc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1hbGxvd2NsZWFyIC5zZWxlY3QyLWNob2ljZSBhYmJye2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnI6aG92ZXJ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtMTFweDtjdXJzb3I6cG9pbnRlcn0KLnNlbGVjdDItZHJvcC1tYXNre2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MDtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7bWluLWhlaWdodDoxMDAlO21pbi13aWR0aDoxMDAlO2hlaWdodDphdXRvO3dpZHRoOmF1dG87b3BhY2l0eTowO3otaW5kZXg6Mjk5NztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCl9Ci5zZWxlY3QyLWRyb3B7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi0xcHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyOTk4O3RvcDoxMDAlO2ZvbnQtc2l6ZTowLjhlbTtsaW5lLWhlaWdodDoxLjM1ZW07YmFja2dyb3VuZDojZmZmO2NvbG9yOmluaGVyaXQ7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci10b3A6MDtjb2xvcjojNGQ1YTZhO2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHh9Ci5zZWxlY3QyLWRyb3AgbGl7bWFyZ2luLWxlZnQ6MH0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmV7bWFyZ2luLXRvcDoxcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXJhZGl1czoycHggMnB4IDAgMH0KLnNlbGVjdDItZHJvcC1hY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O2JvcmRlci10b3A6bm9uZX0KLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmUuc2VsZWN0Mi1kcm9wLWFjdGl2ZXtib3JkZXItdG9wOjFweCBzb2xpZCAjOWVjZGY4fQouc2VsZWN0Mi1kcm9wLWF1dG8td2lkdGh7Ym9yZGVyLXRvcDoxcHggc29saWQgI2QwZDZkZDt3aWR0aDphdXRvfQouc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE4cHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtib3JkZXItbGVmdDoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjAgMnB4IDJweCAwO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kOiNlM2U4ZWJ9Ci5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjowIDFweH0KLnNlbGVjdDItc2VhcmNoe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7bWluLWhlaWdodDoyNnB4O21hcmdpbjowO3BhZGRpbmc6NHB4IDRweCAwIDRweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI5OTk7d2hpdGUtc3BhY2U6bm93cmFwfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXR7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDoyNnB4O3BhZGRpbmc6NHB4IDIwcHggNHB4IDVweDttYXJnaW46MDtvdXRsaW5lOm5vbmU7YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIycHh9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dC5zZWxlY3QyLWFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmZmZmYgdXJsKCcuLi9pL3NwaW5uZXIuZ2lmJykgbm8tcmVwZWF0IDEwMCV9Ci5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlLCAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZXN7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4O291dGxpbmU6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLWRyb3Bkb3duLW9wZW4uc2VsZWN0Mi1kcm9wLWFib3ZlIC5zZWxlY3QyLWNob2ljZSwgLnNlbGVjdDItZHJvcGRvd24tb3Blbi5zZWxlY3QyLWRyb3AtYWJvdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudH0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7YmFja2dyb3VuZDp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnQ7ZmlsdGVyOm5vbmV9Ci5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudDtib3JkZXItbGVmdDpub25lIWltcG9ydGFudDtmaWx0ZXI6bm9uZX0KLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOHB4IDFweH0KLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGV7Ym9yZGVyOjA7Y2xpcDpyZWN0KDAgMCAwIDApO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHh9Ci5zZWxlY3QyLXJlc3VsdHN7bWF4LWhlaWdodDoyNTBweDtwYWRkaW5nOjAgMCAwIDRweDttYXJnaW46NHB4IDRweCA0cHggMDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwgMCwgMCwgMCk7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Cmh0bWxbZGlyPSJydGwiXSAuc2VsZWN0Mi1yZXN1bHRze3BhZGRpbmc6MCA0cHggMCAwO21hcmdpbjo0cHggMCA0cHggNHB4fQouc2VsZWN0Mi1yZXN1bHRzIHVsLnNlbGVjdDItcmVzdWx0LXN1YnttYXJnaW46MDtwYWRkaW5nLWxlZnQ6MH0KLnNlbGVjdDItcmVzdWx0cyBsaXtsaXN0LXN0eWxlOm5vbmU7ZGlzcGxheTpsaXN0LWl0ZW07YmFja2dyb3VuZC1pbWFnZTpub25lfQouc2VsZWN0Mi1yZXN1bHRzIGxpLnNlbGVjdDItcmVzdWx0LXdpdGgtY2hpbGRyZW4gPiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZzoxcHggMHB4IDJweDttYXJnaW46MDtjdXJzb3I6cG9pbnRlcjttaW4taGVpZ2h0OjFlbTstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0xIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MHB4fQouc2VsZWN0Mi1yZXN1bHRzLWRlcHQtMiAuc2VsZWN0Mi1yZXN1bHQtbGFiZWx7cGFkZGluZy1sZWZ0OjEwcHh9Ci5zZWxlY3QyLXJlc3VsdHMtZGVwdC0zIC5zZWxlY3QyLXJlc3VsdC1sYWJlbHtwYWRkaW5nLWxlZnQ6MjBweH0KLnNlbGVjdDItcmVzdWx0cy1kZXB0LTQgLnNlbGVjdDItcmVzdWx0LWxhYmVse3BhZGRpbmctbGVmdDozMHB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsIDIwNSwgMjQ4LCAwLjM1KTtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIGxpIGVte2JhY2tncm91bmQ6cmdiYSgyMDMsIDIzMSwgMjU0LCAwLjM1KTtmb250LXN0eWxlOm5vcm1hbH0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1oaWdobGlnaHRlZCBlbXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWhpZ2hsaWdodGVkIHVse2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojNGQ1YTZhfQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLW5vLXJlc3VsdHMsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VhcmNoaW5nLCAuc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWFqYXgtZXJyb3IsIC5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItc2VsZWN0aW9uLWxpbWl0e2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbTtwYWRkaW5nLWxlZnQ6NXB4fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLWRpc2FibGVkLnNlbGVjdDItaGlnaGxpZ2h0ZWR7Y29sb3I6IzRkNWE2YTtiYWNrZ3JvdW5kOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7ZGlzcGxheTpsaXN0LWl0ZW07Y3Vyc29yOmRlZmF1bHR9Ci5zZWxlY3QyLXJlc3VsdHMgLnNlbGVjdDItZGlzYWJsZWR7YmFja2dyb3VuZDpyZ2JhKDIyNywgMjMyLCAyMzUsIDAuMzUpO2Rpc3BsYXk6bGlzdC1pdGVtO2N1cnNvcjpkZWZhdWx0fQouc2VsZWN0Mi1yZXN1bHRzIC5zZWxlY3QyLXNlbGVjdGVke2Rpc3BsYXk6bm9uZX0KLnNlbGVjdDItbW9yZS1yZXN1bHRzLnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KSB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJX0KLnNlbGVjdDItcmVzdWx0cyAuc2VsZWN0Mi1hamF4LWVycm9ye2JhY2tncm91bmQ6cmdiYSgyNTQsIDIxMSwgMjExLCAwLjM1KX0KLnNlbGVjdDItbW9yZS1yZXN1bHRze2JhY2tncm91bmQ6cmdiYSgxODUsIDE5MiwgMjAzLCAwLjM1KTtkaXNwbGF5Omxpc3QtaXRlbX0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1sZWZ0OjB9Ci5zZWxlY3QyLWNvbnRhaW5lci5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2UgYWJicntkaXNwbGF5Om5vbmV9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2Vze21pbi1oZWlnaHQ6MjZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbjowO3BhZGRpbmc6MCAwIDJweCAwO2N1cnNvcjp0ZXh0O292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6YXV0byFpbXBvcnRhbnQ7cG9zaXRpb246cmVsYXRpdmV9Ci5zZWxlY3QyLWxvY2tlZHtwYWRkaW5nOjNweCA1cHggM3B4IDVweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICM5ZWNkZjg7b3V0bGluZTpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyBsaXtmbG9hdDpsZWZ0O2xpc3Qtc3R5bGU6bm9uZX0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxke21hcmdpbjowO3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpub3dyYXB9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1maWVsZCBpbnB1dHtwYWRkaW5nOjNweCA2cHg7bWFyZ2luOjNweCAwO2ZvbnQtc2l6ZTowLjllbTtsaW5lLWhlaWdodDoxLjFlbTtvdXRsaW5lOm5vbmU7Ym9yZGVyOjAhaW1wb3J0YW50O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQhaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LCAubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0OmZvY3Vze2JvcmRlcjowIWltcG9ydGFudH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWZpZWxkIGlucHV0LnNlbGVjdDItYWN0aXZle2JhY2tncm91bmQ6I2ZmZmZmZiB1cmwoJy4uL2kvc3Bpbm5lci5naWYnKSBuby1yZXBlYXQgMTAwJSFpbXBvcnRhbnR9Ci5zZWxlY3QyLWRlZmF1bHR7Y29sb3I6I2I5YzBjYiFpbXBvcnRhbnR9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4NSwgMTkyLCAyMDMsIDAuMzUpO2ZpbHRlcjpub25lO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtjb2xvcjojNGQ1YTZhO2JvcmRlcjpub25lO2xpbmUtaGVpZ2h0OjEuMWVtO2ZvbnQtc2l6ZTowLjllbTtwYWRkaW5nOjNweCA4cHggNHB4IDE2cHg7bWFyZ2luOjNweCAwIDBweCAzcHg7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOmRlZmF1bHQ7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlIC5zZWxlY3QyLWNob3NlbntjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1mb2N1c3tiYWNrZ3JvdW5kOnJnYmEoMTU4LCAyMDUsIDI0OCwgMC4zNSl9Ci5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxM3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt0b3A6NHB4O2ZvbnQtc2l6ZToxcHg7b3V0bGluZTpub25lO2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wfQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtsZWZ0OjNweH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZSAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlOmhvdmVye2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTExcHh9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aSAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtZm9jdXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0xMXB4fQouc2VsZWN0Mi1jb250YWluZXItbXVsdGkuc2VsZWN0Mi1jb250YWluZXItZGlzYWJsZWQgLnNlbGVjdDItY2hvaWNlc3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2UzZThlYjtjdXJzb3I6ZGVmYXVsdH0KLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWRpc2FibGVkIC5zZWxlY3QyLWNob2ljZXMgLnNlbGVjdDItc2VhcmNoLWNob2ljZXtwYWRkaW5nLWxlZnQ6NXB4O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjI3LCAyMzIsIDIzNSwgMC4zNSl9Ci5zZWxlY3QyLWNvbnRhaW5lci1tdWx0aS5zZWxlY3QyLWNvbnRhaW5lci1kaXNhYmxlZCAuc2VsZWN0Mi1jaG9pY2VzIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UgLnNlbGVjdDItc2VhcmNoLWNob2ljZS1jbG9zZXtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDpub25lfQouc2VsZWN0Mi1yZXN1bHQtc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaCwgLnNlbGVjdDItcmVzdWx0LXVuc2VsZWN0YWJsZSAuc2VsZWN0Mi1tYXRjaHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQouc2VsZWN0Mi1vZmZzY3JlZW4sIC5zZWxlY3QyLW9mZnNjcmVlbjpmb2N1c3tjbGlwOnJlY3QoMCAwIDAgMCkhaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O291dGxpbmU6MCFpbXBvcnRhbnQ7bGVmdDowcHghaW1wb3J0YW50O3RvcDowcHghaW1wb3J0YW50fQouc2VsZWN0Mi1kaXNwbGF5LW5vbmV7ZGlzcGxheTpub25lfQouc2VsZWN0Mi1tZWFzdXJlLXNjcm9sbGJhcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwMDAwcHg7bGVmdDotMTAwMDBweDt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7b3ZlcmZsb3c6c2Nyb2xsfQouc2VsZWN0Mi1zZWFyY2ggaW5wdXQsIC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2UsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgYWJiciwgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvdyBie2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRHdBQUFBb0NBWUFBQUNpdTVuL0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBcDlKUkVGVWVOcnNtZHRMRzFFUXhqZWFwRjZLWXJXQ1Y3eTBVR3NGcVJTdkQwWGY5S0VQL1RNRjhRK1FncWlsU0d0b29RVXIzckRpTFdnYmE3eWdpZC9ndC9WNFdKbzFOZGFkT1BBankxbGR6cmN6NTV5WjJWQTZuWGJ5eVFxY1BMTzhFeHoyR2d5RlFvR1l2THNjT2Q4dXNBbldlYnNhMUlOWTJsaTNZU1dPYTZLNFNwQUFaNkFEUE9UOU9XMkNkOEZ2Q3V3WDU0TWlqcTFyWE1QaTFTbXdEeDVRYkJLOEIxdGFONjJvcFVldUkxcDM2VWRnQUpReWpCUDBjaDlvK0IrQ293eTFYRmtabjMvRU1KNmhjQm1yeW5nc3dacmRuZDhZS3dScjRDU0xDYjBDeFdBaVI0SlhPTmVmNEpCakh5aDIxWS9nQ3RCdWpmMnkvL2thNGRiQzZ4cXdrYVB6Mko3YkFmRzFodWVzQjZUQU5Eak4wcnZtOVkwdEkwazQvT0IzRGNkNGdJdk44Nnk3cnJVejQzR3RITHk4YzZrbGJaOUNuNEl2Ly9EOEJUc0MrYUpUTjZoRGpwOUI3akhmT05aS3BveDFuVEhUK3NwTTVTVExpWHkrSmNkMWdoZU1xQ1RuTzhJWElkblgySjlsNEZVUEI2VjRNRXhFRGZQTVBXTVVoZW54ZDlBWTE1WjR5Sms3eW1xcGtHSjM2ZG00MXRTeTNxaU94RXJzTEV1VDRDZmdMUVZMR0M4enRYd0RlalFLTG1Bb2I0Tng4c01JNzZ0WmlrMUFyZEVLNldLT1hkR21aWmYyMVFyU3RtbjVqdjE3d2ZlQ0ZWbFF1NVlSNTdKZmRXZzFLdFFKbG41em0zUFpNdHBqa2JLbU1hUjdXUm1kc2treHorN01hK2VpR2EvS3czVk1JYVZBbURSSzFpVXdCTHA1NzBpTGh4djVPMnZWNTNIVzdkSVpyZFFVMGhGMlNSSWU5L2I4NmdtUzRBUE90ODdqbnJ0K2p6VUpYdVN2ZkUyb05id3VyWjBXdnBEdFRBOEpXdkhRU3NFT1F6dkt1dGMxYWVCOStsdnhFTFJ6ZUpGQ24vRTRraDM1TzNVOEorS3RqNW9TangxaVc0cmgzVWJSTWNmanc0R21YRHJHakN2RkNIaWNEOFdEZkRCd1A0QW52ZjdnWElBQkFGdXF0WS9jUUs4aEFBQUFBRWxGVGtTdVFtQ0MpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnR9CkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOjJkcHB4KSB7LnNlbGVjdDItc2VhcmNoIGlucHV0LCAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlLCAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIGFiYnIsIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQlFDQVlBQUFEU203R0pBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQkRaSlJFRlVlTnJzbk05UEUwRVV4NmVDWWlEQmt6OFNERDlpd2dGamhFUTRlT3FkZjlSL2dJdnh3QmxpaWpFYVUxUzBFVUxrMUNaRlRXM3FHenBMbnN1ODdRN2IyYzRzMzIveTBxWHp1aVQ5N0p2OXZ0bnUxZ2FEZ1lLcXExdjRDZ0FZQW1Bb1ZFM2pLd2hMdFZvdDJkd3dyNDJNOUlzYzhsRU5BSTVMR3R3aSs3dVJsYU1QQ2dreXB1anc0UzZ5YWhaekNQSUdBTWNyRGprTk4zdktSeDhjNURsWWd0aWxtTE84MzVLbWFBQU8yMlRscWRSV2xzbkNGQjJ1TkxSV0ViZ0FIQWZrcmpEV0hkRkNBWEFram5wT0dKdXp1R3NBanJoZHNycHJxVDBDNERqaGRsMGhBM0E4Y0xYaGVpTVlMeXgwUks0V00xUjUzUFdsb2w2TFpqMGoxMVB6K2lFOUVFblBuNEJjdE1BVmM2UjJxV29YRzdTelhEUGIzekphakZnZ3E0eFdxTUVPWExGZGNsckpvb3JacHBmWm5Pbm50Tytka2l1NFRuSGZiSjlSN0VaWXdXT1Y2emw0MzFQdU9MVEE0Q3F6dlhEVFQ5NnVnSDlTbk9USU96RzVaZWsyeGJybC9YVXpCc0FPT3FEb1pZejNURTZaV2hWT0hiTm1ESUFkcEkzTFljYjRZY25taGhzcm05YVV2TndId0lKMEMzSnVNMWEyOXNTek5zZVVBOEE1VE5Ta2paV2tHMnU0aWdCT0c2NnlqWlVTak5VNGNpY20zZnFacUp0UUdYR1JrN1cvb2dzZEI2eUN5alpXeW5lZlBVSFZVK1p3Tnl2SC9LcHkxd2RnYnJpNkN2SUJkOVVDK1VxT0JIbmFzV0lrd3dYNWJ3TVR5SFdYMWc4L3VndndISndCc1VNeGIzbS9LVTNSQUJ3bVlPVlFxU0xjb2k0YThpc05yVmtFTGdESEFia2pqSFVFZHczQWtUbnFlV0ZzM293RGNFWGFKYXU3SHJYUUFjQnh3ZTI0UWdiZ2VPQnF3L1ZLTUY0aVpBQ09RMDFtcVBLNGF3Q09xRDFxV3R6eWxSeGZhOUdRUDhpMmJXdE9WaStNbGF5S0MxTTBBRU1BREFFd0JNQVFBRU1BREFFd0FFTUFEQUV3Qk1DUWIrRnFraWRaSGkraGIwUmZvVmltdUpjYWE2dmhNMFdPVk9yZTY2SVhnM0ExcVJ6QStzN0dUVFg2YVFNYXJyNUQ4eGlBNHdHOHJPejNKeWRmdk8xWlVQdW1vZ3NEeGhUdFZ3c3B1SnFXdmtuK0U4VXBPd0IwekRMWW02YWFqd3NmYUtoZ2J4V3NwK050TmkzM0tiNVN2RGZiWERNVXo5VHd3V1pUYkxyZUlUNDl1T2d3dGNMZzZpcjZvb2IzVVBjdHVYOG8zcHBwZVpBeVpXaVRBdFV5Mjg3ejdCSU45aDNGYjJFZkFCeVllQ3YwbWVKdmpzLzBFM05sMlFjQUJ5d1hzM1RHcG1rRndIRm9hbEwvR0lETDBTT0gzSWRDYnd6QWdhbk50cC9rWEhPWVVmOC83YjBOd09HS215WDlLTVhuSTc3dktaTnpWOWdIQUFjbWZ1RkFUN2xMRkM5TWxhWjFoMktMNGpHYm5yWFJPdUlQUHJ1T3NKTGxTUWFJWHFwOG1lcDFmMUg4VU1PbFNsMWdEOHkwUEdNNTkzNm4yTHY4OERWWUFiQmZ3TWxpaGV2RkJpdGtBQTRUY0ZMSmVTNFhEZ1RnRjVBQk9GekFTdVcvNEw5aHp0ZFhJQk9yUFFDdXhrR3hOUzdJY05GaGFzOU15Mmt0MFVHd2hRcXV6clF1VlhLYnVMMUdCVmUza25OZlpRTGdlQ0VEY01VZzgzWHBqemdIUTZqZ202Qi9BZ3dBU2Y5SmRHbEcwODBBQUFBQVNVVk9SSzVDWUlJPSkhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOjYwcHggNDBweCFpbXBvcnRhbnR9Ci5zZWxlY3QyLXNlYXJjaCBpbnB1dHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgLTIxcHghaW1wb3J0YW50fX0KLnVpLXNsaWRlcntib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTAwcHghaW1wb3J0YW50O2JhY2tncm91bmQ6d2hpdGU7Zm9udC1zaXplOjkwJTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnR9Ci51aS1zbGlkZXItaG9yaXpvbnRhbHtoZWlnaHQ6MC40ZW19Ci51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtiYWNrZ3JvdW5kOiNlM2U4ZWI7Ym9yZGVyLXJhZGl1czozcHg7aGVpZ2h0OjEuMWVtO3dpZHRoOjEuMWVtO291dGxpbmU6bm9uZSFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2N1cnNvcjpkZWZhdWx0fQoudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlcntiYWNrZ3JvdW5kOiNjYmU3ZmU7Ym9yZGVyOjFweCBzb2xpZCAjOWVjZGY4fQoudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2V7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO2ZvbnQtc2l6ZTouN2VtO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjA7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZXt0b3A6LTAuNGVtO21hcmdpbi1sZWZ0Oi0wLjU1ZW19Ci51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdle3RvcDowO2hlaWdodDoxMDAlfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXh7cmlnaHQ6MH0KLnVpLXNsaWRlci12ZXJ0aWNhbHt3aWR0aDouNGVtO2hlaWdodDoxMDBweH0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0wLjRlbTttYXJnaW4tbGVmdDowO21hcmdpbi1ib3R0b206LTAuNTVlbX0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdle2xlZnQ6MDt3aWR0aDoxMDAlfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWlue2JvdHRvbTowfQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfQppbnB1dFt0eXBlPSJyYW5nZSJdIHtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXJhZGl1czoxMDBweDtiYWNrZ3JvdW5kOndoaXRlO2ZvbnQtc2l6ZTo5MCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjAuNGVtfQppbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MDttYXJnaW4tbGVmdDowO3otaW5kZXg6MTtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7YmFja2dyb3VuZDojZTNlOGViO2JvcmRlci1yYWRpdXM6M3B4O2hlaWdodDoxLjFlbTt3aWR0aDoxLjFlbX0KaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojYjdkYmZiO2JvcmRlcjoxcHggc29saWQgI2I3ZGJmYn0KLnVpLXdpZGdldHtmb250LXNpemU6OTAlfQpib2R5ID4gLnVpLWF1dG9jb21wbGV0ZXtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjNlbX0KLnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2QwZDZkZDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOndoaXRlO2NvbG9yOiM0ZDVhNmF9Ci51aS1zdGF0ZS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2JlN2ZlfQoudWktc3RhdGUtaGlnaGxpZ2h0e2JveC1zaGFkb3c6MCAwIDAgMXB4ICNkMGQ2ZGQgaW5zZXR9Ci51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApfQoudWktd2lkZ2V0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Ci51aS1zdGF0ZS1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNjYmU3ZmV9Ci51aS1hdXRvY29tcGxldGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2N1cnNvcjpkZWZhdWx0O2JvcmRlci1jb2xvcjojOWVjZGY4O2JvcmRlci10b3A6bm9uZTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7ei1pbmRleDo5OTk5fQoudWktbWVudXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2Rpc3BsYXk6YmxvY2s7b3V0bGluZTpub25lfQoudWktbWVudSAudWktbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDtwYWRkaW5nOjNweCAxZW0gM3B4IC40ZW07Y3Vyc29yOnBvaW50ZXI7bWluLWhlaWdodDowO2xpc3Qtc3R5bGUtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTciKX0KLnVpLXRvb2x0aXB7cGFkZGluZzo4cHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo5OTk5O21heC13aWR0aDozMDBweDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDVweCAjYWFhO2JveC1zaGFkb3c6MCAwIDVweCAjYWFhfQoudWktdG9vbHRpcHtwYWRkaW5nOjhweCAxMnB4IDlweCAxMnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NTk5OTk7bWF4LXdpZHRoOjI1MHB4O21pbi13aWR0aDoyMDBweDtib3gtc2hhZG93OjJweCAycHggMHB4IHJnYmEoMjgsIDMyLCAzOCwgMC4wOCk7Ym9yZGVyOjFweCBzb2xpZCAjZDBkNmRkO2JhY2tncm91bmQtY29sb3I6d2hpdGU7Zm9udC1zaXplOjkwJTtsaW5lLWhlaWdodDoxLjNlbTtjb2xvcjojNmI5ZmRiO2hlaWdodDphdXRvfQoudWktdG9vbHRpcDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi03cHg7dG9wOjEwcHg7d2lkdGg6MTFweDtoZWlnaHQ6MTFweDtib3JkZXI6MXB4IHNvbGlkICNkMGQ2ZGQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6d2hpdGU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTstby10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt6LWluZGV4OjU5OTk4fQouQ29kZU1pcnJvcntmb250OjEzcHggQ291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7aGVpZ2h0OmF1dG99Ci5Db2RlTWlycm9yLXNjcm9sbHtvdmVyZmxvdzphdXRvfQouQ29kZU1pcnJvci1saW5lc3twYWRkaW5nOjRweCAwfQouQ29kZU1pcnJvciBwcmV7cGFkZGluZzowIDRweH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlciwgLkNvZGVNaXJyb3ItZ3V0dGVyLWZpbGxlcntiYWNrZ3JvdW5kLWNvbG9yOndoaXRlfQouQ29kZU1pcnJvci1ndXR0ZXJze2JvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7d2hpdGUtc3BhY2U6bm93cmFwfQouQ29kZU1pcnJvci1saW5lbnVtYmVye3BhZGRpbmc6MCAzcHggMCA1cHg7bWluLXdpZHRoOjIwcHg7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjojOTk5O3doaXRlLXNwYWNlOm5vd3JhcH0KLkNvZGVNaXJyb3IgZGl2LkNvZGVNaXJyb3ItY3Vyc29ye2JvcmRlci1sZWZ0OjFweCBzb2xpZCBibGFjazt6LWluZGV4OjN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLXNlY29uZGFyeWN1cnNvcntib3JkZXItbGVmdDoxcHggc29saWQgc2lsdmVyfQouQ29kZU1pcnJvci5jbS1rZXltYXAtZmF0LWN1cnNvciBkaXYuQ29kZU1pcnJvci1jdXJzb3J7d2lkdGg6YXV0bztib3JkZXI6MDtiYWNrZ3JvdW5kOiM3ZTc7ei1pbmRleDoxfQouY20tdGFie2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouY20tcy1kZWZhdWx0IC5jbS1rZXl3b3Jke2NvbG9yOiM3MjM1OTR9Ci5jbS1zLWRlZmF1bHQgLmNtLWF0b217Y29sb3I6I2ZmNGQwMX0KLmNtLXMtZGVmYXVsdCAuY20tbnVtYmVye2NvbG9yOiM2NTljMTN9Ci5jbS1zLWRlZmF1bHQgLmNtLWRlZntjb2xvcjojYzMwYzNifQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZXtjb2xvcjojMzNiZmFkfQouY20tcy1kZWZhdWx0IC5jbS12YXJpYWJsZS0ye2NvbG9yOiMwMDU1YWF9Ci5jbS1zLWRlZmF1bHQgLmNtLXZhcmlhYmxlLTN7Y29sb3I6IzAwODg1NX0KLmNtLXMtZGVmYXVsdCAuY20tcHJvcGVydHl7Y29sb3I6IzQzNGU1ZH0KLmNtLXMtZGVmYXVsdCAuY20tb3BlcmF0b3J7Y29sb3I6IzM2MzYzNn0KLmNtLXMtZGVmYXVsdCAuY20tY29tbWVudHtjb2xvcjojNGFhYTAwfQouY20tcy1kZWZhdWx0IC5jbS1zdHJpbmd7Y29sb3I6IzQ4NWU3N30KLmNtLXMtZGVmYXVsdCAuY20tc3RyaW5nLTJ7Y29sb3I6I2ZmNTUwMH0KLmNtLXMtZGVmYXVsdCAuY20tbWV0YXtjb2xvcjojNTU1NTU1fQouY20tcy1kZWZhdWx0IC5jbS1xdWFsaWZpZXJ7Y29sb3I6IzU1NTU1NX0KLmNtLXMtZGVmYXVsdCAuY20tYnVpbHRpbntjb2xvcjojMzMwMGFhfQouY20tcy1kZWZhdWx0IC5jbS1icmFja2V0e2NvbG9yOiM5OTk5Nzd9Ci5jbS1zLWRlZmF1bHQgLmNtLXRhZ3tjb2xvcjojNzNhYzE5fQouY20tcy1kZWZhdWx0IC5jbS1hdHRyaWJ1dGV7Y29sb3I6IzAwNDdjY30KLmNtLXMtZGVmYXVsdCAuY20taGVhZGVye2NvbG9yOiNiNjAwMDB9Ci5jbS1zLWRlZmF1bHQgLmNtLXF1b3Rle2NvbG9yOiNmODM0Yzh9Ci5jbS1zLWRlZmF1bHQgLmNtLWhye2NvbG9yOiM5OTk5OTl9Ci5jbS1zLWRlZmF1bHQgLmNtLWxpbmt7Y29sb3I6IzU0ODFhMH0KLmNtLW5lZ2F0aXZle2NvbG9yOiNkZDQ0NDR9Ci5jbS1wb3NpdGl2ZXtjb2xvcjojMjI5OTIyfQouY20taGVhZGVyLCAuY20tc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGR9Ci5jbS1lbXtmb250LXN0eWxlOml0YWxpY30KLmNtLWxpbmt7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0KLmNtLXN0cmlrZXRocm91Z2h7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmNtLXMtZGVmYXVsdCAuY20tZXJyb3J7Y29sb3I6I2Q2MmM0OX0KLmNtLWludmFsaWRjaGFye2NvbG9yOiNmZjAwMDB9CmRpdi5Db2RlTWlycm9yIHNwYW4uQ29kZU1pcnJvci1tYXRjaGluZ2JyYWNrZXR7Y29sb3I6IzAwZmYwMH0KZGl2LkNvZGVNaXJyb3Igc3Bhbi5Db2RlTWlycm9yLW5vbm1hdGNoaW5nYnJhY2tldHtjb2xvcjojZmYyMjIyfQouQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmR7YmFja2dyb3VuZDojZThmMmZmfQouQ29kZU1pcnJvcntsaW5lLWhlaWdodDoxLjMyZW07cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6d2hpdGU7Y29sb3I6IzMzM30KLkNvZGVNaXJyb3Itc2Nyb2xse21hcmdpbi1ib3R0b206LTMwcHg7bWFyZ2luLXJpZ2h0Oi0zMHB4O3BhZGRpbmctYm90dG9tOjMwcHg7cGFkZGluZy1yaWdodDozMHB4O2hlaWdodDoxMDAlO291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0KLkNvZGVNaXJyb3Itc2l6ZXJ7cG9zaXRpb246cmVsYXRpdmV9Ci5Db2RlTWlycm9yLXZzY3JvbGxiYXIsIC5Db2RlTWlycm9yLWhzY3JvbGxiYXIsIC5Db2RlTWlycm9yLXNjcm9sbGJhci1maWxsZXIsIC5Db2RlTWlycm9yLWd1dHRlci1maWxsZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2O2Rpc3BsYXk6bm9uZX0KLkNvZGVNaXJyb3ItdnNjcm9sbGJhcntyaWdodDowO3RvcDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6c2Nyb2xsfQouQ29kZU1pcnJvci1oc2Nyb2xsYmFye2JvdHRvbTowO2xlZnQ6MDtvdmVyZmxvdy15OmhpZGRlbjtvdmVyZmxvdy14OnNjcm9sbH0KLkNvZGVNaXJyb3Itc2Nyb2xsYmFyLWZpbGxlcntyaWdodDowO2JvdHRvbTowfQouQ29kZU1pcnJvci1ndXR0ZXItZmlsbGVye2xlZnQ6MDtib3R0b206MH0KLkNvZGVNaXJyb3ItZ3V0dGVyc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cGFkZGluZy1ib3R0b206MzBweDt6LWluZGV4OjN9Ci5Db2RlTWlycm9yLWd1dHRlcnt3aGl0ZS1zcGFjZTpub3JtYWw7aGVpZ2h0OjEwMCU7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3g7cGFkZGluZy1ib3R0b206MzBweDttYXJnaW4tYm90dG9tOi0zMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyp6b29tOjE7KmRpc3BsYXk6aW5saW5lfQouQ29kZU1pcnJvci1ndXR0ZXItZWx0e3Bvc2l0aW9uOmFic29sdXRlO2N1cnNvcjpkZWZhdWx0O3otaW5kZXg6NH0KLkNvZGVNaXJyb3ItbGluZXN7Y3Vyc29yOnRleHQ7bGluZS1oZWlnaHQ6MS4zZW19Ci5Db2RlTWlycm9yIHByZXstbW96LWJvcmRlci1yYWRpdXM6MDstd2Via2l0LWJvcmRlci1yYWRpdXM6MDtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXdpZHRoOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTppbmhlcml0O21hcmdpbjowO3doaXRlLXNwYWNlOnByZTt3b3JkLXdyYXA6bm9ybWFsO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt6LWluZGV4OjI7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6dmlzaWJsZX0KLkNvZGVNaXJyb3Itd3JhcCBwcmV7d29yZC13cmFwOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpub3JtYWx9Ci5Db2RlTWlycm9yLWNvZGUgcHJle2JvcmRlci1yaWdodDozMHB4IHNvbGlkIHRyYW5zcGFyZW50O3dpZHRoOi13ZWJraXQtZml0LWNvbnRlbnQ7d2lkdGg6LW1vei1maXQtY29udGVudDt3aWR0aDpmaXQtY29udGVudH0KLkNvZGVNaXJyb3Itd3JhcCAuQ29kZU1pcnJvci1jb2RlIHByZXtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDphdXRvfQouQ29kZU1pcnJvci1saW5lYmFja2dyb3VuZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDt6LWluZGV4OjB9Ci5Db2RlTWlycm9yLWxpbmV3aWRnZXR7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO292ZXJmbG93OmF1dG99Ci5Db2RlTWlycm9yLXdyYXAgLkNvZGVNaXJyb3Itc2Nyb2xse292ZXJmbG93LXg6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3Zpc2liaWxpdHk6aGlkZGVufQouQ29kZU1pcnJvci1tZWFzdXJlIHByZXtwb3NpdGlvbjpzdGF0aWN9Ci5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcntwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjtib3JkZXItcmlnaHQ6bm9uZTt3aWR0aDowfQouQ29kZU1pcnJvci1mb2N1c2VkIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OnZpc2libGV9Ci5Db2RlTWlycm9yLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q5ZDlkOX0KLkNvZGVNaXJyb3ItZm9jdXNlZCAuQ29kZU1pcnJvci1zZWxlY3RlZHtiYWNrZ3JvdW5kOiNkN2Q0ZjB9Ci5jbS1zZWFyY2hpbmd7YmFja2dyb3VuZDojZmZhO2JhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMCwgMC40KX0KQG1lZGlhIHByaW50ey5Db2RlTWlycm9yIGRpdi5Db2RlTWlycm9yLWN1cnNvcnt2aXNpYmlsaXR5OmhpZGRlbn19Ci5qY3JvcC1ob2xkZXJ7ZGlyZWN0aW9uOmx0cjt0ZXh0LWFsaWduOmxlZnR9Ci5qY3JvcC12bGluZSwgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I2ZmZmZmZjtmb250LXNpemU6MDtwb3NpdGlvbjphYnNvbHV0ZX0KLmpjcm9wLXZsaW5le2hlaWdodDoxMDAlO3dpZHRoOjFweCFpbXBvcnRhbnR9Ci5qY3JvcC12bGluZS5yaWdodHtyaWdodDowfQouamNyb3AtaGxpbmV7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MTAwJX0KLmpjcm9wLWhsaW5lLmJvdHRvbXtib3R0b206MH0KLmpjcm9wLXRyYWNrZXJ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfQouamNyb3AtaGFuZGxle2JhY2tncm91bmQtY29sb3I6IzM4NDE0Yztib3JkZXI6MXB4ICNlM2U4ZWIgc29saWQ7Zm9udC1zaXplOjFweDtoZWlnaHQ6N3B4O3dpZHRoOjdweH0KLmpjcm9wLWhhbmRsZS5vcmQtbntsZWZ0OjUwJTttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3tib3R0b206MDtsZWZ0OjUwJTttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWhhbmRsZS5vcmQtZXttYXJnaW4tcmlnaHQ6LTRweDttYXJnaW4tdG9wOi00cHg7cmlnaHQ6MDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC13e2xlZnQ6MDttYXJnaW4tbGVmdDotNHB4O21hcmdpbi10b3A6LTRweDt0b3A6NTAlfQouamNyb3AtaGFuZGxlLm9yZC1ud3tsZWZ0OjA7bWFyZ2luLWxlZnQ6LTRweDttYXJnaW4tdG9wOi00cHg7dG9wOjB9Ci5qY3JvcC1oYW5kbGUub3JkLW5le21hcmdpbi1yaWdodDotNHB4O21hcmdpbi10b3A6LTRweDtyaWdodDowO3RvcDowfQouamNyb3AtaGFuZGxlLm9yZC1zZXtib3R0b206MDttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWhhbmRsZS5vcmQtc3d7Ym90dG9tOjA7bGVmdDowO21hcmdpbi1ib3R0b206LTRweDttYXJnaW4tbGVmdDotNHB4fQouamNyb3AtZHJhZ2Jhci5vcmQtbiwgLmpjcm9wLWRyYWdiYXIub3JkLXN7aGVpZ2h0OjdweDt3aWR0aDoxMDAlfQouamNyb3AtZHJhZ2Jhci5vcmQtZSwgLmpjcm9wLWRyYWdiYXIub3JkLXd7aGVpZ2h0OjEwMCU7d2lkdGg6N3B4fQouamNyb3AtZHJhZ2Jhci5vcmQtbnttYXJnaW4tdG9wOi00cHh9Ci5qY3JvcC1kcmFnYmFyLm9yZC1ze2JvdHRvbTowO21hcmdpbi1ib3R0b206LTRweH0KLmpjcm9wLWRyYWdiYXIub3JkLWV7bWFyZ2luLXJpZ2h0Oi00cHg7cmlnaHQ6MH0KLmpjcm9wLWRyYWdiYXIub3JkLXd7bWFyZ2luLWxlZnQ6LTRweH0KLmpjcm9wLWxpZ2h0IC5qY3JvcC12bGluZSwgLmpjcm9wLWxpZ2h0IC5qY3JvcC1obGluZXtiYWNrZ3JvdW5kOiNmZmZmZmY7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzApIWltcG9ydGFudDtvcGFjaXR5Oi43MCFpbXBvcnRhbnR9Ci5qY3JvcC1saWdodCAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLWNvbG9yOiNGRkY7Ym9yZGVyLXJhZGl1czozcHh9Ci5qY3JvcC1kYXJrIC5qY3JvcC12bGluZSwgLmpjcm9wLWRhcmsgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6IzAwMDtmaWx0ZXI6YWxwaGEob3BhY2l0eT03MCkhaW1wb3J0YW50O29wYWNpdHk6LjchaW1wb3J0YW50fQouamNyb3AtZGFyayAuamNyb3AtaGFuZGxley1tb3otYm9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czozcHh9Ci5zb2xpZC1saW5lIC5qY3JvcC12bGluZSwgLnNvbGlkLWxpbmUgLmpjcm9wLWhsaW5le2JhY2tncm91bmQ6I0ZGRn0KLmpjcm9wLWhvbGRlciBpbWcsIGltZy5qY3JvcC1wcmV2aWV3e21heC13aWR0aDpub25lfQouamNyb3AtaG9sZGVyIGRpdntwb3NpdGlvbjpzdGF0aWN9Ci5qc29uZGlmZnBhdGNoLWRlbHRhe2ZvbnQtZmFtaWx5OkNvdXNpbmUsIHVpLW1vbm9zcGFjZSwgTW9uYWNvLCBNZXJsbywgbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW07bWFyZ2luOjA7cGFkZGluZzowIDAgMCAxMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1kZWx0YSBwcmV7Zm9udC1mYW1pbHk6Q291c2luZSwgdWktbW9ub3NwYWNlLCBNb25hY28sIE1lcmxvLCBtb25vc3BhY2U7Zm9udC1zaXplOjEycHg7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWJsb2NrfQp1bC5qc29uZGlmZnBhdGNoLWRlbHRhe2xpc3Qtc3R5bGUtdHlwZTpub25lO3BhZGRpbmc6MCAwIDAgMjBweDttYXJnaW46MH0KLmpzb25kaWZmcGF0Y2gtZGVsdGEgdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7cGFkZGluZzowIDAgMCAyMHB4O21hcmdpbjowfQouanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lLCAuanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC12YWx1ZSBwcmUsIC5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXJpZ2h0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtYWRkZWR7YmFja2dyb3VuZDojZTBmNWM2fQouanNvbmRpZmZwYXRjaC1kZWxldGVkIC5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWUsIC5qc29uZGlmZnBhdGNoLWRlbGV0ZWQgcHJlLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1sZWZ0LXZhbHVlIHByZSwgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtZGVsZXRlZHtiYWNrZ3JvdW5kOiNmZWQzZDM7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb257Y29sb3I6IzZiNzY4NX0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXt0cmFuc2l0aW9uOmFsbCAwLjNzOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcztvdmVyZmxvdy15OmhpZGRlbn0KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXNob3dpbmcgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtc2hvd2luZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkZGVuIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGRlbiAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRpbmcgLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUsIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1oaWRkZW4gLmpzb25kaWZmcGF0Y2gtbW92ZWRlc3RpbmF0aW9uID4gLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTpibG9ja30KLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLXZpc2libGUgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtdmlzaWJsZSAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjEwMHB4fQouanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZCwgLmpzb25kaWZmcGF0Y2gtdW5jaGFuZ2VkLWhpZGluZyAuanNvbmRpZmZwYXRjaC1tb3ZlZGVzdGluYXRpb24gPiAuanNvbmRpZmZwYXRjaC12YWx1ZXttYXgtaGVpZ2h0OjB9Ci5qc29uZGlmZnBhdGNoLXVuY2hhbmdlZC1zaG93aW5nIC5qc29uZGlmZnBhdGNoLWFycm93LCAuanNvbmRpZmZwYXRjaC11bmNoYW5nZWQtaGlkaW5nIC5qc29uZGlmZnBhdGNoLWFycm93e2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtdmFsdWV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXByb3BlcnR5LW5hbWV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1cHg7dmVydGljYWwtYWxpZ246dG9wfQouanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzonfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtYXJyYXkgPiAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lOmFmdGVye2NvbnRlbnQ6JzpbJ30KLmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10sJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmJlZm9yZXtjb250ZW50OidbJ30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLWFycmF5OmFmdGVye2NvbnRlbnQ6J10nfQouanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0ID4gLmpzb25kaWZmcGF0Y2gtcHJvcGVydHktbmFtZTphZnRlcntjb250ZW50Oic6eyd9Ci5qc29uZGlmZnBhdGNoLWNoaWxkLW5vZGUtdHlwZS1vYmplY3Q6YWZ0ZXJ7Y29udGVudDonfSwnfQpkaXYuanNvbmRpZmZwYXRjaC1jaGlsZC1ub2RlLXR5cGUtb2JqZWN0OmJlZm9yZXtjb250ZW50Oid7J30KZGl2Lmpzb25kaWZmcGF0Y2gtY2hpbGQtbm9kZS10eXBlLW9iamVjdDphZnRlcntjb250ZW50Oid9J30KLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6JywnfQpsaTpsYXN0LWNoaWxkID4gLmpzb25kaWZmcGF0Y2gtdmFsdWUgcHJlOmFmdGVyLCAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCA+IC5qc29uZGlmZnBhdGNoLWxlZnQtdmFsdWUgcHJlOmFmdGVye2NvbnRlbnQ6Jyd9Ci5qc29uZGlmZnBhdGNoLW1vZGlmaWVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6aW5saW5lLWJsb2NrfQouanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1yaWdodC12YWx1ZXttYXJnaW4tbGVmdDo1cHh9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLXZhbHVle2Rpc3BsYXk6bm9uZX0KLmpzb25kaWZmcGF0Y2gtbW92ZWQgLmpzb25kaWZmcGF0Y2gtbW92ZWQtZGVzdGluYXRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDojZmZlZjkxO2NvbG9yOiM0ZDVhNmF9Ci5qc29uZGlmZnBhdGNoLW1vdmVkIC5qc29uZGlmZnBhdGNoLW1vdmVkLWRlc3RpbmF0aW9uOmJlZm9yZXtjb250ZW50OicgPT4gJ30KdWwuanNvbmRpZmZwYXRjaC10ZXh0ZGlmZntwYWRkaW5nOjB9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxvY2F0aW9ue2NvbG9yOiM4ODkyOWY7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjYwcHh9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2t9Ci5qc29uZGlmZnBhdGNoLXRleHRkaWZmLWxpbmUtbnVtYmVyOmFmdGVye2NvbnRlbnQ6JywnfQouanNvbmRpZmZwYXRjaC1lcnJvcntiYWNrZ3JvdW5kOiNkNjJjNDk7Y29sb3I6d2hpdGU7Zm9udC13ZWlnaHQ6Ym9sZH0KQGZvbnQtZmFjZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7c3JjOnVybCgiZm91bmRhdGlvbi1pY29ucy53b2ZmIikgZm9ybWF0KCJ3b2ZmIiksIHVybCgiZm91bmRhdGlvbi1pY29ucy50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQouZmktYWRkcmVzcy1ib29rOmJlZm9yZSwgLmZpLWFsZXJ0OmJlZm9yZSwgLmZpLWFsaWduLWNlbnRlcjpiZWZvcmUsIC5maS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSwgLmZpLWFsaWduLWxlZnQ6YmVmb3JlLCAuZmktYWxpZ24tcmlnaHQ6YmVmb3JlLCAuZmktYW5jaG9yOmJlZm9yZSwgLmZpLWFubm90YXRlOmJlZm9yZSwgLmZpLWFyY2hpdmU6YmVmb3JlLCAuZmktYXJyb3ctZG93bjpiZWZvcmUsIC5maS1hcnJvdy1sZWZ0OmJlZm9yZSwgLmZpLWFycm93LXJpZ2h0OmJlZm9yZSwgLmZpLWFycm93LXVwOmJlZm9yZSwgLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmUsIC5maS1hcnJvd3MtZXhwYW5kOmJlZm9yZSwgLmZpLWFycm93cy1pbjpiZWZvcmUsIC5maS1hcnJvd3Mtb3V0OmJlZm9yZSwgLmZpLWFzbDpiZWZvcmUsIC5maS1hc3RlcmlzazpiZWZvcmUsIC5maS1hdC1zaWduOmJlZm9yZSwgLmZpLWJhY2tncm91bmQtY29sb3I6YmVmb3JlLCAuZmktYmF0dGVyeS1lbXB0eTpiZWZvcmUsIC5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlLCAuZmktYmF0dGVyeS1oYWxmOmJlZm9yZSwgLmZpLWJpdGNvaW4tY2lyY2xlOmJlZm9yZSwgLmZpLWJpdGNvaW46YmVmb3JlLCAuZmktYmxpbmQ6YmVmb3JlLCAuZmktYmx1ZXRvb3RoOmJlZm9yZSwgLmZpLWJvbGQ6YmVmb3JlLCAuZmktYm9vay1ib29rbWFyazpiZWZvcmUsIC5maS1ib29rOmJlZm9yZSwgLmZpLWJvb2ttYXJrOmJlZm9yZSwgLmZpLWJyYWlsbGU6YmVmb3JlLCAuZmktYnVyc3QtbmV3OmJlZm9yZSwgLmZpLWJ1cnN0LXNhbGU6YmVmb3JlLCAuZmktYnVyc3Q6YmVmb3JlLCAuZmktY2FsZW5kYXI6YmVmb3JlLCAuZmktY2FtZXJhOmJlZm9yZSwgLmZpLWNoZWNrOmJlZm9yZSwgLmZpLWNoZWNrYm94OmJlZm9yZSwgLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmUsIC5maS1jbGlwYm9hcmQtcGVuY2lsOmJlZm9yZSwgLmZpLWNsaXBib2FyZDpiZWZvcmUsIC5maS1jbG9jazpiZWZvcmUsIC5maS1jbG9zZWQtY2FwdGlvbjpiZWZvcmUsIC5maS1jbG91ZDpiZWZvcmUsIC5maS1jb21tZW50LW1pbnVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtcXVvdGVzOmJlZm9yZSwgLmZpLWNvbW1lbnQtdmlkZW86YmVmb3JlLCAuZmktY29tbWVudDpiZWZvcmUsIC5maS1jb21tZW50czpiZWZvcmUsIC5maS1jb21wYXNzOmJlZm9yZSwgLmZpLWNvbnRyYXN0OmJlZm9yZSwgLmZpLWNyZWRpdC1jYXJkOmJlZm9yZSwgLmZpLWNyb3A6YmVmb3JlLCAuZmktY3Jvd246YmVmb3JlLCAuZmktY3NzMzpiZWZvcmUsIC5maS1kYXRhYmFzZTpiZWZvcmUsIC5maS1kaWUtZml2ZTpiZWZvcmUsIC5maS1kaWUtZm91cjpiZWZvcmUsIC5maS1kaWUtb25lOmJlZm9yZSwgLmZpLWRpZS1zaXg6YmVmb3JlLCAuZmktZGllLXRocmVlOmJlZm9yZSwgLmZpLWRpZS10d286YmVmb3JlLCAuZmktZGlzbGlrZTpiZWZvcmUsIC5maS1kb2xsYXItYmlsbDpiZWZvcmUsIC5maS1kb2xsYXI6YmVmb3JlLCAuZmktZG93bmxvYWQ6YmVmb3JlLCAuZmktZWplY3Q6YmVmb3JlLCAuZmktZWxldmF0b3I6YmVmb3JlLCAuZmktZXVybzpiZWZvcmUsIC5maS1leWU6YmVmb3JlLCAuZmktZmFzdC1mb3J3YXJkOmJlZm9yZSwgLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3JlLCAuZmktZmVtYWxlOmJlZm9yZSwgLmZpLWZpbHRlcjpiZWZvcmUsIC5maS1maXJzdC1haWQ6YmVmb3JlLCAuZmktZmxhZzpiZWZvcmUsIC5maS1mb2xkZXItYWRkOmJlZm9yZSwgLmZpLWZvbGRlci1sb2NrOmJlZm9yZSwgLmZpLWZvbGRlcjpiZWZvcmUsIC5maS1mb290OmJlZm9yZSwgLmZpLWZvdW5kYXRpb246YmVmb3JlLCAuZmktZ3JhcGgtYmFyOmJlZm9yZSwgLmZpLWdyYXBoLWhvcml6b250YWw6YmVmb3JlLCAuZmktZ3JhcGgtcGllOmJlZm9yZSwgLmZpLWdyYXBoLXRyZW5kOmJlZm9yZSwgLmZpLWd1aWRlLWRvZzpiZWZvcmUsIC5maS1oZWFyaW5nLWFpZDpiZWZvcmUsIC5maS1oZWFydDpiZWZvcmUsIC5maS1ob21lOmJlZm9yZSwgLmZpLWh0bWw1OmJlZm9yZSwgLmZpLWluZGVudC1sZXNzOmJlZm9yZSwgLmZpLWluZGVudC1tb3JlOmJlZm9yZSwgLmZpLWluZm86YmVmb3JlLCAuZmktaXRhbGljOmJlZm9yZSwgLmZpLWtleTpiZWZvcmUsIC5maS1sYXB0b3A6YmVmb3JlLCAuZmktbGF5b3V0OmJlZm9yZSwgLmZpLWxpZ2h0YnVsYjpiZWZvcmUsIC5maS1saWtlOmJlZm9yZSwgLmZpLWxpbms6YmVmb3JlLCAuZmktbGlzdC1idWxsZXQ6YmVmb3JlLCAuZmktbGlzdC1udW1iZXI6YmVmb3JlLCAuZmktbGlzdC10aHVtYm5haWxzOmJlZm9yZSwgLmZpLWxpc3Q6YmVmb3JlLCAuZmktbG9jazpiZWZvcmUsIC5maS1sb29wOmJlZm9yZSwgLmZpLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlLCAuZmktbWFpbDpiZWZvcmUsIC5maS1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS1tYWxlLXN5bWJvbDpiZWZvcmUsIC5maS1tYWxlOmJlZm9yZSwgLmZpLW1hcDpiZWZvcmUsIC5maS1tYXJrZXI6YmVmb3JlLCAuZmktbWVnYXBob25lOmJlZm9yZSwgLmZpLW1pY3JvcGhvbmU6YmVmb3JlLCAuZmktbWludXMtY2lyY2xlOmJlZm9yZSwgLmZpLW1pbnVzOmJlZm9yZSwgLmZpLW1vYmlsZS1zaWduYWw6YmVmb3JlLCAuZmktbW9iaWxlOmJlZm9yZSwgLmZpLW1vbml0b3I6YmVmb3JlLCAuZmktbW91bnRhaW5zOmJlZm9yZSwgLmZpLW11c2ljOmJlZm9yZSwgLmZpLW5leHQ6YmVmb3JlLCAuZmktbm8tZG9nczpiZWZvcmUsIC5maS1uby1zbW9raW5nOmJlZm9yZSwgLmZpLXBhZ2UtYWRkOmJlZm9yZSwgLmZpLXBhZ2UtY29weTpiZWZvcmUsIC5maS1wYWdlLWNzdjpiZWZvcmUsIC5maS1wYWdlLWRlbGV0ZTpiZWZvcmUsIC5maS1wYWdlLWRvYzpiZWZvcmUsIC5maS1wYWdlLWVkaXQ6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZSwgLmZpLXBhZ2UtZXhwb3J0LWRvYzpiZWZvcmUsIC5maS1wYWdlLWV4cG9ydC1wZGY6YmVmb3JlLCAuZmktcGFnZS1leHBvcnQ6YmVmb3JlLCAuZmktcGFnZS1maWxsZWQ6YmVmb3JlLCAuZmktcGFnZS1tdWx0aXBsZTpiZWZvcmUsIC5maS1wYWdlLXBkZjpiZWZvcmUsIC5maS1wYWdlLXJlbW92ZTpiZWZvcmUsIC5maS1wYWdlLXNlYXJjaDpiZWZvcmUsIC5maS1wYWdlOmJlZm9yZSwgLmZpLXBhaW50LWJ1Y2tldDpiZWZvcmUsIC5maS1wYXBlcmNsaXA6YmVmb3JlLCAuZmktcGF1c2U6YmVmb3JlLCAuZmktcGF3OmJlZm9yZSwgLmZpLXBheXBhbDpiZWZvcmUsIC5maS1wZW5jaWw6YmVmb3JlLCAuZmktcGhvdG86YmVmb3JlLCAuZmktcGxheS1jaXJjbGU6YmVmb3JlLCAuZmktcGxheS12aWRlbzpiZWZvcmUsIC5maS1wbGF5OmJlZm9yZSwgLmZpLXBsdXM6YmVmb3JlLCAuZmktcG91bmQ6YmVmb3JlLCAuZmktcG93ZXI6YmVmb3JlLCAuZmktcHJldmlvdXM6YmVmb3JlLCAuZmktcHJpY2UtdGFnOmJlZm9yZSwgLmZpLXByaWNldGFnLW11bHRpcGxlOmJlZm9yZSwgLmZpLXByaW50OmJlZm9yZSwgLmZpLXByb2hpYml0ZWQ6YmVmb3JlLCAuZmktcHJvamVjdGlvbi1zY3JlZW46YmVmb3JlLCAuZmktcHV6emxlOmJlZm9yZSwgLmZpLXF1b3RlOmJlZm9yZSwgLmZpLXJlY29yZDpiZWZvcmUsIC5maS1yZWZyZXNoOmJlZm9yZSwgLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZSwgLmZpLXJlc3VsdHM6YmVmb3JlLCAuZmktcmV3aW5kLXRlbjpiZWZvcmUsIC5maS1yZXdpbmQ6YmVmb3JlLCAuZmktcnNzOmJlZm9yZSwgLmZpLXNhZmV0eS1jb25lOmJlZm9yZSwgLmZpLXNhdmU6YmVmb3JlLCAuZmktc2hhcmU6YmVmb3JlLCAuZmktc2hlcmlmZi1iYWRnZTpiZWZvcmUsIC5maS1zaGllbGQ6YmVmb3JlLCAuZmktc2hvcHBpbmctYmFnOmJlZm9yZSwgLmZpLXNob3BwaW5nLWNhcnQ6YmVmb3JlLCAuZmktc2h1ZmZsZTpiZWZvcmUsIC5maS1zb2NpYWwtYW5kcm9pZDpiZWZvcmUsIC5maS1zb2NpYWwtYXBwbGU6YmVmb3JlLCAuZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZSwgLmZpLXNvY2lhbC1naXRodWI6YmVmb3JlLCAuZmktc29jaWFsLXNreXBlOmJlZm9yZSwgLmZpLXNvY2lhbC1zdGFjay1vdmVyZmxvdzpiZWZvcmUsIC5maS1zb2NpYWwtdHdpdHRlcjpiZWZvcmUsIC5maS1zb2NpYWwtd2luZG93czpiZWZvcmUsIC5maS1zb2NpYWwteW91dHViZTpiZWZvcmUsIC5maS1zb3VuZDpiZWZvcmUsIC5maS1zdGFyOmJlZm9yZSwgLmZpLXN0b3A6YmVmb3JlLCAuZmktc3RyaWtldGhyb3VnaDpiZWZvcmUsIC5maS1zdWJzY3JpcHQ6YmVmb3JlLCAuZmktc3VwZXJzY3JpcHQ6YmVmb3JlLCAuZmktdGFibGV0LWxhbmRzY2FwZTpiZWZvcmUsIC5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3JlLCAuZmktdGFyZ2V0LXR3bzpiZWZvcmUsIC5maS10YXJnZXQ6YmVmb3JlLCAuZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3JlLCAuZmktdGVsZXBob25lOmJlZm9yZSwgLmZpLXRleHQtY29sb3I6YmVmb3JlLCAuZmktdGh1bWJuYWlsczpiZWZvcmUsIC5maS10aWNrZXQ6YmVmb3JlLCAuZmktdG9yc28tYnVzaW5lc3M6YmVmb3JlLCAuZmktdG9yc28tZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGwtZmVtYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1hbGw6YmVmb3JlLCAuZmktdG9yc29zLWZlbWFsZS1tYWxlOmJlZm9yZSwgLmZpLXRvcnNvcy1tYWxlLWZlbWFsZTpiZWZvcmUsIC5maS10b3Jzb3M6YmVmb3JlLCAuZmktdHJhc2g6YmVmb3JlLCAuZmktdHJlZXM6YmVmb3JlLCAuZmktdHJvcGh5OmJlZm9yZSwgLmZpLXVuZGVybGluZTpiZWZvcmUsIC5maS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSwgLmZpLXVubGluazpiZWZvcmUsIC5maS11bmxvY2s6YmVmb3JlLCAuZmktdXBsb2FkLWNsb3VkOmJlZm9yZSwgLmZpLXVwbG9hZDpiZWZvcmUsIC5maS11c2I6YmVmb3JlLCAuZmktdmlkZW86YmVmb3JlLCAuZmktdm9sdW1lLW5vbmU6YmVmb3JlLCAuZmktdm9sdW1lLXN0cmlrZTpiZWZvcmUsIC5maS12b2x1bWU6YmVmb3JlLCAuZmktd2ViOmJlZm9yZSwgLmZpLXdoZWVsY2hhaXI6YmVmb3JlLCAuZmktd2lkZ2V0OmJlZm9yZSwgLmZpLXdyZW5jaDpiZWZvcmUsIC5maS14LWNpcmNsZTpiZWZvcmUsIC5maS14OmJlZm9yZSwgLmZpLXllbjpiZWZvcmUsIC5maS16b29tLWluOmJlZm9yZSwgLmZpLXpvb20tb3V0OmJlZm9yZXtmb250LWZhbWlseToiZm91bmRhdGlvbi1pY29ucyI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtsaW5lLWhlaWdodDoxOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9Ci5maS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0KLmZpLWFsZXJ0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9Ci5maS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0KLmZpLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0KLmZpLWFsaWduLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0KLmZpLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9Ci5maS1hbmNob3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0KLmZpLWFubm90YXRlOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9Ci5maS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9Ci5maS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9Ci5maS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9Ci5maS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGIifQouZmktYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTBjIn0KLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmV7Y29udGVudDoiXGYxMGQifQouZmktYXJyb3dzLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYxMGUifQouZmktYXJyb3dzLWluOmJlZm9yZXtjb250ZW50OiJcZjEwZiJ9Ci5maS1hcnJvd3Mtb3V0OmJlZm9yZXtjb250ZW50OiJcZjExMCJ9Ci5maS1hc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0KLmZpLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjExMiJ9Ci5maS1hdC1zaWduOmJlZm9yZXtjb250ZW50OiJcZjExMyJ9Ci5maS1iYWNrZ3JvdW5kLWNvbG9yOmJlZm9yZXtjb250ZW50OiJcZjExNCJ9Ci5maS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjExNSJ9Ci5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTE2In0KLmZpLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYxMTcifQouZmktYml0Y29pbi1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0KLmZpLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0KLmZpLWJsaW5kOmJlZm9yZXtjb250ZW50OiJcZjExYSJ9Ci5maS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0KLmZpLWJvbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFjIn0KLmZpLWJvb2stYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxmMTFkIn0KLmZpLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0KLmZpLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjExZiJ9Ci5maS1icmFpbGxlOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9Ci5maS1idXJzdC1uZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0KLmZpLWJ1cnN0LXNhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0KLmZpLWJ1cnN0OmJlZm9yZXtjb250ZW50OiJcZjEyMyJ9Ci5maS1jYWxlbmRhcjpiZWZvcmV7Y29udGVudDoiXGYxMjQifQouZmktY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjEyNSJ9Ci5maS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYxMjYifQouZmktY2hlY2tib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0KLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmV7Y29udGVudDoiXGYxMjgifQouZmktY2xpcGJvYXJkLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYxMjkifQouZmktY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9Ci5maS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYxMmIifQouZmktY2xvc2VkLWNhcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0KLmZpLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9Ci5maS1jb21tZW50LW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9Ci5maS1jb21tZW50LXF1b3RlczpiZWZvcmV7Y29udGVudDoiXGYxMmYifQouZmktY29tbWVudC12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxMzAifQouZmktY29tbWVudDpiZWZvcmV7Y29udGVudDoiXGYxMzEifQouZmktY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0KLmZpLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0KLmZpLWNvbnRyYXN0OmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9Ci5maS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMzUifQouZmktY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMzYifQouZmktY3Jvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0KLmZpLWNzczM6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0KLmZpLWRhdGFiYXNlOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9Ci5maS1kaWUtZml2ZTpiZWZvcmV7Y29udGVudDoiXGYxM2EifQouZmktZGllLWZvdXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0KLmZpLWRpZS1vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNjIn0KLmZpLWRpZS1zaXg6YmVmb3Jle2NvbnRlbnQ6IlxmMTNkIn0KLmZpLWRpZS10aHJlZTpiZWZvcmV7Y29udGVudDoiXGYxM2UifQouZmktZGllLXR3bzpiZWZvcmV7Y29udGVudDoiXGYxM2YifQouZmktZGlzbGlrZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifQouZmktZG9sbGFyLWJpbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0KLmZpLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGYxNDIifQouZmktZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0KLmZpLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9Ci5maS1lbGV2YXRvcjpiZWZvcmV7Y29udGVudDoiXGYxNDUifQouZmktZXVybzpiZWZvcmV7Y29udGVudDoiXGYxNDYifQouZmktZXllOmJlZm9yZXtjb250ZW50OiJcZjE0NyJ9Ci5maS1mYXN0LWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ4In0KLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0KLmZpLWZlbWFsZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifQouZmktZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9Ci5maS1maXJzdC1haWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRjIn0KLmZpLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0KLmZpLWZvbGRlci1hZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0KLmZpLWZvbGRlci1sb2NrOmJlZm9yZXtjb250ZW50OiJcZjE0ZiJ9Ci5maS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0KLmZpLWZvb3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTUxIn0KLmZpLWZvdW5kYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0KLmZpLWdyYXBoLWJhcjpiZWZvcmV7Y29udGVudDoiXGYxNTMifQouZmktZ3JhcGgtaG9yaXpvbnRhbDpiZWZvcmV7Y29udGVudDoiXGYxNTQifQouZmktZ3JhcGgtcGllOmJlZm9yZXtjb250ZW50OiJcZjE1NSJ9Ci5maS1ncmFwaC10cmVuZDpiZWZvcmV7Y29udGVudDoiXGYxNTYifQouZmktZ3VpZGUtZG9nOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9Ci5maS1oZWFyaW5nLWFpZDpiZWZvcmV7Y29udGVudDoiXGYxNTgifQouZmktaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTU5In0KLmZpLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0KLmZpLWh0bWw1OmJlZm9yZXtjb250ZW50OiJcZjE1YiJ9Ci5maS1pbmRlbnQtbGVzczpiZWZvcmV7Y29udGVudDoiXGYxNWMifQouZmktaW5kZW50LW1vcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0KLmZpLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTVlIn0KLmZpLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYxNWYifQouZmkta2V5OmJlZm9yZXtjb250ZW50OiJcZjE2MCJ9Ci5maS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0KLmZpLWxheW91dDpiZWZvcmV7Y29udGVudDoiXGYxNjIifQouZmktbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjE2MyJ9Ci5maS1saWtlOmJlZm9yZXtjb250ZW50OiJcZjE2NCJ9Ci5maS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9Ci5maS1saXN0LWJ1bGxldDpiZWZvcmV7Y29udGVudDoiXGYxNjYifQouZmktbGlzdC1udW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0KLmZpLWxpc3QtdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxNjgifQouZmktbGlzdDpiZWZvcmV7Y29udGVudDoiXGYxNjkifQouZmktbG9jazpiZWZvcmV7Y29udGVudDoiXGYxNmEifQouZmktbG9vcDpiZWZvcmV7Y29udGVudDoiXGYxNmIifQouZmktbWFnbmlmeWluZy1nbGFzczpiZWZvcmV7Y29udGVudDoiXGYxNmMifQouZmktbWFpbDpiZWZvcmV7Y29udGVudDoiXGYxNmQifQouZmktbWFsZS1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0KLmZpLW1hbGUtc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjE2ZiJ9Ci5maS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE3MCJ9Ci5maS1tYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTcxIn0KLmZpLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGYxNzIifQouZmktbWVnYXBob25lOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9Ci5maS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjE3NCJ9Ci5maS1taW51cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc1In0KLmZpLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9Ci5maS1tb2JpbGUtc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZjE3NyJ9Ci5maS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc4In0KLmZpLW1vbml0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0KLmZpLW1vdW50YWluczpiZWZvcmV7Y29udGVudDoiXGYxN2EifQouZmktbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0KLmZpLW5leHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdjIn0KLmZpLW5vLWRvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTdkIn0KLmZpLW5vLXNtb2tpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0KLmZpLXBhZ2UtYWRkOmJlZm9yZXtjb250ZW50OiJcZjE3ZiJ9Ci5maS1wYWdlLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMTgwIn0KLmZpLXBhZ2UtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9Ci5maS1wYWdlLWRlbGV0ZTpiZWZvcmV7Y29udGVudDoiXGYxODIifQouZmktcGFnZS1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTgzIn0KLmZpLXBhZ2UtZWRpdDpiZWZvcmV7Y29udGVudDoiXGYxODQifQouZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9Ci5maS1wYWdlLWV4cG9ydC1kb2M6YmVmb3Jle2NvbnRlbnQ6IlxmMTg2In0KLmZpLXBhZ2UtZXhwb3J0LXBkZjpiZWZvcmV7Y29udGVudDoiXGYxODcifQouZmktcGFnZS1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTg4In0KLmZpLXBhZ2UtZmlsbGVkOmJlZm9yZXtjb250ZW50OiJcZjE4OSJ9Ci5maS1wYWdlLW11bHRpcGxlOmJlZm9yZXtjb250ZW50OiJcZjE4YSJ9Ci5maS1wYWdlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxOGIifQouZmktcGFnZS1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMThjIn0KLmZpLXBhZ2Utc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjE4ZCJ9Ci5maS1wYWdlOmJlZm9yZXtjb250ZW50OiJcZjE4ZSJ9Ci5maS1wYWludC1idWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMThmIn0KLmZpLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGYxOTAifQouZmktcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0KLmZpLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxOTIifQouZmktcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9Ci5maS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0KLmZpLXBob3RvOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9Ci5maS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTYifQouZmktcGxheS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxOTcifQouZmktcGxheTpiZWZvcmV7Y29udGVudDoiXGYxOTgifQouZmktcGx1czpiZWZvcmV7Y29udGVudDoiXGYxOTkifQouZmktcG91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlhIn0KLmZpLXBvd2VyOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9Ci5maS1wcmV2aW91czpiZWZvcmV7Y29udGVudDoiXGYxOWMifQouZmktcHJpY2UtdGFnOmJlZm9yZXtjb250ZW50OiJcZjE5ZCJ9Ci5maS1wcmljZXRhZy1tdWx0aXBsZTpiZWZvcmV7Y29udGVudDoiXGYxOWUifQouZmktcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTlmIn0KLmZpLXByb2hpYml0ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0KLmZpLXByb2plY3Rpb24tc2NyZWVuOmJlZm9yZXtjb250ZW50OiJcZjFhMSJ9Ci5maS1wdXp6bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0KLmZpLXF1b3RlOmJlZm9yZXtjb250ZW50OiJcZjFhMyJ9Ci5maS1yZWNvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE0In0KLmZpLXJlZnJlc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWE1In0KLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZXtjb250ZW50OiJcZjFhNiJ9Ci5maS1yZXN1bHRzOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9Ci5maS1yZXdpbmQtdGVuOmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9Ci5maS1yZXdpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE5In0KLmZpLXJzczpiZWZvcmV7Y29udGVudDoiXGYxYWEifQouZmktc2FmZXR5LWNvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0KLmZpLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0KLmZpLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjFhZCJ9Ci5maS1zaGVyaWZmLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9Ci5maS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWFmIn0KLmZpLXNob3BwaW5nLWJhZzpiZWZvcmV7Y29udGVudDoiXGYxYjAifQouZmktc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYxYjEifQouZmktc2h1ZmZsZTpiZWZvcmV7Y29udGVudDoiXGYxYjIifQouZmktc29jaWFsLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0KLmZpLXNvY2lhbC1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifQouZmktc29jaWFsLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjFjNCJ9Ci5maS1zb2NpYWwtZ2l0aHViOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9Ci5maS1zb2NpYWwtcmRpbzpiZWZvcmV7Y29udGVudDoiXGYxZDcifQouZmktc29jaWFsLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxZDgifQouZmktc29jaWFsLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9Ci5maS1zb2NpYWwtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMWRmIn0KLmZpLXNvY2lhbC10d2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjFlNCJ9Ci5maS1zb2NpYWwtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxZTYifQouZmktc29jaWFsLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWVhIn0KLmZpLXNvdW5kOmJlZm9yZXtjb250ZW50OiJcZjFlZCJ9Ci5maS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjFlZSJ9Ci5maS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjFlZiJ9Ci5maS1zdHJpa2V0aHJvdWdoOmJlZm9yZXtjb250ZW50OiJcZjFmMCJ9Ci5maS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0KLmZpLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9Ci5maS10YWJsZXQtbGFuZHNjYXBlOmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9Ci5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0KLmZpLXRhcmdldC10d286YmVmb3Jle2NvbnRlbnQ6IlxmMWY1In0KLmZpLXRhcmdldDpiZWZvcmV7Y29udGVudDoiXGYxZjYifQouZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWY3In0KLmZpLXRlbGVwaG9uZTpiZWZvcmV7Y29udGVudDoiXGYxZjgifQouZmktdGV4dC1jb2xvcjpiZWZvcmV7Y29udGVudDoiXGYxZjkifQouZmktdGh1bWJuYWlsczpiZWZvcmV7Y29udGVudDoiXGYxZmEifQouZmktdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9Ci5maS10b3Jzby1idXNpbmVzczpiZWZvcmV7Y29udGVudDoiXGYxZmMifQouZmktdG9yc28tZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9Ci5maS10b3JzbzpiZWZvcmV7Y29udGVudDoiXGYxZmUifQouZmktdG9yc29zLWFsbC1mZW1hbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWZmIn0KLmZpLXRvcnNvcy1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0KLmZpLXRvcnNvcy1mZW1hbGUtbWFsZTpiZWZvcmV7Y29udGVudDoiXGYyMDEifQouZmktdG9yc29zLW1hbGUtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9Ci5maS10b3Jzb3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0KLmZpLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9Ci5maS10cmVlczpiZWZvcmV7Y29udGVudDoiXGYyMDUifQouZmktdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9Ci5maS11bmRlcmxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0KLmZpLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjA4In0KLmZpLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYyMDkifQouZmktdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9Ci5maS11cGxvYWQtY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0KLmZpLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYyMGMifQouZmktdXNiOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9Ci5maS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYyMGUifQouZmktdm9sdW1lLW5vbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjBmIn0KLmZpLXZvbHVtZS1zdHJpa2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0KLmZpLXZvbHVtZTpiZWZvcmV7Y29udGVudDoiXGYyMTEifQouZmktd2ViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9Ci5maS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9Ci5maS13aWRnZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE0In0KLmZpLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYyMTUifQouZmkteC1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0KLmZpLXg6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0KLmZpLXllbjpiZWZvcmV7Y29udGVudDoiXGYyMTgifQouZmktem9vbS1pbjpiZWZvcmV7Y29udGVudDoiXGYyMTkifQouZmktem9vbS1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFhIn0KI2N3LW5vdGVze3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MjBweDt0b3A6MjBweDt3aWR0aDoyOTBweDtwYWRkaW5nOjBweDt6LWluZGV4OjMwMDJ9CiNjdy1ub3RlcyA+IGRpdnttYXJnaW4tYm90dG9tOjE1cHg7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjkwcHg7cGFkZGluZzoxNXB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgzNSwgNzksIDE0MywgMC45KTtib3gtc2hhZG93OjAgMCAwIDFweCB3aGl0ZTtjb2xvcjp3aGl0ZTtmb250LXNpemU6MTJwdDtsaW5lLWhlaWdodDoxNXB0O3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93OmhpZGRlbn0KI2N3LW5vdGVzID4gZGl2LmVycm9ye2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzQsIDExNCwgMTM0LCAwLjkpfQojY3ctbm90ZXMgPiBkaXYud2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMzMsIDEyNywgMC45KTtjb2xvcjpyZ2JhKDIwNCwgMTM0LCAxMywgMC45KX0KI2N3LW5vdGVzID4gZGl2Lm9re2JhY2tncm91bmQtY29sb3I6cmdiYSgyMjQsIDI0NSwgMTk4LCAwLjkpO2NvbG9yOiM2NTljMTN9Ci5teS1lcnJvciBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwgLm15LWVycm9yIHRleHRhcmVhLCAubXktZXJyb3IgYnV0dG9ue2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6Zm9jdXMsIC5teS1lcnJvciB0ZXh0YXJlYTpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9Ci5teS1lcnJvciAubGFiZWwsIC5teS1lcnJvciBsYWJlbCwgLm15LWVycm9ye2NvbG9yOiNlYTcyODYhaW1wb3J0YW50fQoubXktZXJyb3IgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3O2JhY2tncm91bmQtY29sb3I6I2ZlZDNkM30KLm15LWVycm9yIGlucHV0W3R5cGU9InJhbmdlIl06Zm9jdXMgOjotd2Via2l0LXNsaWRlci10aHVtYntib3JkZXI6MXB4IHNvbGlkICNlYTcyODY7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyOjFweCBzb2xpZCAjZWE3Mjg2IWltcG9ydGFudH0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgPiAuc2VsZWN0Mi1jaG9zZW57Y29sb3I6I2Q2MmM0OX0KLm15LWVycm9yIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2Uuc2VsZWN0Mi1kZWZhdWx0ID4gLnNlbGVjdDItY2hvc2Vue2NvbG9yOiNiOWMwY2J9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudDtiYWNrZ3JvdW5kOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSl9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZSAuc2VsZWN0Mi1hcnJvd3tib3JkZXItbGVmdDoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnQ7YmFja2dyb3VuZDojZmVkM2QzfQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3csIC5teS1lcnJvciAuc2VsZWN0Mi1kcm9wZG93bi1vcGVuLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3d7Ym9yZGVyLWxlZnQ6bm9uZSFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlc3tib3JkZXI6MXB4IHNvbGlkICNmY2MxYzchaW1wb3J0YW50fQoubXktZXJyb3IgLnNlbGVjdDItY29udGFpbmVyLW11bHRpLnNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSAuc2VsZWN0Mi1jaG9pY2Vze2JvcmRlcjoxcHggc29saWQgI2VhNzI4NiFpbXBvcnRhbnR9Ci5teS1lcnJvciAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcyAuc2VsZWN0Mi1zZWFyY2gtY2hvaWNle2JhY2tncm91bmQtY29sb3I6I2ZlZDNkMztjb2xvcjojZDYyYzQ5fQoubXktZXJyb3IgLnNlbGVjdDItZHJvcGRvd24tb3BlbiAuc2VsZWN0Mi1jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1MCwgMTcxLCAxODQsIDAuMzUpfQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZ3tjb2xvcjojZWE3Mjg2fQoubXktZXJyb3IgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmVkM2QzO2NvbG9yOiNkNjJjNDl9Ci5teS1lcnJvciA+IGRpdi5teS1tb2RhbHtib3JkZXItY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KTtib3gtc2hhZG93OjAgMCAxMXB4IDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjkyKSwgMCAwIDZweCByZ2JhKDE3MywgMzQsIDU3LCAwLjg1KX0KLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmUsIC5teS1lcnJvciA+IGRpdi5teS1tb2RhbC5ub3NlLXJpZ2h0OmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtdG9wOmJlZm9yZSwgLm15LWVycm9yID4gZGl2Lm15LW1vZGFsLm5vc2UtYm90dG9tOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMjUwLCAxNzEsIDE4NCwgMC4zNSk7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgyNTAsIDE3MSwgMTg0LCAwLjM1KX0KLm15LWVycm9yIC51aS1zbGlkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZmNjMWM3IWltcG9ydGFudH0KLm15LWVycm9yIC51aS1zbGlkZXItaGFuZGxle2JvcmRlcjoxcHggc29saWQgI2ZjYzFjNztiYWNrZ3JvdW5kOiNmZWQzZDN9Ci5teS1lcnJvciAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3tib3JkZXI6MXB4IHNvbGlkICNlYTcyODZ9CkBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0NvdXNpbmUnO3NyYzp1cmwoJ2NvdXNpbmUtcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsfQojY3ctYm9keXttYXJnaW46MCBhdXRvIDAgYXV0bztmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjRlbTt0ZXh0LXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247Zm9udC13ZWlnaHQ6MzAwO2JhY2tncm91bmQtY29sb3I6d2hpdGV9CiNjdy1ib2R5IC5jdy1idXN5e2hlaWdodDo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjMwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pL2xvYWRlci1iYXIyLmdpZik7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9CiNjdy1ib2R5IGlucHV0LCAjY3ctYm9keSBidXR0b24sICNjdy1ib2R5IHRleHRhcmVhe2ZvbnQtd2VpZ2h0OmluaGVyaXR9CiNjdy1ib2R5IC5teS1lcnJvci10aXB7Zm9udC1zaXplOjg1JTtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyk7cGFkZGluZzowcHggMCA2cHggMHB4O2xpbmUtaGVpZ2h0OjEuMmVtfQojY3ctYm9keSAubXktZXJyb3IgLnZhcmlhbnRzIC50YWcuYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZkZDtjb2xvcjpyZ2JhKDIwNCwwLDMyLDAuNyl9CiNjdy1ib2R5IC5teS1yb3cgaW5wdXQsIC5teS1yb3cgdGV4dGFyZWEsIC5teS1yb3cgc2VsZWN0LCAubXktcm93IC5idXR0b257bWFyZ2luOjB9CiNjdy1ib2R5IC5teS1yb3cgdGV4dGFyZWF7dmVydGljYWwtYWxpZ246dG9wfQojY3ctYm9keSAubXktcm93IC5teS1sYWJlbHtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuMWVtfQojY3ctYm9keSAubXktcm93IC5teS1zaG9ydGN1dHttYXJnaW46MCAwIDAgMC4yNWVtO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y29sb3I6IzU0ODFhMDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjAuNzt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zczstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzLCBib3JkZXIgMC4zczstb3BlcmEtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MsIGJvcmRlciAwLjNzOy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3M7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcywgYm9yZGVyIDAuM3N9CiNjdy1ib2R5IC5teS1yb3cgLm15LXNob3J0Y3V0OmhvdmVye29wYWNpdHk6MX0KI2N3LWJvZHkgLm15LXJvdyBkaXYubXktZXJyb3ItdGlwe3BhZGRpbmc6MC4zZW0gMCAwIDB9CiNjdy1ib2R5IC5teS1yb3cgc3Bhbi5teS1lcnJvci10aXB7cGFkZGluZzowfQojY3ctYm9keSAudWktc2VhcmNoe2JvcmRlci1yYWRpdXM6NTBweCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjIycHg7cGFkZGluZy1yaWdodDoyMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfQojY3ctYm9keSAudWktc2VhcmNoLWNsZWFye21hcmdpbjoxcHggMCAtMXB4IC0yMXB4O3Bvc2l0aW9uOnJlbGF0aXZlO29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcztjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjV9CiNjdy1ib2R5IC51aS1zZWFyY2guc21hbGwgKyAudWktc2VhcmNoLWNsZWFyICB7bWFyZ2luLWJvdHRvbTotMnB4fQojY3ctYm9keSAudWktc2VhcmNoLmJnLXllbGxvdyArIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjU7ZGlzcGxheTppbmxpbmUtYmxvY2t9CiNjdy1ib2R5IC51aS1zZWFyY2guYmcteWVsbG93ICsgLnVpLXNlYXJjaC1jbGVhcjpob3ZlcntvcGFjaXR5OjF9CiNjdy1ib2R5IC5teS1zZWFyY2ggaW5wdXQudWktc2VhcmNoe2JhY2tncm91bmQtY29sb3I6I0ZGRjA4OCFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNmZmNmNjMhaW1wb3J0YW50fQojY3ctYm9keSAubXktc2VhcmNoIC51aS1zZWFyY2gtY2xlYXJ7b3BhY2l0eTowLjUhaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0KI2N3LWJvZHkgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZXtmb250LXNpemU6OTAlO2xpbmUtaGVpZ2h0OjEuN2VtfQojY3ctbm90ZXN7dG9wOjUwcHh9CmJvZHk+c3Bhbi51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0KYnV0dG9uLm1hcmtmb2N1cywgIC5idXR0b24ubWFya2ZvY3Vze3Bvc2l0aW9uOnJlbGF0aXZlfQpidXR0b24ubWFya2ZvY3VzOmZvY3VzOmFmdGVyLCAuYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O3JpZ2h0OjNweDt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjNweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudDt6LWluZGV4OisyfQpib2R5LnRoZW1lLWRhcmt7ZmlsdGVyOmJyaWdodG5lc3MoMC45NikgaW52ZXJ0KCkgY29udHJhc3QoMC45KSBicmlnaHRuZXNzKDEuMjUpIGh1ZS1yb3RhdGUoMTgyZGVnKSBicmlnaHRuZXNzKDAuOSkgc2F0dXJhdGUoMS4yKX0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5e2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYn0KYm9keS50aGVtZS1kYXJrIGE6aG92ZXIsICBib2R5LnRoZW1lLWRhcmsgLnBzZXVkb2xpbms6aG92ZXIsICBib2R5LnRoZW1lLWRhcmsgLnBzZXVkb2J1dHRvbjpob3Zlcntjb2xvcjojMmU3ZGZmfQpib2R5LnRoZW1lLWRhcmsgLm15LXRhZ3MgLnRhZy5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDc2LDEwNCwxMjksMC4zNSl9CmJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRleHRdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAgYm9keS50aGVtZS1kYXJrIGlucHV0W3R5cGU9bnVtYmVyXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPWVtYWlsXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRlbF0sICBib2R5LnRoZW1lLWRhcmsgaW5wdXRbdHlwZT1kYXRlXSwgIGJvZHkudGhlbWUtZGFyayBpbnB1dFt0eXBlPXRpbWVdLCBib2R5LnRoZW1lLWRhcmsgdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayB0ZXh0YXJlYTpmb2N1c3tib3JkZXItY29sb3I6IzllY2RmOH0KYm9keS50aGVtZS1kYXJrIC5teS1lcnJvciBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSwgIGJvZHkudGhlbWUtZGFyayAubXktZXJyb3IgdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNmY2MxYzd9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItbXVsdGkgLnNlbGVjdDItY2hvaWNlcywgYm9keS50aGVtZS1kYXJrIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2V7Ym9yZGVyLWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93e2JvcmRlci1sZWZ0LWNvbG9yOiNkZmUzZTh9CmJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZSwgIGJvZHkudGhlbWUtZGFyayAuc2VsZWN0Mi1jb250YWluZXItYWN0aXZlIC5zZWxlY3QyLWNob2ljZXN7Ym9yZGVyLWNvbG9yOiM5ZWNkZjh9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjNmNWY4IWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAubC10YWIgYXtjb2xvcjojNGM1ZDZlIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAubC10YWIgYS5zeXN0ZW17Y29sb3I6IzQwNzMwMCFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgLmwtdGFiLmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZDhkZmU4IWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNsLWhlYWRlciAjbC1hcHB0YWJzLCBib2R5LnRoZW1lLWRhcmsgI2wtaGVhZGVyICNsLWFzaWRle2JvcmRlci10b3AtY29sb3I6I2NkZDVlMX0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5ICNsLWhlYWRlciAjbC1hc2lkZSAuYXNpZGUtYnRue2JvcmRlci1sZWZ0LWNvbG9yOiNjZGQ1ZTE7Y29sb3I6IzUyNTc1YiFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAjbC1oZWFkZXIgI2wtYXNpZGUgI2J0bi1jbG9zZS1hbGwtdGFic3tjb2xvcjojNTI1NzViIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5ICNsLWhlYWRlciAjbC1hc2lkZSAuYXNpZGUtYnRuIGF7Y29sb3I6IzUyNTc1YiFpbXBvcnRhbnR9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgI3N2Zy11bmF1dGh7c3Ryb2tlOiNmZjU0MDAhaW1wb3J0YW50fQojbC1oZWFkZXIgI3N2Zy11bmF1dGh7c3Ryb2tlOiNmZjY0NzJ9CmJvZHkudGhlbWUtZGFyayAjbC1oZWFkZXIgI3N2Zy1hdXRoe3N0cm9rZTojMzA3NzAwIWltcG9ydGFudH0KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5IC52aWV3LXJvd3tiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmJ9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSAudmlldy1yb3c6bnRoLWNoaWxkKDJuKzApIHtiYWNrZ3JvdW5kLWNvbG9yOiNlZmYxZjR9CmJvZHkudGhlbWUtZGFyayBkaXYubXktbW9kYWx7Ym94LXNoYWRvdzowcHggMHB4IDBweCAycHggcmdiYSgwLDI5LDc5LDAuNikhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZjZmNmY30KYm9keS50aGVtZS1kYXJrICNjdy1ib2R5PmRpdi5teS1tb2RhbC1zY3JlZW57YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NSwyNDksMjU1LDAuOSkhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlciwgIGJvZHkudGhlbWUtZGFyayAuYnV0dG9uLm1hcmtmb2N1czpmb2N1czphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiM2ZDZkNmQhaW1wb3J0YW50fQpib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFsLm5vc2UtbGVmdDpiZWZvcmUsICBib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFsLm5vc2UtcmlnaHQ6YmVmb3JlLCAgYm9keS50aGVtZS1kYXJrIGRpdi5teS1tb2RhbC5ub3NlLXRvcDpiZWZvcmUsICBib2R5LnRoZW1lLWRhcmsgZGl2Lm15LW1vZGFsLm5vc2UtYm90dG9tOmJlZm9yZXt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwyOSw3OSwwLjYpO2JvcmRlci10b3A6bm9uZTtib3JkZXItcmlnaHQ6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmY2ZjZmN9CmJvZHkudGhlbWUtZGFyayAjY3ctYm9keSA+IGRpdi5teS1tb2RhbCA+IC5teS1tb2RhbC1jbG9zZXtiYWNrZ3JvdW5kLWNvbG9yOiM5YmIxYzZ9CmJvZHkudGhlbWUtZGFyayAjbC1hcHBzIC5sLWFwcCAuZmVhdGhlcjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMjQ3LDI0OCwyNTAsMSksIHJnYmEoMjQ3LDI0OCwyNTAsMCkpfQpib2R5LnRoZW1lLWRhcmsgI2wtYXBwcyAubC1hcHAgLmZlYXRoZXI6YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNDcsMjQ4LDI1MCwxKSwgcmdiYSgyNDcsMjQ4LDI1MCwwKSl9CmJvZHkudGhlbWUtZGFyayAubXktbWFuaWZlc3QtMWFvYzF4ZmwgI2RvYzpob3ZlcntiYWNrZ3JvdW5kOiNmOGY5ZmJ9CmJvZHkudGhlbWUtZGFyayBpbWcjc2ljb257ZmlsdGVyOnNhdHVyYXRlKDEuMykgYnJpZ2h0bmVzcygwLjYpIGludmVydCgpIGh1ZS1yb3RhdGUoMTgxZGVnKSBjb250cmFzdCgxLjIpfQpib2R5LnRoZW1lLWRhcmsgLml2YWx1ZSBhLmJhc2U2NGltYWdlIGltZ3tmaWx0ZXI6c2F0dXJhdGUoMS4zKSBicmlnaHRuZXNzKDAuNikgaW52ZXJ0KCkgaHVlLXJvdGF0ZSgxODFkZWcpIGNvbnRyYXN0KDEuMil9CmJvZHkudGhlbWUtZGFyayAuQ29kZU1pcnJvciAuY20tZGVme2NvbG9yOiNmZjc4OWJ9CmJvZHkudGhlbWUtZGFyayAuQ29kZU1pcnJvciAuY20ta2V5d29yZHtjb2xvcjojOTY0OWZmfQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLXZhcmlhYmxlLTJ7Y29sb3I6IzUyOGNjNn0KYm9keS50aGVtZS1kYXJrIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZXtjb2xvcjojMDA4YzY0fQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLXN0cmluZ3tjb2xvcjojNWU2YmFkfQpib2R5LnRoZW1lLWRhcmsgLkNvZGVNaXJyb3IgLmNtLXByb3BlcnR5e2NvbG9yOiM0MzRlNWR9CmJvZHkudGhlbWUtZGFyayAuanNvbmRpZmZwYXRjaC1hZGRlZCAuanNvbmRpZmZwYXRjaC1wcm9wZXJ0eS1uYW1lLCAgYm9keS50aGVtZS1kYXJrIC5qc29uZGlmZnBhdGNoLWFkZGVkIC5qc29uZGlmZnBhdGNoLXZhbHVlIHByZSwgIGJvZHkudGhlbWUtZGFyayAuanNvbmRpZmZwYXRjaC1tb2RpZmllZCAuanNvbmRpZmZwYXRjaC1yaWdodC12YWx1ZSBwcmUsICBib2R5LnRoZW1lLWRhcmsgLmpzb25kaWZmcGF0Y2gtdGV4dGRpZmYtYWRkZWR7YmFja2dyb3VuZDojYWRjYjg3fQ==" }, "index.html": { "content_type": "text/html", @@ -55,7 +55,7 @@ }, "photon.js": { "content_type": "text/javascript", - "data": "LypQaG90b24gMS4yMCBhcHBzIGFuZCBib290c3RyYXAgY29kZSwgKGMpIDIwMjIgZXJtb3V0aCovCiQuZXh0ZW5kKHdpbmRvdy5ERE9DLmFwcHMseyJjdy5QaG90b24iOntpZDoiY3cuUGhvdG9uIixidWlsZDozLFZlcnNpb246IjEuMjAiLENmZzp7cm9vdFJlcG86Imh0dHBzOi8vY2RuLmNsb3Vkd2FsbC5tZS9waG90b24vIix1cGRhdGU6InJlbWluZCIscm9sZXM6W10sbWF4V2lkdGg6IjIwMDAiLG1heFRhYnM6MTUsc2Nyb2xsU3BlZWQ6IjAiLGZvbnQ6ImF1dG8iLGZvbnRXZWlnaHQ6IjQwMCIsZm9udENvZGU6ImF1dG8iLGljb246IiIsbGlzdENvbHM6WyJpbmZvIiwic2VjdXJpdHkiXSxiYXRjaERiSW5mb0RlbGF5OjUsYmF0Y2hDb21wYWN0RGVsYXk6NTAwLGJhdGNoQ3JlYXRlRGVsYXk6MTUwLGJhdGNoVXBkYXRlQ2ZnOjEwMCxsb29wQWN0aXZlVGFza3M6NSx0YXNrc1JlYWRSZXBsaWNhdG9yOiEwLHN0YXRzUmVmcmVzaDo1LHBpbmdTZXNzaW9uOjAsdGFiQmFyOiJhdXRvIix0aGVtZToiIixncm91cGluZzpbIm5vcm1hbCIsImF1dG8iXX0sbGFuZzp7ZW46e1RJUF9MT0dJTjoiTG9nIGluIixUSVBfUFJPRklMRToiRWRpdCB1c2VyIFxucHJvZmlsZSBkb2MiLFRJUF9DT05GSUc6IkNvdWNoREIgY29uZmlnIixUSVBfU0hBUkU6IlBob3RvbiBjb25maWciLFRJUF9ST09UOiJTaW5nbGUgY2xpY2s6IGxpc3Qgb2YgREJzIFxuRG91YmxlIGNsaWNrOiBjbG9zZSBhbGwgdGFicyIsQlROX1hBTEw6IuKclSBDbG9zZSBhbGzCoCIsRVJSX1JFUV9JTlZBTElEQ0FMTDoiSW52YWxpZCByZXF1ZXN0IHBhcmFtcywgcHJvYmFibHkgaW52YWxpZCBjb21tYW5kLCBvciB0aGVyZeKAmXMgYSBidWciLEVSUl9SRVFfQVVUSFJFUToiWW91IG5lZWQgdG8gbG9nIGluIHRvIHVzZSBQaG90b24iLEVSUl9SRVFfUk9MRVJFUToiSW5zdWZmaWNpZW50IHByaXZpbGVnZXMgdG8gcnVuIFBob3RvbiIsRVJSX1JFUTp7MDoiT2ZmbGluZSIsNDAwOiJCYWQgcmVxdWVzdCIsNDAxOiJVbmF1dGhvcml6ZWQiLDQwMzoiRm9yYmlkZGVuIiw0MDQ6Ik5vdCBmb3VuZCIsNDA1OiJOb3QgYWxsb3dlZCIsNDA4OiJUaW1lb3V0Iiw0MDk6IkNvbmZsaWN0Iiw0MTI6IlByZWNvbmRpdGlvbiBmYWlsZWQiLDQyOToiVG9vIG1hbnkgcmVxdWVzdHMiLDUwMDoiSW50ZXJuYWwgZXJyb3IiLDUwMToiTm90IGltcGxlbWVudGVkIiw1MDM6IlNlcnZpY2UgdW5hdmFpbGFibGUiLDUwNDoiR2F0ZXdheSB0aW1lb3V0Iiw1MDk6IkJhbmR3aWR0aCBxdW90YSIsOTk5OiJVbmtub3duIGVycm9yIn0sRkFJTF9UT09fTUFOWV9UQUJTOiJ7MX0gdGFicyBtYXhpbXVtLCBwbGVhc2UsIGNsb3NlIHNvbWV0aGluZyBvciBkb3VibGUtY2xpY2sgdGhlIGxvZ28gdG8gY2xvc2UgYWxsIHRhYnMuIixGQUlMX1RBQl9BUFA6IkZhaWxlZCBzdGFydGluZyB0YWIgYXBwLiBTZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLERMR19VTkxPQUQ6IlRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMuIFJlbG9hZD8iLERMR19VTlNBVkVEOiJUaGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzLiBQcm9jZWVkPyIsVVBEX09MRDoiWW91ciB2ZXJzaW9uIG9mIFBob3RvbiBpcyBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IG9sZC4gIixVUERfTU9OVEg6IllvdSB1cGRhdGVkIFBob3RvbiBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IGFnby4gIixVUERfVEFJTDonVG8gdXBkYXRlIGNsaWNrIDxzcGFuIGNsYXNzPSJmaS13cmVuY2ggbzgwIj48L3NwYW4+IGljb24gYXQgbmF2YmFyLCBhbmQgdGhlbiBjbGljayDigJhDaGVjayBmb3IgdXBkYXRlc+KAmSBidXR0b24uJyxNU0dfTkVXREJfT0s6IkNyZWF0ZWQgbmV3IERCIOKAmHsxfeKAmSIsTVNHX05FV0RCX0ZBSUw6IkZhaWxlZCBjcmVhdGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkiLE1TR19ORVdEQl9OT0FDTDoiREIg4oCYezF94oCZIGNyZWF0ZWQgYnV0IHNlY3VyaXR5IGNvbmZpZyBmYWlsZWQsIHdoaWNoIG1lYW5zIERCIGlzIHB1YmxpYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkiLE1TR19TRUNEQl9PSzoiVXBkYXRlZCBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmSIsTVNHX1NFQ0RCX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M30iLEluZGV4RWQ6e1RYVF9USVRMRToiTWFuZ28gaW5kZXggezF9wqBpbsKgezJ9IixUWFRfVElUTEUwOiJEZWZhdWx0IE1hbmdvIGluZGV4IixCVE5fUEFORUxfQ0xPU0U6IkNsb3NlIGVkaXRvciIsVEFHX01PREU6e3RhZ3M6W3tKU09OOiJqc29uIn1dLGVtcHR5OntTb3VyY2U6ImphdmFzY3JpcHQifX0sRVJSX05PX0lOREVYOiJNdXN0IGhhdmUgLmluZGV4LmZpZWxkcyBhcnJheSIsRVJSX05PX1RZUEU6J1Byb3BlcnR5IC50eXBlIHNob3VsZCBiZSAianNvbiInLEVSUl9OT19KU09OOiJDYW7igJl0IGNvbnZlcnQgdG8gSlNPTiIsQlROX1JVTjoiU2F2ZSBhbmQgcnVuIixCVE5fUlVOMDoiQ3JlYXRlIG5ldyBhbmQgcnVuIixUSVBfUlVOOiJTYXZlcyBpbmRleCBhbmQgc2hvd3MgaW5kZXggZW50cmllcyIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIGluZGV4IGVudHJpZXMiLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIGluZGV4IHVuZGVyIGRpZmZlcmVudCBuYW1lIGFuZCBzaG93cyBpbmRleCBlbnRyaWVzIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyBNYW5nbyBpbmRleCIsQlROX1JFVkVSVDoiUmV2ZXJ0IixUSVBfUkVWRVJUOiJSZXZlcnRzIGVkaXRvciB0byBzYXZlZCBpbmRleCBjb2RlIixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyBpbmRleDwvaDM+PHA+U2F2ZXMgaW5kZXggaW50byBleGlzdGluZyBvciBuZXcgZGVzaWduIGRvY3VtZW50LjwvcD4iLExCTF9ERE9DOiJEZG9jIG5hbWUiLFBMQ19ERE9DOiJTaG9ydCBvZiBmdWxsIGZvcm0iLExCTF9ORVc6IkluZGV4IG5hbWUiLFBMQ19ORVc6IktleSBuYW1lIGluIC52aWV3cyBwcm9wIG9mIGRkb2MiLEVSUl9ORVdfUkVROiJJbmRleCBuYW1lIHJlcXVpcmVkIixFWFBfRVhJU1Q6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IEluZGV4IGFscmVhZHkgZXhpc3RzIGFuZCB3aWxsIGJlIHJlcGxhY2VkLicsRVhQX05ERE9DOiJUYXJnZXQgZGVzaWduIGRvYyBkb2VzbuKAmXQgZXhpc3QgYW5kIHdpbGwgYmUgY3JlYXRlZC4iLEVYUF9OVklFVzoiTmV3IGluZGV4IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgaW5kZXgiLEJUTl9ORVdfQ0FOQ0VMOiJDYW5jZWwiLEVSUl9OT19OQU1FOiJJbnZhbGlkIGRkb2Mgb3IgaW5kZXggbmFtZSwgY2Fu4oCZdCBjcmVhdGUgaW5kZXgiLEVSUl9OT19OQU1FX1JVTjoiWW91IGNhbuKAmXQgcnVuIGRlZmF1bHQgaW5kZXgsIHBsZWFzZSB1c2UgU2F2ZSBhcyBidXR0b24iLEVSUl9FUlJET0M6IkNhbuKAmXQgc2F2ZSBpbnZhbGlkIGluZGV4LiB7MX0uIixNU0dfREVMX1RFWFQ6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IERlbGV0ZSBNYW5nbyBpbmRleCB7MX0gZnJvbSB7Mn0/JyxCVE5fREVMX1lFUzoiRGVsZXRlIixCVE5fREVMX05POiJDYW5jZWwiLE1TR19ERUxfT0s6IkluZGV4IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sVmlld0VkOntUWFRfVElUTEU6e2phdmFzY3JpcHQ6IkpTIHZpZXcgezF94oCJL+KAiXsyfSIsZXJsYW5nOiJFcmxhbmcgdmlldyB7MX3igIkv4oCJezJ9In0sVEFHX01PREU6e3RhZ3M6W1t7UmVkdWNlOiJyZWR1Y2UifSx7SlNPTjoianNvbiJ9XV0sZW1wdHk6e01hcDoibWFwIn19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fTUFQOiJNYXAgaXMgbm90IGEgZnVuY3Rpb24iLEVSUl9OT19SRURVQ0U6IlJlZHVjZSBpcyBub3QgYSBmdW5jdGlvbiIsRVJSX0ZfQlVJTFRJTjoiVW5rbm93biBidWlsdC1pbiByZWR1Y2VyIixFUlJfRVJSRE9DOiJDYW7igJl0IHNhdmUgaW52YWxpZCBkZXNpZ24gZG9jLiB7MX0uIixCVE5fUlVOOiJSdW4gdmlldyIsVElQX1JVTjoiUnVucyBzYXZlZCB2aWV3IGluZGV4IHF1ZXJ5IixCVE5fU0FWRToiU2F2ZSBhbmQgcnVuIixUSVBfU0FWRToiU2F2ZXMgdmlldyBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIHZpZXciLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIHZpZXcgdW5kZXIgZGlmZmVyZW50IG5hbWUgYW5kIHNob3dzIHRoZSByZXN1bHQiLEJUTl9SRVZFUlQ6IlJldmVydCIsVElQX1JFVkVSVDoiUmV2ZXJ0cyBlZGl0b3IgdG8gc2F2ZWQgdmlldyBjb2RlIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyB2aWV3IGluZGV4IixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyB2aWV3PC9oMz48cD5TYXZlcyB2aWV3IGludG8gZXhpc3Rpbmcgb3IgbmV3IGRlc2lnbiBkb2N1bWVudC48L3A+IixMQkxfRERPQzoiRGRvYyBfaWQiLFBMQ19ERE9DOiJGdWxsZm9ybSwgbGlrZSBfZGVzaWduL2Rkb2NOYW1lIixFUlJfRERPQzoiVmFsaWQgX2lkLXMgYXJlIGxpa2UgX2Rlc2lnbi9kZG9jTmFtZSIsTEJMX05FVzoiVmlldyBuYW1lIixQTENfTkVXOiJLZXkgbmFtZSBpbiAudmlld3MgcHJvcCBvZiBkZG9jIixFUlJfTkVXX1JFUToiVmlldyBuYW1lIHJlcXVpcmVkIixFUlJfTkVXX1NMQVNIOiJTbGFzaGVzIGFyZSBub3QgYWxsb3dlZCBpbiB2aWV3IG5hbWUiLEVYUF9FWElTVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gVmlldyBhbHJlYWR5IGV4aXN0cyBhbmQgd2lsbCBiZSByZXBsYWNlZC4nLEVYUF9ORERPQzoiVGFyZ2V0IGRlc2lnbiBkb2MgZG9lc27igJl0IGV4aXN0IGFuZCB3aWxsIGJlIGNyZWF0ZWQuIixFWFBfTlZJRVc6Ik5ldyB2aWV3IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgdmlldyIsQlROX05FV19DQU5DRUw6IkNhbmNlbCIsRVJSX05PX05BTUU6IkludmFsaWQgZGRvYyBvciB2aWV3IG5hbWUsIGNhbuKAmXQgY3JlYXRlIHZpZXciLE1TR19ERUxfVEVYVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gRGVsZXRlIHZpZXcgaW5kZXggezF9IGZyb20gezJ9PycsQlROX0RFTF9ZRVM6IkRlbGV0ZSIsQlROX0RFTF9OTzoiQ2FuY2VsIixNU0dfREVMX09LOiJWaWV3IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sTWFuZ29FZDp7VFhUX1RJVExFOiJNYW5nbyBxcnkgezF9IixUWFRfVElUTEUwOiJVbnRpdGxlZCBNYW5nbyBxcnkiLFRBR19NT0RFOnt0YWdzOlt7SlNPTjoianNvbiJ9XSxlbXB0eTp7U291cmNlOiJqYXZhc2NyaXB0In19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fU0VMRUNUT1I6Ik5vIC5zZWxlY3RvciBwcm9wZXJ0eSIsRVJSX05PX0ZJRUxEUzoiTm8gLmZpZWxkcyBhcnJheSIsRVJSX0VNUFRZX0ZJRUxEUzoiRW1wdHkgLmZpZWxkcyBhcnJheSIsRVJSX05PX0pTT046IkNhbuKAmXQgY29udmVydCB0byBKU09OIixFUlJfTUFOR09fS0VZUzoiVW5rbm93biBrZXkgezF9IixFUlJfSU5WQUxJRF9PUEVSQVRPUjoiSW52YWxpZCBvcGVyYXRvciB7MX0iLEVSUl9WX01PRDA6IiRtb2QgZGl2aXNvciBpcyAwIixFUlJfVl9NT0QxOiIkbW9kIG11c3QgYmUgW2Rpdmlzb3IsIHJlbWFpbmRlcl0iLEVSUl9WX01PREQ6IiRtb2QgZGl2aXNvciBtdXN0IGJlIGFuIGludGVnZXIiLEVSUl9WX01PRFI6IiRtb2QgcmVtYWluZGVyIG11c3QgYmUgYW4gaW50ZWdlciIsRVJSX1ZfRVhJU1Q6IiRleGlzdHMgbXVzdCBiZSBhIGJvb2wiLEVSUl9WX1RZUEUwOiIkdHlwZSBtdXN0IGJlIGEgc3RyaW5nIixFUlJfVl9UWVBFMToiSW52YWxpZCAkdHlwZSIsRVJSX1ZfU0laRToiJHNpemUgbXVzdCBiZSBhbiBpbnRlZ2VyIixFUlJfVl9SRUdFWDoiJHJlZ2V4IG11c3QgYmUgYSBzdHJpbmciLEVSUl9WX0FSUjoiezF9IG11c3QgYmUgYW4gYXJyYXkiLEVSUl9WX09CSjoiezF9IG11c3QgYmUgYW4gb2JqZWN0IixCVE5fUlVOOiJSdW4gcXJ5IixUSVBfUlVOOiJFeGVjdXRlcyBxdWVyeSBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsQlROX0VYUEw6IkV4cGxhaW4iLFRJUF9FWFBMOiJFeHBsYWlucyBxdWVyeSwgYWxsIGhpZGRlbiBwYXJhbXMgYW5kIGluZGV4ZXMgaW52b2x2ZWQiLEJUTl9TQVZFOiJTYXZlIGFzLi4uIixCVE5fUkVOQU1FOiJSZW5hbWUuLi4iLFRJUF9TQVZFOiJTYXZlcyBNYW5nbyBxdWVyeSB0byBsb2NhbFN0b3JhZ2UgZm9yIGxhdGVyIHJlLXVzZSIsQlROX0RFTDoiRGVsIixUSVBfREVMOiJEZWxldGVzIHRoaXMgTWFuZ28gcXVlcnkgZnJvbSBsb2NhbFN0b3JhZ2UgYW5kIHN3aXRjaGVzIHRvIERlZmF1bHQgcXVlcnkiLEJUTl9SRVNFVDoiUmVzZXQiLFRJUF9SRVNFVDoiUmVzZXRzIHRvIGluaXRpYWwgZGVmYXVsdCBxdWVyeSIsVFhUX1NUQVNIOiI8aDM+TWVtb2l6ZSBxdWVyeTwvaDM+PHA+U2F2ZXMgTWFuZ28gcXVlcnkgdG8gbG9jYWxTdG9yYWdlIGZvciBsYXRlciByZS11c2UuPC9wPiIsUExDX1NUQVNIOiJRdWVyeSB0aXRsZSwgMy4uLjMwIGNoYXJzIixFUlJfU1RBU0hfUkVROiJUaXRsZSByZXF1aXJlZCIsRVJSX1NUQVNIX0xFTjoiMy4uLjMwIGNoYXJhY3RlcnMiLEVSUl9TVEFTSF9FWElTVDoiQWxyZWFkeSBleGlzdHMiLEJUTl9TVEFTSF9PSzoiU2F2ZSBxdWVyeSIsQlROX1NUQVNIX09LMToiU2F2ZSAmIHN3aXRjaCB0byBuZXciLEJUTl9TVEFTSF9DQU5DRUw6IkNhbmNlbCJ9LFVzZXJEb2M6e1RYVF9USVRMRToiQ3JlYXRlIG5ldyB1c2VyIixUWFRfVElUTEVfRUQ6IkNoYW5nZSBwYXNzd29yZCBvciByb2xlcyIsTEJMX046Ik5hbWUiLFBMQ19OOiJVc2VyIGxvZ2luIixFUlJfTjoiQ2Fu4oCZdCBzdGFydCB3aXRoIF8gb3IgY29udGFpbiA6IixFUlJfTlg6IlVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIixMQkxfUDoiUGFzc3dvcmQiLFBMQ19QOiJVc2VyIHBhc3Nzd29yZCIsUExDX1BfRUQ6IkNoYW5nZSB1c2VyIHBhc3Nzd29yZCIsRVJSX1A6IlJlcXVpcmVkIixMQkxfUjoiUm9sZXMiLFBMQ19SOiJBZGQgcm9sZXMiLEVSUl9SOiJSb2xlcyBjYW7igJl0IHN0YXJ0IHdpdGggXyIsQlROX1NBVkU6IlNhdmUgdXNlciIsQlROX0RPQzoiQ3JlYXRlIGVtcHR5IEpTT04uLi4iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX09LOiJVc2VyIHsxfSBzdWNjZXNzZnVsbHkgc2F2ZWQiLE1TR19GQUlMOiJGYWlsZWQgc2F2aW5nIHVzZXIgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSJ9LERlbERCOntUWFRfVElUTEU6IkRlbGV0ZSBEQnMiLFRYVF9USVRMRTE6IkRlbGV0ZSBEQiIsUExDX0RCUzoiU2VsZWN0IERCcyB0byBkZWxldGUiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLExCTF9ORVc6IlJlLWNyZWF0ZSBEQnMgYWZ0ZXIgZGVsZXRpb24iLExCTF9ORVdfQUNMOiJBcHBseSBvcmlnaW5hbCBzZWN1cml0eSBvYmplY3RzIixMQkxfTkVXX1FOUDoiUmVzdG9yZSBzaGFyZGluZyBzZXR0aW5ncyIsVFhUX1dBUk46ZnVuY3Rpb24oeCl7dmFyIGE9T2JqZWN0LmNsb25lKHgpO3JldHVybiBhLnNjb3VudD1hLmNvdW50PDI/IiI6InMiLGEuc2l6ZT0oK2Euc2l6ZSkuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIiksYS5kaXNrPSgrYS5kaXNrKS5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKSxbIllvdSBhcmUgZGVsZXRpbmcge2NvdW50fSBEQntzY291bnR9IGNvbnRhaW5pbmcge3NpemV9IG9mIGRhdGEuIiwiRGVsZXRpb24gd2lsbCBmcmVlIH57ZGlza30gb2YgZGlzayBzcGFjZSBhdCA8bm9icj57YmFzZX08L25vYnI+LiJdLmpvaW4oIiAiKS5hc3NpZ24oYSl9LEJUTl9TVEFSVDpmdW5jdGlvbih4KXtyZXR1cm4geD8iRGVsZXRlICIreCsiIERCIisoeD4xPyJzIjoiIik6Ik5vdGhpbmcgdG8gZGVsZXRlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIOKAmHsxfeKAmSBEQiIsTVNHX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkifSxTZWNPYmo6e1RYVF9USVRMRToiQWNjZXNzIGNvbnRyb2wiLExCTF9EQlM6IkRCcyIsUExDX0RCUzoiU2VsZWN0IERCIG5hbWVzIHRvIHNldCBBQ0wiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLFRYVF9BRE06IkFkbWluaXN0cmF0b3JzIixMQkxfVUFETToiVXNlcnMiLFBMQ19VQURNOiJVc2VyIG5hbWVzIixMQkxfR0FETToiUm9sZXMiLFBMQ19HQURNOiJSb2xlcyB3aXRoIGFkbWluIGFjY2VzcyIsRVJSX0FETToiSW52YWxpZCBuYW1lIixFUlJfVU5BTUU6Ik5hbWVzIGNhbuKAmXQgc3RhcnQgd2l0aCBfIG9yIGNvbnRhaW4gOiIsVFhUX01FTToiTWVtYmVycyIsUExDX1VNRU06IlVzZXIgbmFtZXMiLFBMQ19HTUVNOiJSb2xlcyB3aXRoIG1lbWJlciBhY2Nlc3MiLEJUTl9TVEFSVDoiU2V0IHNlY3VyaXR5IixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19PSzoiU2VjdXJpdHkgb2JqZWN0IGZvciBEQiDigJh7MX3igJkgdXBkYXRlZCIsTVNHX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIERCIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LExvZ2luOntUWFRfTE9HSU46IkxvZyBpbiIsUExDX1VOQU1FOiJVc2VybmFtZSIsUExDX1BXRDoiUGFzc3dvcmQiLEJUTl9MT0dJTjoiQ3JlYXRlIHNlc3Npb24iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX0FVVEhfT0s6IkF1dGhvcml6ZWQgYXMgezF9IixNU0dfQVVUSF9GQUlMOiJBdXRob3JpemF0aW9uIGFzIHsxfSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezJ9OsKgezN9In0sTG9nb3V0OntUWFRfTE9HT1VUOiJMb2cgb3V0IixUWFRfUFJPRklMRToiUHJvZmlsZSIsTVNHX0xPR09VVF9TVEFSVDoiTG9nZ2luZyBvdXQuLi4iLE1TR19MT0dPVVRfT0s6IllvdSB3YXMgbG9nZ2VkIG91dCBzdWNjZXNzZnVsbHkiLE1TR19MT0dPVVRfRkFJTDoiTG9nIG91dCBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9In0sVGFiOntCVE5fQ0xPU0VUQUI6IkNsb3NlIHRhYiJ9LE5ld0RCOntUWFRfVElUTEU6IkNyZWF0ZSBEQnMiLFRYVF9USVRMRTE6IkNyZWF0ZSBEQiIsTEJMX0RCUzoiTmFtZXMiLFBMQ19EQlM6IkRCcyB0byBjcmVhdGUiLEVSUl9EQl9FWElTVDoiREIgezF9IGFscmVhZHkgZXhpc3RzIixFUlJfREJfTkFNRToiTG93ZXJjYXNlIGEteiwgMC05IGFuZCBfJCgpKy0vIGFyZSBvbmx5IGFsbG93ZWQgaW4gREIgbmFtZXMiLEVSUl9EQl9VTkQ6IkRCIG5hbWVzIG11c3Qgc3RhcnQgd2l0aCBsb3dlcmNhc2UgYS16IixUWFRfQURNOiJBZG1pbmlzdHJhdG9ycyIsTEJMX1VBRE06IlVzZXJzIixQTENfVUFETToiVXNlciBuYW1lcyIsTEJMX0dBRE06IlJvbGVzIixQTENfR0FETToiUm9sZXMgd2l0aCBhZG1pbiBhY2Nlc3MiLEVSUl9BRE06IkludmFsaWQgbmFtZSIsRVJSX1VOQU1FOiJOYW1lcyBjYW7igJl0IHN0YXJ0IHdpdGggXyBvciBjb250YWluIDoiLFRYVF9NRU06Ik1lbWJlcnMiLFBMQ19VTUVNOiJVc2VyIG5hbWVzIixQTENfR01FTToiUm9sZXMgd2l0aCBtZW1iZXIgYWNjZXNzIixMQkxfQ0xVU1RFUjoiU3RvcmFnZSIsVFhUX1NIQVJEUzpmdW5jdGlvbih4KXtyZXR1cm4ic2hhcmQiKyh4PjE/InMiOiIiKX0sVFhUX0NPUElFUzpmdW5jdGlvbih4KXtyZXR1cm4iZGF0YSBjb3AiKyh4PDI/InkiOiJpZXMiKX0sVFhUX1BBUlRJVElPTlM6InBhcnRpdGlvbmVkIixCVE5fU1RBUlQ6IkNyZWF0ZSBEQnMiLEJUTl9TVEFSVF9QVUJMSUM6IkNyZWF0ZSBwdWJsaWMgREJzIixCVE5fQ0FOQ0VMOiJDYW5jZWwifSxDb21wYWN0OntUWFRfVElUTEU6IkNvbXBhY3QgREJzIixUWFRfVElUTEUxOiJDb21wYWN0IERCIixUWFRfREJMSVNUOmZ1bmN0aW9uKHgpe3ZhciBhPXgubGVuZ3RoO3JldHVybiJZb3UgYXJlIGdvaW5nIHRvIGNvbXBhY3QgezF9IGJ1Y2tldHsyfTogIi5hc3NpZ24oYSxhPDI/IiI6InMiKSt4Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVIVE1MKCl9KS5qb2luKCIsICIpfSxQTENfREJTOiJTZWxlY3QgREJzIHRvIGNvbXBhY3QiLFBMQ19ERE9DUzoiU2VsZWN0IGRkb2NzIGZvciB2aWV3IGNvbXBhY3Rpb24iLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLEVSUl9ERE9DUzoiU2VsZWN0IGF0IGxlYXN0IG9uZSBkZXNpZ24gZG9jIixUQUdfT1A6W3siU3RyaXAgb2xkIHJldnMiOiJkb2NzIn0seyJTdHJpcCBvbGQgdmlld3MiOiJ2aWV3cyJ9LHsiQ29tcGFjdCB2aWV3cyI6ImRkb2NzIn1dLEVSUl9PUDoiU2VsZWN0IGF0IGxlYXN0IG9uZSBhY3Rpb24iLEVSUl9WQzoiVmlldyBjb21wYWN0aW9uIHJlcXVpcmVzIHNlbGVjdGluZyBkZG9jcywgc28gaXTigJlzIHVuYXZhaWxhYmxlIGZvciBtdWx0aXBsZSBEQnMgc2VsZWN0ZWQiLEJUTl9TVEFSVDoiU3RhcnQgY29tcGFjdGlvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfQ09NUEFDVF9TVEFSVDoiU3RhcnRlZCBjb21wYWN0aW9uIG9mIOKAmHsxfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIGNvbXBhY3Rpb24gb2Yg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTF9TT01FOiJFcnJvcnMgb2NjdXJlZCBkdXJpbmcgYXQgbGVhc3Qgb25lIGNvbXBhY3Rpb24gdGFza3MsIGNoZWNrIGNvbnNvbGUgZm9yIGRldGFpbHMifSxTeW5jVGFzazp7VFhUX1RJVExFOiJOZXcgcmVwbGljYXRpb24vZHVtcCIsVFhUX1RJVExFX1NZTkM6Ik5ldyByZXBsaWNhdGlvbiIsVFhUX1RJVExFX1pJUDoiRHVtcCB0byBaSVAiLFRYVF9USVRMRV9EVU1QOiJSZXN0b3JlIGZyb20gWklQIGR1bXAiLExCTF9NT0RFOiJNb2RlIixUQUdfTU9ERTp7dGFnczpbW3tPbmNlOiJvbmNlIn0se0xpdmU6ImxpdmUifSx7WklQOiJ6aXAifV0sW3tuYW1lOiJVc2UgX3JlcGxpY2F0b3IgZG9jIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxUQUdfTU9ERV9DT1BZOnt0YWdzOltbeyJSZXBsaWNhdGUgZG9jcyI6Im9uY2UifSx7IkR1bXAgZG9jcyB0byBaSVAiOiJ6aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IlN5bmMgbmFtZSIsUExDX0lEOiJEb2MgX2lkIGZvciB7X3JlcGxpY2F0b3J9IERCIixFUlJfSUQ6IlJlcXVpcmVkIixFUlJfSURfVU5EOiJDYW7igJl0IHN0YXJ0IHdpdGggdW5kZXJzY29yZSIsRVJSX1VOWklQX0ZBSUw6IlVuemlwIGZhaWxlZC4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIixFUlJfVU5aSVBfQUJSVDoiVW56aXAgYW5kIHNhdmUgYWJvcnRlZC4iLE1TR19VTlpJUF9PSzoiRHVtcCByZXN0b3JlIGNvbXBsZXRlZC4iLExCTF9GUk9NOiJTb3VyY2UgREIiLFBMQ19GUk9NOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9GUk9NOiJFeGlzdGluZyBEQiBuYW1lIG9yIHZhbGlkIFVSTCIsRVJSX0ZST01fVVJMOiJJbnZhbGlkIFVSTCIsRVJSX1BXRDoiUGxlYXNlIHByb3ZpZGUgY3JlZGVudGlhbHMiLExCTF9aSVBEVU1QOiJTcmMgemlwIGR1bXAiLFBMQ19aSVBEVU1QOiJTZWxlY3Qgb3IgZHJhZyAuemlwIERCIGR1bXAgaGVyZSIsRVJSX1pJUERVTVA6IkludmFsaWQgemlwIixMQkxfU1JDX0NSRURTOiJTb3VyY2UgY3JlZHMiLFBMQ19VTkFNRToiVXNlcm5hbWUiLEVSUl9VTk9fOiJDYW7igJl0IHN0YXJ0IHdpdGggXyIsUExDX1VQV0Q6IlBhc3N3b3JkIixFUlJfTk9QV0Q6IlBhc3N3b3JkIHJlcXVpcmVkIixUWFRfVUNUWDoiVXNlIC51c2VyQ3R4IHByb3Agd2l0aCBfYWRtaW4gcm9sZSIsTEJMX0ZJTFRFUjoiRmlsdGVyIixUQUdfRklMVEVSOnt0YWdzOltbe25hbWU6IkJ5IF9pZHMiLHZhbHVlOiJpZHMifSx7bmFtZToiRnVuY3Rpb24iLHZhbHVlOiJmbiIsY3NzOiJub3ppcCJ9LHtuYW1lOiJTa2lwIF9kZWxldGVkIix2YWx1ZToieGRlbCJ9XSx7bmFtZToiU2tpcCBkZG9jcyIsdmFsdWU6InhkZG9jIn0se25hbWU6IlNraXAgY29uZmxpY3RzIix2YWx1ZToieHJldnMiLGNzczoiemlwb25seSJ9XSxlbXB0eTp7Tm86IiJ9LHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfRE9DUzoiRG9jcyB0byBzeW5jIixQTENfRE9DUzoiSlNPTiBbXSBvZiBkb2MgX2lkLXMgdG8gcmVwbGljYXRlIixFUlJfRE9DUzoiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixMQkxfRk46IkZpbHRlciBmbiIsUExDX0ZOOiJkZG9jTmFtZS9maWx0ZXJGbk5hbWUsIGZpbHRlciBmdW5jdGlvbiIsRVJSX0ZOX0RFU0lHTjoiTm8gX2Rlc2lnbiBwcmVmaXgsIG9ubHkgZGRvY05hbWUvZmlsdGVyIixFUlJfRk46IlZhbGlkIGZvcm1hdCBpcyBkZG9jTmFtZS9maWx0ZXIiLExCTF9RUlk6IlFyeSBwYXJhbXMiLFBMQ19RUlk6IlF1ZXJ5IHBhcmFtcyBmb3IgZmlsdGVyIGZuLCBKU09OIG9iamVjdCIsRVJSX1FSWToiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBvYmplY3QiLExCTF9aSVBPUFQ6IlN0b3JlIERCIG1ldGEiLFRBR19aSVBPUFQ6e3RhZ3M6W3tuYW1lOiJTZWN1cml0eSBvYmplY3RzIix2YWx1ZToiYWNsIn0se25hbWU6IlNoYXJkaW5nIHNldHRpbmdzIix2YWx1ZToicW5wIn1dLHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfVE86IlRhcmdldCBEQiIsUExDX1RPOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9UTzoiSW52YWxpZCBEQiBVUkwiLEVSUl9UT19VUkw6Ik1hbGZvcm1lZCBVUkwiLEVSUl9UT19NSVNTOiJNaXNzaW5nIGxvY2FsIHRhcmdldCBEQiIsRVJSX0RVUDoiU291cmNlIGFuZCBUYXJnZXQgbXVzdCBiZSBkaWZmZXJlbnQiLEVSUl9DUkVEUzoiQ3JlZGVudGlhbHMgcmVxdWlyZWQsIGxpa2UgaHR0cDovL3VzZXI6cHdkQGFiYy54eXovLi4uIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLEVSUl9VUkVRX0NUOiJSZXF1aXJlZCB3aXRoIENyZWF0ZSB0YXJnZXQiLFRYVF9ORVdUR1Q6IkNyZWF0ZSB0YXJnZXQiLFRJUF9UR1RfUToiTnVtYmVyIG9mIHNoYXJkcywgZm9yIG5ld2x5IGNyZWF0ZWQgREJzIG9ubHkiLFRJUF9UR1RfTjoiTnVtYmVyIG9mIGRhdGEgY29waWVzIHN0b3JlZCBpbiBhIGNsdXN0ZXIsIGZvciBuZXdseSBjcmVhdGVkIERCcyBvbmx5IixUWFRfQ09QWUFDTDoiQ29weSBzb3VyY2UgREIgc2VjdXJpdHkgIGRlc2NyaXB0b3JzIixMQkxfWklQRklMRToiVGFyZ2V0IGZpbGUiLFBMQ19aSVBGSUxFOiJUYXJnZXQgLnppcCBhcmNoaXZlIGZpbGUgbmFtZSIsRVJSX05PWklQOiJZb3VyIGJyb3dzZXIgZG9lc27igJl0IGhhdmUgYWxsIGZlYXR1cmVzIHJlcXVpcmVkIHRvIGNyZWF0ZSBaSVAgZmlsZSBvbiB0aGUgZmx5LCBzb3JyeS4gVXNlIENMSSB0b29scyB0byBkdW1wIHlvdXIgZGF0YS4iLE1TR19aSVBfQkxPQjonPHNwYW4gY2xhc3M9ImRpYiB3MjAgdGFjIG1sLTIwIGZpLWFsZXJ0IHJlZDEiPjwvc3Bhbj5Zb3VyIGJyb3dzZXIgZG9lc27igJl0IGFsbG93IGNsaWVudC1zaWRlIHN0cmVhbWluZyB0byBhIGZpbGUuIEl0IG1lYW5zIGFsbCBkYXRhIHNob3VsZCBmaXQgaW4gbWVtb3J5LCBzbyBkb2504oCZdCBkdW1wIG1vcmUgdGhhbiBzZXZlcmFsIGh1bmRyZWRzIG9mIG1lZ2FiYXl0ZXMuICcsTVNHX1pJUF9XQVJOOiJUaGlzIGZlYXR1cmUgaXMgZXhwZXJpbWVudGFsLCBpdCB3b3JrcyB3ZWxsIGZvciBEQnMgdXAgdG8gc2V2ZXJhbCBHYiBpZiBib3RoIG5ldHdvcmsgYW5kIERCIGFyZSBoZWFsdGh5LiBDb25zaWRlciB1c2luZyBwcm92ZW4gQ0xJIHNvbHV0aW9ucyBmb3IgbGFyZ2VyIERCcyBvciBmbGFreSBuZXR3b3Jrcy4iLExCTF9VTlpJUE9QVDoiVW56aXAgb3B0aW9ucyIsVEFHX1VOWklQT1BUOnt0YWdzOlt7bmFtZToiQ3JlYXRlIERCcyIsdmFsdWU6ImNyZWF0ZSJ9LHtuYW1lOiJQdXQgQUNMIix2YWx1ZToiYWNsIn0se25hbWU6IlNraXAgZGVsZXRlZCIsdmFsdWU6InhkZWwifSx7bmFtZToiU2tpcCBjb25mbGljdHMiLHZhbHVlOiJ4cmV2cyJ9XSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1VOWklQREJTOiJSZXN0b3JlIERCcyIsQlROX1NUQVJUOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCB7MX0gcmVwbGljYXRpb257Mn0iLmFzc2lnbigxPT14PyIiOngseD4xPyJzIjoiIil9LEJUTl9TVEFSVF9ET0M6ZnVuY3Rpb24oeCl7cmV0dXJuIkNyZWF0ZSB7MX0gZG9jezJ9IGFuZCBzdGFydCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1pJUDpmdW5jdGlvbih4KXtyZXR1cm4iRHVtcCB7MX0gREJ7Mn0gdG8gLnppcCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1VOWklQOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCByZXN0b3JlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xFQVI6IkNsZWFyIixNU0dfU1RBUlQ6IlN0YXJ0aW5nIHsxfSBzeW5jIHRhc2suLi4iLE1TR19PS19PTkNFOiJSZXBsaWNhdGlvbiBmcm9tIHsxfSBmaW5pc2hlZCIsTVNHX09LX0RPQzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfTElWRToiQ3JlYXRlZCBhIHRhc2sgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfT05DRV9CQUNLOiJSZXBsaWNhdGlvbiB0byB7MX0gZmluaXNoZWQiLE1TR19PS19ET0NfQkFDSzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBpbmJvdW5kIHN5bmMiLE1TR19PS19MSVZFX0JBQ0s6IkNyZWF0ZWQgYSB0YXNrIGZvciB7MX0gaW5ib3VuZCBzeW5jIixNU0dfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIHsxfSBzeW5jLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1pJUF9SVU5OSU5HOiJDYW7igJl0IHN0YXJ0IG5ldyBkdW1wIHdoaWxlIGFub3RoZXIgZHVtcCB0YXNrIGlzIHJ1bm5pbmcuIFJldHJ5IHdoZW4gaXQgZmluaXNoZXMuIixFUlJfSk9COntUOiJGYWlsZWQgezF9IGZvciB7Mn0gREIuIFNlcnZlciByZXNwb25kZWQg4oCYezN9OsKgezR94oCZIixDOiIgQ29udGludWluZyB0YXNrLiIsR0VUOiJyZWFkaW5nIGRkb2NzIixVVElMUzoiY3JlYXRpbmcgdXRpbCBkZG9jIixGRERPQzoicmVwbGljYXRpbmcgZmlsdGVyaW5nIGRkb2MgdG8gdGFyZ2V0IixBQ0w6ImNsb25pbmcgc2VjdXJpdHkgb2JqZWN0IHRvIHRhcmdldCIsVE86ImNyZWF0aW5nIG91dGJvdW5kIHN5bmMiLEZST006ImNyZWF0aW5nIGluYm91bmQgc3luYyJ9LE11bHRpOntUWFRfVElUTEU6Ik5ldyBiYWNrdXAvcmVzdG9yZSBqb2IiLFRBR19NT0RFOnt0YWdzOltbe09uY2U6Im9uY2UifSx7TGl2ZToibGl2ZSJ9LHtaSVA6InppcCJ9XSxbe25hbWU6IlVzZSBfcmVwbGljYXRvciBkb2NzIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IkRvY3MgcHJlZml4IixQTENfSUQ6IlByZWZpeCBmb3Ige19yZXBsaWNhdG9yfSBkb2NzIixFUlJfSURfVU5EOiJEb2MgbmFtZXMgY2Fu4oCZdCBzdGFydCB3aXRoIHVuZGVyc2NvcmUiLExCTF9GUk9NOiJTb3VyY2UgREJzIixQTENfRlJPTToiU2VsZWN0IERCcyB0byBiYWNrdXAvcmVzdG9yZSIsRVJSX0ZST006IkF0IGxlYXN0IG9uZSBEQiByZXF1aXJlZCIsTEJMX1VOUFJFRklYOiJVbnByZWZpeCBEQnMiLFBMQ19VTlBSRUZJWDoiUHJlZml4IHRvIHJlbW92ZSBmcm9tIERCIG5hbWVzIixUSVBfVU5QUkVGSVg6IkRCIG5hbWVzIG5vdCBzdGFydGluZyB3aXRoIHByZWZpeCBhcmUga2VwdCBpbnRhY3QiLExCTF9GSUxURVI6IkZpbHRlciIsVEFHX0ZJTFRFUjp7dGFnczpbe25hbWU6IlNraXAgX2RlbGV0ZWQiLHZhbHVlOiJ4ZGVsIn0se25hbWU6IlNraXAgZGRvY3MiLHZhbHVlOiJ4ZGRvYyJ9LHtuYW1lOiJTa2lwIGNvbmZsaWN0cyIsdmFsdWU6InhyZXZzIixjc3M6InppcG9ubHkifV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1RPOiJUYXJnZXQgQ291Y2giLFBMQ19UTzoiVGFyZ2V0IENvdWNoREIgcm9vdCBVUkwiLEVSUl9UTzoiUGxlYXNlIHByb3ZpZGUgdmFsaWQgVVJMIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLExCTF9QUkVGSVg6IkFkZCBwcmVmaXgiLFBMQ19QUkVGSVg6IlN0cmluZyB0byBwcmVwZW5kIHRvIHRhcmdldCBEQiBuYW1lcyIsVFhUX05FV1RHVDoiQ3JlYXRlIHRhcmdldCBEQnMiLFRYVF9DT1BZQUNMOiJDb3B5IHNlY3VyaXR5ICBkZXNjcmlwdG9ycyBmcm9tIHNvdXJjZSBEQnMiLE1TR19TVEFSVElORzoiQ3JlYXRpbmcgc3luYyB0YXNrcy4uLiIsTVNHX1NUQVJUOiJTdGFydGluZyB7MX0gc3luYy4uLiIsTVNHX0ZBSUw6IkZhaWxlZCBzdGFydGluZyB7MX0gc3luYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkifSxDb3B5OntUWFRfVElUTEU6IlJlcGxpY2F0ZS9kdW1wIGRvY3MiLEJUTl9TVEFSVDpmdW5jdGlvbih4LGEsYil7cmV0dXJuInppcCI9PWI/IkR1bXAgezF9IGRvY3syfSIuYXNzaWduKDE9PWE/IiI6YSxhPjE/InMiOiIiKToiUmVwbGljYXRlIHsxfSBkb2N7Mn0iLmFzc2lnbigxPT1hPyIiOmEsYT4xPyJzIjoiIil9fX0sJHN0YXRzOnt9LCRsb2c6e1RYVF9USVRMRToiTG9ncyIsVFhUX0tCOiJrYiIsVFhUX1NJWkU6IlNob3ciLFRYVF9PRkZTRVQ6Im9mZnNldCIsUExDX1NFQVJDSDoiU2VhcmNoIGluIGxvZ3MiLFBMQ19SRUxPQUQ6IlJlbG9hZCIsVEFHX0RJUjp7dGFnczpbeyLigKZhdCB0aGUgYm90dG9tIjoiZm9yd2FyZCJ9XSxlbXB0eTp7IkxhdGVzdCBhdCB0aGUgdG9wIjoicmV2ZXJzZSJ9fX0sJGRpZmY6e1RYVF9CQU46IlNraXAiLFBMQ19CQU46Ik5vZGVzIHRvIGV4Y2x1ZGUiLExCTF9TUkM6IlNob3cgc291cmNlIixUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TUkM6IlNvdXJjZSByZXZpc2lvbi4uLiIsUExDX1RHVDoiVGFyZ2V0IHJldmlzaW9uLi4uIixUWFRfTk9ESUZGOiJObyBkaWZmZXJlbmNlIixUWFRfU0VMRUNUOiJTZWxlY3QgZGlmZmVyZW50IHJldmlzaW9ucyJ9LCRjb25maWc6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixFUlJfUkVMT0FEOiJFcnJvciByZWxvYWRpbmcgY29uZmlnLiBTZXJ2ZXIgcmVzcG9uZGVkIHsxfTogezJ9IixCVE5fU0FWRToiU2F2ZSBjaGFuZ2VzICZuYnNwOyIsQlROX1JFVkVSVDoiUmV2ZXJ0IHRvIHNhdmVkICIsQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xPU0U6IkNsb3NlIixUWFRfSElTVF9USVRMRToiQ29uZmlnIGNoYW5nZXMiLFRYVF9ISVNUX0VNUFRZOiJObyB1bnNhdmVkIGNoYW5nZXMiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLEVSUl9WQUw6e0NIQVJTOiJGb3JiaWRkZW4gY2hhcnMgaW4gYSBrZXksIG9ubHkgYS16LCAwLTkgYW5kIF8tISBhbGxvd2VkIixWQUxTVFJJTkc6IlZhbHVlIGNhbuKAmXQgYmUgbnVsbCwgYXJyYXkgb3Igb2JqZWN0In0sTVNHX1NBVkVfT0s6IlN1Y2Nlc3NmdWxseSB1cGRhdGVkIGNvbmZpZyIsTVNHX1NBVkVfRkFJTDoiRmFpbGVkIHVwZGF0aW5nIHNvbWUga2V5cywgc2VlIGNvbnNvbGUgZm9yIGRldGFpbHMiLE1TR19DTFVTVEVSOiJZb3UgYXJlIG9wZXJhdGluZyBhIGNsdXN0ZXIuIFByb3BhZ2F0ZSBjb25maWcgY2hhbmdlcyB0byBhbGwgbm9kZXM/IixCVE5fU0FWRUNMVVNURVI6IlNhdmUgdG8gYWxsIG5vZGVzIixCVE5fU0FWRU5PREU6IlNhdmUgdG8gezF9IG9ubHkiLEJBTl9IVFRQOiJLZXkgY2Fu4oCZdCBiZSBjaGFuZ2VkIHRocm91Z2ggSFRUUCwgZWRpdCBsb2NhbC5pbmkgc2VydmVyc2lkZS4gUmVhc29uIGlzIENWRS0yMDE3LTEyNjM2LiIsQkFOX0NMVVNURVI6IktleSBjYW7igJl0IGJlIGNoYW5nZWQgdXNpbmcgYWRtaW4gcGFuZWwuIixNU0dfVU5LTk9XTl9LRVk6IlVua25vd24gY29uZmlnIGtleSIsSEVMUDp7T0JKX1BBVEhTOntWMToiaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuLzEuNi4xL2NvbmZpZy8iLFYyOiJodHRwczovL2RvY3MuY291Y2hkYi5vcmcvZW4vMi4zLjEvY29uZmlnLyIsVjM6Imh0dHBzOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi8zLjIuMC9jb25maWcvIixDQjoiaHR0cHM6Ly9naXRsYWIuY29tL0NvdWNoYm94L2NvdWNoYm94In0sVFhUX0RPQ1M6Ik9mZmljaWFsIGRvY3VtZW50YXRpb24iLFRYVF9OT0RPQ1M6Ik5vIG9mZmljaWFsIGRvY3VtZW50YXRpb24iLGFkbWluczp7X186IntWMn1hdXRoLmh0bWwjc2VydmVyLWFkbWluaXN0cmF0b3JzIiwiIjoiQ291Y2hEQiBub2RlIGFkbWluaXN0cmF0b3JzLCB1c2VycyBoYXZpbmcgYF9hZG1pbmAgcm9sZSIsIioiOiJLZXkgaXMgdXNlciBuYW1lLCB2YWx1ZSBpcyBwYXNzd29yZCBoYXNoLCBvciBuZXcgcGFzc3dvcmQgZm9yIHRoZSB1c2VyIn0sYXR0YWNobWVudHM6e19fOiJ7VjJ9bWlzYy5odG1sI3trZXl9IiwiIjoiQ29uZmlndXJhdGlvbiBvZiBhdHRhY2htZW50IGZpbGUgc3RvcmFnZSIsY29tcHJlc3NpYmxlX3R5cGVzOiJDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb21wcmVzc2libGUgTUlNRSB0eXBlcyBsaWtlIGB0ZXh0LyosIGFwcGxpY2F0aW9uL2phdmFzY3JpcHRgIixjb21wcmVzc2lvbl9sZXZlbDoiWmxpYiBjb21wcmVzc2lvbiBsZXZlbCwgbnVtYmVyIDDigJM5In0sY2h0dHBkOntfXzoie1YzfWh0dHAuaHRtbCN7a2V5fSIsIiI6IkhUVFAgc2VydmVyIG9wdGlvbnMiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGJhY2tsb2c6Ik1vY2hpV2ViIHBhcmFtLCBzb2NrZXQgYmFja2xvZyBzaXplLCBieXRlcyIsbWF4X2RiX251bWJlcl9mb3JfZGJzX2luZm9fcmVxOiJNYXggbnVtYmVyIG9mIERCcyBhbGxvd2VkIGZvciBgL19kYnNfaW5mb2AgcmVxdWVzdCIscG9ydDoiQ291Y2hEQiBwb3J0LCBudW1iZXIgMeKAkzY1NTM1IixwcmVmZXJfbWluaW1hbDoiU2VuZHMgbWluaW1hbCBzZXQgb2YgaGVhZGVycyIscmVxdWlyZV92YWxpZF91c2VyOiJXaGVuIGB0cnVlYCwgbm8gcmVxdWVzdHMgYXJlIGFsbG93ZWQgZnJvbSBhbm9ueW1vdXMgdXNlcnMiLHNvY2tldF9vcHRpb25zOiJUaGUgc29ja2V0IG9wdGlvbnMgZm9yIHRoZSBsaXN0ZW5pbmcgc29ja2V0IGluIENvdWNoREIiLGFkbWluX29ubHlfYWxsX2RiczpbIldoZW4gYHRydWVgIHByZXZlbnRzIG5vbi1hZG1pbnMgZnJvbSBhY2Nlc3NpbmcgYC9fYWxsX2Ric2AiLCIiXX0sY2h0dHBkX2F1dGg6e19fOiJ7VjN9YXV0aC5odG1sI3trZXl9IiwiIjoiQXV0aGVudGljYXRpb24gY29uZmlnIixwYXNzd29yZF9yZWdleHA6IlJlZ0V4cCByZXN0cmljdGluZyBwYXNzd29yZCB2YWx1ZSJ9LGNsdXN0ZXI6e19fOiJ7VjJ9Y2x1c3Rlci5odG1sI3trZXl9IiwiIjoiQ2x1c3RlciBvcHRpb25zIixuOiJOdW1iZXIgb2YgcmVwbGljYXMgb2YgZWFjaCBkb2N1bWVudCBpbiBhIGNsdXN0ZXIsIG51bWJlciAxKyIscGxhY2VtZW50OiJTZXRzIHRoZSBjbHVzdGVyLXdpZGUgcmVwbGljYSBwbGFjZW1lbnQgcG9saWN5IGZvciBuZXcgZGF0YWJhc2VzIixxOiJEZWZhdWx0IG51bWJlciBvZiBzaGFyZHMgZm9yIG5ld2x5IGNyZWF0ZWQgZGF0YWJhc2VzLCBudW1iZXIgMSsiLHNlZWRsaXN0OiJMaXN0IG9mIG5vZGVzIHRvIGNvbnRhY3QgaW4gb3JkZXIgdG8gam9pbiBhIGNsdXN0ZXIifSxjb21wYWN0aW9uX2RhZW1vbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJDb21wYWN0aW9uIGRhZW1vbiBjb25maWciLGNoZWNrX2ludGVydmFsOiJEZWxheSBiZWZvcmUgYXV0by1jb21wYWN0aW9uIGRhZW1vbiBjaGVja3MgYSBEQiwgc2Vjb25kcyIsbWluX2ZpbGVfc2l6ZToiTWluaW1hbCBEQiBmaWxlIHNpemUgZm9yIGNvbXBhY3Rpb24gZGFlbW9uIHRvIHRyaWdnZXIgY2hlY2siLHNub296ZV9wZXJpb2RfbXM6Ik1pbmltdW0gZ2FwIGJldHdlZW4gc3Vic2VxdWVudCBkYWVtb24gYWN0aXZhdGlvbnMsIG1pbGxpc2Vjb25kcyJ9LGNvbXBhY3Rpb25zOntfXzoie1YyfWNvbXBhY3Rpb24uaHRtbCN7a2V5fSIsIiI6IkEgbGlzdCBvZiBydWxlcyB0byBkZXRlcm1pbmUgd2hlbiB0byBydW4gYXV0b21hdGljIGNvbXBhY3Rpb24iLCIqIjonS2V5IGlzIERCIG5hbWUsIHZhbHVlIGlzIGxpa2VgW3tkYl9mcmFnbWVudGF0aW9uLCI3MCUifSwge3ZpZXdfZnJhZ21lbnRhdGlvbiwiNjAlIn0sIHtmcm9tLCIyMzowMCJ9LHt0bywiMDQ6MDAifV1gJ30sY29yczp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJDcm9zcy1vcmlnaW4gcmVzb3VyY2Ugc2hhcmluZyBjb25maWciLGNyZWRlbnRpYWxzOiJJZiBzZXQgYHRydWVgLCBDb3VjaCBzZW5kcyBhdXRoIGNvb2tpZXMgZm9yIGNyb3NzLW9yaWdpbiByZXF1ZXN0cyIsaGVhZGVyczoiSGVhZGVycyBhY2NlcHRlZCBmb3IgQ09SUyByZXF1ZXN0cywgZ29vZCBkZWZhdWx0IGlzIGBhY2NlcHQsIGF1dGhvcml6YXRpb24sIGNvbnRlbnQtdHlwZSwgb3JpZ2luYCIsbWF4X2FnZToiU2V0cyBtYXggYWdlIGhlYWRlciBmb3IgT1BUSU9OUyByZXNwb25zZSwgc2Vjb25kcyIsbWV0aG9kczoiTGlzdCBvZiBhbGxvd2VkIG1ldGhvZHMsIGxpa2UgYEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIE9QVElPTlMsIEhFQURgIixvcmlnaW5zOiJMaXN0IG9mIG9yaWdpbnMgc2VwYXJhdGVkIGJ5IGEgY29tbWEsIGxpa2UgYGh0dHA6Ly9kb21haW4wLmNvbSwgaHR0cHM6Ly9kb21haW4xLmNvbTo0NDNgIn0sY291Y2hfaHR0cGRfYXV0aDp7X186IntWMn1hdXRoLmh0bWwje2tleX0iLCIiOiJBdXRoZW50aWNhdGlvbiBjb25maWciLGFsbG93X3BlcnNpc3RlbnRfY29va2llczoiV2hlbiBgdHJ1ZWAsIENvdWNoIGF1dG8tcmVmcmVzaGVzIHNlc3Npb24gY29va2llcyB0aW1lIHRvIHRpbWUiLGF1dGhfY2FjaGVfc2l6ZToiSG93IG1hbnkgdXNlcnMgYXJlIGNhY2hlZCBpbiBtZW1vcnksIG51bWJlciIsYXV0aGVudGljYXRpb25fcmVkaXJlY3Q6IlJlZGlyZWN0aW9uIG9uIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24gaWYgdGhlIGNsaWVudCBhY2NlcHRzIGB0ZXh0L2h0bWxgIixjb29raWVfZG9tYWluOiJDb25maWd1cmVzIHRoZSBkb21haW4gYXR0cmlidXRlIG9mIHRoZSBgQXV0aFNlc3Npb25gIGNvb2tpZSIsaXRlcmF0aW9uczoiUGFzc3dvcmQgaGFzaGluZyBpdGVyYXRpb25zIGNvdW50IixtYXhfaXRlcmF0aW9uczoiTWF4aW11bSBQQktERjIgaXRlcmF0aW9ucyBjb3VudCIsbWluX2l0ZXJhdGlvbnM6Ik1pbmltdW0gUEJLREYyIGl0ZXJhdGlvbnMgY291bnQiLHByb3h5X3VzZV9zZWNyZXQ6IkZvcmNlIHByb3h5IGF1dGggdG8gdXNlIHNlY3JldCB0b2tlbiwgYGZhbHNlYCBtYWtlcyBDb3VjaCB2ZXJ5IHVucHJvdGVjdGVkIixwdWJsaWNfZmllbGRzOiJMaXN0IG9mIHB1YmxpYyBmaWVsZHMgaW4gYF91c2Vyc2AgZG9jdW1lbnRzIHRoYXQgYXJlIHVzZXIgcHJvZmlsZXMiLHJlcXVpcmVfdmFsaWRfdXNlcjoiV2hlbiBgdHJ1ZWAsIG5vIHJlcXVlc3RzIGFyZSBhbGxvd2VkIGZyb20gYW5vbnltb3VzIHVzZXJzIixzZWNyZXQ6IlNlY3JldCB0b2tlbiB1c2VkIGZvciBQcm94eSBhbmQgQ29va2llIGF1dGhlbnRpY2F0aW9uIixzYW1lX3NpdGU6IlNhbWVTaXRlIGF0dHJpYnV0ZSBmb3IgYXV0aCBjb29raWUsIGBub25lYCwgYGxheGAgb3IgYHN0cmljdGAgIix0aW1lb3V0OiJOdW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCByZXF1ZXN0IGJlZm9yZSBzZXNzaW9uIGV4cGlyZXMiLHVzZXJzX2RiX3B1YmxpYzoiQWxsb3cgYWxsIHVzZXJzIHRvIHZpZXcgdXNlciBkb2N1bWVudHMiLHhfYXV0aF9yb2xlczoiUHJveHkgQXV0aCByb2xlcyBoZWFkZXIgbmFtZSwgZGVmYXVsdCBpcyBgWC1BdXRoLUNvdWNoREItUm9sZXNgIix4X2F1dGhfdG9rZW46IlByb3h5IEF1dGggdG9rZW4gaGVhZGVyIG5hbWUsIGRlZmF1bHQgaXMgYFgtQXV0aC1Db3VjaERCLVRva2VuYCIseF9hdXRoX3VzZXJuYW1lOiJQcm94eSBBdXRoIHVzZXJuYW1lIGhlYWRlciBuYW1lLCBkZWZhdWx0IGlzIGBYLUF1dGgtQ291Y2hEQi1Vc2VyTmFtZWAifSxjb3VjaF9odHRwZF9vYXV0aDp7X186IntWMX1hdXRoLmh0bWwje2tleX0iLCIiOiJIVFRQIE9BdXRoIENvbmZpZ3VyYXRpb24iLHVzZV91c2Vyc19kYjoiSWYgYHRydWVgIE9BdXRoIHRva2VuIGFuZCBjb25zdW1lciBzZWNyZXRzIGFyZSBsb29rZWQgdXAgaW4gYF91c2Vyc2AgZG9jcyJ9LGNvdWNoX3BlcnVzZXI6e19fOiJ7VjJ9Y291Y2gtcGVydXNlci5odG1sI3trZXl9IiwiIjoiR2VuZXJhdGVzIGEgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtYmVyIixkZWxldGVfZGJzOiJEZWxldGUgYSB1c2VyIERCIG9uIGBfdXNlcnNgIGRvYyBkZWxldGlvbiIsZW5hYmxlOiJJZiBgdHJ1ZWAgYXV0by1jcmVhdGVzIGB1c2VyLXtoZXhuYW1lfWAgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtZWJlciJ9LGNvdWNoZGI6e19fOiJ7VjJ9Y291Y2hkYi5odG1sI3trZXl9IiwiIjoiQmFzZSBDb3VjaERCIG9wdGlvbnMiLGF0dGFjaG1lbnRfc3RyZWFtX2J1ZmZlcl9zaXplOiJCdWZmZXIgdXNlZCB3aGlsZSBzdHJlYW1pbmcgYW4gYXR0YWNobWVudCwgYnl0ZXMiLGRhdGFiYXNlX2RpcjoiRGF0YWJhc2VzIGxvY2F0aW9uIGRpcmVjdG9yeSIsZGVmYXVsdF9zZWN1cml0eToiRGVmYXVsdCBzZWN1cml0eSBvYmplY3QgZm9yIERCcywgYGV2ZXJ5b25lYCBhbmQgYGFkbWluX2xvY2FsYCBtYWtlIERCIHB1YmxpYywgYGFkbWluX29ubHlgIHByb3RlY3RzIixkZWxheWVkX2NvbW1pdHM6IklmIGB0cnVlYCBDb3VjaCBndWFyYW50ZWVzIGNoYW5nZXMgYXJlIHdyaXR0ZW4gdG8gZGlzayBiZWZvcmUgYDIweGAgcmVzcG9uc2UgaXMgc2VudCIsZmlsZV9jb21wcmVzc2lvbjoiQ29tcHJlc3Npb24gbWV0aG9kIGZvciBkb2N1bWVudHMsIGBub25lYCwgYHNuYXBweWAgb3IgYGRlZmxhdGVfTmAiLGZzeW5jX29wdGlvbnM6IkZzeW5jIG9wdGlvbnMiLG1haW50ZW5hbmNlX21vZGU6IklmIHNldCBgdHJ1ZWAsIG5vZGUgaXMgbm90IGluIGNsdXN0ZXIsIGFuZCBgL191cGAgcmV0dXJucyBgNDA0YCIsbWF4X2Ric19vcGVuOiJMaW1pdCBvZiBzaW11bHRhbmVvdXNseSBvcGVuZWQgZGF0YWJhc2VzLCBudW1iZXIiLG1heF9kb2N1bWVudF9zaXplOiJMaW1pdCBtYXhpbXVtIGRvY3VtZW50IGJvZHkgc2l6ZSwgYnl0ZXMiLG9zX3Byb2Nlc3NfdGltZW91dDoiRXh0ZXJuYWwgcHJvY2Vzc2VzIHRpbWUgbGltaXQsIG1pbGxpc2Vjb25kcyIsdXJpX2ZpbGU6IkRpc2NvdmVyeSBDb3VjaERCIGhlbHAgZmlsZSIsdXNlcnNfZGJfc3VmZml4OiJTcGVjaWZpZXMgdGhlIHN1ZmZpeCBvZiB0aGUgc3lzdGVtIGRhdGFiYXNlIG9mIHVzZXJzIix1dGlsX2RyaXZlcl9kaXI6IlNwZWNpZmllcyBsb2NhdGlvbiBvZiBiaW5hcnkgZHJpdmVycyIsdXVpZDoiVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgQ291Y2hEQiBzZXJ2ZXIgaW5zdGFuY2UiLHZpZXdfaW5kZXhfZGlyOiJWaWV3IGluZGV4ZXMgbG9jYXRpb24gZGlyZWN0b3J5Iix1c2Vyc19kYl9zZWN1cml0eV9lZGl0YWJsZTpbIkFsbG93IGVkaXRzIG9uIHRoZSBgX3NlY3VyaXR5YCBvYmplY3QgaW4gdGhlIHVzZXIgZGIiLCIiXX0sY3NwOntfXzoie1YzfW1pc2MuaHRtbCN7a2V5fSIsIiI6IkNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IHNldHRpbmdzIixlbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBGYXV4dG9uIixoZWFkZXJfdmFsdWU6IkRlZmF1bHQgRmF1eHRvbiBDU1AgaGVhZGVyIHZhbHVlIixhdHRhY2htZW50c19lbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBkb2MgYXR0YWNobWVudHMiLGF0dGFjaG1lbnRzX2hlYWRlcl92YWx1ZToiRGVmYXVsdCBDU1AgaGVhZGVyIHZhbHVlIGZvciBkb2MgYXR0YWNobWVudHMiLHNob3dsaXN0X2VuYWJsZToiSWYgYHRydWVgIGVuYWJsZXMgQ1NQIGhlYWRlcnMgZm9yIG5vbi1KU09OIHNob3cvbGlzdCByZXN1bHRzIixzaG93bGlzdF9oZWFkZXJfdmFsdWU6IkRlZmF1bHQgQ1NQIGhlYWRlciB2YWx1ZSBmb3Igbm9uLUpTT04gc2hvdy9saXN0IHJlc3VsdHMifSxkYWVtb25zOntfXzoie1YyfXNlcnZpY2VzLmh0bWwje2tleX0iLCIiOiJDb3VjaERCIERhZW1vbml6ZWQgTWluaSBBcHBzIixhdXRoX2NhY2hlOiJBdXRoZW50aWNhdGlvbiBjYWNoaW5nIGxvY2F0b3IiLGNvbXBhY3Rpb25fZGFlbW9uOiJDb21wYWN0aW9uIGRhZW1vbiBsb2NhdG9yIixleHRlcm5hbF9tYW5hZ2VyOiJFeHRlcm5hbCBwcm9jZXNzZXMgbWFuYWdlciBsb2NhdG9yIixodHRwZDoiTm9kZSBIVFRQIHNlcnZlciBkYWVtb24gbG9jYXRvciIsaW5kZXhfc2VydmVyOiJDb3VjaERCIGluZGV4IHNlcnZlciBsb2NhdG9yIixxdWVyeV9zZXJ2ZXJzOiJRdWVyeSBzZXJ2ZXJzIG1hbmFnZXIgbG9jYXRvciIscmVwbGljYXRvcl9tYW5hZ2VyOiJDb3VjaCByZXBsaWNhdG9yIG1hbmFnZXIgbG9jYXRvciIsc3RhdHNfYWdncmVnYXRvcjoiQ291Y2ggc3RhdHMgYWdncmVnYXRvciBkYWVtb24gbG9jYXRvciIsc3RhdHNfY29sbGVjdG9yOiJDb3VjaCBzdGF0cyBjb2xsZWN0b3IgZGFlbW9uIGxvY2F0b3IiLHV1aWRzOiJVVUlEcyBnZW5lcmF0b3IgZGFlbW9uIGxvY2F0b3IiLHZob3N0czoiTWFuYWdlciBvZiBgdmhvc3RzYCBjb25uZWN0aW9ucyBsb2NhdG9yIn0sZGF0YWJhc2VfY29tcGFjdGlvbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJEYXRhYmFzZSBjb21wYWN0aW9uIG9wdGlvbnMiLGNoZWNrcG9pbnRfYWZ0ZXI6IlRyaWdnZXJzIGEgY2hlY2twb2ludCBhZnRlciB0aGUgc3BlY2lmaWVkIGFtb3VudCBvZiBieXRlcyB3ZXJlIGNvcGllZCIsZG9jX2J1ZmZlcl9zaXplOiJUaGUgY29weSBidWZmZXLigJlzIG1heGltdW0gc2l6ZSwgYnl0ZXMifSxkcmV5ZnVzOntfXzoie1YzfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IkRyZXlmdXMgc2VhcmNoIHN1YnN5c3RlbSBjb25maWd1cmF0aW9uIixsaW1pdDoiRGVmYXVsdCByZXN1bHQgc2V0IGxpbWl0IGZvciBnbG9iYWwgc2VhcmNoIixsaW1pdF9wYXJ0aXRpb25zOiJEZWZhdWx0IHJlc3VsdCBzZXQgbGltaXQgZm9yIHBhcnRpdGlvbmVkIERCcyIsbWF4X2xpbWl0OiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIGdsb2JhbCBzZWFyY2giLG1heF9saW1pdF9wYXJ0aXRpb25zOiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIHBhcnRpdGlvbmVkIHNlYXJjaCIsbmFtZToiQ2xvdXNlYXUgSlZNIG5vZGUgbmFtZSBhbmQgbG9jYXRpb24iLHJldHJ5X2xpbWl0OiJNYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9uIHJldHJpZXMifSxodHRwZDp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJIVFRQIHNlcnZlciBjb25maWcsIGZvciAyLnggb25seSBmb3IgbG9jYWwgNTk4NiBwb3J0IiwiV1dXLUF1dGhlbnRpY2F0ZSI6IklmIGB0cnVlYCB0cmlnZ2VyIGJhc2ljLWF1dGggcG9wLXVwIG9uIHVuYXV0aG9yaXplZCByZXF1ZXN0cyIsYWxsb3dfanNvbnA6IklmIGB0cnVlYCBlbmFibGVzIEpTT05QIHN1cHBvcnQsIGBmYWxzZWAgcmVjb21tZW5kZWQiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGNoYW5nZXNfdGltZW91dDoiQ2hhbmdlcyBmZWVkIHRpbWVvdXQsIG1pbGxpc2Vjb25kcyIsY29uZmlnX3doaXRlbGlzdDoiT25seSB3aGl0ZWxpc3RlZCB2YWx1ZXMgbWF5IGJlIGNoYW5nZWQgdmlhIHRoZSBgL19jb25maWdgIEhUVFAgZW5kcG9pbnRzIixkZWZhdWx0X2hhbmRsZXI6IkRlZmF1bHQgcmVxdWVzdCBoYW5kbGVyIGxvY2F0b3IiLGVuYWJsZV9jb3JzOiJJZiBgdHJ1ZWAgYWxsb3dzIENPUlMiLGVuYWJsZV94ZnJhbWVfb3B0aW9uczoiQ29udHJvbHMgWC1GcmFtZS1PcHRpb25zIGhlYWRlciIsbG9nX21heF9jaHVua19zaXplOiJNYXggcmVzcG9uc2Ugc2l6ZSBmb3IgYC9fbG9nYCByZXF1ZXN0IixtYXhfaHR0cF9yZXF1ZXN0X3NpemU6IkxpbWl0IHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIEhUVFAgcmVxdWVzdCBib2R5LCBieXRlcyIscG9ydDoiTGlzdGVuIHBvcnQiLHJlZGlyZWN0X3Zob3N0X2hhbmRsZXI6IkN1c3RvbWl6ZXMgdGhlIGRlZmF1bHQgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHJlcXVlc3RzIHRvIHZpcnR1YWwgaG9zdHMiLHNlY3VyZV9yZXdyaXRlczoiQWxsb3dzIGBfcmV3cml0ZWAgcnVsZXMgcG9pbnRpbmcgdG8gZGlmZmVyZW50IERCIixzZXJ2ZXJfb3B0aW9uczoiTW9jaGlXZWIgd2ViIHNlcnZlciBvcHRpb25zIixzb2NrZXRfb3B0aW9uczoiVGhlIHNvY2tldCBvcHRpb25zIGZvciB0aGUgbGlzdGVuaW5nIHNvY2tldCBpbiBDb3VjaERCIix2aG9zdF9nbG9iYWxfaGFuZGxlcnM6Ikxpc3Qgb2YgZ2xvYmFsIGhhbmRsZXJzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdmlydHVhbCBob3N0cyIseF9mb3J3YXJkZWRfaG9zdDoiWC1Gb3J3YXJkZXItSG9zdCIseF9mb3J3YXJkZWRfcHJvdG86IlgtRm9yd2FyZGVyLVByb3RvIix4X2ZvcndhcmRlZF9zc2w6IlgtRm9yd2FyZGVyLVNzbCJ9LGh0dHBkX2RiX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZXZlcnkgQ291Y2hEQiBkYXRhYmFzZSIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZGVzaWduX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZGVzaWduIGRvY3VtZW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZ2xvYmFsX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6Ikdsb2JhbCBIVFRQIGVuZHBvaW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saW9xOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiSU8gcXVldWUgcHJpb3JpdGl6YXRpb24gb3B0aW9ucyIsY29uY3VycmVuY3k6Ik51bWJlciBvZiBjb25jdXJyZW50IGluLWZsaWdodCBJTyByZXF1ZXN0cyB0aGF0IHRoZSBxdWV1ZWluZyBzeXN0ZW0gd2lsbCBzdWJtaXQiLHJhdGlvOiJCYWNrZ3JvdW5kIElPIHJlcXVlc3RzIHF1b3RhIHJhdGlvIn0sImlvcS5ieXBhc3MiOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiTGlzdCBvZiBvcGVyYXRpb25zIHRoYXQgY2FuIGJ5cGFzcyBJTyBxdWV1ZSIsIioiOiJLZXkgaXMgdGhlIG9wZXJhdGlvbiwgdmFsdWUgaXMgYnlwYXNzIHN0YXR1cyBmb3IgaXQifSxrZW46e19fOiJ7VjN9aW5kZXhidWlsZHMuaHRtbCN7a2V5fSIsIiI6IkJhY2tncm91bmQgaW5kZXggYnVpbGRzIixiYXRjaF9jaGFubmVsczoiQ29udHJvbHMgdGhlIG51bWJlciBvZiBiYWNrZ3JvdW5kIHZpZXcgYnVpbGRzIHRoYXQgY2FuIGJlIHJ1bm5pbmcgaW4gcGFyYWxsZWwiLGluY3JlbWVudGFsX2NoYW5uZWxzOiJBZGRpdGlvbmFsIHNsb3RzIGZvciBzaG9ydCBqb2JzIixtYXhfaW5jcmVtZW50YWxfdXBkYXRlczoiVGhyZXNob2xkIGRlZmluaW5nIGEgam9iIGFzIHNob3J0In0sImtlbi5pZ25vcmUiOntfXzoie1YzfWluZGV4YnVpbGRzLmh0bWwje2tleX0iLCIiOiJBdXRvLWluZGV4aW5nIGJsYWNrbGlzdCIsIioiOiJLZXkgaXMgYSBzaGFyZCBuYW1lIHRvIHNraXAgd2hpbGUgYXV0by1pbmRleGluZywgdmFsdWUgc2hvdWxkIGJlIGB0cnVlYCJ9LGxvZzp7X186IntWMn1sb2dnaW5nLmh0bWwje2tleX0iLCIiOiJMb2dnaW5nIG9wdGlvbnMiLHdyaXRlcjoiU2V0IHRoZSBsb2cgd3JpdGVyIHRvIHVzZTogYHN0ZGVycmAsIGBmaWxlYCwgYHN5c2xvZ2AiLGZpbGU6IkxvZ2dpbmcgZmlsZSBwYXRoIixpbmNsdWRlX3Nhc2w6IklmIGB0cnVlYCBwdXRzIFNBU0wgaW5mbyBpbnRvIGxvZ3MiLGxldmVsOiJMb2dnaW5nIHZlcmJvc2l0eTogYGRlYnVnYCwgYGluZm9gLCBgbm90aWNlYCwgYHdhcm5gLCBgZXJyYCwgYG5vbmVgIixzeXNsb2dfYXBwaWQ6IlNwZWNpZmllcyBhcHBsaWNhdGlvbiBuYW1lIGZvciB0aGUgYHN5c2xvZ2Agd3JpdGVyIixzeXNsb2dfZmFjaWxpdHk6IlNwZWNpZmllcyB0aGUgc3lzbG9nIGZhY2lsaXR5IHRvIHVzZSB3aXRoIHRoZSBgc3lzbG9nYCB3cml0ZXIiLHN5c2xvZ19ob3N0OiJTcGVjaWZpZXMgdGhlIGhvc3QgdG8gc2VuZCBsb2dzIHRvIGJ5IGBzeXNsb2dgIHdyaXRlciIsc3lzbG9nX3BvcnQ6IlNwZWNpZmllcyB0aGUgcG9ydCB0byBzZW5kIGxvZ3MgdG8gYnkgYHN5c2xvZ2Agd3JpdGVyIix3cml0ZV9idWZmZXI6IkJ1ZmZlciBmb3IgYGZpbGVgIGxvZyB3cml0ZXIsIGJ5dGVzIix3cml0ZV9kZWxheToiRGVsYXkgZm9yIGBmaWxlYCBsb2cgd3JpdGVyLCBtaWxsaXNlY29uZHMifSxuYXRpdmVfcXVlcnlfc2VydmVyczp7X186IntWMn1xdWVyeS1zZXJ2ZXJzLmh0bWwje2tleX0iLCIiOiJOYXRpdmUgRXJsYW5nIHF1ZXJ5IHNlcnZlciIsZW5hYmxlX2VybGFuZ19xdWVyeV9zZXJ2ZXI6IklmIGB0cnVlYCwgRXJsYW5nIFFTIGlzIGVuYWJsZWQgaW4gMi54Iixlcmxhbmc6IkVybGFuZyBRUyBsb2NhdG9yIGZvciBDb3VjaCAxLngifSxwdXJnZTp7X186IntWM31taXNjLmh0bWwje2tleX0iLCIiOiJDb25maWd1cmF0aW9uIG9mIGRhdGFiYXNlIHB1cmdlIixtYXhfZG9jdW1lbnRfaWRfbnVtYmVyOiJNYXggbnVtYmVyIG9mIGRvY3MgYWxsb3dlZCBpbiBhIHNpbmdsZSBwdXJnZSByZXF1ZXN0IixtYXhfcmV2aXNpb25zX251bWJlcjoiTWF4IG51bWJlciBvZiBhY2N1bXVsYXRlZCByZXZpc2lvbnMgaW4gYSBzaW5nbGUgcHVyZ2UgcmVxdWVzdCIsaW5kZXhfbGFnX3dhcm5fc2Vjb25kczoiTWF4IGR1cmF0aW9uIGZvciB1cGRhdGluZyBpbmRleCB0byBjb21wbHkgbG9jYWwgcHVyZ2UgY2hlY2twb2ludCJ9LHNtb29zaDp7X186IntWM31jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJBdXRvY29tcGFjdGlvbiBkYWVtb24gc2V0dGluZ3MiLGRiX2NoYW5uZWxzOiJMaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBkYiBjb21wYWN0aW9uIGNoYW5uZWwgbmFtZXMiLHZpZXdfY2hhbm5lbHM6Ikxpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIHZpZXcgaW5kZXggY29tcGFjdGlvbiBjaGFubmVsIG5hbWVzIn0sInNtb29zaC5yYXRpb19kYnMiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgZGJzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LCJzbW9vc2gucmF0aW9fdmlld3MiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgdmlldyBpbmRpY2VzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LHF1ZXJ5X3NlcnZlcnM6e19fOiJ7VjJ9cXVlcnktc2VydmVycy5odG1sI3trZXl9IiwiIjoiUXVlcnkgc2VydmVycyBsaXN0IiwiKiI6IktleSBpcyBsYW5ndWFnZSwgdmFsdWUgaXMgcGF0aCB0byBwcm9jZXNzb3IifSxxdWVyeV9zZXJ2ZXJfY29uZmlnOntfXzoie1YyfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IlF1ZXJ5IHNlcnZlcnMgY29uZmlndXJhdGlvbiIsY29tbWl0X2ZyZXE6IkRlbGF5IGluIHNlY29uZHMgYmVmb3JlIHZpZXcgaW5kZXggY2hhbmdlcyBhcmUgY29tbWl0dGVkIHRvIGRpc2siLGxpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixvc19wcm9jZXNzX2xpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixyZWR1Y2VfbGltaXQ6IkNvbnRyb2xzIGlmIHJlZHVjZSB0aHJvd3MgZXJyb3Igb24gYSBzdGVwIHdoaWNoIGlzIG1vcmUgdGhhbiB0d2ljZSBhcyBsYXJnZSBhcyBpbnB1dCIsc29mdF9saW1pdDoiU29mdCBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIE9TIHByb2Nlc3NlcyB1c2FibGUgYnkgUXVlcnkgU2VydmVycyIsb3NfcHJvY2Vzc19zb2Z0X2xpbWl0OiJTb2Z0IGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIn0scmVwbGljYXRvcjp7X186IntWMn1yZXBsaWNhdG9yLmh0bWwje2tleX0iLCIiOiJSZXBsaWNhdG9yIERCIGNvbmZpZyIsYXV0aF9wbHVnaW5zOiJMaXN0IG9mIHJlcGxpY2F0b3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uIHBsdWdpbnMiLGNlcnRfZmlsZToiUGF0aCB0byBhIGZpbGUgY29udGFpbmluZyB0aGUgdXNlcuKAmXMgY2VydGlmaWNhdGUiLGNoZWNrcG9pbnRfaW50ZXJ2YWw6IlJlcGxpY2F0aW9uIGNoZWNrcG9pbnQgaW50ZXJ2YWwsIG1pbGxpc2Vjb25kcyIsY29ubmVjdGlvbl90aW1lb3V0OiJIVFRQIGNvbm5lY3Rpb24gdGltZW91dCBwZXIgcmVwbGljYXRpb24gaW4gbWlsbGlzZWNvbmRzLCBkaXZpZGVkIGJ5IDMgZm9yIHB1bGwgc3luYyIsaHR0cF9jb25uZWN0aW9uczoiTWF4IG51bWJlciBvZiBIVFRQIGNvbm5lY3Rpb25zIHBlciByZXBsaWNhdGlvbiIsaW50ZXJ2YWw6IlNjaGVkdWxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIixrZXlfZmlsZToiUGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgdXNlcuKAmXMgcHJpdmF0ZSBQRU0gZW5jb2RlZCBrZXkiLG1heF9jaHVybjoiTWF4IG51bWJlciBvZiByZXBsaWNhdGlvbiBqb2JzIHRvIHN0YXJ0L3N0b3AgZHVyaW5nIHJlc2NoZWR1bGluZyIsbWF4X2pvYnM6Ik1heCBudW1iZXIgb2YgYWN0aXZlbHkgcnVubmluZyByZXBsaWNhdGlvbnMiLHBhc3N3b3JkOiJVc2Vy4oCZcyBwYXNzd29yZCwgaWYgdGhlIHByaXZhdGUga2V5IGZpbGUgaXMgcGFzc3dvcmQgcHJvdGVjdGVkIixyZXRyaWVzX3Blcl9yZXF1ZXN0OiJJZiBhIHJlcXVlc3QgZmFpbHMsIHRoZSByZXBsaWNhdG9yIHdpbGwgcmV0cnkgaXQgdXAgdG8gTiB0aW1lcyIsc29ja2V0X29wdGlvbnM6IkZpbmUgdHVuZSByZXBsaWNhdGlvbiBzb2NrZXQgb3B0aW9ucyIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIixzc2xfdHJ1c3RlZF9jZXJ0aWZpY2F0ZXNfZmlsZToiRmlsZSBjb250YWluaW5nIGEgbGlzdCBvZiBwZWVyIHRydXN0ZWQgY2VydGlmaWNhdGVzIGluIHRoZSBQRU0gZm9ybWF0Iix1cGRhdGVfZG9jczoiSWYgYHRydWVgIENvdWNoIHVwZGF0ZXMgX3JlcGxpY2F0b3IgZG9jcyBvbiB0YXNrIGVycm9yIGFuZCBzdGFydCIsdXNlX2NoZWNrcG9pbnRzOiJJZiBgdHJ1ZWAgQ291Y2hEQiBtYWtlcyBjaGVja3BvaW50cyBkdXJpbmcgYW5kIGF0IHRoZSBjb21wbGV0aW9uIG9mIHJlcGxpY2F0aW9uIix2ZXJpZnlfc3NsX2NlcnRpZmljYXRlczoiSWYgYGZhbHNlYCBpbnZhbGlkIGNlcnRpZmljYXRlcyBkbyBub3QgcHJldmVudCByZXBsaWNhdGlvbiIsd29ya2VyX2JhdGNoX3NpemU6Ik51bWJlciBvZiBkb2NzIHRvIHJlYWQgaW4gYmF0Y2ggZHVyaW5nIHN5bmMiLHdvcmtlcl9wcm9jZXNzZXM6Ik51bWJlciBvZiBhIHJlcGxpY2F0aW9uIHN1Yi1wcm9jZXNzZXMgdG8gcnVuIHNpbXVsdGFuZW91c2x5In0scmVzaGFyZGluZzp7X186IntWMn1yZXNoYXJkaW5nLmh0bWwje2tleX0iLCIiOiJSZXNoYXJkaW5nIGNvbmZpZ3VyYXRpb24iLGRlbGV0ZV9zb3VyY2U6ImlmIGB0cnVlYCBzb3VyY2Ugc2hhcmQgc2hvdWxkIGJlIGRlbGV0ZWQgYWZ0ZXIgcmVzaGFyZGluZyIsbWF4X2pvYnM6Ik1heGltdW0gbnVtYmVyIG9mIHJlc2hhcmRpbmcgam9icyBwZXIgY2x1c3RlciBub2RlIixtYXhfcmV0cmllczoiSG93IG1hbnkgdGltZXMgdG8gcmV0cnkgc2hhcmQgc3BsaXR0aW5nIHN0ZXBzIGlmIHRoZXkgZmFpbCIscmV0cnlfaW50ZXJ2YWxfc2VjOiJIb3cgbG9uZyB0byB3YWl0IGJldHdlZW4gc3Vic2VxdWVudCByZXRyaWVzLCBzZWNvbmRzIixzb3VyY2VfY2xvc2VfdGltZW91dF9zZWM6IkhvdyBtYW55IHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHNvdXJjZSBzaGFyZCB0byBjbG9zZSIsdXBkYXRlX3NoYXJkX21hcF90aW1lb3V0X3NlYzoiSG93IG1hbnkgc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgc2hhcmQgbWFwIHVwZGF0ZSBvcGVyYXRpb24gdG8gY29tcGxldGUifSxzc2w6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiSFRUUFMgb3B0aW9ucyIsY2FjZXJ0X2ZpbGU6IkNBIENlcnRpZmljYXRlIGZpbGUgcGF0aCIsY2VydF9maWxlOiJDZXJ0aWZpY2F0ZSBmaWxlIHBhdGgiLGNpcGhlcnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBjaXBoZXIgbGlzdCwgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixmYWlsX2lmX25vX3BlZXJfY2VydDoiUmVxdWlyZSBwcmVzZW5jZSBvZiBjbGllbnQgY2VydGlmaWNhdGUgaWYgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQiLGtleV9maWxlOiJDZXJ0aWZpY2F0ZSBrZXkgZmlsZSBwYXRoIixwYXNzd29yZDoiQ2VydGlmaWNhdGUga2V5IHBhc3N3b3JkIixzZWN1cmVfcmVuZWdvdGlhdGU6IkVuYWJsZSBzZWN1cmUgcmVuZWdvdGlhdGlvbiIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIix0bHNfdmVyc2lvbnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBTU0wvVExTIHByb3RvY29sIHZlcnNpb25zIix2ZXJpZnlfZnVuOiJTU0wgdmVyaWZpY2F0aW9uIGZ1bmN0aW9uIGxvY2F0b3IiLHZlcmlmeV9zc2xfY2VydGlmaWNhdGVzOiJJZiBgdHJ1ZWAgZW5hYmxlcyBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24ifSxzdGF0czp7X186IntWMn1taXNjLmh0bWwje2tleX0iLCIiOiJTdGF0aXN0aWMgY2FsY3VsYXRpb24iLHJhdGU6IlJhdGUgb2Ygc3RhdGlzdGljcyBnYXRoZXJpbmcgaW4gbWlsbGlzZWNvbmRzIixzYW1wbGVzOiJJbnRlcnZhbHMgZm9yIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiwgc2Vjb25kcyJ9LHV1aWRzOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlVVSURzIGNvbmZpZyIsYWxnb3JpdGhtOiJHZW5lcmF0aW9uIGFsZ29yaXRobSwgYHJhbmRvbWAsIGBzZXF1ZW50aWFsYCwgYHV0Y19yYW5kb21gLCBgdXRjX2lkYCIsbWF4X2NvdW50OiJQZXItcmVxdWVzdCBVVUlEIGxpbWl0LCBudW1iZXIiLHV0Y19pZF9zdWZmaXg6IlN1ZmZpeCB0byBhcHBlbmQgd2hlbiBgdXRjX2lkYCBVVUlEIGdlbmVyYXRvciBpcyB1c2VkIn0sdmVuZG9yOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlZlbmRvciBpbmZvcm1hdGlvbiIsIioiOiJLZXkgaXMgYSBrZXkgZm9yIGBHRVQgL2AgcmVzcG9uc2UsIHZhbHVlIGlzIHJldHVybmVkIHVuZGVyIHRoZSBrZXkifSx2aG9zdHM6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiVmlydHVhbCBob3N0cyBsaXN0IiwiKiI6IktleSBpcyBsaWtlIGBkb21haW4ubmFtZTo1OTg0YCwgdmFsdWUgaXMgYC9kYm5hbWUvZG9jLy4uLmAifSx2aWV3X2NvbXBhY3Rpb246e19fOiJ7VjJ9Y29tcGFjdGlvbi5odG1sI3trZXl9IiwiIjoiVmlld3MgY29tcGFjdGlvbiBvcHRpb25zIixrZXl2YWx1ZV9idWZmZXJfc2l6ZToiS2V5LVZhbHVlcyBidWZmZXIgc2l6ZSwgYnl0ZXMifSxjb3VjaGJveDp7X186IntDQn0jY291Y2hib3gtMSIsIiI6IkNvdWNoYm94IGNvbmZpZyIsZGVidWc6IlR1cm5zIG9uIGRlYnVnIG1vZGUgKG1vcmUgaW5mb3JtYXRpdmUgbWVzc2FnZXMpIixub2RlbmFtZToiU2hvcnRjdXQgbmFtZSBvZiBjdXJyZW50IG5vZGUiLG5vZGVzOiJMaXN0IG9mIG5vZGVzLCBKU09OOyBub2RlbmFtZXMgYXJlIGtleXMsIFVSTHMgYXJlIHZhbHVlcyIsbWF4X3BhcmFsbGVsX2NoYW5nZXM6Ik1heGltdW0gY2hhbmdlcyB0aWNrcyBwcm9jZXNzZWQgc2ltdWx0YW5lb3VzbHkiLGNvbGRfc3RhcnQ6IkRlZmluZXMgaWYgZmlyc3QgcnVuIHN0YXJ0cyBmcm9tIGN1cnJlbnQgc2VxdWVuY2VzIG9yIERCIGZpcnN0IHNlcSAoJ25vcm1hbCcpIixhcGk6IkNvbmZpZ3VyZXMgUkVTVCBBUEksIEpTT04iLHByb3h5OiJQcm94eSBzZXR0aW5ncywgSlNPTi4gRGVmYXVsdCBpcyBhIG1hc2sgYSBwYXRoIHJld3JpdGVzIGludG8iLHNvY2tldDoiU29ja2V0LmlvIGNvbmZpZyIsbWFpbDoiRW1lcmdlbmN5IG5vdGlmaWNhdGlvbnMgZW1haWxzIixyZWRpc19pcDoiUmVkaXMgZG9tYWluIG9yIElQIGFkZHJlc3MiLHJlZGlzX3BvcnQ6IlJlZGlzIHBvcnQiLHJlZGlzX3Bhc3N3b3JkOiJSZWRpcyBwYXNzd29yZCwgaWYgYW55IixyZWRpc19jb21tYW5kZXI6IlJlZGlzIGNvbW1hbmRlciBjb25maWcsIEpTT04ifSxjb3VjaGJveF9hcGk6e19fOiJ7Q0J9I3Jlc3QtYXBpIiwiIjoiTGlzdCBvZiBlbmRwb2ludHMgYW5kIGRkb2NzIGF0dGFjaGVkIHRvIHRoZW0iLCIqIjoiS2V5IGlzIGVuZHBvaW50IHdpdGggYWxsIGAvYCByZXBsYWNlZCB3aXRoIGAhYCwgdmFsdWUgaXMgYGRiL2Rkb2MgcGx1Z2luMSBwbHVnaW4yIC4uLmAifSxjb3VjaGJveF9ob29rczp7X186IntDQn0jaG9va3MtY29uZmlndXJhdGlvbiIsIiI6Ikxpc3Qgb2YgZGVzaWduIGRvY3VtZW50cyB3aXRoIGhvb2tzIGFuZCBwbHVnaW5zIHRoZXkgY2FuIHVzZSIsIioiOiJLZXkgaXMgcGF0aCBvZiBkZG9jLCB2YWx1ZSBpcyBhIGxpc3Qgb2YgcGx1Z2lucyBhdmFpbGFibGUgZm9yIHRoZSBkZG9j4oCZcyBob29rcyJ9LGNvdWNoYm94X3BsdWdpbnM6e19fOiJ7Q0J9I2NvdWNoYm94LXBsdWdpbnMiLCIiOiJDb3VjaGJveCBwbHVnaW5zIGNvbmZpZyIsIioiOiJLZXlzIGlzIGEgcGx1Z2luIG5hbWUsIHZhbHVlIGlzIEpTT04gcGx1Z2luIGNvbmZpZyJ9fX0sJGFib3V0OntMX1BITzoiUGhvdG9uIHZlcnNpb24iLExfUEhPQUREOiJQaG90b24gYWRkb25zIixMX1BIT0xJQlM6IlBob3RvbiBsaWJzIixMX1BIT0ZPTlRTOiJGb250cyB1c2VkIixMX1ZFUjoiQ291Y2hEQiB2ZXJzaW9uIixMX1ZFTkRPUjoiVmVuZG9yIixMX1VSTDoiTm9kZSBVUkwiLExfQ09VQ0g6IldlbGNvbWUgbXNnIixMX0ZFQVQ6IkF1eCBmZWF0dXJlcyIsTF9DTFVTVEVSOiJDbHVzdGVyIixUWFRfQ0xVU1RFUjpmdW5jdGlvbih4KXtyZXR1cm4geCsoeCUxMD09MSYmeCUxMDAhPTExPyIgbm9kZSI6IiBub2RlcyIpfSxMX1BFUkY6IlBlcmZvcm1hbmNlIixMX1BFUkZURVNUOiJSdW4gdGVzdC4uLiIsTF9HSVRIVUI6IlBob3RvbiBhdCBHaXRodWIiLExfU09VUkNFUzoiU291cmNlIGNvZGUiLExfREw6IkRvd25sb2FkIFBob3RvbiBhcHAganNvbi4uLiIsTF9ETF9MSU5LOiJDbGljayB0byBkb3dubG9hZCIsTF9ETFBSRVA6IlByZXBhcmluZyBqc29uLi4uIixMX0NIRUNLX1VQREFURVM6IkNoZWNrIGZvciB1cGRhdGVzIixUWFRfVVBEOidOZXcgdmVyc2lvbiBmb3VuZC4gTG9jYWwgdmVyc2lvbiBpcyA8bm9iciBjbGFzcz0iYm9sZGVyIj57MX08L25vYnI+LCBsYXRlc3QgaXMgPG5vYnIgY2xhc3M9ImJvbGRlciI+ezJ9PC9ub2JyPi4gezN9ICcsVFhUX1VQRF9GRUFUVVJFUzonPHVsIGNsYXNzPSJmczkwIG10OCBtYjEyIiBzdHlsZT0ibWF4LWhlaWdodDozNTBweDtvdmVyZmxvdy15OnNjcm9sbDsiPnsxfTwvdWw+JyxNU0dfVVBEX05PTkVFRDoiTm8gdXBkYXRlIG5lZWRlZCIsQlROX1VQREFURToiVXBkYXRlIFBob3RvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixFUlJfVVBEQVRFX0NIRUNLOiJGYWlsZWQgcmVhZGluZyBuZXcgdmVyc2lvbiwgc29ycnkiLEVSUl9VUERBVEU6IkZhaWxlZCB1cGRhdGluZyBQaG90b24uIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9IixNU0dfVVBEQVRFX09LOiJQaG90b24gd2FzIHVwZGF0ZWQsIHBsZWFzZSByZWxvYWQgdGhlIHBhZ2UiLFNfVElUTEU6IkN1c3RvbWl6ZSBQaG90b24iLFNfUkVQTzoiVXBkYXRlIHJlcG8gVVJMIixTX1VQRDoiVXBkYXRlIHJlbWluZGVyIixUQUdfVVBEOnt0YWdzOltbe05ldmVyOiJubyJ9XV0sZW1wdHk6eyJUaW1lIHRvIHRpbWUiOiJyZW1pbmQifX0sU19QSU5HOiJQaW5nIC9fc2Vzc2lvbiIsVEFHX1BJTkc6e3RhZ3M6W1t7IkV2ZXJ5IG1pbiI6IjEifSx7IkV2ZXJ5IDXigIltaW4iOiI1In1dXSxlbXB0eTp7TmV2ZXI6IjAifX0sU19TQ1JPTEw6IlNjcm9sbGJhcnMiLFRBR19TQ1JPTEw6e3RhZ3M6W1t7IkhvdmVyIHNsaW0iOiIzIn0seyJTbGltICYgYnJpc2siOiI0In1dXSxlbXB0eTp7TmF0aXZlOiIwIn19LFNfRkZBTUlMWToiVUkgZm9udCBmYW1pbHkiLFNfRldFSUdIVDoiRm9udCB3ZWlnaHQiLFRBR19GV0VJR0hUOnt0YWdzOlt7VGhpbjoiMzAwIn1dLGVtcHR5OntOb3JtYWw6IjQwMCJ9fSxTX0ZDRkFNSUxZOiI8Y29kZT5Db2RlPC9jb2RlPiBmb250IGZhbWlseSIsU19QT0xMOiJUYXNrIHBvbGwgaW50ZXJ2YWwiLFNfU1RBVFNfUE9MTDoiU3RhdHMgcG9sbCBpbnRlcnZhbCIsU19JQ09OOiJCcm93c2VyIHRhYiBpY29uIixTX0NPTFM6IkRCIGxpc3QgY29sdW1ucyIsVEFHX0NPTFM6W3siREIgc2l6ZSI6ImluZm8ifSx7IkFDTCBpbmZvIjoic2VjdXJpdHkifV0sU19USEVNRToiVUkgdGhlbWUiLFRBR19USEVNRTp7dGFnczpbW3tEYXJrOiJkYXJrIn0seyJNYXRjaCBicm93c2VyIjoiYXV0byJ9XV0sZW1wdHk6e0xpZ2h0OiIifX0sU19HUk9VUDoiREIgZ3JvdXBzIixUQUdfR1JPVVA6e3RhZ3M6W1t7MTA6InRpbnkifSx7MzA6InNtYWxsIn0sezEwMDoibm9ybWFsIn0sezI1MDoibGFyZ2UifV0sW3tQcmVmaXhlZDoiYXV0byJ9XV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCKIn0sQlROX0lDT046IlVwbG9hZCBuZXcgaWNvbuKApiIsQlROX0lDT05fUkVTRVQ6IlJlc2V0IGljb24iLEJUTl9BUFBMWToiQXBwbHkifSwkdmlldzp7TVNHX0xPQURJTkc6IkxvYWRpbmcuLi4iLE9QVF9BTExET0NTOiJBbGwgZG9jdW1lbnRzIixPUFRfRERPQ1M6IkRlc2lnbiBkb2N1bWVudHMiLE9QVF9DSEFOR0VTOiJDaGFuZ2VzIGZlZWQiLE9QVF9MT0NBTDoiTG9jYWwgZG9jdW1lbnRzIixPUFRfTVFSSUVTOiJMb2NhbCBNYW5nbyBxdWVyaWVzIixPUFRfTUlORElDRVM6Ik1hbmdvIGluZGljZXMiLFRYVF9GUk9NOiJmcm9tIixQTENfU1RBUlRLRVk6IlN0YXJ0IGtleSBvciBfc2tpcCIsVElQX1NISUZUX01JTlVTOiJTaGlmdCBmcmFtZSBiYWNrd2FyZCIsVElQX1NISUZUX1BMVVM6IlNoaWZ0IGZyYW1lIGZvcndhcmQiLFRJUF9DTEVBUl9GSUxURVI6IkNsZWFyIHN0YXJ0a2V5IixUSVBfVVA6Ik9wZW4gezF9IGRvYyBsaXN0XG5pbiBuZXcgdGFiIixUSVBfUkVMT0FEOiJSZWxvYWQiLEJUTl9ORVdET0M6Ik5ldyBkb2PCoCIsQlROX05FV0RPQ19QT1BVUDoiTmV3IGRvYy4uLiIsQlROX05FV1VTRVJfRExHOiJOZXcgdXNlci4uLiIsQlROX0NPUFlET0NTOiJDb3B5L2R1bXAuLi4iLEJUTl9ERUwwOiJEZWwuLi4iLEJUTl9ERUxET0NTOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jczwvc3Bhbj4uLi4nLEJUTl9ERUwxRE9DOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jPC9zcGFuPi4uLicsQlROX0FDTDoiQUNMLi4uIixCVE5fQ09NUEFDVDoiQ29tcGFjdOKApiIsQlROX0NBTkNFTDoiQ2FuY2VsIixUSVBfQ0xPU0VKU09OOiJDbG9zZSBKU09OIixUSVBfQUREQ09MOiJBZGQgY29sdW1uIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9ERFNUQVRTOic8c3Bhbj5JbmRleCBkYXRhOsKgezJ9PC9zcGFuPiA8c3BhbiBjbGFzcz0ibWwxNSI+SW5kZXggZGlzayBzaXplOsKgezF9PC9zcGFuPicsRVJSX0dFVFZJRVdTOiJGYWlsZWQgcmVhZGluZyBsaXN0IG9mIHZpZXcgZnVuY3Rpb25zIGZvciB7MX0gREIuIixFUlJfR0VUQUNMOiJGYWlsZWQgcmVhZGluZyBzZWN1cml0eSBvYmplY3QiLFRYVF9NQVBWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14fHxhPyJ7MX0gb2YgezJ9IHJvdyIuYXNzaWduKHgsYSkrKDEhPWE/InMiOiIiKToiTm8gcm93cyI7cmV0dXJuIHgmJmEmJm51bGwhPWImJihjPSdGb3VuZCA8c3BhbiBjbGFzcz0idmlldy1mb3VuZCBwbDMgcHIzIj4nK2IrIjwvc3Bhbj4gcm93IisoMSE9Yj8icyI6IiIpKSxjfSxCVE5fVklFV0NPREU6IkNvZGUiLEJUTl9WSUVXQ09ERV9HTTonPHNwYW4gY2xhc3M9ImZpLXBlbmNpbCBmczk1Ij48L3NwYW4+JyxUSVBfVklFV0NPREU6IkVkaXQgdmlldyBzb3VyY2UgY29kZSIsTVNHX1NUQVJUX0NIQU5HRToiU3RhcnRpbmcgZnJvbSBrZXkgezF9IixFUlJfTk9UQVVTRVI6Ik5vdCBhIHVzZXIiLFRYVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9VTlNFTEVDVDoiVW5zZWxlY3QgezF9IixUWFRfVU5TRUxFQ1RfT0Y6IlVuc2VsZWN0IHsxfSBvZiB7Mn0iLFRYVF9TRUxFQ1RfQUxMOiJhbGwiLFRYVF9TRUxFQ1RfRklMVEVSOiJmaWx0ZXJlZCIsVElQX0FOQ0hPUjoiT3BlbiBhcyBhIEpTT04gaW4gbmV3IGJyb3dzZXIgdGFiIixUQUdfUkVEVUNFOnt0YWdzOltbeyJHcm91cCBub25lIjoiMCJ9LHsi4oCJTDHigIkiOiIxIn0seyLigIlMMuKAiSI6IjIifSx7IuKAiUwz4oCJIjoiMyJ9LHsi4oCJTDTigIkiOiI0In0seyLigIlMNeKAiSI6IjUifSx7RXhhY3Q6Ijk5In1dXSxlbXB0eTp7Ik5vIHJlZHVjZSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUQUdfV0lUSERPQ1M6e3RhZ3M6W3siSW5jbHVkZSBkb2NzIjoiZG9jcyJ9XSxlbXB0eTp7IlJldnMgb25seSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUWFRfREVMX1RJVExFOiJCdWxrIGRlbGV0ZSBkb2NzIixUWFRfREVMX1dBUk46ZnVuY3Rpb24oeCxhKXtyZXR1cm4iWW91IGFyZSBnb2luZyB0byBkZWxldGUgIit4KyIgZG9jIisoeD4xPyJzIjoiIikrIiBmcm9tIHRoZSDigJgiK2ErIuKAmSBEQi4ifSxUWFRfREVMX1dBUk5fSElEREVOOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIk9ubHkgIithKyIgZG9jIisoYT4xPyJzIjoiIikrIiBvZiAiK3grIiBzZWxlY3RlZCAiKygxPT1hPyJpcyI6ImFyZSIpKyIgdmlzaWJsZSBpbiBjdXJyZW50IHNjb3BlLCBiZSBjYXJlZnVsLiJ9LEJUTl9ERUxfU1RBUlQ6IlByb2NlZWQiLExCTF9ERUxfQUxMOiJEZWwgZG9jcyBhbmQgdGhlaXIgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jcyBhcyBkZWxldGVkLCBidXQgcmV0YWluIGNvbnRlbnQiLExCTF9ERUxfUFVSR0U6IlB1cmdlIGRvY3MgY29tcGxldGVseSIsTVNHX0RFTF9PSzpmdW5jdGlvbih4LGEsYixjKXt2YXIgZD0iIGZyb20gdGhlIOKAmCIrYisi4oCZIERCIjtyZXR1cm4gYT09eD9kPSJTdWNjZXNzZnVsbHkgIisoInB1cmdlIiE9Yz8iZGVsZXRlZCAiOiJwdXJnZWQgIikrYSsiIGRvYyIrKGE+MT8icyI6IiIpK2Q6KGQ9IkRlbGV0ZWQgIithKyIgZG9jIisoYT4xPyJzIjoiIikrZCsiLCBidXQgZmFpbGVkIHRvIGRlbGV0ZSAiKyh4LWEpKyIgZG9jIisoeC1hPjE/InMiOiIiKSsiLiAiLGQrPSJQb3NzaWJseSwgZGVsZXRpb24gd2FzIGRlbmllZCBieSB2YWxpZGF0ZSBmdW5jdGlvbiwgb3IgZG9jIisoeC1hPjE/InMgd2VyZSI6IiB3YXMiKSsiIGFscmVhZHkgZGVsZXRlZC4gIixkKz0iU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIiksZH0sTVNHX0RFTF9GQUlMOiJGYWlsZWQgZGVsZXRpbmcgZG9jc+KAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7MX06IHsyfeKAmSJ9LCRkYnM6e1RJUF9SRUxPQUQ6IlJlbG9hZCBEQiBsaXN0IixCVE5fTkVXREI6Ik5ldyBEQi4uLiIsQlROX0NPTVBBQ1Q6IkNvbXBhY3QuLi4iLEJUTl9ERUxEQjoiRGVsZXRlLi4uIixCVE5fTE9HUzoiTG9nc+KAiSIsQlROX1NUQVRTOiJTdGF0c+KAiSIsQlROX0NBTkNFTDoiQ2FuY2VsIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9EQlNWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz0iIjtyZXR1cm4gYz14fHxhP3g9PWE/eCsiIERCIisoYT4xPyJzIjoiIik6eD4xZTR8fGE+MWU0PyJ7MX0gLyB7Mn0iLmFzc2lnbih4LGEpOng+OTkmJmE+OTl8fHg+OTk5fHxhPjk5OT8iezF9IG9mIHsyfSIuYXNzaWduKHgsYSk6InsxfSBvZiB7Mn0gREIiLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gREJzIixiJiYoYys9IiAiK2IpLGN9LFRYVF9UQVNLVklFVzpmdW5jdGlvbih4LGEpe3JldHVybiB4fHxhPyh4PT1hPyJ7MX0gdGFzayI6InsxfSBvZiB7Mn0gdGFzayIpLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gdGFza3MifSxUSVBfREJTSVpFOiJEYXRhOiB7MX1cbkRpc2s6IHsyfSIsTVNHX05FV0RCX1NUQVJUOiJDcmVhdGVkIG5ldyBEQiDigJh7MX3igJkiLE1TR19ORVdEQl9GQUlMOiJGYWlsZWQgY3JlYXRpbmcgREIg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfTkVXREJfTk9BQ0w6IkRCIOKAmHsxfeKAmSBjcmVhdGVkLCBidXQgc2V0dGluZyBzZWN1cml0eSBjb25maWcgZmFpbGVkLCBzbyBEQiBpcyBwdWJsaWMuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIixUWFRfU0VMRUNUOiJTZWxlY3QgezF9IixUWFRfVU5TRUxFQ1Q6IlVuc2VsZWN0IHsxfSIsVFhUX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1NFTEVDVF9GSUxURVI6ImZpbHRlcmVkIixIX0RPQ1M6IkRvY3MiLEhfREVMRE9DUzoiRGVsZXRlZCIsSF9TRVE6IlNlcSIsSF9TSVpFOiJEaXNrIixUSVBfRE9DX0lORk86IlNob3cgREIgaW5mbyIsVElQX0JUTl9BQ0w6IkVkaXQgREIgYWNjZXNzIGNvbnRyb2wgbGlzdCIsVElQX0JUTl9TVEFSOiJBZGQvcmVtb3ZlIHRvIGZhdm9yaXRlcywgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgbGlzdCIsVElQX0JUTl9JTkZPOiJTaG93IERCIGluZm8gSlNPTiIsVElQX0NMT1NFSlNPTjoiQ2xvc2UgSlNPTiIsVFhUX0RCSU5GT19MT0FEOiJMb2FkaW5nLi4uIixFUlJfREJJTkZPOiJFcnJvciByZWFkaW5nIERCIGluZm8iLFRYVF9UQVNLX1RJVExFOiJUYXNrcyIsVEFHU19UQVNLX1RZUEU6e3RhZ3M6W1t7QWN0aXZlOiJhY3RpdmUifV0sW3tTeW5jOiJyZXBsaWNhdGlvbiJ9LHtDb21wYWN0aW9uOiJjb21wYWN0aW9uIn1dXSxlbXB0eTp7IuKAiUFsbOKAiSI6IiJ9fSxUSVBfVEFTS19SRUxPQUQ6IlJlbG9hZCB0YXNrcyIsQlROX1RBU0tfTkVXU1lOQzoiU3luYy9kdW1wLi4uIixCVE5fVEFTS19CQUNLVVA6IlN5bmMvZHVtcC4uLiIsQlROX1RBU0tfUkVTWU5DOiJSZXN0YXJ0Li4uIixUWFRfVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9UX1VOU0VMRUNUOiJVbnNlbGVjdCB7MX0iLFRYVF9UX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1RfU0VMRUNUX0ZJTFRFUjoiZmlsdGVyZWQiLFRYVF9UQVNLX1JFU1lOQ19USVRMRToiUmVzdGFydCByZXBsaWNhdGlvbnMiLFRYVF9UQVNLX1JFU1lOQ19XQVJOOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4nWW91IGFyZSBnb2luZyB0byByZXN0YXJ0IDxzcGFuIGNsYXNzPSJib2xkZXIiPicreCsiPC9zcGFuPiBzeW5jIHRhc2siKyh4PjE/InMiOiIiKSsiLiBUYXNrIGRvYyIrKHg+MT8icyI6IiIpKyIgaW4gIitiKyIgREIgd2lsbCBiZSBkZWxldGVkLCBhbmQgdGhlbiByZS1jcmVhdGVkLiJ9LEJUTl9UQVNLX1BST0NFRUQ6IlByb2NlZWQiLE1TR19UQVNLX1JFU1lOQzoiU3luYyBkb2NzIGRlbGV0ZWQsIHRhc2tzIHN0b3BwZWQuIFRyeWluZyB0byByZXN0YXJ0IHN5bmMgdGFza3MuLi4iLE1TR19UQVNLX1JFU1lOQ19PSzoiU3luYyB0YXNrcyByZXN0YXJ0ZWQiLEVSUl9UQVNLX1JFU1lOQzoiRXJyb3IgcmVzdGFydGluZyBzeW5jIHRhc2tzLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsQlROX1RBU0tfU1RPUDoiUmVtb3ZlLi4uIixUWFRfVEFTS19TVE9QX1RJVExFOiJTdG9wL3JlbW92ZSByZXBsaWNhdGlvbiB0YXNrcyIsVFhUX1RBU0tfU1RPUF9XQVJOOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14K2EsZD0nWW91IGFyZSBnb2luZyB0byBzdG9wIGFuZCByZW1vdmUgPHNwYW4gY2xhc3M9ImJvbGRlciI+JytjKyI8L3NwYW4+IHN5bmMgdGFzayIrKGM+MT8icyI6IiIpKyIuICI7cmV0dXJuIHg+MCYmKGQ9ZCsiVGFzayBkb2MiKyh4PjE/InMiOiIiKSsiIGluICIrYisiIERCIHdpbGwgYmUgZGVsZXRlZC4iKSxkfSxNU0dfVEFTS19TVE9QOiJTeW5jIGRvY3MgZGVsZXRlZCwgdGFza3Mgc3RvcHBlZCIsRVJSX1RBU0tfU1RPUDoiRXJyb3Igc3RvcHBpbmcgdGFza3MsIHNlcnZlciByZXNwb25kZWQgezF9In0sJGZpbGU6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiU2F2ZSBmaWxlICIsQlROX1NBVkVBUzoiU2F2ZSBhcy4uLiIsQlROX0RFTDoiRGVsZXRlLi4uIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19TQVZFOiJGaWxlIHsxfSB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkIGludG8gezJ9IixFUlJfU0FWRToiRXJyb3Igc2F2aW5nIGZpbGUgezF9IGludG8gaXRzIGRvYywgc2VydmVyIHJlc3BvbmRlZCB7Mn0ifSwkZG9jOntUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiwqBTYXZlwqAiLEJUTl9TQVZFQVM6IkNsb25lLi4uIixCVE5fREVMOiJEZWwuLi4iLEJUTl9ESUZGOiJEaWZm4oCJIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLFRYVF9ISVNUX1RJVExFOiJIaXN0b3J5IixUWFRfSElTVF9FTVBUWToiQ2hhbmdlcyBoaXN0b3J5IGlzIGVtcHR5IixCVE5fSElTVF9DTEVBUjoiQ2xlYXIiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLE1TR19TQVZFOiJEb2MgezF9IHdhcyBzdWNjZXNzZnVsbHkgc2F2ZWQgd2l0aCByZXZpc2lvbiB7Mn0iLEVSUl9TQVZFOiJFcnJvciBzYXZpbmcgZG9jLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsRVJSX1NBVkVMT0FEOiJEb2Mgd2FzIHNhdmVkLCBob3dldmVyIGxvYWRpbmcgaXQgYWZ0ZXIgc2F2ZSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9IixNU0dfRURTOiJUaGVyZSBhcmUgYWN0aXZlIGVkaXRvcnMgY29udGFpbmluZyBub3QgeWV0IGFwcGxpZWQgY2hhbmdlcy4iLEJUTl9FRFNfWUVTOiJBcHBseSBjaGFuZ2VzIGFuZCBzYXZlwqAiLEJUTl9FRFNfTk86IkRpc2NhcmQgYW5kIHNhdmXCoCIsTVNHX0NPTkZMSUNUOic8ZGl2IGNsYXNzPSJmczEzMCBsaDE1MCBtYjIgYm9sZGVyIG9yYW5nZSI+Q29uZmxpY3Q8L2Rpdj5Db25mbGljdCBzYXZpbmcgZG9jIOKAmHsxfeKAmSA8YnI+PHNwYW4gY2xhc3M9ImRpYiB3MTQwIj5Zb3VyIHJldjogPC9zcGFuPjxub2JyPnsyfTwvbm9icj4gPGJyPjxzcGFuIGNsYXNzPSJkaWIgdzE0MCI+REIgcmV2OiAgIDwvc3Bhbj48bm9icj57M308L25vYnI+LicsQlROX0NPTkZMSUNUX1lFUzoiT3ZlcndyaXRlIERCIGRvYyIsQlROX0NPTkZMSUNUX05POiJDYW5jZWwgc2F2ZSIsTVNHX0NPTkZMSUNUX0NBTkNFTExFRDoiQ2FuY2VsbGVkLCBkb2Mgd2FzIG5vdCBzYXZlZCIsTVNHX0NPTkZMSUNUX0xPQURGQUlMOiJGYWlsZWQgbG9hZGluZyBjb25mbGljdGluZyByZXZpc2lvbiwgZG9jIGNhbiBub3QgYmUgc2F2ZWQiLFRYVF9ERUxfVElUTEU6IkRlbGV0ZSBkb2MiLFRYVF9ERUxfVElUTEVfQ09ORkxJQ1Q6IkRlbGV0ZSBkb2MgY29uZmxpY3QiLFRYVF9ERUxfV0FSTjoiWW91IGFyZSBnb2luZyB0byBkZWxldGUgZG9jIDxub2JyPuKAmHsxfeKAmTwvbm9icj4gZnJvbSB0aGUg4oCYezJ94oCZIERCLiIsQlROX0RFTF9TVEFSVDoiUHJvY2VlZCIsVFhUX0RFTF9OT0RFTDoiTm90ZSwgdGhhdCB0aGUgZG9jIGhhcyBjb25mbGljdCByZXZpc2lvbnMsIGFuZCBvbmUgb2YgdGhlbSBwcm9iYWJseSBiZWNvbWUgYWN0aXZlIGFmdGVyIGRlbGV0aW9uLiIsVFhUX0RFTF9DT05GTElDVDoiTm90ZSwgdGhhdCB5b3UgYXJlIGRlbGV0aW5nIGNvbmZsaWN0IHJldmlzaW9uLCBpdCB3aWxsIG5vdCBhZmZlY3QgYWN0aXZlIHZlcnNpb24gb2YgdGhlIGRvYy4iLExCTF9ERUxfQUxMOiJEZWwgZG9jIGFuZCBpdHMgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jIGFzIGRlbGV0ZWQsIGJ1dCByZXRhaW4gY29udGVudCIsTEJMX0RFTF9QVVJHRToiUHVyZ2UgZG9jIGNvbXBsZXRlbHkiLE1TR19ERUxfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIGRvYyDigJh7MX3igJkgZnJvbSB0aGUg4oCYezJ94oCZIERCIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBkb2Mg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfREVMX1JFTE9BRDoiVXBkYXRlZCBsYXRlc3QgYWN0aXZlIHJldmlzaW9uIG9mIHRoZSBkb2MiLE1TR19ERUxfUkVMT0FEX0ZBSUw6IkZhaWxlZCByZWFkaW5nIGFjdGl2ZSByZXYgb2YgZG9jIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LCRlcnJvcjp7VFhUX0VSUjonPGRpdiBjbGFzcz0icmVkIHRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+RXJyb3Igc3dpdGNoaW5nIDxpPnsxfTwvaT48YnI+PHNwYW4gY2xhc3M9ImJvbGRlciI+ezJ9PC9zcGFuPjwvZGl2PicsQlROX1JFVFJZOic8c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBvNjAiPjwvc3Bhbj7CoFRyeSBhZ2FpbsKgJyxCVE5fQVVUSDonPHNwYW4gY2xhc3M9ImZpLXRvcnNvIG82MCI+PC9zcGFuPiBMb2cgaW4gJyxUWFRfQzNfQUxMX0RCU180MDE6JzxkaXYgY2xhc3M9InRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+U29ycnksIENvdWNoREIgMyBoaWRlcyBmdWxsIGxpc3Qgb2YgREJzIGZyb20gbm9uLWFkbWluIHVzZXJzLiBUbyBuYXZpZ2F0ZSB0aHJvdWdoIERCcyBzZWxlY3QgYSBEQiB5b3UgdmlzaXRlZCByZWNlbnRseSAoaWYgYW55KSwgb3IgZW50ZXIga25vd24gREIgbmFtZS48L2Rpdj4nLFBMQ19EQk5BTUU6IkVudGVyIGV4aXN0aW5nIERCIG5hbWUiLEJUTl9HTzoiT3BlbiBEQiJ9fX0sQmFzZToiIixBbGw6e30sR3JvdXBzOnt9LFRhYnM6W10sVHlwZXM6W10sSGlzdG9yeTpbXSxEb3dubG9hZFVSTDohMSxSZXBsaWNhdG9yREI6IiIsaXNDbHVzdGVyOiEwLGlzSUU6ITEsaU9TOiExLGlzV2ViS2l0OiExLGlzTWFjOiEwLGNhblppcDpudWxsLENvdWNoOnt2ZXJzaW9uOiIiLHE6MCxuOjAscG9ydDo1OTg0fSxVc2Vyczp7X3NlcTowfSxNZW1iZXJzaGlwOnt9LFBhbmVsSGVpZ2h0OjAsaXNCYXI6ITEsZGF0YTp7cGF0aDpbXSxuYW1lOiIifSxwYXJhbXM6e3Jlc3R5bGU6MTYsc3RyaWN0OiEwfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5kYXRhLGEuQ2ZnKSxjPSQuRGVmZXJyZWQoKSxkPXdpbmRvdy5ERE9DLGU9d2luZG93LmxvY2F0aW9uLGY9d2luZG93Lm5hdmlnYXRvcixnPU9iamVjdC5rZXlzKGEpLmZpbHRlcigvXlwkLyk7YS5fY29tcGlsZWQ9YS5fY29tcGlsZWR8fCEoY3cuQ1d8fCJib29sZWFuIj09dHlwZW9mIGN3LmRlYnVnKSxPYmplY3Qua2V5cyhhLkYpLmZvckVhY2goeD0+YVt4XT1hW3hdfHxhLkZbeF0uYmluZChhKSksYS5TZXNzaW9uPWEuU2Vzc2lvbi5kZWJvdW5jZSgxZTMpLGEuVHlwZXM9Zy5zbGljZSgwKSxhLmlzSUU9ISFmLnVzZXJBZ2VudC5tYXRjaCgvRWRnZXxUcmlkZW50LyksYS5pc01hYz0vTWFjLy50ZXN0KGYucGxhdGZvcm0rIiIpLGEuaU9TPS9eKGlQYWR8aVBob25lKSQvLnRlc3QoZi5wbGF0Zm9ybSsiIil8fGEuaXNNYWMmJmYubWF4VG91Y2hQb2ludHM+MSxhLmlzV2ViS2l0PSFhLmlzSUUmJi9BcHBsZVdlYktpdC8udGVzdChmLnVzZXJBZ2VudCsiIiksYS5Mcz1hLkxzKCksYS5McygiVGFza3MuU3RhcnMiKSYmKGEuTHMoIkRCcy5TdGFycyIsYS5McygiVGFza3MuU3RhcnMiKSksYS5McygiVGFza3MuU3RhcnMiLG51bGwpKSxhLkJhc2V8fChhLkJhc2U9ZD9kLl9iYXNlOltlLnByb3RvY29sLCIiLGUuaG9zdCwiIl0uY29tcGFjdCgpLmpvaW4oIi8iKSksYS5fY29tcGlsZWQmJi9eV2luLy50ZXN0KGYucGxhdGZvcm0rIiIpJiYkKCIjc2Nyb2xsYmFyLXR3ZWFrIikudGV4dChbIiB7d2lkdGg6NHB4OyBoZWlnaHQ6NHB4O30iLCItdGh1bWIge2JhY2tncm91bmQ6cmdiYSg5MCw5MCw5MCwwLjIpOyBib3JkZXItcmFkaXVzOjJweDt9IiwiLXRyYWNrIHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Il0ubWFwKHg9PiI6Oi13ZWJraXQtc2Nyb2xsYmFyIit4KS5qb2luKCJcbiIpKSx4Lmh0bWwoYS5IVE1MKSxPYmplY3Qua2V5cyhhLkVkKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuRWRbeF0uaWQmJihhLkVkW3hdPSQuZXh0ZW5kKCEwLCQubXkuY2FjaGUoYS5FZFt4XS5pZCl8fHt9LGEuRWRbeF0se1BobzphLlBob30pKX0pO3ZhciBoPWEuRWQuanNvbnRyZWU7JC5leHRlbmQoITAsaC4kZmlsZXMudWkseyIuaWtleSI6aC4kbXVsdGkudWlbIi5pa2V5Il0sIi5idG4tanNvbiI6aC4kbXVsdGkudWlbIi5idG4tanNvbiJdfSksWyJIaXN0b3J5IiwiSFRNTC5IaXN0b3J5Um93IiwiRXh0RWQuTm9kZVVwZGF0ZWQiLCJFeHRFZC5FZGl0b3JJbnZva2VkIiwic3R5bGUuICIsImNtZFVuZG8iLCJ1aS4jZG9jLWhpc3RvcnkiLCJ1aS4jc3R5bGUtaGlzdG9yeSIsInVpLiNlbXB0eS1oaXN0b3J5IiwidWkuI2J0bi1oaXN0b3J5LXVuZG8iLCJzdHlsZS4gI2RvYy1oaXN0b3J5Il0uZm9yRWFjaChmdW5jdGlvbih4KXtjdy5saWIudW5tYXNrKGEuJGNvbmZpZyxjdy5saWIuZ2V0cmVmKGEuJGRvYyx4KSx4KX0pLGEuJHN0YXRzPSQuZXh0ZW5kKCEwLHt9LCQubXkuY2FjaGUoYS4kc3RhdHMuaWQpfHx7fSxhLiRzdGF0cyk7dmFyIGk9WyJUYWIiLCJMb2dpbiIsIkxvZ291dCIsIlJlcUpTT04iLCJDb21wYWN0IiwiTmV3REIiLCJEZWxEQiIsIlNlY09iaiIsIlVzZXJEb2MiLCJNYW5nb0VkIiwiVmlld0VkIiwiSW5kZXhFZCIsIlN5bmNUYXNrIiwiU3luY1Rhc2suRHVtcFppcCIsIlN5bmNUYXNrLlVuZHVtcCJdLmFkZChnKSxqPVsiaXNJRSIsImlPUyIsImlzV2ViS2l0IiwiUGhvIiwiUmVxIiwidHJ1bmMiLCJwMnUiLCJTZWwyU2Nyb2xsIiwibmljZVNjcm9sbCIsInNlbGVjdDIiXTtpZihpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9Y3cubGliLmdldHJlZihhLHgpO2ImJihiLmxhbmcmJiQuZXh0ZW5kKGIubGFuZyxhLmxhbmdbeF18fHt9KSxqLmZvckVhY2goZnVuY3Rpb24oeCl7Ylt4XT1hW3hdfSksYi5CdXN5PWEuRi5CdXN5KX0pLGEuajJoPWEuRWQuanNvbnRyZWUuajJoLHgub24oInRhYmNsb3NlLm15IiwoeCxiKT0+YS5DbG9zZShiKSksYS5fY29tcGlsZWQpe3ZhciBrPWEuTHMoIlRhYkNsb3NlSGlzdG9yeSIpO2lmKGsmJmsubGVuZ3RoKWlmKERhdGUubm93KCkta1swXS5zdGFtcDwzZTQpYS5UYWJzPU9iamVjdC5jbG9uZShrWzBdLnRhYnMsITApO2Vsc2V7dmFyIGw9W107ay5mb3JFYWNoKGZ1bmN0aW9uKHgpe0RhdGUubm93KCkteC5zdGFtcD4xNTU1MmU2fHxsLmxlbmd0aDx4LnRhYnMubGVuZ3RoJiYobD14LnRhYnMpfSksbC5sZW5ndGgmJihhLlRhYnM9T2JqZWN0LmNsb25lKGtbMF0udGFicywhMCkpfXZhciBtPWEuTHMoIkNmZyIpO209T2JqZWN0LmlzT2JqZWN0KG0pP206e30sJC5leHRlbmQoITAsYS5DZmcsbSksJC5leHRlbmQoYS5DZmcsT2JqZWN0LnNlbGVjdChtfHx7fSxbImxpc3RDb2xzIiwiZ3JvdXBpbmciXSkpLCInUFQgTW9ubyciPT1hLkNmZy5mb250Q29kZSYmKGEuQ2ZnLmZvbnRDb2RlPSJDb3VzaW5lIiksIidQVCBNb25vJyI9PWEuQ2ZnLmZvbnQmJihhLkNmZy5mb250PSJDb3VzaW5lIiksYS5DZmcudGFiQmFyPSJhdXRvIiwkLm5pY2VzY3JvbGwub3B0aW9ucy5tb3VzZXNjcm9sbHN0ZXA9MjUqYS5DZmcuc2Nyb2xsU3BlZWQtNSwkLmV4dGVuZChhLkNmZyxkJiZkLnNldHRpbmdzP2Quc2V0dGluZ3M6e30pfXJldHVybiBiPWEuQ2ZnLHgudGhlbihmdW5jdGlvbigpe2EuX2NvbXBpbGVkfHwoY3cubG9nKCJQaG90b24gc3RhcnRlZCBpbiBDbG91ZFdhbGwiKSx4Lm9uKCJjbGljay5teSIsImEiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5hdHRyKCJocmVmIik7aWYoIiMiPT1iWzBdKXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9eIytcLz8vLCIiKSkuc3BsaXQoIi8iKS5jb21wYWN0KCEwKTtyZXR1cm4gYS5Td2l0Y2goYyksITF9fSkpLGEuX2NvbXBpbGVkJiYoIWZ1bmN0aW9uKHgpe2Z1bmN0aW9uIGIoKXt2YXIgeD0oZS5oYXNoKyIiKS5yZXBsYWNlKC9eIysvLCIiKS5zcGxpdCgiLyIpLm1hcChkZWNvZGVVUklDb21wb25lbnQpOyJfZGVzaWduIj09eFsxXSYmKHhbMl09Il9kZXNpZ24vIit4WzJdLHgucmVtb3ZlQXQoMSkpLGEuU3dpdGNoKHgpfSQod2luZG93KS5vbigiaGFzaGNoYW5nZS5waG8iLGIuZGVib3VuY2UoMWUzLzYwKzMpKSxudWxsIT14JiYoZS5oYXNoPXgrIiIpLCQod2luZG93KS50cmlnZ2VyKCJoYXNoY2hhbmdlIil9KCksJCgnbGlua1tyZWw9Imljb24iXScpLmF0dHIoImhyZWYiLGIuaWNvbnx8YS5maWxlc1siZmF2aWNvbi5wbmciXS51cmwpLHdpbmRvdy5vbmJlZm9yZXVubG9hZD1mdW5jdGlvbih4KXtpZihhLlRhYnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5oYXNoMCE9eC5oYXNoMX0pKXt2YXIgYj1hLmxhbmcuRExHX1VOTE9BRDt4LnJldHVyblZhbHVlPWJ9cmV0dXJuIGJ9LCQod2luZG93KS5vbigidW5sb2FkIixmdW5jdGlvbigpe3ZhciB4PU9iamVjdC5jbG9uZShhLlRhYnMsITApLGI9YS5McygiVGFiQ2xvc2VIaXN0b3J5Iil8fFtdO2IudW5zaGlmdCh7c3RhbXA6RGF0ZS5ub3coKSx0YWJzOngubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJ1bj0hMSx4LmVycm9yPSExLHguaGFzaDA9eC5oYXNoMT0iIix4fSl9KSxhLkxzKCJUYWJDbG9zZUhpc3RvcnkiLGIudG8oMykpfSksYS5VcGRhdGVyLmRlYm91bmNlKDFlMykoKSxhLnBpbmdTZXNzaW9uLmV2ZXJ5KDFlNCkpLGEubXkucmVzdHlsZSgpfS5kZWJvdW5jZSgxMCkpLGEuR2V0TGlzdCgpLmFsd2F5cyhmdW5jdGlvbigpe2MucmVzb2x2ZSgpfSksYy5wcm9taXNlKCl9LHVpOnsiI2wtcm9vdCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4LmF0dHIoInRpdGxlIixhLmxhbmcuVElQX1JPT1QpLHgub24oImRibGNsaWNrLm15IixmdW5jdGlvbigpe3JldHVybiBhLkNsb3NlQWxsLmRlbGF5KDUwKSwhMX0pfSxiaW5kOmZ1bmN0aW9uKHgpe3JldHVyblt0aGlzLlNWRy5sb2dvLCc8c3BhbiBjbGFzcz0ibm9iYXIgcGw4IGZzMTE1IHcyMjAgbncgb2ggZWxsIGxoMTgwIj4nLHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiPC9zcGFuPiJdLmpvaW4oIiIpfX0sIiNidG4tYXNpZGUtYXV0aCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1jdy5tZSgpLGU9Yy5pc0JhcixmPSIiO2lmKGIuYXR0cigidGl0bGUiLGQ/Yy5sYW5nLlRJUF9QUk9GSUxFOmMubGFuZy5USVBfTE9HSU4pLGY9JzxzcGFuIGlkPSJidG4tYXV0aC1wb3B1cCI+ezF9PC9zcGFuPicuYXNzaWduKGQ/Yy5TVkcudXNlcjpjLlNWRy5sb2dpbiksbnVsbD09YSlyZXR1cm4gZjtpZihiLmRhdGEoIm1vZGFsIikpYi5tb2RhbCghMCk7ZWxzZSBpZihkKXsoY3cubWUoInJvbGVzIil8fFtdKS5sZW5ndGg7dmFyIGc9Yy5pc0Jhcj8yNTA6Yy5teS5maW5kKCIjbC1oZWFkZXIiKS53aWR0aCgpLTQyO2MubXkubW9kYWwoIiNidG4tYXNpZGUtYXV0aCIse2JvdW5kOjUsbWFuaWZlc3Q6Yy5Mb2dvdXQsd2lkdGg6Zyxub3NlOmU/InRvcCI6ImJvdHRvbSIsYWxpZ246InsxfTtyaWdodDotNDRweDsiLmFzc2lnbihlPyJ0b3A6ODclIjoiYm90dG9tOjExNyUiKSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiExLHo6MTk5Nn0pfWVsc2UgYy5teS5tb2RhbCgiI2J0bi1hc2lkZS1hdXRoIix7bWFuaWZlc3Q6Yy5Mb2dpbixib3VuZDoyLHdpZHRoOjMyMCxjbG9zZTohMSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiEwLGdsb2JhbDohMCx6OjNlMyxjc3M6InAyMCBwdDE1IHhncmF5In0pO3JldHVybiBmfSxldmVudHM6ImNsaWNrLm15IixsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJnRoaXMubXkuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpfX19LCIjYnRuLWFzaWRlLWNvbmZpZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX0NPTkZJRyksJzxhIGhyZWY9IiNfY29uZmlnIj4nK3RoaXMuU1ZHLmNvbmZpZysiPC9hPiJ9fSwiI2J0bi1hc2lkZS1zaGFyZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX1NIQVJFKSwnPGEgaHJlZj0iI19hYm91dCI+Jyt0aGlzLlNWRy5zaGFyZSsiPC9hPiJ9LGV2ZW50czoiY2xpY2subXkifSwiI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuZmluZCgiI2wtYXBwdGFicyAubC10YWIuYWN0aXZlICNidG4tdGFiY2xvc2UiKS50cmlnZ2VyKCJjbGljay5teSIpfSxldmVudHM6ImNsaWNrLm15In0sIiNidG4tY2xvc2UtYWxsLXRhYnMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJnRoaXMuQ2xvc2VBbGwuZGVsYXkoNTAsITApLHRoaXMubGFuZy5CVE5fWEFMTH0sZXZlbnRzOlsiY2xpY2subXkiXX0sIiNsLWFwcHRhYnMiOntpbml0OmZ1bmN0aW9uKHgpe3guc29ydGFibGUoe2Rpc3RhbmNlOjV9KX0sZGVsYXk6MSxtZXJnZTohMSxpZDpbImlkIl0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gubmFtZSx4LmFjdGl2ZSx4LmVycm9yLHguaGFzaDAseC5oYXNoMV0pfSxsaXN0Oic8ZGl2IGNsYXNzPSJsLXRhYiI+PC9kaXY+JyxiaW5kOiJ0aGlzLlRhYnMiLG1hbmlmZXN0OiJ0aGlzLlRhYiJ9fSxzdHlsZTp7IiAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxkPWEuQ2ZnLGU9YjwoYz8xMzgwOjE1MTApPzE1OjE2LGY9ZS0xLjgsZz1kLmZvbnRXZWlnaHQsaD0iJy1hcHBsZS1zeXN0ZW0nLCdCbGlua01hY1N5c3RlbUZvbnQnLCdIZWx2ZXRpY2EgTmV1ZScsJ1NlZ29lIFVJJyxVYnVudHUsSGVsdmV0aWNhLFRhaG9tYSxWZXJkYW5hLHNhbnMtc2VyaWYiOyJhdXRvIiE9ZC5mb250JiYoaD1kLmZvbnQrIixzYW5zLXNlcmlmIik7dmFyIGk9IkNvdXNpbmUsdWktbW9ub3NwYWNlLE1vbmFjbyxDb25zb2xhcyxtb25vc3BhY2UiOyJhdXRvIiE9ZC5mb250Q29kZSYmKGk9ZC5mb250Q29kZSsiLHVpLW1vbm9zcGFjZSxtb25vc3BhY2UiKTt2YXIgaj0iZm9udC1mYW1pbHk6ICIraCsiO2ZvbnQtd2VpZ2h0OnsyfTsiLGs9aisiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiO2EuX2NvbXBpbGVkJiYoJCgiYm9keSIpLmNzcyh7ImZvbnQtZmFtaWx5IjpoLCJmb250LXdlaWdodCI6Z30pLCQoIiNjdy1ib2R5IikuY3NzKHsiZm9udC1mYW1pbHkiOmgsImZvbnQtd2VpZ2h0IjpnfSkpO3ZhciBsPSJmb250LXdlaWdodDp7MX0haW1wb3J0YW50OyIuYXNzaWduKCgrZysxMDApLmNsYW1wKDQwMCw2MDApKTtyZXR1cm4gYS5fY29tcGlsZWQmJiQoIiNjdy1ub3RlcyIpLmNzcyh7dG9wOmM/IjUwcHgiOiIxOHB4In0pLHsiIjprLmFzc2lnbihlLGcpKyJsaW5lLWhlaWdodDoxLjZlbTsiLCIgLnBsc2hpbSI6Yj4oYz8xMjcwOjE2MDApPyJwYWRkaW5nLWxlZnQ6MTZweDsiOiIiLCIgYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEiOmouYXNzaWduKCItIixnKSwiIC5Db2RlTWlycm9yLCAucHJlIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsgZm9udC1mYW1pbHk6ezJ9IWltcG9ydGFudDsiLmFzc2lnbihmLGkpLCIgY29kZSI6ImZvbnQtZmFtaWx5OnsxfSFpbXBvcnRhbnQ7Ii5hc3NpZ24oaSksIiAuanNvbmRpZmZwYXRjaC1kZWx0YSwgLmpzb25kaWZmcGF0Y2gtZGVsdGEgcHJlIjoiZm9udC1mYW1pbHk6ezF9IWltcG9ydGFudDsiLmFzc2lnbihpKSwiICNkaWZmLmpzb25kaWZmIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiLmFzc2lnbihmKSwiIC5ib2xkZXIsIC5sLXRhYi5hY3RpdmUgYSI6bCwiICN2aWV3LXBhbmVsIC5qdmFsLWtleSwgI3ZpZXctcGFuZWwgLmp2YWwtYnJhY2tldCI6bCwiICN2aWV3LXJlc3VsdHMgaW5wdXQ6Y2hlY2tlZCtkaXYsICNkYi1saXN0IGlucHV0OmNoZWNrZWQrZGl2IjpsLCIgI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7IiI6Yz8iZGlzcGxheTpub25lIjoicmlnaHQ6MDt0b3A6MDt6LWluZGV4OjE5OTY7IiwiICI6ImNvbG9yOnJnYmEoMTU4LDE4NCwyMzAsMC4zKTsgdHJhbnNpdGlvbjogY29sb3IgMC42czsgZm9udC1zaXplOjE4cHg7IGxpbmUtaGVpZ2h0OjI0cHg7IHdpZHRoOjI0cHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwiOmhvdmVyIjoiY29sb3I6cmdiYSgyNTUsMzAsNjQsMC41KTsifX19LCIgLnhwYW5lbCI6eyIiOiJib3JkZXItcmFkaXVzOjJweCAycHggMCAwOyBoZWlnaHQ6MzFweDsiLCIgLnhidXR0b24iOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7IGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjJweDsiLCIgLm15LXRhZ3MiOnsiIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWFyZ2luLXRvcDogMnB4OyBsaW5lLWhlaWdodDoyMHB4OyAiLCIgLnRhZyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyAiLCIgLnRhZy5hY3RpdmUiOiJiYWNrZ3JvdW5kLWNvbG9yOiNkM2RhZTA7Y29sb3I6ICM0ZDVhNmE7In19LCIgLmJnLXBncmF5IjoiYmFja2dyb3VuZC1jb2xvcjojZTNlOWVjOyIsIiBidXR0b24sIC5idXR0b24iOiJwYWRkaW5nOjAuM2VtIDAuNmVtIDAuNGVtIDAuNmVtIiwiIC5ub2N3bWluIjoiZGlzcGxheTpub25lIWltcG9ydGFudCIsIiAubm90YXAiOiItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7IiwiIC5teS1tb2RhbC1vdmVybGF5IjoiYm94LXNoYWRvdzogMnB4IDNweCAyMnB4IC03cHggcmdiYSgxMCwgMjAsIDI5LCAwLjgpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnQ7IiwiIC5kaWYiOiJkaXNwbGF5OmlubGluZS1mbGV4OyIsIiAudzExcCI6IndpZHRoOjExJTsiLCIgLncxMnAiOiJ3aWR0aDoxMiU7IiwiIC53MThwIjoid2lkdGg6MTglOyIsIiAudzAiOiJ3aWR0aDowcHg7IiwiIC53NDIiOiJ3aWR0aDo0MnB4OyIsIiAudzJlbSI6IndpZHRoOjJlbTsiLCIgLm13MTAwcCI6Im1heC13aWR0aDoxMDAlOyIsIiAubXc5NXAiOiJtYXgtd2lkdGg6OTUlOyIsIiAuYm9sZGVyIjoiZm9udC13ZWlnaHQ6Ym9sZGVyOyIsIiAubGlnaHRlciI6ImZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IiwiIC5saDE0MGkiOiJsaW5lLWhlaWdodDoxLjRlbSFpbXBvcnRhbnQ7IiwiIC50cmFucyI6InBvaW50ZXItZXZlbnRzOm5vbmU7IiwiIC5wYWJjIjoicG9zaXRpb246YWJzb2x1dGU7IiwiIC5wcmVsIjoicG9zaXRpb246cmVsYXRpdmU7IiwiIC53YmEiOiJ3b3JkLWJyZWFrOmJyZWFrLWFsbDsiLCIgLnduIjoid2hpdGUtc3BhY2U6bm9ybWFsOyB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzOyIsIiAub3hoIjoib3ZlcmZsb3cteDpoaWRkZW47IiwiIC50dzEwMCI6InRyYW5zaXRpb246d2lkdGggMC4xcyIsIiAudHc1MDAiOiJ0cmFuc2l0aW9uOndpZHRoIDAuNXMiLCIgLmJ4dG9wIjoiYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4OyIsIiAuYnh0b3AtMzEiOnsiOmFmdGVyIjonYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O3RvcDozMXB4OyBsZWZ0OjA7IHdpZHRoOmNhbGMoMTAwJSAtIDJweCk7IGhlaWdodDpjYWxjKDEwMCUgLSAzMnB4KTtwb2ludGVyLWV2ZW50czpub25lOyB6LWluZGV4OjM7IGNvbnRlbnQ6IiAiOyBwb3NpdGlvbjphYnNvbHV0ZTsgJ30sIiBzZWN0aW9uIjoib3V0bGluZTogbm9uZTsiLCIgLmFkb3duLCAuYXJpZ2h0IjpbImZvbnQtc2l6ZTo1MCU7IGxpbmUtaGVpZ2h0OjFlbTsgZm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDsgIiwidmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsiLCJwYWRkaW5nOjAgMCAxcHggM3B4OyBvcGFjaXR5OjAuMzsgIl0sIiAuYXJpZ2h0OmFmdGVyIjonY29udGVudDoi4pa277iOIjsnLCIgLmFkb3duOmFmdGVyIjonY29udGVudDoi4pa8IjsnLCIgLm15LXRhZ3MuYnV0dG9ucyI6eyIgLnRhZyI6ImJvcmRlci1yYWRpdXM6MDsgYm9yZGVyOiAxcHggc29saWQgI2UzZTVlNzsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnM7bWFyZ2luLWxlZnQ6LTFweDtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmhvdmVyIjoiY29sb3I6IzI3YTsiLCIgLnRhZy5hY3RpdmUiOiJib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6I2UzZTVlNztjb2xvcjp3aGl0ZTtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmZpcnN0LWNoaWxkIjoiYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTNlNWU3OyIsIiAudGFnOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwOyIsIiAudGFnOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjNweDsifSwiIGRpdi5teS1tb2RhbCI6ImJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI0LCAyMjgsIDIzMiwgMC41NSk7IiwiIC5teS1tb2RhbC5tb2RhbC1idXN5Ijp7IjphZnRlciI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6LTFweDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDo1O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjYpOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaS9sb2FkZXItYmFyMi5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIC03cHg7JywiLm5vc2UtdG9wOmJlZm9yZSI6InotaW5kZXg6NjsifSwiIC5wcmUiOiJ3aGl0ZS1zcGFjZTpwcmUtd3JhcDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7IiwiIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3ciOiJib3JkZXItcmFkaXVzOjA7IiwiICNsLWJvYXJkIjp7IiAiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LndpZHRoKCksYz14LnBhcmVudCgpLmhhc0NsYXNzKCJteS1tb2RhbC1mb3JtIiksZD0od2luZG93LmlubmVySGVpZ2h0LyhjPzEuMzoxKXwwKSsicHgiLGU9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxmPWU/MDoxMjYrYi8xMHwwO3JldHVybnsiIjplP1sid2lkdGg6MTAwJTsgcGFkZGluZzowOyBvdmVyZmxvdzpoaWRkZW47IixhLl9jb21waWxlZD8iaGVpZ2h0OmNhbGMoIitkKyIgLSAzMnB4KTsiOiJoZWlnaHQ6Y2FsYygiK2QrIiAtIDcwcHgpOyJdLmpvaW4oIiIpOlsiZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6Y2FsYygxMDAlIC0gezF9cHgpOyIuYXNzaWduKGYpLGEuX2NvbXBpbGVkPyJoZWlnaHQ6IitkKyI7IjoiaGVpZ2h0OmNhbGMoIitkKyIgLSAzOHB4KTsiXS5qb2luKCIiKSwiICNsLXBpdm90LXJiIjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyByaWdodDowOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IiwiIC53MTI4MHBsdXMiOmItZjwxMjgwPyJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyI6IiIsIiAudzEyMDBwbHVzIjpiLWY8MTIwMD8iZGlzcGxheTpub25lIWltcG9ydGFudDsiOiIifX19LCIgI2wtYXBwcyI6eyIiOiJtaW4td2lkdGg6MTAyMHB4OyBtYXJnaW46MCBhdXRvOyBtYXgtd2lkdGg6MTAwJTsiLCIgLmwtYXBwIjp7IiI6Im9wYWNpdHk6MTsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IiwiICI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSEoeC53aWR0aCgpPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxjPWEuX2NvbXBpbGVkLGQ9eC5wYXJlbnQoKS5oYXNDbGFzcygibXktbW9kYWwtZm9ybSIpLGU9KHdpbmRvdy5pbm5lckhlaWdodC8oZD8xLjM6MSl8MCktKGM/MDozMikrKGI/MDozMiksZj0iaGVpZ2h0OmNhbGMoIisoZSsicHgiKSsiIC0gIjtyZXR1cm4gYS5QYW5lbEhlaWdodD1lLTg0LGEuaXNCYXI9Yix7IiAuYXBwaGVpZ2h0IjpmKyIzMnB4KTsiLCIgLnBhbmVsaGVpZ2h0IjpmKyI4NHB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQiOmYrIjg4cHgpOyIsIiAucGFuZWxoZWlnaHQtOCI6ZisiOTJweCk7IiwiIC5wYW5lbGhlaWdodC0xNiI6ZisiMTAwcHgpOyIsIiAucGFuZWxoZWlnaHQtMzIiOmYrIjExNnB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQ4IjpmKyIxMzJweCk7IiwiIC5wYW5lbGhlaWdodC02MyI6ZisiMTQ3cHgpOyIsIiAucGFuZWxoZWlnaHQtNjQiOmYrIjE0OHB4KTsifX0sIiAuYXBwLWhlYWQiOnsiIjoiZGlzcGxheTpibG9jaztoZWlnaHQ6NTJweDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTsiLCIgYnV0dG9uLCAuYnV0dG9uLCAudGFnLmJ0biI6ImhlaWdodDoyZW07cGFkZGluZy10b3A6MC4yZW07cGFkZGluZy1ib3R0b206NHB4O2xpbmUtaGVpZ2h0OjE5cHg7dGV4dC1hbGlnbjpjZW50ZXI7In0sIi5hcHAtYnVzeSI6Im9wYWNpdHk6MC41O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyIsIiAuZmVhdGhlciI6eyI6YmVmb3JlIjp7IiI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDpjYWxjKDEwMCUgLSAxMnB4KTtoZWlnaHQ6MTVweDsgcG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDEpLCByZ2JhKDI1NSwyNTUsMjU1LDApKTt6LWluZGV4OjE5OTA7J30sIjphZnRlciI6eyIiOidjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6Y2FsYygxMDAlIC0gMTJweCk7aGVpZ2h0OjE1cHg7YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyNTUsMjU1LDI1NSwxKSwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7ei1pbmRleDoxOTkwOyd9fX0sIiAuYXBwLWJ1c3k6YWZ0ZXIiOidjb250ZW50OiIgIjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6KzE5OTM7IHdpZHRoOjEwMCU7IGhlaWdodDoxMTAlOyB0b3A6MDsgbGVmdDowOyd9LCIgLmNvbC1qc29uIjp7IiI6InBhZGRpbmc6MCAwIDAgNnB4IWltcG9ydGFudDt3b3JkLXdyYXA6bm9ybWFsOyIsIiAuQ29kZU1pcnJvciI6ImJhY2tncm91bmQ6bm9uZTtmb250LXNpemU6OTUlIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjNlbSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtdHJpbSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtZWQiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsiLCI+ZGl2LmNvbC1lZC1jbG9zZSI6eyIiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246cmlnaHQ7IHBvc2l0aW9uOmFic29sdXRlO3RvcDowOyByaWdodDo1cHg7IHdpZHRoOjk1JSFpbXBvcnRhbnQ7IGhlaWdodDoyMXB4OyB6LWluZGV4OjU7dHJhbnNpdGlvbjpjb2xvciAwLjVzOyBjb2xvcjpyZ2JhKDQxLDEwOSwxNjYsMC43NSk7IiwiOmhvdmVyIjoiY29sb3I6IzEyYTVkYzsifX0sIiAuanZhbC10cmltIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzoxcHggMnB4O2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOnJnYmEoMjEzLCA0OCwgODksIDAuNjMpO2JhY2tncm91bmQtY29sb3I6cmdiYSg0MywgMTA3LCAxOTIsIDAuMDcpOyIsIiAuanZhbC1zaG9ydCI6ImNvbG9yOnJnYmEoODgsMTAxLDEyMywwLjYzKTsiLCIgLmp2YWwta2V5IjoibWFyZ2luLWxlZnQ6MnB4OyBjb2xvcjojNGQ1YTZhOyIsIiAuanZhbC1icmFja2V0Ky5qdmFsLWtleSI6Im1hcmdpbi1sZWZ0OjBweDsiLCIgLmp2YWwtYnJhY2tldCI6ImNvbG9yOiAjODE5NWM1OyIsIiAuanZhbC1zaW1wbGUiOiJjb2xvcjpyZ2JhKDUyLCAxNDMsIDI3LCAwLjc4KTsiLCIgLmp2YWwtdW5kZWZpbmVkIjoiY29sb3I6cmdiYSgxMTcsMTI4LDEzOCwwLjQxKTsiLCIgLmp2YWwtc3RyaW5nIjoiY29sb3I6IzNiNWU4NTsiLCIgLmp2YWwtbnVtYmVyIjoiY29sb3I6IzViOTgwOCIsIiAuQ29kZU1pcnJvci1saW5lbnVtYmVyIjoid2hpdGUtc3BhY2U6bm93cmFwOyIsIiAuQ29kZU1pcnJvci1ndXR0ZXJzIjoiYmFja2dyb3VuZDp3aGl0ZTt4Ym9yZGVyLXJpZ2h0Om5vbmU7IiwiIC5Db2RlTWlycm9yIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5Db2RlTWlycm9yIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsiLCIgLkNvZGVNaXJyb3IgLmNtLW1hdGNoaGlnaGxpZ2h0IjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MiwyNTUsMiwwLjM3KTsgYm94LXNoYWRvdzpub25lOyBib3JkZXItcmFkaXVzOiAxcHg7IiwiIC5Db2RlTWlycm9yIC5jbS1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDIzMiwxMjEsMC43NSkhaW1wb3J0YW50OyBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNTUsMjMyLDEyMSwwLjc1KSFpbXBvcnRhbnQ7IiwiICAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9ImJvb2xlYW4iPT10eXBlb2YgYS5pc0ZGP2EuaXNGRjphLmlzRkY9L0ZpcmVmb3gvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR8fCIiKSxkPWEuQ2ZnLGU9ZC50YWJCYXIsZj0hKGI+PTE0MjAmJiJ0b3AiIT1lKSxnPShkLnRoZW1lLHgucGFyZW50KCkuaGFzQ2xhc3MoIm15LW1vZGFsLWZvcm0iKSksaD0od2luZG93LmlubmVySGVpZ2h0LyhnPzEuMzoxKXwwKS0oYS5fY29tcGlsZWQ/MDozMiksaT17aGVpZ2h0OmEuX2NvbXBpbGVkPyIxMDB2aCI6aCsicHgiLGh0YWI6Zj8zMjpoPDY1MD8zNDpoPDcwMD8zNjpoPDgwMD8zODo0MCx3dGFiOmY/MDoxMjYrYi8xMHwwfSxqPSguNTUqKGItaS53dGFiKXwwKS00MC0yLTMzODtyZXR1cm57IiAjZGItbGlzdCAudmlldy1yb3ciOmMmJiFhLmlzTWFjPyJ3aWR0aDp7MX1weDsiLmFzc2lnbihqKzMzOCk6bnVsbCwiICNkYi1wYW5lbCI6eyIgI2RiLWxpc3QgLnZpZXctcm93Ijp7fX0sIiAjbC1oZWFkZXIiOnsiIjpmP1sid2lkdGg6MTAwJTtoZWlnaHQ6MzJweDtvdmVyZmxvdzpoaWRkZW47IiwiYmFja2dyb3VuZC1zaXplOiAycHggMzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsiLCJkYXJrIj09ZC50aGVtZSYmYS5fY29tcGlsZWQ/ImJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkNmRjZTgsICNmMmY4ZmYpOyI6ImJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwYzE5MzIsICM0YjYyN2MpOyJdLmpvaW4oIiIpOlsiYmFja2dyb3VuZC1jb2xvcjogIzFlMzU1Mzsgd2lkdGg6e3d0YWJ9cHg7IGhlaWdodDp7aGVpZ2h0fTsiLCJvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7Il0uam9pbigiIikuYXNzaWduKGkpLCIgI2wtdGFicyAiOiJtYXgtd2lkdGg6MTAwJTsiLCIgLm5vYmFyIjpmPyJkaXNwbGF5Om5vbmU7IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsiLCIgI2wtdGFicyI6eyIiOmY/Im1pbi13aWR0aDoxMDIwcHg7IG1hcmdpbjowIGF1dG87Ijoid2lkdGg6MTAwJTsgaGVpZ2h0OntoZWlnaHR9OyIuYXNzaWduKGkpLCIgLnVpLXNvcnRhYmxlLWhlbHBlciI6Zj8iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwMiwxMjAsMTUyLDAuOCk7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICM5ZWE2YjA7Ijp7IjpiZWZvcmUiOlsnY29udGVudDoiICI7ZGlzcGxheTpibG9jazsgd2lkdGg6ezJ9cHg7IGhlaWdodDp7MX1weDsnLmFzc2lnbihpLmh0YWIsaS53dGFiLTEwKSwiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDIsMjQ2LDI1NSwwLjIpOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgbGVmdDo1cHg7IiwiYm9yZGVyLXJhZGl1czogM3B4OyJdLmpvaW4oIiIpfSwiIC51aS1zb3J0YWJsZS1wbGFjZWhvbGRlcisubC10YWIiOmY/ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWVhNmIwOyI6IiIsIiAudGFiLWJ1c3k6YWZ0ZXIiOmY/Wydjb250ZW50OiIgIjsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGkvbG9hZGVyLWJhcjIuZ2lmKTsgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IC0ycHg7JywicG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoycHg7IGJvdHRvbTowOyBsZWZ0OjA7IHotaW5kZXg6KzE5ODA7IG92ZXJmbG93OmhpZGRlbjsiXS5qb2luKCIiKTpbJ2NvbnRlbnQ6IiAiOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaS9sb2FkZXItYmFyMi5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb24teTogLTFweDsnLCJwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6ezF9cHg7IGhlaWdodDoycHg7IHRvcDozcHg7IGxlZnQ6MnB4OyB6LWluZGV4OisxOTgwOyBvdmVyZmxvdzpoaWRkZW47Ii5hc3NpZ24oaS5odGFiLTYpLCJ0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IHRyYW5zZm9ybS1vcmlnaW46IDAgMDsgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7Il0uam9pbigiIil9LCIgI2wtcm9vdHRhYiI6eyIiOmY/ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWVhNmIwOyI6Im92ZXJmbG93OmhpZGRlbjsiLCIgIjpmPyJ3aWR0aDogNzJweDsgIjoid2lkdGg6IHt3dGFifXB4OyBoZWlnaHQ6NThweDsgbGluZS1oZWlnaHQ6IDM3cHg7Ii5hc3NpZ24oaSksIiAjbC1yb290IjoiZGlzcGxheTpibG9jazsiKyhmPyJ3aWR0aDogNzJweDsgcGFkZGluZzozcHggMTBweCAwIDIwcHg7ICI6IndpZHRoOiB7d3RhYn1weDsgcGFkZGluZzoxM3B4IDAgMCAxMHB4OyBoZWlnaHQ6NThweDsiLmFzc2lnbihpKSksIi5sLXRhYiI6Zj8iIjoiYm9yZGVyLXRvcDpub25lOyIsIi5sLXRhYjpiZWZvcmUiOmY/IiI6ImRpc3BsYXk6bm9uZTsifSwiICNsLWFwcHRhYnMiOmY/IndpZHRoOmNhbGMoMTAwJSAtIDcycHggLSA5NnB4KTsgd2hpdGUtc3BhY2U6bm93cmFwOyBvdmVyZmxvdzpoaWRkZW47Ijoid2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggc29saWQgIzRmNjQ4MTsgcGFkZGluZy10b3A6NXB4OyBoZWlnaHQ6ezF9cHg7Ii5hc3NpZ24oaC05NCksIiAubC10YWIiOnsiIjpmP1sibGluZS1oZWlnaHQ6MjlweDsgaGVpZ2h0OjMycHg7IG1pbi13aWR0aDo3MnB4OyBtYXgtd2lkdGg6MzAwcHg7IHRyYW5zaXRpb246d2lkdGggMC4yczsiLCJib3JkZXItcmlnaHQ6MXB4IHNvbGlkICM5ZWE2YjA7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCB0cmFuc3BhcmVudDsiLCJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBvdmVyZmxvdzpoaWRkZW4gOyJdLmpvaW4oIiIpOlsibGluZS1oZWlnaHQ6ezJ9cHg7IGhlaWdodDp7MX1weDsiLmFzc2lnbihpLmh0YWIsaS5odGFiLTMpLCJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyJdLmpvaW4oIiIpLCIgIjpmPyJ3aWR0aDpjYWxjKDEwMCUgLyAiKyhhLlRhYnMubGVuZ3RofHwxKSsiKTsiOiJ3aWR0aDoxMDAlOyIsIiAjYnRuLXRhYmNsb3NlIjoiY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6bm9uZTsiKyhmPyJjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMjUpOyI6ImNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7IiksIiAjbC10YWJzdGF0ZSI6eyIiOiJjb2xvcjpyZ2JhKDEzMSwxOTgsMjU1LDAuNjIpOyIsIi5oaWRlKyNidG4tdGFiY2xvc2UiOiJkaXNwbGF5OmJsb2NrOyJ9LCIgLmwtdGFibWFyayI6eyIiOlsid2lkdGg6MTZweDtwb3NpdGlvbjphYnNvbHV0ZTtsaW5lLWhlaWdodDoyMHB4O3RleHQtYWxpZ246Y2VudGVyOyIsInRyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgY29sb3IgMC4zczsiLGY/InJpZ2h0OjA7IHRvcDowOyI6InJpZ2h0OjZweDsgdG9wOnsxfXB4OyIuYXNzaWduKChpLmh0YWItMjYpLzIpXS5qb2luKCIiKX0sIjpob3ZlciAiOnsiICNsLXRhYnN0YXRlIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsiLCIgI2J0bi10YWJjbG9zZSI6ImRpc3BsYXk6YmxvY2shaW1wb3J0YW50OyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNik7In0sIiAjYnRuLXRhYmNsb3NlOmhvdmVyIjoiY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjkpOyIsIiBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyBjb2xvcjp3aGl0ZTsgb3BhY2l0eTowLjghaW1wb3J0YW50OyIsIiBhLnN5c3RlbSI6ImNvbG9yOiNkOGZmYTQ7IiwiOmhvdmVyIGEiOiJvcGFjaXR5OjEhaW1wb3J0YW50OyIsIiAjbC10YWJuYW1lIjp7IiI6IndpZHRoOmNhbGMoMTAwJSAtIDE2cHgpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IHdoaXRlLXNwYWNlOm5vd3JhcDsiKyhmPyJwYWRkaW5nOjAgMCA0cHggNnB4OyI6InBhZGRpbmc6MCAwIDRweCAxMXB4OyIpLCIuc21hbGxlciI6ImZvbnQtc2l6ZTowLjk1ZW07In0sIjpiZWZvcmUiOmY/IiI6eyIiOlsnY29udGVudDoiICI7ZGlzcGxheTpibG9jazsgd2lkdGg6ezF9cHg7IGhlaWdodDoxcHg7Jy5hc3NpZ24oaS53dGFiLTIwKSwiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDIsMjQ1LDI1NSwwLjEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgbGVmdDoxMHB4OyIsImJvcmRlci1yYWRpdXM6IDBweDsgdHJhbnNpdGlvbjogd2lkdGggMC4xcywgaGVpZ2h0IDAuMDZzLCBib3JkZXItcmFkaXVzIDAuMXMsIGJhY2tncm91bmQtY29sb3IgMC4ycywgbGVmdCAwLjFzOyJdLmpvaW4oIiIpfSwiLmFjdGl2ZSI6eyIgYSI6ImNvbG9yOiMwMjBlMWUhaW1wb3J0YW50O29wYWNpdHk6MC44IWltcG9ydGFudDsgeGZvbnQtd2VpZ2h0OmJvbGRlcjsiLCI6aG92ZXIgYSI6Im9wYWNpdHk6MC45NSFpbXBvcnRhbnQ7IiwiIjpmP1siYmFja2dyb3VuZC1zaXplOiAycHggMzJweDsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IiwiYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2EzYjVjZCwgI2QyZGVlZSk7Il0uam9pbigiIik6eyI6YmVmb3JlIjpbJ2NvbnRlbnQ6IiAiO2Rpc3BsYXk6YmxvY2s7IHdpZHRoOnsyfXB4OyBoZWlnaHQ6ezF9cHg7Jy5hc3NpZ24oaS5odGFiLGkud3RhYi0xMCksImJhY2tncm91bmQtY29sb3I6ICNjOGQxZGUhaW1wb3J0YW50OyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjBweDsgbGVmdDo1cHg7IiwiYm9yZGVyLXJhZGl1czogM3B4OyJdLmpvaW4oIiIpfSwiICNsLXRhYnN0YXRlIjoiY29sb3I6cmdiYSgzNywxMzcsMjE1LDAuOCk7IiwiICNidG4tdGFiY2xvc2UiOmY/ImNvbG9yOnJnYmEoMCwxOCw0MCwwLjMpOyI6ImNvbG9yOnJnYmEoMCwxNyw0MCwwKTsiLCI6aG92ZXIgI2J0bi10YWJjbG9zZSI6ImNvbG9yOnJnYmEoMCwxOCw0MCwwLjYpOyIsIiAjYnRuLXRhYmNsb3NlOmhvdmVyIjoiY29sb3I6cmdiYSgwLDE4LDQwLDAuOCk7In19LCIgI2wtYXNpZGUiOnsiIjoicG9zaXRpb246YWJzb2x1dGU7IHsyfTowOyByaWdodDowOyB3aWR0aDp7MX1weDsiLmFzc2lnbihmPzk2Omkud3RhYixmPyJ0b3AiOiJib3R0b20iKSsoZj8iYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOWVhNmIwOyI6ImJvcmRlci10b3A6MXB4IHNvbGlkICM0ZjY0ODE7IikrIndoaXRlLXNwYWNlOm5vd3JhcDsgei1pbmRleDoyOyIsIiAuYXNpZGUtYnRuIjpbIndpZHRoOnsxfXB4OyBoZWlnaHQ6ezJ9cHg7IGN1cnNvcjpwb2ludGVyOyIuYXNzaWduKGY/MzI6aS53dGFiLzUsZj8zMjozNSksZj8iIjoicGFkZGluZzoxcHggMCAwIDA7IHRleHQtYWxpZ246Y2VudGVyOyIsZj8iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICM5ZWE2YjA7IjoiYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICM0ZjY0ODE7IiwiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgb3ZlcmZsb3c6aGlkZGVuOyIsInRyYW5zaXRpb246IGNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zczsgY29sb3I6d2hpdGUhaW1wb3J0YW50OyIsIm9wYWNpdHk6MC43IWltcG9ydGFudDsiXS5qb2luKCIiKSwiIC5hc2lkZS1idG46aG92ZXIiOiJvcGFjaXR5OjEhaW1wb3J0YW50OyIsIiAjYnRuLWNsb3NlLWFsbC10YWJzIjp7IiI6Im9wYWNpdHk6MC42OyBjb2xvcjp3aGl0ZTsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyB3aWR0aDpjYWxjKDEwMCUgLSAzICogezF9cHgpOyIuYXNzaWduKGkud3RhYi81KSwiOmhvdmVyIjoib3BhY2l0eToxOyJ9LCIgYSI6InRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjp3aGl0ZTsiLCIgYTpob3ZlciI6ImNvbG9yOndoaXRlOyJ9fX19fSxQaG86ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0sU2V0VGl0bGU6ZnVuY3Rpb24oeCl7dGhpcy5fY29tcGlsZWQmJiQoImhlYWQgdGl0bGUiKS50ZXh0KHgrIiIpfSxwMnU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHg/Yih4LDEpOngubWFwKGIpO2Z1bmN0aW9uIGIoeCxiKXt2YXIgYz1lbmNvZGVVUklDb21wb25lbnQ7aWYoYXx8MT09Ynx8Mj09Yil7aWYoL15fZGVzaWduXC8uKyQvLnRlc3QoeCkpcmV0dXJuIl9kZXNpZ24vIitjKHguZnJvbSg4KSk7aWYoL15fbG9jYWxcLy4rJC8udGVzdCh4KSlyZXR1cm4iX2xvY2FsLyIrYyh4LmZyb20oNykpfXJldHVybiBjKHgpfX0sajJoOmZ1bmN0aW9uKCl7fSxuaWNlU2Nyb2xsOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuaU9TfHx0aGlzLmlzTWFjfHx0aGlzLmlzV2ViS2l0fHwiMCI9PXRoaXMuQ2ZnLnNjcm9sbFNwZWVkP3guY3NzKHsib3ZlcmZsb3cteSI6dGhpcy5pc1dlYktpdD8ib3ZlcmxheSI6ImF1dG8iLCItbXMtb3ZlcmZsb3ctc3R5bGUiOiItbXMtYXV0b2hpZGluZy1zY3JvbGxiYXIiLCItd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZyI6InRvdWNoIiwic2Nyb2xsYmFyLXdpZHRoIjoidGhpbiIsIm92ZXJmbG93LXgiOiJoaWRkZW4ifSk6eC5uaWNlU2Nyb2xsKGF8fHtjdXJzb3Jjb2xvcjoiIzIzNCIsY3Vyc29yb3BhY2l0eW1pbjouMDcsY3Vyc29yb3BhY2l0eW1heDouNCx6aW5kZXg6M30pLHh9LHNlbGVjdDI6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD14LnNlbGVjdDIoYSk7cmV0dXJuIGMuaU9TJiYoIShhfHx7fSkubXVsdGlwbGUmJiEoYXx8e30pLnRhZ3N8fGIpJiYoZC5vbigic2VsZWN0Mi1vcGVuIixjLnNlbGVjdDJpT1NibHVyKSxkLm9uKCJzZWxlY3QyLWNsb3NlIixmdW5jdGlvbigpe3NldFRpbWVvdXQoYy5zZWxlY3QyaU9TYmx1ciw1MCl9KSksZH0sc2VsZWN0MmlPU2JsdXI6ZnVuY3Rpb24oKXskKCIuc2VsZWN0Mi1zZWFyY2ggaW5wdXQsIDpmb2N1cywgaW5wdXQiKS5wcm9wKCJmb2N1cyIsITEpLmJsdXIoKX0sdHJ1bmM6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5sZW5ndGg+YSsxP3gudHJ1bmNhdGUoYSwibWlkZGxlIiwi4oCmIik6eH0sZGllOmZ1bmN0aW9uKHgpeyQod2luZG93KS5vZmYoIi5waG8iKSx4LmZpbmQoIiNsLWFwcHM+ZGl2IikuZWFjaChmdW5jdGlvbigpeyQodGhpcykubXkoInJlbW92ZSIpfSl9LHBpbmdTZXNzaW9uOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXgubGFzdFBpbmd8fDAsYj1EYXRlLm5vdygpLGM9KCt4LkNmZy5waW5nU2Vzc2lvbnx8MCkuY2xhbXAoMCwxZTMpOyFjfHwoYi1hKS82ZTQ8Y3x8KHgubGFzdFBpbmc9Yix4LlNlc3Npb24oKSl9LGRiVHlwZTp7c3luY3N0YXRlOiIiLHN0YW1wOjAsY29tbWl0dGVkX3VwZGF0ZV9zZXE6LTEsY29tcGFjdF9ydW5uaW5nOiExLGRhdGFfc2l6ZToiIixkaXNrX3NpemU6MCxzaXplc2FmZToiIixzaXpldGlwOiIiLGRiX25hbWU6IiIsZGlza19mb3JtYXRfdmVyc2lvbjoiIixkb2NfY291bnQ6IiIsZG9jX2RlbF9jb3VudDoiIixpbnN0YW5jZV9zdGFydF90aW1lOiIiLHB1cmdlX3NlcToiIix1cGRhdGVfc2VxOiIiLHVwZGF0ZV9zZXFfc2FmZToiIixzZWN1cml0eTp7c3RhbXA6MCxzZXE6LTEsYWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119fSxwcm90ZWN0ZWQ6IiIsc3RhcjoiIixncm91cDoiIix0YXNrczp7c3RhbXA6MCxwaWRzOltdfSxzeW5jczp7c3RhbXA6MCxkb2NzOltdfX0sTGlic1VzZWQ6e2pRdWVyeToiaHR0cHM6Ly9qcXVlcnkuY29tLyIsIiQudWkiOiJodHRwczovL2pxdWVyeXVpLmNvbS8iLCIkLm15IjoiaHR0cDovL2pxdWVyeW15LmNvbS8iLCIkLnRhZ3MiOiIiLCIkLmxpc3QiOiIiLHNlbGVjdDI6Imh0dHBzOi8vc2VsZWN0Mi5naXRodWIuaW8vc2VsZWN0Mi8iLENvZGVNaXJyb3I6Imh0dHBzOi8vY29kZW1pcnJvci5uZXQvIixuaWNlU2Nyb2xsOiJodHRwczovL2dpdGh1Yi5jb20vaW51eWFrc2EvanF1ZXJ5Lm5pY2VzY3JvbGwiLEpDcm9wOiJodHRwczovL2dpdGh1Yi5jb20vdGFwbW9kby9KY3JvcCIsU3VnYXI6Imh0dHBzOi8vc3VnYXJqcy5jb20iLFE6Imh0dHBzOi8vZ2l0aHViLmNvbS9rcmlza293YWwvcSIsVVJMcG9seWZpbGw6Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWJjb21wb25lbnRzL1VSTCIsIndlYi1zdHJlYW1zLXBvbHlmaWxsIjoiaHR0cHM6Ly9naXRodWIuY29tL01hdHRpYXNCdWVsZW5zL3dlYi1zdHJlYW1zLXBvbHlmaWxsIixTdHJlYW1TYXZlcjoiaHR0cHM6Ly9naXRodWIuY29tL2ppbW15d2FydGluZy9TdHJlYW1TYXZlci5qcyIsZmZsYXRlOiJodHRwczovL2dpdGh1Yi5jb20vMTAxYXJyb3d6L2ZmbGF0ZSIsanNvbmRpZmY6Imh0dHBzOi8vZ2l0aHViLmNvbS9iZW5qYW1pbmUvanNvbmRpZmZwYXRjaCIsImN3LmxpYiI6Imh0dHBzOi8vY2xvdWR3YWxsLm1lL2FwaS9jd19saWIifSxGb250c1VzZWQ6e0NvdXNpbmU6Imh0dHBzOi8vd3d3LmZvbnRzcXVpcnJlbC5jb20vZm9udHMvY291c2luZSIsIkZvdW5kYXRpb24gSWNvbnMiOiJodHRwczovL3p1cmIuY29tL3BsYXlncm91bmQvZm91bmRhdGlvbi1pY29uLWZvbnRzLTMifSxIVE1MOic8ZGl2IGlkPSJidG4tY2xvc2UtYWN0aXZlLXRhYiIgY2xhc3M9ImNwIG5vYmFyIHBhYmMgZncyMDAiIHRpdGxlPSJDbG9zZSB0YWIiPuKclTwvZGl2PjxkaXYgaWQ9ImwtaGVhZGVyIj48ZGl2IGlkPSJsLXRhYnMiPjxkaXYgaWQ9Imwtcm9vdHRhYiIgY2xhc3M9ImwtdGFiIj48YSBpZD0ibC1yb290IiBocmVmPSIjIiBjbGFzcz0iIj5QaG90b248L2E+PC9kaXY+PGRpdiBpZD0ibC1hcHB0YWJzIiBjbGFzcz0iZGliIHZhdCBvaCI+PC9kaXY+PGRpdiBpZD0ibC1hc2lkZSI+PGRpdiBpZD0iYnRuLWNsb3NlLWFsbC10YWJzIiBjbGFzcz0ibm9iYXIgZncyMDAgZnM5MCB0YWMgbGgyNDAgY3AiPjwvZGl2PjxkaXYgaWQ9ImJ0bi1hc2lkZS1hdXRoIiBjbGFzcz0iYXNpZGUtYnRuIj48L2Rpdj48ZGl2IGlkPSJidG4tYXNpZGUtY29uZmlnIiBjbGFzcz0iYXNpZGUtYnRuIj48L2Rpdj48ZGl2IGlkPSJidG4tYXNpZGUtc2hhcmUiIGNsYXNzPSJhc2lkZS1idG4iPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImwtYm9hcmQiPjxkaXYgaWQ9ImwtYXBwcyI+PC9kaXY+PGRpdiBpZD0ibC1waXZvdC1yYiI+PC9kaXY+PC9kaXY+JyxTVkc6e2xvZ286JzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzEiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAsIDAsIDMxLCAxNiI+XG4gIDxnIGlkPSJQaG90b25Mb2dvIj5cbiAgICAgPHBhdGggZD0iTTE1LjUsMCBDMjAuMywwLjAgMjQuMiwwLjYgMjcuOCwxLjkgTDI4LjAsMS45IEMyOS42LDIuNSAyOS4yLDIuNCAyOS40LDIuNCBMMzEsMy4xIEwzMSwxNiBMMCwxNiBMMCwzLjEgQzEuNywyLjQgMS4zLDIuNSAyLjQsMi4xIEwyLjksMS45IEM2LjcsMC42IDEwLjYsMC4wIDE1LjEsMC4wIHoiIFxuXHRcdFx0XHRcdCBmaWxsPSIgI0ZGRkZGRiIgZmlsbC1vcGFjaXR5PSIxIi8+XG4gICAgIDxwYXRoIGQ9Ik0zMCwxMiBMMzAsMTUgTDEsMTUgTDEsMTIgTDMwLDEyIHoiIFxuXHRcdFx0XHRcdCBmaWxsPSIgI2Q3MWQyZiIvPlxuICAgICA8cGF0aCBkPSJNMy4wLDMuMCBDMy4xLDMuNyAzLjIsNC4zIDMuMiw0LjYgQzMuNCw1LjcgMy45LDYuNiA0LjcsNy4yIEM1LjQsNy43IDYuMiw4LjAgNy4wLDguMCBDOC4wLDcuOSAxMS42LDguMCAxMy4xLDguMCBDMTQuMCw4LjAgMTQuNiw4LjYgMTUsOS41IEwxNSwxMSBMMSwxMSBMMSwzLjggQzIuNiwzLjEgMS45LDMuNCAzLjAsMy4wIHoiIFxuXHRcdFx0XHRcdCBmaWxsPSIgI0ZBNDg0OCIvPlxuICAgICA8cGF0aCBkPSJNMTUsMSBMMTUsNy43IEMxNC42LDcuMSAxNC4wLDYuOSAxMy40LDYuOCBDOS41LDYuOCA4LjYsNi44IDcuNiw2LjggQzcuNCw2LjggNy4zLDYuOCA3LjMsNi44IEM1LjgsNi44IDQuNCw1LjcgNC4xLDQuMCBMNCwyLjggQzcuNSwxLjUgMTEuMywxLjAgMTUsMSB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNGRjY3NjciLz5cbiAgICAgPHBhdGggZD0iTTI3LjksMy4wIEMyNy44LDMuNyAyNy43LDQuMyAyNy43LDQuNiBDMjcuNSw1LjcgMjcuMCw2LjYgMjYuMiw3LjIgQzI1LjUsNy43IDI0LjcsOC4wIDIzLjksOC4wIEMyMi45LDcuOSAxOS4zLDguMCAxNy44LDguMCBDMTYuOSw4LjAgMTYuMyw4LjYgMTYsOS41IEwxNiwxMSBMMzAsMTEgTDMwLDMuOCBDMjguMywzLjEgMjkuMCwzLjQgMjcuOSwzLjAgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjRkE0ODQ4Ii8+XG4gICAgIDxwYXRoIGQ9Ik0xNiwxIEwxNiw3LjcgQzE2LjMsNy4xIDE2LjksNi45IDE3LjUsNi44IEMyMS40LDYuOCAyMi4zLDYuOCAyMy4zLDYuOCBDMjMuNSw2LjggMjMuNiw2LjggMjMuNiw2LjggQzI1LjEsNi44IDI2LjUsNS43IDI2LjgsNC4wIEwyNywyLjggQzIzLjQsMS41IDE5LjYsMS4wIDE2LDEgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjRkY2NzY3Ii8+XG4gIDwvZz5cbjwvc3ZnPicsdXNlcjonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCwgMCwgMzIsIDMyIj5cblx0PGcgaWQ9ImJ0bi11c2VyLXN2ZyI+PGc+XG4gICAgPHBhdGggaWQ9InN2Zy1hdXRoIiBkPSJNMjYuMjUsMjAuNjUgTDIzLjU1LDIzLjM1IEwyMS43NSwyMS41NSBNMjQsMTcuNSBDMjEuNTEsMTcuNSAxOS41LDE5LjUxIDE5LjUsMjIgQzE5LjUsMjQuNDggMjEuNTEsMjYuNSAyNCwyNi41IEMyNi40OCwyNi41IDI4LjUsMjQuNDggMjguNSwyMiBDMjguNSwxOS41MSAyNi40OCwxNy41IDI0LDE3LjUgeiIgZmlsbC1vcGFjaXR5PSIwIiBcbiAgICAgIHN0cm9rZT0iIzliZDA4OSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgICA8cGF0aCBkPSJNMTguOTksMTguNDQgTDE2LDE3LjM2IEwxNiwxNS4zMiBNMTcsMjIuNSBMNi41LDIyLjUgTDYuNSwyMS4wMSBDNi41LDIwLjAxIDcuMTEsMTkuMTEgOC4wNSwxOC43NyBMMTIsMTcuMzYgTDEyLDE1LjMyIE0xNy45NCwxMS4yMyBDMTcuOTQsOC42MiAxNi4xOCw2LjUgMTQsNi41IEMxMS44MSw2LjUgMTAuMDUsOC42MiAxMC4wNSwxMS4yMyBDMTAuMDUsMTMuODUgMTEuODEsMTUuOTcgMTQsMTUuOTcgQzE2LjE3LDE1Ljk3IDE3Ljk0LDEzLjg1IDE3Ljk0LDExLjIzIHogTTEwLjA5LDEwLjQ3IEMxMC41NywxMC43MiAxMS4wNSwxMC44NCAxMS42MiwxMC44NCBDMTIuNzYsMTAuODQgMTQuMTQsMTAuMTcgMTQuNTksOS4zMSBDMTUuMzMsMTAuNjEgMTYuMTksMTEuMTAgMTcuNTQsMTAuODQgQzE3LjY3LDEwLjgxIDE3Ljc4LDEwLjgyIDE3LjkxLDEwLjgxIiBmaWxsLW9wYWNpdHk9IjAiIFxuICAgICAgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz48L2c+XG48L3N2Zz4nLGxvZ2luOic8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwLCAwLCAzMiwgMzIiPlxuICA8ZyBpZD0ibG9nb19sb2dpbiI+XG4gICAgPGc+XG4gICAgICA8cGF0aCBkPSJNMTYuNSwxOS41IEw0LjUsMTkuNSBMNC41LDEwLjUgTDI3LjUsMTAuNSBMMjcuNSwxNi41MiBNOC41LDE3IEw4LjUsMTMgTTYuODIsMTYuMDkgTDEwLjE3LDEzLjkwIE02LjgzLDEzLjg5IEwxMC4xNiwxNi4xMSBNMTQuNSwxNyBMMTQuNSwxMyBNMTIuODIsMTYuMDkgTDE2LjE3LDEzLjkwIE0xMi44MywxMy44OSBMMTYuMTYsMTYuMTEiIGZpbGwtb3BhY2l0eT0iMCIgXG4gICAgICBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgICAgIDxwYXRoIGlkPSJzdmctdW5hdXRoIiBkPSJNMTguNSwxOS44MyBMMjcuNSwxOS44MyBMMjcuNSwyNi41MCBMMTguNSwyNi41MCB6IE0yMi45NywyMi41NyBMMjIuOTcsMjQuMjQgTTI1LjY3LDE5LjgzIEwyNS42NywxOS4wMCBDMjUuNjcsMTcuNjIgMjQuNDYsMTYuNTAgMjIuOTcsMTYuNTAgQzIxLjQ4LDE2LjUwIDIwLjI3LDE3LjYyIDIwLjI3LDE5LjAwIEwyMC4yNywxOS44MyBNMjMuNDIsMjIuMTUgQzIzLjQyLDIxLjkyIDIzLjIyLDIxLjc0IDIyLjk3LDIxLjc0IEMyMi43MiwyMS43NCAyMi41MiwyMS45MiAyMi41MiwyMi4xNSBDMjIuNTIsMjIuMzggMjIuNzIsMjIuNTcgMjIuOTcsMjIuNTcgQzIzLjIyLDIyLjU3IDIzLjQyLDIyLjM4IDIzLjQyLDIyLjE1IHoiIGZpbGwtb3BhY2l0eT0iMCIgXG4gICAgICBzdHJva2U9IiNGRkMzMDA7IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICAgIDwvZz5cbiAgPC9nPlxuPC9zdmc+Jyxjb25maWc6JzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAsIDAsIDMyLCAzMiI+XG4gIDxnIGlkPSJsb2dvX2NmZyI+XG4gICAgPHBhdGggZD0iTTE2LjQ4LDE4LjUgTDE2LjQ4LDExLjUgTTIyLjUxLDE2LjUgTDIyLjUxLDE4LjUgTTEwLjQ4LDcuNSBMMTAuNDgsMTIuNSBNMTAuNDgsMTQuNSBMMTAuNDgsMTguNSBNMjIuNTEsNy41IEwyMi41MSwxNC41IE0xNi40OCw3LjUgTDE2LjQ4LDkuNSBNMjAuNTEsMTYuNSBMMjQuNTEsMTYuNSBMMjQuNTEsMTQuNSBMMjAuNTEsMTQuNSB6IE0xNC40OCwxMS41IEwxOC40OCwxMS41IEwxOC40OCw5LjUgTDE0LjQ4LDkuNSB6IE04LjQ4LDE0LjUgTDEyLjQ4LDE0LjUgTDEyLjQ4LDEyLjUgTDguNDgsMTIuNSB6IE0yMi41MiwyMS41IEMyMS42OSwyMS41IDIxLjAyLDIyLjE3IDIxLjAyLDIzIEMyMS4wMiwyMy44MiAyMS42OSwyNC41IDIyLjUyLDI0LjUgQzIzLjM1LDI0LjUgMjQuMDIsMjMuODIgMjQuMDIsMjMgQzI0LjAyLDIyLjE3IDIzLjM1LDIxLjUgMjIuNTIsMjEuNSB6IE0xNi40OCwyMS41IEMxNS42NSwyMS41IDE0Ljk4LDIyLjE3IDE0Ljk4LDIzIEMxNC45OCwyMy44MiAxNS42NSwyNC41IDE2LjQ4LDI0LjUgQzE3LjMxLDI0LjUgMTcuOTgsMjMuODIgMTcuOTgsMjMgQzE3Ljk4LDIyLjE3IDE3LjMxLDIxLjUgMTYuNDgsMjEuNSB6IE0xMC40OCwyMS41IEM5LjY1LDIxLjUgOC45OCwyMi4xNyA4Ljk4LDIzIEM4Ljk4LDIzLjgyIDkuNjUsMjQuNSAxMC40OCwyNC41IEMxMS4zMSwyNC41IDExLjk4LDIzLjgyIDExLjk4LDIzIEMxMS45OCwyMi4xNyAxMS4zMSwyMS41IDEwLjQ4LDIxLjUgeiIgZmlsbC1vcGFjaXR5PSIwIiBcbiAgICBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgPC9nPlxuPC9zdmc+JyxzaGFyZTonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMSwgMCwgMzMsIDMyIj5cbiAgPGcgaWQ9ImxvZ29fc2V0dGluZ3MiPlxuICAgIDxwYXRoIGQ9Ik0yMy41ODksMTYuODQ3IEMyNS40NjcsMTQuOTY4IDI1LjgzLDEyLjE0MiAyNC42ODEsOS44OTkgTDIxLjY0MSwxMi43OTkgTDE5LjIwMSwxMi43OTkgTDE5LjIwMSwxMC41MDMgTDIyLjE2LDcuMzEgQzE5LjkxOCw2LjE2MyAxNy4wNjIsNi41MjYgMTUuMTg0LDguNDAzIEMxMy4zMDcsMTAuMjggMTIuOTI1LDEzLjA5NyAxNC4wNzMsMTUuMzQxIEw2Ljg4NCwyMi41MjIgQzYuMTY3LDIzLjIzOSA2LjE2MSwyNC40MDEgNi44NzksMjUuMTE5IEM3LjU5NywyNS44MzcgOC43NTcsMjUuODM3IDkuNDc0LDI1LjExOSBMMTYuNjUzLDE3LjkzOSBDMTguODk2LDE5LjA4NyAyMS43MTIsMTguNzIzIDIzLjU4OSwxNi44NDcgeiBNMjMuMzM0LDE3LjIxOSBMMTkuMjAxLDEyLjc5OSBNMTYuOTA1LDEyLjc5OSBMMTUuNTI3LDE0LjE3NiBNMTguMDUzLDEzLjk0NyBMMTYuNjc2LDE1LjMyNCBNMTkuMjAxLDE1LjA5NSBMMTcuODI0LDE2LjQ3MiIgXG4gICAgICAgICAgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPid9LEY6e01ldHJpYzpmdW5jdGlvbih4LGEpe2lmKCIiPT14KXJldHVybiB4O2E9YXx8Njt2YXIgYj0reHx8MDtpZighYilyZXR1cm4gMDt2YXIgYz0rYi50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUiKVsxXTtpZihiPCsoIjFlIithKSlyZXR1cm4gYisiIjt2YXIgZD1jPjc/MzoyLGU9YyYmYyUzIT0yP2MlMz09MD8yOjE6MDtyZXR1cm4gYi5tZXRyaWMoZSxkKX0sQnl0ZXM6ZnVuY3Rpb24oeCl7aWYoIiI9PXgpcmV0dXJuIHg7dmFyIGE9K3h8fDA7aWYoIWEpcmV0dXJuIiI7dmFyIGI9K2EudG9FeHBvbmVudGlhbCgpLnNwbGl0KCJlIilbMV07cmV0dXJuIGEuYnl0ZXMoYiUzPT0wJiZiPzE6MCl9LFBva2VCdWNrZXQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuUmVxKFt4XSl9LFNldFRoZW1lOmZ1bmN0aW9uKHgpe2Z1bmN0aW9uIGEoKXskKCJib2R5IikucmVtb3ZlQ2xhc3MoKHgsYSk9PihhLm1hdGNoKC8oXnxccyl0aGVtZS1cUysvZyl8fFtdKS5qb2luKCIgIikpfXRoaXMuX2NvbXBpbGVkJiYoImF1dG8iPT14JiZ3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzPyhhKCksJCgiYm9keSIpLmFkZENsYXNzKCJ0aGVtZS1kYXJrIikpOng/KGEoKSwkKCJib2R5IikuYWRkQ2xhc3MoInRoZW1lLSIreCkpOmEoKSwkKCJib2R5IikudHJpZ2dlcigicmVzaXplIikpfSxTZWwyU2Nyb2xsOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczthP3guZmluZCgiLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiKS5lYWNoKGZ1bmN0aW9uKCl7Yi5uaWNlU2Nyb2xsKCQodGhpcykse2JvdW5jZXNjcm9sbDohMCxjdXJzb3Jjb2xvcjoiIzIzNCIsY3Vyc29yb3BhY2l0eW1pbjouMSxjdXJzb3JvcGFjaXR5bWF4Oi40LHJhaWxwYWRkaW5nOntyaWdodDoxfX0pfSk6eC5maW5kKCIuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIHgmJngoKS5yZW1vdmUoKX0pfSxTZXNzaW9uOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXRoaXMuaXNJRTt4LlBobygiX2NvbXBpbGVkIikmJndpbmRvdy5ERE9DJiYkLmFqYXgoe3VybDp4LkJhc2UucmVwbGFjZSgvXC8rJC8sIiIpKyIvX3Nlc3Npb24iLG1ldGhvZDoiZ2V0IixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn0sY2FjaGU6IWF9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKE9iamVjdC5pc09iamVjdCh4KSYmeC51c2VyQ3R4KXt2YXIgYT14LnVzZXJDdHgsYj17bmFtZTphLm5hbWV8fCIiLHJvbGVzOmEucm9sZXN8fFtdfTthLm5hbWV8fCgkLmV4dGVuZCh3aW5kb3cuRERPQy5fbWUsYiksJC5teS5yYWRpbygidXNlckN0eCIsYikpfX0pfSxDbG9zZUFsbDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5UYWJzLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybih4P2IuYWN0aXZlOiFiLnBhdGgubGVuZ3RoKXx8Yi5oYXNoMCE9Yi5oYXNoMT9hOihhLnB1c2goe3RhYmlkOmIuaWQsZW5mb3JjZTohMCxzaWxlbnQ6ITB9KSxhKX0sW10pO2IubGFzdCgpLnNpbGVudD0hMSxiLm1hcChmdW5jdGlvbih4KXthLkNsb3NlKHgpfS5sYXp5KDMwKSl9LEJ1c3k6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTthLm15LnJvb3QoKS50b2dnbGVDbGFzcygiYXBwLWJ1c3kiLHgpLCQubXkucmFkaW8oImFwcGJ1c3kiLHtpZDpiLnRhYmlkLGJ1c3k6eH0pfSxSZXE6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNTdHJpbmc7dmFyIGI9T2JqZWN0LmlzT2JqZWN0LGM9T2JqZWN0LmlzQXJyYXksZD10aGlzLmlzSUUsZT1mdW5jdGlvbih4KXtyZXR1cm4iX25vZGUvX2xvY2FsL19ub2RlcyIhPXg/d2luZG93LmVuY29kZVVSSUNvbXBvbmVudCh4KTp4fSxmPXRoaXMsZz0oZi5kYXRhLGYuQ2ZnKSxoPWYubGFuZyxpPSQuRGVmZXJyZWQoKSxqPSQuZXh0ZW5kKCEwLHttZXRob2Q6IkdFVCIsZGF0YVR5cGU6Impzb24iLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9LGNhY2hlOiFkfSxiKHgpP3g6Yyh4KT97dXJsOnh9Ont1cmw6eCsiIn0pLGs9bShqLnVybCxmLkJhc2UpO3JldHVybiBhP2s6KGt8fGwoNDAwLGguRVJSX1JFUV9JTlZBTElEQ0FMTCksZi5fY29tcGlsZWQmJiEvXC9fc2Vzc2lvbiQvLnRlc3QoaykmJmshPWYuQmFzZSYmZy5yb2xlcy5sZW5ndGgmJi0xPT1jdy5tZSgicm9sZXMiKS5pbmRleE9mKCJfYWRtaW4iKSYmMD09Y3cubWUoInJvbGVzIikuaW50ZXJzZWN0KGcucm9sZXMpLmxlbmd0aD8oY3cubWUoKT9sKDQwMyxoLkVSUl9SRVFfUk9MRVJFUSx7b2s6ITEscmVhc29uOiJjb25maWcifSk6bCg0MDEsaC5FUlJfUkVRX0FVVEhSRVEse29rOiExLHJlYXNvbjoiY29uZmlnIn0pLGkucHJvbWlzZSgpKTooai51cmw9aywkLmFqYXgoaikudGhlbihmdW5jdGlvbih4LGEsYil7aS5yZXNvbHZlKHgsYil9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7dmFyIGI7dHJ5e2I9SlNPTi5wYXJzZSh4LnJlc3BvbnNlVGV4dCl9Y2F0Y2goeCl7fU9iamVjdC5pc09iamVjdChiKXx8KGI9e3Jlc3BvbnNlOngucmVzcG9uc2VUZXh0fSksYi5vaz0hMTt2YXIgYz14LnN0YXR1cztsKGMsYi5yZWFzb258fGIubWVzc2FnZXx8IiIsYiksZi5fY29tcGlsZWQmJmN3Lm1lKCJuYW1lIikmJig0MDE9PWN8fDQwMz09YykmJmYuU2Vzc2lvbigpfSksaS5wcm9taXNlKCkpKTtmdW5jdGlvbiBsKHgsYSxiKXt2YXIgYz1pc05hTih4KT81MDA6K3gsZD1pc05hTih4KSYmIWE/eDphO2R8fChkPWguRVJSX1JFUVtjXXx8aC5FUlJfUkVRWzk5OV0pLGQrPSIiLGkucmVqZWN0KGMsZCxiKX1mdW5jdGlvbiBtKHgsYSl7dmFyIGI9W10sYz17fSxkPVtdLGY9IiIsZz1hPyhhKyIiKS5yZXBsYWNlKC9cLyskLywiIikrIi8iOiIiLGg9e3N0YXJ0a2V5OjEsZW5ka2V5OjEsc3RhcnRfa2V5OjEsZW5kX2tleToxLGtleToxfSxpPS9eX2Rlc2lnblwvLztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHg/Zj0vXmh0dHBbc10/Oi8udGVzdCh4KT94OmcreC5yZXBsYWNlKC9eXC8rLywiIik6T2JqZWN0LmlzQXJyYXkoeCkmJih4LmZvckVhY2goZnVuY3Rpb24oeCxhKXtpZigiIiE9PXgmJm51bGwhPXgpaWYoT2JqZWN0LmlzT2JqZWN0KHgpKSQuZXh0ZW5kKCEwLGMseCk7ZWxzZSBpZihpLnRlc3QoeCsiIikpe3ZhciBkPSh4KyIiKS5zcGxpdCgiLyIpO2IuYWRkKFtkWzBdLGQuZnJvbSgxKS5qb2luKCIvIildKX1lbHNlIGIucHVzaChlKHgrIiIpKX0pLGQ9T2JqZWN0LmtleXMoYykubWFwKGZ1bmN0aW9uKHgpe3ZhciBhPWNbeF07cmV0dXJuKGhbeF18fCJzdHJpbmciIT10eXBlb2YgYSkmJihhPUpTT04uc3RyaW5naWZ5KGEpKSxlKHgpKyI9IitlKGEpfSksZj1nK2Iuam9pbigiLyIpKyhkLmxlbmd0aD8iPyIrZC5qb2luKCImIik6IiIpKSxmfX0sU3dpdGNoOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9cyxlPWMuZGF0YSxmPWMuVGFicy5maW5kSW5kZXgoZnVuY3Rpb24oeCl7cmV0dXJuIHguYWN0aXZlfSl8fDAsZz1PYmplY3QuaXNTdHJpbmcoeCk/eC5yZXBsYWNlKC9eIy8sIiIpLnNwbGl0KCIvIikuY29tcGFjdCghMCk6T2JqZWN0LmlzQXJyYXkoeCk/eC5zbGljZSgwKS5jb21wYWN0KCEwKTpbXTtnLmxlbmd0aD4yJiZnLmpvaW4oIi8iKS5zdGFydHNXaXRoKCJfbm9kZS9fbG9jYWwvX25vZGVzIikmJigoZz1nLmZyb20oMikpWzBdPSJfbm9kZS9fbG9jYWwvX25vZGVzIiksWzEsMiwzXS5mb3JFYWNoKGZ1bmN0aW9uKHgpey9eXyhkZXNpZ258bG9jYWwpJC8udGVzdChnW3hdKSYmKGdbeCsxXSYmKGdbeCsxXT1nW3hdKyIvIitnW3grMV0pLGcucmVtb3ZlQXQoeCkpfSk7dmFyIGgsaT1nLmpvaW4oIlxmZmZkIiksaj1bXTtpZihjLlRhYnMuZm9yRWFjaCh4PT54LnBhdGguam9pbigiXGZmZmQiKT09aT9qLnB1c2goeCk6MCksai5sZW5ndGg+MSYmYSYmKGpbMF09ai5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4LmlkPT1hfSl8fGpbMF0pLChoPWpbMF0pJiZoLmFjdGl2ZSYmaC5ydW4pcmV0dXJuITE7dmFyIGssbD0vXihfbm9kZVwvX2xvY2FsXC9fbm9kZXN8X3VzZXJzfF9yZXBsaWNhdG9yfF9kYnN8X25vZGVzfF9nbG9iYWxfY2hhbmdlcykkLy50ZXN0KGdbMF0pfHwvXlthLXpBLVowLTkkXChcKVwrXC1dW2EtekEtWjAtOSRcKFwpXCtcLVwvX1wuXSokLy50ZXN0KGdbMF0pLG09ImVycm9yIixuPSJFcnJvciIsbz1jLlR5cGVzLnJlZHVjZShmdW5jdGlvbih4LGEpe2lmKHgub2t8fCFjW2FdLm1hdGNoKXJldHVybiB4O3ZhciBiPWNbYV0ubWF0Y2guY2FsbChjLGcuc2xpY2UoMCksbCk7cmV0dXJuIGImJiQuZXh0ZW5kKHgse29rOiEwLHR5cGU6YS5zdWJzdHIoMSl9LGIpLHh9LHtvazohMSx0aXRsZToiRXJyb3IiLHR5cGU6ImVycm9yIixwYXRoOmd9KTtpZihtPW8udHlwZSxuPW8udGl0bGUsaz1vLmFwcERhdGEsZz1vLnBhdGgsImVycm9yIj09bSYmKGs9e2Vycm9yOiJVbnJlY29nbml6ZWQgY29tbWFuZCJ9KSwhaCl7aWYoYy5UYWJzLmxlbmd0aD49Yy5DZmcubWF4VGFicyYmZy5sZW5ndGgpe3ZhciBwPWMuVGFicy5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4geC50cz14LnRzfHwiMDAwMDAwIisoOTktYSkudG9TdHJpbmcoMzYpLHh9KS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIXguZXJyb3ImJiF4LmFjdGl2ZSYmeC5oYXNoMD09eC5oYXNoMX0pLnNvcnRCeSgidHMiKVswXTtpZighcClyZXR1cm4gY3cubGliLm5vdGUoYy5sYW5nLkZBSUxfVE9PX01BTllfVEFCUy5hc3NpZ24oYy5DZmcubWF4VGFicysiIiksImVycm9yIiksITE7Yy5DbG9zZSh7dGFiaWQ6cC5pZCxzaWxlbnQ6ITB9KX0hMCxoPXtpZDpjdy5saWIuc2RibShEYXRlLm5vdygpK2cpLHR5cGU6bSxoYXNoMDoiIixoYXNoMToiIixhY3RpdmU6ITAsbmFtZTpuLHBhdGg6Zy5zbGljZSgwKSxlcnJvcjoiZXJyb3IiPT1tLHJ1bjohMSx0czpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KX0sL14oZGJzfGNvbmZpZ3xhYm91dHxzdGF0c3xsb2cpJC8udGVzdChtKT9jLlRhYnMuaW5zZXJ0KGgsYy5UYWJzLmxlbmd0aCYmIWMuVGFic1swXS5wYXRoLmxlbmd0aD8xOjApOjE9PWcubGVuZ3RoJiZjLlRhYnNbZl0ucGF0aFswXT09Z1swXT9jLlRhYnMuaW5zZXJ0KGgsZik6Yy5UYWJzLmluc2VydChoLGYrMSl9aWYoYy5UYWJzLmZvckVhY2goeD0+eCE9PWg/eC5hY3RpdmU9ITE6MCksaC5hY3RpdmU9ITAsaC50cz1EYXRlLm5vdygpLnRvU3RyaW5nKDM2KSxjLkhpc3RvcnkucmVtb3ZlKGguaWQpLGMuSGlzdG9yeS5wdXNoKGguaWQpLGMuX2NvbXBpbGVkKXt2YXIgcT1oLnBhdGgubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9KS5qb2luKCIvIik7bG9jYXRpb24uaGFzaC5yZXBsYWNlKC9eIy8sIiIpIT1xJiYobG9jYXRpb24uaGFzaD0iIyIrcSl9Yy5TZXRUaXRsZShoLm5hbWUpLGQoKSxjLm15LnJlc3R5bGUoKTt2YXIgcj10KG0sZyxoLmlkLGspO2Z1bmN0aW9uIHMoKXtjLm15LnJlY2FsYygiI2wtYXBwdGFicyIpLGUucGF0aD1PYmplY3QuY2xvbmUoZywhMCl9ZnVuY3Rpb24gdCh4LGEsZCxlKXt2YXIgZixnPWNbIiQiK3hdLGg9Yy5teS5maW5kKCIjbC1hcHBzPiNhcHAtIitkKTtyZXR1cm4haC5sZW5ndGh8fCFoLmlzKCIubXktZm9ybSIpJiYiZXJyb3IiPT14PyhoLmxlbmd0aHx8KGg9JCgnPGRpdiBjbGFzcz0ibC1hcHAiIGlkPSJhcHAtJytkKyciPjwvZGl2PicpLGMubXkuZmluZCgiI2wtYXBwcyIpLmFwcGVuZChoKSksYy5teS5maW5kKCIjbC1hcHBzPi5sLWFwcCIpLmFkZENsYXNzKCJoaWRlIiksaC5yZW1vdmVDbGFzcygiaGlkZSIpLGY9aC5teShnLCQuZXh0ZW5kKHtwYXRoOmEsdGFiaWQ6ZH0sZXx8e30sImVycm9yIj09eD97fTpifHx7fSkpKTpjLm15LmZpbmQoIiNsLWFwcHM+LmwtYXBwIikuZWFjaChmdW5jdGlvbigpe3ZhciB4PSQodGhpcyk7eC5pcyhoKT94LnJlbW92ZUNsYXNzKCJoaWRlIik6eC5hZGRDbGFzcygiaGlkZSIpfSksZnx8aH1yLnRoZW4mJnIudGhlbihmdW5jdGlvbigpe3ZhciB4PSExO2gucnVuPSEwLGguaGFzaDA9aC5oYXNoMT1yLm15KCJtYW5pZmVzdCIpLmhhc2goKSxoLm5hbWU9ci5teSgibWFuaWZlc3QiKS50aXRsZSgpLGMuU2V0VGl0bGUoaC5uYW1lKSxyLm9uKCJjaGFuZ2UubXkiLGZ1bmN0aW9uKCl7aC5oYXNoMT1yLm15KCJtYW5pZmVzdCIpLmhhc2goKTt2YXIgYT1yLm15KCJtYW5pZmVzdCIpLnRpdGxlKCk7aC5oYXNoMCE9aC5oYXNoMXx8YSE9aC5uYW1lPyhoLm5hbWU9YSx4PSEwLGQoKSk6eCYmZCgpLGguYWN0aXZlJiZjLlNldFRpdGxlKGgubmFtZSl9LmRlYm91bmNlKDUwMCkpLHIub24oInJlc2V0dGFiaGFzaC5teSIsZnVuY3Rpb24oKXtoLmhhc2gwPWguaGFzaDE9ci5teSgibWFuaWZlc3QiKS5oYXNoKCksaC5uYW1lPXIubXkoIm1hbmlmZXN0IikudGl0bGUoKSxkKCl9LmRlYm91bmNlKDEwMCkpLGQoKX0pLmZhaWwoZnVuY3Rpb24oeCxiKXtjLlBobygiQ291Y2giKS52ZXI+PSIwMDMuIiYmY3cubWUoKSYmIWcubGVuZ3RofHxjdy5saWIubm90ZShjLmxhbmcuRkFJTF9UQUJfQVBQLCJlcnJvciIpLGMubXkuZmluZCgiI2wtYXBwcz4jYXBwLSIrYSkucmVtb3ZlKCksaC5lcnJvcj0hMCxjb25zb2xlLmxvZyh4LGIpLGguaGFzaDE9aC5oYXNoMD0iZXJyb3IiLHQoImVycm9yIixnLGguaWQse2Vycm9yOk9iamVjdC5pc1N0cmluZyh4KSYmT2JqZWN0LmlzU3RyaW5nKGIpP3grIiAiK2I6eH0pfS5kZWJvdW5jZSgxMCkpfSxDbG9zZTpmdW5jdGlvbih4KXt2YXIgYSxiPXRoaXMsYz0hMTtpZihPYmplY3QuaXNPYmplY3QoeCk/KGE9eC50YWJpZHx8IiIseC5lbmZvcmNlfHwhMSxjPXguc2lsZW50fHwhMSk6YT14KyIiLCEoYi5UYWJzLmxlbmd0aDwyKSYmYSl7dmFyIGQ9Yi5UYWJzLmZpbmQoeD0+eC5pZD09YSk7aWYoZCl7dmFyIGU9Yi5teS5maW5kKCIjbC1hcHBzPiNhcHAtIithKTtlLmxlbmd0aCYmZS5pcygiLm15LWZvcm0iKT8oZC5oYXNoMT1lLm15KCJtYW5pZmVzdCIpLmhhc2goKSxkLmhhc2gxPT1kLmhhc2gwP2YoZSxkKTokLm15Lm1vZGFsKHttYW5pZmVzdDpiLkNvbmZpcm0sZGF0YTp7eWVzOiJDbG9zZSB0YWImbmJzcDsiLG5vOiJDYW5jZWwgY2xvc2UiLGNhbmNlbDoiIix0ZXh0OmIubGFuZy5ETEdfVU5TQVZFRCx1c2VCdXR0b25zOiEwfSx3aWR0aDozMDAsY2xvc2U6ITAsZXNjOiEwLGVudGVyOiExLGNzczoibGgxNzAgeGdyYXkgcDIwIHBiMjUiLGZvY3VzOiIjYnRuLXllcyJ9KS50aGVuKGZ1bmN0aW9uKHgpeyJ5ZXMiPT14LmNtZCYmZihlLGQpfSkpOmcoIWQuYWN0aXZlKX19ZnVuY3Rpb24gZih4LGEpe3gubXkoInJlbW92ZSIpLHgucmVtb3ZlKCksZyghYS5hY3RpdmUpfWZ1bmN0aW9uIGcoeCl7aWYoYi5IaXN0b3J5LnJlbW92ZShhKSxiLlRhYnMucmVtb3ZlKGQpLHgpY3x8Yi5teS5yZWNhbGMoIiNsLWFwcHRhYnMiKTtlbHNlIGlmKGIuSGlzdG9yeS5sZW5ndGgpe2Zvcih2YXIgZSxmO2IuSGlzdG9yeS5sZW5ndGgmJiFlOylmPWIuSGlzdG9yeS5wb3AoKSxlPWIuVGFicy5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4LmlkPT1mfSk7ZXx8KGU9Yi5UYWJzWzBdKSxiLlN3aXRjaChlLnBhdGgsZS5pZCl9ZWxzZSBiLm15LnJlY2FsYygiI2wtYXBwdGFicyIpLGIuX2NvbXBpbGVkJiZ3aW5kb3cuaGlzdG9yeS5iYWNrKCk7Y3x8Yi5teS5yZXN0eWxlKCl9fSxHZXRMaXN0OmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSh4LmRhdGEsJC5EZWZlcnJlZCgpKSxiPWVuY29kZVVSSUNvbXBvbmVudCxjPSIiLGQ9W10sZT0iX25vZGUvX2xvY2FsL19ub2RlcyIsZj1beC5SZXEoWyJfYWxsX2RicyJdKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBjPU9iamVjdC5rZXlzKHguQWxsKSxkPWEuc2xpY2UoMCk7Yy5zdWJ0cmFjdChkKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EhPWUmJmRlbGV0ZSB4LkFsbFthXX0pLGQuZm9yRWFjaChmdW5jdGlvbihhKXtpZigheC5BbGxbYV0pe3ZhciBjPWEuZXNjYXBlSFRNTCgpLGQ9ZyhhKSxlPWMsZj1hLmxlbmd0aCxoPTA7Zj4xNSYmKGg9Zi0oMTUrZiUzKSxlPWEudG8oZi1oKSthLmZyb20oZi1oKS5yZXBsYWNlKC8oLnszfSkvZywiJDE8d2JyPiIpKTt2YXIgaT0kLmV4dGVuZCghMCx7bmFtZTphLG5hbWVzYWZlOmMsaG5hbWU6ZSx0b29sdGlwOmQsaHJlZjpiKGEpfSx4LmRiVHlwZSk7eC5BbGxbYV09JC5leHRlbmQoITAsaSx4LkFsbFthXXx8e30pfX0pLHguR3JvdXBEQnMoKX0pLnRoZW4oZnVuY3Rpb24oKXt4LlBobygiQ291Y2giKS52ZXI8IjAwMy4ifHwhY3cubWUoInJvbGVzIikuZmluZCgiX2FkbWluIil8fCh4LkFsbFtlXT14LkFsbFtlXXx8JC5leHRlbmQoITAse25hbWU6ZSxuYW1lc2FmZTplLGhuYW1lOmUsdG9vbHRpcDplLGhyZWY6YihlKX0seC5kYlR5cGUpKX0pLmZhaWwoZnVuY3Rpb24oeCxiLGMpe2NvbnNvbGUubG9nKHgsYixjKSxhLnJlamVjdCh4LGIsYyl9KV07cmV0dXJuIGYucHVzaChoKCkpLFEuYWxsU2V0dGxlZChmKS50aGVuKGZ1bmN0aW9uKCl7eC5BbGxbY10/eC5SZXBsaWNhdG9yREI9Yzp4LlJlcGxpY2F0b3JEQj14LlJlcGxpY2F0b3JEQnx8Il9yZXBsaWNhdG9yIixhLnJlc29sdmUoeC5BbGwpfSksYS5wcm9taXNlKCk7ZnVuY3Rpb24gZyh4KXtpZighL151c2VyZGItKFswLTlhLWhdezJ9KXsxLH0kLy50ZXN0KHgpKXJldHVybiB4Lmxlbmd0aD4yMD94OiIiO3ZhciBhPXguZnJvbSg3KSxiPSIiO3RyeXtiPWRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoLyguLikvZywiJSQxIikpfWNhdGNoKHgpe31yZXR1cm4gYj8iVXNlciBEQiBmb3IgIitiOngubGVuZ3RoPjIwP3g6IiJ9ZnVuY3Rpb24gaCgpe3ZhciBhPVtdO3JldHVybiB4LkNvdWNoLnZlcnNpb258fChhLnB1c2goeC5SZXEoe3VybDpbXSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3guQ291Y2gudmVyc2lvbnx8JC5leHRlbmQoeC5Db3VjaCxhKSxsKCl9KSkseC5QaG8oIl9jb21waWxlZCIpJiYhd2luZG93LkRET0MuX2RiJiZhLnB1c2goeC5SZXEoe3VybDpbIl9kYnJvb3QiXSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKGEpeyQuZXh0ZW5kKHguQ291Y2gsYSksbCgpfSkuZmFpbCh4PT5jb25zb2xlLmxvZygiVGhpcyA0MDAgaXMgbm9ybWFsIikpKSksUS5hbGxTZXR0bGVkKGEpLnRoZW4oaSl9ZnVuY3Rpb24gaSgpe3ZhciBhPVtdO3JldHVybiB4LkNvdWNoLnZlcjwiMDAyLiI/KGEucHVzaCh4LlJlcShbIl9jb25maWciLCJyZXBsaWNhdG9yIiwiZGIiXSkudGhlbihmdW5jdGlvbih4KXsic3RyaW5nIj09dHlwZW9mIHgmJihjPXgpfSkuZmFpbChmdW5jdGlvbigpe2NvbnNvbGUubG9nKCJUaGlzIDQweCBpcyBub3JtYWwiKX0pLHguUmVxKFsiX2NvbmZpZyIsImh0dHBkIiwicG9ydCJdKS50aGVuKGZ1bmN0aW9uKGEpeyJzdHJpbmciPT10eXBlb2YgYSYmKHguQ291Y2gucG9ydD1hKX0pKSx4LkNvdWNoLm1heEJhdGNoPTApOmEucHVzaCh4LkdldE1lbWJlcnNoaXAoKS50aGVuKGZ1bmN0aW9uKHgpe2Q9eH0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaygpfSksaigpLHguUmVxKFsiX25vZGUiLCJfbG9jYWwiLCJfY29uZmlnIiwiY2h0dHBkIiwicG9ydCJdKS50aGVuKGZ1bmN0aW9uKGEpeyJzdHJpbmciPT10eXBlb2YgYSYmKHguQ291Y2gucG9ydD1hKX0pKSxRLmFsbFNldHRsZWQoYSl9ZnVuY3Rpb24gaigpe2lmKCF4LlBobygiQ291Y2giKS5xKXJldHVybiB4LlJlcShbIl9ub2RlIiwiX2xvY2FsIiwiX2NvbmZpZyIsImNsdXN0ZXIiXSkudGhlbihmdW5jdGlvbihhKXthJiYib2JqZWN0Ij09dHlwZW9mIGEmJih4LkNvdWNoLnE9KyhhLnF8fDApLHguQ291Y2gubj0rKGEubnx8MCkpfSkuZmFpbChmdW5jdGlvbigpe3guQ291Y2gucT0wLGNvbnNvbGUubG9nKCJUaGlzIDQweCBpcyBub3JtYWwiKX0pfWZ1bmN0aW9uIGsoKXtyZXR1cm4hZC5sZW5ndGh8fHguQ291Y2gudmVyPCIwMDIuMDAyLiJ8fHguQ291Y2gubWF4QmF0Y2g+MD8oeC5Db3VjaC5tYXhCYXRjaD14LkNvdWNoLm1heEJhdGNofHwwLHZvaWQgMCk6eC5SZXEoWyJfbm9kZSIsIl9sb2NhbCIsIl9jb25maWciLCJjaHR0cGQiLCJtYXhfZGJfbnVtYmVyX2Zvcl9kYnNfaW5mb19yZXEiXSkudGhlbihmdW5jdGlvbihhKXt4LkNvdWNoLm1heEJhdGNoPSJzdHJpbmciPT10eXBlb2YgYT8rYTowfSkuZmFpbChmdW5jdGlvbigpe3guQ291Y2gubWF4QmF0Y2g9eC5Db3VjaC52ZXI+IjAwMy4wMDEuIj8xMDA6MCxjb25zb2xlLmxvZygiVGhpcyA0MHggaXMgbm9ybWFsIil9KX1mdW5jdGlvbiBsKCl7eC5Db3VjaC52ZXI9eC5Db3VjaC52ZXJzaW9uLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKHgpe3JldHVybigiMDAiKygreHx8cGFyc2VJbnQoeCl8fDApLnRvU3RyaW5nKCkpLnN1YnN0cigtMyl9KS5qb2luKCIuIil9fSxHZXRNZW1iZXJzaGlwOmZ1bmN0aW9uKCl7dmFyIHgsYT10aGlzO3JldHVybiBPYmplY3Quc2l6ZSh4PWEuUGhvKCJNZW1iZXJzaGlwIikpP2IoeCk6YS5SZXEoWyJfbWVtYmVyc2hpcCJdKS50aGVuKGIpO2Z1bmN0aW9uIGIoeCl7dmFyIGI9W107cmV0dXJuIE9iamVjdC5pc09iamVjdCh4KSYmT2JqZWN0LmlzQXJyYXkoeC5hbGxfbm9kZXMpJiZPYmplY3QuaXNBcnJheSh4LmNsdXN0ZXJfbm9kZXMpJiYoJC5leHRlbmQoITAsYS5QaG8oIk1lbWJlcnNoaXAiKSx4KSxiPXguY2x1c3Rlcl9ub2Rlcy5zbGljZSgwKS5pbnRlcnNlY3QoeC5hbGxfbm9kZXMpKSxifX0sR2V0VXNlcnM6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9JC5EZWZlcnJlZCgpLGI9eC5Vc2VycztyZXR1cm4oYi5fc2VxP3guUmVxKHt1cmw6WyJfdXNlcnMiLCJfY2hhbmdlcyIse3NpbmNlOmIuX3NlcX1dLGRhdGFUeXBlOiJqc29uIn0pOnguUmVxKHt1cmw6WyJfdXNlcnMiLCJfYWxsX2RvY3MiLHt1cGRhdGVfc2VxOiEwfV0sZGF0YVR5cGU6Impzb24ifSkpLnRoZW4oZnVuY3Rpb24oeCl7Yi5fc2VxPXgubGFzdF9zZXF8fHgudXBkYXRlX3NlcSwoeC5yb3dzfHx4LnJlc3VsdHN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2lmKCJvcmcuY291Y2hkYi51c2VyOiI9PXguaWQudG8oMTcpKXt2YXIgYT14LmlkLmZyb20oMTcpO3guZGVsZXRlZD9kZWxldGUgYlthXTpiW2FdPSEwfX0pfSkuYWx3YXlzKGZ1bmN0aW9uKCl7YS5yZXNvbHZlKE9iamVjdC5rZXlzKGIpLnNvcnQoKS5yZW1vdmUoL15fLykpfSksYS5wcm9taXNlKCl9LEdyb3VwREJzOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuQWxsLGQ9Yi5QaG8oIkNmZyIpLmdyb3VwaW5nLGU9KHg9eHx8T2JqZWN0LmtleXMoYyksYT1hfHxPYmplY3Qua2V5cyhiLkxzKCJEQnMuU3RhcnMiKXx8e30pLGN3LmxpYi5hMm8oYSkpLGY9ZC5maW5kKCJ0aW55Iik/MTA6ZC5maW5kKCJzbWFsbCIpPzMwOmQuZmluZCgibGFyZ2UiKT8yNTA6MTAwLGc9Zi8zfDAsaD14LmZpbHRlcih4PT4hZVt4XSkuc29ydCgpO2lmKHgubGVuZ3RoPDIqZ3x8ZCsiIj09IiIpcmV0dXJuIE9iamVjdC5rZXlzKGMpLmZvckVhY2goeD0+Y1t4XS5ncm91cD0iIiksYi5Hcm91cHM9e307aWYoZC5maW5kKCJhdXRvIikpe2lmKGQuZmluZCgiYXV0byIpKXtsPXsiIjowfTt2YXIgaT17fTtoPShoPWgubWFwKGZ1bmN0aW9uKHgsYSl7dmFyIGI9KHgubWF0Y2goL15bYS16MC05XCRdK1tcL1wtX1wrXS8pfHxbXSlbMF07cmV0dXJuIGI/KGxbYl18fChpW2JdPWEsbFtiXT0wKSxsW2JdKz0xLHtkYjp4LGdyb3VwOmJ9KToobFsiIl0rPTEse2RiOngsZ3JvdXA6IiJ9KX0pKS5tYXAoZnVuY3Rpb24oeCl7dmFyIGE9eC5ncm91cDtyZXR1cm4gYT8obFthXT9sW2FdPGcmJihsWyIiXSs9bFthXSxkZWxldGUgbFthXSx4Lmdyb3VwPSIiKTp4Lmdyb3VwPSIiLHgpOnh9KTt2YXIgaj1bXSxrPW51bGw7bT0wO2guZm9yRWFjaChmdW5jdGlvbih4LGEpe2lmKCJfIiE9eC5kYlswXSl7aWYoeC5ncm91cClyZXR1cm4gaz1udWxsO2t8fGoucHVzaCh7aTA6YSxzaXplOjAscGY6e319KTt2YXIgYj1qLmxhc3QoKSxjPXguZGJbMF07Yi5wZltjXXx8KGIucGZbY109e2kwOmEsc2l6ZTowfSksYi5wZltjXS5zaXplKz0xLGIuc2l6ZSs9MSxrPXh9fSksKGo9ai5maWx0ZXIoeD0+eC5zaXplPj1mKSkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT14LnBmO09iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9YVt4XSxjPWIuc2l6ZTxmLWc/IiI6eDtjJiYoaVtjXT1iLmkwLGxbY109Yi5zaXplLGxbIiJdLT1iLnNpemUpO2Zvcih2YXIgZD0wO2Q8Yi5zaXplO2QrKyloW2IuaTArZF0uZ3JvdXA9Y30pfSksT2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbih4KXtpZih4JiYhKGxbeF08ZitnKSl7dmFyIGE9bFt4XSxiPWEvZjtiIT09KDB8YikmJihiPU1hdGguY2VpbChiKSk7Zm9yKHZhciBjPU1hdGguY2VpbChhL2IpLmNsYW1wKC45KmZ8MCxmKSxkPWlbeF0sZT0xO2U8YjtlKyspZm9yKHZhciBqPTAsaz0wO2s8YztrKyspKGo9ZSpjK2spPGEmJihoW2Qral0uZ3JvdXArPSI6IitlKX19KX19ZWxzZXt2YXIgbD17IiI6MH0sbT0wO2g9aC5tYXAoZnVuY3Rpb24oeCxhKXtpZigiXyI9PXhbMF0pcmV0dXJue2RiOngsZ3JvdXA6IiJ9O3ZhciBiPSI6IittO3JldHVybiBsW2JdfHwobFtiXT0wKSxsW2JdKz0xLGxbYl0+PWYmJihtKz0xKSx7ZGI6eCxncm91cDpifX0pfWw9eyIiOntzaXplOjAsc3RhcnQ6IiIsZW5kOiIifX0saz1udWxsO3JldHVybiBoLmZvckVhY2goZnVuY3Rpb24oeCxhKXt2YXIgYj14Lmdyb3VwO2NbeC5kYl0uZ3JvdXA9YixiJiYhbFtiXSYmKGxbYl09e2lkOmIsaGVhZDpiLnNwbGl0KCI6IilbMF0sc3RhcnQ6eC5kYixlbmQ6IiIsc2l6ZTowLGkwOmF9KSwhYnx8aFthKzFdJiZoW2ErMV0uZ3JvdXA9PWJ8fChsW2JdLmVuZD14LmRiKSxsW2JdLnNpemUrPTF9KSxiLkdyb3Vwcz1sfSxVcGRhdGVyOmZ1bmN0aW9uKCl7dmFyIHg9dGhpczt4LkxzO2lmKHguX2NvbXBpbGVkJiZjdy5tZSgpJiYicmVtaW5kIj09eC5DZmcudXBkYXRlKXt2YXIgYT14LkxzKCJMYXN0VXBkYXRlIil8fHt9LGI9d2luZG93LkRET0MsYz1EYXRlLm5vdygpLGQ9IiIsZT0yNjc4NGU1LGY9MDtpZighKGEucmVtaW5kZXImJmMtYS5yZW1pbmRlcjxlKihNYXRoLnJhbmRvbSgpLzIrLjUpKSl7aWYoYS5zdGFtcCl7aWYoKGY9KGMtYS5zdGFtcCkvZSk8MS4xKXJldHVybjtkPXgubGFuZy5VUERfTU9OVEguYXNzaWduKDB8ZixmPjE/InMiOiIiKX1lbHNle2lmKChmPShjLWIuc3RhbXApL2UpPDEuMSlyZXR1cm47ZD14LmxhbmcuVVBEX09MRC5hc3NpZ24oMHxmLGY+MT8icyI6IiIpfWQmJihkKz14LmxhbmcuVVBEX1RBSUwsY3cubGliLm5vdGUoZCwieHh4Iiw2ZTMpLGEucmVtaW5kZXI9Yyx4LkxzKCJMYXN0VXBkYXRlIixhKSl9fX0sTHM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPXdpbmRvdy5sb2NhbFN0b3JhZ2UsYz1mLGQ9eHx8YS5pZHx8IlgiLGU9T2JqZWN0LmlzU3RyaW5nO2lmKGEuX2NvbXBpbGVkKXRyeXtoLmRlbGF5KDNlMyl9Y2F0Y2goeCl7fXJldHVybiBjO2Z1bmN0aW9uIGYoeCxhKXt2YXIgYyxmPWQrIi4iK3g7cmV0dXJuIG51bGw9PT1hP2IucmVtb3ZlSXRlbShmKTp2b2lkIDAhPT1hP2Iuc2V0SXRlbShmLEpTT04uc3RyaW5naWZ5KGEpKTooYz1iLmdldEl0ZW0oZiksZShjKT9nKGMpOm51bGwpfWZ1bmN0aW9uIGcoeCl7dHJ5e3JldHVybiBKU09OLnBhcnNlKHgpfWNhdGNoKHgpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBoKCl7dmFyIHg9RGF0ZS5ub3coKTtpZighKEpTT04uc3RyaW5naWZ5KGIpLmxlbmd0aDwxZTYpKU9iamVjdC5rZXlzKGIpLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geC5zdGFydHNXaXRoKCJjdy5TeXMuSlNPTi52aWV3c3RhdGUiKX0pLnJlZHVjZShmdW5jdGlvbihhLGMpe3ZhciBkPWIuZ2V0SXRlbShjKTtpZighZShkKSlyZXR1cm4gYTt2YXIgZj1nKGQpO3JldHVybiBmJiZmLnN0YW1wJiZmLnN0YW1wPngtMzE1MzZlNiYmYS5wdXNoKFtjLGZdKSxhfSxbXSkuc29ydEJ5KGZ1bmN0aW9uKHgpe3JldHVybiB4WzFdLnN0YW1wfSkudG8oLTFlMykuZm9yRWFjaChmdW5jdGlvbih4KXtiLnJlbW92ZUl0ZW0oeFswXSl9KX19LENyZWF0ZURCczpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmxhbmcsZD1iLlBobygiQ2ZnIikuYmF0Y2hDcmVhdGVEZWxheSxlPWIuUGhvKCJDb3VjaCIpLGY9ZS52ZXIsZz1lLnE7cmV0dXJuIFEuYWxsU2V0dGxlZCh4Lm1hcChoKSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXskLm15LnJhZGlvKCJkYmxpc3QiLHgubWFwKHg9PngubmFtZSkpfS5kZWxheSg1MCksYX0pO2Z1bmN0aW9uIGgoeCxlKXt2YXIgaD0kLmV4dGVuZCghMCx7bmFtZToiIixzZWN1cml0eTpudWxsLHE6MCxuOjAscGFydGl0aW9uZWQ6ITEsY3JlYXRlOiEwfSx4KTtoLnNlY3VyaXR5PSQuZXh0ZW5kKCEwLHthZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LHguc2VjdXJpdHl8fHt9KTt2YXIgaj1oLm5hbWUsaz17fSxsPSQuRGVmZXJyZWQoKTtyZXR1cm4gZj4iMDAyLiImJitnPjAmJitoLnE+MCYmJC5leHRlbmQoayx7cToraC5xfHwyLG46K2gubnx8MX0pLGY+IjAwMy4iJiZoLnBhcnRpdGlvbmVkJiYraC5xPjEmJihrLnBhcnRpdGlvbmVkPSEwKSxmdW5jdGlvbigpeyhoLmNyZWF0ZT9iLlJlcSh7dXJsOltqLGtdLG1ldGhvZDoiUFVUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiJ9KS50aGVuKG0pOm0oKSkudGhlbihmdW5jdGlvbigpe2wucmVzb2x2ZShoKX0pLmZhaWwoZnVuY3Rpb24oeCxjLGQpe2wucmVqZWN0KHgsYyxkLGgpLGF8fGN3LmxpYi5ub3RlKGIubGFuZy5NU0dfTkVXREJfRkFJTC5hc3NpZ24oaix4LGkoYykpLCJlcnJvciIsMWU0KX0pfS5kZWxheShlKmR8fDApLGwucHJvbWlzZSgpO2Z1bmN0aW9uIG0oKXt2YXIgZD0kLkRlZmVycmVkKCk7cmV0dXJuIG51bGwhPXguc2VjdXJpdHl8fGguY3JlYXRlJiZmPiIwMDMuIj9iLlJlcSh7dXJsOltqLCJfc2VjdXJpdHkiXSxtZXRob2Q6IlBVVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoT2JqZWN0LnNlbGVjdChoLnNlY3VyaXR5LFsiYWRtaW5zIiwibWVtYmVycyJdKSl9KS50aGVuKGZ1bmN0aW9uKCl7YXx8ZSgpfSkuZmFpbChmdW5jdGlvbih4LGIsZCl7YXx8Y3cubGliLm5vdGUoY1toLmNyZWF0ZT8iTVNHX05FV0RCX05PQUNMIjoiTVNHX1NFQ0RCX0ZBSUwiXS5hc3NpZ24oaix4LGkoYikpLCJ3YXJuaW5nIiw2ZTMpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5yZXNvbHZlKGgpfSk6KCFhJiZoLmNyZWF0ZSYmZSgpLGQucmVzb2x2ZShoKSksZC5wcm9taXNlKCk7ZnVuY3Rpb24gZSgpe2N3LmxpYi5ub3RlKGguY3JlYXRlP2MuTVNHX05FV0RCX09LLmFzc2lnbihqKTpjLk1TR19TRUNEQl9PSy5hc3NpZ24oaikpfX19ZnVuY3Rpb24gaSh4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfX0sQ29tcGlsZVQ6ZnVuY3Rpb24oeCl7Zm9yKHZhciBhLGIsYyxkPS9ce1thLXowLTlfXVthLXowLTlfXXswLDE5fVwuP1thLXowLTlfXXswLDIwfVx9L2dpLGU9W10sZj0wLGc9MCxoPTA7bnVsbCE9PShhPWQuZXhlYyh4KSk7KWM9KGI9YVswXSkubGVuZ3RoLGc9ZC5sYXN0SW5kZXgsZS5wdXNoKHguc3Vic3RyaW5nKGYsZy1jKSksZj1nLGUucHVzaChbYl0uY29uY2F0KGIuc3Vic3RyKDEsYy0yKS5zcGxpdCgiLiIpKSksaCs9MjtyZXR1cm4gZS5wdXNoKHguc3Vic3RyKGYpKSxkPW51bGwse3N0YW1wOkRhdGUubm93KCksdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4geH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB4fSxhc3NpZ246ZnVuY3Rpb24oYSl7dmFyIGI9IiIsYz0ib2JqZWN0IjtpZih0eXBlb2YgYSE9PWMpcmV0dXJuIHg7Zm9yKHZhciBkLGYsZz0wLGk9MTtnPGg7Zys9Mil7Yis9ZVtnXSxkPWVbZysxXSxpPTEsZj1hO2Rve2Y9ZltkW2krK11dfXdoaWxlKHR5cGVvZiBmPT09YyYmaTxkLmxlbmd0aCk7Yis9dm9pZCAwIT09Zj9mOmRbMF19cmV0dXJuIGIrZVtoXX19fX0sRWQ6e2pzb250cmVlOntpZDoiY3cuU3lzLkpTT04iLHBhcmFtczp7fSx1aTp7IiNidG4tc2F2ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnRyaWdnZXIoIiNidG4tc2F2ZSIsInNhdmVkb2MubXkiKX19fSxMaWI6e2lzU3lzdGVtOmZ1bmN0aW9uKHgpe3JldHVybiF0aGlzLm15LnJvb3QoKS5wYXJlbnRzKCIubC1hcHAiKS5lcSgwKS5teSgiZGF0YSIpLmlzTmV3JiYhISgxPT14LmxldmVsJiYvXl8oaWR8cmV2fHJldnNfaW5mb3xsb2NhbF9zZXEpJC8udGVzdCh4LmtleSkmJngudmFsdWV8fHgubGV2ZWw+MiYmIl9yZXZzX2luZm8iPT14LnBhdGhbMV18fCJfY29uZmxpY3RzIj09eC5wYXRoWzFdKX19LHN0eWxlOnsiICI6IiIsIiAuaXJvb3QuaXNlZGl0b3IiOiJwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7IiwiIC5pcm9vdC5pc2VkaXRvcj4uaWtleSI6ImRpc3BsYXk6bm9uZSIsIiAuaXJvb3Q+LmllZGl0b3IiOiJwYWRkaW5nLXRvcDo0cHg7IiwiIC5pcm9vdD4uaWVkaXRvciAuQ29kZU1pcnJvci1zY3JvbGwiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMuUGhvKCJQYW5lbEhlaWdodCIpLTMyO3JldHVybiJtaW4taGVpZ2h0OnsxfXB4O21heC1oZWlnaHQ6ezF9cHg7aGVpZ2h0OnsxfXB4O292ZXJmbG93OnNjcm9sbDsiLmFzc2lnbihhKX19LExzOmZ1bmN0aW9uKCl7dmFyIHg9d2luZG93LmxvY2FsU3RvcmFnZTtyZXR1cm4gZnVuY3Rpb24oYSxiKXt2YXIgYz0iY3cuU3lzLkpTT04uIithO2lmKGIpcmV0dXJuIHguc2V0SXRlbShjLEpTT04uc3RyaW5naWZ5KGIpKTtpZihudWxsPT09Ynx8ITE9PT1iKXJldHVybiB4LnJlbW92ZUl0ZW0oYyk7dmFyIGQ9eC5nZXRJdGVtKGMpO3JldHVybiBPYmplY3QuaXNTdHJpbmcoZCk/SlNPTi5wYXJzZShkKTpudWxsfX0sTWFrZUxpc3Q6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1bXSxlPXgudmFsdWUsZj1jdy5saWIuc2RibSxnPXdpbmRvdy5hdG9iLGg9Yy5kYXRhLnZpZXdzdGF0ZXx8e30saT1jLmRhdGEuZm91bmR8fHt9LGo9eC5sZXZlbCsxLGs9Yy5kYXRhLnNlYXJjaC5sZW5ndGg+MixsPS9eZGF0YTppbWFnZVwvKGpwZWd8cG5nfGdpZnxzdmdcK3htbCk7YmFzZTY0LC8sbT1PYmplY3Qua2V5cyhlKTtyZXR1cm4iX2F0dGFjaG1lbnRzIj09eC5rZXkmJjE9PXgucGF0aC5sZW5ndGgmJiJSb290Ij09eC5wYXRoWzBdJiYobT1tLnNvcnRCeShmdW5jdGlvbih4KXt2YXIgYT14LmluZGV4T2YoIi8iKT4tMTtyZXR1cm4vXmluZGV4XC5odG0vLnRlc3QoeCk/IjAiK3g6YT8iMiIreDoiMSIreH0pKSxtLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGcsbSxvPWVbYV0scD0kLnR5cGUobykscT0ib2JqZWN0Ij09cHx8ImFycmF5Ij09cD8ibXVsdGkiOnAscj14LnBhdGguc2xpY2UoMCkuYWRkKHgua2V5KSxzPWMuUGF0aFNpZyhyLGEpO2smJiFpW3NdfHwoIm11bHRpIj09cSYmKCJSb290IiE9eC5rZXl8fHgucGF0aC5sZW5ndGh8fCJfYXR0YWNobWVudHMiIT1hPyJfYXR0YWNobWVudHMiPT14LmtleSYmMT09eC5wYXRoLmxlbmd0aCYmIlJvb3QiPT14LnBhdGhbMF0mJihxPSJmaWxlIik6cT0iZmlsZXMiKSwic3RyaW5nIj09cCYmKGsmJjh8aVtzXT9xPSJmb3VuZCI6by5sZW5ndGg+MTEmJigvXltcc1xyXG5cdF0qZnVuY3Rpb24vLnRlc3Qoby5zdWJzdHIoMCwyMCkpJiYvXH1bXHJcblx0XHNdKiQvLnRlc3Qoby5zdWJzdHIoLTEwKSl8fC9eW1xzXHJcblx0XSpcKFtcc1xyXG5cdF0qZnVuY3Rpb24vLnRlc3Qoby50bygyMCkpJiYvXH1bXHJcblx0XHNdKlwpW1xyXG5cdFxzXSokLy50ZXN0KG8uc3Vic3RyKC0xMCkpKT9xPSJmdW5jdGlvbiI6by5sZW5ndGg+MTYwJiZvLmxlbmd0aDwxNWU0JiYvXlthLXpBLVowLTlcK1wvXSskLy50ZXN0KG8uc3Vic3RyKDAsMTU4KSkmJi9eW2EtekEtWjAtOVwrXC9dKz17MCwyfSQvLnRlc3Qobyk/InN0cmluZyI9PXR5cGVvZihtPW4obykpJiYocT0iYmFzZTY0Iik6by5sZW5ndGg+MTYwJiZvLmxlbmd0aDwxNWU0JiZsLnRlc3QobykmJiJzdHJpbmciPT10eXBlb2YobT1uKG8ucmVwbGFjZShsLCIiKSkpJiYocT0iYmFzZTY0IikpLGd8fChnPWYoW2Esb10pKSxrJiYhaVtzXXx8ZC5wdXNoKHtzdGF0ZTpifHwoaz9pW3NdOmhbc118fDEpLGxldmVsOmosbWFuaWZlc3Q6IiQiK3EscGF0aDpyLHR5cGU6cCxrZXk6YSxpZDphLHZhbHVlOiJmdW5jdGlvbiI9PXR5cGVvZiBlW2FdP2VbYV0rIiI6ZVthXSxiaW46bSxoYXNoOmd9KSl9KSxkO2Z1bmN0aW9uIG4oeCl7dmFyIGE7dHJ5e2E9Zyh4KX1jYXRjaCh4KXt9cmV0dXJuIGF9fSwkZmlsZXM6e2lkOiJTeXMuSlNPTi5GaWxlcyIsZGF0YTp7fSxMaXN0OltdLENNOiJ0ZXh0L2phdmFzY3JpcHQiLFR4dDp7b2JqZWN0OlsiRmlsZXMgeyIsIn0iXSxhcnJheTpbIkFycmF5IFsiLCJdIl19LGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9YS5kYXRhO3guYWRkQ2xhc3MoImVkLW5vZGUtIitiLlBhdGhTaWcoYy5wYXRoLGMua2V5KSkseC5odG1sKGIuSFRNTCksYy5zdGF0ZT4xJiYoYi5MaXN0PWIuTWFrZUxpc3QoYykpLHguZmluZCgiLmlsaXN0OmVxKDApIikub24oImNoYW5nZS5teSIsZnVuY3Rpb24oKXtiLlJUKCJSZWpvaW4iKShjLGIuTGlzdCl9LmRlYm91bmNlKDMwMCkpLHgub24oImNsaWNrLm15IiwiLmlsaXN0OmVxKDApIC5idG4tZGVsIixmdW5jdGlvbihjKXtjLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBkPSQodGhpcykucGFyZW50cygiLm15LWZvcm0iKS5lcSgwKSxlPWQucGFyZW50KCkuZGF0YSgibXkiKS5kYXRhLGY9JC50eXBlKGUudmFsdWUpLGc9ZC5teSgiZGF0YSIpLmtleSxoPU9iamVjdC5jbG9uZShlLnZhbHVlW2ddLCEwKTsib2JqZWN0Ij09Zj9kZWxldGUgZS52YWx1ZVtnXToiYXJyYXkiPT1mJiZlLnZhbHVlLnJlbW92ZUF0KGcpLGIuTm9kZVVwZGF0ZWQoZS5wYXRoLmNvbmNhdChlLmtleSxnKSxoLHZvaWQgMCksYi5SVCgiTGliIikucmVsaXN0KHgsYixhKX0pfSx1aTp7Ii5pdmFsdWUiOntjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5MaXN0Lmxlbmd0aH0sbm9jb21wOmZ1bmN0aW9uKHgpe3ZhciBhPTAsYj0wO3JldHVybiBPYmplY3Qua2V5cyh4LnZhbHVlKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciBkLGU9MDsoZD14LnZhbHVlW2NdKSYmKGU9KGQuZGF0YT9kLmRhdGEubGVuZ3RoLzQqM3wwOjApfHwrZC5sZW5ndGh8fCtkLnNpemV8fDAsYSs9ZSxiKz0rKHgudmFsdWVbY10uZW5jb2RlZF9sZW5ndGh8fGUpKX0pLGE9PWJ9fSx3YXRjaDpbIi5pZGVzYyJdfSwiLmlsaXN0Ijp7ZGVsYXk6MCxjaGVjazohMSxiaW5kOiJ0aGlzLkxpc3QiLGxpc3Q6JzxkaXYgY2xhc3M9Imlyb3ciPjwvZGl2PicsaWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguaWR9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIHguaGFzaH0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuUlQoeC5tYW5pZmVzdCl8fHRoaXMuUlQoIiRzdHJpbmciKX0sd2F0Y2g6WyIuaWRlc2MiXX0sIi5pa2V5Ijp7fSwiLmJ0bi1qc29uIjp7fSwiI2J0bi11cGxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzO2IuZGF0YSgibW9kYWwiKT8oYi5tb2RhbCghMCksZCgpKTooYi5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxjLm15Lm1vZGFsKCIjYnRuLXVwbG9hZCIse21hbmlmZXN0OmMuQWRkLGRhdGE6e30sd2lkdGg6NTAwLGFsaWduOiJ0b3A6MTAzJSwgcmlnaHQ6LTM4cHg7Iixub3NlOiJ0b3AifSkudGhlbihmdW5jdGlvbihhKXt2YXIgYj1PYmplY3QuY2xvbmUoeC52YWx1ZSwhMCk7YS5maWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3gudmFsdWVbYS5uYW1lXT1PYmplY3Quc2VsZWN0KGEsWyJjb250ZW50X3R5cGUiLCJkYXRhIl0pfSksYy5Ob2RlVXBkYXRlZCh4LnBhdGguY29uY2F0KHgua2V5KSxiLE9iamVjdC5jbG9uZSh4LnZhbHVlLCEwKSkseC5zdGF0ZT0yLGMuTGlzdD1jLk1ha2VMaXN0KHgpLGMubXkucmVkcmF3KCl9KS5hbHdheXMoZnVuY3Rpb24oKXtkKCl9KSl9ZnVuY3Rpb24gZCgpe2IucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIil9fX0sIiNidG4tYjY0Ijp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5SVCgiR2V0QXR0cyIpKCkudGhlbihmdW5jdGlvbigpe2IubXkucmVkcmF3KCl9KX19fSwiLmlkZXNjIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPSh0aGlzLkxpc3QsYy5UeHRbeC50eXBlXSksZT1PYmplY3Quc2l6ZSh4LnZhbHVlKSxmPSIiOzE9PXguc3RhdGUmJmMuU2hvd0l0ZW1zP2Y9Yy5TaG93SXRlbXM6KGY9ZFswXStlK2RbMV0rIiAiLDI9PXguc3RhdGUmJihmPSc8c3BhbiBjbGFzcz0ibzQwIj4nK2YrIjwvc3Bhbj4iKSk7dmFyIGc9MCxoPTA7cmV0dXJuIE9iamVjdC5rZXlzKHgudmFsdWUpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGIsYz0wOyhiPXgudmFsdWVbYV0pJiYoYz0oYi5kYXRhP2IuZGF0YS5sZW5ndGgvNCozfDA6MCl8fCtiLmxlbmd0aHx8K2Iuc2l6ZXx8MCxnKz1jLGgrPSsoeC52YWx1ZVthXS5lbmNvZGVkX2xlbmd0aHx8YykpfSksZyYmKGY9Wyc8ZGl2IGNsYXNzPSJkaWIgdmF0IG1yNSIgc3R5bGU9IndpZHRoOns0fTsiPnsxfTwvZGl2PicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzkwIHRhciBvOTAiPnsyfTwvZGl2PicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzkwIHBsNSB0YWwgbzYwIGZzOTUiPnszfTwvZGl2PiddLmpvaW4oIiIpLmFzc2lnbihmLGkoZyksZyE9aD9pKGgpOiIiLDI9PXguc3RhdGU/MjcyLWMubGFiZWxXaWR0aCsicHgiOiJhdXRvIikpLGY7ZnVuY3Rpb24gaSh4KXtyZXR1cm4geC5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKS5yZXBsYWNlKC9eKFswLTlcLl0rKShbYS16XSspJC9pLCckMTxkaXYgY2xhc3M9InczNSBkaWIgdGFsIHBsMiI+JDI8L2Rpdj4nKX19LHdhdGNoOlsiLmlrZXkiLCIuYnRuLWpzb24iXX19LHN0eWxlOnsiPi5pdmFsdWU+LmlsaXN0Pi5pcm93IjpmdW5jdGlvbigpe3ZhciB4PTI1MCxhPXgtMjc7cmV0dXJueyIgLmluYXYiOiJwYWRkaW5nLWxlZnQ6IithKyJweDsiLCIgLmluYXY+LmlrZXkiOiJtYXJnaW4tbGVmdDotIithKyJweDt3aWR0aDoiK2ErInB4OyIsIj4uaW5hdiI6InBhZGRpbmctbGVmdDoiK3grInB4OyIsIj4uaW5hdj4uaWtleSI6Im1hcmdpbi1sZWZ0Oi0iK3grInB4O3dpZHRoOiIreCsicHg7IiwiIC5pa2V5IjoiY3Vyc29yOm5vcm1hbDsiLCIgLmlhY3QgLmJ1dHRvbiI6InBhZGRpbmc6IDAuMTVlbSAwIDAuMDVlbSAwOyIsIiAuaWRlc2M+ZGl2IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsifX0sIiAuaXZhbHVlIC5pbmF2IjoibWFyZ2luOjA7IiwiIC5ub2NvbXAgLnNpemVjb21wIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsifSxIVE1MOic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IGlrZXl0cmVlIj48L2Rpdj48ZGl2IGNsYXNzPSJpZGVzYyBjcCI+4oCTPC9kaXY+PGRpdiBjbGFzcz0iaWVkaXRvciI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaXZhbHVlIGltdWx0aSBoaWRlIj48ZGl2IGNsYXNzPSJpbGlzdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGlkPSJidG4tYjY0IiBjbGFzcz0iYnV0dG9uIiB0aXRsZT0iRmV0Y2ggYXR0YWNobWVudHPigJkgYmFzZTY0Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1hcmNoaXZlIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tanNvbiBidXR0b24gaGlkZSIgdGl0bGU9IkVkaXQgYXMgSlNPTiI+PHNwYW4gY2xhc3M9ImJvbGQgZGliIHZhdCBtdC0xIG1iMSI+eyYjODIwMjt9PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi11cGxvYWQiIGNsYXNzPSJidXR0b24iIHRpdGxlPSJBZGQgYXR0YWNobWVudCI+PHNwYW4gY2xhc3M9ImZpLXBhcGVyY2xpcCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1kZWwgYnV0dG9uIHJlZCIgIHRpdGxlPSJEZWwgYWxsIGF0dGFjaG1lbnRzIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS10cmFzaCI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PC9kaXY+JyxOb2RlVXBkYXRlZDpmdW5jdGlvbigpe30sQWRkOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5odG1sKGEuSFRNTCl9LGRhdGE6e2ZpbGVzOltdfSx1aTp7IiNmbGlzdCI6e2JpbmQ6ImZpbGVzIixsaXN0OiI+ZGl2IixtZXJnZTohMSxpZDpbIm5hbWUiXSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbeC5uYW1lLHguY29udGVudF90eXBlLHguZGF0YS5sZW5ndGgseC5kYXRhLnRvKDEwMCldKX0sbWFuaWZlc3Q6e3VpOnsiI2ZuYW1lIjoibmFtZSIsIiNmc2l6ZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4oeC5kYXRhLmxlbmd0aC80KjN8MCkuYnl0ZXMoMSkucmVwbGFjZSgvXihbMC05XC5dKykoW2Etel0rKSQvaSwnJDE8ZGl2IGNsYXNzPSJ3MzUgZGliIHRhbCBwbDIiPiQyPC9kaXY+Jyl9LCIjZnR5cGUiOiJjb250ZW50X3R5cGUiLCIjYnRuLWZkZWwiOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5yZW1vdmUoKX0sZXZlbnRzOiJjbGljay5teSJ9fX19LCIjYnRuLWF0dGFkZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNvbW1pdCgpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmZpbGVzLmxlbmd0aH19LHdhdGNoOiIjZmxpc3QifSwiI2J0bi1hdHRjYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX0sIiNtdXBsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSYmYSl7Zm9yKHZhciBjPXRoaXMsZD1iWzBdLmZpbGVzLGU9W10sZj14LmZpbGVzLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2EubmFtZV09YSx4fSx7fSksZz1bXSxoPTA7aDxkLmxlbmd0aDtoKyspZS5wdXNoKGRbaF0pO2UuZm9yRWFjaChmdW5jdGlvbih4LGEpe2lmKHgpe3ZhciBiLGMsZD17bmFtZTp4Lm5hbWUsY29udGVudF90eXBlOngudHlwZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9LGU9JC5EZWZlcnJlZCgpLGg9bmV3IEZpbGVSZWFkZXIsaT1bXTtoLm9ubG9hZD1mdW5jdGlvbihhKXtjPW5ldyBVaW50OEFycmF5KGEudGFyZ2V0LnJlc3VsdCk7Zm9yKHZhciBnPTA7ZzxjLmxlbmd0aDtnKyspaS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoY1tnXSkpO2I9d2luZG93LmJ0b2EoaS5qb2luKCIiKSksZC5kYXRhPWIsZlt4Lm5hbWVdPWQsZS5yZXNvbHZlKCl9LGgucmVhZEFzQXJyYXlCdWZmZXIoeCksZy5wdXNoKGUucHJvbWlzZSgpKX19KSxRLmFsbFNldHRsZWQoZykudGhlbihmdW5jdGlvbigpe3guZmlsZXM9T2JqZWN0LnZhbHVlcyhmKSxiLndyYXAoIjxmb3JtPiIpLmNsb3Nlc3QoImZvcm0iKS5nZXQoMCkucmVzZXQoKSxiLnVud3JhcCgiZm9ybSIpLGMubXkucmVjYWxjKCIjZmxpc3QiKX0uZGVib3VuY2UoMCkpLnRoZW4oZnVuY3Rpb24oKXtjLm15LmZpbmQoIiNidG4tYXR0YWRkIikuZm9jdXMoKX0uZGVib3VuY2UoMTAwKSl9fX19LEhUTUw6JzxkaXYgY2xhc3M9ImZzMTMwIGxoMTYwIGJvbGRlciI+QWRkIGZpbGVzPC9kaXY+PGRpdiBpZD0iZmxpc3QiIGNsYXNzPSJmczk1Ij48ZGl2IGNsYXNzPSJmcm93ICBtYjYiPjxkaXYgaWQ9ImJ0bi1mZGVsIiBjbGFzcz0icmVkMiB3MjAgZGliIHZhdCBwdDMgY3AiPuKclTwvZGl2PjxkaXYgY2xhc3M9IncyMjAgZGliIHZhdCI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCIgaWQ9ImZuYW1lIiBwbGFjZWhvbGRlcj0iRmlsZSBwYXRoL25hbWUuZXh0Ij48L2Rpdj48ZGl2IGlkPSJmc2l6ZSIgY2xhc3M9Inc5MCBkaWIgdmF0IHB0MyBncmF5IHRhciI+PC9kaXY+PGRpdiBpZD0iZnR5cGUiIGNsYXNzPSJ3MTUwIGRpYiB2YXQgcHQzIGdyYXkgbncgZWxsIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtdDEwIj48aW5wdXQgaWQ9Im11cGxvYWQiIHR5cGU9ImZpbGUiIG11bHRpcGxlIGNsYXNzPSJoMzAgdzEwMHAgY3AiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7b3BhY2l0eTowOyI+PGRpdiBjbGFzcz0iaDMwIHBzZXVkb2xpbmsgdGRuIj5TZWxlY3QgZmlsZXMgdG8gYXR0YWNoLi4uPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibXQ1IHB0MTAgYnRkIj48YnV0dG9uIGlkPSJidG4tYXR0YWRkIiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+QXR0YWNoIGZpbGVzPC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWF0dGNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+Q2FuY2VsPC9idXR0b24+PC9kaXY+J319LCRmaWxlOntpZDoiU3lzLkpTT04uRmlsZSIsZGF0YTp7fSxwYXJhbXM6e2RlbGF5OjB9LExpc3Q6W10sQ006InRleHQvamF2YXNjcmlwdCIscmV2OiIiLGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhO3guYWRkQ2xhc3MoImVkLW5vZGUtIitiLlBhdGhTaWcoYy5wYXRoLGMua2V5KSkseC5odG1sKGIuSFRNTC5hc3NpZ24oe2lkZXNjOmIuaWRlc2MoYyl9KSksYi5yZXY9Yi5SVCgiTVJvb3QiKSgpLm15KCJkYXRhIikucmV2fSxTaG93SXRlbXM6bnVsbCxpZGVzYzpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC52YWx1ZSxjPXtzaXplOmQoKGIuZGF0YT9iLmRhdGEubGVuZ3RoLzQqM3wwOjApfHwrYi5sZW5ndGh8fCtiLnNpemV8fDApLHNpemV4OmIuZW5jb2RlZF9sZW5ndGg/ZCgrYi5lbmNvZGVkX2xlbmd0aCk6IiIsbWltZTooYi5jb250ZW50X3R5cGV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKS5lc2NhcGVIVE1MKCkscmV2cG9zOmIuZGlnZXN0JiZudWxsIT1iLnJldnBvcz8icjogICIrYi5yZXZwb3M6YS5IVE1MbmV3fTtyZXR1cm4gYS5IVE1Mcm93LmFzc2lnbihjKTtmdW5jdGlvbiBkKHgpe3JldHVybiB4LmJ5dGVzKDEpLnJlcGxhY2UoL14oWzAtOVwuXSspKFthLXpdKykkL2ksJyQxPGRpdiBjbGFzcz0idzM1IGRpYiB0YWwgcGwyIj4kMjwvZGl2PicpfX0sdWk6eyIuaWtleSI6e2RlbGF5OjAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpe3ZhciBiPXRoaXMsYz1lbmNvZGVVUklDb21wb25lbnQsZD0oL14ofFxzKykkLy50ZXN0KHgua2V5KT8nIicreC5rZXkrJyInOngua2V5LnRydW5jYXRlKDUwLC9cLy8udGVzdCh4LmtleSk/ImxlZnQiOiJtaWRkbGUiLCLigKYiKSkucmVwbGFjZSgvXC8vZywi4oCJL+KAiSIpLmVzY2FwZUhUTUwoKTtpZihudWxsPT14LnZhbHVlLnJldnBvcylyZXR1cm4gZDt2YXIgZT1iLlJUKCJkYXRhIiksZj0oW2UuYmFzZXVybC5yZXBsYWNlKC9cLyQvLCIiKSxjKGUuZGJuYW1lKSxjKGUuZG9jLl9pZCkseC5rZXldLmpvaW4oIi8iKSsodGhpcy5yZXY/Ij9yZXY9Iit0aGlzLnJldjoiIikpLmVzY2FwZUhUTUwoKTtyZXR1cm4nPGEgaHJlZj0iezF9IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiI+ezJ9PC9hPicuYXNzaWduKGYsZCl9fX0sIiNidG4tZG93bmxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT14LnZhbHVlLnJldnBvcyl7dmFyIGM9dGhpcy5SVCgiZGF0YSIpLGQ9ZW5jb2RlVVJJQ29tcG9uZW50O2IuYXR0cigiZG93bmxvYWQiLHgua2V5LnNwbGl0KCIvIikubGFzdCgpKSxiLmF0dHIoImhyZWYiLFtjLmJhc2V1cmwucmVwbGFjZSgvXC8kLywiIiksZChjLmRibmFtZSksZChjLmRvYy5faWQpLHgua2V5XS5qb2luKCIvIikrKHRoaXMucmV2PyI/cmV2PSIrdGhpcy5yZXY6IiIpKX19LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09eC52YWx1ZS5yZXZwb3N9fX0sIiNidG4tZmlsZWRpdCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPXgudmFsdWUucmV2cG9zKXt2YXIgYz10aGlzLlJUKCJkYXRhIiksZD1lbmNvZGVVUklDb21wb25lbnQ7Yi5hdHRyKCJocmVmIixbIiMiK2QoYy5kYm5hbWUpLGQoYy5kb2MuX2lkKSxkKHgua2V5KV0uam9pbigiLyIpKX19LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXt2YXIgYj14LnZhbHVlLmNvbnRlbnRfdHlwZTtyZXR1cm4gbnVsbD09eC52YWx1ZS5yZXZwb3N8fHRoaXMucmV2fHwhKC9edGV4dFwvLiovLnRlc3QoYil8fC9cLyhqc29ufGphdmFzY3JpcHR8eG1sfHN2ZykvLnRlc3QoYikpfX19fSxIVE1Mcm93Oic8ZGl2IGNsYXNzPSJ3OTAgdGFyIG85MCBzaXplZnVsbCI+e3NpemV9PC9kaXY+PGRpdiBjbGFzcz0idzkwIHBsNSB0YWwgbzYwIGZzOTUgc2l6ZWNvbXAiPntzaXpleH08L2Rpdj48ZGl2IGNsYXNzPSJ3MjAwIHByMTAgbncgZWxsIG82MCBmczk1Ij57bWltZX08L2Rpdj48ZGl2IGNsYXNzPSJvNjAgcHQyIGZzOTUiPntyZXZwb3N9PC9kaXY+JyxIVE1MbmV3Oic8c3BhbiBjbGFzcz0iZmktYnVyc3QtbmV3IG9yYW5nZSBtbC0zIj4gTmV3PC9zcGFuPicsSFRNTDonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSB4Z3JheSBmczEwMCI+e2lrZXl9PC9kaXY+PGRpdiBjbGFzcz0iaWRlc2MgdzQ1MCI+e2lkZXNjfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLXRha2VvdXQgYnV0dG9uIiB0aXRsZT0iVmlldyBhcyBKU09OIj48c3BhbiBjbGFzcz0iZmktc2hvcHBpbmctYmFnIGZzOTUiPjwvc3Bhbj48L2J1dHRvbj48YSBpZD0iYnRuLWZpbGVkaXQiIGNsYXNzPSJidXR0b24gZnM5MCB2YXQgcHQzIHBiMCBoaWRlIiB0aXRsZT0iRWRpdCBhdHRhY2htZW50Ij48c3BhbiBjbGFzcz0iZmktcGVuY2lsIj48L3NwYW4+PC9hPjxhIGlkPSJidG4tZG93bmxvYWQiIGNsYXNzPSJidXR0b24gZnM5MCB2YXQiIHRpdGxlPSJEb3dubG9hZCBmaWxlIiBkb3dubG9hZD0iICI+PHNwYW4gY2xhc3M9ImZpLWRvd25sb2FkIj48L3NwYW4+PC9hPjxidXR0b24gY2xhc3M9ImJ0bi1kZWwgYnV0dG9uIHJlZCB2YXQiICB0aXRsZT0iRGVsIG5vZGUiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIGZzOTUiPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2Pid9fSxqc29udGV4dDp7fX0sJGFib3V0OntpZDoiY3cuUGhvdG9uLiRhYm91dCIscGFyYW1zOntyZXN0eWxlOjIwLHN0cmljdDohMH0saW5oZXJpdDpbIlNldFRoZW1lIl0saGFzaDpmdW5jdGlvbigpe3JldHVybiJhYm91dCJ9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIkFib3V0IHRoaXMgbm9kZSJ9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGF8fDEhPXgubGVuZ3RofHwiX2Fib3V0IiE9eFswXT9udWxsOnt0aXRsZToiQWJvdXQifX0sbGFuZzp7fSxKU09OOiExLEJsb2I6ITEsVXJsOiExLGRhdGE6e3Bob3Rvbjp7fSxzZXJ2aWNlOntjb3VjaGRiOiJObyBtZXNzYWdlIix2ZXJzaW9uOiI/PyIsdmVuZG9yOntuYW1lOiJ1bmtub3duIix2ZXJzaW9uOiIiLHZhcmlhbnQ6IiJ9LGZlYXR1cmVzOltdfSxkZG9jOnt9LGNmZzp7bWF4V2lkdGg6IjIwMDAiLHNjcm9sbFNwZWVkOiIzIixsaXN0Q29sczpbXSxyb290UmVwbzoiIix1cGRhdGU6InJlbWluZCIsZm9udDoiYXV0byIsZm9udFdlaWdodDoiMzAwIixmb250Q29kZToiYXV0byIsaWNvbjoiIixtYXhUYWJzOjE1LGxvb3BBY3RpdmVUYXNrczo1LHBpbmdTZXNzaW9uOjAsZ3JvdXBpbmc6W10sdGhlbWU6IiJ9fSxMaW5rOic8YSBocmVmPSJ7MX0iIHRhcmdldD0iX2JsYW5rIiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXIiIGNsYXNzPSJ0ZG4gbncgbWw0Ij57Mn08L2E+Jyxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0kLkRlZmVycmVkKCk7cmV0dXJuIGEuVXJsPWEuUGhvKCkuRG93bmxvYWRVUkwsJC5leHRlbmQoITAsYS5kYXRhLmNmZyxhLlBobygiQ2ZnIikpLFsiLy9zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9jZG4uY2xvdWR3YWxsLm1lL3Bob3Rvbi8iXS5pbmRleE9mKGEuZGF0YS5jZmcucm9vdFJlcG8pPi0xJiYoYS5kYXRhLmNmZy5yb290UmVwbz0iaHR0cHM6Ly9jZG4uY2xvdWR3YWxsLm1lL3Bob3Rvbi8iKSxhLnJlbG9hZERCTGlzdD1hLnJlbG9hZERCTGlzdC5kZWJvdW5jZSg1MDApLGEuUmVxKHt1cmw6W10sY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oeCl7JC5leHRlbmQoITAsYS5kYXRhLnNlcnZpY2UseCl9KS5hbHdheXMoZnVuY3Rpb24oKXt4Lmh0bWwoJC5teS5mb3JtZ2VuKGEuSFRNTCkuYXNzaWduKGEubGFuZykpLGEubmljZVNjcm9sbCh4LmZpbmQoIiNhYWxsIikpLGIucmVzb2x2ZSgpfSksYi5wcm9taXNlKCl9LHVpOnsiI2FwaG8iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGhvKCJWZXJzaW9uIikucmVwbGFjZSgvW14wLTlcLl0vZywiIil9LCIjYXBob2J1aWxkIjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LlBobygiYnVpbGQiKSxiPURhdGUuY3JlYXRlKHguUGhvKCJzdGFtcCIpfHxEYXRlLm5vdygpKS5mb3JtYXQoInt5eXl5fS17TU19LXtkZH0iKTtyZXR1cm4gYT8nPHNwYW4gY2xhc3M9ImdyYXkiPkJ1aWxkICcrYSsiLCAiK2IrIjwvc3Bhbj4iOiIifSwiI2FwaG9hZGQiOmZ1bmN0aW9uKCl7dmFyIHg9KHdpbmRvdy5ERE9DfHx7YXBwczp7ZWQ6e2lkOiJjdy5TeXMuSlNPTiJ9fX0pLmFwcHMsYT1bXTtyZXR1cm4gT2JqZWN0LmtleXMoeCkuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgYz14W2JdO2MuaWQmJiFjLmlkLnN0YXJ0c1dpdGgoImN3LlBob3RvbiIpJiZhLnB1c2goWyhjLm5hbWV8fGMuaWQpKyLCoCIsYy5WZXJzaW9ufHxjLnZlcnNpb258fG51bGwsYy5idWlsZD8iLiIrYy5idWlsZDpudWxsXS5jb21wYWN0KCkuam9pbigiIikpfSksYS5qb2luKCI8YnI+Iil9LCIjYXBob2xpYnMiOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJMaWJzVXNlZCIpO3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGFbYl0/eC5MaW5rLmFzc2lnbihhW2JdLGIpOic8c3BhbiBjbGFzcz0idGRuIG53IG1sNCI+JytiKyI8L3NwYW4+In0pLmpvaW4oIiwgIil9LCIjYnRuLXNob3dsaWJzIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKGIuYWRkQ2xhc3MoImhpZGUiKSxiLm5leHQoKS5yZW1vdmVDbGFzcygiaGlkZSIpKX0sZXZlbnRzOiJjbGljay5teSJ9LCIjYXBob2ZvbnRzIjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LlBobygiRm9udHNVc2VkIik7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYVtiXT94LkxpbmsuYXNzaWduKGFbYl0sYik6JzxzcGFuIGNsYXNzPSJ0ZG4gbncgbWw0Ij4nK2IrIjwvc3Bhbj4ifSkuam9pbigiLCAiKX0sIiNhdmVyIjoic2VydmljZS52ZXJzaW9uIiwiI2F2ZW5kb3IiOmZ1bmN0aW9uKHgpe3ZhciBhPXguc2VydmljZS52ZW5kb3I7cmV0dXJuKGEubmFtZSsiICIrYS52ZXJzaW9uKyhhLnZhcmlhbnQ/IiAoIithLnZhcmlhbnQrIikiOiIiKSkuZXNjYXBlSFRNTCgpfSwiI2Fub2RlIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLlBobygiQmFzZSIpO3JldHVybic8YSBocmVmPSJ7MX0iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGRuIj57Mn0gezN9PC9hPicuYXNzaWduKGEsJzxzcGFuIGNsYXNzPSJmczkwICcrKC9eaHR0cHM6Ly50ZXN0KGEpPyJmaS1sb2NrIGJsdWUyIjoiZmktdW5sb2NrIHJlZDIiKSsnIj48L3NwYW4+JyxhLnJlcGxhY2UoL15odHRwW3NdPzpcL1wvfFwvL2csIiIpLmVzY2FwZUhUTUwoKSl9LCIjYXdlbGNvbWUiOmZ1bmN0aW9uKHgpe3JldHVybiB4LnNlcnZpY2UuY291Y2hkYi5lc2NhcGVIVE1MKCl9LCIjYWZlYXR1cmVzIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9eC5zZXJ2aWNlLmZlYXR1cmVzO3JldHVybiBPYmplY3QuaXNBcnJheShjKSYmYy5sZW5ndGg/KGIucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhpZGUiKSx4LnNlcnZpY2UuZmVhdHVyZXMuam9pbigiLCAiKS5lc2NhcGVIVE1MKCkpOihiLnBhcmVudCgpLmFkZENsYXNzKCJoaWRlIiksIuKAlCIpfX0sIiNhY2x1c3RlciI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMuUGhvKCJNZW1iZXJzaGlwIikuY2x1c3Rlcl9ub2Rlc3x8W107cmV0dXJuIGIucGFyZW50KCkudG9nZ2xlQ2xhc3MoImhpZGUiLGMubGVuZ3RoPDIpLGMubGVuZ3RoP3RoaXMubGFuZy5UWFRfQ0xVU1RFUihjLmxlbmd0aCk6IuKAlCJ9fSwiI2FwZXJmdGVzdCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGw9PWEmJmIuYXR0cigiaHJlZiIsd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXS5yZXBsYWNlKC9pbmRleC5odG1sJC8sIiIpLnJlcGxhY2UoL1wvJC8sIiIpKyIvcGVyZnRlc3QuaHRtbCIpfSxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5QaG8oIl9jb21waWxlZCIpfHwtMT09KGN3Lm1lKCJyb2xlcyIpfHxbXSkuaW5kZXhPZigiX2FkbWluIil9fX0sIiNoaWRlY291Y2hhcHAiOntjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5QaG8oIl9jb21waWxlZCIpfHwtMT09KGN3Lm1lKCJyb2xlcyIpfHxbXSkuaW5kZXhPZigiX2FkbWluIil9fX0sIiNidG4tYWRsIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7JC5teS5tb2RhbCh7bWFuaWZlc3Q6JC5leHRlbmQoITAse2xhbmc6Yi5sYW5nLFBobzpiLlBobyxSZXE6Yi5SZXF9LGIuRG93bmxvYWQpLGRhdGE6e30sZ2xvYmFsOiEwLHNjcmVlbjohMCxlc2M6ITAsZW50ZXI6ITAsY3NzOiJwMjUgdGFjIix3aWR0aDozMDB9KX19LGV2ZW50czoiY2xpY2subXkifSwiI3Nmb250Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7ZGF0YTpbe2lkOiJhdXRvIix0ZXh0OiJBdXRvIn0se2lkOiInLWFwcGxlLXN5c3RlbScsJ0JsaW5rTWFjU3lzdGVtRm9udCciLHRleHQ6IkFwcGxlIHN5c3RlbSBmb250In0se2lkOiInU2Vnb2UgVUknIix0ZXh0OiJTZWdvZSBVSSJ9LHtpZDoiJ0hlbHZldGljYSBOZXVlJyxIZWx2ZXRpY2EiLHRleHQ6IkhlbHZldGljYSJ9LHtpZDoiVWJ1bnR1Iix0ZXh0OiJVYnVudHUifSx7aWQ6IlRhaG9tYSIsdGV4dDoiVGFob21hIn0se2lkOiJDb3VzaW5lIix0ZXh0OiJDb3VzaW5lIChtb25vc3BhY2VkKSJ9XSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOiJjZmcuZm9udCJ9LCIjc3RoZW1lIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19USEVNRSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT9beC5jZmcudGhlbWUrIiJdOih4LmNmZy50aGVtZSE9YSsiIiYmKHguY2ZnLnRoZW1lPWErIiIsdGhpcy5TZXRUaGVtZS5kZWxheSg1LGErIiIpKSxhKX19LCIjc2Z3ZWlnaHQiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX0ZXRUlHSFQpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGw9PWE/W3guY2ZnLmZvbnRXZWlnaHQrIiJdOih4LmNmZy5mb250V2VpZ2h0PWErIiIsYSl9fSwiI3NjZm9udCI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse2RhdGE6W3tpZDoiYXV0byIsdGV4dDoiQXV0byJ9LHtpZDoiQ291c2luZSIsdGV4dDoiQ291c2luZSJ9LHtpZDoiTW9uYWNvIix0ZXh0OiJNb25hY28ifSx7aWQ6IkNvbnNvbGFzIix0ZXh0OiJDb25zb2xhcyJ9XSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOiJjZmcuZm9udENvZGUifSwiI3Njb2xzIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3Moe3RhZ3M6dGhpcy5sYW5nLlRBR19DT0xTfSl9LGJpbmQ6ImNmZy5saXN0Q29scyIsY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiFjdy5tZSgpfX19LCIjc2dyb3VwIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19HUk9VUCl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmYSsiIiE9eC5jZmcuZ3JvdXBpbmcrIiImJih4LmNmZy5ncm91cGluZz1hLHRoaXMucmVsb2FkREJMaXN0KCkpLHguY2ZnLmdyb3VwaW5nfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIWN3Lm1lKCl9fX0sIiNzc2Nyb2xsIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3MoJC5leHRlbmQoe3RhZ3NoaW06IiIsZ3JvdXBzaGltOiIifSx0aGlzLmxhbmcuVEFHX1NDUk9MTCkpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmNmZy5zY3JvbGxTcGVlZD1hKyIifHwiMiIpLFt4LmNmZy5zY3JvbGxTcGVlZCsiIl19LGNzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLlBobygiX2NvbXBpbGVkIil8fHRoaXMuUGhvKCJpT1MiKXx8dGhpcy5QaG8oImlzTWFjIil8fHRoaXMuUGhvKCJpc1dlYktpdCIpfX19LCIjc3BpbmciOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncygkLmV4dGVuZCh7dGFnc2hpbToiIixncm91cHNoaW06IiJ9LHRoaXMubGFuZy5UQUdfUElORykpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmNmZy5waW5nU2Vzc2lvbj0rKGErIiIpfHwwKSxbeC5jZmcucGluZ1Nlc3Npb24rIiJdfX0sIiNzcG9sbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLmxvb3BBY3RpdmVUYXNrcz1pc05hTihhKT81OigwfCthKS5jbGFtcCgxLDM2MDApKSx4LmNmZy5sb29wQWN0aXZlVGFza3MrIiJ9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hY3cubWUoKX19fSwiI3N0YXRzcG9sbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnN0YXRzUmVmcmVzaD1pc05hTihhKT8xMDooMHwrYSkuY2xhbXAoNSwxMjApKSx4LmNmZy5zdGF0c1JlZnJlc2grIiJ9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hY3cubWUoKX19fSwiI3NyZXBvIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcucm9vdFJlcG89YS5yZXBsYWNlKC9ccy9nLCIiKSkseC5jZmcucm9vdFJlcG99LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5QaG8oIl9jb21waWxlZCIpfHwhKCF3aW5kb3cuRERPQ3x8IXdpbmRvdy5ERE9DLnNldHRpbmdzLnJvb3RSZXBvKXx8IWN3Lm1lKCl9fX0sIiNzdXBkIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3MoJC5leHRlbmQoITAse30sdGhpcy5sYW5nLlRBR19VUEQse3RhZ3NoaW06IiIsZ3JvdXBzaGltOiIifSkpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmNmZy51cGRhdGU9YSsiInx8InJlbWluZCIpLFt4LmNmZy51cGRhdGUrIiJdfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIWN3Lm1lKCl9fX0sIiNzaWNvbiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5jZmcuaWNvbj94LmNmZy5pY29uOnRoaXMuUGhvKCJmaWxlcyIpWyJmYXZpY29uLnBuZyJdLnVybH0sd2F0Y2g6WyIjYnRuLXJlc2V0aWNvbiJdfSwiI2J0bi1zZXRpY29uIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5teS5tb2RhbCgiI2J0bi1zZXRpY29uIix7bWFuaWZlc3Q6Yi5Dcm9wcGVyLGdsb2JhbDohMCxjc3M6InAyNSIsc2NyZWVuOiEwfSkudGhlbihmdW5jdGlvbihhKXt4LmNmZy5pY29uPWEuZGF0YSxiLm15LmNoZWNrKCIjc2ljb24iKX0pfX0sZXZlbnRzOiJjbGljay5teSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuISh0aGlzLlBobygiX2NvbXBpbGVkIikmJighd2luZG93LkRET0N8fCF3aW5kb3cuRERPQy5zZXR0aW5ncy5pY29uKSYmY3cubWUoKSYmIXguY2ZnLnRoZW1lKX19LHdhdGNoOlsiI3N0aGVtZSJdfSwiI2J0bi1yZXNldGljb24iOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHguY2ZnLmljb249IiIpfSxldmVudHM6ImNsaWNrLm15Iix3YXRjaDpbIiNzdGhlbWUiXSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hKHRoaXMuUGhvKCJfY29tcGlsZWQiKSYmKCF3aW5kb3cuRERPQ3x8IXdpbmRvdy5ERE9DLnNldHRpbmdzLmljb24pJiZjdy5tZSgpJiYheC5jZmcudGhlbWUpfX19LCIjc3Byb3h5Ijp7ZGVsYXk6MjAwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXt2YXIgYj10aGlzOyQuZXh0ZW5kKGIuUGhvKCJDZmciKSx4LmNmZyksYi5QaG8oIl9jb21waWxlZCIpJiYoYi5QaG8oIkxzIikoIkNmZyIseC5jZmcpLCQubmljZXNjcm9sbC5vcHRpb25zLm1vdXNlc2Nyb2xsc3RlcD0yNSp4LmNmZy5zY3JvbGxTcGVlZC01LCQoJ2xpbmtbcmVsPSJpY29uIl0nKS5hdHRyKCJocmVmIix4LmNmZy5pY29ufHxiLlBobygiZmlsZXMiKVsiZmF2aWNvbi5wbmciXS51cmwpKSwkKHdpbmRvdykudHJpZ2dlcigicmVzaXplIiksJC5teS5yYWRpbygicGhvdG9uX2NmZ19jaGFuZ2UiLE9iamVjdC5jbG9uZSh4LmNmZywhMCkpfX0sd2F0Y2g6WyIjc3JlcG8iLCIjc3VwZCIsIiNzdGhlbWUiLCIjc2ZvbnQiLCIjc2Nmb250IiwiI3Nmd2VpZ2h0IiwiI3N3aWR0aCIsIiNzcG9sbCIsIiNzdGF0c3BvbGwiLCIjc2ljb24iLCIjYnRuLXJlc2V0aWNvbiIsIiNzY29scyIsIiNzZ3JvdXAiLCIjc3Njcm9sbCIsIiNzYmFyIiwiI3NwaW5nIl0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzT2JqZWN0KGEpJiYkLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9fX0sIiNhdXBkIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiLGMsZCxlPXRoaXMsZj1lLlBobygiQ2ZnIikucm9vdFJlcG8sZz1lLmxhbmcsaD0iIjtkPS9fZGVzaWduXC9waG90b24kLy50ZXN0KGYpP3t2ZXJzaW9uOmYscGhvdG9uOmYrIj9hdHRhY2htZW50cz10cnVlIn06e3ZlcnNpb246ZisidmVyc2lvbi5qc29uIixwaG90b246ZisicGhvdG9uLmpzb24ifSwkLmFqYXgoe3VybDpkLnZlcnNpb24sZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXtmdW5jdGlvbiBhKHgpe3ZhciBhPXguc3BsaXQoIi4iKTtyZXR1cm4gMWUxMiphWzBdKzFlNiphWzFdKyhpc05hTihhWzJdKT85OTk5OTk6K2FbMl0pfWI9ZS5QaG8oIlZlcnNpb24iKSsiLiIrZS5QaG8oImJ1aWxkIiksYz14LnZlcnNpb258fCIwLjAuMCI7dmFyIGY9YShiKSxqPWEoYyk7cmV0dXJuIGY+PWo/KGUuUGhvKCJMcyIpKCJMYXN0VXBkYXRlIix7cmVtaW5kZXI6RGF0ZS5ub3coKX0pLGN3LmxpYi5ub3RlKGcuTVNHX1VQRF9OT05FRUQpKTooeC52ZXJzaW9ucyYmKGg9eC52ZXJzaW9ucy5zcGxpdCgiIyMiKS5jb21wYWN0KCEwKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgudHJpbSgpfSkucmVkdWNlKGZ1bmN0aW9uKHgsYil7dmFyIGM9Yi5zcGxpdCgvXG5cbi8pO3JldHVybiBhKGNbMF0pPmYmJngucHVzaChjLnNsaWNlKDEpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4nPGxpIGNsYXNzPSJtbDE3Ij57MX08L2xpPicuYXNzaWduKHguZXNjYXBlSFRNTCgpKX0pLmpvaW4oIlxuIikpLHh9LFtdKS5qb2luKCJcbiIpKS5sZW5ndGgmJihoPWcuVFhUX1VQRF9GRUFUVVJFUy5hc3NpZ24oaCkpLCQuYWpheCh7dXJsOmQucGhvdG9uLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oaSkpfSkuZmFpbChmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGcuRVJSX1VQREFURV9DSEVDSywiZXJyb3IiKX0pfWZ1bmN0aW9uIGkoeCl7JC5teS5tb2RhbCh7bWFuaWZlc3Q6ZS5QaG8oIkNvbmZpcm0iKSxkYXRhOnt0ZXh0OmcuVFhUX1VQRC5hc3NpZ24oYixjLGgpLHllczpnLkJUTl9VUERBVEUsbm86Zy5CVE5fQ0FOQ0VMLGNhbmNlbDoiIix1c2VCdXR0b25zOiEwfSx3aWR0aDo0NTAsY3NzOiJwMjAgeGdyYXkgbGgxNzAgcGIyNSIsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoInllcyIhPWEuY21kfHwhd2luZG93LkRET0MpcmV0dXJuIGUuUGhvKCJMcyIpKCJMYXN0VXBkYXRlIix7cmVtaW5kZXI6RGF0ZS5ub3coKX0pLHZvaWQgMDt4Ll9yZXY9ZS5kYXRhLmRkb2MuX3Jldnx8d2luZG93LkRET0MuX3Jldix3aW5kb3cuRERPQyYmd2luZG93LkRET0Muc2V0dGluZ3MmJih4LnNldHRpbmdzPXdpbmRvdy5ERE9DLnNldHRpbmdzKTt2YXIgYj17fTtPYmplY3Qua2V5cyh4Ll9hdHRhY2htZW50cykuZm9yRWFjaChmdW5jdGlvbihhKXtiW2FdPU9iamVjdC5zZWxlY3QoeC5fYXR0YWNobWVudHNbYV0sWyJjb250ZW50X3R5cGUiLCJkYXRhIl0pfSkseC5fYXR0YWNobWVudHM9YixlLlJlcSh7dXJsOltERE9DLl9kYnx8Il9waG90b24iLHguX2lkXSxtZXRob2Q6IlBVVCIsZGF0YTpKU09OLnN0cmluZ2lmeSh4KSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YVR5cGU6InRleHQifSkudGhlbihmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGcuTVNHX1VQREFURV9PSywiIiw2ZTMpLGUuUGhvKCJMcyIpKCJMYXN0VXBkYXRlIix7c3RhbXA6RGF0ZS5ub3coKX0pfSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y3cubGliLm5vdGUoZy5FUlJfVVBEQVRFLmFzc2lnbih4LGEpLCJlcnJvciIpfSl9KX19LGV2ZW50czoiY2xpY2subXkifX0scmVsb2FkREJMaXN0OmZ1bmN0aW9uKCl7JC5teS5yYWRpbygiZGJsaXN0IixPYmplY3Qua2V5cyh0aGlzLlBobygiQWxsIikpKX0sc3R5bGU6eyIgY29kZSI6ImZvbnQtc2l6ZToxMDMlOyIsIiAjc2ljb24iOmZ1bmN0aW9uKHgpe3ZhciBhPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwuOTk5O3JldHVybiBhPT1NYXRoLnJvdW5kKGEpPyJpbWFnZS1yZW5kZXJpbmc6cGl4ZWxhdGVkOyI6IiJ9fSxBY3Rpb25zOntjbGVhbkxTOmZ1bmN0aW9uKCl7Zm9yKHZhciB4LGEsYj1sb2NhbFN0b3JhZ2UsYz1bXSxkPTA7ZDxiLmxlbmd0aDtkKyspeD1iLmtleShkKSxhPWIuZ2V0SXRlbSh4KSx4LnN0YXJ0c1dpdGgoImN3LlBob3Rvbi5WaWV3U3RhdGUuIikmJihhLmhhcygnWyIudmFsdWUiJyl8fGEuaGFzKCdbIi5kb2MiXScpKSYmYy5wdXNoKGIua2V5KGQpKTtjLmZvckVhY2goeD0+Yi5yZW1vdmVJdGVtKHgpKX19LEhUTUw6Wyc8ZGl2IGNsYXNzPSJ4Z3JheSBhcHBoZWlnaHQiIGlkPSJhYWxsIiBzdHlsZT0ibWFyZ2luOjAgYXV0byAwIGF1dG87IHBhZGRpbmc6NTJweCBjYWxjKDUwJSAtIDQyNXB4KSAyMHB4IGNhbGMoNTAlIC0gNDI1cHgpOyI+JywnPGRpdiBjbGFzcz0idzQ1MCBkaWIgdmF0Ij4nLHtyb3c6IjQ1MHB4IixsYWJlbDoiMTIwcHgiLHJvd0NzczoibXktcm93IHBiMiIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAifSwnPGRpdiBpZD0iYXRpdGxlIj4nLCc8c3BhbiBjbGFzcz0iZGliIGZzMTUwIGxoMTYwIHByMjAiIHN0eWxlPSJtaW4td2lkdGg6MTIwcHg7Ij4nLCdDb3VjaERCIDxzcGFuIGlkPSJhdmVyIj48L3NwYW4+JywiPC9zcGFuPiIsIjwvZGl2PiIsWyJ7TF9VUkx9Iiwic3BuI2Fub2RlIl0sWyJ7TF9DTFVTVEVSfSIsInNwbiNhY2x1c3RlciJdLFsie0xfVkVORE9SfSIsInNwbiNhdmVuZG9yIl0sWyJ7TF9DT1VDSH0iLCJzcG4jYXdlbGNvbWUiXSxbIntMX0ZFQVR9Iiwic3BuI2FmZWF0dXJlcyJdLFsie0xfUEVSRn0iLCc8YSBpZD0iYXBlcmZ0ZXN0IiBjbGFzcz0idGRuIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIj4nLCc8c3BhbiBjbGFzcz0iZmktZ3JhcGgtaG9yaXpvbnRhbCBibHVlMiBmczkwIj48L3NwYW4+JywiJm5ic3A7e0xfUEVSRlRFU1R9IiwiPC9hPiJdLCc8ZGl2IGlkPSJhdGl0bGUiIGNsYXNzPSJtdDIwIj4nLCc8c3BhbiBjbGFzcz0iZGliIGZzMTUwIGxoMTYwIHByNiBtYjIiIHN0eWxlPSJtaW4td2lkdGg6MTIwcHg7Ij4nLCdQaG90b27CoDxzcGFuIGlkPSJhcGhvIj48L3NwYW4+JywiPC9zcGFuPiIsJzxzcGFuIGlkPSJhcGhvYnVpbGQiPjwvc3Bhbj4nLCI8L2Rpdj4iLHtyb3dDc3M6Im15LXJvdyBwYjYifSxbIntMX1BIT0FERH0iLCJzcG4jYXBob2FkZCJdLFsie0xfUEhPTElCU30iLCJzcG4jYnRuLXNob3dsaWJzLnBzZXVkb2xpbmsudGRuIix7dHh0OiJTaG93IGxpc3QuLi4ifSwic3BuI2FwaG9saWJzLmRpYi52YXQubWwtNC5oaWRlIl0sWyJ7TF9QSE9GT05UU30iLCJzcG4jYXBob2ZvbnRzLmRpYi52YXQubWwtNCJdLHtyb3dDc3M6Im15LXJvdyBtdDE1IG1iMjAgIn0sJzxkaXYgaWQ9ImhpZGVjb3VjaGFwcCIgY2xhc3M9ImhpZGUiPicsWyIgIiwnPGJ1dHRvbiBpZD0iYXVwZCIgY2xhc3M9ImZzMTAwIj48c3BhbiBjbGFzcz0iZmktY2xvdWQgbzQwIj48L3NwYW4+IHtMX0NIRUNLX1VQREFURVN9wqA8L2J1dHRvbj4nXSx7cm93Q3NzOiJteS1yb3cgbXQyIn0sWyIgIiwnPHNwYW4gY2xhc3M9ImJsdWUgbzUwIGZpLWRvd25sb2FkIGZzOTUgbXIyIGZzOTAiPjwvc3Bhbj4gPHNwYW4gaWQ9ImJ0bi1hZGwiIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiI+e0xfREx9PC9zcGFuPiddLFsiICIsJzxzcGFuIGNsYXNzPSJibHVlIG82MCBmaS1zb2NpYWwtZ2l0aHViIG1yMiI+PC9zcGFuPiAnLCc8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZXJtb3V0aC9jb3VjaC1waG90b24iIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlciIgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iPntMX0dJVEhVQn08L2E+J10sWyIgIiwnPHNwYW4gY2xhc3M9ImJsdWUgbzUwIGZpLWxpZ2h0YnVsYiBtcjIiPjwvc3Bhbj4gJywnPGEgaHJlZj0iaHR0cHM6Ly9jbG91ZHdhbGwubWUvX2RlbW8vI2N3L01hbmlmZXN0LyFXeUpsWkdsMElpd2lZM2N0VUdodmRHOXVMVEZqWTJRaVhRLS0iIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlciIgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iPntMX1NPVVJDRVN9PC9hPiddLCI8L2Rpdj4iLHtyb3dDc3M6Im15LXJvdyBtdDIwIn0sWyIgIiwnPHNwYW4gY2xhc3M9ImdyYXkgZnM5MCI+KGMpIDIwMjIgZXJtb3V0aC4gUGhvdG9uIGlzIE1JVCBsaWNlbnNlZC48L3NwYW4+J10sIjwvZGl2PiIsJzxkaXYgY2xhc3M9InczNzAgZGliIHZhdCBtbDMwIj4nLHtyb3c6IjM3MHB4IixsYWJlbDoiMTMwcHgiLHJvd0NzczoibXktcm93IHBiOSIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAgdmF0IHB0OSJ9LCc8ZGl2IGlkPSJhdGl0bGUiIGNsYXNzPSJmczE1MCBsaDE2MCBwYjYiPntTX1RJVExFfTwvZGl2PicsWyJ7U19SRVBPfSIsImlucCNzcmVwby53MTAwcCJdLFsie1NfVVBEfSIsImRpdiNzdXBkLmRpYi52YXQudzEwMHAubGgxODAucGIyLm53Il0sWyJ7U19USEVNRX0iLCJkaXYjc3RoZW1lLmRpYi52YXQudzEwMHAubGgxODAucGIxIl0sWyJ7U19GQ0ZBTUlMWX0iLCJpbnAjc2Nmb250LncxMDBwLmZzMTEwIl0sWyJ7U19GRkFNSUxZfSIsImlucCNzZm9udC53MTAwcC5mczExMCJdLFsie1NfRldFSUdIVH0iLCJkaXYjc2Z3ZWlnaHQuZGliLnZhdC53MTAwcC5saDE4MC5wYjEiXSxbIntTX1NDUk9MTH0iLCJkaXYjc3Njcm9sbC5kaWIudmF0LncxMDBwLmxoMTgwLnBiMSJdLFsie1NfQ09MU30iLCJkaXYjc2NvbHMuZGliLnZhdC53MTAwcC5saDE4MC5wYjEiXSxbIntTX0dST1VQfSIsImRpdiNzZ3JvdXAuZGliLnZhdC53MTAwcC5saDE4MC5wYjEubnciXSxbIntTX1BJTkd9IiwiZGl2I3NwaW5nLmRpYi52YXQudzEwMHAubGgxODAucGIzIl0sWyJ7U19QT0xMfSIsIm51bSNzcG9sbC53NjUiLHttaW46IjEiLG1heDoiMzYwMCIsc3RlcDoiMSJ9LCI8c3Bhbj4gczwvc3Bhbj4iXSxbIntTX1NUQVRTX1BPTEx9IiwibnVtI3N0YXRzcG9sbC53NjUiLHttaW46IjUiLG1heDoiMTIwIixzdGVwOiI1In0sIjxzcGFuPiBzPC9zcGFuPiJdLHtsYWJlbENzczoibXktbGFiZWwgZnM5MCBwdDgifSxbIntTX0lDT059IiwnPGltZyBzdHlsZT0id2lkdGg6NjRweDtoZWlnaHQ6NjRweDsiIGNsYXNzPSJkaWIgdmF0IGJyMiIgaWQ9InNpY29uIj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHB0MyBwbDEwIj4nLCc8c3BhbiBjbGFzcz0icHNldWRvbGluayB0ZG4iIGlkPSJidG4tc2V0aWNvbiI+e0JUTl9JQ09OfTwvc3Bhbj4gPGJyPicsJzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiBoaWRlIiBpZD0iYnRuLXJlc2V0aWNvbiI+e0JUTl9JQ09OX1JFU0VUfTwvc3Bhbj4nXSwnPGRpdiBpZD0ic3Byb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+JywiPC9kaXY+Il0sQ3JvcHBlcjp7cGFyYW1zOnt3aWR0aDo2ODZ9LGRhdGE6e2ZpbGVuYW1lOiIiLGRhdGE6IiIsY3JvcHBlZDohMSxzaXplOjY0fSxpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9JC5teS5mb3JtZ2VuKFsnPGRpdiBjbGFzcz0iZmwgbXIyMCB0YWMgdmF0IGJnLWxncmF5IiBzdHlsZT0id2lkdGg6NjAwcHg7aGVpZ2h0OjQ1MHB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtsaW5lLWhlaWdodDo0NTBweDsiIGlkPSJjcm9wLWZyYW1lIj4nLCc8aW1nIGlkPSJzb3VyY2UiIGNsYXNzPSJ2YW0iIHN0eWxlPSJtYXgtd2lkdGg6NjAwcHg7IG1heC1oZWlnaHQ6NDUwcHg7IGJhY2tncm91bmQ6d2hpdGUiIHNyYz0iIiAvPicsJzxkaXYgY2xhc3M9Inc2MDAgIGRpYiIgc3R5bGU9ImhlaWdodDo0NTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjAiPicsJzxzcGFuIGNsYXNzPSJkaWIgdmFtIGZzMTEwIGJ1dHRvbiI+JywnPHNwYW4gY2xhc3M9ImZpLXBob3RvIj48c3BhbiBjbGFzcz0iZnMxMTAiPiAmbmJzcDtTZWxlY3QgSW1hZ2U8L3NwYW4+PC9zcGFuPicsIjwvc3Bhbj4iLCc8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUiIGNsYXNzPSJ3NjAwIGRpYiIgYWNjZXB0PSJpbWFnZS9qcGVnLGltYWdlL3BuZyIgc3R5bGU9ImhlaWdodDo0NTBweDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjA7IHBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MCI+JywiPC9kaXY+IiwiPC9kaXY+IiwnPGRpdiBjbGFzcz0idzY1IGRpYiB2YXQiIGlkPSJ4cHJldmlldyI+JywnPGltZyBpZD0iaXByZXZpZXciIHN0eWxlPSJ3aWR0aDo2NHB4O2hlaWdodDo2NHB4O2JvcmRlcjpub25lOyIgY2xhc3M9ImJnLWdyYXk3Ij4nLHtyb3c6IjY1cHgiLHJvd0NzczoibXQ1IGZzOTAgdGFjIn0sWyIiLCJidG4jYnRuLWFwcGx5Lnc2NS5ncmVlbiIse3ZhbDoiU2V0In1dLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3NjUgZGliIHZhdCIgaWQ9Inh3YXJuIj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJoaWRlIj4nLCc8Y2FudmFzIGlkPSJ4MiIgd2lkdGg9JysyKmEuZGF0YS5zaXplKyIgaGVpZ2h0PSIrMiphLmRhdGEuc2l6ZSsiPjwvY2FudmFzPiIsJzxjYW52YXMgaWQ9InByZXZpZXciIGNsYXNzPSJiZy1sZ3JheSIgc3R5bGU9IndpZHRoOjY0cHg7aGVpZ2h0OjY0cHgiIHdpZHRoPScrYS5kYXRhLnNpemUrIiBoZWlnaHQ9IithLmRhdGEuc2l6ZSsnIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47Ij48L2NhbnZhcz4nLCI8L2Rpdj4iLCc8aW1nIGlkPSJtYXNrMSIgY2xhc3M9ImhpZGUiIHNyYz0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJalkwSWlCb1pXbG5hSFE5SWpZMElpQjJhV1YzUW05NFBTSXdMREFzTmpRc05qUWlQZ29nSUR4d1lYUm9JR1E5SWswd0xETXlJRU13TERBZ01Dd3dJRE15TERBZ1F6WTBMREFnTmpRc01DQTJOQ3d6TWlCRE5qUXNOalFnTmpRc05qUWdNeklzTmpRZ1F6QXNOalFnTUN3Mk5DQXdMRE15SWlCbWFXeHNQU0lqUmpCR01FWXdJaTgrQ2p3dmMzWm5QZ289Ij4nXSk7eC5odG1sKGIpfSxzdHlsZTp7IiAuamNyb3AtaG9sZGVyIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlIn0sdWk6eyIjZmlsZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjLGQ9dGhpcyxlPWIubXkoKS5yb290LGY9ZS5maW5kKCIjcHJldmlldyIpLGc9ZS5maW5kKCIjc291cmNlIiksaD1lLmZpbmQoIiN4MiIpLGk9ZS5maW5kKCIjbWFzazEiKSxqPXtrOjF9LGs9IiI7ZnVuY3Rpb24gbChhKXtpZihwYXJzZUludChhLncpPjApe3ZhciBiLGMsZSxrPWdbMF0sbD1qLmssbT1hLncqbHwwOyhiPWZbMF0uZ2V0Q29udGV4dCgiMmQiKSkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJjb3B5IixiLmZpbGxTdHlsZT0idHJhbnNwYXJlbnQiLGIuZmlsbFJlY3QoMCwwLHguc2l6ZSx4LnNpemUpLGIuZHJhd0ltYWdlKGlbMF0sMCwwLHguc2l6ZSx4LnNpemUsMCwwLHguc2l6ZSx4LnNpemUpLGIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2UtaW4iLG0+Mip4LnNpemU/KChlPShjPWhbMF0pLmdldENvbnRleHQoIjJkIikpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iY29weSIsZS5maWxsU3R5bGU9InRyYW5zcGFyZW50IixlLmZpbGxSZWN0KDAsMCwyKnguc2l6ZSwyKnguc2l6ZSksZS5kcmF3SW1hZ2UoayxhLngqbHwwLGEueSpsfDAsbSxtLDAsMCwyKnguc2l6ZSwyKnguc2l6ZSksYi5kcmF3SW1hZ2UoYywwLDAsMip4LnNpemUsMip4LnNpemUsMCwwLHguc2l6ZSx4LnNpemUpKTpiLmRyYXdJbWFnZShrLGEueCpsfDAsYS55Kmx8MCxtLG0sMCwwLHguc2l6ZSx4LnNpemUpLHguZGF0YT1jdy5saWIuaW1hZ2UoZikubWFwKGZ1bmN0aW9uKHgpe3JldHVybigoMjU1Knh8MCk+PjI8PDIpLzI1NX0pLnNoYXJwZW4oMS42KS5icmlnaHRuZXNzKDEuMSkucG5nKCksZC5teS5maW5kKCIjaXByZXZpZXciKS5hdHRyKCJzcmMiLHguZGF0YSkseC5jcm9wcGVkPSEwLGQubXkuY2hlY2soIiNidG4tYXBwbHkiKX19bnVsbCE9YSYmYSYmKGM9YlswXS5maWxlc1swXSkmJmZ1bmN0aW9uKCl7eC5maWxlbmFtZT1jLm5hbWU7dmFyIGEsZD1uZXcgRmlsZVJlYWRlcixlPVtdO2Qub25sb2FkPWZ1bmN0aW9uKHgpe2E9bmV3IFVpbnQ4QXJyYXkoeC50YXJnZXQucmVzdWx0KTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyllLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShhW2JdKSk7az13aW5kb3cuYnRvYShlLmpvaW4oIiIpKX0sZC5vbmxvYWRlbmQ9ZnVuY3Rpb24oKXtnLmxvYWQoZnVuY3Rpb24oKXtqLms9Z1swXS5uYXR1cmFsV2lkdGgvZy53aWR0aCgpfSksZy5yZW1vdmVDbGFzcygiaGlkZSIpLmF0dHIoInNyYyIsImRhdGE6aW1hZ2UvanBlZztiYXNlNjQsIitrKSxqLms9Z1swXS5uYXR1cmFsV2lkdGgvZy53aWR0aCgpLGcuSmNyb3Aoe29uQ2hhbmdlOmwsb25TZWxlY3Q6bC5kZWJvdW5jZSgyMCksYXNwZWN0UmF0aW86MSxtaW5TaXplOls2NCw2NF0sYWxsb3dNb3ZlOiEwfSxmdW5jdGlvbigpe3RoaXMuYW5pbWF0ZVRvKFsxMDAsMTAwLDMwMCwzMDBdKX0pLGs9IiIsYi5wYXJlbnQoKS5hZGRDbGFzcygiaGlkZSIpfSxkLnJlYWRBc0FycmF5QnVmZmVyKGMpfSgpfX0sIiNidG4tYXBwbHkiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmeC5jcm9wcGVkJiZ0aGlzLm15LmNvbW1pdCgpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXguY3JvcHBlZH19fX19LERvd25sb2FkOntkYXRhOntjZmc6e319LEpTT046ITEsQmxvYjohMSxVcmw6ITEsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuVXJsPWEuUGhvKCkuRG93bmxvYWRVUkwsJC5leHRlbmQoITAsYS5kYXRhLmNmZyxhLlBobygiQ2ZnIikpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSkseC50aGVuKGZ1bmN0aW9uKCl7YS5yZWFkUGhvdG9uKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y29uc29sZS5sb2coeCxhKX0pfSx1aTp7IiNhZGwiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9Yy5VcmwsZT13aW5kb3cuRERPQztyZXR1cm4gYy5QaG8oIl9jb21waWxlZCIpJiZlJiYiIiE9PWQ/ITE9PT1kPyc8c3BhbiBjbGFzcz0ieGdyYXkiPicrYy5sYW5nLkxfRExQUkVQKyI8L3NwYW4+IjooYi5hdHRyKCJocmVmIixkKSxiLmF0dHIoImRvd25sb2FkIiwicGhvdG9uLSIrYy5QaG8oIlZlcnNpb24iKS5yZXBsYWNlKC9bXjAtOVwuXS9nLCIiKSsiLiIrYy5QaG8oImJ1aWxkIikrIi5qc29uIiksYy5sYW5nLkxfRExfTElOSyk6Ik5vIGFwcCBjb2RlLCBzb3JyeSJ9fX0sSFRNTDpbe3Jvd0NzczoibXktcm93In0sWyIgIiwnPHNwYW4gY2xhc3M9ImJsdWUgbzUwIGZpLWRvd25sb2FkIGZzOTUgbXIyIj48L3NwYW4+IDxhIGhyZWY9IiIgaWQ9ImFkbCIgY2xhc3M9InRkbiIgZG93bmxvYWQ9InBob3Rvbi5qc29uIj48L2E+J11dLHJlYWRQaG90b246ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9d2luZG93LkRET0M7aWYoIXguUGhvKCJfY29tcGlsZWQiKXx8IWEpcmV0dXJuIiI7eC5Vcmx8fHguUmVxKHt1cmw6W2EuX2RifHwiX3Bob3RvbiIsYS5faWQse2F0dGFjaG1lbnRzOiEwfV19KS50aGVuKGZ1bmN0aW9uKGEpe3guZGF0YS5kZG9jPWE7dmFyIGI9JC5leHRlbmQoITAse19pZDoiIixuYW1lOiIiLHZlcnNpb246eC5QaG8oIlZlcnNpb24iKSsiLiIreC5QaG8oImJ1aWxkIil9LE9iamVjdC5yZWplY3QoYSxbIl9yZXYiLCJfYXR0YWNobWVudHMiXSkpO2IuX2F0dGFjaG1lbnRzPXt9LE9iamVjdC5rZXlzKGEuX2F0dGFjaG1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBjPWEuX2F0dGFjaG1lbnRzW3hdO2IuX2F0dGFjaG1lbnRzW3hdPXtjb250ZW50X3R5cGU6Yy5jb250ZW50X3R5cGUsZGF0YTpjLmRhdGF9fSkseC5KU09OPWI7Y3cubGliLmJhc2U2NDJibG9iKGN3LmxpYi5iYXNlNjQoSlNPTi5zdHJpbmdpZnkoYixudWxsLCIgICIpKSxmdW5jdGlvbihhKXt4LkJsb2I9YSx4LlVybD1VUkwuY3JlYXRlT2JqZWN0VVJMKGEpLHguUGhvKCkuRG93bmxvYWRVUkw9eC5VcmwseC5teS5jaGVjaygiI2FkbCIpfSwiYXBwbGljYXRpb24vanNvbiIpfSkuZmFpbChmdW5jdGlvbigpe3guVXJsPSIiLHgubXkuY2hlY2soIiNhZGwiKX0pfSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxOHB4OyJ9fX0sJGVycm9yOntpZDoiY3cuUGhvdG9uLiRlcnJvciIsbGFuZzp7fSxkYXRhOntlcnJvcjoiIixwYXRoOltdLG1lc3NhZ2U6IiJ9LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4iZXJyb3IifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJFcnJvciBzd2l0Y2hpbmcgIyIrdGhpcy5kYXRhLnBhdGguam9pbigiLyIpfSxEQjJnbzoiIixEQmxpc3Q6W10saXNDb3VjaDNhbmRBbGxEQnM6ITEsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2EuaXNDb3VjaDNhbmRBbGxEQnM9YS5QaG8oIkNvdWNoIikudmVyPj0iMDAzLiImJmN3Lm1lKCkmJiFiLnBhdGgubGVuZ3RoLHguaHRtbChhLkhUTUwpLGEuaXNDb3VjaDNhbmRBbGxEQnMmJngudGhlbihmdW5jdGlvbigpe3guZmluZCgiI2UtZGJuYW1lIikub24oImtleXVwLm15IixmdW5jdGlvbihhKXt2YXIgYj1hLmtleUNvZGU7MTMhPWImJjEwIT1ifHxmdW5jdGlvbigpe3guZmluZCgiI2J0bi1nbyIpLnRyaWdnZXIoImNsaWNrIil9LmRlYm91bmNlKDUwKSgpfSl9KX0sdWk6eyIjZS1sb2dvIjpmdW5jdGlvbigpe3JldHVybiB0aGlzLlBobygiU1ZHIikubG9nb30sIiNlLW1zZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPXRoaXMsZD14LmVycm9yO3RyeXtiPU9iamVjdC5pc1N0cmluZyhkKT9kKyIiOkpTT04uc3RyaW5naWZ5KGQpfWNhdGNoKHgpe31yZXR1cm4gYnx8KGI9ZCsiInx8IlVuZGVmaW5lZCBlcnJvciIpLGI9Yi5zcGxpdCgidG8gaW5pdGlhbGl6ZToiKS5sYXN0KCkuY29tcGFjdCgpLHgubWVzc2FnZT1iLGMuaXNDb3VjaDNhbmRBbGxEQnM/Yy5sYW5nLlRYVF9DM19BTExfREJTXzQwMTpjLmxhbmcuVFhUX0VSUi5hc3NpZ24oIiMiK3gucGF0aC5qb2luKCIvIikuZXNjYXBlSFRNTCgpLGIpfSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJihhLm5hbWV8fHRoaXMuaXNDb3VjaDNhbmRBbGxEQnMpJiYvXHM0MFszMV1ccy8udGVzdCh4LmVycm9yKSYmJC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pfX19LCIjZS1jZGJuYW1lIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF0aGlzLmlzQ291Y2gzYW5kQWxsREJzfX19LCIjZS1kYm5hbWUiOntkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO3RoaXMuaXNDb3VjaDNhbmRBbGxEQnMmJih4LmF0dHIoInBsYWNlaG9sZGVyIix0aGlzLmxhbmcuUExDX0RCTkFNRSksYS5EQmxpc3Q9KGEuUGhvKCJMcyIpKCJUYWJDbG9zZUhpc3RvcnkiKXx8W10pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50YWJzfSkuZmxhdHRlbigpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5wYXRofSkuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4Lmxlbmd0aCYmIl8iIT14WzBdWzBdfSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4WzBdfSkudW5pcXVlKCkuc29ydCgpLGEuREJsaXN0Lmxlbmd0aCYmeC5hdXRvY29tcGxldGUoe2RlbGF5OjAsc291cmNlOmEuREJsaXN0LGNsb3NlOmZ1bmN0aW9uKHgsYil7YS5teS5jaGVjaygiI2J0bi1kYm5hbWUiKX0uZGVib3VuY2UoMTApLHNlbGVjdDpmdW5jdGlvbih4LGIpe2EubXkuY2hlY2soIiNlLWRibmFtZSIpLGEuU3dpdGNoLmRlYm91bmNlKDYwKSgpfS5kZWJvdW5jZSgxMCksYXBwZW5kVG86YS5teS5yb290KCksbWluTGVuZ3RoOjB9KSl9LGJpbmQ6InRoaXMuREIyZ28ifSwiI2J0bi1kYm5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIubXkuZmluZCgiI2UtZGJuYW1lIiksZD0hIWIuREJsaXN0Lmxlbmd0aCYmYy5hdXRvY29tcGxldGUoIndpZGdldCIpLmlzKCI6dmlzaWJsZSIpO3JldHVybiBudWxsIT1hJiYoZD9jLmF1dG9jb21wbGV0ZSgiY2xvc2UiKTpjLmF1dG9jb21wbGV0ZSgic2VhcmNoIiwiIiksZD0hZCksIjxkaXY+ezF9PC9kaXY+Ii5hc3NpZ24oZD8i4payIjoi4pa8Iil9LGV2ZW50czoiY2xpY2subXkiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hdGhpcy5EQmxpc3QubGVuZ3RofX0sd2F0Y2g6WyIjZS1kYm5hbWUiXX0sIiNidG4tZ28iOntkZWxheToyNSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO3JldHVybiBudWxsIT1hJiZjLlN3aXRjaCgpLGMubGFuZy5CVE5fR099LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hL15bYS16MC05XyRcKFwpXCtcLVwvXSskLy50ZXN0KHRoaXMuREIyZ28pfX0sd2F0Y2g6WyIjZS1kYm5hbWUiXX0sIiNlLWNyZWxvYWQiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaXNDb3VjaDNhbmRBbGxEQnN9fX0sIiNidG4tcmVsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPSI0MDEiPT14Lm1lc3NhZ2UudG8oMykmJiFjdy5tZSgpO2lmKG51bGw9PWEpcmV0dXJuIHRoaXMubGFuZ1tiPyJCVE5fQVVUSCI6IkJUTl9SRVRSWSJdO2I/JCgiI2J0bi1hdXRoLXBvcHVwIikudHJpZ2dlcigiY2xpY2siKTokLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9fX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuaXNDb3VjaDNhbmRBbGxEQnMmJnRoaXMuREJsaXN0Lmxlbmd0aCYmeC5maW5kKCIjZS1kYm5hbWUiKS5hdXRvY29tcGxldGUoImRlc3Ryb3kiKX0sU3dpdGNoOmZ1bmN0aW9uKCl7dmFyIHg9dGhpczt3aW5kb3cubG9jYXRpb24uaGFzaD14LkRCMmdvLHgubXkuZmluZCgiI2UtZGJuYW1lIikuYXV0b2NvbXBsZXRlKCJvcHRpb24iLCJzb3VyY2UiLHguREJsaXN0PXguREJsaXN0LmFkZCh4LkRCMmdvKS51bmlxdWUoKSl9LEhUTUw6JzxkaXYgY2xhc3M9InAxMDAgdGFjIj48ZGl2IGNsYXNzPSJ3NTBwIG10MjUgdGFsIGRpYiB2YXQgbWIxNSI+PGRpdiBpZD0iZS1sb2dvIj48L2Rpdj48ZGl2IGlkPSJlLXRpdGxlIiBjbGFzcz0iZGliIHZhdCI+UGhvdG9uPC9kaXY+PC9kaXY+PGRpdiBpZD0iZS1tc2ciIGNsYXNzPSIiPjwvZGl2Pjxmb3JtIGlkPSJlLWNkYm5hbWUiIGNsYXNzPSJtdDI1IGZzOTUgaGlkZSI+PGRpdiBjbGFzcz0idzUwcCB0YWwgZGliIHZhdCBwbDcwIj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImUtZGJuYW1lIiBzdHlsZT0id2lkdGg6IGNhbGMoMTAwJSAtIDEyMnB4KTsgbWF4LXdpZHRoOjYwMHB4OyIgY2xhc3M9Im1yMiI+PHNwYW4gc3R5bGU9IiIgY2xhc3M9InBzZXVkb2xpbmsgdGRuIGJmb2xkIGRpYiB2YXQiIHR4dD0iIiBpZD0iYnRuLWRibmFtZSI+PGRpdj7ilrw8L2Rpdj48L3NwYW4+PGRpdiBjbGFzcz0idzEyMCBkaWIgdmF0Ij48YnV0dG9uIGlkPSJidG4tZ28iIGNsYXNzPSJ3MTIwIHByMTUiPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZm9ybT48ZGl2IGlkPSJlLWNyZWxvYWQiIGNsYXNzPSJtdDI1IGZzOTUgaGlkZSI+PGRpdiBjbGFzcz0idzUwcCB0YWwgZGliIHZhdCBwbDcwIj48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzEyMCBwcjE1Ij48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj4nLHN0eWxlOnsiICNlLWxvZ28iOnsiIjpbIndpZHRoOjU1cHg7IGhlaWdodDo1NXB4OyBib3JkZXI6MnB4IHNvbGlkICNhMGIwYzA7IGJvcmRlci1yYWRpdXM6NjBweDsiLCJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBtYXJnaW4tcmlnaHQ6MTNweDsgcGFkZGluZzoxNHB4IDVweDsiXSwiIHN2ZyI6IndpZHRoOjM5cHg7IGhlaWdodDoyMHB4OyJ9LCIgI2UtdGl0bGUiOiJmb250LXNpemU6NjBweDsgbGluZS1oZWlnaHQ6MC45ZW07IGNvbG9yOiM5NWE1YjU7IGZvbnQtd2VpZ2h0OjIwMDsiLCIgLnVpLXdpZGdldCI6ImZvbnQtc2l6ZToxMDAlIiwiIC51aS1hdXRvY29tcGxldGUiOiJsaW5lLWhlaWdodDoxLjNlbTsgbWF4LWhlaWdodDoxOXZoOyBvdmVyZmxvdy15OmF1dG87IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOyIsIiAuYmZvbGQiOnsiIjpbIndpZHRoOjIwcHghaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyAiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsiLCJtYXJnaW4tbGVmdDotMjFweDsgei1pbmRleDorMTsiXSwiIGRpdiI6ImZvbnQtc2l6ZTo2MCU7IG9wYWNpdHk6MC41OyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6My4yZW07IHdpZHRoOjEwMCU7In0sIiB1bCI6eyIudWktYXV0b2NvbXBsZXRlIjoibWF4LXdpZHRoOmNhbGMoMTAwJSAtIDExNXB4KTsifX0scGFyYW1zOntzdHJpY3Q6ITB9fSwkZG9jOntpZDoiY3cuUGhvdG9uLiRkb2MiLGxhbmc6e30saGFzaDpmdW5jdGlvbigpe3JldHVybiBjdy5saWIuY3JjMih0aGlzLmRhdGEuZG9jKX0scGFyYW1zOntyZXN0eWxlOjI1LHN0cmljdDohMH0sdGl0bGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9YS5wYXRoLGM9YS5kb2MuX2lkO3JldHVyblt4LnRydW5jKGJbMF0sMTApLCLigIkv4oCJIiwiX2Rlc2lnbi8iPT1jLnRvKDgpPyJfZCIrYy5mcm9tKDcpOiJfdXNlcnMiPT1iWzBdP2MuZnJvbSgxNyk6YyxhLnJldj8i4oCJQOKAiSIrYS5yZXY6IiJdLmpvaW4oIiIpfSxtYXRjaDpmdW5jdGlvbih4LGEpe2lmKGEpcmV0dXJuIl9uZXciPT14WzFdP3t0aXRsZToiTmV3IGRvYyIsYXBwRGF0YTp7aXNOZXc6ITAsZG9jOiJfdXNlcnMiPT14WzBdP3tfaWQ6Im9yZy5jb3VjaGRiLnVzZXI6X3VzZXJuYW1lXyIsdHlwZToidXNlciIsbmFtZToiX3VzZXJuYW1lXyIscGFzc3dvcmQ6Il9wYXNzd29yZF8iLHJvbGVzOltdfTp4WzBdPT10aGlzLlJlcGxpY2F0b3JEQj97X2lkOiIiLHNvdXJjZToiIix0YXJnZXQ6IiIsY3JlYXRlX3RhcmdldDohMSxjb250aW51b3VzOiExLGRvY19pZHM6W10sZmlsdGVyOiIiLHVzZXJfY3R4OntuYW1lOiIiLHJvbGVzOltdfSxxdWVyeTp7fX06e319fToyIT14Lmxlbmd0aHx8Il8iPT14WzFdWzBdJiYhL15fKGRlc2lnbnxsb2NhbClcLy8udGVzdCh4WzFdKT8zIT14Lmxlbmd0aHx8Il8iPT14WzFdWzBdJiYhL15fZGVzaWduXC8vLnRlc3QoeFsxXSl8fCJfIiE9eFsyXVswXT92b2lkIDA6e3RpdGxlOnRoaXMudHJ1bmMoeFswXSwxMCkrIuKAiS/igIkiK3hbMV0sdHlwZToiZG9jIixhcHBEYXRhOntyZXY6eFsyXS5yZXBsYWNlKC9eXEQrLywiIil9fTp7dGl0bGU6dGhpcy50cnVuYyh4WzBdLDEwKSsi4oCJL+KAiSIreFsxXSx0eXBlOiJkb2MifX0sZGF0YTp7aXNOZXc6ITEscGF0aDpbXSxyZXY6IiIscmV2bGFzdDoiIixyZXZzdGFydDoiIixzZWFyY2g6IiIsZG9jOntfaWQ6IiJ9LGNvbmZsaWN0czpbXSxyZXZzOltdLGF0dHM6ITF9LERvYzpbXSxSVDpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIHguYWRkQ2xhc3MoIm53IiksYi5wYXRoLmxlbmd0aD4oIl9kZXNpZ24iPT1iLnBhdGhbMV0/MzoyKSYmKGIucmV2PWIucGF0aC5sYXN0KCkucmVwbGFjZSgvXlxEKy8sIiIpKSxiLnJldnN0YXJ0PWIucmV2LGEuSFRNTC5IaXN0b3J5Um93PWEuUGhvKCJDb21waWxlVCIpKGEuSFRNTC5IaXN0b3J5Um93KSxhLkhpc3RvcnkuaW5pdChhLHgpLGEuR2V0RG9jKCkudGhlbihmdW5jdGlvbigpe3guaHRtbChhLkhUTUwuQXBwLmFzc2lnbihhLmxhbmcpKX0pLnRoZW4oZnVuY3Rpb24oKXthLkJ1c3koITEpfS5kZWJvdW5jZSgxMDApKX0sdWk6eyIjYXBwLXRpdGxlIjp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5wMnUsYz0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKGIoeC5wYXRoWzBdKSxhLnRydW5jKHgucGF0aFswXSwxNSkuZXNjYXBlSFRNTCgpLHgucGF0aFswXS5lc2NhcGVIVE1MKCkpLGQ9eC5kb2MuX2lkfHx4LnBhdGhbMV0rKCJfZGVzaWduIj09eC5wYXRoWzFdPyIvIit4LnBhdGhbMl06IiIpLGU9JzxhIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGRuIiBocmVmPSJ7MX0iIHRpdGxlPSJ7M30iPnsyfTwvYT4nLmFzc2lnbihbIiIsYih4LnBhdGhbMF0pLGIoZCldLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCkrKHgucmV2PyI/cmV2PSIreC5yZXY6IiIpLGQuZXNjYXBlSFRNTCgpLGQubGVuZ3RoPjE1P2QuZXNjYXBlSFRNTCgpOiIiKTtyZXR1cm5bJzxzcGFuIGNsYXNzPSJmczE1MCBsaDEzMCB4Z3JheSBtdC0xIG84MCI+JywnPHNwYW4gY2xhc3M9Im84MCI+ezJ9PC9zcGFuPuKAiS/igIk8c3BhbiBjbGFzcz0iIj57MX08L3NwYW4+JywiPC9zcGFuPiJdLmpvaW4oIiIpLmFzc2lnbihlLGMpfSx3YXRjaDpbIiNhcHAtcmV2IiwiI2pzZWRpdG9yIl19LCIjYXBwLXJldiI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5SZXZzTGlzdCgiI2FwcC1yZXYiKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZXYhPWEmJih4LmF0dHM9ITEpLHgucmV2PWEpLHgucmV2fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybi9eX2xvY2FsXC8vLnRlc3QoeC5kb2MuX2lkKX19fSwiI2FwcC1zZWFyY2giOntkZWxheToyMCxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGw9PWE/eC5zZWFyY2g6KHguc2VhcmNoPWEubGVuZ3RoPDM/IiI6YSx0aGlzLkRvY1swXSYmdGhpcy5Eb2NbMF0uc2VhcmNoIT14LnNlYXJjaCYmdGhpcy5teS5maW5kKCIjanNvbi1zZWFyY2giKS52YWwoeC5zZWFyY2gpLnRyaWdnZXIoImNoZWNrIiksYSl9LGNzczp7Im15LXNlYXJjaCI6L14uezMsfSQvfX0sIiNqc2VkaXRvciI6e2RlbGF5OjEwMCxjaGVjazohMSxsaXN0OiI8ZGl2PjwvZGl2PiIsbWVyZ2U6ITEsaW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmRvYy5faWR9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKHguZG9jKX0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YS5wYXRoO3JldHVybiAkLmV4dGVuZCghMCx7fSxhLlBobygiRWQiKS5qc29udHJlZSxhLkV4dEVkLHtNUm9vdDpmdW5jdGlvbigpe3JldHVybiBhLm15LnJvb3QoKX0sR2V0QXR0czphLkdldEF0dHMsZGF0YTp7bGFiZWxXaWR0aDoiX3JlcGxpY2F0b3IiPT1iWzBdPzE3NToiX2QiPT1iWzFdLnRvKDIpPzE2MDoxNTB9fSl9LGJpbmQ6InRoaXMuRG9jIn0sIiNidG4tcmVsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5HZXREb2MoITAsITApLmFsd2F5cyhmdW5jdGlvbigpe2IuQnVzeSghMSl9LmRlYm91bmNlKDUwKSl9fSxsaXN0ZW46e2ZpbGV1cGRhdGU6ZnVuY3Rpb24oeCxhKXtpZigheC5yZXYmJk9iamVjdC5pc09iamVjdChhKSYmYS5kYj09eC5wYXRoWzBdJiZhLmRvYz09eC5kb2MuX2lkJiZhLnJldj09eC5kb2MuX3Jldil7dmFyIGI9dGhpcztiLkdldERvYyghMCwhMCkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5CdXN5KCExKX0uZGVib3VuY2UoNTApKX19fX0sIiNidG4tZG9jLXNhdmVhcyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPXRoaXM7ZnVuY3Rpb24gZCgpe2MuQnVzeSghMCksYy5TYXZlQWxsKCkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5CdXN5KCExKX0uZGVib3VuY2UoNTApKX1mdW5jdGlvbiBlKCl7eC5kb2MuX2lkPWIuZG9jLl9pZCx4LnBhdGhbMF09Yi5wYXRoWzBdLHgucGF0aFsxXT1iLmRvYy5faWQsT2JqZWN0LmtleXMoeC5kb2MpLmZvckVhY2goZnVuY3Rpb24oYSl7Il8iPT1hWzBdJiYiX2lkIiE9YSYmIl9hdHRhY2htZW50cyIhPWEmJmRlbGV0ZSB4LmRvY1thXX0pLHgucmV2PSIiLHgucmV2bGFzdD0iIix4LnJldnM9W10seC5pc05ldz0hMH1mdW5jdGlvbiBmKCl7Yy5Eb2M9W3tkYm5hbWU6eC5wYXRoWzBdLHJldmlzaW9uOiIiLGJhc2V1cmw6Yy5QaG8oIkJhc2UiKSxkb2M6eC5kb2N9XSxjLm15LnJlZHJhdygpfW51bGwhPWEmJmMubXkubW9kYWwoIiNidG4tZG9jLXNhdmVhcyIse3Jvb3Q6Yy5teS5yb290KCksc2NyZWVuOiEwLGdsb2JhbDohMCxlc2M6ITAsZW50ZXI6ITEsY2xvc2U6ITEsd2lkdGg6NDAwLHo6MTk5NSxjc3M6InAyMCBwdDE1IixtYW5pZmVzdDokLmV4dGVuZCghMCx7UGhvOmMuUGhvLFJUOmMuUlR9LGMuTmV3RG9jVGd0KSxkYXRhOk9iamVjdC5jbG9uZShjLmRhdGEsITApfSkudGhlbihmdW5jdGlvbih4KXtiPXh9KS50aGVuKGMuQXBwbHlFZHMpLnRoZW4oZnVuY3Rpb24oKXtjLkJ1c3koITApLGIuZG9jLl9hdHRhY2htZW50cyYmT2JqZWN0LnNpemUoYi5kb2MuX2F0dGFjaG1lbnRzKSYmT2JqZWN0LnZhbHVlcyhiLmRvYy5fYXR0YWNobWVudHMpLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4heC5kYXRhfSkubGVuZ3RoP2MuR2V0QXR0cyghMCkudGhlbihmdW5jdGlvbihhKXt2YXIgYj1hLl9hdHRhY2htZW50cztpZihiKXt4LmRvYy5fYXR0YWNobWVudHN8fCh4LmRvYy5fYXR0YWNobWVudHM9e30pO3ZhciBjPXguZG9jLl9hdHRhY2htZW50cztPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2NbeF0mJiFjW3hdLmRhdGEmJihjW3hdPU9iamVjdC5zZWxlY3QoYlt4XSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSkpfSl9ZWxzZSBjPXguZG9jLl9hdHRhY2htZW50c3x8e307T2JqZWN0LmtleXMoYykuZm9yRWFjaChmdW5jdGlvbih4KXtjW3hdLmRhdGF8fGRlbGV0ZSBjW3hdfSl9KS50aGVuKGUpLnRoZW4oZikudGhlbihkKTooZSgpLGQoKSl9KX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4geC5pc05ld319fSwiI2J0bi1kb2Mtc2F2ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLmNtZFNhdmUoKX19LCIjYnRuLWRvYy1kZWwiOntkZWxheToyMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztudWxsIT1hJiYoYi5CdXN5KCEwKSxiLkRlbERvYygpLmFsd2F5cyhmdW5jdGlvbigpe2IuQnVzeSghMSl9LmRlYm91bmNlKDUwKSkpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7dmFyIGI9eC5jb25mbGljdHN8fFtdLGM9eC5yZXZzJiZ4LnJldnNbMF0mJngucmV2c1swXT09eC5kb2MuX3JldjtyZXR1cm4gYi5sZW5ndGg/IWMmJi0xPT1iLmluZGV4T2YoeC5kb2MuX3Jldnx8IiIpOiEoL15fbG9jYWxcLy8udGVzdCh4LmRvYy5faWQpfHx4LmRvYy5fcmV2JiZjKX19LHdhdGNoOlsiI2FwcC1yZXYiXX0sIiNidG4tZG9jLWRpZmYiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLnAydTtiLmF0dHIoImhyZWYiLCIjezF9L19kaWZmL3syfS97M30vezR9Ii5hc3NpZ24oYyh4LnBhdGhbMF0pLGMoeC5wYXRoWzFdKSwiXyIrKHgucmV2fHwiIiksIl8iKSl9LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguY29uZmxpY3RzLmxlbmd0aCt4LnJldnMubGVuZ3RoPDJ8fC9eX2xvY2FsXC8vLnRlc3QoeC5kb2MuX2lkKX19LHdhdGNoOlsiI2FwcC1yZXYiXX0sIiNzdGF0ZS1wcm94eSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXt2YXIgYj10aGlzO3gucmV2P3gucGF0aC5sYXN0KCkhPXguZG9jLl9pZD94LnBhdGhbeC5wYXRoLmxlbmd0aC0xXT0iXyIreC5yZXY6eC5wYXRoLnB1c2goIl8iK3gucmV2KTp4LnBhdGgubGFzdCgpIT14LmRvYy5faWQmJih4LnBhdGgubGVuZ3RoPSh4LnBhdGgubGVuZ3RoLTEpLmNsYW1wKDIsNikpLHgucmV2IT14LnJldmxhc3QmJigkLm15LnJhZGlvKCJwYXRoY2hhbmdlIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aCx0aXRsZTpiLnRpdGxlKCl9KSx4LnJldmxhc3QyPXgucmV2bGFzdCx4LnJldmxhc3Q9eC5yZXYsYi5HZXREb2MoITAsITApLnRoZW4oZnVuY3Rpb24oKXt4LnJldmxhc3QyPW51bGx9KS5hbHdheXMoZnVuY3Rpb24oKXtiLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpKX19LHdhdGNoOiIjYXBwLXJldiIsbGlzdGVuOntkYmRlbGV0ZWQ6ZnVuY3Rpb24oeCxhKXtpZihhPT14LnBhdGhbMF0pe3ZhciBiPXRoaXM7KGZ1bmN0aW9uKCl7Yi5teS5yb290KCkudHJpZ2dlcigidGFiY2xvc2UiLHt0YWJpZDp4LnRhYmlkLGVuZm9yY2U6ITB9KX0pLmRlYm91bmNlKE51bWJlci5yYW5kb20oMTAsNTApKSgpfX19fSwiI2RvYy1oaXN0b3J5Ijp7ZGVsYXk6MjAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YSxPYmplY3QuaXNBcnJheSxPYmplY3QuaXNPYmplY3Q7YS5uaWNlU2Nyb2xsKHgpLHgubGlzdCh7ZGF0YTphLkhpc3Rvcnkuc3RlcHMsZGVsYXk6MCxjaHVuazo1MCxzb3J0Qnk6bnVsbCxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5pZH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4geC5pZCt4Lmhhc2h9LHRlbXBsYXRlOmZ1bmN0aW9uKHgsYil7cmV0dXJuIGEuSFRNTC5IaXN0b3J5Um93LmFzc2lnbih7cGF0aDp4LnNwYXRoLGljbzoiaW5zIj09eC5vcD8icGx1cyI6ImRlbCI9PXgub3A/Im1pbnVzIjoiY2hlY2siLGhhc2g6eC5oYXNoLHN2YWw6eC5zdmFsLG9wOngub3AsdGlwOlsiQ2xpY2sgdG8gdW5kbyAiKygiaW5zIj09eC5vcD8iaW5zZXJ0aW9uLiI6ImRlbCI9PXgub3A/ImRlbGV0aW9uLiI6ImVkaXRzLiIpLCJpbnMiIT14Lm9wPyJSZXN0b3JlZCB2YWx1ZTogIit4LnZhbC50cnVuY2F0ZSgxNTApLmVzY2FwZUhUTUwoKTpudWxsXS5jb21wYWN0KCkuam9pbigiXG4iKX0pfX0pLHgub24oImNsaWNrLm15IiwiLmgtcm93IixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCkuaW5kZXgoKTthLkhpc3RvcnkudW5kbyhiKX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtudWxsIT1hJiYoYi5saXN0KCJkYXRhIix0aGlzLkhpc3Rvcnkuc3RlcHMpLGJbMF0uc2Nyb2xsVG9wPTFlNil9LHdhdGNoOlsiI2J0bi1oaXN0b3J5LWNsZWFyIl19LCIjc3R5bGUtaGlzdG9yeSI6e2RlbGF5OjEwMCxiaW5kOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSIubXktZm9ybS0iK3gubXkucm9vdCgpLm15KCkuY2lkKycgLmgtcm93W2RhdGEtcGF0aD0iezF9Il06aG92ZXJ+Lmgtcm93W2RhdGEtcGF0aHw9InsxfSJde2JhY2tncm91bmQtY29sb3I6ICNlZmY2ZmY7IG9wYWNpdHk6MC41O30nLGI9e307cmV0dXJuIHguSGlzdG9yeS5zdGVwcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2JbeC5oYXNoXT0xfSksT2JqZWN0LmtleXMoYikubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBhLmFzc2lnbih4KX0pLmpvaW4oIlxuIil9LHdhdGNoOlsiI2RvYy1oaXN0b3J5IiwiI2J0bi1oaXN0b3J5LWNsZWFyIl19LCIjZW1wdHktaGlzdG9yeSI6e2RlbGF5OjIwLGNzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5IaXN0b3J5LnN0ZXBzLmxlbmd0aH19LHdhdGNoOlsiI2RvYy1oaXN0b3J5Il19LCIjYnRuLWhpc3RvcnktY2xlYXIiOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5IaXN0b3J5LmNsZWFyKCEwKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiF0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RofX0sd2F0Y2g6WyIjZG9jLWhpc3RvcnkiXX0sIiNidG4taGlzdG9yeS11bmRvIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuY21kVW5kbygpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGh9fSx3YXRjaDpbIiNkb2MtaGlzdG9yeSJdfX0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI2pzZWRpdG9yIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxjbWRVbmRvOmZ1bmN0aW9uKCl7dGhpcy5IaXN0b3J5LnN0ZXBzLmxlbmd0aCYmdGhpcy5IaXN0b3J5LnVuZG8odGhpcy5IaXN0b3J5LnN0ZXBzLmxlbmd0aC0xKX0sY21kU2F2ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5BcHBseUVkcygpLnRoZW4oZnVuY3Rpb24oKXt4LlNhdmVBbGwoKS5hbHdheXMoZnVuY3Rpb24oKXt4LkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpfSl9LEhUTUw6e0FwcDonPGRpdiBpZD0iY29sLWVkIiBjbGFzcz0iZGliIHZhdCB3biI+PGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIHcxNTUgZnM5NSI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyBibHVlIG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yOCIgdGl0bGU9IntQTENfUkVMT0FEfSI+PHNwYW4gY2xhc3M9ImZpLWxvb3AiPjwvc3Bhbj48L2J1dHRvbj48ZGl2IGlkPSJhcHAtdGl0bGUiIGNsYXNzPSJkaWIgdmF0IGVsbCBtcjEwIG53Ij48L2Rpdj48ZGl2IGNsYXNzPSJkaWIgdmF0IHcyMDAgbXIxMCI+PGlucHV0IGlkPSJhcHAtcmV2IiB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48ZGl2IGNsYXNzPSJudyBkaWIgdmF0Ij48YnV0dG9uIGlkPSJidG4tZG9jLXNhdmUiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fU0FWRX08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tZG9jLXNhdmVhcyIgY2xhc3M9InRlYWwgbXIyIj57QlROX1NBVkVBU308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tZG9jLWRlbCIgY2xhc3M9InJlZCBtcjIiPntCVE5fREVMfTwvYnV0dG9uPjxhIGhyZWY9IiIgaWQ9ImJ0bi1kb2MtZGlmZiIgY2xhc3M9ImhpZGUgYnV0dG9uIHRkbiB2YXQiIHN0eWxlPSJsaW5lLWhlaWdodDoxLjRlbTsiPntCVE5fRElGRn08L2E+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGFuZWxoZWlnaHQgZmVhdGhlciI+PGRpdiBpZD0ianNlZGl0b3IiIGNsYXNzPSJwYW5lbGhlaWdodCBwbDIwIHByMjAgcHQxMCBwYjE2IiBzdHlsZT0ib3V0bGluZTpub25lOyI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0iY29sLWhpc3RvcnkiIGNsYXNzPSJkaWIgdmF0IHhncmF5IHduIj48ZGl2IGlkPSJoLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4taGlzdG9yeS11bmRvIiBjbGFzcz0ibGgxNDAgbXIyIj57QlROX0hJU1RfVU5ET308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4taGlzdG9yeS1jbGVhciIgY2xhc3M9ImxoMTQwIj57QlROX0hJU1RfQ0xFQVJ9PC9idXR0b24+PC9kaXY+PHNwYW4gY2xhc3M9ImZzMTUwIGRpYiB2YXQgcGw1IG85MCBwdDMiPntUWFRfSElTVF9USVRMRX08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0icGFuZWxoZWlnaHQgZmVhdGhlciI+PGRpdiBpZD0iZW1wdHktaGlzdG9yeSIgY2xhc3M9ImhpZGUgcGFiYyBwbDUgcHQ4IGdyYXkiIHN0eWxlPSJ0b3A6MDsgbGVmdDowOyI+e1RYVF9ISVNUX0VNUFRZfTwvZGl2PjxkaXYgaWQ9ImRvYy1oaXN0b3J5IiBjbGFzcz0icGFuZWxoZWlnaHQgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48c3R5bGUgaWQ9InN0eWxlLWhpc3RvcnkiIGNsYXNzPSJoaWRlIj48L3N0eWxlPjxkaXYgaWQ9InNjcm9sbC1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InN0YXRlLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+JyxIaXN0b3J5Um93Oic8ZGl2IGNsYXNzPSJoLXJvdyB3MTAwcCBjcCBvcC17b3B9IiB0aXRsZT0ie3RpcH0iIGRhdGEtcGF0aD0ie2hhc2h9Ij48ZGl2IGNsYXNzPSJoLXVidG4gcGFiYyBwbDQgcHQzIGZzOTUgYmx1ZTIiIHN0eWxlPSJ0b3A6MDsgcmlnaHQ6MDsgdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTsiPjxzcGFuIGNsYXNzPSJmaS1yZWZyZXNoIj48L3NwYW4+PC9kaXY+PHNwYW4gY2xhc3M9IncxNSBkaWIgdmF0IG1sLTE1IG80MCBmczg1IG10MSBmaS17aWNvfSI+PC9zcGFuPjxkaXYgY2xhc3M9Im13MTAwcCB0ZG4gZGliIG53IG9oIGVsbCBwc2V1ZG9saW5rIj57cGF0aH0gPC9kaXY+PGRpdiBjbGFzcz0idGRpIG13MTAwcCBmczkwIGxoMTMwIG83MCBkaWIgdmFsIG53IG9oIGVsbCI+e3N2YWx9PC9kaXY+PC9kaXY+J30sSGlzdG9yeTp7aW5pdDpmdW5jdGlvbih4KXtPYmplY3Qua2V5cyh4Lkhpc3RvcnkpLmZvckVhY2goZnVuY3Rpb24oYSl7ImZ1bmN0aW9uIj09dHlwZW9mIHguSGlzdG9yeVthXSYmKHguSGlzdG9yeVthXT14Lkhpc3RvcnlbYV0uYmluZCh4KSl9KSx4Lkhpc3RvcnkuY2xlYXIoKX0sZW1pdDpmdW5jdGlvbih4LGEsYixjKXt2YXIgZD10aGlzLGU9ZC5IaXN0b3J5LGY9ZC5Eb2NbMF0uZG9jLGc9ITAsaD14LmZsYXQoKSxpPVtdLGo9T2JqZWN0LmlzT2JqZWN0LGs9T2JqZWN0LmlzQXJyYXksbD0oZS5oYXNoLGUucmFuZCk7aWYoaihhKSYmaihiKSl7dmFyIG09W2EsYl0ucmVkdWNlKGZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gT2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbihjKXt4W2NdfHwoeFtjXT1bdm9pZCAwLHZvaWQgMF0pLHhbY11bYl09Y3cubGliLnNkYm0oYVtjXSl9KSx4fSx7fSk7T2JqZWN0LnZhbHVlcyhtKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF0hPXhbMV19KS5sZW5ndGg8MTAmJihPYmplY3Qua2V5cyhtKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBjPW1beF07aWYoY1swXSE9Y1sxXSl7dmFyIGQ9bnVsbD09Y1swXT8iaW5zIjp2b2lkIDA9PT1jWzFdPyJkZWwiOiJ1cGQiO2kucHVzaChbaC5jb25jYXQoeCksZCx2b2lkIDA9PT1jWzBdP2JbeF06YVt4XSwiZGVsIj09ZD9udWxsOmJbeF1dKX19KSxnPSExKX1pZihnKXt2YXIgbj12b2lkIDA9PT1hPyJpbnMiOnZvaWQgMD09PWI/ImRlbCI6InVwZCI7aS5wdXNoKFtoLG4sImlucyI9PW4/YjphLCJkZWwiPT1uP251bGw6Yl0pfWZ1bmN0aW9uIG8oeCxhLGIsZCl7dmFyIGc9Y3cubGliLmdldHJlZihmLHguc2xpY2UoMSkudG8oLTEpKSxoPWsoZyksaT0iZGVsIj09YSYmaD8rK2UuZGVsczowLGo9eC5sZW5ndGgsbT1KU09OLnN0cmluZ2lmeShiLG51bGwsIiAiKSxuPW51bGw7aWYoIWgpe3ZhciBvPU9iamVjdC5rZXlzKGcpLHA9by5pbmRleE9mKHgubGFzdCgpKTsiZGVsIiE9YT9uPVtwPjA/b1twLTFdOm51bGwscD09by5sZW5ndGgtMT9udWxsOnA+LTE/b1twKzFdOm51bGxdOmMmJihuPWMpfXZhciBxPWUucmVoYXNoKHtpZDpsKCksdHM6RGF0ZS5ub3coKSxwYXRoOngsY3R4Om4saGFzaDoiIixvcDphLHZhbDptLGRlbDppLHJvdzpoLHNwYXRoOiIiLHN2YWw6KCJkZWwiPT1hPyLCoHdhcyAiK20udG8oMTAwKS5yZXBsYWNlKC9cblxzKy9nLCIiKToiwqA9wqAgIitKU09OLnN0cmluZ2lmeShkKS50bygxMDApKS5yZXBsYWNlKC9cXG4vZywiwrYiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgvwrYvZywnPHNwYW4gY2xhc3M9ImdyYXkyIHBsMSBwcjEiPsK2PC9zcGFuPicpfSk7aWYoImRlbCI9PWEmJmgpe3ZhciByPWUuaGFzaCh4LnRvKC0xKSwwKSsiLSIscz0reC5sYXN0KCk7ZS5zdGVwcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2lmKHguaGFzaC5zdGFydHNXaXRoKHIpKXt2YXIgYT0reC5wYXRoW2otMV07YSE9c3x8eC5kZWw/YT5zJiYoeC5wYXRoW2otMV09KGEtMSkuY2xhbXAoMCwxZTYpKyIiLGUucmVoYXNoKHgpKTooeC5kZWw9aSxlLnJlaGFzaCh4KSl9fSl9aWYoImlucyI9PWEmJmgpe3I9ZS5oYXNoKHgudG8oLTEpLDApKyItIixzPSt4Lmxhc3QoKTtlLnN0ZXBzLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoeC5oYXNoLnN0YXJ0c1dpdGgocikpe3ZhciBhPSt4LnBhdGhbai0xXTthPj1zJiYoeC5wYXRoW2otMV09KGErMSkuY2xhbXAoMCwxZTYpKyIiLGUucmVoYXNoKHgpKX19KX1lLnN0ZXBzLnB1c2gocSl9aS5mb3JFYWNoKGZ1bmN0aW9uKHgpe28oeFswXSx4WzFdLHhbMl0seFszXSl9KSxkLm15LmNoZWNrKCIjZG9jLWhpc3RvcnkiKX0sdW5kbzpmdW5jdGlvbih4KXtmb3IodmFyIGE9dGhpcyxiPShhLmRhdGEsYS5IaXN0b3J5KSxjPWIuc3RlcHMsZD1jW3hdLGU9ZC5oYXNoLGY9Yi5oYXNoKGQucGF0aC50bygtMSksMCkrIi0iLGc9ZC5wYXRoLnNsaWNlKDEpLGg9Zy5sZW5ndGgsaT1KU09OLnBhcnNlKGQudmFsKSxqPWQub3Asaz0wLGw9YS5Eb2NbMF0uZG9jLG09KE9iamVjdC5pc09iamVjdCxPYmplY3QuaXNBcnJheSksbj0oYi5oYXNoLDApLG89bDtuPGcubGVuZ3RoLTEmJm8mJiJvYmplY3QiPT10eXBlb2YgbztuKyspbz0ib2JqZWN0Ij09dHlwZW9mIG9bZ1tuXV0mJm51bGwhPW9bZ1tuXV0/b1tnW25dXTpudWxsO2lmKCFvKXJldHVybiByKCJOb2RlIHRvIG1vZGlmeSBkb2VzbuKAmXQgZXhpc3QiKTtmdW5jdGlvbiBwKHgpe2lmKHgpZm9yKHZhciBhPStnLmxhc3QoKSxkPWYsZT0wO2U8Yy5sZW5ndGg7ZSsrKWNbZV0uaGFzaC5zdGFydHNXaXRoKGQpJiYrY1tlXS5wYXRoW2hdPj1hJiYoY1tlXS5wYXRoW2hdPSIiKygrY1tlXS5wYXRoW2hdK3gpLmNsYW1wKDAsMWU2KSxiLnJlaGFzaChjW2VdKSl9ZnVuY3Rpb24gcSgpe3ZhciB4PSJkZWwiPT1qPyJpbnMiOiJpbnMiPT1qPyJkZWwiOiJ1cGQiLGI9YS5teS5maW5kKCIjanNlZGl0b3I+ZGl2IikubXkoIm1hbmlmZXN0IikuTXV0YXRlKHtwYXRoOmcsY3R4OmQuY3R4LHZhbDoiZGVsIiE9eD9pOnZvaWQgMCxvcDp4LGV4cGFuZDohMCxibGluazoiYmctYmx1ZTcifSk7Yi5lcnJvcj9yKGIuZXJyb3IpOmEubXkuY2hlY2soIiNkb2MtaGlzdG9yeSIpfWZ1bmN0aW9uIHIoeCl7Y3cubGliLm5vdGUoeCwiZXJyb3IiLDRlMyksYS5teS5jaGVjaygiI2RvYy1oaXN0b3J5Iil9ImRlbCIhPWomJmQucm93JiZjLmZpbHRlcihmdW5jdGlvbihhLGIpe3JldHVybiEoYjw9K3gpJiYoYS5yb3cmJiJkZWwiPT1hLm9wJiZhLmRlbD09ZC5kZWwmJmEucGF0aC5sZW5ndGg9PWgrMSYmYS5oYXNoLnN0YXJ0c1dpdGgoZikpfSkubGVuZ3RoJiYoaj0iaW5zIj09aj8ibm9vcCI6InVwZCI9PWo/ImRlbCI6aiksImRlbCI9PWo/aD9tKG8pJiYvXlxkKyQvLnRlc3QoZy5sYXN0KCkpJiZwKDErayk6bD1pOiJ1cGQiPT1qfHwiaW5zIj09aiYmaCYmbShvKSYmL15cZCskLy50ZXN0KGcubGFzdCgpKSYmcCgtMStrKSxiLnN0ZXBzPWMubWFwKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI9PXh8fGI+eCYmYS5oYXNoLnN0YXJ0c1dpdGgoZSk/bnVsbDphfSkuY29tcGFjdCgpLHEoKX0sY2xlYXI6ZnVuY3Rpb24oeCl7dGhpcy5IaXN0b3J5LnN0ZXBzPVtdLHRoaXMuSGlzdG9yeS5kZWxzPTAseCYmdGhpcy5teS5jaGVjaygiI2RvYy1oaXN0b3J5Iil9LGhhc2g6ZnVuY3Rpb24oeCxhKXt2YXIgYj14LmZsYXQoKSxjPWIubGVuZ3RoLTE7cmV0dXJuIGIubWFwKGZ1bmN0aW9uKHgsYil7cmV0dXJuIGN3LmxpYi5zZGJtKGIhPWN8fDA9PWE/eDpbeCxhXSl9KS5qb2luKCItIil9LHJlaGFzaDpmdW5jdGlvbih4KXtyZXR1cm4geC5oYXNoPXRoaXMuSGlzdG9yeS5oYXNoKHgucGF0aCx4LmRlbCkseC5zcGF0aD14LnBhdGgubGVuZ3RoPDI/IkRvYyByb290Ijp4LnBhdGguc2xpY2UoMSkuam9pbigi4oCJLuKAiSIpLnRydW5jYXRlKDMyLCJtaWRkbGUiLCIuLi4iKS5lc2NhcGVIVE1MKCkseH0scmFuZDpmdW5jdGlvbigpe3JldHVybiBOdW1iZXIucmFuZG9tKDAsMjE3Njc4MjMzNSkudG9TdHJpbmcoMzYpLnBhZExlZnQoNiwiMCIpfSxzdGVwczpbXSxkZWxzOjB9LHN0eWxlOnsiICI6ZnVuY3Rpb24oeCl7dmFyIGE9MHx4LndpZHRoKCksYj0wfChhLzQuNSkuY2xhbXAoMjgwLDQ1MCksYz1hLWIsZD0id2lkdGg6ezF9cHgiO3JldHVybnsiICNjb2wtZWQiOmQuYXNzaWduKGMpLCIgI2NvbC1oaXN0b3J5IjpkLmFzc2lnbihiKX19LCIgI2pzZWRpdG9yIjp7Ij5kaXYiOiJtaW4taGVpZ2h0Ojk5LjklOyIsIj4ubXktZm9ybT5zZWN0aW9uPiNlZGl0b3I+I2RvYz4uaWFjdC5idXR0b25zIjoicGFkZGluZy1yaWdodDozcHg7IiwiIC5pYWN0IC5idXR0b24iOiIgIGhlaWdodDogMS43ZW07bGluZS1oZWlnaHQ6IDEuMWVtOyJ9LCIgLm15LW1vZGFsLWZvcm0iOnsiIC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OmNhbGMoMTggKiAxN3B4ICsgNnB4KTsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiLmVkLWVycm9yIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MTUwcHg7IGhlaWdodDphdXRvOyIsIiAuYnV0dG9ucyBidXR0b24iOiJtYXJnaW4tcmlnaHQ6IDJweDtwYWRkaW5nOiAwLjRlbSAwLjdlbSAwLjRlbSAwLjdlbTtmb250LXNpemU6IDkwJTsifSwiICNhcHAtdGl0bGUiOiJtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDQzMHB4IC0gMTYuM2VtKTsiLCIgI2RvYy1oaXN0b3J5Ijp7IiAuaC1yb3ciOnsiIjoiYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgYm9yZGVyLXJhZGl1czoxcHg7IG1hcmdpbi1ib3R0b206MXB4OyBwYWRkaW5nOjJweCAxNXB4IDFweCAyMHB4O3RyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41czsgbGluZS1oZWlnaHQ6MS4zZW07IiwiIC50ZGkiOiJ0ZXh0LWRlY29yYXRpb246aW5oZXJpdDsiLCIub3AtZGVsIjoidGV4dC1kZWNvcmF0aW9uOnJnYmEoMCwwLDAsMC40KSBzb2xpZCBsaW5lLXRocm91Z2ghaW1wb3J0YW50OyIsIiAuaC11YnRuIjoib3BhY2l0eTowOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7IiwiOmhvdmVyIjp7IiI6ImJhY2tncm91bmQtY29sb3I6ICNlMmYwZmY7IiwiIC5oLXVidG4iOiJvcGFjaXR5OjE7In19fSwiIC5lZC1ub2RlLTEzdDZkNmM1Ijp7IiAuaWFjdCI6InRvcDoycHgiLCIgLmlkZXNjIjp7IiI6InBhZGRpbmctdG9wOjFweDsiLCIgLmZzOTUiOiJwYWRkaW5nLXRvcDoxcHg7In19fSxFeHRFZDp7SFRNTDp7SXRlbVJvb3Q6JzxkaXYgY2xhc3M9ImluYXYgaXJvb3QiPjxkaXYgY2xhc3M9ImlrZXkiPjwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIGNwIj7igJM8L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIHBhbmVsaGVpZ2h0LTMyIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUgaW11bHRpIGhpZGUiPjxkaXYgY2xhc3M9ImlsaXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1hZGQgYnV0dG9uIGdyZWVuIiB0aXRsZT0iQWRkIG5ldyBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktcGx1cyI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLXRha2VvdXQgYnV0dG9uIiB0aXRsZT0iQ29weSAvIHBhc3RlIC8gZWRpdCBhcyBKU09OIj48c3BhbiBjbGFzcz0iZmktc2hvcHBpbmctYmFnIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBoaWRlIj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tanNvbiBoaWRlIj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tYXR0YWNoIiBjbGFzcz0iYnV0dG9uIiB0aXRsZT0iQWRkIGF0dGFjaG1lbnQiIHN0eWxlPSJ3aWR0aDo3NHB4Ij48c3BhbiBjbGFzcz0iZmktcGFwZXJjbGlwIj48L3NwYW4+PHNwYW4gY2xhc3M9ImZzOTAgZGliIHZhdCI+IEF0dGFjaOKApjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nfSx1aTp7IiNkb2MiOnttYW5pZmVzdDpmdW5jdGlvbih4KXtpZighdGhpcy5IVE1MLkl0ZW1Sb290KXJldHVybiB0aGlzLiRtdWx0aTt2YXIgYT10aGlzLGI9YS4kZmlsZXMuQWRkO3JldHVybiAkLmV4dGVuZCghMCx7fSxhLiRtdWx0aSx7SFRNTDphLkhUTUwuSXRlbVJvb3QsdWk6eyIjYnRuLWF0dGFjaCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGMpe2lmKG51bGwhPWEpe3ZhciBkPXRoaXM7aWYoYy5kYXRhKCJtb2RhbCIpKXJldHVybiBjLm1vZGFsKCEwKSxlKCksdm9pZCAwO2MucGFyZW50KCkuYWRkQ2xhc3MoImhvdmVyIiksZC5teS5tb2RhbCgiI2J0bi1hdHRhY2giLHttYW5pZmVzdDpiLGRhdGE6e30sd2lkdGg6NTAwLGFsaWduOiJ0b3A6MTAzJSwgcmlnaHQ6MHB4OyIsbm9zZToidG9wIn0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYS5maWxlcy5sZW5ndGgpe3gudmFsdWUuX2F0dGFjaG1lbnRzfHwoeC52YWx1ZS5fYXR0YWNobWVudHM9e30pO3ZhciBiPSQuZXh0ZW5kKCEwLHt9LHgudmFsdWUuX2F0dGFjaG1lbnRzKTthLmZpbGVzLmZvckVhY2goZnVuY3Rpb24oYSl7eC52YWx1ZS5fYXR0YWNobWVudHNbYS5uYW1lXT1PYmplY3Quc2VsZWN0KGEsWyJjb250ZW50X3R5cGUiLCJkYXRhIl0pfSksZC5SVCgiZGF0YSIpLnZpZXdzdGF0ZXx8KGQuUlQoImRhdGEiKS52aWV3c3RhdGU9e30pLGQuUlQoImRhdGEiKS52aWV3c3RhdGVbY3cubGliLnNkYm0oIlJvb3TinYBfYXR0YWNobWVudHMiKV09MixkLkxpc3Q9ZC5NYWtlTGlzdCh4KSxkLk5vZGVVcGRhdGVkKFsiUm9vdCIsIl9hdHRhY2htZW50cyJdLGIseC52YWx1ZS5fYXR0YWNobWVudHMpLGQubXkucmVkcmF3KCl9fS5kZWJvdW5jZSgyMCkpLmFsd2F5cyhmdW5jdGlvbigpe2UoKX0pfWZ1bmN0aW9uIGUoKXtjLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJob3ZlciIpfX19fX0pfX19LE5vZGVVcGRhdGVkOmZ1bmN0aW9uKHgsYSxiLGMpe3RoaXMubXkucGFyZW50KCkuSGlzdG9yeS5lbWl0KHgsYSxiLGN8fG51bGwpfSxFZGl0b3JJbnZva2VkOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWEubXkucm9vdCgpLGQ9Yy5oZWlnaHQoKSxlPWMucGFyZW50cygiI2pzZWRpdG9yIikuZXEoMCksZj1lWzBdLnNjcm9sbFRvcCxnPWUub2Zmc2V0KCkudG9wLGg9Yy5vZmZzZXQoKS50b3AtZyxpPWIuUGhvKCJteSIpLnJvb3QoKS5oZWlnaHQoKS02MjtoPmktZC0zMCYmZS5hbmltYXRlKHtzY3JvbGxUb3A6KGgrZCtmLWkrNDApLmNsYW1wKDAsMWU2KSsicHgifSwxMDApfX0sU2F2ZUFsbDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD1PYmplY3QuY2xvbmUoY3cubGliLmRyeShjLmRvYyksITApLGU9JC5EZWZlcnJlZCgpLGY9Yi5sYW5nLGc9IlBPU1QiLGg9W2MucGF0aFswXV0saT17IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn07cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkLl9pZD9jLmlzTmV3fHwhZC5fcmV2fHwvXC8vLnRlc3QoZC5faWQpfHwoZz0iUFVUIixoLnB1c2goZC5faWQpKTpkZWxldGUgZC5faWQsbnVsbD09ZC5faWQmJmRlbGV0ZSBkLl9yZXYsaihkKS5mYWlsKGZ1bmN0aW9uKGcsaCxpKXs0MDkhPWc/KGF8fGN3LmxpYi5ub3RlKGYuRVJSX1NBVkUuYXNzaWduKGcrIjogIitsKGkucmVhc29ufHxoKSksImVycm9yIiksZS5yZWplY3QoZyxoLGkpKTpiLlJlcSh7bWV0aG9kOiJHRVQiLHVybDpbYy5wYXRoWzBdLGQuX2lkXX0pLnRoZW4oZnVuY3Rpb24oZyl7JC5teS5tb2RhbCh7bWFuaWZlc3Q6Yi5QaG8oIkNvbmZpcm0iKSx3aWR0aDo1MDAsZGF0YTp7dGV4dDpmLk1TR19DT05GTElDVC5hc3NpZ24obShkLl9pZCw0MCksbShkLl9yZXYsMjUpLG0oZy5fcmV2LDI1KSkseWVzOmYuQlROX0NPTkZMSUNUX1lFUyxubzpmLkJUTl9DT05GTElDVF9OTyxjYW5jZWw6IiIsdXNlQnV0dG9uczohMH0sY3NzOiJ4Z3JheSBsaDE3MCBwMjAgcGIyNSIsZXNjOiExLGVudGVyOiExLGZvY3VzOiIjYnRuLXllcyJ9KS50aGVuKGZ1bmN0aW9uKGQpeyJ5ZXMiPT1kLmNtZD8oYy5kb2MuX3Jldj1nLl9yZXYsYi5TYXZlQWxsKHgsYSkudGhlbihmdW5jdGlvbih4KXtvKCEwKX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2UucmVqZWN0KHgsYSxiKX0pKTprKCl9KS5mYWlsKGspfSkuZmFpbChmdW5jdGlvbih4LGIsYyl7Y29uc29sZS5sb2coeCxiLGMpLGF8fGN3LmxpYi5ub3RlKGYuTVNHX0NPTkZMSUNUX0xPQURGQUlMKSxlLnJlamVjdCg5OTksIkNhbmNlbGxlZCBieSB1c2VyIixmLk1TR19DT05GTElDVF9MT0FERkFJTCl9KX0pLGUucHJvbWlzZSgpO2Z1bmN0aW9uIGooYSl7cmV0dXJuIGIuUmVxKHt1cmw6aCxtZXRob2Q6ZyxoZWFkZXJzOmksY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoYSksZGF0YVR5cGU6IlBVVCI9PWc/InRleHQiOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oYil7dmFyIGQ9Yjt0cnl7ZD1PYmplY3QuaXNTdHJpbmcoYik/SlNPTi5wYXJzZShiKTpifWNhdGNoKHgpe31pZih4KXJldHVybiBuKCksZS5yZXNvbHZlKCQuZXh0ZW5kKGEse19pZDpkLmlkLF9yZXY6ZC5yZXZ9KSk7Yy5kb2MuX2NvbmZsaWN0cyYmYy5kb2MuX2NvbmZsaWN0cy5pbmRleE9mKGMuZG9jLl9yZXYpPi0xJiZjLnJldj9vLmRlYm91bmNlKDIwKShkLnJldik6by5kZWJvdW5jZSgyMCkoITApfSl9ZnVuY3Rpb24gaygpe2F8fGN3LmxpYi5ub3RlKGYuTVNHX0NPTkZMSUNUX0NBTkNFTExFRCksZS5yZWplY3QoOTk5LCJDYW5jZWxsZWQgYnkgdXNlciIsZi5NU0dfQ09ORkxJQ1RfQ0FOQ0VMTEVEKX1mdW5jdGlvbiBsKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9ZnVuY3Rpb24gbSh4LGEpe3JldHVybiBsKCh4KyIiKS50cnVuY2F0ZShhfHwxNSwicmlnaHQiLCLigKYiKSl9ZnVuY3Rpb24gbigpeyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6Yy5wYXRoWzBdLGNtZDoid3JpdGUiLGRvY3M6W2MuZG9jLl9pZF19KSxjLnBhdGhbMF09PWIuUGhvKCJSZXBsaWNhdG9yREIiKSYmYy5kb2MuY3JlYXRlX3RhcmdldD8oLyhsb2NhbGhvc3R8MTI3XC4wXC4wXC4xKS8udGVzdChjLmRvYy50YXJnZXQrIiIpfHwtMT09KGMuZG9jLnRhcmdldCsiIikuaW5kZXhPZigiLyIpKSYmZnVuY3Rpb24oKXskLm15LnJhZGlvKCJkYmxpc3QiLFsiX3JlcGxpY2F0b3IiLChjLmRvYy50YXJnZXQrIiIpLnNwbGl0KCIvIikubGFzdCgpXS5jb21wYWN0KCJ0cnVlIikpfS5kZWJvdW5jZSgzMDApKCk6JC5teS5yYWRpbygiZGJsaXN0IixbYy5wYXRoWzBdXSksYXx8Y3cubGliLm5vdGUoZi5NU0dfU0FWRS5hc3NpZ24obShjLmRvYy5faWQpLG0oYy5yZXZ8fGMuZG9jLl9yZXZ8fCIiKSksIm9rIil9ZnVuY3Rpb24gbyh4KXshMD09PXg/KGMucGF0aFsxXT1jLmRvYy5faWQsYy5wYXRoLmxlbmd0aD0yLGMucmV2PSIiLGMuaXNOZXcmJihjLmlzTmV3PSExLCQubXkucmFkaW8oInBhdGhjaGFuZ2UiLHtpZDpjLnRhYmlkLHBhdGg6Yy5wYXRoLHRpdGxlOmIudGl0bGUoKX0pKSxiLkdldERvYyghMCwhMCkudGhlbihmdW5jdGlvbigpe24oKSxlLnJlc29sdmUoYy5kb2MpfSkuZmFpbChmdW5jdGlvbih4LGIsYyl7cmV0dXJuIGF8fGN3LmxpYi5ub3RlKGYuRVJSX1NBVkVMT0FELmFzc2lnbih4KyI6ICIrbChiKSksImVycm9yIiksZS5yZWplY3QoeCxmLkVSUl9TQVZFTE9BRC5hc3NpZ24oYiksYyl9KSk6Yy5yZXYmJiJzdHJpbmciPT10eXBlb2YgeCYmKGMucmV2PXgsYy5wYXRoW2MucGF0aC5sZW5ndGgtMV09Il8iK3gsYi5teS5yZWNhbGMoIiNzdGF0ZS1wcm94eSIpLG4oKSxlLnJlc29sdmUoYy5kb2MpKX19LEdldERvYzpmdW5jdGlvbih4LGEpe3ZhciBiLGMsZD10aGlzLGU9ZC5kYXRhLGY9e2NvbmZsaWN0czohMCxsb2NhbF9zZXE6ITAscmV2c19pbmZvOiEwLGF0dF9lbmNvZGluZ19pbmZvOiEwfTtpZihkLkJ1c3kuZGVib3VuY2UoMjApKCEwKSxlLmlzTmV3KXt2YXIgZz0kLkRlZmVycmVkKCk7cmV0dXJuIGQuUmVxKFsiX3V1aWRzIix7Y291bnQ6NX1dKS50aGVuKGZ1bmN0aW9uKHgpe2UuZG9jLl9pZD1lLmRvYy5faWR8fCh4LnV1aWRzfHxbIiJdKS5zYW1wbGUoKX0pLmFsd2F5cyhmdW5jdGlvbigpe2UuZG9jLl9pZHx8KGUuZG9jLl9pZD1OdW1iZXIucmFuZG9tKDc4MzY0MTY0MDk2LDI4MjExMDk5MDc0NTUpLnRvU3RyaW5nKDM2KSksZC5Eb2M9W3tkYm5hbWU6ZS5wYXRoWzBdLHJldmlzaW9uOiIiLGJhc2V1cmw6ZC5QaG8oIkJhc2UiKSxkb2M6ZC5kYXRhLmRvY31dLGQuQnVzeS5kZWJvdW5jZSg1MCkoITEpLGcucmVzb2x2ZSgpfSksZy5wcm9taXNlKCl9cmV0dXJuIGUucGF0aC5sZW5ndGg+KCJfZGVzaWduIj09ZS5wYXRoWzFdPzM6Mik/KGM9ZS5wYXRoLmxhc3QoKS5yZXBsYWNlKC9eXEQrLywiIiksYj1lLnBhdGgudG8oLTEpKTpiPWUucGF0aC5zbGljZSgwKSxlLmF0dHMmJmIucHVzaCh7YXR0YWNobWVudHM6ITAsYXR0X2VuY29kaW5nX2luZm86ITB9KSxnPSQuRGVmZXJyZWQoKSxjP2QuUmVxKGIuY29uY2F0KFskLmV4dGVuZCghMCx7fSxmLHtyZXY6Y30pXSkpLnRoZW4oZnVuY3Rpb24oeCl7ZS5kb2M9aih4KSxkLlJlcShiLmNvbmNhdChbZl0pKS50aGVuKGZ1bmN0aW9uKHgpe2UuZG9jPSQuZXh0ZW5kKGUuZG9jLE9iamVjdC5zZWxlY3QoeCxbIl9jb25mbGljdHMiLCJfcmV2c19pbmZvIiwiX2xvY2FsX3NlcSJdKSksayhlLmRvYyl9KS5mYWlsKGZ1bmN0aW9uKCl7ZS5yZXZzPVtjXSxlLmNvbmZpbGN0cz1bXX0pLmFsd2F5cyhmdW5jdGlvbigpe2cucmVzb2x2ZSgpfSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtnLnJlamVjdCh4LGEsYil9KTpkLlJlcShiLmNvbmNhdChbZl0pKS50aGVuKGZ1bmN0aW9uKHgpe2koeCksZy5yZXNvbHZlKCl9KS5mYWlsKGZ1bmN0aW9uKCl7Yj1bYlswXSwiX2FsbF9kb2NzIix7a2V5OmUucGF0aC5mcm9tKDEpLmpvaW4oIi8iKSxpbmNsdWRlX2RvY3M6ITB9XSxkLlJlcShiLmNvbmNhdChbZl0pKS50aGVuKGZ1bmN0aW9uKHgpe3gucm93cyYmeC5yb3dzWzBdJiZ4LnJvd3NbMF0uZG9jPyhpKHgucm93c1swXS5kb2MpLGcucmVzb2x2ZSgpKTpnLnJlamVjdCg0MDQsIk5vdCBmb3VuZCIpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7Zy5yZWplY3QoeCxhLGIpfSl9KSxnLmFsd2F5cyhmdW5jdGlvbigpe2goKSxkLkJ1c3kuZGVib3VuY2UoNTApKCExKX0pLGc7ZnVuY3Rpb24gaCgpe2EmJmQuUmV2c0xpc3QoIiNhcHAtcmV2IiksZC5Eb2M9W3tkYm5hbWU6ZS5wYXRoWzBdLHJldmlzaW9uOmUucmV2LGJhc2V1cmw6ZC5QaG8oIkJhc2UiKSxkb2M6ZC5kYXRhLmRvY31dLGQuSGlzdG9yeS5jbGVhcighMCksZC5teS50cmlnZ2VyKCIjc3RhdGUtcHJveHkiLCJyZXNldHRhYmhhc2gubXkiKSx4JiZkLm15LnJlZHJhdygpfWZ1bmN0aW9uIGkoeCl7ZS5kb2M9aih4KSxrKGUuZG9jKX1mdW5jdGlvbiBqKHgpe3JldHVybiAkLmV4dGVuZCh4Ll9hdHRhY2htZW50cz97X2lkOiIiLF9yZXY6IiIsX2F0dGFjaG1lbnRzOnt9fTp7X2lkOiIiLF9yZXY6IiJ9LHgpfWZ1bmN0aW9uIGsoeCl7T2JqZWN0LmlzQXJyYXkoeC5fcmV2c19pbmZvKSYmKHguX3JldnNfaW5mbz14Ll9yZXZzX2luZm8uZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiJhdmFpbGFibGUiPT14LnN0YXR1c30pKSxlLmNvbmZsaWN0cz14Ll9jb25mbGljdHN8fFtdLGUucmV2cz0oeC5fcmV2c19pbmZvfHxbXSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJldn0pfX0sR2V0QXR0czpmdW5jdGlvbih4KXt2YXIgYSxiPXRoaXMsYz1iLmRhdGEsZD1bXTtyZXR1cm4gYy5wYXRoLmxlbmd0aD4oIl9kZXNpZ24iPT1jLnBhdGhbMV0/MzoyKT8oYT1jLnBhdGgubGFzdCgpLnJlcGxhY2UoL15cRCsvLCIiKSxkPWMucGF0aC50bygtMSkpOmQ9Yy5wYXRoLGEmJmQucHVzaCh7cmV2OmF9KSxkLnB1c2goe2F0dGFjaG1lbnRzOiEwLGF0dF9lbmNvZGluZ19pbmZvOiEwfSkseHx8Yi5CdXN5LmRlYm91bmNlKDEwKSghMCksYy5hdHRzPSEwLGIuUmVxKGQpLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIHg/YTooYS5fYXR0YWNobWVudHMmJihjLmRvYy5fYXR0YWNobWVudHM9YS5fYXR0YWNobWVudHMpLGIuRG9jPVt7ZGJuYW1lOmMucGF0aFswXSxyZXZpc2lvbjpjLnJldixiYXNldXJsOmIuUGhvKCJCYXNlIiksZG9jOmIuZGF0YS5kb2N9XSxiLm15LnRyaWdnZXIoIiNzdGF0ZS1wcm94eSIsInJlc2V0dGFiaGFzaC5teSIpLGIubXkucmVkcmF3KCksYSl9KS5mYWlsKGZ1bmN0aW9uKCl7fSkuYWx3YXlzKGZ1bmN0aW9uKCl7eHx8Yi5CdXN5KCExKX0uZGVib3VuY2UoMjApKX0sRGVsRG9jOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPU9iamVjdC5jbG9uZShjdy5saWIuZHJ5KGEuZG9jKSwhMCksYz1hLnJldnNbMF0mJmEucmV2c1swXT09YS5kb2MuX3JldixkPS0xIT1hLmNvbmZsaWN0cy5pbmRleE9mKGEuZG9jLl9yZXZ8fCIiKSxlPXgubGFuZyxmPWZ1bmN0aW9uKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9LGc9ZnVuY3Rpb24oeCxhKXtyZXR1cm4gZigoeCsiIikudHJ1bmNhdGUoYXx8MTUsInJpZ2h0Iiwi4oCmIikpfSxoPSQuRGVmZXJyZWQoKSxpPVthLnBhdGhbMF0sYi5faWQse3JldjpiLl9yZXZ9XSxqPSc8ZGl2IGNsYXNzPSJtYjEwIj57MX08L2Rpdj4nO3JldHVybiAkLm15Lm1vZGFsKHt3aWR0aDozNTAsbWFuaWZlc3Q6JC5leHRlbmQoITAse30seC5QaG8oIkNvbmZpcm0iKSx7dWk6eydpbnB1dFtuYW1lPSJyZXRhaW4iXSc6InJldGFpbiJ9LHN0eWxlOnsiIGxhYmVsIjoibWFyZ2luOjA7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0OyJ9fSksZGF0YTp7cmV0YWluOiJubyIsdGV4dDpbZD8iIjonPGRpdiBjbGFzcz0iZnMxMzAgcmVkIG1iNSI+JytlLlRYVF9ERUxfVElUTEUrIjwvZGl2PiIsZD8nPGRpdiBjbGFzcz0iZnMxMzAgb3JhbmdlIG1iNSI+JytlLlRYVF9ERUxfVElUTEVfQ09ORkxJQ1QrIjwvZGl2PiI6IiIsai5hc3NpZ24oZS5UWFRfREVMX1dBUk4uYXNzaWduKGcoYi5faWQsMjUpLGcoYS5wYXRoWzBdLDI1KSkpLGouYXNzaWduKFsnPGxhYmVsIGNsYXNzPSJ4Z3JheSI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJyZXRhaW4iIHZhbHVlPSJubyIgY2xhc3M9Im1yNiI+ICcrZS5MQkxfREVMX0FMTCsiPC9sYWJlbD4iLCc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9InJldGFpbiIgY2xhc3M9Im1yNiI+ICcrZS5MQkxfREVMX1JFVEFJTisiPC9sYWJlbD4iXS5jb25jYXQoeC5QaG8oIkNvdWNoIikudmVyPj0iMDAyLjAwMy4iP1snPGxhYmVsIGNsYXNzPSJ4Z3JheSI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJyZXRhaW4iIHZhbHVlPSJwdXJnZSIgY2xhc3M9Im1yNiI+ICcrZS5MQkxfREVMX1BVUkdFKyI8L2xhYmVsPiJdOltdKS5qb2luKCIiKSksYS5jb25mbGljdHMubGVuZ3RoJiZjP2ouYXNzaWduKGUuVFhUX0RFTF9OT0RFTCk6IiIsZD9qLmFzc2lnbihlLlRYVF9ERUxfQ09ORkxJQ1QpOiIiXS5jb21wYWN0KCEwKS5qb2luKCIiKSx5ZXNjc3M6ZD8ib3JhbmdlIjoicmVkIix5ZXM6ZS5CVE5fREVMX1NUQVJULG5vOmUuQlROX0NBTkNFTCxjYW5jZWw6IiJ9LGNzczoibGgxNjAgeGdyYXkgcDIwIHBiMjUifSkudGhlbihmdW5jdGlvbih4KXtpZigieWVzIiE9eC5jbWQpcmV0dXJuIGgucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIik7ayh4LnJldGFpbisiIil9KS5mYWlsKGZ1bmN0aW9uKCl7aC5yZWplY3QoOTk5LCJDYW5jZWxsZWQiLCJDYW5jZWxsZWQiKX0pLGgucHJvbWlzZSgpO2Z1bmN0aW9uIGsoYyl7dmFyIGQsaixrLG09e25vOnt1cmw6aSxtZXRob2Q6IkRFTEVURSIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn19LHJldGFpbjp7dXJsOlthLnBhdGhbMF0sIl9idWxrX2RvY3MiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxkYXRhOkpTT04uc3RyaW5naWZ5KHtkb2NzOltPYmplY3QubWVyZ2Uoe19kZWxldGVkOiEwfSxiKV19KX0scHVyZ2U6e3VybDpbYS5wYXRoWzBdLCJfcHVyZ2UiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxkYXRhOkpTT04uc3RyaW5naWZ5KChkPWIuX2lkLGo9Yi5fcmV2LGs9e30sa1tkXT1bal0saykpfX1bY107cmV0dXJuIHguUmVxKG0pLnRoZW4oZnVuY3Rpb24oZCl7Y3cubGliLm5vdGUoZS5NU0dfREVMX09LLmFzc2lnbihnKGIuX2lkKSxnKGEucGF0aFswXSkpLCJvayIpO3RyeXskLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmEucGF0aFswXSxjbWQ6ImRlbGV0ZSIsZG9jczpbYi5faWRdfSksJC5teS5yYWRpbygiZGJsaXN0IixbYS5wYXRoWzBdXSl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9InB1cmdlIiE9YyYmYS5jb25mbGljdHMubGVuZ3RoP2woITApOihmdW5jdGlvbigpe3gubXkucm9vdCgpLnRyaWdnZXIoInRhYmNsb3NlIix7dGFiaWQ6YS50YWJpZCxlbmZvcmNlOiEwfSl9LmRlYm91bmNlKDEwMCkoKSxoLnJlc29sdmUoZCkpfSkuZmFpbChmdW5jdGlvbih4LGMsZCl7cmV0dXJuIGN3LmxpYi5ub3RlKGUuTVNHX0RFTF9GQUlMLmFzc2lnbihnKGIuX2lkKSx4LGYoYykpLCJlcnJvciIpLCQubXkucmFkaW8oImRidXBkYXRlIixhLnBhdGhbMF0pLGgucmVqZWN0KHgsYyxkKX0pfWZ1bmN0aW9uIGwoYyl7YS5wYXRoWzFdPWIuX2lkLGEucGF0aC5sZW5ndGg9Mjt2YXIgZD1hLnJldjthLnJldj0iIixkJiYkLm15LnJhZGlvKCJwYXRoY2hhbmdlIix7aWQ6YS50YWJpZCxwYXRoOmEucGF0aCx0aXRsZTp4LnRpdGxlKCl9KSx4LkdldERvYyghMCkudGhlbihmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGUuTVNHX0RFTF9SRUxPQUQsIiIsNGUzKSx4LlJldnNMaXN0KCIjYXBwLXJldiIpLGgucmVzb2x2ZShhLmRvYyl9KS5mYWlsKGZ1bmN0aW9uKGIsYyxkKXtjdy5saWIubm90ZShlLk1TR19ERUxfUkVMT0FEX0ZBSUwuYXNzaWduKGcoYS5kb2MuX2lkKSxiLGYoYykpLCJlcnJvciIpLGgucmVqZWN0KGIsYyxkKSx4Lm15LnRyaWdnZXIoIiNidG4tZGVsLWRvYyIsInRhYmNsb3NlIix7dGFiaWQ6YS50YWJpZCxlbmZvcmNlOiEwfSl9KX19LFJldnNMaXN0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPVt7aWQ6IiIsdGV4dDphfHxiLmxhbmcuVFhUX1JFVn1dO2Z1bmN0aW9uIGUoeCl7dmFyIGE9eC50ZXh0LnJlcGxhY2UoIi0iLCLigJMiKS50cnVuY2F0ZSgxNywibWlkZGxlIiwnPHNwYW4gY2xhc3M9Im9yYW5nZSI+4oCmPC9zcGFuPicpO3JldHVybiJ4Ij09YVswXSYmKGE9JzxzcGFuIGNsYXNzPSJyZWQxIGJvbGRlciI+4oCgPC9zcGFuPuKAiScrYS5mcm9tKDEpKSwiPG5vYnI+IithKyI8L25vYnI+In1jLmNvbmZsaWN0cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2QucHVzaCh7aWQ6eCx0ZXh0OiJ4Iit4fSl9KSxjLnJldnMuZm9yRWFjaChmdW5jdGlvbih4KXtkLnB1c2goe2lkOngsdGV4dDp4fSl9KSxiLnNlbGVjdDIoYi5teS5maW5kKHgpLHtkYXRhOmQsZm9ybWF0UmVzdWx0OmUsZm9ybWF0U2VsZWN0aW9uOmUsbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6M30pfSxBcHBseUVkczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0oeC5kYXRhLCQuRGVmZXJyZWQoKSksYj14Lm15LmZpbmQoIiNqc2VkaXRvciBidXR0b24jYnRuLWNoYW5nZTp2aXNpYmxlIiksYz1iLmxlbmd0aDtyZXR1cm4gYz94Lm15Lm1vZGFsKCIjYnRuLWRvYy1zYXZlIix7bWFuaWZlc3Q6eC5QaG8oIkNvbmZpcm0iKSxkYXRhOnt0ZXh0OngubGFuZy5NU0dfRURTLHllczp4LmxhbmcuQlROX0VEU19ZRVMsbm86eC5sYW5nLkJUTl9FRFNfTk8sdXNlQnV0dG9uczohMH0sd2lkdGg6NDUwLHo6MTk5NSxzY3JlZW46ITAsZ2xvYmFsOiEwLGZvY3VzOiIjYnRuLXllcyJ9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKCJ5ZXMiIT14LmNtZClyZXR1cm4gYS5yZXNvbHZlKCksdm9pZCAwO2IuZWFjaChmdW5jdGlvbih4LGIpeyQoYikudHJpZ2dlcigiY2xpY2siKSx4PT1jLTEmJmEucmVzb2x2ZS5kZWxheSg0MDApfS5sYXp5KDIwKSl9KS5mYWlsKGZ1bmN0aW9uKCl7YS5yZWplY3QoKX0pOmEucmVzb2x2ZSgpLGEucHJvbWlzZSgpfSxOZXdEb2NUZ3Q6e2lkOiJjdy5QaG90b24uJGRvYy5OZXdEb2NUZ3QiLGluaGVyaXQ6WyJQaG8iXSxkYXRhOnt9LG5ld19kYjoiIixuZXdfaWQ6IiIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2EubmV3X2RiPWIucGF0aFswXSxhLm5ld19pZD1iLmRvYy5faWQseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKX0sdWk6eyIjdGd0LWRiIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guc2VsZWN0Mih7ZGF0YTpPYmplY3Qua2V5cyhhLlBobygiQWxsIikpLnNvcnQoKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiExfSl9LGJpbmQ6InRoaXMubmV3X2RiIn0sIiN0Z3QtaWQiOntiaW5kOiJ0aGlzLm5ld19pZCIsY2hlY2s6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLmxhbmc7cmV0dXJuIGE/YT09eC5kb2MuX2lkJiZ0aGlzLm5ld19kYj09eC5wYXRoWzBdP2IuRVJSX0lEX0VROmEmJiEvXl9kZXNpZ25cLy4rJC8udGVzdChhKSYmIl8iPT1hWzBdP2IuRVJSX0lEX1VTQzp2b2lkIDA6Yi5FUlJfSURfUkVRfSx3YXRjaDpbIiN0Z3QtZGIiXX0sIiNidG4tYXBwbHkiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHgucGF0aFswXT10aGlzLm5ld19kYix4LmRvYy5faWQ9dGhpcy5uZXdfaWQsdGhpcy5teS5jb21taXQoKSl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5teS52YWxpZCgpfX0sd2F0Y2g6WyIjdGd0LWRiIiwiI3RndC1pZCJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LEhUTUw6Wyc8ZGl2IGNsYXNzPSJmczE1MCBsaDE0MCBmdzUwMCBtYjgiPntUWFRfVElUTEV9PC9kaXY+Jyx7cm93OiI0MDBweCIsbGFiZWw6IjEwMHB4Iixyb3dDc3M6Im15LXJvdyBwYjgiLGxhYmVsQ3NzOiJteS1sYWJlbCBmczkwIn0sWyJ7TEJMX0RCfSIsImlucCN0Z3QtZGIudzEwMHAuZnMxMTUiXSxbIntMQkxfSUR9IiwiaW5wI3RndC1pZC53MTAwcC5mczEwMCIse3BsYzoiTm9uLWVtcHR5IHN0cmluZyJ9LCJtc2ciXSwnPGRpdiBjbGFzcz0icHQxNSBidGQiPicsJzxidXR0b24gaWQ9ImJ0bi1hcHBseSIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPntCVE5fQVBQTFl9PC9idXR0b24+JywnPGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+JywiPC9kaXY+Il0sbGFuZzp7ZW46e1RYVF9USVRMRToiTmV3IGRvYyBsb2NhdGlvbiIsTEJMX0RCOiJUYXJnZXQgREIiLExCTF9JRDoiTmV3IGRvYyBfaWQiLEJUTl9BUFBMWToiU2F2ZSBuZXcgZG9jIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLEVSUl9JRF9FUToiTmV3IF9pZCBtdXN0IGJlIGRpZmZlcmVudCwgb3IgY2hhbmdlIERCIixFUlJfSURfUkVROiJOb24tZW1wdHkgc3RyaW5nIHJlcXVpcmVkIixFUlJfSURfVVNDOiJEb2MgX2lkIGNhbuKAmXQgc3RhcnQgd2l0aCBfIHN5bWJvbCJ9fSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxNnB4OyBsaW5lLWhlaWdodDoyMnB4OyJ9fX0sJGZpbGU6e2lkOiJjdy5QaG90b24uJGZpbGUiLGxhbmc6e30saGFzaDpmdW5jdGlvbigpe3JldHVybiBjdy5saWIuY3JjMih7dGV4dDp0aGlzLmRhdGEudGV4dC5yZXBsYWNlKC9cclxuL2csIlxuIil9KX0sdGl0bGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9YS5wYXRoLGM9YS5kb2MuX2lkO3JldHVyblt4LnRydW5jKCJfZGVzaWduLyI9PWMudG8oOCk/Il9kIitjLmZyb20oNyk6Il91c2VycyI9PWJbMF0/Yy5mcm9tKDE3KTpjLDgpLCLigIkv4oCJIixhLmZuYW1lXS5qb2luKCIiKX0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtpZihhKXt2YXIgYj14WzFdLGM9eFsyXTtyZXR1cm4geC5sZW5ndGg+MiYmIl8iIT1jWzBdJiYoIl8iIT1iWzBdfHwvXl9kZXNpZ25cLy8udGVzdChiKSk/e3R5cGU6ImZpbGUiLHRpdGxlOlt0aGlzLnRydW5jKGIsOCkseC5zbGljZSgyKS5qb2luKCIvIildLmpvaW4oIuKAiS/igIkiKSxhcHBEYXRhOntmbmFtZTp4LnNsaWNlKDIpLmpvaW4oIi8iKSxkb2M6e19pZDpifX19OnZvaWQgMH19LHNlYXJjaFJlOm51bGwsZGF0YTp7cGF0aDpbXSxzZWFyY2g6IiIsZm5hbWU6IiIsZm5hbWUwOiIiLHRleHQ6IiIsc3JjOiIiLG1pbWU6InRleHQvcGxhaW4iLGRvYzp7X2lkOiIifX0scGFyYW1zOntyZXN0eWxlOjIwLHN0cmljdDohMH0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3JldHVybiBiLmZuYW1lMD1iLmZuYW1lLGEuR2V0RmlsZSgpLnRoZW4oZnVuY3Rpb24oKXt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0pfSx1aTp7IiNhcHAtdGl0bGUiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMucDJ1LGI9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0iIHRpdGxlPSJ7M30iPnsyfTwvYT4nLmFzc2lnbihhKHgucGF0aFswXSksdGhpcy50cnVuYyh4LnBhdGhbMF0sMTUpLmVzY2FwZUhUTUwoKSx4LnBhdGhbMF0uZXNjYXBlSFRNTCgpKSxjPXguZG9jLl9pZHx8eC5wYXRoWzFdKygiX2Rlc2lnbiI9PXgucGF0aFsxXT8iLyIreC5wYXRoWzJdOiIiKSxkPSc8YSBjbGFzcz0idGRuIiBocmVmPSJ7MX0iIHRpdGxlPSJ7M30iPnsyfTwvYT4nLmFzc2lnbihbIiMiLGEoeC5wYXRoWzBdKSxhKGMpXS5qb2luKCIvIikuZXNjYXBlSFRNTCgpLGMuZXNjYXBlSFRNTCgpLGMubGVuZ3RoPjE1P2MuZXNjYXBlSFRNTCgpOiIiKTtyZXR1cm5bJzxzcGFuIGNsYXNzPSJmczE0MCBsaDEzMCB4Z3JheSBvODAiPicsJzxzcGFuIGNsYXNzPSJvODAiPnsyfTwvc3Bhbj7igIkv4oCJPHNwYW4gY2xhc3M9IiI+ezF9PC9zcGFuPuKAiS/igIk8c3BhbiBjbGFzcz0iIj57M308L3NwYW4+JywiPC9zcGFuPiJdLmpvaW4oIiIpLmFzc2lnbihkLGIseC5mbmFtZS5lc2NhcGVIVE1MKCkpfSx3YXRjaDpbIiNhcHAtcmV2IiwiI3R4dGVkaXRvciJdfSwiI2FwcC1zZWFyY2giOntkZWxheToyMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztyZXR1cm4gbnVsbCE9YSYmKHguc2VhcmNoPWEpLHguc2VhcmNoLmxlbmd0aDwyP2Iuc2VhcmNoUmU9bnVsbDpiLnNlYXJjaFJlPW5ldyBSZWdFeHAoIigiK1JlZ0V4cC5lc2NhcGUoeC5zZWFyY2gpKyIpIiwiaSIpLHguc2VhcmNofSxjc3M6eyJteS1zZWFyY2giOi9eLnsyLH0kL319LCIjZm91bmQiOntkZWxheToxMzAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3gub24oImNsaWNrLm15IiwiLnBzZXVkb2xpbmsiLGZ1bmN0aW9uKCl7dmFyIHg9KyQodGhpcykudGV4dCgpLGI9YS5teS5maW5kKCIjdHh0ZWRpdG9yIikubmV4dCgpWzBdLkNvZGVNaXJyb3I7Yi5zY3JvbGxJbnRvVmlldyh7bGluZTp4LGNoYXI6MX0sNDgpO3ZhciBjPWZ1bmN0aW9uKCl7Yi5hZGRMaW5lQ2xhc3MoeC0xLCJiYWNrZ3JvdW5kIiwiYmcteWVsbG93NCIpLGZ1bmN0aW9uKCl7Yi5yZW1vdmVMaW5lQ2xhc3MoeC0xLCJiYWNrZ3JvdW5kIiwiYmcteWVsbG93NCIpfS5kZWJvdW5jZSgxMDApKCl9O2MuZGVib3VuY2UoMTAwKSgpLGMuZGVib3VuY2UoMzAwKSgpfSl9LGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5zZWFyY2hSZSxiPVtdO3JldHVybiBhJiYoeC50ZXh0LmxpbmVzKCkuZm9yRWFjaChmdW5jdGlvbih4LGMpe2IubGVuZ3RoPDEwMCYmYS50ZXN0KHgpJiZiLnB1c2goYysxKX0pLGIubGVuZ3RoKT9bJzxkaXYgY2xhc3M9ImJyMiB5ZWxsb3ctMSBiZy15ZWxsb3c0IHBsNyBwcjcgcHQyIHBiMiBmczkwIGxoMTMwIj4nLCIgRm91bmQgQCAiLGIubWFwKGZ1bmN0aW9uKHgpe3JldHVybic8c3BhbiBjbGFzcz0icHNldWRvbGluayB0ZG4iPicreCsiPC9zcGFuPiJ9KS5qb2luKCIsICIpLCI8L2Rpdj4iXS5qb2luKCIiKToiIn0sY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc2VhcmNoUmV9fSx3YXRjaDoiI2FwcC1zZWFyY2gifSwiI3R4dGVkaXRvciI6e2RlbGF5OjEwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmIubWltZXx8InRleHQvcGxhaW4iLGxpbmVOdW1iZXJzOiEwLHZpZXdwb3J0TWFyZ2luOjEwMCxzY3JvbGxiYXJTdHlsZToobnVsbCwibmF0aXZlIiksbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6MixpbmRlbnRXaXRoVGFiczohMSx0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6ITEsZXh0cmFLZXlzOnsiQ3RybC1TIjpmdW5jdGlvbigpe2EuU2F2ZUZpbGUoKX0sIkNtZC1TIjpmdW5jdGlvbigpe2EuU2F2ZUZpbGUoKX0sIkN0cmwtRiI6YywiQ21kLUYiOmN9LHN0eWxlU2VsZWN0ZWRUZXh0OiEwLGhpZ2hsaWdodFNlbGVjdGlvbk1hdGNoZXM6e21pbkNoYXJzOjN9fSk7eFswXS5uZXh0U2libGluZy5Db2RlTWlycm9yO2Z1bmN0aW9uIGMoKXt2YXIgYz14WzBdLm5leHRTaWJsaW5nLkNvZGVNaXJyb3IuZ2V0U2VsZWN0aW9uKCk7Yy5sZW5ndGg+MiYmKGIuc2VhcmNoPWIuc2VhcmNoPT1jPyIiOmMsYS5teS5yZWNhbGMoIiNhcHAtc2VhcmNoIiksYS5teS5jaGVjaygiI2FwcC1zZWFyY2giKSl9fSxiaW5kOiJ0ZXh0In0sIiNidG4tcmVsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuR2V0RmlsZSgpfX0sIiNidG4tZmlsZS1zYXZlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuY21kU2F2ZSgpfX19LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiNlZGNvbnRhaW5lciIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sY21kU2F2ZTpmdW5jdGlvbigpe3RoaXMuU2F2ZUZpbGUoKX0sSFRNTDonPGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIHcxNTUgZnM5NSI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyBibHVlIG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yOCIgdGl0bGU9IntQTENfUkVMT0FEfSI+PHNwYW4gY2xhc3M9ImZpLWxvb3AiPjwvc3Bhbj48L2J1dHRvbj48ZGl2IGlkPSJhcHAtdGl0bGUiIGNsYXNzPSJkaWIgdmF0IGVsbCBtcjIwIG53Ij48L2Rpdj48ZGl2IGNsYXNzPSJudyBkaWIgdmF0Ij48YnV0dG9uIGlkPSJidG4tZmlsZS1zYXZlIiBjbGFzcz0iZ3JlZW4gbXIyIj57QlROX1NBVkV9PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGFuZWxoZWlnaHQgcGwyMCBwcjIwIHB0MTYgcGIxNiI+PGRpdiBpZCA9ICJlZGNvbnRhaW5lciIgY2xhc3M9InBhbmVsaGVpZ2h0LTMyIGJhcyBvaCBicjIiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48dGV4dGFyZWEgaWQ9InR4dGVkaXRvciIgY2xhc3M9IncxMDBwIHBhbmVsaGVpZ2h0LTMyIj48L3RleHRhcmVhPjwvZGl2PjxkaXYgaWQ9ImZvdW5kIiBjbGFzcz0iaGlkZSB3MTQ1IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDorMzt0b3A6MjFweDtyaWdodDoyNHB4OyI+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdGUtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHN0eWxlOnsiIC5Db2RlTWlycm9yIjoiZm9udC1zaXplOjg3JSFpbXBvcnRhbnQ7aGVpZ2h0OjEwMCU7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6ZnVuY3Rpb24oeCl7cmV0dXJuIm1pbi1oZWlnaHQ6IisodGhpcy5QaG8oIlBhbmVsSGVpZ2h0IiktMzQpKyJweDsifSwiIC5teS1tb2RhbC1mb3JtIjp7IiAuQ29kZU1pcnJvciAuQ29kZU1pcnJvci1saW5lcyI6ImxpbmUtaGVpZ2h0OjE3cHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MTUwcHg7bWF4LWhlaWdodDpjYWxjKDE4ICogMTdweCArIDZweCk7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIi5lZC1lcnJvciAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgLkNvZGVNaXJyb3IiOiJtaW4taGVpZ2h0OjE1MHB4OyBoZWlnaHQ6YXV0bzsiLCIgLmJ1dHRvbnMgYnV0dG9uIjoibWFyZ2luLXJpZ2h0OiAycHg7cGFkZGluZzogMC40ZW0gMC43ZW0gMC40ZW0gMC43ZW07Zm9udC1zaXplOiA5MCU7In0sIiAjYXBwLXRpdGxlIjoibWF4LXdpZHRoOmNhbGMoMTAwJSAtIDMzMHB4KTsifSxHZXRGaWxlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXt1cmw6YS5wYXRoLnNsaWNlKDApLGRhdGFUeXBlOiJ0ZXh0Iix0aW1lb3V0OjNlNCxjYWhjZTohMSxoZWFkZXJzOntBY2NlcHQ6IiovKiJ9fTtyZXR1cm4geC5CdXN5LmRlYm91bmNlKDEwKSghMCkseC5SZXEoYikudGhlbihmdW5jdGlvbihiLGMpe2Euc3JjPWEudGV4dD1iLGEubWltZT1jLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSsiIix4Lm15LnRyaWdnZXIoIiNlZGNvbnRhaW5lciIsInJlc2V0dGFiaGFzaC5teSIpLHgubXkucmVkcmF3KCl9KS5mYWlsKGZ1bmN0aW9uKCl7fSkuYWx3YXlzKGZ1bmN0aW9uKCl7eC5CdXN5KCExKX0uZGVib3VuY2UoMTUpKX0sU2F2ZUZpbGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWIucGF0aC50bygiX2Rlc2lnbiI9PWIucGF0aFsxXT8zOjIpLGQ9e3VybDpjLnNsaWNlKDApLG1ldGhvZDoicHV0IixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUiLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sZGF0YToiIn0sZT0kLkRlZmVycmVkKCksZj1hLmxhbmcsZz0iIjtyZXR1cm4gYS5CdXN5LmRlYm91bmNlKDEwKSghMCksYS5SZXEoYykudGhlbihmdW5jdGlvbih4KXt4Ll9hdHRhY2htZW50c3x8KHguX2F0dGFjaG1lbnRzPXt9KSx4Ll9hdHRhY2htZW50c1tiLmZuYW1lXT17Y29udGVudF90eXBlOmIubWltZSxkYXRhOmN3LmxpYi5iYXNlNjQoYi50ZXh0KX0sZz14Ll9yZXYsZC5kYXRhPUpTT04uc3RyaW5naWZ5KHgpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBhLlJlcShkKX0pLnRoZW4oZnVuY3Rpb24oKXt4fHxjdy5saWIubm90ZShmLk1TR19TQVZFLmFzc2lnbihpKGIuZm5hbWUsNDApLGkoYi5kb2MuX2lkLDIwKSksIm9rIiksJC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpiLnBhdGhbMF0sY21kOiJ3cml0ZSIsZG9jczpbYi5kb2MuX2lkXX0pLCQubXkucmFkaW8oImRibGlzdCIsW2IucGF0aFswXV0pLCQubXkucmFkaW8oImZpbGV1cGRhdGUiLHtkYjpiLnBhdGhbMF0sZG9jOmIuZG9jLl9pZCxyZXY6ZyxmaWxlOmIuZm5hbWV9KSxhLm15LnRyaWdnZXIoIiNlZGNvbnRhaW5lciIsInJlc2V0dGFiaGFzaC5teSIpLGUucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbihhLGMsZCl7eHx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRS5hc3NpZ24oaShiLmZuYW1lLDQwKSxhKyI6ICIraChkLnJlYXNvbnx8YykpLCJlcnJvciIpLGUucmVqZWN0KGEsYyxkKX0pLmFsd2F5cyhmdW5jdGlvbigpe2EuQnVzeSghMSl9LmRlYm91bmNlKDE1KSksZS5wcm9taXNlKCk7ZnVuY3Rpb24gaCh4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfWZ1bmN0aW9uIGkoeCxhKXtyZXR1cm4gaCgoeCsiIikudHJ1bmNhdGUoYXx8MTUsInJpZ2h0Iiwi4oCmIikpfX19LCRjb25maWc6e2lkOiJjdy5QaG90b24uJGNvbmZpZyIsbGFuZzp7fSxwYXJhbXM6e3Jlc3R5bGU6MjUsc3RyaWN0OiEwfSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGN3LmxpYi5jcmMyKCh0aGlzLkRvY1swXXx8e30pLmRvY3x8e30pfSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJDb3VjaERCIGNvbmZpZyJ9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGF8fDEhPXgubGVuZ3RofHwiX2NvbmZpZyIhPXhbMF0/bnVsbDp7dGl0bGU6IkNvdWNoREIgY29uZmlnIn19LGRhdGE6e3BhdGg6W10sbm9kZToiIixkb2M6e30sc3RhbXA6MH0sRG9jOltdLE9sZDp7fSxOb2RlczpbXSxNZW1iZXJzQ2hlY2tlZDohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO3guYWRkQ2xhc3MoIm53IiksYS5IVE1MLkhpc3RvcnlSb3c9YS5QaG8oIkNvbXBpbGVUIikoYS5IVE1MLkhpc3RvcnlSb3cpLGEuSGlzdG9yeS5pbml0KGEseCk7dmFyIGI9YS5sYW5nLkhFTFA7cmV0dXJuICQuZXh0ZW5kKGIuY2h0dHBkX2F1dGgsT2JqZWN0LnJlamVjdChiLmNvdWNoX2h0dHBkX2F1dGgsWyJfXyIsIiJdKSksJC5leHRlbmQoYi5jaHR0cGQsT2JqZWN0LnJlamVjdChiLmh0dHBkLFsiX18iLCIiXSkpLGEuR2V0KCExLCEwKS50aGVuKGZ1bmN0aW9uKGIpe3guaHRtbChhLkhUTUwuQXBwLmFzc2lnbihhLmxhbmcpLmFzc2lnbih7VElUTEVfSFRNTDphLkhUTUwuVGl0bGVIVE1MW2EuUGhvKCJpc0NsdXN0ZXIiKT8xOjBdfSkpfSl9LHVpOnsiI2FwcC10aXRsZSI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLk5vZGVzLmxlbmd0aD4xJiZhLnNlbGVjdDIoeCx7ZGF0YTphLk5vZGVzLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIGIuTm9kZXMubGVuZ3RoPDI/d2luZG93LmxvY2F0aW9uLmhvc3Q6KG51bGwhPWEmJngubm9kZSE9YSYmKHgubm9kZT1hLGZ1bmN0aW9uKCl7Yi5HZXQoITApLnRoZW4oZnVuY3Rpb24oKXtiLkhpc3RvcnkuY2xlYXIoITApfSl9LmRlbGF5KDIwKSkseC5ub2RlKX19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT94LnNlYXJjaDooeC5zZWFyY2g9YS5sZW5ndGg8Mz8iIjphLHRoaXMuRG9jWzBdJiZ0aGlzLkRvY1swXS5zZWFyY2ghPXguc2VhcmNoJiZ0aGlzLm15LmZpbmQoIiNqc29uLXNlYXJjaCIpLnZhbCh4LnNlYXJjaCkudHJpZ2dlcigiY2hlY2siKSxhKX0sY3NzOnsibXktc2VhcmNoIjovXi57Myx9JC99fSwiI2pzZWRpdG9yIjp7ZGVsYXk6MTAwLGNoZWNrOiExLGxpc3Q6IjxkaXY+PC9kaXY+IixtZXJnZTohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5uaWNlU2Nyb2xsKHgse2JvdW5jZXNjcm9sbDohMCxjdXJzb3Jjb2xvcjoiIzIzNCIsY3Vyc29yb3BhY2l0eW1pbjouMDcsY3Vyc29yb3BhY2l0eW1heDouNH0pLHgub24oImNsaWNrLm15IiwiLmJ0bi1oZWxwIixmdW5jdGlvbigpe3ZhciB4PSQodGhpcyksYj14LnBhcmVudCgpLnBhcmVudCgpLGM9Yi5teSgiZGF0YSIpLGQ9Yy5wYXRoLnNsaWNlKDEpLmNvbmNhdChbYy5rZXldKTtpZih4LmRhdGEoIm1vZGFsIikpcmV0dXJuICQodGhpcykubW9kYWwoITApO2RbMV18fChkWzFdPSIiKTt2YXIgZT1iLm15KCJtYW5pZmVzdCIpLkhlbHAoZCk7eC5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxiLmFkZENsYXNzKCJob3ZlciIpLCQodGhpcykubW9kYWwoe21hbmlmZXN0Ontpbml0OlsnPGRpdiBpZD0iaW5mby10aXRsZSIgY2xhc3M9ImZzMTEwIGJvbGRlciBtdDMgbWI3Ij48L2Rpdj4nLCc8ZGl2IGlkPSJpbmZvLWhlbHAiIHN0eWxlPSJ3b3JkLWJyZWFrOm5vcm1hbDsiPjwvZGl2PicsJzxkaXYgaWQ9ImluZm8tdXJsIiBjbGFzcz0ibXQ3Ij48L2Rpdj4nXSx1aTp7IiNpbmZvLWhlbHAiOiJ0aXAiLCIjaW5mby10aXRsZSI6InRpdGxlIiwiI2luZm8tdXJsIjp7YmluZDoidXJsIixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudXJsfX19fX0sZGF0YTp7dGl0bGU6ZC5qb2luKCLigIkv4oCJIiksdGlwOihlLnRpcHx8YS5sYW5nLk1TR19VTktOT1dOX0tFWSkuZXNjYXBlSFRNTCgpLnJlcGxhY2UoL2AoW15gXSspYC9nLCc8Y29kZSBjbGFzcz0iZGliIHZhdCI+JDE8L2NvZGU+JyksdXJsOmUudXJsfSx3aWR0aDozNTAsYWxpZ246InRvcDoxMDMlO3JpZ2h0Oi0zOHB4OyIsbm9zZToidG9wIn0pLmFsd2F5cyhmdW5jdGlvbigpe3gucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIiksYi5yZW1vdmVDbGFzcygiaG92ZXIiKX0pfSl9LGlkOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRhdGEuc3RhbXB9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5jcmMyKHguZG9jKX0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlBobygiQ291Y2giKS52ZXIsYz1bImh0dHBkX2dsb2JhbF9oYW5kbGVycyIsIm5hdGl2ZV9xdWVyeV9zZXJ2ZXJzIiwiaHR0cGRfZGVzaWduX2hhbmRsZXJzIiwiZGFlbW9ucyIsInF1ZXJ5X3NlcnZlcnMiLCJodHRwZF9kYl9oYW5kbGVycyIsImV4dGVybmFsIiwib3NfZGFlbW9ucyJdO2lmKGI+PSIwMDEuMDA3LjAwMCImJmI8IjAwMi4ifHxiPj0iMDAyLjAwMS4wMDEiKXtpZihjLmluZGV4T2YoeC5wYXRoWzFdKT4tMXx8Yy5pbmRleE9mKHgua2V5KT4tMSlyZXR1cm4gYS5sYW5nLkJBTl9IVFRQO2lmKGI+PSIwMDIuIiYmKCJjbHVzdGVyIj09eC5wYXRoWzFdfHwiY2x1c3RlciI9PXgua2V5KSlyZXR1cm4gYS5sYW5nLkJBTl9DTFVTVEVSfXJldHVybiExfS5iaW5kKHRoaXMpO3JldHVybiAkLmV4dGVuZCghMCx7fSxhLlBobygiRWQiKS5qc29udHJlZSxhLkV4dEVkLHtkYXRhOntsYWJlbFdpZHRoOjI1MH19LHtsYW5nOntIRUxQOmEubGFuZy5IRUxQfSxNRWRpdDp7ZGF0YTp7Y29tbWl0VHlwZUtleXM6e2F1dG86WyJFbnRlciJdfX19LE1Sb290OmZ1bmN0aW9uKCl7cmV0dXJuIGEubXkucm9vdCgpfX0se0xpYjp7aXNTeXN0ZW06Yn19KX0sYmluZDoidGhpcy5Eb2MifSwiI2J0bi1jZmctc2F2ZSI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLmNtZFNhdmUoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RofX0sd2F0Y2g6WyIjY2ZnLXdhcm4iLCIjZG9jLWhpc3RvcnkiXX0sIiNidG4tcmVsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5HZXQoITApLnRoZW4oZnVuY3Rpb24oKXtiLkhpc3RvcnkuY2xlYXIoITApfSl9fSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJihhLm5hbWV8fCQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KSl9LHJldmVydF9jb25maWc6ZnVuY3Rpb24oKXt0aGlzLkdldC5kZWJvdW5jZSgxNTApKCEwKX19fX0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI2pzZWRpdG9yIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxjbWRTYXZlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXgubGFuZzt4Lk5vZGVzLmxlbmd0aD4xP3gubXkubW9kYWwoIiNidG4tY2ZnLXNhdmUiLHttYW5pZmVzdDp4LlBobygiQ29uZmlybSIpLHdpZHRoOjU1MCxkYXRhOnt0ZXh0OmIuTVNHX0NMVVNURVIseWVzOmIuQlROX1NBVkVDTFVTVEVSLHllc2Nzczoib3JhbmdlIixubzpiLkJUTl9TQVZFTk9ERS5hc3NpZ24oeC50cnVuYyhhLm5vZGUsMjIpLmVzY2FwZUhUTUwoKSksbm9jc3M6ImdyZWVuIix1c2VCdXR0b25zOiEwfSxnbG9iYWw6ITAsc2NyZWVuOiEwLHo6MTk5Mixmb2N1czoiI2J0bi15ZXMifSkudGhlbihmdW5jdGlvbihiKXsibm8iPT1iLmNtZD94LlNhdmUoW2Eubm9kZV0pOnguU2F2ZSgpfSk6eC5TYXZlKCl9LHN0eWxlOnsiICNqc2VkaXRvcj5kaXYiOiJmb250LXNpemU6MTQuNXB4IWltcG9ydGFudDttaW4taGVpZ2h0OjU1MHB4OyIsIiAjanNlZGl0b3IgLmluYXYiOiJtYXJnaW46MXB4IDAhaW1wb3J0YW50OyIsIiAuaWFjdCAuYnV0dG9uIjoicGFkZGluZzogMC4wNWVtIDAgMC4xZW0gMCFpbXBvcnRhbnQ7IiwiICNqc2VkaXRvcj4ubXktZm9ybT5zZWN0aW9uPiNlZGl0b3I+I2RvYz4uaWFjdC5idXR0b25zIjoicGFkZGluZy1yaWdodDozcHg7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXIiOiJ3aGl0ZS1zcGFjZTpub3dyYXA7IiwiIC5teS1tb2RhbC1mb3JtIjp7IiAuQ29kZU1pcnJvciAuQ29kZU1pcnJvci1saW5lcyI6ImxpbmUtaGVpZ2h0OjE3cHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MTUwcHg7bWF4LWhlaWdodDpjYWxjKDE4ICogMTdweCArIDZweCk7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIi5lZC1lcnJvciAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgLkNvZGVNaXJyb3IgLmNtLXByb3BlcnR5IjoiY29sb3I6IzQzNGU1ZDsiLCIgLkNvZGVNaXJyb3IgLmNtLXZhcmlhYmxlIjoiY29sb3I6IzMzYmZhZDsiLCIgLkNvZGVNaXJyb3IgLmNtLWtleXdvcmQiOiJjb2xvcjojOTAyNTllOyIsIiAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MTUwcHg7IGhlaWdodDphdXRvOyIsIiAuYnV0dG9ucyBidXR0b24iOiJtYXJnaW4tcmlnaHQ6IDJweDtwYWRkaW5nOiAwLjRlbSAwLjdlbSAwLjRlbSAwLjdlbTtmb250LXNpemU6IDkwJTsiLCIgY29kZSI6ImJhY2tncm91bmQtY29sb3I6ICNlYmYwZjMhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6IDJweDtmb250LXNpemU6IDg1JTsgcGFkZGluZzogMC4xZW0gMC4zZW0ifX0sRXh0RWQ6e0hUTUw6e0l0ZW1Sb290Oic8ZGl2IGNsYXNzPSJpbmF2IGlyb290Ij48ZGl2IGNsYXNzPSJpa2V5Ij48L2Rpdj48ZGl2IGNsYXNzPSJpZGVzYyBjcCI+4oCTPC9kaXY+PGRpdiBjbGFzcz0iaWVkaXRvciBwYW5lbGhlaWdodC0zMiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaXZhbHVlIGltdWx0aSBoaWRlIj48ZGl2IGNsYXNzPSJpbGlzdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tYWRkIGJ1dHRvbiBncmVlbiIgdGl0bGU9IkFkZCBuZXcgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXBsdXMiPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi10YWtlb3V0IGJ1dHRvbiIgdGl0bGU9IkNvcHkgLyBwYXN0ZSAvIGVkaXQgYXMgSlNPTiI+PHNwYW4gY2xhc3M9ImZpLXNob3BwaW5nLWJhZyI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1yZXZlcnQiIGNsYXNzPSJidXR0b24iICB0aXRsZT0iUmV2ZXJ0IHRvIHNhdmVkIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1yZWZyZXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLEl0ZW1TaW1wbGU6JzxkaXYgY2xhc3M9ImluYXYiPjxkaXYgY2xhc3M9ImlrZXkgaWtleXNpbXBsZSI+PC9kaXY+PGRpdiBjbGFzcz0iaXZhbHVlIj48L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1oZWxwIGJ1dHRvbiB0ZWFsIiB0aXRsZT0iQ29uZmlnIGtleSBpbmZvIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1pbmZvIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiIHRpdGxlPSJEZWwgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLEl0ZW1Db21wbGV4Oic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IGlrZXl0cmVlIj48L2Rpdj48ZGl2IGNsYXNzPSJpZGVzYyBjcCI+4oCTPC9kaXY+PGRpdiBjbGFzcz0iaWVkaXRvciI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaXZhbHVlIGltdWx0aSBoaWRlIj48ZGl2IGNsYXNzPSJpbGlzdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tYWRkIGJ1dHRvbiBncmVlbiIgdGl0bGU9IkFkZCBuZXcgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXBsdXMiPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1oZWxwIGJ1dHRvbiB0ZWFsIiB0aXRsZT0iQ29uZmlnIGtleSBpbmZvIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1pbmZvIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tanNvbiBoaWRlIj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiICB0aXRsZT0iRGVsIG5vZGUiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nfSx1aTp7IiNkb2MiOnttYW5pZmVzdDpmdW5jdGlvbih4KXtpZighdGhpcy5IVE1MLkl0ZW1Sb290KXJldHVybiB0aGlzLiRtdWx0aTt2YXIgYT10aGlzO3JldHVybiAkLmV4dGVuZCghMCx7fSxhLiRtdWx0aSx7SFRNTDphLkhUTUwuSXRlbVJvb3QsdWk6eyIjYnRuLXJldmVydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJiQubXkucmFkaW8oInJldmVydF9jb25maWciLCEwKX19fX0pfX19LEhlbHA6ZnVuY3Rpb24oeCl7eC5zbGljZSgwKTt2YXIgYT10aGlzLmxhbmcuSEVMUCxiPW51bGwsYz0iIixkPSIiLGU9IiIsZj1PYmplY3QuaXNBcnJheTtpZihhKXtudWxsPT14WzFdJiYoeFsxXT0iIik7dmFyIGc9YVt4WzBdXXx8e307ZyYmKGM9KGI9Z1t4WzFdXXx8Z1siKiJdfHwiIik/ZihiKT9iWzBdKyIuIjpiKyIuIjoiIixlPWYoYik/YlsxXTpnLl9fLGMmJmUmJihkPWUuYXNzaWduKCQuZXh0ZW5kKHtrZXk6eC5jb21wYWN0KCEwKS5qb2luKCIvIil9LGEuT0JKX1BBVEhTKSkpKSxkP2Q9JzxhIGhyZWY9InsxfSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4gcGwyIHByNSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIiByZWw9Im5vZm9sbG93Ij48c3BhbiBjbGFzcz0iZmktcGFnZSBmczkwIG83MCI+PC9zcGFuPiZuYnNwO3syfTwvYT4nLmFzc2lnbihkLGEuVFhUX0RPQ1MpOmMmJihkPSc8c3BhbiBjbGFzcz0iZnM5MCBvNzAiPnsxfTwvc3Bhbj4nLmFzc2lnbihhLlRYVF9OT0RPQ1MpKX1yZXR1cm57dGlwOmMsdXJsOmR9fX0sR2V0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPSQuRGVmZXJyZWQoKSxlPVtdLGY9Yi5QaG8oIk1lbWJlcnNoaXAiKXx8e307cmV0dXJuIWIuUGhvKCJpc0NsdXN0ZXIiKSYmYi5NZW1iZXJzQ2hlY2tlZHx8KGIuTWVtYmVyc0NoZWNrZWQ9ITAsT2JqZWN0LmlzQXJyYXkoZi5hbGxfbm9kZXMpJiZPYmplY3QuaXNBcnJheShmLmNsdXN0ZXJfbm9kZXMpPygoZT1mLmNsdXN0ZXJfbm9kZXMuc2xpY2UoMCkuaW50ZXJzZWN0KGYuYWxsX25vZGVzKSkubGVuZ3RoPDImJihiLlBobygpLmlzQ2x1c3Rlcj0hMSksYi5Ob2Rlcz1lLC0xPT1lLmluZGV4T2YoYy5ub2RlKSYmKGMubm9kZT1lWzBdKSk6Yi5QaG8oKS5pc0NsdXN0ZXI9ITEpLGcoKSxkLnByb21pc2UoKTtmdW5jdGlvbiBnKCl7dmFyIGU9WyJfY29uZmlnIl07Yi5Ob2Rlcy5sZW5ndGgmJigxIT1iLk5vZGVzLmxlbmd0aCYmYy5ub2RlP2UudW5zaGlmdCgiX25vZGUiLGMubm9kZSk6ZS51bnNoaWZ0KCJfbm9kZSIsYi5Ob2Rlc1swXSkpLGIuUmVxKGUpLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGE9e307cmV0dXJuIE9iamVjdC5rZXlzKHgpLnNvcnQoKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe09iamVjdC5pc09iamVjdCh4W2JdKT9hW2JdPU9iamVjdC5rZXlzKHhbYl0pLnNvcnQoKS5yZWR1Y2UoZnVuY3Rpb24oYSxjKXtyZXR1cm4gYVtjXT1oKHhbYl1bY10pLGF9LHt9KTphW2JdPXhbYl19KSxjLmRvYz1hLGIuRG9jPVt7bGFiZWxXaWR0aDoyNTAsZG9jOmIuZGF0YS5kb2MsX2lkOiJfY29uZmlnIn1dLGIuT2xkPU9iamVjdC5jbG9uZShjLmRvYywhMCksYS5jaHR0cGQmJnZvaWQgMCE9PWEuY2h0dHBkLm1heF9kYl9udW1iZXJfZm9yX2Ric19pbmZvX3JlcSYmKGIuUGhvKCJDb3VjaCIpLm1heEJhdGNoPSthLmNodHRwZC5tYXhfZGJfbnVtYmVyX2Zvcl9kYnNfaW5mb19yZXF8fDApLHh9KS50aGVuKGZ1bmN0aW9uKGEpe2Muc3RhbXA9RGF0ZS5ub3coKSx4JiZiLm15LnJlY2FsYygiI2pzZWRpdG9yIiksYi5teS50cmlnZ2VyKCIjY2ZnLXByb3h5IiwicmVzZXR0YWJoYXNoLm15IiksZC5yZXNvbHZlKGEpfSkuZmFpbChmdW5jdGlvbih4LGMsZSl7YXx8Y3cubGliLm5vdGUoYi5sYW5nLkVSUl9SRUxPQUQuYXNzaWduKHgsYy50cnVuY2F0ZSg0NSwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCkpLCJlcnJvciIpLGQucmVqZWN0KHgsYyxlKX0pfWZ1bmN0aW9uIGgoeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4P3g6InRydWUiPT14fHwiZmFsc2UiIT14JiYoL15cZHsxLDE1fSQvLnRlc3QoeCk/K3g6eCl9fSxTYXZlOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5QaG8oIl9jb21waWxlZCIpLGEubGFuZyksYz1bXSxkPXt9LGU9KHh8fGEuTm9kZXMpLnNsaWNlKDApLGY9YS5Eb2NbMF0uZG9jO2M9T2JqZWN0LnZhbHVlcyhhLkhpc3Rvcnkuc3RlcHMucmVkdWNlKGZ1bmN0aW9uKHgsYSl7dmFyIGI9YS5vcDtpZihhLnBhdGgubGVuZ3RoPjIpe3ZhciBjPWEucGF0aC5zbGljZSgxKS5qb2luKCLigIMiKTt4W2NdPXtrZXk6Yyx2YWx1ZToiZGVsIiE9Yj9jdy5saWIuZ2V0cmVmKGYsYS5wYXRoLnNsaWNlKDEpKSsiIjpudWxsfX1lbHNle3ZhciBkPWEucGF0aFsxXSxlPWN3LmxpYi5nZXRyZWYoZixkKTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBjPVtkLGFdLGU9Yy5qb2luKCLigIMiKTt4W2VdPXtrZXk6ZSx2YWx1ZToiZGVsIiE9Yj9jdy5saWIuZ2V0cmVmKGYsYykrIiI6bnVsbH19KX1yZXR1cm4geH0se30pKSxlLmxlbmd0aCYmKGM9Yy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3gucHVzaCh7dXJsOlsiX25vZGUiLGIsIl9jb25maWciXSxrZXk6YS5rZXksdmFsdWU6YS52YWx1ZX0pfSkseH0sW10pKTt2YXIgZz1jLmxlbmd0aDtmdW5jdGlvbiBoKCl7T2JqZWN0LnNpemUoZCk/KGN3LmxpYi5ub3RlKGIuTVNHX1NBVkVfRkFJTCwiZXJyb3IiKSxjb25zb2xlLmxvZygiRXJyb3JzIGR1cmluZyBjb25maWcgdXBkYXRlOiIpLGNvbnNvbGUubG9nKGQpKTooY3cubGliLm5vdGUoYi5NU0dfU0FWRV9PSywib2siKSxhLkdldCghMCkudGhlbihmdW5jdGlvbigpe2EuSGlzdG9yeS5jbGVhcighMCl9KSl9Yy5mb3JFYWNoKGZ1bmN0aW9uKHgsYil7YS5SZXEoe3VybDooeC51cmx8fFsiX2NvbmZpZyJdKS5jb25jYXQoeC5rZXkuc3BsaXQoIuKAgyIpKSxtZXRob2Q6bnVsbCE9PXgudmFsdWU/IlBVVCI6IkRFTEVURSIsY29udGVudFR5cGU6bnVsbCE9PXgudmFsdWU/ImFwcGxpY2F0aW9uL2pzb24iOm51bGwsZGF0YTpudWxsIT09eC52YWx1ZT9KU09OLnN0cmluZ2lmeSh4LnZhbHVlKTp2b2lkIDB9KS50aGVuKGZ1bmN0aW9uKCl7InJlcGxpY2F0b3LigINkYiI9PXgua2V5JiYoYS5QaG8oKS5SZXBsaWNhdG9yREI9eC52YWx1ZSl9KS5mYWlsKGZ1bmN0aW9uKGEsYixjKXtkW3gua2V5XT17Y29kZTphLGVycm9yOmIscmVhc29uOmN9fSkuYWx3YXlzKGZ1bmN0aW9uKCl7KGctPTEpfHxoKCl9KX0ubGF6eShhLlBobygiQ2ZnIikuYmF0Y2hVcGRhdGVDZmd8fDEwMCkpfSxIVE1MOntBcHA6JzxkaXYgaWQ9ImNvbC1lZCIgY2xhc3M9ImRpYiB2YXQgd24iPjxkaXYgaWQ9ImEtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcGwyMCBwcjIwIGxoMTYwIj48ZGl2IGNsYXNzPSJmciB3MTU1IGZzOTUiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgYmx1ZSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJ7UExDX1NFQVJDSH0iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykuYmx1cigpIj48L3NwYW4+PC9kaXY+e1RJVExFX0hUTUx9PGRpdiBjbGFzcz0ibncgbXIxMCBkaWIgdmF0IHRhYyB3NDBwIiA+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZCIgY2xhc3M9Inc0MCBtcjIiIHRpdGxlPSJ7QlROX1JFVkVSVH0iPjxzcGFuIGNsYXNzPSJmaS1yZWZyZXNoIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWNmZy1zYXZlIiBjbGFzcz0iZ3JlZW4gbXIyIiBkaXNhYmxlZD57QlROX1NBVkV9PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGFuZWxoZWlnaHQgZmVhdGhlciI+PGRpdiBpZD0ianNlZGl0b3IiIGNsYXNzPSJwYW5lbGhlaWdodCBwbDIwIHByMjAgcHQxMCBwYjE2IiBzdHlsZT0ib3V0bGluZTpub25lOyI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0iY29sLWhpc3RvcnkiIGNsYXNzPSJkaWIgdmF0IHhncmF5IHduIj48ZGl2IGlkPSJoLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4taGlzdG9yeS11bmRvIiBjbGFzcz0ibGgxNDAiPntCVE5fSElTVF9VTkRPfTwvYnV0dG9uPjwvZGl2PjxzcGFuIGNsYXNzPSJmczE1MCBkaWIgdmF0IHBsNSBvOTAgcHQzIj57VFhUX0hJU1RfVElUTEV9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InBhbmVsaGVpZ2h0IGZlYXRoZXIiPjxkaXYgaWQ9ImVtcHR5LWhpc3RvcnkiIGNsYXNzPSJoaWRlIHBhYmMgcGw1IHB0OCBncmF5IiBzdHlsZT0idG9wOjA7IGxlZnQ6MDsiPntUWFRfSElTVF9FTVBUWX08L2Rpdj48ZGl2IGlkPSJkb2MtaGlzdG9yeSIgY2xhc3M9InBhbmVsaGVpZ2h0IHByMjAgcHQxMCBwYjE2IiBzdHlsZT0ib3V0bGluZTpub25lOyI+PC9kaXY+PC9kaXY+PHN0eWxlIGlkPSJzdHlsZS1oaXN0b3J5IiBjbGFzcz0iaGlkZSI+PC9zdHlsZT48ZGl2IGlkPSJzY3JvbGwtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJjZmctcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLFRpdGxlSFRNTDpbJzxkaXYgaWQ9ImFwcC10aXRsZSIgY2xhc3M9ImRpYiB2YXQgZnMxNjAgbGgxMjAgZWxsIG1yMjAiIHN0eWxlPSJtYXgtd2lkdGg6NDAlIj48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IGZzMTE1IG1yMjAgdzQwcCI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtdGl0bGUiIGNsYXNzPSJ3MTAwcCBib2xkZXIiPjwvZGl2PiddfX0sJHZpZXc6e2lkOiJjdy5QaG90b24uJHZpZXciLGxhbmc6e30scGFyYW1zOntyZXN0eWxlOjIwLHN0cmljdDohMH0saW5oZXJpdDpbIkJ5dGVzIiwiTWV0cmljIl0sU3RlcHM6WzEsMTAsMjAsNTAsMTAwLDIwMCw1MDAsMWUzXSxNb2RhbHM6e30sUmVzdWx0OltdLFJvd3M6W10sRXJyb3I6IiIsZlJvd3M6bnVsbCxnUm93czpudWxsLERkb2NzOnt9LFZpZXdzOltdLFZpOnt9LFZpRWRzOnt9LFBlbmRpbmc6e30sTGlzdDpbXSxGaWVsZHM6W10sQ29sdW1uczpbXSxFZGl0b3I6W10saGFzU2VsZWN0aW9uOiExLFJUOmZ1bmN0aW9uKHgpe3JldHVybiBudWxsPT14P3RoaXM6T2JqZWN0LmlzQXJyYXkoeCk/Y3cubGliLmdldHJlZih0aGlzLHgpOnRoaXNbeF19LEluZGV4OmZ1bmN0aW9uKHgpe3JldHVybiBKU09OLnN0cmluZ2lmeSh4LG51bGwsIiAgIil9LGRpZTpmdW5jdGlvbih4KXt0aGlzLnN0YXNoVmlld1N0YXRlKCksWyIjdmlldy1yZXN1bHRzIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj14LmZpbmQoYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGIuZ2V0TmljZVNjcm9sbCYmYi5nZXROaWNlU2Nyb2xsKCkucmVtb3ZlKCksYi5saXN0KCJyZW1vdmUiKX0pO3RyeXt4LmZpbmQoIiN2aWV3LW5hbWUiKS5kYXRhKCkuc2VsZWN0Mi5kcm9wZG93bi5maW5kKCIuc2VsZWN0Mi1yZXN1bHRzIikuZWFjaChmdW5jdGlvbigpe3ZhciB4PSQodGhpcykuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgeCYmeCgpLnJlbW92ZSgpfSl9Y2F0Y2goeCl7fX0sczJwOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPVthLnBhdGhbMF1dO2lmKCFhLnN0YXJ0JiYhYS52aWV3KXJldHVyblthLnBhdGhbMF1dO3ZhciBjPXguVmlbYS52aWV3XSxkPWEudmlldy5zcGxpdCgi77+9Iik7cmV0dXJuIl9maW5kIj09YS52aWV3LnRvKDUpPyhiLnB1c2goIl9maW5kIiksYi5wdXNoKGRbMV18fCJEZWZhdWx0IHF1ZXJ5IikpOiJfaWR4Ij09YS52aWV3LnRvKDQpPyhiLnB1c2goIl9pbmRleCIpLCJfaWR4L++/vSIhPWEudmlldy50byg2KT9iLnB1c2goZFswXS5zcGxpdCgiLyIpWzFdLGRbMV0pOmIucHVzaCgiRGVmYXVsdCBpbmRleCIpKTpjP2IucHVzaCgiX3ZpZXciLGMucGF0aFsyXSxjLnBhdGhbNF0pOi9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3xfY2hhbmdlcykkLy50ZXN0KGEudmlldyk/Yi5wdXNoKGEudmlldyk6Yi5wdXNoKCJfYWxsX2RvY3MiKSxhLnN0YXJ0PyhiLnB1c2goYS5zdGFydCwoYS5yZXZlcnNlPyItIjoiIikrICthLmxpbWl0KSxiKTpifSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuInZpZXcifSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMuZGF0YSxhPXgucGF0aCxiPSJfZmluZCI9PXgudmlldy50byg1KSxjPS9eXyhjaGFuZ2VzfGRlc2lnbl9kb2NzfGxvY2FsX2RvY3MpJC8udGVzdCh4LnZpZXcpLGQ9eC52aWV3PyJfZGVzaWduX2RvY3MiPT14LnZpZXc/Il9kZXNpZ24vKiI6Il9sb2NhbF9kb2NzIj09eC52aWV3PyJfbG9jYWwvKiI6Il9jaGFuZ2VzIj09eC52aWV3PyJfY2hhbmdlcyI6eC52aWV3LnNwbGl0KCLvv70iKS50bygyKS5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4oKGE/eDp4LnNwbGl0KCIvIilbMV0pfHx4fHwiIikudHJ1bmNhdGUoYT8zMDoxMCwibWlkZGxlIiwiLi4uIil9KS5qb2luKCLigIov4oCKIik6IiIsZT1iPyLiirYiOmM/IsOXIjoiw7ciO3JldHVybihkP2FbMF0udHJ1bmNhdGUoMTUsIm1pZGRsZSIsIi4uLiIpOmFbMF0pKyhkPyLigIkiK2UrIuKAiSIrZDoiIil9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7aWYoYSYmKDE9PXgubGVuZ3RofHwvXl8odmlld3xhbGxfZG9jc3xsb2NhbF9kb2NzfGRlc2lnbl9kb2NzfGZpbmR8aW5kZXh8Y2hhbmdlcykkLy50ZXN0KHhbMV0pKSl7dmFyIGI9eC5sZW5ndGgsYz14WzFdfHwiX2FsbF9kb2NzIixkPXt0aXRsZTp4WzBdLHR5cGU6InZpZXciLGFwcERhdGE6e319LGU9L15fKGRlc2lnbnxsb2NhbClfZG9jcyQvLnRlc3QoYyk7aWYoL15fKGFsbHxkZXNpZ258bG9jYWwpX2RvY3MkLy50ZXN0KGMpKTQ9PWJ8fGU/ZC5hcHBEYXRhPXtzdGFydDp4WzJdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCt4WzNdKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KHhbM10rIiIpWzBdfTp4Lmxlbmd0aD0xLGUmJihkLnRpdGxlKz0i4oCJL+KAiSIrYy5yZXBsYWNlKC9fZG9jcyQvLCIiKSxkLmFwcERhdGEudmlldz1jKTtlbHNlIGlmKCJfY2hhbmdlcyI9PWMpZC50aXRsZSs9IuKAiS/igIkiK2MsZC5hcHBEYXRhPXt2aWV3OmMsc3RhcnQ6eFsyXSxsaW1pdDoiKyIrKHRoaXMuJHZpZXcuU3RlcHMuZmluZChNYXRoLmFicygreFszXSkpfHwiMTAwIikscmV2ZXJzZToiLSI9PSh4WzNdKyIiKVswXX07ZWxzZSBpZigiX2ZpbmQiPT1jKWI+NT94Lmxlbmd0aD01OmQuYXBwRGF0YT17c3RhcnQ6eFszXSxsaW1pdDoiKyIrKHRoaXMuJHZpZXcuU3RlcHMuZmluZChNYXRoLmFicygreFs0XSkpfHwiMTAwIikscmV2ZXJzZToiLSI9PSh4WzRdKyIiKVswXX07ZWxzZSBpZigiX2luZGV4Ij09YylpZihiPjYpeC5sZW5ndGg9NjtlbHNle3ZhciBmPSJEZWZhdWx0IGluZGV4Ij09eFsyXSYmKDM9PWJ8fDU9PWIpO2QuYXBwRGF0YT17c3RhcnQ6Zj94WzNdOnhbNF0sbGltaXQ6IisiKyh0aGlzLiR2aWV3LlN0ZXBzLmZpbmQoTWF0aC5hYnMoKyhmP3hbNF06eFs1XSkpKXx8IjEwMCIpLHJldmVyc2U6Ii0iPT0oKGY/eFs0XTp4WzVdKSsiIilbMF19fWVsc2V7aWYoIl92aWV3IiE9YylyZXR1cm47NiE9Yj94Lmxlbmd0aD00OmQuYXBwRGF0YT17c3RhcnQ6eFs0XSxsaW1pdDoiKyIrKHRoaXMuJHZpZXcuU3RlcHMuZmluZChNYXRoLmFicygreFs1XSkpfHwiMTAwIikscmV2ZXJzZToiLSI9PSh4WzVdKyIiKVswXX19cmV0dXJuIGQucGF0aD14LGR9fSxqc2V2YWw6ZnVuY3Rpb24ocyl7dmFyIHI7dHJ5e3I9ZXZhbCgiKCIrcysiKSIpfWNhdGNoKHgpe31yZXR1cm4gcn0sZGF0YTp7cGF0aDpbXSxzZWFyY2g6IiIsdmlldzoiIixzdGFydDoiIixsaW1pdDoiKzEwMCIscmV2ZXJzZTohMSxyZWR1Y2U6W10saW5jbDpbXSxzdGF0ZToiIixzZWxlY3Rpb246W10sbGluazoiIixkdXI6MCxzaXplOjAsZ3JpZDohMSxjb2x1bW5zOlsiLnZhbHVlIl0sdG90YWxfcm93czowLG9mZnNldDowLHNlcToiIix4a2V5OiIwIixlZGl0b3I6ITEsbWFuZ286e2FjdGl2ZToiRGVmYXVsdCBxdWVyeSIsbW9kZTpbImphdmFzY3JpcHQiXSxxdWVyeTpbe25hbWU6IkRlZmF1bHQgcXVlcnkiLHRleHQ6Iih7fSkiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOjB9XX19LERlZmF1bHRNYW5nb1FyeTp7bmFtZToiRGVmYXVsdCBxdWVyeSIsdHlwZToibWFuZ28iLHRleHQ6Iih7XG4gIC8vIE1hdGNoaW5nIGRvY3Mgc2VsZWN0b3JcbiAgc2VsZWN0b3I6IHtcbiAgICBfaWQ6IHskZ3Q6ICcnfVxuICB9LFxuICBcbiAgLy8gRG9jIGZpZWxkcyB0byByZXR1cm4sIFxuICAvLyBjb21tZW50IG91dCB0byBnZXQgd2hvbGUgZG9jc1xuICBmaWVsZHM6IFsnX2lkJywgJ19yZXYnLCAvKid4LnknKi9dLFxuICBcbiAgLy8gU29ydCBvcmRlciwgbGlrZTpcbiAgLy8gc29ydDogW3tfaWQ6J2FzYyd9LCB7bmFtZTogJ2Rlc2MnfV1cbiAgXG4gIC8vIFdoZW4gZWRpdCwgdXNlIENtZC1SIHRvIHJ1biBxdWVyeVxufSkiLGpzb246e3NlbGVjdG9yOntfaWQ6eyRndDoiIn19LGZpZWxkczpbIl9pZCIsIl9yZXYiXX0sZXJyb3JzOltdLHN0YW1wOjB9LERlZmF1bHRNYW5nb0lkeDp7bmFtZToiRGVmYXVsdCBpbmRleCIsZGRvYzoiIix0eXBlOiJpbmRleCIsdGV4dDoiKHtcbiAgaW5kZXg6IHtcblx0XHRmaWVsZHM6IFt7X2lkOiAnYXNjJ31dXG5cdH0sXG5cdC8vIHBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yOntcblx0Ly8gXHQnZm9vLmJhcic6eyRndDowfVxuXHQvLyB9XG59KSIsanNvbjp7aW5kZXg6e2ZpZWxkczpbe19pZDoiYXNjIn1dfX0sZXJyb3JzOltdLHN0YW1wOjB9LHVpOnsiI2J0bi1yb290Ijp7ZGVsYXk6MTAwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2IuYXR0cigiaHJlZiIsIiMiK3gucGF0aFswXSksYi5hdHRyKCJ0aXRsZSIsdGhpcy5sYW5nLlRJUF9VUC5hc3NpZ24oeC5wYXRoWzBdKSl9fSwiI3gtYnRuLXJvb3QiOntjc3M6e3cwOmZ1bmN0aW9uKHgpe3JldHVybiF4LnZpZXd9LHc0MjpmdW5jdGlvbih4KXtyZXR1cm4hIXgudmlld319LHdhdGNoOlsiI3ZpZXctbmFtZSJdfSwiI3ZpZXctbmFtZSI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5zZWxlY3QyKHgse2RhdGE6dGhpcy5WaWV3cyxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMixmb3JtYXRTZWxlY3Rpb246YS5mb3JtYXRTZWwyfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIHgudmlldztpZih4LnZpZXchPWEpe3ZhciBjPWIucmVzdG9yZVZpZXdTdGF0ZShhLCExKTtiLnN0YXNoVmlld1N0YXRlKCkseC5zdGFydD0iIix4LnJlZHVjZT0iIix4LmdyaWQ9ITEsYi5Sb3dzPVtdLGIuZlJvd3M9bnVsbCxiLkNvbHVtbnM9W10sYi5GaWVsZHM9W10sYi5FcnJvcj0iIixiLkVkaXRvcj1bXSx4LnZpZXc9YSxiLnJlc3RvcmVWaWV3U3RhdGUodm9pZCAwLCExKSxiLmJ1aWxkR3JpZENvbHVtbnMoKSx2b2lkIDA9PT1jLmVkaXRvciYmKCJfZmluZCI9PWEudG8oNSl8fCJfaWR4Ij09YS50byg0KT94LmVkaXRvcj0hMDphfHwoeC5lZGl0b3I9ITEpKX1yZXR1cm4geC52aWV3fX0sIiN2aWV3LWxpbWl0Ijp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9KE1hdGguYWJzKCtiLmxpbWl0KXx8MTAwKS5jbGFtcCgxLDFlNCk7YS5zZWxlY3QyKHgse2RhdGE6dGhpcy5TdGVwcy5jb25jYXQoW2NdKS51bmlxdWUoKS5zb3J0QnkoKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOiIrIit4LHRleHQ6eDwxZTM/eCsiIjp4LzFlMysiSyJ9fSksbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MWU0fSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT94LmxpbWl0Oih4LmxpbWl0PWEseC5saW1pdCl9fSwiI3ZpZXctc3RhcnRrZXkiOntkZWxheTowLGJpbmQ6InN0YXJ0IixldmVudHM6ImlucHV0Lm15Iix3YXRjaDpbIiNidG4tY2xlYXItc3RhcnRrZXkiLCIjYnRuLXZpZXctcGx1cyIsIiNidG4tdmlldy1taW51cyIsIiN2aWV3LW5hbWUiXSxjc3M6eyJteS1zZWFyY2giOi9eLnsxLH0kL319LCIjYnRuLXZpZXctbWludXMiOntkZWxheToxLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9eC5zdGFydCxkPSt4LnRvdGFsX3Jvd3MsZT0reC5saW1pdCxmPWIuVmlbeC52aWV3XSYmYi5WaVt4LnZpZXddLnJlZHVjZSYmeC5yZWR1Y2UrIiIsZz0iX2ZpbmQiPT14LnZpZXcudG8oNSksaD0iX2xvY2FsX2RvY3MiPT14LnZpZXc7eC5zdGFydD8vXl9cZCskLy50ZXN0KHguc3RhcnQpJiYoYz0iXyIrKCgreC5zdGFydC5zdWJzdHIoMSl8fDApLWUpLmNsYW1wKDAsZnx8Z3x8aD8xZTEyOmQpKTooZD5lfHxmfHxnfHxoKSYmKGM9Il8iKyhkLWUpLmNsYW1wKDAsMWUxMikpLCJfMCI9PWMmJihjPSIiKSx4LnN0YXJ0PWN9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztyZXR1cm4geC5zdGFydCYmIS9eX1xkKyQvLnRlc3QoeC5zdGFydCl8fCF4LnN0YXJ0JiZiLlJvd3MubGVuZ3RoPD0reC5saW1pdHx8Il9jaGFuZ2VzIj09eC52aWV3fX0sd2F0Y2g6WyIjdmlldy1zdGFydGtleSIsIiN2aWV3LWxpbWl0IiwiI3N0YXRlLXByb3h5Il19LCIjYnRuLXZpZXctcGx1cyI6e2RlbGF5OjEsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz14LnN0YXJ0LGQ9K3gudG90YWxfcm93cyxlPSt4LmxpbWl0LGY9Yi5WaVt4LnZpZXddJiZiLlZpW3gudmlld10ucmVkdWNlJiZ4LnJlZHVjZSsiIixnPSJfZmluZCI9PXgudmlldy50byg1KSxoPSJfbG9jYWxfZG9jcyI9PXgudmlldztpZigiX2NoYW5nZXMiPT14LnZpZXcmJngucmV2ZXJzZSljPWIuUmVzdWx0WzBdLnJlc3VsdHNbZV0/Yi5SZXN1bHRbMF0ucmVzdWx0c1tlLTFdLnNlcSsiIjoiIjtlbHNlIGlmKHguc3RhcnQpaWYoL15fXGQrJC8udGVzdCh4LnN0YXJ0KSl7dmFyIGk9KCt4LnN0YXJ0LnN1YnN0cigxKXx8MCkrZTtjPSJfIisoaT49ZCYmIWYmJiFnJiYhaD8wOmkpfWVsc2UgYz1iLlJvd3MubGVuZ3RoPD1lPyIiOkpTT04uc3RyaW5naWZ5KGIuUm93c1tlXS5rZXkpLnJlcGxhY2UoL14ifCIkL2csIiIpO2Vsc2UoZD5lfHxmfHxnfHxoKSYmKGM9Il8iK2UpOyJfMCI9PWMmJihjPSIiKSx4LnN0YXJ0PWN9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztyZXR1cm4heC5zdGFydCYmYi5Sb3dzLmxlbmd0aDw9K3gubGltaXR8fCJfY2hhbmdlcyI9PXgudmlldyYmIXgucmV2ZXJzZX19LHdhdGNoOlsiI3ZpZXctbGltaXQiLCIjc3RhdGUtcHJveHkiXX0sIiN2aWV3LWdyaWQiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh7dGFnczpbeyc8c3BhbiBjbGFzcz0iZmktdGh1bWJuYWlscyBmczExNSBsaDEzMCIgdGl0bGU9IkdyaWQgdmlldyI+PC9zcGFuPic6ImdyaWQifV0sZW1wdHk6eyc8c3BhbiBjbGFzcz0iZmktbGlzdC10aHVtYm5haWxzIGZzMTE1IGxoMTMwIiB0aXRsZT0iTGluZSB2aWV3Ij48L3NwYW4+JzoiIn0sdGFnY3NzOiJ0YWcgYnRuIHczMiBkaWIgY3AiLHRhZ3NoaW06IiIsZ3JvdXBzaGltOiIifSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiBudWxsIT1hJiYoeC5ncmlkPSEhKGErIiIpLHguZ3JpZD8oeC52aWV3fHwoeC5pbmNsPVsiZG9jcyJdKSxiLlJlc3VsdC5sZW5ndGgmJihiLkZpZWxkcy5sZW5ndGh8fGIuYnVpbGRGaWVsZHNMaXN0KCkseC5jb2x1bW5zLmxlbmd0aDwyJiYoIXguY29sdW1uc1swXXx8Ii52YWx1ZSI9PXguY29sdW1uc1swXXx8Ii5kb2MiPT14LmNvbHVtbnNbMF0pJiYoeC5jb2x1bW5zPWIuZGVyaXZlR3JpZENvbHVtbnMoKSkpLGIuYnVpbGRHcmlkQ29sdW1ucygpLGIubXkucmVzdHlsZSgpKTpiLmNsb3NlQXV0b2NvbXBsZXRlcygpLGIuc3Rhc2hWaWV3U3RhdGUoKSxiLm15LnJlY2FsYygiI3ZpZXctZ3JpZC1jb2xzIiksYi5teS5jaGVjaygiI3ZpZXctZ3JpZC1jb2xzIikpLHguZ3JpZD9bImdyaWQiXTpbXX0sd2F0Y2g6WyIjdmlldy1uYW1lIl19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjE1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGw9PWE/eC5zZWFyY2g6YS5sZW5ndGg8Mz8odGhpcy5mU2VhcmNoPXRoaXMuY21TZWFyY2g9bnVsbCx4LnNlYXJjaD0iIixhKTooeC5zZWFyY2g9YSx0aGlzLmZTZWFyY2g9bmV3IFJlZ0V4cCgiKCIrUmVnRXhwLmVzY2FwZShhKSsiKSIsImkiKSx0aGlzLmNtU2VhcmNoPW5ldyBSZWdFeHAoIl4iK1JlZ0V4cC5lc2NhcGUoYSksImkiKSxhKX0sY3NzOnsibXktc2VhcmNoIjovXi57Myx9JC99LHdhdGNoOlsiI3N0YXRlLXByb3h5Il19LCIjdmlldy1wYW5lbHMiOnt3YXRjaDpbIiN2aWV3LW5hbWUiLCIjYnRuLXZpZXdjb2RlIl0sY3NzOnsidmlldy1lZGl0b3IiOmZ1bmN0aW9uKHgpe3JldHVybiEvXihfY2hhbmdlc3xfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8KSQvLnRlc3QoeC52aWV3KSYmISF4LmVkaXRvcn0sInZpZXctbWFuZ28iOmZ1bmN0aW9uKHgpe3JldHVybiJfZmluZCI9PXgudmlldy50byg1KX0sInZpZXctaW5kZXgiOmZ1bmN0aW9uKHgpe3JldHVybiJfaWR4Ij09eC52aWV3LnRvKDQpfSwidmlldy1jaGFuZ2VzIjpmdW5jdGlvbih4KXtyZXR1cm4iX2NoYW5nZXMiPT14LnZpZXcudG8oOCl9LCJtb2RlLWdyaWQiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmdyaWR9LCJtb2RlLWpzb24iOmZ1bmN0aW9uKHgpe3JldHVybiF4LmdyaWR9LCJkYi11c2VycyI6ZnVuY3Rpb24oeCl7cmV0dXJuIl91c2VycyI9PXgucGF0aFswXX19fSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9W107eC5zZWxlY3Rpb24ubGVuZ3RoJiYvXih8X2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzKSQvLnRlc3QoeC52aWV3KSYmKGI9eC5zZWxlY3Rpb24uc29ydCgpLnVuaXF1ZSgpKSx0aGlzLkdldFZpZXcoITAsYiksYi5sZW5ndGh8fC9eXyhkZXNpZ258bG9jYWwpX2RvY3MkLy50ZXN0KHgudmlldyl8fCJfaWR4L++/vSI9PXgudmlldy50byg2KXx8dGhpcy5HZXRWaWV3cyghMCl9fSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJiFhLm5hbWUmJi9eXyh1c2Vyc3xyZXBsaWNhdG9yKSQvLnRlc3QoeC5wYXRoWzBdKSYmJC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pfSxkYnVwZGF0ZTpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7IU9iamVjdC5pc09iamVjdChhKXx8IndyaXRlIiE9YS5jbWQmJiJkZWxldGUiIT1hLmNtZHx8YS5kYj09eC5wYXRoWzBdJiYtMSE9KGEuZG9jc3x8W10pLmluZGV4T2YoeC52aWV3LnNwbGl0KCLvv70iKVswXSkmJmIuR2V0Vmlld3MoITApfX19LCIjYnRuLXZpZXctY29tcGFjdCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXMsZD14LnBhdGgsZT17fSxmPU9iamVjdC5zaXplKGMuVmkpP3tkZG9jczpPYmplY3Qua2V5cyhjLlZpKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3BsaXQoIu+/vSIpWzBdLnNwbGl0KCIvIilbMV19KS51bmlxdWUoKS5zb3J0KCl9Ont9O2IuZGF0YSgibW9kYWwiKT9jLm15Lm1vZGFsKCIjYnRuLXZpZXctY29tcGFjdCIsITApOihjLk1vZGFscy5oZWFkJiZjLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxjLk1vZGFscy5oZWFkPWIsIl9kZXNpZ25fZG9jcyI9PXgudmlldyYmKGU9e2RzZWxlY3Rpb246KGYuZGRvY3N8fFtdKS5pbnRlcnNlY3QoeC5zZWxlY3Rpb24ubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnNwbGl0KCIvIilbMV19KSkuc2xpY2UoMCksb3BzOlsidmlld3MiLCJkZG9jcyJdfSksYy5teS5tb2RhbCgiI2J0bi12aWV3LWNvbXBhY3QiLHttYW5pZmVzdDokLmV4dGVuZCghMCx7fSxjLlBobygiQ29tcGFjdCIpLHtDQjp7ZGRvY3M6ZnVuY3Rpb24oeCl7Yy5HZXRWaWV3KCEwKX19fSksd2lkdGg6MzcwLGRhdGE6JC5leHRlbmQoe3NlbGVjdGlvbjpbeC5wYXRoWzBdXSxvcHM6WyJkb2NzIiwidmlld3MiXX0sZiwiX3ZpZXciPT1kWzFdP3tvcHM6WyJkZG9jcyJdLGRzZWxlY3Rpb246W2RbMl1dfTp7fSxlKSxhbGlnbjoidG9wOjEwMiU7Iixub3NlOiJ0b3AiLGNzczoieGdyYXkiLHNjcmVlbjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsZXNjOiEwLGJvdW5kOjIwLGZvY3VzOiIjYnRuLXN0YXJ0In0pLmFsd2F5cyhmdW5jdGlvbigpe2MuTW9kYWxzLmhlYWQ9bnVsbH0pKX19fSwiI2J0bi12aWV3LWFjbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXM7Yi5kYXRhKCJtb2RhbCIpP2MubXkubW9kYWwoIiNidG4tdmlldy1hY2wiLCEwKTpjLlJlcShbeC5wYXRoWzBdLCJfc2VjdXJpdHkiXSkudGhlbihmdW5jdGlvbihhKXtjLk1vZGFscy5oZWFkJiZjLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxjLk1vZGFscy5oZWFkPWIsYy5teS5tb2RhbCgiI2J0bi12aWV3LWFjbCIse21hbmlmZXN0OmMuUGhvKCJTZWNPYmoiKSx3aWR0aDozODAsZGF0YTokLmV4dGVuZCghMCx7fSx7ZGJzOlt4LnBhdGhbMF1dLGFkbWluczphLmFkbWluc3x8e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOmEubWVtYmVyc3x8e25hbWVzOltdLHJvbGVzOltdfX0pLGFsaWduOiJ0b3A6MTAyJTsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixlc2M6ITAsYm91bmQ6MjAsZm9jdXM6IiNidG4tc3RhcnQifSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMuaGVhZD1udWxsfSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjdy5saWIubm90ZShjLmxhbmcuRVJSX0dFVEFDTCwiZXJyb3IiKX0pfX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4hIXgudmlld319LHdhdGNoOlsiI3ZpZXctbmFtZSJdfSwiI2J0bi12aWV3LW5ld2RvYyI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczsiX3VzZXJzIj09YS5kYXRhLnBhdGhbMF0mJih4Lm9uKCJjbGljay5teSIsZnVuY3Rpb24oYil7cmV0dXJuIHguZGF0YSgibW9kYWwiKT8oYS5teS5tb2RhbCgiI2J0bi12aWV3LW5ld2RvYyIsITApLCExKTooYS5Nb2RhbHMuaGVhZCYmYS5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYS5Nb2RhbHMuaGVhZD14LGEubXkubW9kYWwoIiNidG4tdmlldy1uZXdkb2MiLHttYW5pZmVzdDphLlBobygiVXNlckRvYyIpLHdpZHRoOjM4MCxkYXRhOnt9LGFsaWduOiJ0b3A6MTAyJTtsZWZ0Oi0xNDdweDsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsc2NyZWVuOiExLGVzYzohMCxmb2N1czohMCxib3VuZDoyMH0pLmFsd2F5cyhmdW5jdGlvbigpe2EuTW9kYWxzLmhlYWQ9bnVsbH0pLCExKX0pLHguaHRtbCgnPHNwYW4gY2xhc3M9ImxoMTQwIj4nK2EubGFuZy5CVE5fTkVXVVNFUl9ETEcrIjwvc3Bhbj4iKSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2IuYXR0cigiaHJlZiIsIiMiK2VuY29kZVVSSUNvbXBvbmVudCh4LnBhdGhbMF0pKyIvX25ldyIpfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiEheC52aWV3JiZ4LnNlbGVjdGlvbi5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LWFjdGlvbnMiXX0sIiN2aWV3LWFjdGlvbnMiOntkZWxheToxMCxjc3M6e2hhc1NlbGVjdGlvbjpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5oYXNTZWxlY3Rpb249ISgiIiE9eC5yZWR1Y2V8fCJfZmluZCI9PXgudmlldy50byg1KXx8IXguc2VsZWN0aW9uLmludGVyc2VjdCh0aGlzLlJvd3MudG8oK3gubGltaXQpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5pZH0pKS5sZW5ndGgpLHRoaXMuaGFzU2VsZWN0aW9ufSxpc0Rkb2NzOmZ1bmN0aW9uKHgpe3JldHVybiJfZGVzaWduX2RvY3MiPT14LnZpZXd9fSx3YXRjaDpbIiN2aWV3LW5hbWUiLCIjYnRuLXNlbGVjdCJdfSwiI2J0bi12aWV3LWRlbGRvY3MiOntkZWxheToyMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsIT1hKXtiLkJ1c3koITApO3ZhciBjPWIubXkuZmluZCgiI2J0bi12aWV3LWNvcHlkb2NzIik7Yy5kYXRhKCJtb2RhbCIpJiZjLm1vZGFsKCEwKSxiLkRlbERvY3MoKS5hbHdheXMoZnVuY3Rpb24oKXtiLkJ1c3koITEpfS5kZWJvdW5jZSgxMCkpfXZhciBkPWIubGFuZ1t4LnNlbGVjdGlvbi5sZW5ndGg+MT8iQlROX0RFTERPQ1MiOiJCVE5fREVMMURPQyJdO3JldHVybiJfZGVzaWduX2RvY3MiPT14LnZpZXc/ZDpkLnN0cmlwVGFncygpfSx3YXRjaDpbIiN2aWV3LWFjdGlvbnMiXX0sIiNidG4tdmlldy1jb3B5ZG9jcyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9Yi5teS5maW5kKCIjYnRuLXZpZXctY29weWRvY3MiKTtpZihjLmRhdGEoIm1vZGFsIikpcmV0dXJuIGMubW9kYWwoITApLHZvaWQgMDtjLm1vZGFsKHtyb290OmIubXkucm9vdCgpLG1hbmlmZXN0OiQuZXh0ZW5kKCEwLHt9LGIuUGhvKCJTeW5jVGFzayIpLHtwYXJhbXM6e3dpZHRoOjUwMH19KSxkYXRhOnt0YXNrOiJDb3B5IixzcmM6e3VybDp4LnBhdGhbMF0sZmlsdGVyOlsiaWRzIl0saWRzOnguc2VsZWN0aW9uLnNsaWNlKDApfX0sZm9jdXM6IiNydGFyZ2V0Iixub3NlOiJ0b3AiLGFsaWduOiJ0b3A6MTAzJSIsZHJhZzoiLmNtIixjc3M6InhncmF5Iixlc2M6ITAsYm91bmQ6MH0pfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4hY3cubWUoKX0sInNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIl9sb2NhbF9kb2NzIj09eC52aWV3fX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dGhpcy5teS5jaGVjaygiI2J0bi12aWV3LWNvcHlkb2NzIil9fSx3YXRjaDpbIiN2aWV3LW5hbWUiXX0sIiNidG4tdmlld2NvZGUiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO3JldHVybiBudWxsIT1hJiZ4LnZpZXcmJihjLmNsb3NlQXV0b2NvbXBsZXRlcygpLGMuRWRTd2l0Y2goKSx4LmVkaXRvcj0hMCxjLnN0YXNoVmlld1N0YXRlKCkpLGMubGFuZ1siX2ZpbmQiPT14LnZpZXcudG8oNSkmJnguZ3JpZD8iQlROX1ZJRVdDT0RFX0dNIjoiQlROX1ZJRVdDT0RFIl19LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hIXguZWRpdG9yfHwvXihfY2hhbmdlc3xfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8KSQvLnRlc3QoeC52aWV3KX19LGV2ZW50czoiY2xpY2subXkiLHdhdGNoOlsiI3ZpZXctbmFtZSIsIiN2aWV3LWdyaWQiXX0sIiNidG4tdmlldy1kaXIiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJldmVyc2U9IXgucmV2ZXJzZSkseC5yZXZlcnNlPyLilrwiOiLilrIifSxldmVudHM6ImNsaWNrLm15In0sIiN2aWV3LWNvbHMiOntkZWxheTozMCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYoIl9maW5kIj09eC52aWV3LnRvKDUpJiZ4LmdyaWQpcmV0dXJuIiMiO3ZhciBiLGM9K3gudG90YWxfcm93cyxkPXguc2VhcmNoO3JldHVybiB0aGlzLmxhbmcuVFhUX01BUFZJRVcoTWF0aC5taW4odGhpcy5Sb3dzLmxlbmd0aCwreC5saW1pdCksLTE9PWM/Ij8/IjpjPDk5OTk/YzoifiIrYy5tZXRyaWMoMSw0KSxkLmxlbmd0aD4yJiYoYj14LmdyaWQ/dGhpcy5nUm93czp0aGlzLmZSb3dzKT9iLmxlbmd0aDpudWxsKX0sd2F0Y2g6WyIjdmlldy1yZXN1bHRzLWpzb24iLCIjc3RhdGUtcHJveHkiLCIjdmlldy1ncmlkIl19LCIjdmlldy1saW5rcyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0iPnsyfTwvYT4nLGQ9eC5wYXRoLGU9eC52aWV3LnNwbGl0KCLvv70iKSxmPWIucDJ1KGRbMF0pLGc9Yi50cnVuYyhkWzBdLDI1KS5lc2NhcGVIVE1MKCk7cmV0dXJuIHgudmlldz8vXihfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3MpJC8udGVzdCh4LnZpZXcpP1tjLmFzc2lnbihmLGcpLCIvIiwnPHNwYW4gY2xhc3M9InhncmF5Ij4nK3gudmlldysiPC9zcGFuPiB8ICJdLmpvaW4oIuKAiSIpOiJfZmluZCI9PXgudmlldy50byg1KT9bYy5hc3NpZ24oZixnKSwiLyIsJzxzcGFuIGNsYXNzPSJ4Z3JheSI+X2ZpbmQ8L3NwYW4+J10uam9pbigi4oCJIik6Il9pZHgv77+9Ij09eC52aWV3LnRvKDYpP1tjLmFzc2lnbihmLGcpLCIvIiwiX2FsbF9kb2NzIHwgIl0uam9pbigi4oCJIik6Il9pZHgiPT14LnZpZXcudG8oNCk/W2MuYXNzaWduKGYsZyksIi8iLGMuYXNzaWduKGYrIi9fZGVzaWduIitlWzBdLmZyb20oNCksKCJfZGVzaWduIitlWzBdLmZyb20oNCkpLmVzY2FwZUhUTUwoKSldLmpvaW4oIuKAiSIpKyIgfCAiOltjLmFzc2lnbihmLGcpLCIvIixjLmFzc2lnbihmKyIvIitlWzBdLGVbMF0uZXNjYXBlSFRNTCgpKV0uam9pbigi4oCJIikrIiB8ICI6W2csIi8iLCc8c3BhbiBjbGFzcz0ieGdyYXkiPl9hbGxfZG9jczwvc3Bhbj4nXS5qb2luKCLigIkiKSsiIHwgIn0sd2F0Y2g6WyIjdmlldy1yZXN1bHRzLWpzb24iLCIjc3RhdGUtcHJveHkiXX0sIiN2aWV3LWRkc3RhdHMiOntiaW5kOmZ1bmN0aW9uKHgpe2lmKCJfZGVzaWduX2RvY3MiIT14LnZpZXcpcmV0dXJuIiI7dmFyIGE9MCxiPTA7cmV0dXJuIHRoaXMuUm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3gudmFsdWUmJngudmFsdWUuc2l6ZXMmJihhKz14LnZhbHVlLnNpemVzLmFjdGl2ZSxiKz14LnZhbHVlLnNpemVzLmZpbGUpfSksYSYmYj90aGlzLmxhbmcuVFhUX0REU1RBVFMuYXNzaWduKHRoaXMuQnl0ZXMoYiksdGhpcy5CeXRlcyhhKSk6IiJ9LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iX2Rlc2lnbl9kb2NzIiE9eC52aWV3fX0sd2F0Y2g6WyIjdmlldy1yZXN1bHRzLWpzb24iLCIjc3RhdGUtcHJveHkiXX0sIiN2aWV3LXdpdGhkb2NzIjp7ZGVsYXk6MTAsaW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19XSVRIRE9DUyl9LGJpbmQ6ImluY2wiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hIXgudmlld319LHdhdGNoOlsiI3ZpZXctbmFtZSIsIiN2aWV3LWdyaWQiXX0sIiN2aWV3LXJlZHVjZSI6e2RlbGF5OjEwLGluaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfUkVEVUNFKX0sYmluZDoicmVkdWNlIixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMuVmlbeC52aWV3XXx8IXRoaXMuVmlbeC52aWV3XS5yZWR1Y2V9fSx3YXRjaDoiI3ZpZXctbmFtZSJ9LCIjYnRuLWFuY2hvciI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2IuYXR0cigiaHJlZiIpIT14LmxpbmsmJmIuYXR0cigiaHJlZiIseC5saW5rKX0sd2F0Y2g6IiNzdGF0ZS1wcm94eSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJfZmluZCI9PXgudmlldy50byg1KX19fSwiI3ZpZXctcG5hdi1qc29uIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5ncmlkfX0sd2F0Y2g6WyIjdmlldy1ncmlkIl19LCIjYnRuLXNlbGVjdCI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZigiIiE9eC5yZWR1Y2V8fCJfZmluZCI9PXgudmlldy50byg1KSlyZXR1cm4iIjt2YXIgYj10aGlzLGM9KCh4LmdyaWQ/Yi5nUm93czpiLmZSb3dzKXx8Yi5Sb3dzKS50bygreC5saW1pdCkubWFwKHg9PnguaWQpLnVuaXF1ZSgpLGQ9eC5zZWxlY3Rpb24uaW50ZXJzZWN0KGMpLGU9ZC5sZW5ndGgsZj14LnNlbGVjdGlvbi5sZW5ndGgsZz1iLmxhbmc7cmV0dXJuIG51bGwhPWEmJih4LnNlbGVjdGlvbj1lP3guc2VsZWN0aW9uLnN1YnRyYWN0KGMpLnVuaXF1ZSgpOmY/W106eC5zZWxlY3Rpb24uY29uY2F0KGMpLnVuaXF1ZSgpLGU9KGQ9eC5zZWxlY3Rpb24uaW50ZXJzZWN0KGMpKS5sZW5ndGgpLGUmJmU9PWY/Zy5UWFRfVU5TRUxFQ1QuYXNzaWduKGU9PWMubGVuZ3RoP2cuVFhUX1NFTEVDVF9BTEw6ZSk6IWUmJmY/Zy5UWFRfVU5TRUxFQ1QuYXNzaWduKGYpOmUmJmUhPWY/Zy5UWFRfVU5TRUxFQ1RfT0YuYXNzaWduKGUsZik6Zy5UWFRfU0VMRUNULmFzc2lnbih4LnNlYXJjaC5sZW5ndGg+Mj9nLlRYVF9TRUxFQ1RfRklMVEVSOmcuVFhUX1NFTEVDVF9BTEwpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hKHRoaXMuZlJvd3N8fHRoaXMuUm93cykubGVuZ3RofHwiIiE9eC5yZWR1Y2V8fCJfZmluZCI9PXgudmlldy50byg1KX19LHdhdGNoOlsiI3ZpZXctYWN0aW9ucyIsIiNzdGF0ZS1wcm94eSIsIiNhcHAtc2VhcmNoIl19LCIjYnRuLWdyaWQtYWRkY29sIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7MT09eC5jb2x1bW5zLmxlbmd0aCYmIi52YWx1ZSI9PXguY29sdW1uc1swXT94LmNvbHVtbnM9Yi5kZXJpdmVHcmlkQ29sdW1ucygpOnguY29sdW1ucy5wdXNoKCIiKSxiLmJ1aWxkR3JpZENvbHVtbnMoKSxiLm15LnJlc3R5bGUoKX19LGV2ZW50czoiY2xpY2subXkiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC5ncmlkfHx0aGlzLkNvbHVtbnMubGVuZ3RoPjd9fSx3YXRjaDpbIiN2aWV3LWdyaWQiLCIjZ3JpZC1wcm94eSJdfSwiI3ZpZXctcG5hdi1ncmlkIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LmdyaWR9fSx3YXRjaDpbIiN2aWV3LWdyaWQiXX0sIiN2aWV3LWdyaWQtY29scyI6e2NoZWNrOiEwLGRlbGF5OjIwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7eC5zb3J0YWJsZSh7YXhpczoieCIsZGlzdGFuY2U6NSxoYW5kbGU6Ii52aWV3LWdyaWQtY29scy1zb3J0In0pLGEuYnVpbGRHcmlkQ29sdW1ucygpfSxtZXJnZTohMSxiaW5kOiJ0aGlzLkNvbHVtbnMiLGxpc3Q6JzxkaXYgY2xhc3M9InZpZXctZ3JpZC1jb2x1bW4gZGliIHZhdCI+PGRpdiBjbGFzcz0idmlldy1ncmlkLWNvbHMtc29ydCIgdGl0bGU9IkRyYWcgaGVyZSB0byBzb3J0IGNvbHVtbnMiPjwvZGl2PjxkaXYgY2xhc3M9IncxMDBwIGRpYiB2YXQiPjxpbnB1dCBjbGFzcz0iZ3JpZC1jb2x1bW4tcHRyIGJvbGRlciIgdHlwZT0idGV4dCIgc3BlbGxjaGVjaz0iZmFsc2UiPjxzcGFuIGlkPSJidG4tZm9sZCIgY2xhc3M9InBzZXVkb2xpbmsgdGRuIGJmb2xkIGRpYiB2YXQiPjxkaXY+4pa8PC9kaXY+PC9zcGFuPjwvZGl2PjwvZGl2PicsaWQ6WyJpZCJdLG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLkdyaWRDb2x1bW4oKX0sd2F0Y2g6WyIjYnRuLWdyaWQtYWRkY29sIiwiI3ZpZXctZ3JpZCJdfSwiI2dyaWQtcHJveHkiOntkZWxheTo1MSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZih4LmdyaWQmJihiLkNvbHVtbnN8fFtdKS5sZW5ndGgpe3ZhciBjPXguY29sdW1ucy5sZW5ndGg7eC5jb2x1bW5zPWIuQ29sdW1ucy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguY29sc30pLGIuc3Rhc2hWaWV3U3RhdGUoKSxjIT0oYi5Db2x1bW5zfHxbXSkubGVuZ3RoJiZ0aGlzLm15LnJlc3R5bGUoKX19LHdhdGNoOlsiI3ZpZXctZ3JpZC1jb2xzIl19LCIjcmVxLWR1ciI6e2RlbGF5OjEwMCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXguZHVyLGI9eC5zaXplO3JldHVybiBhJiZiP3RoaXMuQnl0ZXMoYikrIiDCtyAiK2ErIm1zIjoiIn0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LmR1cnx8IXguc2l6ZX19LHdhdGNoOlsiI3N0YXRlLXByb3h5Il19LCIjc3RhdGUtcHJveHkiOntkZWxheToyMCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSl7dmFyIGI9dGhpczt4LnBhdGguc2xpY2UoMCk7eC5wYXRoPWIuczJwKCk7dmFyIGM9Y3cubGliLnNkYm0oW3gudmlldyx4LnN0YXJ0LHgubGltaXQseC5yZXZlcnNlLHgucmVkdWNlKyIiLHgudmlldz8iIjp4LmluY2wrIiJdKTt4LnN0YXRlIT1jJiYoYi5zdGFzaFZpZXdTdGF0ZSgpLCQubXkucmFkaW8oInBhdGhjaGFuZ2UiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRoLHRpdGxlOmIudGl0bGUoKX0pLHguc3RhdGU9YywvXih8X2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfF9jaGFuZ2VzKSQvLnRlc3QoeC52aWV3KSYmKHguZWRpdG9yPSExKSx4LmVkaXRvcj9iLkVkU3dpdGNoKCk6Yi5FZGl0b3IubGVuZ3RoPTAsYi5HZXRWaWV3KCEwKSxiLm15LnJlY2FsYygiI3ZpZXctZWQtY29udGFpbmVyIikseC5lZGl0b3J8fGIubXkucmVzdHlsZSgpKX19LHdhdGNoOlsiI3ZpZXctZ3JpZCIsIiN2aWV3LXN0YXJ0a2V5IiwiI3ZpZXctbmFtZSIsIiN2aWV3LWxpbWl0IiwiI2J0bi12aWV3LWRpciIsIiN2aWV3LXJlZHVjZSIsIiN2aWV3LXdpdGhkb2NzIl0sbGlzdGVuOntkYnVwZGF0ZTpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7KE9iamVjdC5pc09iamVjdChhKT9hLmRiOmErIiIpPT14LnBhdGhbMF0mJigoYS5kb2NzfHxbXSkuZmluZCgvXl9kZXNpZ24vKSYmKGEuZG9jcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2IuRGRvY3NbeF0mJmRlbGV0ZSBiLkRkb2NzW3hdfSksYi5HZXRWaWV3cyghMCkpLGIuR2V0VmlldyghMCkpfSxkYmRlbGV0ZWQ6ZnVuY3Rpb24oeCxhKXtpZihhPT14LnBhdGhbMF0pe3ZhciBiPXRoaXM7KGZ1bmN0aW9uKCl7Yi5teS5yb290KCkudHJpZ2dlcigidGFiY2xvc2UiLHt0YWJpZDp4LnRhYmlkLGVuZm9yY2U6ITB9KX0pLmRlYm91bmNlKE51bWJlci5yYW5kb20oMTAsNTApKSgpfX19fSwiI3ZpZXctcmVxLWVycm9yIjp7YmluZDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5FcnJvci5lc2NhcGVIVE1MKCl9LGNzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLkVycm9yfX0sd2F0Y2g6WyIjc3RhdGUtcHJveHkiXX0sIiN2aWV3LWVkLWNvbnRhaW5lciI6e2RlbGF5OjEwMCxpbml0OmZ1bmN0aW9uKHgpe30sYmluZDoidGhpcy5FZGl0b3IiLG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3ZhciBhPXgudHlwZTtyZXR1cm4gdGhpcy5QaG8oInZpZXciPT1hPyJWaWV3RWQiOiJpbmRleCI9PWE/IkluZGV4RWQiOiJNYW5nb0VkIil9LGxpc3Q6JzxkaXY+PGRpdiBjbGFzcz0idzEwMHAgdGFjIHB0NTAgbGgyMDAiPjxkaXYgY2xhc3M9ImN3LWJ1c3kgdzEwMCBoMyI+PC9kaXY+PC9kaXY+PC9kaXY+JyxpZDpbIm5hbWUiLCJ0eXBlIiwiZGRvYyIsInJldiJdLHdhdGNoOlsiI2J0bi12aWV3Y29kZSJdfSwiI3ZpZXctcmVzdWx0cyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxjc3M6e319LCIjdmlldy1yZXN1bHRzLWpzb24iOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlREb2NzLGM9YS5UTWFwLGQ9YS5UTWFuZ28sZT1hLmRhdGE7eC5saXN0KHtkYXRhOmEuUm93cy50bygrZS5saW1pdCksZGVsYXk6MCxjaHVuazo1MCxzb3J0Qnk6bnVsbCxpZDp4PT54Ll9pZHgsaGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW2UudmlldyxlLnNlcXx8IiIsYS5Sb3dzLmxlbmd0aCxlLnZpZXc/IiI6ZS5pbmNsLG51bGw9PXguZG9jLHguX2NoZWNrZWQsZS5zZWFyY2gubGVuZ3RoPjE/ZS5zZWFyY2g6IiAiLCJfZGVzaWduX2RvY3MiPT1lLnZpZXd8fCJfY2hhbmdlcyI9PWUudmlldz9beC52YWx1ZSx4LnZpZXdfaW5kZXhdOiIgIl0pfSx0ZW1wbGF0ZTpmdW5jdGlvbih4LGEpe3JldHVybiJfbG9jYWxfZG9jcyI9PWUudmlld3x8IWUudmlldyYmIWUuaW5jbC5sZW5ndGg/Yih4LGEpOiJfZmluZCI9PWUudmlldy50byg1KT9kKHgsYSk6Yyh4LGEpfX0pLHgub24oImNsaWNrLm15IiwiLmNvbC12YWxzIixmdW5jdGlvbih4KXt2YXIgYixjLGQsZT0kKHguY3VycmVudFRhcmdldCksZj1lLnBhcmVudCgpLmRhdGEoImtleSIpLGc9T2JqZWN0LmlzU3RyaW5nKGYpP2Y6SlNPTi5zdHJpbmdpZnkoZik7aWYoIWUuaXMoIi5jb2wtanNvbiIpKXtpZighKGI9KGEuUm93c3x8W10pLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHguX2lkeD09Z30pKSlyZXR1cm4hMTtiLl9pbmRleCxlLmFkZENsYXNzKCJjb2wtanNvbiIpLGUuZmluZCgiPi5jb2wtZWQtY2xvc2UiKS5sZW5ndGh8fChkPWIuX2tqc29uK2IuX3Zqc29uLGUuYXBwZW5kKGM9JCgnPGRpdiBjbGFzcz0iY29sLWVkIHByZSBmczg1IGxoMTIwIHBsNCI+PC9kaXY+JykpLGUuYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtZWQtY2xvc2UgZnMxMzAgbGgxMzAiIHRpdGxlPSJ7MX0iPuKclTwvZGl2PicuYXNzaWduKGEuUlQoImxhbmciKS5USVBfQ0xPU0VKU09OKSksQ29kZU1pcnJvcihjWzBdLHttb2RlOiJqYXZhc2NyaXB0IixsaW5lTnVtYmVyczohMSxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiEwfSkuc2V0VmFsdWUoZCksYS5mU2VhcmNoJiZjWzBdLmNoaWxkcmVuWzBdLkNvZGVNaXJyb3IuYWRkT3ZlcmxheSh7dG9rZW46ZnVuY3Rpb24oeCxiKXtpZih4Lm1hdGNoKGEuY21TZWFyY2gpKXJldHVybiB4LmVhdChhLmNtU2VhcmNoKSwiZm91bmQiO2Zvcig7bnVsbCE9eC5uZXh0KCkmJiF4Lm1hdGNoKGEuY21TZWFyY2gsITEpOyk7cmV0dXJuIG51bGx9fSkpfX0pLHgub24oImNsaWNrLm15IiwiLmNvbC1lZC1jbG9zZSIsZnVuY3Rpb24oeCl7cmV0dXJuICQoeC5jdXJyZW50VGFyZ2V0KS5wYXJlbnQoKS5yZW1vdmVDbGFzcygiY29sLWpzb24iKSwhMX0pfSxkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsPT1hKXt2YXIgYyxkPXRoaXMsZT0iIj09eC5yZWR1Y2UmJiJfZmluZCIhPXgudmlldy50byg1KTtpZigheC5ncmlkKXtpZigvXihfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8KSQvLnRlc3QoeC52aWV3KXx8ZSl7dmFyIGY9Y3cubGliLmEybyh4LnNlbGVjdGlvbik7ZC5Sb3dzLmZvckVhY2goeD0+eC5fY2hlY2tlZD1mW2U/eC5pZDp4LmtleV0/ImNoZWNrZWQiOiIiKX14LnNlYXJjaC5sZW5ndGg+MiYmKGM9ZC5mU2VhcmNoKT8oZC5mUm93cz1kLlJvd3MudG8oK3gubGltaXQpLmZpbHRlcih4PT5jLnRlc3QoeC5fa2pzb24pfHxjLnRlc3QoeC5fdmpzb24pKSxiLmxpc3QoImRhdGEiLGQuZlJvd3MpKTooZC5mUm93cz1udWxsLGIubGlzdCgiZGF0YSIsZC5Sb3dzLnRvKCt4LmxpbWl0KSkpfX19LHdhdGNoOlsiI3N0YXRlLXByb3h5IiwiI3ZpZXctYWN0aW9ucyIsIiNidG4tc2VsZWN0IiwiI2FwcC1zZWFyY2giXX0sIiN2aWV3LXJlc3VsdHMtZ3JpZCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLlREb2NzLGEuVE1hcCxhLlRNYW5nbyxhLlRHcmlkTWFwKSxjPWEuZGF0YTt0cnl7eC5saXN0KHtkYXRhOihhLmdSb3dzfHxbXSkudG8oK2MubGltaXQpLGRlbGF5OjAsY2h1bms6NTAsc29ydEJ5Om51bGwsaWQ6eD0+eC5faWR4LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFtjLnZpZXcsYy5zZXF8fCIiLGEuUm93cy5sZW5ndGgseC5fY2hlY2tlZCxjLmNvbHVtbnMsbnVsbD09eC5kb2MsYy5zZWFyY2gubGVuZ3RoPjE/Yy5zZWFyY2g6IiAiLCJfZGVzaWduX2RvY3MiPT1jLnZpZXd8fCJfY2hhbmdlcyI9PWMudmlldz9beC52YWx1ZSx4LnZpZXdfaW5kZXhdOiIgIl0pfSx0ZW1wbGF0ZTpmdW5jdGlvbih4LGEpe3JldHVybiBiKHgsYSl9fSl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9eC5vbigiY2xpY2subXkiLCJ0ZC5ncmlkLWNvbHVtbiIsZnVuY3Rpb24oeCl7dmFyIGIsYyxkLGU9JCh4LmN1cnJlbnRUYXJnZXQpLGY9ZS5wYXJlbnQoKS5kYXRhKCJrZXkiKSxnPU9iamVjdC5pc1N0cmluZyhmKT9mOkpTT04uc3RyaW5naWZ5KGYpO2lmKCFlLmlzKCIuY29sLWpzb24iKSl7aWYoIShiPShhLmdSb3dzfHxbXSkuZmluZCh4PT54Ll9pZHg9PWcpKSlyZXR1cm4hMTt2YXIgaD0kKCc8dGQgY2xhc3M9ImdyaWQtY29sdW1uIGNvbC1qc29uIHByZWwiIGNvbHNwYW49InsxfSI+PC90ZD4nLmFzc2lnbihhLkNvbHVtbnMubGVuZ3RoKSk7aD1oLmluc2VydEFmdGVyKGUucGFyZW50KCkuY2hpbGRyZW4oKVswXSksYi5faW5kZXgsZD1iLl9ranNvbitiLl92anNvbixoLmFwcGVuZCgnPGRpdiBjbGFzcz0iY29sLWVkIHByZSBmczg1IGxoMTIwIj48L2Rpdj4nKSxoLmFwcGVuZCgnPGRpdiBjbGFzcz0iY29sLWVkLWNsb3NlIGZzMTMwIGxoMTMwIiB0aXRsZT0iezF9Ij7inJU8L2Rpdj4nLmFzc2lnbihhLlJUKCJsYW5nIikuVElQX0NMT1NFSlNPTikpLGM9aC5maW5kKCIuY29sLWVkIiksQ29kZU1pcnJvcihjWzBdLHttb2RlOiJqYXZhc2NyaXB0IixsaW5lTnVtYmVyczohMSxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiEwfSkuc2V0VmFsdWUoZCksYS5mU2VhcmNoJiZjWzBdLmNoaWxkcmVuWzBdLkNvZGVNaXJyb3IuYWRkT3ZlcmxheSh7dG9rZW46ZnVuY3Rpb24oeCxiKXtpZih4Lm1hdGNoKGEuY21TZWFyY2gpKXJldHVybiB4LmVhdChhLmNtU2VhcmNoKSwiZm91bmQiO2Zvcig7bnVsbCE9eC5uZXh0KCkmJiF4Lm1hdGNoKGEuY21TZWFyY2gsITEpOyk7cmV0dXJuIG51bGx9fSl9fSkseC5vbigiY2xpY2subXkiLCIuY29sLWVkLWNsb3NlIixmdW5jdGlvbih4KXtyZXR1cm4gJCh4LmN1cnJlbnRUYXJnZXQpLnBhcmVudCgpLnJlbW92ZSgpLCExfSl9LGRlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGw9PWEmJnguZ3JpZCl7dmFyIGM9dGhpcyxkPWMuRi5nZXRSZWZTdGFyLGU9IiI9PXgucmVkdWNlJiYiX2ZpbmQiIT14LnZpZXcudG8oNSksZj1jLkNvbHVtbnMucmVkdWNlKGZ1bmN0aW9uKHgsYSl7aWYoeC5sYXN0KCkmJngubGFzdCgpLmNvbHM9PWEuY29scylyZXR1cm4geC5sYXN0KCkuc3Bhbis9MSx4O3ZhciBiPShhLmNhc3Q/YS5jb2xzLnRvKGEuY29scy5sZW5ndGgtYS5jYXN0Lmxlbmd0aC0yKTphLmNvbHMpLnNwbGl0KCIuIik7cmV0dXJuIiIhPT1iWzBdP2IudW5zaGlmdCgidmFsdWUiKTpiLnNoaWZ0KCkseC5wdXNoKHtzZWw6YixzcGFuOjEsY29sczphLmNvbHMsY2FzdDphLmNhc3R9KSx4fSxbXSksZz1jdy5saWIuYTJvKHguc2VsZWN0aW9uKTtjLlJvd3MuZm9yRWFjaCh4PT54Ll9jaGVja2VkPWdbZT94LmlkOngua2V5XT8iY2hlY2tlZCI6IiIpLGMuZ1Jvd3M9Yy5Sb3dzLnRvKCt4LmxpbWl0KTt2YXIgaD14LnNlYXJjaC5sZW5ndGg+MiYmYy5mU2VhcmNoP2MuZlNlYXJjaDpudWxsO2gmJihjLmdSb3dzPWMuZ1Jvd3MuZmlsdGVyKHg9PmgudGVzdCh4Ll9ranNvbil8fGgudGVzdCh4Ll92anNvbikpKSxjLmdSb3dzLmZvckVhY2goZnVuY3Rpb24oeCxhKXt4LmNvbHM9Zi5tYXAoZnVuY3Rpb24oYSl7dmFyIGI9YS5zZWwubGVuZ3RoP2QoeCxhLnNlbCk6dm9pZCAwLGM9InN0cmluZyI9PXR5cGVvZiBiLGU9bnVsbCE9aCYmaC50ZXN0KGM/YjpKU09OLnN0cmluZ2lmeShiKSk7cmV0dXJue3ZhbDpiLHNwYW46YS5zcGFuLGNzczplPyJjZWxsLWZvdW5kIjoiIixjYXN0OmEuY2FzdH19KX0pLGIubGlzdCgiZGF0YSIsYy5nUm93cyl9fSx3YXRjaDpbIiN2aWV3LW5hbWUiLCIjdmlldy1ncmlkIiwiI2dyaWQtcHJveHkiLCIjc3RhdGUtcHJveHkiLCIjdmlldy1hY3Rpb25zIiwiI2J0bi1zZWxlY3QiLCIjYXBwLXNlYXJjaCJdfX0sSFRNTDonPGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIHcxMHAgZnM5NSB6aTIiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgeGdyYXkgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXBwLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgaWQ9IngtYnRuLXJvb3QiIGNsYXNzPSJkaWIgdmF0IG9oIHtfdXB3aWR0aH0gdHcxMDAiPjxhIGlkPSJidG4tcm9vdCIgY2xhc3M9Inc0MCBidXR0b24gbXIyIHRkbiBkaWIgdmF0IHBsMCBwcjAgZnc2MDAiIHRpdGxlPSJEQiBkb2MgbGlzdCI+Li4vPC9hPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiIHN0eWxlPSJ3aWR0aDpjYWxjKDM1JSArIDIzMHB4KTsiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0ie1RJUF9SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9ImRpYiB2YXQgbXIyIGJvbGRlciIgc3R5bGU9IndpZHRoOmNhbGMoKDEwMCUgLSAyMDRweCkgLyAyICsgMTZweCk7Ij48aW5wdXQgaWQ9InZpZXctbmFtZSIgdHlwZT0idGV4dCIgY2xhc3M9IiB3MTAwcCBmczExMCB2YXQiPjwvZGl2PjxkaXYgY2xhc3M9ImZzOTUgZGliIHZhdCIgc3R5bGU9IndpZHRoOmNhbGMoKDEwMCUgLSAyMDRweCkgLyAyIC0gNXB4KTsiPjxkaXYgY2xhc3M9ImZpLWZpbHRlciB4Z3JheSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDZweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IGlkPSJ2aWV3LXN0YXJ0a2V5IiB0eXBlPSJ0ZXh0IiBjbGFzcz0idmF0IHVpLXNlYXJjaCB3MTAwcCIgcGxhY2Vob2xkZXI9IntQTENfU1RBUlRLRVl9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTdweCFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjE5cHghaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MnB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB3MTUgcGwyIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xNXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS50cmlnZ2VyKFwnaW5wdXRcJykiPjwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0iYnV0dG9ucyBtbDIiPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1pbnVzIiBjbGFzcz0idzJlbSBtcjIgcGwwIHByMCIgdGl0bGU9IntUSVBfU0hJRlRfTUlOVVN9Ij48c3BhbiBjbGFzcz0iZmktYXJyb3ctbGVmdCBvODAiPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1wbHVzIiBjbGFzcz0idzJlbSBtcjIgcGwwIHByMCIgdGl0bGU9IntUSVBfU0hJRlRfUExVU30iPjxzcGFuIGNsYXNzPSJmaS1hcnJvdy1yaWdodCBvODAiPjwvc3Bhbj48L2J1dHRvbj48L3NwYW4+PGRpdiBjbGFzcz0iZGliIHZhdCB3NzAiPjxpbnB1dCBpZD0idmlldy1saW1pdCIgdHlwZT0idGV4dCIgY2xhc3M9IiB3MTAwcCBmczExMCB2YXQiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgcHI3IGJ1dHRvbnMiIGlkPSJ2aWV3LWdyaWQiPjwvZGl2PjxkaXYgaWQ9InZpZXctYWN0aW9ucyIgY2xhc3M9Im53IHBsNSBkaWIgdmF0IiBzdHlsZT0id2lkdGg6Y2FsYyg1MyUgLSAyNzBweCk7Ij48YSBocmVmPSIiIGlkPSJidG4tdmlldy1uZXdkb2MiIGNsYXNzPSJidXR0b24gZnMxMDAgdGRuIGRpYiBncmVlbiB2YXQgbXIyIG5vdDRkZG9jc3NlbCI+PHNwYW4gY2xhc3M9ImxoMTQwIj57QlROX05FV0RPQ308L3NwYW4+PC9hPjxidXR0b24gaWQ9ImJ0bi12aWV3LWRlbGRvY3MiIGNsYXNzPSJvazRzZWwgbXIyIHJlZCI+e0JUTl9ERUxET0NTfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LWNvcHlkb2NzIiBjbGFzcz0ib2s0c2VsIG1yMiIgeGRpc2FibGVkPntCVE5fQ09QWURPQ1N9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctY29tcGFjdCIgY2xhc3M9Im5vdDRzZWwgb2s0ZGRvY3MgbXIyIj57QlROX0NPTVBBQ1R9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctYWNsIiBjbGFzcz0ibm90NHNlbCI+e0JUTl9BQ0x9PC9idXR0b24+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctcGFuZWxzIiBjbGFzcz0idzEwMHAgcHQxNiBwbDIwIHByMjAiPjxzZWN0aW9uIGlkPSJ2aWV3LWVkLWNvbnRhaW5lciIgY2xhc3M9InZhdCBwYW5lbGhlaWdodC0zMiBicjIgbXIyMCBieHRvcC0zMSIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjwvc2VjdGlvbj48ZGl2IGlkPSJ2aWV3LXBhbmVsIiBjbGFzcz0iZGliIHZhdCBwYW5lbGhlaWdodC0zMiBicjIiPjxkaXYgY2xhc3M9ImJnLXBncmF5IGJicyBsaDE2MCBudyBvaCBlbGwgdmlldy1yZXN1bHRzLWhlYWQgeHBhbmVsIGJhcyI+PGRpdiBjbGFzcz0iaGNvbHcxIGRpYiB2YXQgcHQxIG53IG9oIGVsbCBwcjIiPjxzcGFuIGlkPSJidG4tdmlldy1kaXIiIGNsYXNzPSJkaWIgcGw4IHByNiBtcjIgdmF0IGNwIG81MCBmczgwIHB0MiBwc2V1ZG9saW5rIHRkbiBoMzAiPjwvc3Bhbj48ZGl2IGlkPSJ2aWV3LWNvbHMiIGNsYXNzPSJkaWIgdmF0IG53IHhncmF5IG1yOCI+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1idG5zLWJveCBkaWIgdmF0Ij48ZGl2IGlkPSJidG4tc2VsZWN0IiBjbGFzcz0iYnV0dG9uIHhidXR0b24gcHQyIGgyNSBtdDEgZnM5MCBsaDEzMCB0ZG4gZGliIHZhdCBtbDMgaGlkZSI+PC9kaXY+PGRpdiBpZD0iYnRuLXZpZXdjb2RlIiBjbGFzcz0iYnV0dG9uIHhidXR0b24gcHQyIGgyNSBtdDEgZnM5MCBsaDEzMCB0ZG4gZGliIHZhdCBtbDMgaGlkZSIgdGl0bGU9IntUSVBfVklFV0NPREV9Ij57QlROX1ZJRVdDT0RFfTwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9InZpZXctcG5hdi1qc29uIiBjbGFzcz0iaGNvbHcyIGRpYiBwdDEgZ3JheSBmczkwIj48c3BhbiBjbGFzcz0idmlldy1lZGl0b3ItaGlkZSBncmF5IGZyIHByOCB3MzVwIGVsbCB0YXIiPjxzcGFuIGlkPSJ2aWV3LWxpbmtzIj48L3NwYW4+PGEgaHJlZj0iIiBpZD0iYnRuLWFuY2hvciIgY2xhc3M9InRkbiBvNzAgZGliIHZhdCBtdDEgbWItMSIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJ7VElQX0FOQ0hPUn0iPjxzcGFuIGNsYXNzPSJmaS1hbmNob3IiPjwvc3Bhbj48L2E+PC9zcGFuPjxzcGFuIGlkPSJ2aWV3LXJlZHVjZSIgY2xhc3M9Im10MSBwbDcgaGlkZSI+PC9zcGFuPjxzcGFuIGlkPSJ2aWV3LXdpdGhkb2NzIiBjbGFzcz0ibXQxIGhpZGUiPjwvc3Bhbj48c3BhbiBpZD0idmlldy1kZHN0YXRzIiBjbGFzcz0ibXQxIHBsNyB4Z3JheSBoaWRlIj48L3NwYW4+PC9kaXY+PGRpdiBpZD0idmlldy1wbmF2LWdyaWQiIGNsYXNzPSJoY29sdzIgZGliIHZhdCBmczk1IGdyYXkgaGlkZSI+PGRpdiBpZD0idmlldy1ncmlkLWNvbHMiPjwvZGl2PjxkaXYgaWQ9ImJ0bi1ncmlkLWFkZGNvbCIgY2xhc3M9ImJ1dHRvbiBwMCBsaDE2MCBmczExMCB0ZG4gZGliIHZhdCBibHMgYm9sZGVyIHRhYyIgdGl0bGU9IntUSVBfQUREQ09MfSI+KzwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9InZpZXctcmVxLWVycm9yIiBjbGFzcz0idzEwMHAgaGlkZSByZWQxIHRhYyIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDo1MHB4O2xlZnQ6MDsiPjwvZGl2PjxzZWN0aW9uIGlkPSJ2aWV3LXJlc3VsdHMiIGNsYXNzPSJwYW5lbGhlaWdodC02MyBncmF5LTEgbGgxNzAgYnh0b3AiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48c2VjdGlvbiBpZD0idmlldy1yZXN1bHRzLWpzb24iIGNsYXNzPSJ3MTAwcCIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjwvc2VjdGlvbj48dGFibGUgY2xhc3M9ImdyaWQtdGFibGUiIGNlbGxzcGFjaW5nPSIwIj48dGJvZHkgaWQ9InZpZXctcmVzdWx0cy1ncmlkIiBjbGFzcz0ibXktY29udGFpbmVyIj48L3Rib2R5PjwvdGFibGU+PC9zZWN0aW9uPjwvZGl2Pjwvc2VjdGlvbj48ZGl2IGlkPSJzdGF0ZS1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjxkaXYgaWQ9ImdyaWQtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj48ZGl2IGlkPSJyZXEtZHVyIiBjbGFzcz0iaGlkZSI+PC9kaXY+JyxzdHlsZTp7IiAjdmlldy1hY3Rpb25zIjp7IiAubm90NHNlbCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyIsIiAub2s0c2VsIjoiZGlzcGxheTpub25lOyIsIi5oYXNTZWxlY3Rpb24iOnsiIC5ub3Q0c2VsIjoiZGlzcGxheTpub25lOyIsIiAub2s0c2VsIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiLmlzRGRvY3MiOnsiIC5vazRkZG9jcyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDsiLCIgLm5vdDRkZG9jc3NlbCI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7In19fSwiICNyZXEtZHVyIjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTotMC43NWVtOyByaWdodDozJTtmb250LXNpemU6ODAlOyBsaW5lLWhlaWdodDoxLjI1ZW07IGNvbG9yOiM4YTkwOWE7IGJvcmRlcjoxcHggc29saWQgI2NiZDNkYjtiYWNrZ3JvdW5kOndoaXRlOyBib3JkZXItcmFkaXVzOjEwcHg7IHBhZGRpbmc6MHB4IDVweCAxcHggNXB4OyIsIiAjdmlldy1wYW5lbHMiOnsiIjp7IiAjdmlldy1wYW5lbCI6IndpZHRoOjEwMCU7IiwiICN2aWV3LWVkLWNvbnRhaW5lciI6ImRpc3BsYXk6bm9uZTt3aWR0aDozNSU7IiwiIC5oY29sdzEiOiJ3aWR0aDozOCU7IHRyYW5zaXRpb246d2lkdGggMC4xczsiLCIgLmhjb2x3MiI6IndpZHRoOjYyJTsgdHJhbnNpdGlvbjp3aWR0aCAwLjFzOyJ9LCIudmlldy1lZGl0b3IiOnsiICN2aWV3LXBhbmVsIjoid2lkdGg6Y2FsYyg2MCUgLSAyMHB4KTsiLCIgI3ZpZXctZWQtY29udGFpbmVyIjoid2lkdGg6NDAlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgIiwiIC5oY29sdzEiOiJ3aWR0aDozOCU7IiwiIC5oY29sdzIiOiJ3aWR0aDo2MiU7IiwiIC52aWV3LWVkaXRvci1oaWRlIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsifSwiLnZpZXctZWRpdG9yLnZpZXctbWFuZ28iOnsiICN2aWV3LXBhbmVsIjoid2lkdGg6Y2FsYyg2NSUgLSAyMHB4KTsiLCIgI3ZpZXctZWQtY29udGFpbmVyIjoid2lkdGg6MzUlOyBkaXNwbGF5OmlubGluZS1ibG9jazsifSwiLnZpZXctbWFuZ28iOnsiICN2aWV3LXJlc3VsdHMiOnsiIC5jb2wtaWRzIjoid2lkdGg6NyU7cGFkZGluZzozcHggMnB4IDNweCA3cHg7IiwiIC5jb2wtdmFscyI6IndpZHRoOjkzJTsgcGFkZGluZy1sZWZ0OjVweDsifSwiICNidG4tdmlldy1kaXIiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAjdmlldy1jb2xzIjoicGFkZGluZy1sZWZ0OjZweDsiLCIubW9kZS1ncmlkIjp7IiAuaGNvbHcxIjoid2lkdGg6NjVweCFpbXBvcnRhbnQ7IiwiIC5oY29sdzIiOiJ3aWR0aDpjYWxjKDEwMCUgLSA2NXB4KSFpbXBvcnRhbnQ7IiwiIHRhYmxlLmdyaWQtdGFibGUiOnsiIHRkLmdjb2x3MCI6IndpZHRoOjY1cHghaW1wb3J0YW50OyJ9fX0sIi52aWV3LWVkaXRvci52aWV3LWluZGV4Ijp7IiAjdmlldy1wYW5lbCI6IndpZHRoOmNhbGMoNjUlIC0gMjBweCk7IiwiICN2aWV3LWVkLWNvbnRhaW5lciI6IndpZHRoOjM1JTsgZGlzcGxheTppbmxpbmUtYmxvY2s7In0sIi52aWV3LWluZGV4Ijp7IiAudmlldy10b2ZpbHRlciI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7In0sIi52aWV3LWNoYW5nZXMiOnsiIC52aWV3LXRvZmlsdGVyIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsifSwiLm1vZGUtanNvbiI6eyIgLmdyaWQtdGFibGUiOiJkaXNwbGF5Om5vbmU7In0sIi5tb2RlLWdyaWQiOnsiIC5oY29sdzEiOiJ3aWR0aDozMzBweDsgYmFja2dyb3VuZC1jb2xvcjojZTNlOWVjOyBtaW4taGVpZ2h0OiAyOXB4OyIsIiAuaGNvbHcyIjoid2lkdGg6Y2FsYygxMDAlIC0gMzMwcHgpOyIsIiAudmlldy1idG5zLWJveCI6ImZsb2F0OnJpZ2h0IiwiLnZpZXctZWRpdG9yIjp7IiAuaGNvbHcxIjoid2lkdGg6MjgwcHg7IiwiIC5oY29sdzIiOiJ3aWR0aDpjYWxjKDEwMCUgLSAyODBweCk7IiwiIHRhYmxlLmdyaWQtdGFibGUiOnsiIHRkLmdjb2x3MCI6IndpZHRoOjI4MHB4OyJ9fSwiICN2aWV3LWdyaWQtY29scyI6eyIiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMHB4KTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsiLCIgaW5wdXQiOiJib3JkZXItbGVmdC1jb2xvcjojZTNlOWVjOyJ9LCIgI2J0bi1ncmlkLWFkZGNvbCI6eyIiOiJib3JkZXI6bm9uZTsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNlM2U5ZWMhaW1wb3J0YW50OyB3aWR0aDozMHB4OyBoZWlnaHQ6MjlweDsgYm9yZGVyLXJhZGl1czogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y4IWltcG9ydGFudDsiLCI6aG92ZXIiOiJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlIWltcG9ydGFudDsifSwiIC52aWV3LXJlc3VsdHMtaGVhZCI6ImJhY2tncm91bmQtY29sb3I6I2YwZjhmZiFpbXBvcnRhbnQiLCIgdGFibGUuZ3JpZC10YWJsZSI6eyIiOiJib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7IHRhYmxlLWxheW91dDpmaXhlZDsgd2lkdGg6MTAwJTsiLCIgdHIiOiJ3aWR0aDoxMDAlIiwiIHRyOmxhc3QtY2hpbGQgdGQiOiJib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWZmMzsiLCIgdGQiOnsiIjoicGFkZGluZzowOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHRyYW5zaXRpb246d2lkdGggMC4xczsgbWluLWhlaWdodDogMmVtOyIsIi5nY29sdiI6ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgwLDE0LDM1LDAuMDcpOyIsIi5nY29sdj5kaXYiOiJwYWRkaW5nOiA1cHggNXB4IDZweCA3cHg7IG1pbi1oZWlnaHQ6MmVtOyIsIi5nY29sdzAiOiJ3aWR0aDozMzBweDsgIiwiID5kaXYiOiJ3aWR0aDoxMDAlOyB3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7IiwiID5kaXYudzEwMHAtMzAiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMHB4KTsgd29yZC1icmVhazpicmVhay13b3JkOyBwYWRkaW5nOiA2cHggN3B4IDZweCAwOyIsIi5jb2wtanNvbiI6eyIgfnRkIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsiLCIiOiJwYWRkaW5nOjAhaW1wb3J0YW50OyJ9fX0sIiAjdmlldy1yZXN1bHRzLWpzb24iOiJkaXNwbGF5Om5vbmU7IiwiICI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLkNvbHVtbnN8fFtdKS5sZW5ndGh8fDEsYz1hLm15LmZpbmQoIiN2aWV3LXJlc3VsdHMiKSxkPSJfZmluZCI9PWEuZGF0YS52aWV3LnRvKDUpLGU9KChjLmxlbmd0aD9jLndpZHRoKCk6MTAyNCktKGQ/NjU6YS5kYXRhLmVkaXRvcj8yODA6MzMwKSkvYjtyZXR1cm4gYS5jbG9zZUF1dG9jb21wbGV0ZXMmJmEuY2xvc2VBdXRvY29tcGxldGVzKCksWzEsMiwzLDQsNSw2LDcsOF0ucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbIiAuZ2NvbHciK2FdPSJ3aWR0aDoiK2EqZSsicHg7Iix4fSx7IiAudmlldy1ncmlkLWNvbHVtbiI6IndpZHRoOmNhbGMoKDEwMCUgKyAzMHB4KS8gIitiKyIpOyIsIiAudmlldy1ncmlkLWNvbHVtbjpsYXN0LWNoaWxkIjoid2lkdGg6Y2FsYygoKDEwMCUgKyAzMHB4KS8gIitiKyIpIC0gMzBweCk7In0pfX0sIiAudmlldy1ob3ZlcmJ0bi52aWV3LWVkaXR1c2VyIjoiZGlzcGxheTpub25lIiwiLmRiLXVzZXJzIC52aWV3LWhvdmVyYnRuLnZpZXctZWRpdHVzZXIiOiJkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7In0sIiAjdmlldy1ncmlkLWNvbHMiOnsiIC52aWV3LWdyaWQtY29sdW1uIjp7Ii51aS1zb3J0YWJsZS1oZWxwZXIiOnsiIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7IiwiIC52aWV3LWdyaWQtY29scy1zb3J0IjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEyMCwxNjgsMjIyLDAuNSk7In19LCIgaW5wdXQiOnsiIjoiYm9yZGVyLXJhZGl1czogMDsgYm9yZGVyLXRvcDpub25lOyBib3JkZXItYm90dG9tOm5vbmU7IGJvcmRlci1yaWdodDpub25lOyBwYWRkaW5nLXJpZ2h0OjIwcHg7d2lkdGg6IGNhbGMoMTAwJSArIDFweCk7IGhlaWdodDoyOXB4OyBsaW5lLWhlaWdodDoyOXB4OyBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyAiLCI6Zm9jdXMiOiJiYWNrZ3JvdW5kOnJnYmEoMCwxNTUsMjU1LDAuMTIpOyJ9LCIgLnZpZXctZ3JpZC1jb2xzLXNvcnQiOnsiIjoiY3Vyc29yOm1vdmU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyBoZWlnaHQ6M3B4OyB6LWluZGV4OjE7IHdpZHRoOjEwMCU7IHRyYW5zaXRpb246YmFja2dyb3VuZCAwLjNzOyIsIjpob3ZlciI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgxMjAsMTY4LDIyMiwwLjUpOyJ9fSwiICN2aWV3LXJlc3VsdHMiOnsiIjoibGluZS1oZWlnaHQ6MS40ZW07IiwiIC52aWV3LXJvdyI6Im1pbi1oZWlnaHQ6MmVtOyIsIiAudmlldy1yb3c6bnRoLWNoaWxkKDJuKzApIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIwNiwyMTQsMjI2LDAuMik7IiwiIC52aWV3LWhvdmVyYnRuIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MjBweDtsaW5lLWhlaWdodDoxLjJlbTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDAuNXM7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7IiwiIC52aWV3LXJvdzpob3ZlciAudmlldy1ob3ZlcmJ0biI6Im9wYWNpdHk6MC41OyIsIiAudmlldy1yb3c6aG92ZXIgLnZpZXctaG92ZXJidG46aG92ZXIiOiJvcGFjaXR5OjAuODsiLCIgLnZpZXctaG92ZXJidG4uaG92ZXIiOiJvcGFjaXR5OjAuNzsiLCIgLnZpZXctcm93PmRpdiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOnRvcDt3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IiwiIC5jb2wtaWRzIjoid2lkdGg6MzglOyBwYWRkaW5nOjRweCAyMHB4IDVweCA4cHg7IiwiIC5jb2wtaWRzLnczNXAtMzAiOiJ3aWR0aDpjYWxjKDM4JSAtIDMwcHgpOyIsIiAuY29sLXZhbHMiOnsiIjoid2lkdGg6NjIlOyBwYWRkaW5nLWxlZnQ6MTBweDsiLCIgLmNvbC10cmltIjoiY3Vyc29yOnBvaW50ZXIiLCIgLmNvbC1lZCI6ImRpc3BsYXk6bm9uZTsiLCIgLmNvbC1lZC1jbG9zZSI6ImRpc3BsYXk6bm9uZTsifSwiIC53NDBwLTMwIjoid2lkdGg6Y2FsYyg0MCUgLSAzMHB4KTsiLCIgLnczOHAtMzAiOiJ3aWR0aDpjYWxjKDM4JSAtIDMwcHgpOyIsIiAudzYycCI6IndpZHRoOjYyJTsifSwiIC5iYnMiOiJib3JkZXItYm90dG9tLWNvbG9yOiNlM2U5ZWM7IiwiIC5iYXMiOiJib3JkZXItY29sb3I6I2UzZTllYzsiLCIgLmJycyI6ImJvcmRlci1yaWdodDoxcHggc29saWQgI2UzZTllYzsiLCIgLnZpZXctZm91bmQiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIzMiwxMjEsMC43NSk7IGJvcmRlci1yYWRpdXM6MnB4OyIsIiAuY2VsbC1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjMyLDEyMSwwLjQpOyIsIiAubXktbW9kYWwtZm9ybSAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjE1MHB4O21heC1oZWlnaHQ6Y2FsYygyMCAqIDE2cHggKyA2cHgpOyIsIiAubXktbW9kYWwtZm9ybSAuQ29kZU1pcnJvciI6eyIiOiJtaW4taGVpZ2h0OjE1MHB4O2hlaWdodDphdXRvO2ZvbnQtc2l6ZToxM3B4IWltcG9ydGFudCIsIiAuQ29kZU1pcnJvci1saW5lcyI6ImxpbmUtaGVpZ2h0OjE3cHghaW1wb3J0YW50OyIsIiAuY20tcHJvcGVydHkiOiJjb2xvcjojNDM0ZTVkOyIsIiAuY20tdmFyaWFibGUiOiJjb2xvcjojMzNiZmFkOyIsIiAuY20ta2V5d29yZCI6ImNvbG9yOiM5MDI1OWU7In0sIiAudWktd2lkZ2V0IjoiZm9udC1zaXplOjEwMCUiLCIgLnVpLWF1dG9jb21wbGV0ZSI6ImZvbnQtc2l6ZTowLjllbTsgbGluZS1oZWlnaHQ6MS4yNWVtOyBtYXgtaGVpZ2h0OjUwdmg7IHotaW5kZXg6MTgwMDtvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC5iZm9sZCI6eyIiOlsid2lkdGg6MjBweCFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7ICIsImJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyIsIm1hcmdpbi1sZWZ0Oi0yMXB4OyB6LWluZGV4OisxOyJdLCIgZGl2IjoiZm9udC1zaXplOjYwJTsgb3BhY2l0eTowLjU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6My40ZW07d2lkdGg6MTAwJTsifX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5sYW5nO3guaHRtbCgnPGRpdiBjbGFzcz0iZ3JheTEgZnMxMDUgcHQxMDAgcGIxMDAgdGFjIj57MX08L2Rpdj4nLmFzc2lnbihjLk1TR19MT0FESU5HKSksYS5Mcz1hLlBobygiTHMiKSxPYmplY3Qua2V5cyhhLkYpLmZvckVhY2goZnVuY3Rpb24oeCl7ImZ1bmN0aW9uIj09dHlwZW9mIGEuRlt4XSYmKGFbeF09YS5GW3hdLmJpbmQoYSkpfSksT2JqZWN0LmtleXMoYS5UKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuVFt4XT1hLlBobygiQ29tcGlsZVQiKShhLlRbeF0pfSksYS5WaWV3cz1hLkRlZmF1bHRWaWV3cygpLGEuVE1hcD1hLlRNYXAoKSxhLlREb2NzPWEuVERvY3MoKSxhLlRNYW5nbz1hLlRNYW5nbygpLGEuVEdyaWRNYXA9YS5UR3JpZE1hcCgpO3ZhciBkPWEuUGhvKCJMcyIpKCJNYW5nby4iK2IucGF0aFswXSk7cmV0dXJuIE9iamVjdC5pc09iamVjdChkKSYmZC5xdWVyeSYmJC5leHRlbmQoYi5tYW5nbyxkKSx4Lm9uKCJjbGljay5teSIsIi52aWV3LXRvZmlsdGVyIixmdW5jdGlvbih4KXt2YXIgZD0kKHguY3VycmVudFRhcmdldCkuZGF0YSgiZmlsdGVyIik7Yi5zdGFydD1PYmplY3QuaXNTdHJpbmcoZCk/L14iXGQrIiQvLnRlc3QoZCk/ZDpkLnJlcGxhY2UoL14ifCIkL2csIiIpOkpTT04uc3RyaW5naWZ5KGQpLGN3LmxpYi5ub3RlKGMuTVNHX1NUQVJUX0NIQU5HRS5hc3NpZ24oYi5zdGFydCkpLGEubXkucmVjYWxjKCIjdmlldy1zdGFydGtleSIpLGEubXkuY2hlY2soIiN2aWV3LXN0YXJ0a2V5Iil9LmRlYm91bmNlKDQwKSkseC5vbigiY2xpY2subXkiLCIuYnRuLW9wZW4tZG9jIixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCkuZGF0YSgidXJsIik7YS5QaG8oIlN3aXRjaCIpKGIuc3BsaXQoIi8iKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh4KX0pKX0pLHgub24oImNsaWNrLm15IiwiLnZpZXctZWRpdHVzZXIiLGZ1bmN0aW9uKGIpe3ZhciBkPSQoYi5jdXJyZW50VGFyZ2V0KSxlPSQoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJ1c2VyIik7aWYoJyInPT1lWzBdJiYoZT1KU09OLnBhcnNlKGUpKSwhZS5zdGFydHNXaXRoKCJvcmcuY291Y2hkYi51c2VyOiIpKXJldHVybiBjdy5saWIubm90ZShjLkVSUl9OT1RBVVNFUiwiZXJyb3IiKSwhMTtkLmFkZENsYXNzKCJob3ZlciIpLGEuUmVxKFsiX3VzZXJzIixlXSkudGhlbihmdW5jdGlvbihiKXtyZXR1cm4gZC5tb2RhbCh7cm9vdDp4LG1hbmlmZXN0OmEuUGhvKCJVc2VyRG9jIiksZGF0YTpiLHdpZHRoOjM4MCxib3VuZDowLG5vc2U6ImxlZnQiLGNzczoieGdyYXkiLGFsaWduOiJsZWZ0OjEwMCU7dG9wOi01N3B4OyIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixlc2M6ITB9KX0pLmFsd2F5cyhmdW5jdGlvbigpe2QucmVtb3ZlQ2xhc3MoImhvdmVyIil9KX0uZGVib3VuY2UoNSkpLHgub24oImNsaWNrLm15IiwnaW5wdXRbbmFtZT0iZG9jcy1zZWxlY3Rpb24iXScsZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpLnZhbCgpOyQodGhpcykuaXMoIjpjaGVja2VkIik/Yi5zZWxlY3Rpb249Yi5zZWxlY3Rpb24uYWRkKHgpLnVuaXF1ZSgpOmIuc2VsZWN0aW9uLnJlbW92ZSh4KSxhLm15LmNoZWNrKCIjdmlldy1hY3Rpb25zIil9KSwiX3VzZXJzIj09Yi5wYXRoWzBdJiZhLlBobygiQ2ZnIikubGlzdENvbHMuaW5kZXhPZigic2VjdXJpdHkiKT4tMSYmeC50aGVuKGZ1bmN0aW9uKCl7YS5HZXRTZWMoKX0pLHgudGhlbihmdW5jdGlvbigpe2EubmljZVNjcm9sbCh4LmZpbmQoIiN2aWV3LW5hbWUiKS5kYXRhKCkuc2VsZWN0Mi5kcm9wZG93bi5maW5kKCIuc2VsZWN0Mi1yZXN1bHRzIikse2JvdW5jZXNjcm9sbDohMCxjdXJzb3Jjb2xvcjoiIzIzNCIsY3Vyc29yb3BhY2l0eW1pbjouMSxjdXJzb3JvcGFjaXR5bWF4Oi40LHJhaWxwYWRkaW5nOntyaWdodDoxfX0pfSksYS5CdXN5KCEwKSxhLlBobygiUG9rZUJ1Y2tldCIpKGIucGF0aFswXSkudGhlbihmdW5jdGlvbigpe3JldHVybiBhLkdldFZpZXdzKCExLCEwKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHg9Yi5wYXRoWzJdLGM9Yi5wYXRoWzNdO2lmKCJfZmluZCI9PWIucGF0aFsxXSl7dmFyIGQ9eCsiIjtiLm1hbmdvLnF1ZXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09ZH0pfHwoZD0iRGVmYXVsdCBxdWVyeSIpLGIudmlldz0iX2ZpbmTvv70iK2QsYi5lZGl0b3I9ITB9ZWxzZSBpZigiX2luZGV4Ij09Yi5wYXRoWzFdKSJEZWZhdWx0IGluZGV4IiE9Yi5wYXRoWzJdfHxiLnBhdGhbM10/Yi52aWV3PSJfaWR4L3sxfe+/vXsyfSIuYXNzaWduKGIucGF0aFsyXSxiLnBhdGhbM10pOmIudmlldz0iX2lkeC/vv71EZWZhdWx0IGluZGV4IixiLmVkaXRvcj0hMDtlbHNlIGlmKC9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3xfY2hhbmdlcykkLy50ZXN0KGIucGF0aFsxXSkpYi52aWV3PWIucGF0aFsxXTtlbHNlIGlmKHgmJmMpe3ZhciBlPSJfZGVzaWduLyIreCsi77+9IitjO2Iudmlldz1hLlZpW2VdP2U6IiJ9fSl9KS50aGVuKGZ1bmN0aW9uKCl7YS5yZXN0b3JlVmlld1N0YXRlKCkseC5odG1sKGEuSFRNTC5hc3NpZ24oYykuYXNzaWduKHtfdXB3aWR0aDpiLnZpZXc/Inc0MiI6IncwIn0pKX0pLmZhaWwoZnVuY3Rpb24oKXthLkJ1c3koITEpfSl9LEY6e0RlZmF1bHRWaWV3czpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmxhbmcsYj14LlBobyhbIkNvdWNoIiwidmVyIl0pLGM9W3tpZDoiIix0ZXh0OmEuT1BUX0FMTERPQ1Msb3JkZXI6Il9fMSJ9LHtpZDoiX2Rlc2lnbl9kb2NzIix0ZXh0OmEuT1BUX0RET0NTLG9yZGVyOiJfXzIifSx7aWQ6Il9jaGFuZ2VzIix0ZXh0OmEuT1BUX0NIQU5HRVMsb3JkZXI6Il9fMyJ9XTtpZihiPj0iMDAyLjAwMCImJihiPj0iMDAyLjAwMS4wMDIiJiZjLnB1c2goe2lkOiJfbG9jYWxfZG9jcyIsdGV4dDphLk9QVF9MT0NBTCxvcmRlcjoiX180In0pLCJfbm9kZS9fbG9jYWwvX25vZGVzIiE9eC5kYXRhLnBhdGhbMF0pKXt2YXIgZD17dGV4dDphLk9QVF9NUVJJRVMsY2hpbGRyZW46W10sb3JkZXI6In4yIn07eC5kYXRhLm1hbmdvLnF1ZXJ5LmZvckVhY2goZnVuY3Rpb24oeCl7ZC5jaGlsZHJlbi5wdXNoKHtpZDoiX2ZpbmTvv70iK3gubmFtZSx0ZXh0OiLCoMKgIit4Lm5hbWUsb3JkZXI6KCJEZWZhdWx0IHF1ZXJ5Ij09eC5uYW1lPyJfMSAiOiJfMiAiKSt4Lm5hbWV9KX0pLGQuY2hpbGRyZW49ZC5jaGlsZHJlbi5zb3J0QnkoIm9yZGVyIiksYy5wdXNoKGQpO3ZhciBlPXt0ZXh0OmEuT1BUX01JTkRJQ0VTLGNoaWxkcmVuOlt7aWQ6Il9pZHgv77+9Iit4LkRlZmF1bHRNYW5nb0lkeC5uYW1lLHRleHQ6IsKgwqAiK3guRGVmYXVsdE1hbmdvSWR4Lm5hbWUsb3JkZXI6Il8wIn1dLG9yZGVyOiJ+MyJ9O2MucHVzaChlKX1yZXR1cm4gY30sVE1hcDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlBobygiajJoIiksYz14LlQuZGVzaWduX2RvY3MsZD14LlQudmlldyxlPXguVC52aWV3X25vaWQsZj14LlQudmlld19maWx0ZXIsZz14LlQudmlld19maWx0ZXJfbm9pZDtyZXR1cm4gZnVuY3Rpb24obCxtKXt2YXIgbixvPXguUm93cy5sZW5ndGgscD0iX2lkeCI9PWEudmlldy50byg0KSxxPSIiPT14LmRhdGEucmVkdWNlLHI9Il9kZXNpZ25fZG9jcyI9PWEudmlldyxzPSJfY2hhbmdlcyI9PWEudmlldyx0PW88MTIwP2g6bzwyNTA/aTpqLHU9bzw0MD8yZTM6bzw2MD81MDA6bzwxMjA/MzAwOjIwMCx2PW88NDA/NTpvPDYwPzQ6bzwxMjA/MzpvPDI1MD8zOjIsdz0hYS52aWV3JiZhLmluY2wubGVuZ3RoP2wuZG9jOnA/bC5rZXk6bC52YWx1ZSx5PWIodyx1LFsiX2lkIiwiaWQiLCJuYW1lIl0sdik7cmV0dXJuIDE9PXkubGVuZ3RoJiYic2hvcnQiPT15WzBdWzBdJiYoInsiPT15WzBdWzFdWzBdP3lbMF1bMV09Ik9iamVjdCAiK3lbMF1bMV06IlsiPT15WzBdWzFdWzBdJiYoeVswXVsxXT0iQXJyYXkgIit5WzBdWzFdKSksbj15Lm1hcCh0KS5qb2luKCIiKSx4LmZTZWFyY2gmJmEuc2VhcmNoLmxlbmd0aD4yPyhxP2Y6ZykuYXNzaWduKHtfaWR4OmwuX2lkeCxfaWR4c2FmZTpsLl9pZHhzYWZlLGNoZWNrZWQ6bC5fY2hlY2tlZCxpZDpsLmtleSxpZHNhZmVmaWx0ZXI6KHA/bC5pZDprKGwua2V5KSkucmVwbGFjZSh4LmZTZWFyY2gsIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJ2aWV3LWZvdW5kIj4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+IiksaWRzYWZlOihwP2wuaWQ6ayhsLmtleSkpLmVzY2FwZUhUTUwoKSxkb2NpZHNhZmU6bnVsbCE9bC5pZD8obC5pZCsiIikuZXNjYXBlSFRNTCgpOiIiLGhyZWY6bC5pZD94LnAydShbYS5wYXRoWzBdLGwuaWRdKS5qb2luKCIvIikuZXNjYXBlSFRNTCgpOiIiLG5vZG9jOmwuaWQ/IiI6ImhpZGUiLGtleTpsLmtleSxodG1sOm4sY3NzOm4ubGVuZ3RoPjI1MD8iZnM5NSBsaDE0MCBwdDMgcGIzIjoibGgxNDAgcHQyIHBiMiJ9KToocnx8cz9jOnE/ZDplKS5hc3NpZ24oe19pZHg6bC5faWR4LF9pZHhzYWZlOmwuX2lkeHNhZmUsX2RlbDpsLl9kZWwsY2hlY2tlZDpsLl9jaGVja2VkLGlkOmwua2V5LGlkc2FmZToocnx8cz9sLmtleTpwP2wuaWQ6ayhsLmtleSkpLmVzY2FwZUhUTUwoKSxkb2NpZHNhZmU6bnVsbCE9bC5pZD8obC5pZCsiIikuZXNjYXBlSFRNTCgpOiIiLGhyZWY6bC5pZD94LnAydShsLl9kZWw/W2EucGF0aFswXSxsLmlkLCJfIitsLl9kZWxdOlthLnBhdGhbMF0sbC5pZF0pLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCk6IiIsbm9kb2M6bC5pZD8iIjoiaGlkZSIsa2V5Omwua2V5LGh0bWw6bixjc3M6bi5sZW5ndGg+MjUwPyJmczk1IGxoMTQwIHB0MyBwYjMiOiJsaDE0MCBwdDIgcGIyIn0pfTtmdW5jdGlvbiBoKHgpe3JldHVybiB4WzBdPyc8c3BhbiBjbGFzcz0ianZhbC0nK3hbMF0rJyI+Jyt4WzFdKyI8L3NwYW4+Ijp4WzFdfWZ1bmN0aW9uIGkoeCl7cmV0dXJuImJyYWNrZXQiIT14WzBdJiYia2V5IiE9eFswXT94WzFdOic8c3BhbiBjbGFzcz0ianZhbC0nK3hbMF0rJyI+Jyt4WzFdKyI8L3NwYW4+In1mdW5jdGlvbiBqKHgpe3JldHVybiB4WzFdfWZ1bmN0aW9uIGsoeCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHgsbnVsbCwxKS5yZXBsYWNlKC9eXHMrL2dtLCIgIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgve1xzL2csInsiKS5yZXBsYWNlKC9cc30vZywifSIpLnJlcGxhY2UoL1xbXHMvZywiWyIpLnJlcGxhY2UoL1xzXF0vZywiXSIpfX0sVERvY3M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9eC5ULmRvY3MsYz14LlQudXNlcl9kb2NzO3JldHVybiJfdXNlcnMiIT1hLnBhdGhbMF0/ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYi5hc3NpZ24oZCh4LGEpKX06ZnVuY3Rpb24oeCxhKXt2YXIgZT1kKHgsYSk7cmV0dXJuIm9yZy5jb3VjaGRiLnVzZXI6IiE9eC5rZXkuc3Vic3RyKDAsMTcpP2IuYXNzaWduKGUpOmMuYXNzaWduKGUpfTtmdW5jdGlvbiBkKGIsYyl7cmV0dXJue2lkOmIua2V5LGlkc2FmZTooYi5rZXkrIiIpLmVzY2FwZUhUTUwoKSxjaGVja2VkOmIuX2NoZWNrZWQsaHJlZjpiLmlkP3gucDJ1KGIuX2RlbD9bYS5wYXRoWzBdLGIuaWQsIl8iK2IuX2RlbF06W2EucGF0aFswXSxiLmlkXSkuam9pbigiLyIpLmVzY2FwZUhUTUwoKToiIixyZXY6KChiLnZhbHVlfHx7fSkucmV2KyIiKS5lc2NhcGVIVE1MKCl9fX0sVE1hbmdvOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSh4LmRhdGEseC5QaG8oImoyaCIpKSxiPXguVC5tYW5nbzt4LlQudmlld19maWx0ZXI7cmV0dXJuIGZ1bmN0aW9uKGYsZyl7dmFyIGgsaT14LlJvd3MubGVuZ3RoLGo9aTwxMjA/YzppPDI1MD9kOmUsaz1pPDQwPzJlMzppPDYwPzUwMDppPDEyMD8zMDA6MjAwLGw9aTw0MD81Omk8NjA/NDppPDEyMD8zOmk8MjUwPzM6MixtPWYudmFsdWUsbj1hKG0sayxbIl9pZCIsImlkIiwibmFtZSJdLGwpO3JldHVybiAxPT1uLmxlbmd0aCYmInNob3J0Ij09blswXVswXSYmKCJ7Ij09blswXVsxXVswXT9uWzBdWzFdPSJPYmplY3QgIituWzBdWzFdOiJbIj09blswXVsxXVswXSYmKG5bMF1bMV09IkFycmF5ICIrblswXVsxXSkpLGg9bi5tYXAoaikuam9pbigiIiksYi5hc3NpZ24oe19pZHg6Zi5faWR4LF9pZHhzYWZlOmYuX2lkeHNhZmUsaWQ6Zi5rZXkrIiIsaWRzYWZlOmYua2V5KyIiLGhyZWY6IiIsbm9kb2M6IiIsa2V5OmcrIiIsaHRtbDpoLGNzczpoLmxlbmd0aD4yNTA/ImZzOTUgbGgxNDAgcHQzIHBiMyI6ImxoMTQwIHB0MiBwYjIifSl9O2Z1bmN0aW9uIGMoeCl7cmV0dXJuIHhbMF0/JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4iOnhbMV19ZnVuY3Rpb24gZCh4KXtyZXR1cm4iYnJhY2tldCIhPXhbMF0mJiJrZXkiIT14WzBdP3hbMV06JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4ifWZ1bmN0aW9uIGUoeCl7cmV0dXJuIHhbMV19fSxnZXRSZWZTdGFyOmZ1bmN0aW9uIHgoYSxiKXt2YXIgYyxkLGU9InN0cmluZyI9PXR5cGVvZiBiP2Iuc3BsaXQoIi4iKTpPYmplY3QuaXNBcnJheShiKT9iOltdLGY9YSxnPTA7Zm9yKGc9MDtnPGUubGVuZ3RoJiZudWxsPT1kJiZudWxsIT1mO2crKykiKiI9PShjPWVbZ10pJiZPYmplY3QuaXNBcnJheShmKT8oZD1lLnNsaWNlKGcrMSksZj1mLnJlZHVjZShmdW5jdGlvbihhLGIpe2lmKG51bGw9PWIpcmV0dXJuIGE7dmFyIGM9eChiLGQpO3JldHVybiBudWxsIT1jJiZhLnB1c2goYyksYX0sW10pKTpmPWZbY107cmV0dXJuIGZ9LGZvcm1hdFNlbDI6ZnVuY3Rpb24oeCl7aWYoeC5pZCl7dmFyIGE9eC5pZC5zcGxpdCgi77+9Iik7cmV0dXJuIGFbMV0/KGFbMF0uc3BsaXQoIi8iKS5sYXN0KCkudHJ1bmNhdGUoKDMwLWFbMV0ubGVuZ3RoKS5jbGFtcCgxMCwzMCksIm1pZGRsZSIsIi4uLiIpKyLigIkv4oCJIithWzFdKS5lc2NhcGVIVE1MKCk6eC50ZXh0fXJldHVybiB4LnRleHR9LGJ1aWxkR3JpZENvbHVtbnM6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhO2EuZ3JpZD94LkNvbHVtbnM9YS5jb2x1bW5zLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6IngiK051bWJlci5yYW5kb20oMCwxZTYpLGNvbHM6eH19KTp4LkNvbHVtbnM9W119LGRlcml2ZUdyaWRDb2x1bW5zOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oeD0oK3h8fDUpLmNsYW1wKDEsOCksY3cubGliLmEybygiaWQga2V5IHJldiAuaWQgLmtleSAucmV2IC5kb2MgLl9pZCAuX3JldiAudmFsdWUgLmRvYy5faWQgLmRvYy5fcmV2IOKAjCIuc3BsaXQoIiAiKSkpLGM9YS5GaWVsZHMuc29ydEJ5KGZ1bmN0aW9uKHgpe3ZhciBhPXgudmFsdWUsYj14LmN0cjtyZXR1cm4idGl0bGUiIT1hJiYibmFtZSIhPWF8fChiKj0xLjUpLCJ0eXBlIj09YSYmKGIqPTEuMiksYn0sITApLmZpbHRlcih4PT4hYlt4LnZhbHVlXSkudG8oeCkubWFwKHg9PngudmFsdWUpO3JldHVybiBjLmxlbmd0aHx8KGM9WyIudmFsdWUiXSksY30sc3Rhc2hWaWV3U3RhdGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9Y3cubGliLnNkYm0oW2EucGF0aFswXSxhLnZpZXddKSxjPXtyZWR1Y2U6YS5yZWR1Y2UsZ3JpZDphLmdyaWQsY29sdW1uczphLmNvbHVtbnMuc2xpY2UoMCksZWRpdG9yOmEuZWRpdG9yLGluY2w6YS5pbmNsfTtyZXR1cm4geC5McygiVmlld1N0YXRlLiIrYixjKSx7a2V5OmIsc3RhdGU6Y319LHJlc3RvcmVWaWV3U3RhdGU6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9eHx8Yy52aWV3LGU9Y3cubGliLnNkYm0oW2MucGF0aFswXSxkXSksZj1iLkxzKCJWaWV3U3RhdGUuIitlKXx8e307aWYoIWYuY29sdW1uc3x8IWYuY29sdW1ucy5sZW5ndGh8fGYuY29sdW1ucysiIj09Ii52YWx1ZSIpe3ZhciBnPSJfZmluZCI9PWQudG8oNSksaD0iX2lkeCI9PWQudG8oNCksaT0iX2Rlc2lnbl9kb2NzIj09ZCxqPSJfY2hhbmdlcyI9PWQ7Zi5jb2x1bW5zPWQ/aT9bInZpZXdzIC9rZXlzIiwiZmlsdGVycyAva2V5cyIsImxpc3RzIC9rZXlzIiwic2l6ZXMuZmlsZSAvYnl0ZXMiXTpqP1sicmV2IiwiZGVsZXRlZCJdOmg/WyIua2V5Il06KGcsWyIudmFsdWUiXSk6Zi5pbmNsKyIiP1siLmRvYyJdOlsicmV2Il19cmV0dXJuIHh8fCQuZXh0ZW5kKGMsT2JqZWN0LnNlbGVjdChmLFsicmVkdWNlIiwiZ3JpZCIsImNvbHVtbnMiLCJlZGl0b3IiLCJpbmNsIl0pKSxhJiZiLm15LnJlZHJhdygpLGZ9LGNsb3NlQXV0b2NvbXBsZXRlczpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EubXkmJmEubXkuZmluZCgiLnVpLWF1dG9jb21wbGV0ZS1pbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpO2EuaXMoeCl8fChhLmF1dG9jb21wbGV0ZSgiY2xvc2UiKSxhLm5leHQoKS50cmlnZ2VyKCJjaGVjay5teSIpKX0pfSxidWlsZEZpZWxkc0xpc3Q6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9eC5SZXN1bHRbMF18fHtyb3dzOltdfSxjPShPYmplY3QuaXNBcnJheSxPYmplY3QuaXNPYmplY3QpLGQ9e307aWYoeC5GaWVsZHMubGVuZ3RoKXJldHVybiB4LkZpZWxkcztiLmRvY3M/Yi5kb2NzLm1hcCh4PT4oe3ZhbHVlOnh9KSkuZm9yRWFjaChmLmZpbGwoMCwiIikpOmIucmVzdWx0cz9iLnJlc3VsdHMubWFwKHg9Pih7dmFsdWU6eH0pKS5mb3JFYWNoKGYuZmlsbCgwLCIiKSk6KGIucm93c3x8W10pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gT2JqZWN0LnNlbGVjdCh4LGEudmlldyYmIl9kZXNpZ25fZG9jcyIhPWEudmlldz9bImlkIiwia2V5IiwidmFsdWUiXTpbImlkIiwidmFsdWUiLCJkb2MiXSl9KS5mb3JFYWNoKGYuZmlsbCgwLCIiKSk7dmFyIGU9T2JqZWN0LmtleXMoZCk7cmV0dXJuIGUubGVuZ3RoPjEwMCYmKGU9ZS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3BsaXQoIi4iKS5sZW5ndGg8KCIuIj09eFswXT81OjQpfSkpLGUubGVuZ3RoPjEwMCYmKGU9ZS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3BsaXQoIi4iKS5sZW5ndGg8KCIuIj09eFswXT80OjMpfSkpLHguRmllbGRzPVt7bGFiZWw6IsOXIERlbGV0ZSBjb2x1bW4iLHZhbHVlOiLigIwiLGN0cjowfV0uY29uY2F0KGUuc29ydChmdW5jdGlvbih4LGEpe3JldHVybiIuIiE9YVswXSYmIi4iIT14WzBdfHxhWzBdPT14WzBdP2E+eD8tMTphPHg/MTowOiIuIj09YVswXT8tMToxfSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybntsYWJlbDp4LnRydW5jYXRlKDUwLCJtaWRkbGUiLCLCoOKApsKgIiksdmFsdWU6eCxjdHI6ZFt4XX19KSk7ZnVuY3Rpb24gZih4LGEsYil7eD4zfHxjKGIpJiZPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGMubGVuZ3RoJiYiX2F0dGFjaG1lbnRzIiE9Yyl7dmFyIGU9YltjXSxnPSQudHlwZShlKSxoPSgiLnZhbHVlIj09YT8iIjphKyIuIikrYztkW2hdPShkW2hdfHwwKSsoeD4xPy4xOjEpLCJvYmplY3QiPT1nP2YoeCsxLGgsZSk6ImFycmF5Ij09ZyYmZS5sZW5ndGgmJmYoeCsxLGErIi4iK2MrIi4wIixlWzBdKX19KX19LFRHcmlkTWFwOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXguUGhvKCJqMmgiKSxjPXguVC5ncmlkX3ZpZXcsZD14LlQuZ3JpZF9kb2MsZT14LlQuZ3JpZF9tYW5nbyxmPXguVC5ncmlkX2NvbHVtbjtyZXR1cm4gZnVuY3Rpb24oayxsKXt2YXIgbT14LlJvd3MubGVuZ3RoLG49Il9pZHgiPT1hLnZpZXcudG8oNCksbz0iX2ZpbmQiPT1hLnZpZXcudG8oNSkscD0hbyYmIiI9PXguZGF0YS5yZWR1Y2UscT0iX2Rlc2lnbl9kb2NzIj09YS52aWV3LHI9Il9jaGFuZ2VzIj09YS52aWV3LHM9aCx0PW08NDA/MmUzOm08NjA/MTUwMDptPDEyMD8xZTM6NzAwLHU9bTwxMjA/Njo1LHY9eC5GLkdyaWRDYXN0LHc9IWEudmlld3x8cXx8cnx8bz9rLmtleTpuP2suaWQ6aShrLmtleSk7cmV0dXJuKCFhLnZpZXd8fHF8fHI/ZDpwP2M6ZSkuYXNzaWduKHtfaWR4OmsuX2lkeCxfaWR4c2FmZTprLl9pZHhzYWZlLGNoZWNrZWQ6ay5fY2hlY2tlZCxpZDprLmtleSxpZHNhZmU6dy5lc2NhcGVIVE1MKCksaWRzYWZlZmlsdGVyOnguZlNlYXJjaD93LnJlcGxhY2UoeC5mU2VhcmNoLCLvv7EkMe+/sCIpLmVzY2FwZUhUTUwoKS5yZXBsYWNlKCLvv7EiLCc8c3BhbiBjbGFzcz0idmlldy1mb3VuZCI+JykucmVwbGFjZSgi77+wIiwiPC9zcGFuPiIpOncuZXNjYXBlSFRNTCgpLGRvY2lkc2FmZTpudWxsIT1rLmlkPyhrLmlkKyIiKS5lc2NhcGVIVE1MKCk6IiIsaHJlZjprLmlkP3gucDJ1KGsuX2RlbD9bYS5wYXRoWzBdLGsuaWQsIl8iK2suX2RlbF06W2EucGF0aFswXSxrLmlkXSkuam9pbigiLyIpLmVzY2FwZUhUTUwoKToiIixub2RvYzprLmlkPyIiOiJoaWRlIixrZXk6ay5rZXksY29sdW1uczprLmNvbHMubWFwKGZ1bmN0aW9uKHgsYSl7dmFyIGM9IiIsZD14LnZhbCxlPXR5cGVvZiB4LnZhbDtyZXR1cm4gdlt4LmNhc3RdJiYoZT10eXBlb2YoZD12W3guY2FzdF0oZCxlKSkpLGM9Im9iamVjdCI9PWU/aihpKGQpKToibnVtYmVyIj09ZT9nKGQpOiJzdHJpbmciPT1lP2Q/aihkKS5yZXBsYWNlKC9eW1xyXG5dKy8sIiIpLnJlcGxhY2UoL1tcclxuXSsvZywiPGJyPiIpOiciIic6YihkLHQsW10sdSkubWFwKHMpLmpvaW4oIiIpLGYuYXNzaWduKHtpZHg6bCsiXyIrYSx2YWw6Yyxjc3M6W2MubGVuZ3RoPjEwMD8iZnM5NSBsaDE0MCBwdDEgIjoiIiwib2JqZWN0Ij09ZT8iYXNqc29uICI6IiIsImdjb2x2IGdjb2x3Iit4LnNwYW4rIiAiLHguY3NzfHwiIl0uam9pbigiIil9KX0pLmpvaW4oIiIpfSl9O2Z1bmN0aW9uIGcoeCl7cmV0dXJuJzxzcGFuIGNsYXNzPSJqdmFsLW51bWJlcicrKC9cZHsxMH0vLnRlc3QoeCk/IiBmczk1IjoiIikrJyI+Jyt4KyI8L3NwYW4+In1mdW5jdGlvbiBoKHgpe3JldHVybiB4WzBdPyc8c3BhbiBjbGFzcz0ianZhbC0nK3hbMF0rJyI+Jyt4WzFdKyI8L3NwYW4+Ijp4WzFdfWZ1bmN0aW9uIGkoeCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHgsbnVsbCwxKS5yZXBsYWNlKC9eXHMrL2dtLCIgIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgve1xzL2csInsiKS5yZXBsYWNlKC9cc30vZywifSIpLnJlcGxhY2UoL1xbXHMvZywiWyIpLnJlcGxhY2UoL1xzXF0vZywiXSIpfWZ1bmN0aW9uIGooYSl7dmFyIGI9MjU2Kzc2OC8oKHguQ29sdW1uc3x8W10pLmxlbmd0aHx8MSl8MDtyZXR1cm4gYS5sZW5ndGg+MS4xKmI/YS50byhiKS5lc2NhcGVIVE1MKCkrJzxzcGFuIGNsYXNzPSJyZWQxIHBsMyBib2xkIj7igKY8L3NwYW4+JzphLmVzY2FwZUhUTUwoKX19LEdyaWRDYXN0OntkdDpmdW5jdGlvbih4LGEpe2lmKCF4fHwhL14obnVtYmVyfHN0cmluZykkLy50ZXN0KGEpKXJldHVybiB4O3ZhciBiPURhdGUuY3JlYXRlKCt4fHx4KTtyZXR1cm4gYi5pc1ZhbGlkKCk/Yi5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0sIHtIfTp7bW19Ontzc30iKTp4fSxieXRlczpmdW5jdGlvbih4KXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHg/eDp4LmJ5dGVzKDIpLnJlcGxhY2UoLyhcRFxEPykkLywi4oCK4oCKJDEiKX0saGV4OmZ1bmN0aW9uKHgsYSl7aWYoIm51bWJlciI9PWEmJk1hdGguZmxvb3IoeCk9PT14KXt2YXIgYj14LnRvU3RyaW5nKDE2KSxjPSItIj09YlswXT8iLSI6IiIsZD1iLnN1YnN0cihjPzE6MCkudG9VcHBlckNhc2UoKSxlPWQubGVuZ3RoO3JldHVybiBjKyhkPWQucGFkTGVmdChlPD00PzQ6ZTw4Pzg6MCwiMCIpKX1yZXR1cm4ic3RyaW5nIj09YT91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoeCkpLmNvZGVzKCkubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuKHg8MTY/IjAiOiIiKSt4LnRvU3RyaW5nKDE2KSsoYSU0PT0zPyIgIjoiwqAiKX0pLmpvaW4oIiIpOnh9LGxpc3Q6ZnVuY3Rpb24oeCxhKXtyZXR1cm4ib2JqZWN0IiE9YT94Ok9iamVjdC52YWx1ZXMoeCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiJvYmplY3QiIT10eXBlb2YgeD8oeCsiIikucmVwbGFjZSgvW1xyXG5dKy9nLCIgIik6SlNPTi5zdHJpbmdpZnkoeCl9KS5qb2luKCJcbiIpfSxrZXlzOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIm9iamVjdCIhPWE/eDpPYmplY3Qua2V5cyh4KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGFjZSgvW1xyXG5dKy9nLCIgIil9KS5qb2luKCJcbiIpfSxrdjpmdW5jdGlvbih4LGEpe3JldHVybiJvYmplY3QiIT1hP3g6T2JqZWN0LmtleXMoeCkubWFwKGZ1bmN0aW9uKGEpe3ZhciBiPXhbYV07cmV0dXJuIGEucmVwbGFjZSgvW1xyXG5dKy9nLCIgIikrIjrCoCIrKCJvYmplY3QiIT10eXBlb2YgYj8oYisiIikucmVwbGFjZSgvW1xyXG5dKy9nLCIgIik6SlNPTi5zdHJpbmdpZnkoYikpfSkuam9pbigiXG4iKX19LEdldFNlYzpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LlBobygiQWxsIiksYj1PYmplY3Qua2V5cyhhKSxjPVtdLGQ9RGF0ZS5ub3coKTtyZXR1cm4gYi5mb3JFYWNoKGZ1bmN0aW9uKHgpeyghYVt4XS5zZWN1cml0eXx8YVt4XS5zZWN1cml0eS5zdGFtcCszNmU1PGQpJiZjLnB1c2goeCl9KSxjPWMudG8oMTAwKSx4LlBobygiJGRicyIpLkJhdGNoSW5mby5jYWxsKHtQaG86eC5QaG8sUmVxOnguUmVxLEJhdGNoOnt9LEFsbDphLFJlbGlzdDpmdW5jdGlvbigpe30sUmVsaXN0Tm93OmZ1bmN0aW9uKCl7fX0sYyx4LlBobygiQ2ZnIikuYmF0Y2hEYkluZm9EZWxheSxbInNlY3VyaXR5Il0pfSxEZWxEb2NzOmZ1bmN0aW9uKCl7dmFyIHg9JC5EZWZlcnJlZCgpLGE9dGhpcyxiPWEuZGF0YSxjPWIuc2VsZWN0aW9uLnNsaWNlKDApLnVuaXF1ZSgpLGQ9Yy5sZW5ndGgsZT0oYS5mUm93c3x8YS5Sb3dzKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguaWR9KS51bmlxdWUoKS5pbnRlcnNlY3QoYykubGVuZ3RoLGY9YS5sYW5nLGc9YS5QaG8oIkNvdWNoIikudmVyLGg9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX0saT1mdW5jdGlvbih4LGEpe3JldHVybiBoKCh4KyIiKS50cnVuY2F0ZShhfHwxNSwicmlnaHQiLCLigKYiKSl9LGo9JzxkaXYgY2xhc3M9Im1iMTAiPnsxfTwvZGl2Picsaz0nPGxhYmVsIGNsYXNzPSJ4Z3JheSI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJyZXRhaW4iIHZhbHVlPSJ7MX0iIGNsYXNzPSJtcjYiPiB7Mn08L2xhYmVsPic7cmV0dXJuICQubXkubW9kYWwoe3dpZHRoOjM4MCxtYW5pZmVzdDokLmV4dGVuZCghMCx7fSxhLlBobygiQ29uZmlybSIpLHt1aTp7J2lucHV0W25hbWU9InJldGFpbiJdJzoicmV0YWluIn0sc3R5bGU6eyIgbGFiZWwiOiJtYXJnaW46MDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOmluaGVyaXQ7In19KSxkYXRhOntyZXRhaW46Im5vIix0ZXh0OlsnPGRpdiBjbGFzcz0iZnMxMzAgcmVkIG1iNSI+JytmLlRYVF9ERUxfVElUTEUrIjwvZGl2PiIsai5hc3NpZ24oZi5UWFRfREVMX1dBUk4oZCxpKGIucGF0aFswXSwyNSkpKSxlIT1kP2ouYXNzaWduKGYuVFhUX0RFTF9XQVJOX0hJRERFTihkLGUpKToiIixqLmFzc2lnbihrLmFzc2lnbigibm8iLGYuTEJMX0RFTF9BTEwpK2suYXNzaWduKCJyZXRhaW4iLGYuTEJMX0RFTF9SRVRBSU4pKyhnPj0iMDAyLjAwMy4iP2suYXNzaWduKCJwdXJnZSIsZi5MQkxfREVMX1BVUkdFKToiIikpXS5qb2luKCIiKSx5ZXNjc3M6InJlZCIseWVzOmYuQlROX0RFTF9TVEFSVCxubzpmLkJUTl9DQU5DRUwsY2FuY2VsOiIifSxjc3M6ImxoMTYwIHhncmF5IHAyMCBwYjI1Iixmb2N1czoiI2J0bi1ubyIsZXNjOiEwLGVudGVyOiExfSkudGhlbihmdW5jdGlvbihhKXtpZigieWVzIiE9YS5jbWQpcmV0dXJuIHgucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIik7bChhLnJldGFpbisiIil9KS5mYWlsKGZ1bmN0aW9uKCl7eC5yZWplY3QoOTk5LCJDYW5jZWxsZWQiLCJDYW5jZWxsZWQiKX0pLHgucHJvbWlzZSgpO2Z1bmN0aW9uIGwoZCl7dmFyIGU9Yy51bmlxdWUoKS5zb3J0KCksZz17dXJsOltiLnBhdGhbMF0sIl9idWxrX2RvY3MiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOiJbXSJ9O2lmKCJubyI9PWR8fCJyZXRhaW4iPT1kKWcuaGVhZGVycz17IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn07ZWxzZXtpZigicHVyZ2UiIT1kKXJldHVybiB4LnJlamVjdCg5OTksIlVua25vd24gbW9kZSIsIkNhbmNlbGxlZCIpLHZvaWQgMDtnLnVybFsxXT0iX3B1cmdlIn1yZXR1cm4gaihlLCJyZXRhaW4iIT1kKS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiBnLmRhdGE9SlNPTi5zdHJpbmdpZnkoInB1cmdlIiE9ZD97ZG9jczp4fTp4LnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2EuX2lkXT1bYS5fcmV2XSx4fSx7fSkpLGEuUmVxKGcpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIGsoeCxlKX0pLmZhaWwobCl9KTtmdW5jdGlvbiBqKHgsYyl7dmFyIGQ9e3VybDpbYi5wYXRoWzBdLCJfYWxsX2RvY3MiLHtpbmNsdWRlX2RvY3M6IWN9XSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KHtrZXlzOnh9KX07cmV0dXJuIGEuUmVxKGQpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIHgucm93cy5tYXAoZnVuY3Rpb24oeCl7dmFyIGE9Yz97X2lkOnguaWQsX3Jldjp4LnZhbHVlLnJldn06eC5kb2M7cmV0dXJuIGEuX2RlbGV0ZWQ9ITAsYX0pfSl9ZnVuY3Rpb24gayhjLGUpe3ZhciBnLGg9ZS5sZW5ndGg7Zz0icHVyZ2UiIT1kP2MuY291bnQoZnVuY3Rpb24oeCl7cmV0dXJuIXguZXJyb3J9KTpPYmplY3Quc2l6ZShjLnB1cmdlZCksY3cubGliLm5vdGUoZi5NU0dfREVMX09LKGgsZyxpKGIucGF0aFswXSksZCksaD09Zz8ib2siOiJlcnJvciIsNWUzKSxoPmcmJmNvbnNvbGUubG9nKGMpLCQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6Yi5wYXRoWzBdLGNtZDoiZGVsZXRlIixkb2NzOmV9KSwkLm15LnJhZGlvKCJkYmxpc3QiLFtiLnBhdGhbMF1dKSxiLnNlbGVjdGlvbi5sZW5ndGg9MCxlLmZvckVhY2goZnVuY3Rpb24oeCl7Il8iPT14WzBdJiZhLkRkb2NzW3hdJiZkZWxldGUgYS5EZG9jc1t4XX0pLHgucmVzb2x2ZShjKX1mdW5jdGlvbiBsKGEsYixjKXtyZXR1cm4gY3cubGliLm5vdGUoZi5NU0dfREVMX0ZBSUwuYXNzaWduKGEsaChiKSksImVycm9yIikseC5yZWplY3QoYSxiLGMpfX19LEVkU3dpdGNoOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YTtpZigvXihfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8KSQvLnRlc3QoYS52aWV3KSlyZXR1cm4geC5FZGl0b3IubGVuZ3RoPTAsdm9pZCAwO2lmKCJfZCI9PWEudmlldy50bygyKSl7dmFyIGI9eC5WaVthLnZpZXddO2lmKCEoZj14LlZpRWRzKVthLnZpZXddfHxmW2Eudmlld10ucmV2IT1iLnJldil7dmFyIGM9YS52aWV3LnNwbGl0KCLvv70iKTtmW2Eudmlld109e2Rkb2M6Y1swXSxuYW1lOmNbMV0scmV2OmIucmV2LHR5cGU6InZpZXciLG1vZGU6WyJtYXAiXSxsYW5ndWFnZToianMiPT1iLnR5cGU/ImphdmFzY3JpcHQiOmIudHlwZSxtYXA6Yi52aWV3Lm1hcHx8IiIscmVkdWNlOmIudmlldy5yZWR1Y2V8fCIiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOkRhdGUubm93KCl9fXguRWRpdG9yWzBdIT1mW2Eudmlld10mJih4LkVkaXRvclswXT1mW2Eudmlld10pfWVsc2UgaWYoIl9maW5kIj09YS52aWV3LnRvKDUpKXt2YXIgZD1hLm1hbmdvLGU9YS52aWV3LnNwbGl0KCLvv70iKVsxXSsiIjsoYj1kLnF1ZXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09ZX0pKXx8KGU9IkRlZmF1bHQgcXVlcnkiLGI9ZC5xdWVyeS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PWV9KSksZC5hY3RpdmU9ZSxiLnN0YW1wfHwoYi5zdGFtcD1EYXRlLm5vdygpLGIudGV4dD14LkRlZmF1bHRNYW5nb1FyeS50ZXh0KSx4LkVkaXRvclswXSE9YiYmKHguRWRpdG9yPVtiXSxiLmpzb249eC5qc2V2YWwoYi50ZXh0KSxPYmplY3QuaXNPYmplY3QoYi5qc29uKXx8KGIuanNvbj17fSkpfWVsc2UgaWYoIl9pZHgiPT1hLnZpZXcudG8oNCkpe3ZhciBmO2I9eC5WaVthLnZpZXddfHxPYmplY3QuY2xvbmUoeC5EZWZhdWx0TWFuZ29JZHgsITApO2lmKCEoZj14LlZpRWRzKVthLnZpZXddfHxmW2Eudmlld10ucmV2IT1iLnJldil7Yz1hLnZpZXcuc3BsaXQoIu+/vSIpO2ZbYS52aWV3XT17ZGRvYzoiX2Rlc2lnbi8iK2NbMF0uc3BsaXQoIi8iKVsxXSxuYW1lOmNbMV0scmV2OmIucmV2LHR5cGU6ImluZGV4Iixtb2RlOlsiamF2YXNjcmlwdCJdLHRleHQ6Yi52aWV3P2Iudmlldy5zb3VyY2U6Yi50ZXh0LGpzb246e30sZXJyb3JzOltdLHN0YW1wOkRhdGUubm93KCl9fXguRWRpdG9yWzBdIT1mW2Eudmlld10mJih4LkVkaXRvclswXT1mW2Eudmlld10pfXJldHVybiBhLmdyaWQmJngubXkucmVzdHlsZSgpLHguRWRpdG9yWzBdfSxHZXREZG9jc0luZm86ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9KGIuZGF0YSxhfHxbXSksZD14Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4gT2JqZWN0LmlzT2JqZWN0KHgpPyQuZXh0ZW5kKCEwLHt9LE9iamVjdC5yZWplY3QoeCxbImluY2x1ZGVfZG9jcyJdKSk6eH0pLGU9e30sZj0kLkRlZmVycmVkKCk7cmV0dXJuIGIuUmVxKHt1cmw6ZCxoZWFkZXJzOnsiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LG1ldGhvZDpjLmxlbmd0aD8icG9zdCI6ImdldCIsZGF0YTpjLmxlbmd0aD9KU09OLnN0cmluZ2lmeSh7a2V5czpjfSk6bnVsbH0pLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGM9W107KGEucm93c3x8W10pLmZvckVhY2goZnVuY3Rpb24oYSl7Yy5wdXNoKGIuUmVxKHt1cmw6W3hbMF0sYS5pZCwiX2luZm8iXSxoZWFkZXJzOnsiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkpfSksUS5hbGxTZXR0bGVkKGMpLnRoZW4oZnVuY3Rpb24oeCl7KHh8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2lmKCJmdWxmaWxsZWQiPT14LnN0YXRlKXt2YXIgYT14LnZhbHVlLnZpZXdfaW5kZXgsYj1PYmplY3Quc2VsZWN0KGEuc2l6ZXN8fHthY3RpdmU6YS5kYXRhX3NpemV8fDAsZmlsZTphLmRpc2tfc2l6ZXx8MH0sWyJhY3RpdmUiLCJmaWxlIl0pO2VbIl9kZXNpZ24vIit4LnZhbHVlLm5hbWVdPXt2YWx1ZTp7c2l6ZXM6Yn0sdmlld19pbmRleDphfX19KSxmLnJlc29sdmUoZSl9KX0pLGYucHJvbWlzZSgpfX0sR2V0Vmlld3M6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1jLmRhdGEsZT1PYmplY3QuaXNTdHJpbmcsZj1PYmplY3QuaXNPYmplY3QsZz1PYmplY3QuaXNBcnJheSxoPShPYmplY3QuaXNGdW5jdGlvbixkLnBhdGhbMF0pLGk9W2gsIl9hbGxfZG9jcyIse3N0YXJ0a2V5OiJfZGVzaWduIixlbmRrZXk6Il9kZXNpZ24wIixpbmNsdWRlX2RvY3M6ITB9XSxqPWMuRGVmYXVsdFZpZXdzKCksaz1jLmxhbmcuT1BUX01JTkRJQ0VTLGw9ai5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4LnRleHQ9PWt9KSxtPXt9LG49JC5EZWZlcnJlZCgpO3JldHVybiBiPyhqLnJlbW92ZShsKSxjLlZpZXdzLmZvckVhY2goZnVuY3Rpb24oeCl7IXguY2hpbGRyZW58fCJfIiE9eC50ZXh0WzBdJiYiTWFuZ28iIT14LnRleHQudG8oNSl8fGoucHVzaCh4KX0pLGMuVmlld3M9ai5zb3J0QnkoZnVuY3Rpb24oeCl7cmV0dXJuKHgub3JkZXJ8fCIiKSt4LnRleHR9KSx4JiYoYy5zZWxlY3QyKGMubXkuZmluZCgiI3ZpZXctbmFtZSIpLHtkYXRhOmosbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTIsZm9ybWF0U2VsZWN0aW9uOmMuZm9ybWF0U2VsMn0pLGMubXkucmVjYWxjKCIjdmlldy1uYW1lIikpLG4ucmVzb2x2ZSgpLGopOihjLlJlcShpKS50aGVuKGZ1bmN0aW9uKHgpe3ZhciBhPXgucm93c3x8W107aWYoIWEubGVuZ3RoJiYiX2ZpbmQiIT1kLnZpZXcudG8oNSkpcmV0dXJuIGQudmlldz0iIix2b2lkIDA7YS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPXguZG9jO2lmKGEpe3ZhciBiPWEudmlld3N8fHt9LGQ9YS5fcmV2LGk9T2JqZWN0LmtleXMoYiksaz17dGV4dDp4LmlkLGNoaWxkcmVuOltdfSxuPWUoYS5sYW5ndWFnZSk/YS5sYW5ndWFnZToiamF2YXNjcmlwdCI7Yy5EZG9jc1thLl9pZF0mJmMuRGRvY3NbYS5faWRdLl9yZXY9PWEuX3Jldnx8KGMuRGRvY3NbYS5faWRdPSQuZXh0ZW5kKCEwLHt9LGEpKSxpLmxlbmd0aCYmKGkuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYz1iW2FdO2lmKCJxdWVyeSIhPW4pe2lmKCFmKGMpfHwhZShjLm1hcCl8fCFjLm1hcClyZXR1cm47dmFyIGk9e2lkOnI9eC5pZCsi77+9IithLHRleHQ6IsKgwqAiK2F9LGo9e3BhdGg6W2gsIl9kZXNpZ24iLHguaWQuc3BsaXQoIi8iKVsxXSwiX3ZpZXciLGFdLHJldjpkLHJlZHVjZTohMSx0eXBlOiJqcyJ9OyJqYXZhc2NyaXB0IiE9biYmKGoudHlwZT1uLGkudGV4dCs9IsKgKCIrbi50aXRsZWl6ZSgpKyIpIiksai52aWV3PU9iamVjdC5jbG9uZShjLCEwKTt2YXIgbz1jLnJlZHVjZSxwPSIiLHE9IiI7ZShvKSYmbyYmKCJfIj09b1swXSYmKHA9by5mcm9tKDEpKSwocT0ic3VtIj09cD8izqMiOiJjb3VudCI9PXA/IiMiOiJtaW4iPT1wPyLiirsiOiJtYXgiPT1wPyLiirwiOiJzdGF0cyI9PXA/Ij0iOiJzdW1zcXIiPT1wPyLOo8KyIjoicmVkdWNlIikmJihpLnRleHQrPSLigInih5LigIkiK3Esai5yZWR1Y2U9ITApKSxrLmNoaWxkcmVuLnB1c2goaSksbVtyXT1qfWVsc2UgaWYobCYmInF1ZXJ5Ij09bil7aWYoIShmKGMpJiZmKGMubWFwKSYmZihjLm1hcC5maWVsZHMpJiZmKGMub3B0aW9ucykmJmYoYy5vcHRpb25zLmRlZikmJmcoYy5vcHRpb25zLmRlZi5maWVsZHMpKSlyZXR1cm47dmFyIHIscz14LmlkLnNwbGl0KCIvIilbMV07aT17aWQ6cj0iX2lkeC8iK3MrIu+/vSIrYSx0ZXh0OiLCoMKgIithKyLCoGluwqBfZC8iK3Msb3JkZXI6Il8xIn07KGo9e3BhdGg6W2gsIl9kZXNpZ24iLHguaWQuc3BsaXQoIi8iKVsxXSwiX3ZpZXciLGFdLHJldjpkLHJlZHVjZTohMSx0eXBlOiIifSkudmlldz1PYmplY3QuY2xvbmUoYywhMCk7dmFyIHQ9Yy5vcHRpb25zLmRlZjtqLnZpZXcuc291cmNlPVsiKHsiLCJcblx0aW5kZXg6IHsiLCJcblx0XHRmaWVsZHM6IFt7MX1dIix0LnBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yPyIsXG5cdFx0cGFydGlhbF9maWx0ZXJfc2VsZWN0b3I6ICIrSlNPTi5zdHJpbmdpZnkodC5wYXJ0aWFsX2ZpbHRlcl9zZWxlY3RvcixudWxsLCJcdCIpLmxpbmVzKCkubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuKGE/Ilx0XHQiOiIiKSt4fSkuam9pbigiXG4iKToiIiwnXG5cdH0sXG5cdG5hbWU6IHsyfSxcblx0ZGRvYzogezN9LFxuXHR0eXBlOiAianNvbiInLCJcbn0pIl0uam9pbigiIikuYXNzaWduKHQuZmllbGRzLm1hcChKU09OLnN0cmluZ2lmeSkuam9pbigiLCAiKSxKU09OLnN0cmluZ2lmeShhKSxKU09OLnN0cmluZ2lmeSh4LmlkLnNwbGl0KCIvIikuZnJvbSgxKS5qb2luKCIvIikpKSxtW3JdPWosbC5jaGlsZHJlbi5wdXNoKGkpfX0pLGsuY2hpbGRyZW4ubGVuZ3RoJiYoay5jaGlsZHJlbj1rLmNoaWxkcmVuLnNvcnRCeSgidGV4dCIpLGoucHVzaChrKSkpfX0pLGo9ai5zb3J0QnkoZnVuY3Rpb24oeCl7cmV0dXJuKHgub3JkZXJ8fCIiKSt4LnRleHR9KSxsJiYobC5jaGlsZHJlbj1sLmNoaWxkcmVuLnNvcnRCeShmdW5jdGlvbih4KXtyZXR1cm4oeC5vcmRlcnx8IiIpK3gudGV4dH0pKX0pLmZhaWwoZnVuY3Rpb24oeCxiLGQpe2F8fGN3LmxpYi5ub3RlKGMubGFuZy5FUlJfR0VUVklFV1MuYXNzaWduKGgpLCJlcnJvciIpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5WaWV3cz1qLGMuVmk9bSwhZC52aWV3fHxtW2Qudmlld118fCJfZmluZCI9PWQudmlldy50byg1KXx8L15fKGRlc2lnbl9kb2NzfGxvY2FsX2RvY3N8Y2hhbmdlcykkLy50ZXN0KGQudmlldyl8fChkLnZpZXc9IiIpLHgmJihjLnNlbGVjdDIoYy5teS5maW5kKCIjdmlldy1uYW1lIikse2RhdGE6aixtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMixmb3JtYXRTZWxlY3Rpb246Yy5mb3JtYXRTZWwyfSksYy5teS5yZWNhbGMoIiN2aWV3LW5hbWUiKSksbi5yZXNvbHZlKGopfSksbi5wcm9taXNlKCkpfSxHZXRWaWV3OmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz1PYmplY3QuaXNBcnJheSxkPU9iamVjdC5pc09iamVjdCxlPUpTT04uc3RyaW5naWZ5LGY9dGhpcyxnPWYuZGF0YSxoPWcucGF0aFswXSxpPXtsaW1pdDoxMDAsdXBkYXRlX3NlcTohMH0saj1nLnZpZXcsaz1mLlZpW2cudmlld10/Zi5WaVtnLnZpZXddLnBhdGguc2xpY2UoMCk6W2gsZy52aWV3KyIifHwiX2FsbF9kb2NzIl0sbD0iZ2V0IixtPXt9LG49Il9maW5kIj09ai50byg1KSxvPSJfaWR4Ij09ai50byg0KSxwPSJfZGVzaWduX2RvY3MiPT1qLHE9Il9jaGFuZ2VzIj09aixyPWMoYSkmJiFuP2Euc2xpY2UoMCk6W10scz0hIXIubGVuZ3RoLHQ9bnVsbCx1PSgkLkRlZmVycmVkKCksW10pLHY9e30sdz17fSx5PSExLHo9KGYuSW5kZXgsIiIpLEE9MCxCPTAsQz1bIiNncmlkLXByb3h5IiwiI3N0YXRlLXByb3h5IiwiI3ZpZXctcmVzdWx0cy1ncmlkIiwiI3ZpZXctZ3JpZC1jb2xzIl0sRD0iY2hlY2siLEU9aztpZihwJiYoZi5QaG8oWyJDb3VjaCIsInZlciJdKTwiMDAyLjAwMCImJihrWzFdPSJfYWxsX2RvY3MiLGlbZy5yZXZlcnNlPyJlbmRrZXkiOiJzdGFydGtleSJdPSJfZGVzaWduLyIsaVtnLnJldmVyc2U/InN0YXJ0a2V5IjoiZW5ka2V5Il09Il9kZXNpZ24wIiksaS5pbmNsdWRlX2RvY3M9ITApLG4pcz0hMSxrWzFdPSJfZmluZCIsbD0icG9zdCIsbT1mLkVkaXRvclswXXx8Zy5tYW5nby5xdWVyeS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PWouZnJvbSg2KX0pfHxnLm1hbmdvLnF1ZXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIkRlZmF1bHQgcXVlcnkiPT14Lm5hbWV9KSx0PWUoJC5leHRlbmQoITAse30se2xpbWl0Ok1hdGguYWJzKCtnLmxpbWl0KSsxLHNraXA6L15fXGQrJC8udGVzdChnLnN0YXJ0KT8rZy5zdGFydC5mcm9tKDEpOjB9LG0uanNvbikpLGk9e307ZWxzZXtpZihnLnJldmVyc2VecSYmIXMmJihpLmRlc2NlbmRpbmc9ITApLGkubGltaXQ9TWF0aC5hYnMoK2cubGltaXQpKzEsZy5zdGFydClpZigvXl9cZCskLy50ZXN0KGcuc3RhcnQpKWkuc2tpcD0rZy5zdGFydC5zdWJzdHIoMSl8fDA7ZWxzZXt0cnl7Yj1KU09OLnBhcnNlKGcuc3RhcnQpfWNhdGNoKHgpe31pLnN0YXJ0a2V5PXZvaWQgMCE9PWI/YjpnLnN0YXJ0fSFqJiYoZy5pbmNsfHxbXSkuaW5kZXhPZigiZG9jcyIpPi0xJiYoaS5pbmNsdWRlX2RvY3M9ITApLHEmJihpLnN0eWxlPSJhbGxfZG9jcyIsZGVsZXRlIGkudXBkYXRlX3NlcSxpLnN0YXJ0a2V5JiYoaS5zaW5jZT1pLnN0YXJ0a2V5LGRlbGV0ZSBpLnN0YXJ0a2V5KSksIW8mJmYuVmlbal0mJmYuVmlbal0ucmVkdWNlPyh6PWcucmVkdWNlKyIiKT8iMCI9PXo/aS5ncm91cD0hMToiOTkiPT16P2kuZ3JvdXA9ITA6aS5ncm91cF9sZXZlbD0rejppLnJlZHVjZT0hMTpvJiYoaS5yZWR1Y2U9ITEsIl9pZHgv77+9Ij09ai50byg2KSYmKGtbMV09Il9hbGxfZG9jcyIpKSxpLnJlZHVjZSYmKHM9ITEpLHMmJihsPSJwb3N0Iix0PWUoe2tleXM6ci5zb3J0KCkudW5pcXVlKCl9KSxkZWxldGUgaS5zdGFydGtleSxkZWxldGUgaS5lbmRrZXksZGVsZXRlIGkuc2tpcCl9dmFyIEY9RS5jb25jYXQoW2ldKSxHPWUoRik7cmV0dXJuIGcuZ3JpZCYmZi5jbG9zZUF1dG9jb21wbGV0ZXMoKSxmLlBlbmRpbmdbR118fChNLmRlYm91bmNlKDEwKSghMCksZy5kdXI9MCxnLnNpemU9MCxBPURhdGUubm93KCksdS5wdXNoKGYuUmVxKHt1cmw6RixoZWFkZXJzOnsiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LG1ldGhvZDpsLGRhdGE6dCxkYXRhVHlwZToidGV4dCJ9KS50aGVuKGZ1bmN0aW9uKHgpe0I9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHgpKS5sZW5ndGgsdz1KU09OLnBhcnNlKHgpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7dz17Y29kZTp4LGVycjphLG1zZzpifX0pKSxwJiZ1LnB1c2goZi5HZXREZG9jc0luZm8oRixzP3I6bnVsbCkudGhlbihmdW5jdGlvbih4KXt2PXh9KSksZi5QZW5kaW5nW0ddPVEuYWxsU2V0dGxlZCh1KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGYuUGVuZGluZ1tHXT1udWxsLGcuZHVyPURhdGUubm93KCktQSxnLnNpemU9QiwiZnVsZmlsbGVkIiE9YVswXS5zdGF0ZSlyZXR1cm4gZi5SZXN1bHRbMF09e3VybDpHLGNvZGU6dy5jb2RlLHN0YW1wOkRhdGUubm93KCkrIiIsb2s6ITEsZXJyb3I6dy5lcnIsbXNnOncubXNnfSxmLlJvd3M9W10sZi5FcnJvcj0iRXJyb3IgIit3LmNvZGUrIjogIit3LmVycix4JiZIKCksZi5SZXN1bHRbMF07Zi5FcnJvcj0iIixmLkZpZWxkcz1bXSxmLlJlc3VsdFswXT1PYmplY3QuY2xvbmUodywhMCksbj9MKHcpOm8/Syh3KTpxP0oodyk6SSh3KSx4JiYoZi5teS5tb2RhbCgiI2J0bi12aWV3Y29kZSIsITApLEgoKSl9LmRlYm91bmNlKDApKS50aGVuKGZ1bmN0aW9uKCl7TS5kZWJvdW5jZSg1MCkoITEpfSkpLGYuUGVuZGluZ1tHXTtmdW5jdGlvbiBIKCl7W0NdLmZsYXR0ZW4oKS5mb3JFYWNoKHg9PmYubXlbRF0oeCkpfWZ1bmN0aW9uIEkoeCl7eC5zdGFtcD1EYXRlLm5vdygpKyIiLHgudXJsPUUrIiIsZy50b3RhbF9yb3dzPXgudG90YWxfcm93c3x8LTEsZy5vZmZzZXQ9eC5vZmZzZXR8fC0xLGcuc2VxPSh4LnVwZGF0ZV9zZXF8fERhdGUubm93KCkpKyIiO3ZhciBhPVsiZmlsdGVycyIsInZpZXdzIiwibGlzdHMiLCJzaG93cyIsImFwaSIsImhvb2tzIiwicmV3cml0ZXMiLCJzaXplcyJdO2lmKHgucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7cCYmaih4KSx4Ll92anNvbj1lKE9iamVjdC5yZWplY3QoeCxwP1sia2V5IiwiZG9jIl06WyJrZXkiXSksbnVsbCwiICAiKS5mcm9tKDIpLHguX2tqc29uPSd7XG4gICJrZXkiOiAnK2UoeC5rZXkpKyIsXG4iLHguX2lkeD1lKFt4LmtleSx4LmlkLGFdKSx4Ll9pZHhzYWZlPXguX2lkeC5lc2NhcGVIVE1MKCl9KSxmLlJvd3M9cz9pKHgucm93c3x8W10sZi5Sb3dzKTooeC5yb3dzfHxbXSkuc2xpY2UoMCksZy5saW5rPWYuUmVxKEYsITApLGcuZ3JpZCl7Zi5idWlsZEZpZWxkc0xpc3QoKTt2YXIgYj1nLmNvbHVtbnMrIiI7Ii52YWx1ZSIhPWImJihnLnZpZXd8fCJyZXYiIT1iJiYiLmRvYyIhPWIpfHwoZy5jb2x1bW5zPWYuZGVyaXZlR3JpZENvbHVtbnMoKSl9cmV0dXJuIHg7ZnVuY3Rpb24gaCh4KXtyZXR1cm4iezF9IExPQywgezJ9IGNoYXJzIi5hc3NpZ24oeC5saW5lcygpLmxlbmd0aCx4Lmxlbmd0aCl9ZnVuY3Rpb24gaSh4LGEpe3ZhciBiPXgucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbZShhLmtleSkrIlxuIitlKGEuaWQpXT1hLHh9LHt9KTtyZXR1cm4gYS5tYXAoZnVuY3Rpb24oeCl7dmFyIGE9YltlKHgua2V5KSsiXG4iK2UoeC5pZCldO3JldHVybiB2b2lkIDAhPT1hP2E6eH0pfWZ1bmN0aW9uIGooeCl7dmFyIGI9eC52YWx1ZS5yZXY7eC5kZXNjPSJMaXN0IG9mIGRkb2MgZnVuY3Rpb25zIix4Lmxhbmd1YWdlPXguZG9jLmxhbmd1YWdlfHwiamF2YXNjcmlwdCIseC52YWx1ZT0kLmV4dGVuZCh7cmV2OmJ9LE9iamVjdC5zZWxlY3QoeC5kb2MsYSkpLGEuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj14LnZhbHVlW2FdOyJzdHJpbmciPT10eXBlb2YgYj94LnZhbHVlW2FdPWgoYik6YyhiKT94LnZhbHVlW2FdPSJBcnJheVt7MX1dIi5hc3NpZ24oYi5sZW5ndGgpOmQoYikmJiJ2aWV3cyI9PWE/eC52YWx1ZVthXT1PYmplY3Qua2V5cyh4LnZhbHVlW2FdKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXt2YXIgZT14LnZhbHVlW2FdW2NdLGY9ZS5tYXAsZz1lLnJlZHVjZTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGY/KGJbY109Ik1hcDogIitoKGYpLCJzdHJpbmciPT10eXBlb2YgZyYmKGJbY10rPSI7IFJlZHVjZTogIisoIl8iPT1nWzBdP2c6aChnKSkpKToicXVlcnkiPT14Lmxhbmd1YWdlJiZkKGYpJiYoYltjXT0iTWFuZ28gaW5kZXgiLGQoZi5maWVsZHMpJiYoYltjXSs9IiwgZmllbGRzOiAiK09iamVjdC5rZXlzKGYuZmllbGRzKS5qb2luKCIsICIpKSksYn0se30pOmQoYikmJih4LnZhbHVlW2FdPU9iamVjdC5rZXlzKHgudmFsdWVbYV0pLnJlZHVjZShmdW5jdGlvbihiLGMpe3ZhciBkPXgudmFsdWVbYV1bY107cmV0dXJuInN0cmluZyI9PXR5cGVvZiBkJiYoYltjXT1oKGQpKSxifSx7fSkpfSksJC5leHRlbmQoITAseCx2W3guaWRdfHx7fSl9fWZ1bmN0aW9uIEooeCl7eC5zdGFtcD1EYXRlLm5vdygpKyIiLHgudXJsPUUrIiIsZy50b3RhbF9yb3dzPS0xLGcub2Zmc2V0PXgub2Zmc2V0fHwtMSxnLnNlcT14Lmxhc3Rfc2VxKyIiO3ZhciBhPXgucmVzdWx0cy5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm57aWQ6eC5pZCxrZXk6eC5pZCx2YWx1ZTokLmV4dGVuZCh4LmRlbGV0ZWQ/e2RlbGV0ZWQ6ITB9Ont9LHtzZXE6KHguc2VxKyIiKS5zcGxpdCgiLSIpWzBdLHJldjp4LmNoYW5nZXNbMF0ucmV2fSksX3Zqc29uOmUoeCxudWxsLCIgICIpLmZyb20oMSksX2tqc29uOiJ7IixfaWR4OmUoeC5pZCksX2lkeHNhZmU6ZSh4LmlkKS5lc2NhcGVIVE1MKCksX2RlbDp4LmRlbGV0ZWQ/eC5jaGFuZ2VzWzBdLnJldjoiIn19KTtyZXR1cm4gZi5Sb3dzPShhfHxbXSkuc2xpY2UoMCksZy5saW5rPWYuUmVxKEYsITApLHh9ZnVuY3Rpb24gSyh4KXtyZXR1cm4geC5zdGFtcD1EYXRlLm5vdygpKyIiLHgudXJsPUUrIiIsZy50b3RhbF9yb3dzPXgudG90YWxfcm93c3x8LTEsZy5vZmZzZXQ9eC5vZmZzZXR8fC0xLGcuc2VxPSh4LnVwZGF0ZV9zZXF8fERhdGUubm93KCkpKyIiLHgucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7eC5fdmpzb249ZSh4LG51bGwsIiAgIikuZnJvbSgyKSx4Ll9ranNvbj0ie1xuIix4Ll9pZHg9ZShbeC5rZXkseC5pZCxhXSkseC5faWR4c2FmZT14Ll9pZHguZXNjYXBlSFRNTCgpfSksZi5Sb3dzPSh4LnJvd3N8fFtdKS5zbGljZSgwKSxnLmxpbms9Zi5SZXEoRiwhMCkseH1mdW5jdGlvbiBMKHgpe3guc3RhbXA9RGF0ZS5ub3coKSsiIix4LnVybD1FKyIiLGcudG90YWxfcm93cz0tMSxnLm9mZnNldD1tLnNraXB8fC0xLGcuc2VxPSh4LnVwZGF0ZV9zZXF8fERhdGUubm93KCkpKyIiO3ZhciBhPS9eX1xkKyQvLnRlc3QoZy5zdGFydCk/K2cuc3RhcnQuZnJvbSgxKTowLGI9eC5kb2NzLm1hcChmdW5jdGlvbih4LGIpe3JldHVybntpZDphK2IrIiIsa2V5OmErYisiIix2YWx1ZTp4LF92anNvbjplKHgsbnVsbCwiICAiKS5mcm9tKDEpLF9ranNvbjoieyIsX2lkeDplKFthK2JdKSxfaWR4c2FmZTplKFthK2JdKS5lc2NhcGVIVE1MKCl9fSk7cmV0dXJuIGYuUm93cz0oYnx8W10pLnNsaWNlKDApLGcubGluaz1mLlJlcShGLCEwKSx4fWZ1bmN0aW9uIE0oeCl7KHgmJiF5fHwheCkmJihmLm15JiZmLm15LnJvb3QoKS50b2dnbGVDbGFzcygiYXBwLWJ1c3kiLHgpLCQubXkucmFkaW8oImFwcGJ1c3kiLHtpZDpnLnRhYmlkLGJ1c3k6eH0pKSx5PSEwfX0sR3JpZENvbHVtbjpmdW5jdGlvbigpe3ZhciB4PXRoaXM7cmV0dXJue1JUOnguUlQsaWQ6ImN3LlBob3Rvbi4kdmlldy5HcmlkQ29sdW1uIixkYXRhOntyYXc6IiIsY29sczoiLmlkIixjYXN0OiIifSx1aTp7Ii5ncmlkLWNvbHVtbi1wdHIiOntkZWxheToxMCxpbml0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7ZnVuY3Rpb24gYyhhLGIpe3gubXkuZmluZCgiLmdyaWQtY29sdW1uLXB0ciIpLnRyaWdnZXIoImJsdXIiKX1mdW5jdGlvbiBkKGEsYyl7aWYoIWEudGVybSlyZXR1cm4gYyhiLkZpZWxkcygpKTt2YXIgZD1iLkZpZWxkcygpO2lmKC9cc1wvW2EtejAtOV17MCw2fSQvLnRlc3QoYS50ZXJtKSl7dmFyIGU9YS50ZXJtLnJlcGxhY2UoL1xzXC9bYS16MC05XXswLDZ9JC8sIiIpLGY9eC5SVCgpLkYuR3JpZENhc3Q7YyhbZFswXV0uY29uY2F0KE9iamVjdC5rZXlzKGYpLm1hcChmdW5jdGlvbih4KXtyZXR1cm57bGFiZWw6Ii8iK3gsdmFsdWU6ZSsiIC8iK3h9fSkpKX1lbHNle3ZhciBnPW5ldyBSZWdFeHAoUmVnRXhwLmVzY2FwZShhLnRlcm0pLCJpIik7YyhbZFswXV0uY29uY2F0KGQuc2xpY2UoMSkuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiBnLnRlc3QoeC52YWx1ZSl9KSkpfX1hLmF1dG9jb21wbGV0ZSh7ZGVsYXk6MCxzb3VyY2U6dGhpcy5GaWVsZHMoKSxzb3VyY2U6ZCxzZWxlY3Q6Yy5kZWJvdW5jZSgyMCksYXBwZW5kVG86eC5teS5yb290KCksbWluTGVuZ3RoOjB9KSxhLm9uKCJrZXl1cC5teSIsZnVuY3Rpb24oeCl7dmFyIGI9eC5rZXlDb2RlOzEzIT1iJiYxMCE9Ynx8YS5ibHVyKCl9KX0sYmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcztyZXR1cm4gbnVsbCE9YSYmKC9cc1wvW2Etel1bYS16MC05XXswLDV9JC8udGVzdChhKT94LmNhc3Q9YS5tYXRjaCgvXHNcL1thLXpdW2EtejAtOV17MCw1fSQvKVswXS5zdWJzdHIoMik6eC5jYXN0PSIiLHguY29scz1hLGIuYXR0cigidGl0bGUiLHguY29scy5sZW5ndGg+OD94LmNvbHM6IiIpKSwi4oCMIj09eC5jb2xzJiZmdW5jdGlvbigpe2MubXkucmVtb3ZlKCl9LmRlbGF5KDEwKSx4LmNvbHN9fSwiI2J0bi1mb2xkIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLm15LmZpbmQoIi5ncmlkLWNvbHVtbi1wdHIiKSxkPWMuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGQ/Yy5hdXRvY29tcGxldGUoImNsb3NlIik6KGMuYXV0b2NvbXBsZXRlKCJzZWFyY2giLCIiKSxiLlJUKCJjbG9zZUF1dG9jb21wbGV0ZXMiKShjKSksZD0hZCksIjxkaXY+ezF9PC9kaXY+Ii5hc3NpZ24oZD8i4payIjoi4pa8Iil9LGV2ZW50czoiY2xpY2subXkiLHdhdGNoOlsiLmdyaWQtY29sdW1uLXB0ciJdfX0sRmllbGRzOmZ1bmN0aW9uKCl7dmFyIGE9eC5idWlsZEZpZWxkc0xpc3QoKTtyZXR1cm4geC5Db2x1bW5zLmxlbmd0aDwyJiYoYT1hLnNsaWNlKDEpKSxhfSxkaWU6ZnVuY3Rpb24oeCl7eC5maW5kKCIuZ3JpZC1jb2x1bW4tcHRyIikuYXV0b2NvbXBsZXRlKCJkZXN0cm95Iil9fX0sVDp7dmlld19ub2lkOic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMiPntpZHNhZmV9PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciBwc2V1ZG9saW5rIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWhvdmVyYnRuIHtub2RvY30gcHNldWRvbGluayI+PHNwYW4gY2xhc3M9ImZpLXBhZ2UtZmlsbGVkIGJ0bi1vcGVuLWRvYyIgZGF0YS11cmw9IntocmVmfSI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+Jyx2aWV3Oic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB2YXQgdGFjIG1sNCBtcjEgbXQ4IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2RvY2lkc2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMgdzM1cC0zMCBwbDAiPntpZHNhZmV9PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciBwc2V1ZG9saW5rIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWhvdmVyYnRuIHtub2RvY30gcHNldWRvbGluayI+PHNwYW4gY2xhc3M9ImZpLXBhZ2UtZmlsbGVkIGJ0bi1vcGVuLWRvYyIgZGF0YS11cmw9IntocmVmfSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctZWRpdHVzZXIgdmlldy1ob3ZlcmJ0biBwc2V1ZG9saW5rIiBkYXRhLXVzZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktdG9yc28gZnMxMTAiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2Picsdmlld19maWx0ZXJfbm9pZDonPGRpdiBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48ZGl2IGNsYXNzPSJjb2wtaWRzIj57aWRzYWZlZmlsdGVyfTxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1ob3ZlcmJ0biB7bm9kb2N9IHBzZXVkb2xpbmsiPjxzcGFuIGNsYXNzPSJmaS1wYWdlLWZpbGxlZCBidG4tb3Blbi1kb2MiIGRhdGEtdXJsPSJ7aHJlZn0iPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2Picsdmlld19maWx0ZXI6JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHZhdCB0YWMgbWw0IG1yMSBtdDgiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7ZG9jaWRzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyB3MzVwLTMwIHBsMCI+e2lkc2FmZWZpbHRlcn08ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctaG92ZXJidG4ge25vZG9jfSBwc2V1ZG9saW5rIj48c3BhbiBjbGFzcz0iZmktcGFnZS1maWxsZWQgYnRuLW9wZW4tZG9jIiBkYXRhLXVybD0ie2hyZWZ9Ij48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLG1hbmdvOic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMiPntpZHNhZmV9PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLGRvY3M6JzxkaXYgY2xhc3M9IncxMDBwIHZpZXctcm93Ij48aW5wdXQgY2xhc3M9IncyMyBkaWIgdGFjIG1sNCBtcjEgbXQ4IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2lkc2FmZX0iPjxkaXYgY2xhc3M9InczOHAtMzAgcHIxMiBwdDMiPjxzcGFuIGNsYXNzPSJidG4tb3Blbi1kb2MgcHNldWRvbGluayB0ZG4iIGRhdGEtdXJsPSJ7aHJlZn0iPntpZHNhZmV9PC9zcGFuPjxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciBvNTAgYmx1ZSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctZWRpdHVzZXIgdmlldy1ob3ZlcmJ0biIgZGF0YS11c2VyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLXRvcnNvIG81MCBmczExMCBibHVlIj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idzYycCBwcjEwIHBsMyBwdDMiPntyZXZ9PC9kaXY+PC9kaXY+JyxkZXNpZ25fZG9jczonPGRpdiBjbGFzcz0idzEwMHAgdmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48aW5wdXQgY2xhc3M9IncyMyBkaWIgdmF0IHRhYyBtbDQgbXIxIG10OCIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9IntpZHNhZmV9Ij48ZGl2IGNsYXNzPSJjb2wtaWRzIHczNXAtMzAgcHIyMCBwbDAiPjxzcGFuIGNsYXNzPSJidG4tb3Blbi1kb2MgcHNldWRvbGluayB0ZG4iIGRhdGEtdXJsPSJ7aHJlZn0iPntpZHNhZmV9PC9zcGFuPjxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciBvNTAgYmx1ZSI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+Jyx1c2VyX2RvY3M6JzxkaXYgY2xhc3M9IncxMDBwIHZpZXctcm93IHB0MyI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHRhYyBtbDQgbXIxIHB0MiIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9IntpZHNhZmV9Ij48ZGl2IGNsYXNzPSJ3MzhwLTMwIHByMjAiPjxzcGFuIGNsYXNzPSJidG4tb3Blbi1kb2MgcHNldWRvbGluayB0ZG4iIGRhdGEtdXJsPSJ7aHJlZn0iPntpZHNhZmV9PC9zcGFuPjxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciBvNTAgYmx1ZSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctZWRpdHVzZXIgdmlldy1ob3ZlcmJ0biIgZGF0YS11c2VyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLXRvcnNvIG81MCBmczExMCBibHVlIj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idzYycCBwcjEwIj57cmV2fTwvZGl2PjwvZGl2PicsZ3JpZF92aWV3Oic8dHIgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PHRkIGNsYXNzPSJnY29sdzAiPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB2YXQgdGFjIG1sNCBtcjEgbXQ5IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2RvY2lkc2FmZX0iPjxkaXYgY2xhc3M9IncxMDBwLTMwIGRpYiI+e2lkc2FmZWZpbHRlcn08ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctaG92ZXJidG4ge25vZG9jfSBwc2V1ZG9saW5rIj48c3BhbiBjbGFzcz0iZmktcGFnZS1maWxsZWQgYnRuLW9wZW4tZG9jIiBkYXRhLXVybD0ie2hyZWZ9Ij48L3NwYW4+PC9kaXY+PC9kaXY+PC90ZD57Y29sdW1uc308L3RyPicsZ3JpZF9kb2M6Jzx0ciBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48dGQgY2xhc3M9Imdjb2x3MCI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHZhdCB0YWMgbWw0IG1yMSBtdDkiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7ZG9jaWRzYWZlfSI+PGRpdiBjbGFzcz0idzEwMHAtMzAgZGliIj48c3BhbiBjbGFzcz0iYnRuLW9wZW4tZG9jIHBzZXVkb2xpbmsgdGRuIiBkYXRhLXVybD0ie2hyZWZ9Ij57aWRzYWZlZmlsdGVyfTwvc3Bhbj48ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctZWRpdHVzZXIgdmlldy1ob3ZlcmJ0biIgZGF0YS11c2VyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLXRvcnNvIG81MCBmczExMCBibHVlIj48L3NwYW4+PC9kaXY+PC9kaXY+PC90ZD57Y29sdW1uc308L3RyPicsZ3JpZF9tYW5nbzonPHRyIGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjx0ZCBjbGFzcz0iZ2NvbHcwIj48ZGl2IGNsYXNzPSJ3MTAwcCBkaWIgcGw3IHB0NCI+e2lkc2FmZWZpbHRlcn08L2Rpdj48L3RkPntjb2x1bW5zfTwvdHI+JyxncmlkX2NvbHVtbjonPHRkIGNsYXNzPSJncmlkLWNvbHVtbiBjcCB7Y3NzfSIgZGF0YS1pZHg9IntpZHh9Ij48ZGl2Pnt2YWx9PC9kaXY+PC90ZD4nfX0sJGRiczp7aWQ6ImN3LlBob3Rvbi4kZGJzIixsYW5nOnt9LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4ibGlzdCJ9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIkRCIGxpc3QgYW5kIHRhc2tzIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5sZW5ndGg/bnVsbDp7dGl0bGU6IkRCIGxpc3QgYW5kIHRhc2tzIn19LGluaGVyaXQ6WyJCeXRlcyIsIk1ldHJpYyJdLGRhdGE6e3JldmVyc2U6ITEsc2VhcmNoOiIiLHNlbGVjdGlvbjpbXSxvc2VsOnt9LHN0YXJzOnt9LGdyb3Vwczp7fSx0YXNrOntzZWFyY2g6IiIsZmlsdGVyOlsiIl0sbGlzdDpbXSxzZWxlY3Rpb246W10sZm9sZDp7fSxzZXE6MH0sc2VydmljZTp7dmVyc2lvbjoiIn19LEFsbDp7fSxHcm91cHM6e30sTGlzdDpbXSxCYXRjaDp7fSxUYXNrczpbXSxBbGxUYXNrczp7fSxNb2RhbHM6e30sVGFza0xvb3A6ITEsVGFza0xvb3BJbnRlcnZhbDohMSxMYXN0U3luYzp7c3JjOnt9LHRndDp7fX0sdWk6eyIjZGItc2VhcmNoIjp7ZGVsYXk6MTUwLGJpbmQ6InNlYXJjaCIsY3NzOnsibXktc2VhcmNoIjovXi57Mix9JC99fSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHguc2VsZWN0aW9uLmxlbmd0aD90aGlzLkJhdGNoSW5mbyh4LnNlbGVjdGlvbix0aGlzLlBobygiQ2ZnIikuYmF0Y2hEYkluZm9EZWxheSk6dGhpcy5HZXRMaXN0KCEwKSl9fSwiI2J0bi12aWV3LWRpciI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmV2ZXJzZT0heC5yZXZlcnNlKSx4LnJldmVyc2U/IuKWvCI6IuKWsiJ9LGV2ZW50czoiY2xpY2subXkifSwiI2J0bi1zZWxlY3QiOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz10aGlzLGQ9T2JqZWN0LmtleXMoYy5BbGwpLGU9Yy5MaXN0LmZpbHRlcih4PT4heC50eXBlKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pLGY9eC5zZWxlY3Rpb24sZz1mLmludGVyc2VjdChlKSxoPWcubGVuZ3RoLGk9Yy5sYW5nO3JldHVybiBiPWg/aS5UWFRfVU5TRUxFQ1QuYXNzaWduKGcubGVuZ3RoPT1kLmxlbmd0aD9pLlRYVF9TRUxFQ1RfQUxMOmYubGVuZ3RoKTppLlRYVF9TRUxFQ1QuYXNzaWduKGUubGVuZ3RoPT1kLmxlbmd0aD9pLlRYVF9TRUxFQ1RfQUxMOmUubGVuZ3RoKSxudWxsIT1hJiYoeC5zZWxlY3Rpb249aD9bXTpmLmNvbmNhdChlKS51bmlxdWUoKSx4Lm9zZWw9Y3cubGliLmEybyh4LnNlbGVjdGlvbikpLGJ9LGV2ZW50czoiY2xpY2subXkiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5MaXN0Lmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctaGFzc2VsZWN0aW9uIiwiI2RiLXByb3h5Il19LCIjdmlldy1jb2xzIjp7ZGVsZWF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtmb3IodmFyIGIsYz10aGlzLkxpc3QsZD0wLGU9KHg9MCwwKTtlPGMubGVuZ3RoO2UrKylkKz0oYj0iZ3JvdXAiPT1jW2VdLnR5cGUpPzA6MSx4Kz1iPzA6Y1tlXS5kaXNrX3NpemV8fDA7cmV0dXJuIHRoaXMubGFuZy5UWFRfREJTVklFVyhkLE9iamVjdC5zaXplKHRoaXMuQWxsKSx4Pyc8c3BhbiBjbGFzcz0iZnM4NSBvNzAgcGw2Ij4nK3RoaXMuQnl0ZXMoeCkrIjwvc3Bhbj4iOjApfSx3YXRjaDpbIiNkYi1wcm94eSJdfSwiI3ZpZXctbGlua3MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5QaG8oIkJhc2UiKTtyZXR1cm5bJzxhIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGRuIiBocmVmPSJ7MX0iPnsyfTwvYT4nLmFzc2lnbihiLGIucmVwbGFjZSgvXmh0dHBbc10/OlwvXC98XC8vZywiIikuZXNjYXBlSFRNTCgpKV0uam9pbigi4oCJIil9fSwiI2RiLWxpc3QiOntkZWxheTo1MCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlJvdyxjPWEuUm93R3JvdXAsZD1hLk5vcm1EQixlPWEuZGF0YSxmPWEubGFuZztmdW5jdGlvbiBnKHgpe3JldHVybiB4LnBhcmVudCgpLnBhcmVudCgpLmZpbmQoIj5pbnB1dCIpLmF0dHIoInZhbHVlIil9eC5saXN0KHtkYXRhOltdLGRlbGF5OjAsY2h1bms6MTAwLHNvcnRCeTpudWxsLGlkOmZ1bmN0aW9uKHgpe3JldHVybiJncm91cCI9PXgudHlwZT94LmlkOngubmFtZX0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4iZ3JvdXAiPT14LnR5cGU/Y3cubGliLnNkYm0oW3guaGVhZCx4LnN0YXJ0LHguZW5kLHguZm9sZCx4LmRpc2tdKTpjdy5saWIuc2RibShbeC5uYW1lLHguc3RhbXAseC51cGRhdGVfc2VxKyJ4IixlLm9zZWxbeC5uYW1lXT8ieCI6IiIseC5zdGFyLHguc2l6ZXRpcCx4LnNlY3VyaXR5LnN0YW1wLHgudGFza3Muc3RhbXAseC5zeW5jcy5zdGFtcF0pfSx0ZW1wbGF0ZTpmdW5jdGlvbih4KXtyZXR1cm4iZ3JvdXAiPT14LnR5cGU/Yy5hc3NpZ24oeCk6Yi5hc3NpZ24oZCh4KSl9fSksYS5uaWNlU2Nyb2xsKHgpLHgub24oImNsaWNrLm15IiwiLmJ0bi1kYmFjbCIsZnVuY3Rpb24oeCl7dmFyIGI9JCh4LmN1cnJlbnRUYXJnZXQpLGM9ZyhiKTthLlJlcShbYywiX3NlY3VyaXR5Il0pLnRoZW4oZnVuY3Rpb24oeCl7Yi5tb2RhbCh7cm9vdDphLm15LnJvb3QoKSxtYW5pZmVzdDphLlBobygiU2VjT2JqIiksZGF0YTp7ZGJzOltjXSxhZG1pbnM6eC5hZG1pbnN8fHtuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp4Lm1lbWJlcnN8fHtuYW1lczpbXSxyb2xlczpbXX19LHdpZHRoOjQ4MCxib3VuZDowLG5vc2U6ImxlZnQiLGNzczoieGdyYXkiLGFsaWduOiJsZWZ0OjcwJTt0b3A6LTM2cHg7IixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGVzYzohMH0pfSl9KSx4Lm9uKCJjbGljay5teSIsIi5idG4tZGJzdGFyIixmdW5jdGlvbih4KXt2YXIgYj1nKCQoeC5jdXJyZW50VGFyZ2V0KSksYz1lLnN0YXJzW2JdPSFlLnN0YXJzW2JdO2EuQWxsW2JdLnN0YXI9Yz8icm93LXN0YXIiOiIiLGEuTHMoIkRCcy5TdGFycyIsT2JqZWN0LmtleXMoZS5zdGFycykucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGUuc3RhcnNbYV0mJih4W2FdPSEwKSx4fSx7fSkpLGMmJihhLkFsbFtiXS5ncm91cD0iIiksYS5QaG8oIkdyb3VwREJzIikoKSxhLlJlbGlzdE5vdygpLGEuQmF0Y2hJbmZvKFtiXSl9KSx4Lm9uKCJjbGljay5teSIsIi5idG4tZGJpbmZvIixmdW5jdGlvbih4KXskKHguY3VycmVudFRhcmdldCkucGFyZW50KCkucGFyZW50KCkuZmluZCgiLnRhcC1kYmluZm8iKS50cmlnZ2VyKCJjbGljayIpfSkseC5vbigiY2xpY2subXkiLCIudGFwLWRiaW5mbyIsZnVuY3Rpb24oeCl7dmFyIGIsYyxkPSQoeC5jdXJyZW50VGFyZ2V0KSxlPWQucGFyZW50KCksZz1lLmZpbmQoIj5pbnB1dCIpLmF0dHIoInZhbHVlIik7aWYoIWEuQWxsW2ddfHxkLmlzKCIuY29sLWpzb24iKSlyZXR1cm4hMTtkLmFkZENsYXNzKCJjb2wtanNvbiIpLGUuYWRkQ2xhc3MoImhhcy1jb2wtanNvbiIpLGQuZmluZCgiPi5jb2wtZWQtY2xvc2UiKS5sZW5ndGg/KGI9ZC5maW5kKCI+LmNvbC1lZD4uQ29kZU1pcnJvciIpLGM9YlswXS5Db2RlTWlycm9yKTooZC5hcHBlbmQoYj0kKCc8ZGl2IGNsYXNzPSJjb2wtZWQgcHJlIGZzODUgbGgxMjAgcGw0IGhpZGUiPjwvZGl2PicpKSxkLmFwcGVuZCgnPGRpdiBjbGFzcz0iY29sLWVkLWNsb3NlIGZzMTMwIGxoMTMwIGhpZGUiIHRpdGxlPSJ7MX0iPuKclTwvZGl2PicuYXNzaWduKGYuVElQX0NMT1NFSlNPTikpLGM9Q29kZU1pcnJvcihiWzBdLHttb2RlOiJqYXZhc2NyaXB0IixsaW5lTnVtYmVyczohMSxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiEwfSkpLGMuc2V0VmFsdWUoZi5UWFRfREJJTkZPX0xPQUQpO3ZhciBoPXtpbmZvOiJGYWlsIHRvIGxvYWQiLHNlY3VyaXR5OiJGYWlsIHRvIGxvYWQifTtRLmFsbFNldHRsZWQoW2EuUmVxKHt1cmw6W2ddfSkudGhlbihmdW5jdGlvbih4KXtoLmluZm89eH0pLGEuUmVxKHt1cmw6W2csIl9zZWN1cml0eSJdfSkudGhlbihmdW5jdGlvbih4KXtoLnNlY3VyaXR5PXh9KV0pLnRoZW4oZnVuY3Rpb24oKXtjLnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KGgsbnVsbCwiICIpKX0pLmZhaWwoZnVuY3Rpb24oKXtjdy5saWIubm90ZShmLkVSUl9EQklORk8sImVycm9yIiksZC5yZW1vdmVDbGFzcygiY29sLWpzb24iKX0pfSkseC5vbigiY2xpY2subXkiLCIuY29sLWVkLWNsb3NlIixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCkucGFyZW50KCksYz1iLnBhcmVudCgpLmZpbmQoIj5pbnB1dCIpLmF0dHIoInZhbHVlIik7cmV0dXJuIGIucmVtb3ZlQ2xhc3MoImNvbC1qc29uIiksYi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaGFzLWNvbC1qc29uIiksYS5CYXRjaEluZm8oW2NdLDAsWyJpbmZvIiwic2VjdXJpdHkiXSksITF9KSx4Lm9uKCJjbGljay5teSIsIi5kYi1ncm91cCIsZnVuY3Rpb24oeCl7dmFyIGI9JCh4LmN1cnJlbnRUYXJnZXQpLmRhdGEoImdyb3VwIiksYz1lLmdyb3Vwc1tiXT0hZS5ncm91cHNbYl07YS5McygiREJzLkdyb3VwcyIsT2JqZWN0LmtleXMoZS5ncm91cHMpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiBlLmdyb3Vwc1thXSYmKHhbYV09MSkseH0se30pKSxjJiZhLkJhdGNoSW5mbyhPYmplY3Qua2V5cyhhLkFsbCkuZmlsdGVyKHg9PmEuQWxsW3hdLmdyb3VwPT1iKSxudWxsLFsiaW5mbyIsInNlY3VyaXR5Il0pLGEubXkuY2hlY2soIiNkYi1wcm94eSIpLGEubXkuY2hlY2soIiN2aWV3LWhhc3NlbGVjdGlvbiIpfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGw9PWEmJmIubGlzdCgiZGF0YSIsdGhpcy5MaXN0KX0sd2F0Y2g6WyIjZGItcHJveHkiLCIjdmlldy1oYXNzZWxlY3Rpb24iXX0sIiNkYi1wcm94eSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9KGIuUm93LGIuQWxsKSxkPXgucmV2ZXJzZT8tMToxLGU9LWQ7aWYoYi5MaXN0PU9iamVjdC52YWx1ZXMoYykuc29ydChmdW5jdGlvbih4LGEpe3JldHVybiB4LnN0YXI+YS5zdGFyPy0xZTM6eC5zdGFyPGEuc3Rhcj8xZTM6eC5uYW1lPmEubmFtZT9kOmV9KSx4LnNlYXJjaC5sZW5ndGg+MSl7dmFyIGY9bmV3IFJlZ0V4cCh4LnNlYXJjaC50b0xvd2VyQ2FzZSgpLnNwbGl0KCIgIikuY29tcGFjdCghMCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmVzY2FwZVJlZ0V4cCgpfSkuam9pbigifCIpKTtiLkxpc3Q9Yi5MaXN0LmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZi50ZXN0KHgubmFtZS50b0xvd2VyQ2FzZSgpKXx8ISF4LnRvb2x0aXAmJmYudGVzdCh4LnRvb2x0aXAudG9Mb3dlckNhc2UoKSl9KX1lbHNle3ZhciBnPSIiLGg9e307Yi5MaXN0LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5ncm91cDtpZihhKXtoW2FdfHwoaFthXT1bMCwwXSk7dmFyIGI9K3guZGlza19zaXplfHwwO2ImJihoW2FdWzBdKz1iLGhbYV1bMV0rPTEpfX0pLGIuTGlzdD1iLkxpc3QucmVkdWNlKGZ1bmN0aW9uKGEsYyl7dmFyIGQ9Yy5ncm91cCxlPWIuUGhvKCJHcm91cHMiKVtkXTtyZXR1cm4gZCYmZCE9ZyYmYS5wdXNoKCQuZXh0ZW5kKCEwLHt0eXBlOiJncm91cCIsZm9sZDp4Lmdyb3Vwc1tkXT8iYWRvd24iOiJhcmlnaHQiLGRpc2s6IWhbZF18fGhbZF1bMV08ZS5zaXplPyIiOmIuQnl0ZXMoaFtkXVswXSl9LGUpKSxkJiYheC5ncm91cHNbZF18fGEucHVzaChjKSxnPWQsYX0sW10pfX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczthJiYoYS5uYW1lPyhiLkdldExpc3QoITApLGIuUmVzdGFydFBvbGwoKSk6JC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pKX0sZGJsaXN0OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzQXJyYXkoYSkmJnRoaXMuR2V0TGlzdCghMCxhKX19LHdhdGNoOlsiI2J0bi12aWV3LWRpciIsIiNkYi1zZWFyY2giLCIjYnRuLXNlbGVjdCJdfSwiI3ZpZXctaGFzc2VsZWN0aW9uIjp7Y3NzOnt9LHdhdGNoOlsiI2RiLXNlYXJjaCIsIiNidG4tc2VsZWN0Il19LCIjYnRuLWxvZ3MiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuUGhvKCJDb3VjaCIpLnZlcj49IjAwMi4ifX19LCIjYnRuLW5ld2RiIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcyxkPWMubXkuZmluZCgiI2RiLWxpc3QiKS53aWR0aCgpLTMxMCsxNTAtMzE7Yi5kYXRhKCJtb2RhbCIpP2MubXkubW9kYWwoIiNidG4tbmV3ZGIiLCEwKTooYy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLGMubXkubW9kYWwoIiNidG4tbmV3ZGIiLHttYW5pZmVzdDpjLlBobygiTmV3REIiKSx3aWR0aDpkPDU1MD9kKzgwOmQsZGF0YTpjLlBobygiQ291Y2giKS52ZXI8IjAwMy4iP3t9OnthZG1pbnM6e3JvbGVzOlsiX2FkbWluIl19LG1lbWJlcnM6e3JvbGVzOlsiX2FkbWluIl19fSxhbGlnbjoidG9wOjEwMiU7bGVmdDotNDJweDsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsZHJhZzoiLmNtIixzY3JlZW46ITEsZXNjOiEwLGZvY3VzOidpbnB1dFt0eXBlPSJ0ZXh0Il06ZXEoMCknfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMuaGVhZD1udWxsfSkpfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4hY3cubWUoKX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tbmV3ZGIiKX19fSwiI2J0bi1jb21wYWN0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi1jb21wYWN0IiwhMCk6KGMuTW9kYWxzLmhlYWQmJmMuTW9kYWxzLmhlYWQubW9kYWwoITApLGMuTW9kYWxzLmhlYWQ9YixjLm15Lm1vZGFsKCIjYnRuLWNvbXBhY3QiLHttYW5pZmVzdDpjLlBobygiQ29tcGFjdCIpLHdpZHRoOjM4MCxkYXRhOntzZWxlY3Rpb246eC5zZWxlY3Rpb24uc2xpY2UoMCl9LGFsaWduOiJ0b3A6MTAyJTtsZWZ0OjA7Iixub3NlOiJ0b3AiLGNzczoieGdyYXkiLHNjcmVlbjohMSxlc2M6ITAsZm9jdXM6IiNidG4tc3RhcnQifSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMuaGVhZD1udWxsfSkpfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4hY3cubWUoKXx8IXguc2VsZWN0aW9uLmxlbmd0aHx8IXRoaXMuTGlzdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pLmludGVyc2VjdCh4LnNlbGVjdGlvbikubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1oYXNzZWxlY3Rpb24iXSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXt0aGlzLm15LmNoZWNrKCIjYnRuLWNvbXBhY3QiKX19fSwiI2J0bi1kZWxkYiI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXM7Yi5kYXRhKCJtb2RhbCIpP2MubXkubW9kYWwoIiNidG4tZGVsZGIiLCEwKTooYy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLCQubXkubW9kYWwoe21hbmlmZXN0OmMuUGhvKCJEZWxEQiIpLHdpZHRoOjM4MCxkYXRhOntkYnM6eC5zZWxlY3Rpb24uc2xpY2UoMCl9LGZvY3VzOiIjYnRuLWNhbmNlbCIsY3NzOiJ4Z3JheSBwMjAiLGVzYzohMCxlbnRlcjohMX0pLnRoZW4oZnVuY3Rpb24oKXt4LnNlbGVjdGlvbi5sZW5ndGg9MCx4Lm9zZWw9e319KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfHwheC5zZWxlY3Rpb24ubGVuZ3RofHwhdGhpcy5MaXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkuaW50ZXJzZWN0KHguc2VsZWN0aW9uKS5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LWhhc3NlbGVjdGlvbiJdLGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tZGVsZGIiKX19fSwiI3Rhc2stZmlsdGVyIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3MoJC5leHRlbmQoITAse30sdGhpcy5sYW5nLlRBR1NfVEFTS19UWVBFLHt0YWdzaGltOiLigIkiLGdyb3Vwc2hpbToi4oCJIn0pKX0sYmluZDoidGFzay5maWx0ZXIifSwiI3Rhc2stY29scyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiBiLmxhbmcuVFhUX1RBU0tWSUVXKGIuVGFza3MubGVuZ3RoP3gudGFzay5saXN0LmZpbHRlcihiLk5vR3JvdXApLmxlbmd0aDowLGIuVGFza3MuZmlsdGVyKGIuTm9Hcm91cCkubGVuZ3RoKX0sd2F0Y2g6WyIjdGFzay1maWx0ZXIiLCIjdGFzay1saXN0IiwiI3Rhc2stc2VhcmNoIl19LCIjdGFzay1zZWFyY2giOntkZWxheToxMDAsYmluZDoidGFzay5zZWFyY2giLGNzczp7Im15LXNlYXJjaCI6L14uezIsfSQvfX0sIiN0YXNrLWxpc3QiOntkZWxheTo1MCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlRUYXNrLGM9YS5kYXRhO2Z1bmN0aW9uIGQoKXthLm15LnJlY2FsYygiI3Rhc2stbGlzdCIpLGEubXkuY2hlY2soIiN0YXNrLWxpc3QiKX1mdW5jdGlvbiBlKHgpe3JldHVybiBPYmplY3Qua2V5cyh4KS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4geFtiXSYmKGFbYl09ITApLGF9LHt9KX14Lmxpc3Qoe2RhdGE6YS5UYXNrcyxkZWxheTowLGNodW5rOjEwMCxzb3J0Qnk6bnVsbCxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5waWQreC5kb2NfaWR9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LnBpZCx4Ll9ncm91cHx8In4iLHguX3R5cGV8fCJ+Iix4Ll9zZWxlY3RlZD8ic2VsIjoidW5zZWwiLHguX2ZvbGQ/ImZvbGQiOiJ1bmZvbGQiLHgudHlwZSx4Ll9wcm9ncmVzcyx4Ll9zdGFydGVkLHguX2Rlc2MseC5maWx0ZXJdKX0sdGVtcGxhdGU6ZnVuY3Rpb24oeCl7cmV0dXJuIGIoeCl9fSksYS5uaWNlU2Nyb2xsKHgpLHgub24oImNsaWNrLm15IiwnaW5wdXRbbmFtZT0idGFzay1zZWxlY3Rpb24iXScsZnVuY3Rpb24oYil7dmFyIGU9W10sZj14LmZpbmQoJ2lucHV0W25hbWU9InRhc2stc2VsZWN0aW9uIl0nKSxnPSQoYi50YXJnZXQpLnZhbCgpO2YuZWFjaChmdW5jdGlvbigpe3ZhciB4PSQodGhpcyk7eC5pcygiOmNoZWNrZWQiKSYmZS5wdXNoKHgudmFsKCkpfSk7dmFyIGgsaT1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGljYXRpb25faWQ9PWcuZXNjYXBlSFRNTCgpfSksaj17fSxrPSIiO2kmJihoPWkuX3NlbGVjdGVkPWUuaW5kZXhPZihnKT4tMSwiZ3JvdXAiPT1pLl90eXBlPyhrPWcuZnJvbSgyKSxpLl9mb2xkPSFoJiZpLl9mb2xkLGgmJihjLnRhc2suZm9sZFtrXT0hMSksYS5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3gucmVwbGljYXRpb25faWQhPWcmJnguX2dyb3VwPT1rJiYoKHguX3NlbGVjdGVkPWgpP2UucHVzaCh4LnJlcGxpY2F0aW9uX2lkKTplLnJlbW92ZSh4LnJlcGxpY2F0aW9uX2lkKSl9KSk6KGs9aS5fZ3JvdXApJiYoaj1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuImdyb3VwIj09eC5fdHlwZSYmeC5waG90b25fdGFzaz09a30pKSYmKGouX3NlbGVjdGVkPWkuX3NlbGVjdGVkJiZqLl9zZWxlY3RlZCkpLGMudGFzay5zZWxlY3Rpb249ZS51bmlxdWUoKSxkKCl9KSx4Lm9uKCJjbGljay5teSIsIi50YXNrbGFiZWwiLGZ1bmN0aW9uKCl7JCh0aGlzKS5wYXJlbnQoKS5maW5kKCJpbnB1dCIpLnRyaWdnZXIoImNsaWNrIil9KSx4Lm9uKCJjbGljay5teSIsIi50YXNrLWdyb3VwIixmdW5jdGlvbigpe2MudGFzay5zZWFyY2g9JCh0aGlzKS5hdHRyKCJ0aXRsZSIpfHwkKHRoaXMpLnRleHQoKSxhLm15LnJlY2FsYygiI3Rhc2stc2VhcmNoIil9KSx4Lm9uKCJjbGljay5teSIsIi50YXNrLWZvbGRncm91cCIsZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpLmRhdGEoImdyb3VwIikucmVwbGFjZSgvXl9fLywiIiksYj1jLnRhc2suZm9sZFt4XT0hYy50YXNrLmZvbGRbeF0sZj0iX18iK3gsZz1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGljYXRpb25faWQ9PWZ8fGEuX2dyb3VwPT14fSk7Zy5fZm9sZD1iLGcuX3NlbGVjdGVkPWcuX3NlbGVjdGVkJiYhYixiJiZjLnRhc2suc2VsZWN0aW9uLnJlbW92ZSgiX18iK3gpLGEuTHMoIlRhc2tzLkZvbGQiLGUoYy50YXNrLmZvbGQpKSxhLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGQ9YS5fc2VsZWN0ZWQ7YS5fZ3JvdXA9PXgmJihhLl9zZWxlY3RlZD1hLl9zZWxlY3RlZCYmIWIsZCYmIWEuX3NlbGVjdGVkJiZjLnRhc2suc2VsZWN0aW9uLnJlbW92ZShhLnJlcGxpY2F0aW9uX2lkKSl9KSxkKCl9LmRlYm91bmNlKDEwKSkseC5vbigiY2xpY2subXkiLCIuYnRuLWRvbmUtcmVzdGFydCIsZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpLmRhdGEoImlkIik7YS5SZXN0YXJ0VGFza3MoITEsW3hdKX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsPT1hKXtpZih4LnRhc2suc2VhcmNoLmZyb20oMSl8fCIiIT14LnRhc2suZmlsdGVyKXt2YXIgYz10aGlzLlRhc2tzLnNsaWNlKDApLGQ9eC50YXNrLmZpbHRlci5leGNsdWRlKCJhY3RpdmUiKSsiIjtpZih4LnRhc2suZmlsdGVyLmZpbmQoImFjdGl2ZSIpJiYoYz1jLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4iRXJyb3IiIT14LnBpZCYmIkRvbmUiIT14LnBpZH0pKSwiY29tcGFjdGlvbiI9PWQpeC50YXNrLmxpc3Q9Yy5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuL2NvbXBhY3Rpb24kLy50ZXN0KHgudHlwZSl9KTtlbHNle3ZhciBlPWQ/Yy5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuISgoInJlcGxpY2F0aW9uIiE9ZHx8Imdyb3VwIiE9eC5fdHlwZSkmJi0xPT0oeC50eXBlKyIiKS5pbmRleE9mKGQpKX0pOmM7aWYoeC50YXNrLnNlYXJjaC5sZW5ndGg+MSl7dmFyIGY9bmV3IFJlZ0V4cCh4LnRhc2suc2VhcmNoLnRvTG93ZXJDYXNlKCkuc3BsaXQoInwiKS5jb21wYWN0KCEwKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZXNjYXBlUmVnRXhwKCl9KS5qb2luKCJ8IikpO2U9ZS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGYudGVzdCh4Ll9pbmRleCl9KX14LnRhc2subGlzdD1oKGUuZmlsdGVyKGcpKX19ZWxzZSB4LnRhc2subGlzdD10aGlzLlRhc2tzLmZpbHRlcihnKTt0aGlzLm15LmZpbmQoIiN0YXNrLWxpc3QiKS5saXN0KCJkYXRhIix4LnRhc2subGlzdCl9ZnVuY3Rpb24gZyhhKXtyZXR1cm4iZ3JvdXAiPT1hLl90eXBlfHwhYS5fZ3JvdXB8fCF4LnRhc2suZm9sZFthLl9ncm91cF19ZnVuY3Rpb24gaCh4KXt2YXIgYT17fTtyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKHgpeyJncm91cCIhPXguX3R5cGUmJnguX2dyb3VwJiYoYVt4Ll9ncm91cF09KGFbeC5fZ3JvdXBdfHwwKSsxKX0pLHguZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiEhKCJncm91cCIhPXguX3R5cGV8fGFbeC5fZ3JvdXBdfHx4Ll9mb2xkJiZ4Ll9ydW4pfSl9fSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLXNlYXJjaCIsIiNidG4tc2VsZWN0LXRhc2tzIl19LCIjYnRuLXNlbGVjdC10YXNrcyI6e2RlbGF5OjAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlRhc2tzLnNsaWNlKDApLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZH0pLmNvbXBhY3QoKSxkPXgudGFzay5saXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZH0pLmNvbXBhY3QoKSxlPXgudGFzay5zZWxlY3Rpb24uaW50ZXJzZWN0KGQpLmZpbHRlcihiLk5vR3JvdXApLGY9ZS5maWx0ZXIoYi5Ob0dyb3VwKS5sZW5ndGgsZz1iLmxhbmc7cmV0dXJuIG51bGwhPWEmJih4LnRhc2suc2VsZWN0aW9uPWY/eC50YXNrLnNlbGVjdGlvbi5zdWJ0cmFjdChkKS51bmlxdWUoKTp4LnRhc2suc2VsZWN0aW9uLmNvbmNhdChkKS51bmlxdWUoKSxlPXgudGFzay5zZWxlY3Rpb24sYi5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3gucmVwbGljYXRpb25faWQmJiF4Ll9mb2xkJiYoeC5fc2VsZWN0ZWQ9ZS5pbmRleE9mKHgucmVwbGljYXRpb25faWQpPi0xKX0pKSwoZj0oZT14LnRhc2suc2VsZWN0aW9uLmludGVyc2VjdChkKSkuZmlsdGVyKGIuTm9Hcm91cCkubGVuZ3RoKT9nLlRYVF9UX1VOU0VMRUNULmFzc2lnbihlLmxlbmd0aD09Yy5sZW5ndGg/Zy5UWFRfVF9TRUxFQ1RfQUxMOmYpOmcuVFhUX1RfU0VMRUNULmFzc2lnbihkLmxlbmd0aD09Yy5sZW5ndGg/Zy5UWFRfVF9TRUxFQ1RfQUxMOmcuVFhUX1RfU0VMRUNUX0ZJTFRFUil9LGV2ZW50czoiY2xpY2subXkiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC50YXNrLmxpc3QuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZCYmImdyb3VwIiE9eC5fdHlwZX0pfX0sd2F0Y2g6WyIjdGFzay1saXN0IiwiI3Rhc2stZmlsdGVyIiwiI3Rhc2stc2VhcmNoIl19LCIjYnRuLXJlbG9hZHN5bmMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5SZXN0YXJ0UG9sbC5kZWJvdW5jZSg1MDApKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hY3cubWUoKX19LHdhdGNoOlsiI3Rhc2stbGlzdCJdLGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7T2JqZWN0LmlzT2JqZWN0KGEpJiYoYS5uYW1lP2IubXkuY2hlY2soIiNidG4tcmVsb2Fkc3luYyIpOihiLlRhc2tzLmxlbmd0aD0wLHgudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYi5teS5yZWNhbGMoIiN0YXNrLWxpc3QiKSxiLm15LmNoZWNrKCIjdGFzay1jb2xzIiksYi5teS5jaGVjaygiI3Rhc2stbGlzdCIpKSl9fX0sIiNidG4tcmVzeW5jIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztpZihiLmRhdGEoIm1vZGFsIikpcmV0dXJuIGIubW9kYWwoITApLHZvaWQgMDtjLk1vZGFscy50YXNrcyYmYy5Nb2RhbHMudGFza3MubW9kYWwoITApLGMuUmVzdGFydFRhc2tzKCkudGhlbihmdW5jdGlvbigpe3gudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYy5teS5jaGVjaygiI3Rhc2stbGlzdCIpLGMuUmVzdGFydFBvbGwuZGVib3VuY2UoMzAwKSgpLGMuUmVzdGFydFBvbGwuZGVib3VuY2UoMjUwMCkoKX0pfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigheC50YXNrLnNlbGVjdGlvbi5sZW5ndGgpcmV0dXJuITA7dmFyIGE9eC50YXNrLnNlbGVjdGlvbi5maWx0ZXIodGhpcy5Ob0dyb3VwKS5pbnRlcnNlY3QoeC50YXNrLmxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkpO2lmKCFhLmxlbmd0aClyZXR1cm4hMDt2YXIgYj1jdy5saWIuYTJvKGEpLGM9ITA7cmV0dXJuIHRoaXMuVGFza3MuZm9yRWFjaChmdW5jdGlvbih4KXsheC5kb2NfaWQmJmJbeC5yZXBsaWNhdGlvbl9pZF0mJihjPSExKX0pLCFjfX0sd2F0Y2g6WyIjdGFzay1maWx0ZXIiLCIjdGFzay1saXN0Il19LCIjYnRuLXN0b3BzeW5jIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5SZXN0YXJ0VGFza3MoITApLnRoZW4oZnVuY3Rpb24oKXt4LnRhc2suc2VsZWN0aW9uLmxlbmd0aD0wLGIubXkuY2hlY2soIiN0YXNrLWxpc3QiKSxiLlJlc3RhcnRQb2xsLmRlYm91bmNlKDMwMCkoKSxiLlJlc3RhcnRQb2xsLmRlYm91bmNlKDI1MDApKCl9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudGFzay5zZWxlY3Rpb24ubGVuZ3RofHwoIXgudGFzay5zZWxlY3Rpb24uZmlsdGVyKHRoaXMuTm9Hcm91cCkuaW50ZXJzZWN0KHgudGFzay5saXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZH0pKS5sZW5ndGh8fHZvaWQgMCl9fSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLWxpc3QiXX0sIiNidG4tbmV3c3luYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjLGQ9dGhpcyxlPXguc2VsZWN0aW9uLmxlbmd0aD4xPyJNdWx0aSI6IlN5bmMiLGY9e3VybDoiIixkYnM6W119LGc9e3Rhc2s6ZSxzcmM6Zn0saD00MjtpZihudWxsIT1hKXtpZihiLmRhdGEoIm1vZGFsIikpcmV0dXJuIGIubW9kYWwoITApLHZvaWQgMDtkLk1vZGFscy50YXNrcyYmZC5Nb2RhbHMudGFza3MubW9kYWwoITApLDE9PXguc2VsZWN0aW9uLmxlbmd0aD9mLnVybD14LnNlbGVjdGlvblswXTp4LnNlbGVjdGlvbi5sZW5ndGg+MSYmKGYuZGJzPXguc2VsZWN0aW9uLnNsaWNlKDApKSxkLk1vZGFscy50YXNrcz1iLGQuTGFzdFN5bmMudGFzaz09ZSYmSlNPTi5zdHJpbmdpZnkoZik9PUpTT04uc3RyaW5naWZ5KE9iamVjdC5zZWxlY3QoZC5MYXN0U3luYy5zcmMsWyJ1cmwiLCJkYnMiXSkpP2c9ZC5MYXN0U3luYzpkLkxhc3RTeW5jPWcsKGM9ZC5teS5maW5kKCIjcnBhbmVsIikud2lkdGgoKS0zMik8NDYwPyhjKz0xODMsaCs9MTgzKTpjPDU2MCYmKGMrPTEwMixoKz0xMDIpLGIubW9kYWwoe3Jvb3Q6ZC5teS5maW5kKCIjcnBhbmVsIiksbWFuaWZlc3Q6JC5leHRlbmQoITAse30sZC5QaG8oIlN5bmNUYXNrIikse1Jlc3RhcnRQb2xsOmQuUmVzdGFydFBvbGwscGFyYW1zOnt3aWR0aDpjfX0pLGRhdGE6Zyxub3NlOiJ0b3AiLGFsaWduOiJ0b3A6MTAzJTsgbGVmdDotezF9cHg7Ii5hc3NpZ24oaCksZHJhZzoiLmNtIixjc3M6InhncmF5Iixlc2M6ITAsZm9jdXM6ZC5MYXN0U3luYy5zcmMudXJsPyIjcnRhcmdldCI6IiNyc291cmNlIn0pLmFsd2F5cyhmdW5jdGlvbigpe2QuTW9kYWxzLnRhc2tzPW51bGx9KX1yZXR1cm4gdGhpcy5sYW5nW3guc2VsZWN0aW9uLmxlbmd0aDwyPyJCVE5fVEFTS19ORVdTWU5DIjoiQlROX1RBU0tfQkFDS1VQIl19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hY3cubWUoKX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tbmV3c3luYyIpfX0sd2F0Y2g6WyIjdGFzay1saXN0IiwiI3ZpZXctaGFzc2VsZWN0aW9uIl19fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5UYXNrTG9vcCYmdGhpcy5UYXNrTG9vcC5jYW5jZWwoKSxbIiNkYi1saXN0IiwiI3Rhc2stbGlzdCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9eC5maW5kKGEpOyJmdW5jdGlvbiI9PXR5cGVvZiBiLmdldE5pY2VTY3JvbGwmJmIuZ2V0TmljZVNjcm9sbCgpLnJlbW92ZSgpLGIubGlzdCgicmVtb3ZlIil9KX0sUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0sUmVsaXN0OmZ1bmN0aW9uKCl7dGhpcy5teS5jaGVjaygiI2RiLXByb3h5Iil9LEdldExpc3Q6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhO3JldHVybiBiLlBobygiR2V0TGlzdCIpKCkudGhlbihmdW5jdGlvbigpe2IuQWxsPWIuUGhvKCJBbGwiKSxPYmplY3Qua2V5cyhiLkFsbCkuZm9yRWFjaChmdW5jdGlvbih4KXtiLkFsbFt4XS5zdGFyPWMuc3RhcnNbeF0/InJvdy1zdGFyIjoiIn0pLHgmJmIuUmVsaXN0KCksYi5CYXRjaEluZm8oYXx8T2JqZWN0LmtleXMoYi5BbGwpLGIuUGhvKCJDZmciKS5iYXRjaERiSW5mb0RlbGF5KX0pfSxOb3JtREI6ZnVuY3Rpb24oeCxhKXt2YXIgYixjLGQ9dGhpcyxlPWF8fGQuZGF0YS5vc2VsO3JldHVybihjPXguZGlza19zaXplKSYmKGI9eC5kYXRhX3NpemUpJiYoeC5zaXplc2FmZT0nPHNwYW4gY2xhc3M9InsxfSI+ezJ9PC9zcGFuPicuYXNzaWduKGIvYzwuMT8icmVkIG83MCI6Yi9jPC41PyJvcmFuZ2UgbzkwIjoieGdyYXkiLGQuQnl0ZXMoYykpLHguc2l6ZXRpcD1kLmxhbmcuVElQX0RCU0laRS5hc3NpZ24oZC5CeXRlcyhiKSxkLkJ5dGVzKGMpKSkseC5ncm91cF94PXguZ3JvdXA/IngiOiIiLHguZG9jX2NvdW50X3NhZmU9IiIhPT14LmRvY19jb3VudD9kLk1ldHJpYyh4LmRvY19jb3VudCw2KToiIix4LmRvY19kZWxfY291bnRfc2FmZT0iIiE9PXguZG9jX2RlbF9jb3VudD9kLk1ldHJpYyh4LmRvY19kZWxfY291bnQsNik6IiIseC51cGRhdGVfc2VxX3NhZmU9IiIhPT14LnVwZGF0ZV9zZXE/ZC5NZXRyaWMoKHgudXBkYXRlX3NlcSsiIikuc3BsaXQoIi0iKVswXSw3KToiIix4LmNoZWNrZWQ9ZVt4Lm5hbWVdPyJjaGVja2VkIjoiIix4fSxOb0dyb3VwOmZ1bmN0aW9uKHgpe3JldHVybiJzdHJpbmciPT10eXBlb2YgeD8iX18iIT14LnRvKDIpOiJncm91cCIhPXguX3R5cGV9LHN0eWxlOnsiIC52aWV3LXJvdyI6eyIiOiJ3aWR0aDoxMDAlOyBtaW4taGVpZ2h0OjJlbTsgcGFkZGluZzowLjM1ZW0gMDsgbGluZS1oZWlnaHQ6MS4yZW07IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IiwiOm50aC1jaGlsZCgybiswKSI6ImJhY2tncm91bmQtY29sb3I6I2Y1ZjdmOTsiLCIgc3ZnIjoibWFyZ2luLWJvdHRvbToxcHg7IiwiLnJvdy1zdGFyKy52aWV3LXJvdyI6ImJvcmRlci10b3A6MXB4IHNvbGlkICNlMWU1ZTg7IiwiLnJvdy1zdGFyKy52aWV3LXJvdy5yb3ctc3RhciI6ImJvcmRlci10b3A6bm9uZTsiLCIgLmJ0bi1kYnN0YXIiOiJjb2xvcjojZDBkNmRkOyIsIiAuYnRuLWRic3Rhci5yb3ctc3RhciAiOiJjb2xvcjojZmZiNDJhOyJ9LCIgLnRhcnJvdyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMxcHg7cGFkZGluZy1yaWdodDoxcHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwiIC5yb3ctc2VsIjoid2lkdGg6MjNweDsgbWFyZ2luOiAwIDJweCAycHggM3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsiLCIgI2RiLWxpc3QiOnsiIjoib3V0bGluZTpub25lOyIsIiAuY29sLTgwIjoid2lkdGg6ODBweDsgcGFkZGluZzoxcHggNnB4IDAgMDsgdGV4dC1hbGlnbjpyaWdodDsiLCIgLmNvbC03MCI6IndpZHRoOjcwcHg7IGZvbnQtc2l6ZTowLjllbTsgbGluZS1oZWlnaHQ6MS4yZW07IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzozcHggMCAwIDZweDsiLCIgLnZpZXctcm93Ijoid2hpdGUtc3BhY2U6IG5vd3JhcDsiLCIgLmRiLWJ0bnMiOnsiIjond2lkdGg6NTVweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC1mYW1pbHk6ICJmb3VuZGF0aW9uLWljb25zIjsgZm9udC13ZWlnaHQ6NDAwOycsIj5zcGFuIjoib3BhY2l0eTowLjY7Zm9udC1zaXplOjAuOWVtOyBjdXJzb3I6cG9pbnRlcjsgcGFkZGluZzogMCAzcHggMCAycHg7In0sIiAudmlldy1yb3c+ZGl2IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOmJyZWFrLXNwYWNlczsiLCIgLnZpZXctYXV4PmRpdiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1pbi1oZWlnaHQ6MS4zZW07IiwiIC5kYi1nZW5lcmFsIjoid2lkdGg6Y2FsYygxMDAlIC0gIDMzOHB4IC0gNTVweCk7IiwiIC5kYi1ncm91cC1uYW1lIjoid2lkdGg6Y2FsYygxMDAlIC0gMzM4cHggKyAxNTBweCk7IiwiIC5taDE5ZW0iOiJtaW4taGVpZ2h0OjEuOWVtOyIsIiAubWgxM2VtIjoibWluLWhlaWdodDoxLjNlbTsiLCIgLnh3NDVwIjoibWF4LXdpZHRoOjQ1JTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczsiLCIgLmNvbC1pZHMiOiJ3aWR0aDozMCU7cGFkZGluZzowIDIwcHggMCA4cHg7IiwiIC5jb2wtdmFscyI6IndpZHRoOjcwJTsgcGFkZGluZy1sZWZ0OjEwcHg7IiwiIC5jb2wtanNvbiI6eyIiOiJ3aWR0aDozNzBweCFpbXBvcnRhbnQ7IHotaW5kZXg6NDsgYmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBtaW4taGVpZ2h0OjJlbTttYXJnaW46LTAuMzVlbSAwIC0wLjM1ZW0gLTYwcHg7IHBhZGRpbmc6IDAuMjVlbSAwIWltcG9ydGFudDsifSwiIC52aWV3LXRvZmlsdGVyIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbi1sZWZ0OjVweDt3aWR0aDoyMHB4O2xpbmUtaGVpZ2h0OjEuMmVtO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMC41czsiLCIgLnZpZXctcm93OmhvdmVyIC52aWV3LXRvZmlsdGVyIjoib3BhY2l0eTowLjU7Y3Vyc29yOnBvaW50ZXI7IiwiIC5kYi1ncm91cCI6eyIiOiJ6LWluZGV4OjI7Ym9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCIrLmRiLWdyb3VwLnp6YXJpZ2h0IjoiYm9yZGVyLXRvcDpub25lOyIsIi56emFyaWdodCsuemdycCI6ImJvcmRlci10b3A6MXB4IHNvbGlkICNlMWU1ZTg7IiwiOmxhc3QtY2hpbGQiOiJib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTFlNWU4OyJ9LCIgLnpncnB4Ky56Z3JwIjoiYm9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCIgLnZpZXctcm93Omxhc3QtY2hpbGQuemdycHgiOiJib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTFlNWU4OyJ9LCIgI3Rhc2stcGFuZWwiOnsiIjoib3V0bGluZTpub25lOyJ9LCIgLnRhcC1kYmluZm8iOiJjdXJzb3I6cG9pbnRlcjsiLCIgLmNiLXRhc2stcm93Ijoid2lkdGg6MjdweDsgbWFyZ2luLWxlZnQ6LTI3cHg7IiwiICNkYi1wYW5lbCI6eyI6YmVmb3JlIjonY29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDt6LWluZGV4OjE7aGVpZ2h0OjEwMCU7cmlnaHQ6MjMwcHg7d2lkdGg6ODBweDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxNzgsMTg0LDE5MCwwLjIpO2JvcmRlci1yaWdodDoxcHggZG90dGVkIHJnYmEoMTc4LDE4NCwxOTAsMC40KTtwb2ludGVyLWV2ZW50czpub25lOycsIjphZnRlciI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowcHg7ei1pbmRleDozO2hlaWdodDoxMDAlO3JpZ2h0OjgwcHg7d2lkdGg6ODBweDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxNzgsMTg0LDE5MCwwLjIpO2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgxNzgsMTg0LDE5MCwwLjIpO3BvaW50ZXItZXZlbnRzOm5vbmU7J30sIiAuYmJzIjoiYm9yZGVyLWJvdHRvbS1jb2xvcjojZTNlOWVjOyIsIiAuYmFzIjoiYm9yZGVyLWNvbG9yOiNlM2U5ZWM7IiwiIC5icnMiOiJib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlM2U5ZWM7IiwiIC5icnNsIjoiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDIxMSwyMTcsMjIyLDAuMyk7IiwiIC5iY2VsbDAiOiJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxMTUsMTIxLDEyOCwwLjEpOyIsIiAuYmNlbGwxIjoiYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMTE1LDEyMSwxMjgsMC4wNyk7IiwiIC53MTAwcC0zMzgiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMzhweCk7IiwiIC53MTAwcC0zMTAiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMTFweCk7IiwiIC50YXNrLXJvdy10aXAiOiJtaW4td2lkdGg6MzAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBib3JkZXItcmFkaXVzOjJweDsgcGFkZGluZzogMCAycHggMXB4IDJweDsiLCIgLmJ0bi1kb25lLXJlc3RhcnQiOnsiIjoib3BhY2l0eTowLjQ7dHJhbnNpdGlvbjpvcGFjaXR5IDAuNXM7IiwiOmhvdmVyIjoib3BhY2l0eToxOyJ9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIGEuTHM9YS5QaG8oIkxzIiksYS5Sb3c9YS5Sb3cuYXNzaWduKGEubGFuZyksYS5QaG8oImlzSUUiKXx8WyJSb3ciXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2FbeF09YS5QaG8oIkNvbXBpbGVUIikoYVt4XSl9KSwkLmV4dGVuZChiLnRhc2suZm9sZCxhLkxzKCJUYXNrcy5Gb2xkIil8fHt9KSwkLmV4dGVuZChiLnN0YXJzLGEuTHMoIkRCcy5TdGFycyIpfHx7fSksJC5leHRlbmQoYi5ncm91cHMsYS5McygiREJzLkdyb3VwcyIpfHx7fSksYS5SZWxpc3ROb3c9YS5SZWxpc3QuZGVib3VuY2UoMTApLGEuUmVsaXN0PWEuUmVsaXN0LnRocm90dGxlKDUwMCksYS5BcnJvd3M9YS5BcnJvd3Muc3BsaXQoIlxuXG4iKSx4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSx4Lm9uKCJjbGljay5teSIsJ2lucHV0W25hbWU9ImRiLXNlbGVjdGlvbiJdJyxmdW5jdGlvbigpe3ZhciBjPVtdO3guZmluZCgnaW5wdXRbbmFtZT0iZGItc2VsZWN0aW9uIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4LmlzKCI6Y2hlY2tlZCIpJiZjLnB1c2goeC52YWwoKSl9KSxiLnNlbGVjdGlvbj1jLGIub3NlbD1jdy5saWIuYTJvKGIuc2VsZWN0aW9uKSxhLm15LmNoZWNrKCIjdmlldy1oYXNzZWxlY3Rpb24iKX0pLHgudGhlbihmdW5jdGlvbigpeyQuZXh0ZW5kKCEwLGEuZGF0YS5zZXJ2aWNlLGEuUGhvKCJDb3VjaCIpKX0uZGVib3VuY2UoMTAwKSksYS5HZXRMaXN0KCEwKS50aGVuKGZ1bmN0aW9uKCl7YS5UYXNrTG9vcEludGVydmFsPWEuUGhvKCJDZmciKS5sb29wQWN0aXZlVGFza3MsYS5HZXRUYXNrcyghMCksYS5SZXN0YXJ0UG9sbCgpfSl9LEhUTUw6JzxkaXYgY2xhc3M9Inc1NXAgZGliIHZhdCI+PGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIGZzOTUgemkyIiBzdHlsZT0ibWF4LXdpZHRoOjE4MHB4O3dpZHRoOmNhbGMoMTAwJSAtIDQ0NXB4KTsiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgYmx1ZSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJkYi1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJudyBkaWIgdmF0IHc3NXAgcHIxMCI+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZCIgY2xhc3M9Inc0MCBtcjIiIHRpdGxlPSJ7VElQX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLW5ld2RiIiBjbGFzcz0iZ3JlZW4gbXIyIj57QlROX05FV0RCfTwvYnV0dG9uPjxzcGFuIGlkPSJ2aWV3LWhhc3NlbGVjdGlvbiI+PGJ1dHRvbiBpZD0iYnRuLWNvbXBhY3QiIGNsYXNzPSJtcjIiIGRpc2FibGVkPntCVE5fQ09NUEFDVH08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tZGVsZGIiIGNsYXNzPSJtcjIgcmVkIiBkaXNhYmxlZD57QlROX0RFTERCfTwvYnV0dG9uPjwvc3Bhbj48c3BhbiBjbGFzcz0icGxzaGltIGRpYiB2YXQiPjxzcGFuIGlkPSJidG4tc3RhdHMiIGNsYXNzPSJtcjIiPjxhIGhyZWY9IiNfc3RhdHMiIGNsYXNzPSJ0ZG4gbGgxNDBpIGJ1dHRvbiI+e0JUTl9TVEFUU308L2E+PC9zcGFuPjxzcGFuIGlkPSJidG4tbG9ncyIgY2xhc3M9ImhpZGUiPjxhIGhyZWY9IiNfbG9nIiBjbGFzcz0idGRuIGxoMTQwaSBidXR0b24iPntCVE5fTE9HU308L2E+PC9zcGFuPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJkYi1wYW5lbCIgY2xhc3M9InBhbmVsaGVpZ2h0LTMyIGJyMiBtdDE2IG1sMjAgbXIyMCI+PGRpdiBjbGFzcz0iYmctcGdyYXkgYmJzIGxoMTYwIHB0MiBudyBvaCBlbGwgeHBhbmVsIj48ZGl2IGNsYXNzPSJ3MTAwcC0zMTAgZGliIHZhdCBudyBvaCBlbGwiPjxzcGFuIGlkPSJidG4tdmlldy1kaXIiIGNsYXNzPSJkaWIgcGw4IHByNiBtcjIgdmF0IGNwIG81MCBmczgwIHB0MSBwc2V1ZG9saW5rIHRkbiBoMzAiPjwvc3Bhbj48c3BhbiBpZD0idmlldy1saW5rcyIgY2xhc3M9ImdyYXkgaGlkZSI+PC9zcGFuPjxkaXYgaWQ9InZpZXctY29scyIgY2xhc3M9ImRpYiB2YXQgcHIxMiBudyB4Z3JheSI+PC9kaXY+PGRpdiBpZD0iYnRuLXNlbGVjdCIgY2xhc3M9ImJ1dHRvbiB4YnV0dG9uIHB0MiBoMjUgbXQxIGZzOTAgbGgxMzAgdGRuIGZyIG1yMyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idzMxMCBkaWIgZ3JheSBmczkwIj48ZGl2IGNsYXNzPSJ3ODAgZGliIHRhciBwcjYiPntIX0RPQ1N9PC9kaXY+PGRpdiBjbGFzcz0idzcwIGRpYiBwbDciPntIX0RFTERPQ1N9PC9kaXY+PGRpdiBjbGFzcz0idzgwIGRpYiB0YXIgcHI3Ij57SF9TRVF9PC9kaXY+PGRpdiBjbGFzcz0idzgwIGRpYiB0YXIgcHI3Ij57SF9TSVpFfTwvZGl2PjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJkYi1saXN0IiBjbGFzcz0icGFuZWxoZWlnaHQtNjMgeGdyYXkgbGgxNzAgYnh0b3Agb3hoIj48L3NlY3Rpb24+PC9kaXY+PGRpdiBpZD0iZGItcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJycGFuZWwiIGNsYXNzPSJ3NDVwIGRpYiB2YXQgcHIyMCI+PGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBtYjE2IHRhbCI+PGRpdiBjbGFzcz0iZnIgZnM5NSB0YWwiIHN0eWxlPSJtYXgtd2lkdGg6MTgwcHg7d2lkdGg6Y2FsYygxMDAlIC0gMzQwcHgpOyI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyBibHVlIG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRhc2stc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJ7UExDX1NFQVJDSH0iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykuYmx1cigpIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idzcwcCBkaWIiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWRzeW5jIiBjbGFzcz0idzQwIG1yMiIgdGl0bGU9IntUSVBfVEFTS19SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1uZXdzeW5jIiBjbGFzcz0ibXIyIHcxMTAgcGw0IHByMiI+e0JUTl9UQVNLX05FV1NZTkN9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXJlc3luYyIgY2xhc3M9Im9yYW5nZSBtcjIiIGRpc2FibGVkPntCVE5fVEFTS19SRVNZTkN9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXN0b3BzeW5jIiBjbGFzcz0icmVkIiBkaXNhYmxlZD57QlROX1RBU0tfU1RPUH08L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJ0YXNrLXBhbmVsIiBjbGFzcz0icGFuZWxoZWlnaHQtMzIgYnIyIG10MTYiPjxkaXY+PGRpdiBjbGFzcz0iYmctcGdyYXkgbGgxNzAgeHBhbmVsIHB0MSI+PGRpdiBjbGFzcz0iZnIgcHI0IHRhciI+PHNwYW4gaWQ9InRhc2stZmlsdGVyIiBjbGFzcz0iaHBhbmVsIGZzOTAgcGw0Ij48L3NwYW4+PC9kaXY+PGRpdiBpZD0idGFzay1jb2xzIiBjbGFzcz0iZGliIHZhdCBwbDggbncgeGdyYXkgcHQxIHByMTIiPjwvZGl2PjxkaXYgaWQ9ImJ0bi1zZWxlY3QtdGFza3MiIGNsYXNzPSJidXR0b24geGJ1dHRvbiBwdDIgaDI1IG10MiBmczkwIGxoMTMwIHRkbiBkaWIgdmF0IGhpZGUiPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJ0YXNrLWxpc3QiIGNsYXNzPSJwYW5lbGhlaWdodC02MyB4Z3JheSBsaDE3MCBieHRvcCI+PC9zZWN0aW9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InN0YXR1cy1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjwvZGl2PicsUm93Oic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyBkYi1idWNrZXQge3N0YXJ9IHpncnB7Z3JvdXBfeH0iPjxpbnB1dCBjbGFzcz0iY3Agcm93LXNlbCIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRiLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7bmFtZXNhZmV9Ij48ZGl2IGNsYXNzPSJkYi1nZW5lcmFsIG1oMTNlbSBwcjIiPjxhIGhyZWY9IiN7aHJlZn0iIGNsYXNzPSJ0ZG4gbXIyMCB2aWV3LWRiLW5hbWUiIHRpdGxlPSJ7dG9vbHRpcH0iPntobmFtZX08L2E+PC9kaXY+PGRpdiBjbGFzcz0iZGItYnRucyI+PHNwYW4gY2xhc3M9ImJ0bi1kYmFjbCB7cHJvdGVjdGVkfSBwcjUiIHRpdGxlPSJ7VElQX0JUTl9BQ0x9Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImJ0bi1kYmluZm8gbGdyYXkiIHRpdGxlPSJ7VElQX0JUTl9JTkZPfSI+74WePC9zcGFuPjxzcGFuIGNsYXNzPSJidG4tZGJzdGFyIHtzdGFyfSBwcjUiIHRpdGxlPSJ7VElQX0JUTl9TVEFSfSI+74euPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InczMTAgdmlldy1hdXggZnM5NSB0YXAtZGJpbmZvIiB0aXRsZT0ie1RJUF9ET0NfSU5GT30iPjxkaXYgY2xhc3M9ImNvbC10cmltIGNvbC04MCIgdGl0bGU9Intkb2NfY291bnR9Ij57ZG9jX2NvdW50X3NhZmV9PC9kaXY+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTcwIGdyYXkiPntkb2NfZGVsX2NvdW50X3NhZmV9PC9kaXY+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIiB0aXRsZT0ie3VwZGF0ZV9zZXF9Ij57dXBkYXRlX3NlcV9zYWZlfTwvZGl2PjxkaXYgY2xhc3M9ImNvbC10cmltIGNvbC04MCBwcjgiIHRpdGxlPSJ7c2l6ZXRpcH0iPntzaXplc2FmZX08L2Rpdj48L2Rpdj48L2Rpdj4nLFJvd0dyb3VwOic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyBkYi1ncm91cCBjcCB6entmb2xkfSIgZGF0YS1ncm91cD0ie2lkfSI+PGRpdiBjbGFzcz0idzIzIG1sNSBwbDEgZnMxMTAiPjxzcGFuIGNsYXNzPSJ7Zm9sZH0iPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJkYi1ncm91cC1uYW1lIG1oMTNlbSBwcjIiPjxkaXYgY2xhc3M9Inh3NDVwIGRpYiB2YXQgbncgZnc1MDAgbzkwIj57c3RhcnR9PC9kaXY+PHNwYW4gY2xhc3M9ImJsdWUxIGZ3NjAwIj7igInCt8K3wrfigIk8L3NwYW4+PGRpdiBjbGFzcz0ieHc0NXAgZGliIHZhdCBudyBncmF5MSI+e2VuZH08L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ3MTYwIHZpZXctYXV4IGZzOTUiPjxkaXYgY2xhc3M9ImNvbC10cmltIGNvbC04MCB0YXIgZ3JheTIiPntzaXplfSBEQnM8L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdHJpbSBjb2wtODAgdGFyIHByOCBncmF5MiI+e2Rpc2t9PC9kaXY+PC9kaXY+PC9kaXY+JyxBcnJvd3M6JzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTYiIGhlaWdodD0iOCIgdmlld0JveD0iMCwgMCwgMTYsIDgiPlxuICA8ZyBpZD0iTGF5ZXJfMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAsIC0wKSI+XG4gICAgPHBhdGggZD0iTTEuNSw0LjUgTDE1LjUsNC41IE0xMi41LDcuNSBMMTUuNSw0LjUgTDEyLjUsMS41IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNi4zNzUiIGhlaWdodD0iOCIgdmlld0JveD0iMCwgMCwgMTYuMzc1LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMzc1LCAtMTApIj5cbiAgICA8cGF0aCBkPSJNNi43NSwxNC41IEwxNS41LDE0LjUgTTEyLjUsMTcuNSBMMTUuNSwxNC41IEwxMi41LDExLjUgTTEuMTI1LDExLjY4NyBMMywxNC44MTMgTDMsMTcuNSBDMywxNy41IDUsMTcuNSA1LDE3LjUgQzUsMTcuNSA1LDE0LjgxMyA1LDE0LjgxMyBMNi44NzUsMTEuNjg3IEwxLjEyNSwxMS42ODcgeiIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgPC9nPlxuPC9zdmc+XG5cbjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTYiIGhlaWdodD0iOCIgdmlld0JveD0iMCwgMCwgMTYsIDgiPlxuICA8ZyBpZD0iTGF5ZXJfMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAsIC0yMCkiPlxuICAgIDxwYXRoIGQ9Ik00LjUsMjEuNSBMNS41LDIxLjUgTDUuNSwyNy41IEw0LjUsMjcuNSBNMi41LDIxLjUgTDEuNSwyMS41IEwxLjUsMjcuNSBMMi41LDI3LjUgTTE1LjUsMjQuNSBMNywyNC41IE0xMi41LDI3LjUgTDE1LjUsMjQuNSBMMTIuNSwyMS41IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYsIC0wKSI+XG4gICAgPHBhdGggZD0iTTMxLjUsNC41IEwxNy41LDQuNSBNMjAuNSwxLjUgTDE3LjUsNC41IEwyMC41LDcuNSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgPC9nPlxuPC9zdmc+XG5cbjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTYuMzc1IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAsIDAsIDE2LjM3NSwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYsIC0xMCkiPlxuICAgIDxwYXRoIGQ9Ik0yNi4yNSwxNC41IEwxNy41LDE0LjUgTTIwLjUsMTcuNSBMMTcuNSwxNC41IEwyMC41LDExLjUgTTMxLjg3NSwxMS42ODcgTDMwLDE0LjgxMyBMMzAsMTcuNSBDMzAsMTcuNSAyOCwxNy41IDI4LDE3LjUgQzI4LDE3LjUgMjgsMTQuODEzIDI4LDE0LjgxMyBMMjYuMTI1LDExLjY4NyBMMzEuODc1LDExLjY4NyB6IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYsIC0yMCkiPlxuICAgIDxwYXRoIGQ9Ik0yOC41LDI3LjUgTDI3LjUsMjcuNSBMMjcuNSwyMS41IEwyOC41LDIxLjUgTTMwLjUsMjcuNSBMMzEuNSwyNy41IEwzMS41LDIxLjUgTDMwLjUsMjEuNSBNMTcuNSwyNC41IEwyNiwyNC41IE0yMC41LDIxLjUgTDE3LjUsMjQuNSBMMjAuNSwyNy41IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz4nLEJhdGNoSW5mbzpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPWMuQWxsLGU9KGE9bnVsbCE9YT9hOmMuUGhvKCJDZmciKS5iYXRjaERiSW5mb0RlbGF5LFtdKSxmPWJ8fGMuUGhvKCJDZmciKS5saXN0Q29sc3x8W10sZz1mLmluZGV4T2YoImluZm8iKT4tMSxoPWYuaW5kZXhPZigic2VjdXJpdHkiKT4tMSxpPWMuUGhvKCJDb3VjaCIpLm1heEJhdGNofHwwLGo9e30saz1jLm15P2MubXkuZmluZCgiI2RiLWxpc3QiKTpudWxsLGw9eC5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuISFjLkFsbFt4XX0pLnNvcnQoZnVuY3Rpb24oeCxhKXt2YXIgYj1kW3hdLnN0YXIsYz1kW2FdLnN0YXI7cmV0dXJuIGI+Yz8tMTpiPT1jPzA6MX0pLG09bC5sZW5ndGg7cmV0dXJuIGk8Mnx8bC5sZW5ndGg8Mj9sLmZvckVhY2goZnVuY3Rpb24oeCxiKXt2YXIgZj1kW3hdO2lmKGMuQmF0Y2hbeF0pcmV0dXJuIGUucHVzaChjLkJhdGNoW3hdKTshKGd8fGh8fGYuc3Rhcil8fGYuZ3JvdXAmJmMuZGF0YSYmIWMuZGF0YS5ncm91cHNbZi5ncm91cF18fGUucHVzaChRLmRlbGF5KDUrYSpiKS50aGVuKG4uZmlsbCh4KSkpfSk6aT4xJiYobC5mb3JFYWNoKGZ1bmN0aW9uKHgsYil7dmFyIGY9ZFt4XSxrPSFmLmdyb3VwfHwhYy5kYXRhfHxjLmRhdGEuZ3JvdXBzW2YuZ3JvdXBdOyhnfHxmLnN0YXIpJiZrPyFqLl98fGpbai5fXS5sZW5ndGg+PWk/KGouXz14LGpbeF09W3hdKTpqW2ouX10ucHVzaCh4KTpoJiZrJiZlLnB1c2goUS5kZWxheSg1K2EqYikudGhlbihxLmZpbGwoeCkpLnRoZW4oYy5SZWxpc3QpKX0pLGU9KGouXz9vKCk6W10pLmNvbmNhdChlKSksUS5hbGxTZXR0bGVkKGUpLnRoZW4oZnVuY3Rpb24oKXsxPT1sLmxlbmd0aCYmaz9rLmxpc3QoInJvdyIsYy5Ob3JtREIoYy5BbGxbbFswXV0pKTpjLlJlbGlzdE5vdygpfSksZTtmdW5jdGlvbiBuKHgpe3ZhciBhLGI9W10uY29uY2F0KHgpLGU9Yi5qb2luKCIvIiksZj0hIWRbZV0uc3RhcjtyZXR1cm4oZ3x8aHx8ZikmJihhPWd8fGY/Yy5SZXEoe3VybDpifSkudGhlbihmdW5jdGlvbih4KXtpZihkW2VdKXJldHVybiB4LnNpemVzJiYoeC5kaXNrX3NpemU9eC5zaXplcy5maWxlLHguZGF0YV9zaXplPXguc2l6ZXMuYWN0aXZlKSwkLmV4dGVuZChkW2VdLHgse3N0YW1wOkRhdGUubm93KCl9KSwoaHx8ZikmJmRbZV0uc2VjdXJpdHkuc2VxPHBhcnNlSW50KGRbZV0udXBkYXRlX3NlcSk/cShlKTp2b2lkIDB9LGZ1bmN0aW9uKHgpezQwND09eCYmZFtlXSYmIl9ub2RlL19sb2NhbC9fbm9kZXMiIT1lP2RlbGV0ZSBjLkFsbFtlXTokLmV4dGVuZChkW2VdLGMuUGhvKCJkYlR5cGUiKSx7c3RhbXA6RGF0ZS5ub3coKX0pfSk6cShlKSk/KGMuQmF0Y2hbZV09US5hbGxTZXR0bGVkKFthXSkudGhlbihmdW5jdGlvbigpeyhtLT0xKT9jLlJlbGlzdCgpOmMuUmVsaXN0Tm93KCksZGVsZXRlIGMuQmF0Y2hbZV19KSxjLkJhdGNoW2VdKTokLkRlZmVycmVkKCkucmVzb2x2ZSgpfWZ1bmN0aW9uIG8oKXt2YXIgeD1bXTtyZXR1cm4gT2JqZWN0LmtleXMoaikuZm9yRWFjaChmdW5jdGlvbihiLGMpe2lmKCJfIiE9Yil7dmFyIGQ9altiXTt4LnB1c2goUS5kZWxheSgxK2EqYyooMHxNYXRoLmxvZyhpKSkpLnRoZW4ocC5maWxsKGQpKSl9fSksYy5QaG8oIkNvdWNoIikudmVyPiIwMDMuIiYmeC5wdXNoKG4oIl9ub2RlL19sb2NhbC9fbm9kZXMiKSkseH1mdW5jdGlvbiBwKHgpe3ZhciBiPXguc2xpY2UoMCksZT1bXSxmPVtdO3JldHVybiBjLlJlcSh7dXJsOlsiX2Ric19pbmZvIl0sbWV0aG9kOiJwb3N0Iixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh7a2V5czpifSl9KS50aGVuKGZ1bmN0aW9uKHgpe09iamVjdC5pc0FycmF5KHgpJiYoeC5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPXgua2V5LGI9ISFkW2FdLnN0YXI7aWYoZFthXSl7aWYoeC5lcnJvciYmIl9ub2RlL19sb2NhbC9fbm9kZXMiIT1hKXJldHVybiBkZWxldGUgYy5BbGxbYV0sdm9pZCAwO3ZhciBmPXguaW5mbztmJiYoZi5zaXplcyYmKGYuZGlza19zaXplPWYuc2l6ZXMuZmlsZSxmLmRhdGFfc2l6ZT1mLnNpemVzLmFjdGl2ZSksJC5leHRlbmQoZFthXSxmLHtzdGFtcDpEYXRlLm5vdygpfSkpLChofHxiKSYmZFthXS5zZWN1cml0eS5zZXE8cGFyc2VJbnQoZFthXS51cGRhdGVfc2VxKSYmZS5wdXNoKGEpfX0pLGMuUmVsaXN0KCksZS5sZW5ndGgmJihlLmZvckVhY2goZnVuY3Rpb24oeCxiKXtmLnB1c2goUS5kZWxheSgxK2EqYikudGhlbihxLmZpbGwoeCkpKX0pLFEuYWxsU2V0dGxlZChmKS50aGVuKGZ1bmN0aW9uKCl7Yy5SZWxpc3QoKX0pKSl9KX1mdW5jdGlvbiBxKHgpe3JldHVybiBjLlJlcSh7dXJsOlt4LCJfc2VjdXJpdHkiXX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoZFt4XSl7dmFyIGI9JC5leHRlbmQoITAse3N0YW1wOkRhdGUubm93KCksc2VxOnBhcnNlSW50KGRbeF0udXBkYXRlX3NlcSksYWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119fSxhKTsiXyI9PXhbMF0mJmIubWVtYmVycy5yb2xlcy5wdXNoKCJfYWRtaW4iKTt2YXIgYz0iIjtjPWIubWVtYmVycy5yb2xlcy5sZW5ndGgrYi5tZW1iZXJzLm5hbWVzLmxlbmd0aD09MD9iLmFkbWlucy5yb2xlcy5sZW5ndGgrYi5hZG1pbnMubmFtZXMubGVuZ3RoIT0wPyJvcmFuZ2UxIGZpLXVubG9jayI6InJlZCBmaS11bmxvY2siOiJncmF5MyBmaS1sb2NrIiwkLmV4dGVuZChkW3hdLHtzZWN1cml0eTpiLHByb3RlY3RlZDpjfSl9fSl9fSxHZXRUYXNrczpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9KGEuQWxsLGEubGFuZywiPG5vYnI+ezF9PC9ub2JyPiIpLGQ9Jzxub2JyIHRpdGxlPSJ7Mn0iPnsxfTwvbm9icj4nLGU9JzxzcGFuIGNsYXNzPSJ7Mn0iPnsxfTwvc3Bhbj4nLGY9JC5EZWZlcnJlZCgpLGc9YS5BcnJvd3MsaD1hLlBobygiQ291Y2giKS52ZXIsaT1hLlBobygiUmVwbGljYXRvckRCIik7cmV0dXJuIWEubXkuaW5kb20oKXx8YS5teS5yb290KCkuaGFzQ2xhc3MoImhpZGUiKXx8d2luZG93LmRvY3VtZW50LmhpZGRlbj9mLnJlc29sdmUoKS5wcm9taXNlKCk6Y3cubWUoIm5hbWUiKT9hLlRhc2tMb29wSW50ZXJ2YWwhPWEuUGhvKCJDZmciKS5sb29wQWN0aXZlVGFza3M/KGEuUmVzdGFydFBvbGwuZGVib3VuY2UoMSkoKSxmLnJlc29sdmUoKS5wcm9taXNlKCkpOihqKCkudGhlbihrKS50aGVuKGwpLmZhaWwoZnVuY3Rpb24oeCxiLGMpe3g+NDAwJiZ4PDYwMCYmIWN3Lm1lKCJuYW1lIik/YS5UYXNrcz1bXTpjb25zb2xlLmxvZyh4LGIsYyl9KS5hbHdheXMocC5kZWJvdW5jZSgxKSksZi5wcm9taXNlKCkpOihhLlRhc2tzPVtdLHAuZGVib3VuY2UoMSkoKSxmLnByb21pc2UoKSk7ZnVuY3Rpb24gaigpe3JldHVybiBhLlJlcSh7dXJsOlsiX2FjdGl2ZV90YXNrcyJdfSkudGhlbihmdW5jdGlvbihiKXt2YXIgYz1iLmNvbmNhdChhLlRhc2tNb2NrfHxbXSkuc29ydEJ5KCJ0eXBlIik7Yy5mb3JFYWNoKG0pLGMuZm9yRWFjaChmdW5jdGlvbihhKXthLl9uZXc9ITAsYS5kb2NfaWQ/eCgiZG9jX2lkIixhLCEwKTphLnJlcGxpY2F0aW9uX2lkP3goInJlcGxpY2F0aW9uX2lkIixhLCEwKTphLnBpZCYmeCgicGlkIixhLCExKX0pLGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKHgpe3JldHVybiF4Ll9uZXcmJiJFcnJvciIhPXgucGlkJiYiRG9uZSIhPXgucGlkfSksYS5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guX25ldz0hMX0pfSk7ZnVuY3Rpb24geCh4LGMsZCl7dmFyIGUsZjtjW3hdJiYoZCYmKGMuX3NlbGVjdGVkPWIudGFzay5zZWxlY3Rpb24uaW5kZXhPZihjLnJlcGxpY2F0aW9uX2lkKT4tMSksKGY9YS5UYXNrcy5maW5kSW5kZXgoZnVuY3Rpb24oYSl7cmV0dXJuIGFbeF09PWNbeF19KSk+LTE/KChlPWEuVGFza3NbZl0pLmZpbHRlciYmKGMuZmlsdGVyPWUuZmlsdGVyKSxlLnBob3Rvbl90YXNrJiYoYy5waG90b25fdGFzaz1lLnBob3Rvbl90YXNrKSxlLl90eXBlJiYoYy5fdHlwZT1lLl90eXBlKSxhLlRhc2tzW2ZdPWMpOmEuVGFza3MucHVzaChjKSl9fWZ1bmN0aW9uIGsoKXtpZighKGg8IjAwMi4iKSl7dmFyIHg9JC5EZWZlcnJlZCgpO3JldHVybiBhLlJlcSh7dXJsOlsiX3NjaGVkdWxlciIsImpvYnMiXX0pLnRoZW4oZnVuY3Rpb24oeCl7KCh4fHx7fSkuam9ic3x8W10pLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGIsYz14Lmhpc3Rvcnl8fFtdLGQ9Y1swXSxlPShkfHx7fSkudHlwZTsheC5waWQmJnguZG9jX2lkJiZjLmxlbmd0aCYmImNyYXNoZWQiPT1lJiYoKGI9YS5UYXNrcy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2NfaWR9KSkmJmEuVGFza3MucmVtb3ZlKGIpLGEuVGFza3MucHVzaCgkLmV4dGVuZChuKHtfaWQ6eC5kb2NfaWQsc291cmNlOnguc291cmNlLHRhcmdldDp4LnRhcmdldCxjb250aW51b3VzOi9jb250aW51b3VzJC8udGVzdCh4LmlkKSxvd25lcjp4LnVzZXJ8fCI/IixfcmVwbGljYXRpb25fc3RhdGU6ImVycm9yIixfcmVwbGljYXRpb25fc3RhdGVfdGltZTpkLnRpbWVzdGFtcCxfcmVwbGljYXRpb25faWQ6eC5pZCxfcmVwbGljYXRpb25fc3RhdGVfcmVhc29uOmQucmVhc29ufHwiVW5rbm93biJ9KSxiJiZiLnBob3Rvbl90YXNrP3twaG90b25fdGFzazpiLnBob3Rvbl90YXNrfTp7fSkpKX0pfSkuYWx3YXlzKGZ1bmN0aW9uKCl7eC5yZXNvbHZlKCl9KSx4LnByb21pc2UoKX19ZnVuY3Rpb24gbCgpe2lmKCFhLlBobygiQ2ZnIikudGFza3NSZWFkUmVwbGljYXRvcnx8Yi50YXNrLmZpbHRlci5pbmRleE9mKCJjb21wYWN0aW9uIik+LTEpcmV0dXJuIHAoKTt2YXIgeCxjPWk7cmV0dXJuKHg9Yi50YXNrLnNlcT9hLlJlcSh7dXJsOltjLCJfY2hhbmdlcyIse2luY2x1ZGVfZG9jczohMCxzaW5jZTpiLnRhc2suc2VxfV0sZGF0YVR5cGU6Impzb24ifSk6YS5SZXEoe3VybDpbYywiX2FsbF9kb2NzIix7aW5jbHVkZV9kb2NzOiEwLHVwZGF0ZV9zZXE6ITB9XSxkYXRhVHlwZToianNvbiJ9KSkudGhlbihmdW5jdGlvbih4KXtiLnRhc2suc2VxPXgubGFzdF9zZXF8fHgudXBkYXRlX3NlcSwoeC5yb3dzfHx4LnJlc3VsdHMpLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoeC5kb2MuX2RlbGV0ZWQpcmV0dXJuIGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSksdm9pZCAwO3ZhciBiLGM9eC5kb2MuX3JlcGxpY2F0aW9uX3N0YXRlOyJlcnJvciI9PWMmJihhLlRhc2tzLnJlbW92ZShmdW5jdGlvbihhKXtyZXR1cm4gYS5kb2NfaWQ9PXguZG9jLl9pZH0pLGEuVGFza3MucHVzaChuKHguZG9jKSkpLCJjb21wbGV0ZWQiPT1jPyhhLlRhc2tzLnJlbW92ZShmdW5jdGlvbihhKXtyZXR1cm4gYS5kb2NfaWQ9PXguZG9jLl9pZH0pLHguZG9jLl9yZXBsaWNhdGlvbl9pZHx8KHguZG9jLl9yZXBsaWNhdGlvbl9pZD1jdy5saWIuc2RibSh4LmRvYy5faWQpKSxhLlRhc2tzLnB1c2gobyh4LmRvYykpKToiY29tcGxldGVkIiE9YyYmKE9iamVjdC5pc1N0cmluZyh4LmRvYy5maWx0ZXIpfHxPYmplY3QuaXNBcnJheSh4LmRvYy5kb2NfaWRzKSkmJihiPWEuVGFza3MuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5kb2NfaWQ9PXguZG9jLl9pZH0pKSYmKGIuZmlsdGVyPXguZG9jLmZpbHRlcnx8eC5kb2MuZG9jX2lkcykseC5kb2MucGhvdG9uX3Rhc2smJihiPWEuVGFza3MuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5kb2NfaWQ9PXguZG9jLl9pZH0pKSYmKGIucGhvdG9uX3Rhc2s9eC5kb2MucGhvdG9uX3Rhc2spfSl9KSx4fWZ1bmN0aW9uIG0oeCl7aWYoImdyb3VwIj09eC5fdHlwZSlyZXR1cm4geDt2YXIgYT14LnR5cGUsYj1udWxsPT1hPyIiOmEucmVwbGFjZSgvXy9nLCIgIikucmVwbGFjZSgvZGF0YWJhc2UvZ2ksIkRCIikucmVwbGFjZSgvY29tcGFjdGlvbi9naSwiY29tcGFjdCIpLnJlcGxhY2UoL3JlcGxpY2F0aW9uL2dpLCIiKTtiPShiPWIuY29tcGFjdCgpKT9iKyI6IjoiIix4Ll90eXBlPSIiO3ZhciBlPSc8ZGl2IGNsYXNzPSJ0YXJyb3ciPnsxfTwvZGl2PicsZj0nPHNwYW4gY2xhc3M9InJlZDEgZnM5NSI+ezF9PC9zcGFuPicsaD0nPHNwYW4gY2xhc3M9ImdyZWVuIGZzOTUiPnsxfTwvc3Bhbj4nO3guX2luZGV4PUpTT04uc3RyaW5naWZ5KE9iamVjdC5yZWplY3QoeCwvXl8vKSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bIixce1x9XFtcXV0vZywiICIpLmNvbXBhY3QoKS5zdHJpcFRhZ3MoKSwiRXJyb3IiPT14LnBpZD8oeC5fcGlkPWYuYXNzaWduKCc8c3BhbiBjbGFzcz0iZmktYWxlcnQgcmVkMSBmczk1Ij48L3NwYW4+IEVycm9yJykseC5fcGlkc2FmZT14Ll9yZWFzb258fCJFcnJvciIsZT1mLmFzc2lnbihlKSk6IkRvbmUiPT14LnBpZD8oeC5fcGlkPWguYXNzaWduKCJEb25lIikseC5fcGlkc2FmZT0iRG9uZSIsZT1oLmFzc2lnbihlKSk6KHguX3BpZD0n4oC5PHNwYW4gY2xhc3M9ImZzOTUiPicreC5waWQucmVwbGFjZSgvWzw+XS9nLCIiKSsiPC9zcGFuPuKAuiIseC5fcGlkc2FmZT1zKHgucGlkKSkseC5maWx0ZXImJk9iamVjdC5pc0FycmF5KHguZmlsdGVyKSYmKHguZG9jcz0hMCk7dmFyIGo9eC5zdGFydGVkX29uO2lmKGope3ZhciBrPURhdGUuY3JlYXRlKDFlMyoraik7ay5pc1RoaXNZZWFyKCk/ay5pc1RvZGF5KCk/eC5fc3RhcnQ9ay5mb3JtYXQoIntIfTp7bW19Ontzc30iKTp4Ll9zdGFydD1rLmZvcm1hdCgie2R9IHtNb259LCB7SH06e21tfSIpOnguX3N0YXJ0PWsuZm9ybWF0KCJ7ZH0ge01vbn0ge3l5eXl9Iil9ZWxzZSB4Ll9zdGFydD0iPz8/IjtpZigiRXJyb3IiPT14LnBpZD94Ll9wcm9ncmVzcz0iIjoiRG9uZSI9PXgucGlkP3guX3Byb2dyZXNzPSIxMDAlIjp4Ll9wcm9ncmVzcz1PYmplY3QuaXNOdW1iZXIoeC5wcm9ncmVzcyk/KDB8eC5wcm9ncmVzcy5jbGFtcCgwLDEwMCkpKyIlIjoiICIseC5zb3VyY2UmJngudGFyZ2V0KXt2YXIgbD14LnNvdXJjZSxtPXgudGFyZ2V0LG49dihsKSxvPXYobSk7eC5waG90b25fdGFzazt4Ll9ncm91cD1yKHgpO3ZhciBwPXguX2dyb3VwPyI4LSIreC5fZ3JvdXA6IiI7bi5lbmRzV2l0aChvKT9uPW4udG8obi5sZW5ndGgtby5sZW5ndGgpKyJ+IjpvLmVuZHNXaXRoKG4pJiYobz1vLnRvKG8ubGVuZ3RoLW4ubGVuZ3RoKSsifiIpLC9cLy8udGVzdChuKSYmIS9cLy8udGVzdChvKT8oeC5fbGVmdD1wKygiRG9uZSI9PXgucGlkPyI3LSI6IkVycm9yIj09eC5waWQ/IjEtIjp4LmRvY19pZD8iMi0iOiIzLSIpK28rIjItIituLHguX2Rlc2M9ZC5hc3NpZ24odChvLDMwKSxzKG0pKStlLmFzc2lnbih4LmRvY3M/Z1s1XTp4LmZpbHRlcj9nWzRdOmdbM10pK2QuYXNzaWduKHQobiwzMCkscyhsKSkpOih4Ll9sZWZ0PXArKCJEb25lIj09eC5waWQ/IjctIjoiRXJyb3IiPT14LnBpZD8iMS0iOnguZG9jX2lkPyIyLSI6IjMtIikrbisiMS0iK28seC5fZGVzYz1kLmFzc2lnbih0KG4sMzApLHMobCkpK2UuYXNzaWduKHguZG9jcz9nWzJdOnguZmlsdGVyP2dbMV06Z1swXSkrZC5hc3NpZ24odChvLDMwKSxzKG0pKSkseC5kb2NfaWQmJih4Ll9kZXNjPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjJytpKyIvIitzKHguZG9jX2lkKSsnIj4nK3guX2Rlc2MrIjwvYT4iKX1lbHNlL2NvbXBhY3Rpb24vLnRlc3QoeC50eXBlKT8oeC5fZGVzYz1jLmFzc2lnbih1KHgsNjApKSx4Ll9sZWZ0PSI5LSIreC5kYXRhYmFzZSx4Ll9ncm91cD1yKHgpKToiaW5kZXhlciI9PXgudHlwZT8oeC5fZGVzYz1jLmFzc2lnbih1KHgsMzApKSx4Ll9sZWZ0PSJJLSIreC5fZGVzYyx4Ll9ncm91cD0i4oCNSW5kZXhlcuKAjSIpOnguX2Rlc2M9eC5fcGlkO3JldHVybiB4fWZ1bmN0aW9uIG4oeCl7cmV0dXJuICQuZXh0ZW5kKG8oeCkse3BpZDoiRXJyb3IiLF9yZWFzb246cyh4Ll9yZXBsaWNhdGlvbl9zdGF0ZV9yZWFzb258fCJFcnJvciIpLGRvY19pZDp4Ll9pZCxwcm9ncmVzczowfSl9ZnVuY3Rpb24gbyh4KXt2YXIgYT1EYXRlLmNyZWF0ZSh4Ll9yZXBsaWNhdGlvbl9zdGF0ZV90aW1lKS52YWx1ZU9mKCkvMWUzfDA7cmV0dXJue3BpZDoiRG9uZSIsY29udGludW91czp4LmNvbnRpbnVvdXMscmVwbGljYXRpb25faWQ6eC5fcmVwbGljYXRpb25faWQsX3NlbGVjdGVkOmIudGFzay5zZWxlY3Rpb24uaW5kZXhPZih4Ll9yZXBsaWNhdGlvbl9pZCk+LTEsZG9jX2lkOnguX2lkLHByb2dyZXNzOjEwMCxwaG90b25fdGFzazp4LnBob3Rvbl90YXNrfHwiIixzb3VyY2U6eC5zb3VyY2UsZmlsdGVyOnguZmlsdGVyfHx4LmRvY19pZHN8fG51bGwsdGFyZ2V0OngudGFyZ2V0LHN0YXJ0ZWRfb246YSx1cGRhdGVkX29uOmEsdHlwZToicmVwbGljYXRpb24ifX1mdW5jdGlvbiBwKCl7dmFyIGM9YS5UYXNrcy5zbGljZSgwKTtjPWMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBtKHgpfSkuc29ydChmdW5jdGlvbih4LGEpe3JldHVybiB4Ll9sZWZ0PGEuX2xlZnQ/LTE6eC5fbGVmdD5hLl9sZWZ0PzE6MH0pO3ZhciBkPXt9O2M9KGM9Yy5yZXZlcnNlKCkpLnJlZHVjZShmdW5jdGlvbih4LGEsZSl7eC5wdXNoKGEpO3ZhciBmLGc9cihhKSxoPWNbZSsxXTtpZighZylyZXR1cm4geDtkW2ddfHwoZFtnXT17cnVuOjAsZG9uZTowLGVycjowLHNlbDowfSksKGY9ZFtnXSlbIkVycm9yIj09YS5waWQ/ImVyciI6IkRvbmUiPT1hLnBpZD8iZG9uZSI6InJ1biJdKz0xLGYuc2VsKz1hLl9zZWxlY3RlZD8xOjA7dmFyIGk9Il9fIitjdy5saWIuc2RibShnKTtyZXR1cm4gaCYmcihoKT09Z3x8eC5wdXNoKHtwaWQ6aSxfcGlkOiIiLGNvbnRpbnVvdXM6ITEscmVwbGljYXRpb25faWQ6aSxkb2NfaWQ6IiIscGhvdG9uX3Rhc2s6ZyxyZXBsaWNhdGlvbl9pZDovKGNvbXBhY3Rpb258aW5kZXhlcikkLy50ZXN0KGEudHlwZSk/IiI6Il9fIitnLmVzY2FwZUhUTUwoKSxmaWx0ZXI6IiIsdGFyZ2V0OiIiLHN0YXJ0ZWRfb246IiIsdXBkYXRlZF9vbjoiIixfdHlwZToiZ3JvdXAiLF9zZWxlY3RlZDpmLnJ1bitmLmRvbmUrZi5lcnI9PWYuc2VsLF9ydW46Zi5ydW4sX2dyb3VwOmcsX2ZvbGQ6ISFiLnRhc2suZm9sZFtnXSxfZGVzYzpzKGcpLF9wcm9ncmVzczpxKGYpfSkseH0sW10pLGEuVGFza3MubGVuZ3RoPTAsYy5yZXZlcnNlKCkuZm9yRWFjaChmdW5jdGlvbih4KXthLlRhc2tzLnB1c2goeCl9KSxiLnRhc2suc2VsZWN0aW9uLmxlbmd0aD0wLGEuVGFza3MuZm9yRWFjaChmdW5jdGlvbih4KXt4Ll9zZWxlY3RlZCYmYi50YXNrLnNlbGVjdGlvbi5wdXNoKHgucmVwbGljYXRpb25faWQpfSkseCYmKGEubXkucmVjYWxjKCIjdGFzay1saXN0IiksYS5teS5jaGVjaygiI3Rhc2stY29scyIpLGEubXkuY2hlY2soIiN0YXNrLWxpc3QiKSxhLm15LmNoZWNrKCIjYnRuLXNlbGVjdC10YXNrcyIpKSxmLnJlc29sdmUoYS5UYXNrcyl9ZnVuY3Rpb24gcSh4KXt2YXIgYT0iIHRhc2stcm93LXRpcCI7cmV0dXJuW3guZXJyP2UuYXNzaWduKHguZXJyLCJyZWQxIGJnLXJlZDYiK2EpOiIiLHgucnVuP2UuYXNzaWduKHgucnVuLCJncmF5MSBiZy1ncmF5NiBvODAiK2EpOiIiLHguZG9uZT9lLmFzc2lnbih4LmRvbmUsImdyZWVuIGJnLWdyZWVuNiIrYSk6IiJdLmNvbXBhY3QoITApLmpvaW4oIiAiKX1mdW5jdGlvbiByKHgpe3JldHVybi9jb21wYWN0aW9uJC8udGVzdCh4LnR5cGUpPyLigI1EQiBjb21wYWN0aW9u4oCNIjoiaW5kZXhlciI9PXgudHlwZT8i4oCNSW5kZXhlcuKAjSI6eC5waG90b25fdGFza3x8YSh4LnRhcmdldCl8fGEoeC5zb3VyY2UpfHwiIjtmdW5jdGlvbiBhKHgpe2lmKCEvXmh0dHBbc10/OlwvLy50ZXN0KHgpKXJldHVybiIiO3ZhciBhPSIiO3RyeXsibG9jYWxob3N0IiE9KGE9bmV3IFVSTCh4KS5ob3N0bmFtZSsiIikmJiIxMjcuMC4wLjEiIT1hfHwoYT0iIil9Y2F0Y2goeCl7fXJldHVybiBhfX1mdW5jdGlvbiBzKHgpe3JldHVybigoL15odHRwW3NdP1w6XC9cLy8udGVzdCh4KT93KHgpOngpKyIiKS5lc2NhcGVIVE1MKCl9ZnVuY3Rpb24gdCh4LGEpe3ZhciBiPWF8fDIwO2lmKCEvXC8vLnRlc3QoeCkpcmV0dXJuIHMoKHgrIiIpLnRydW5jYXRlKGIsIm1pZGRsZSIsIuKApiIpKTt2YXIgYz14LnNwbGl0KCIvIik7cmV0dXJuIGNbMF0ubGVuZ3RoPi42KmI/cyhjWzBdLnRydW5jYXRlKC42KmJ8MCwibWlkZGxlIiwi4oCmIikpKyIvIitzKGMuc2xpY2UoMSkuam9pbigiLyIpKTpzKCh4KyIiKS50cnVuY2F0ZShiLCJtaWRkbGUiLCLigKYiKSl9ZnVuY3Rpb24gdSh4LGEpe3ZhciBiPXguZGF0YWJhc2V8fCI/PyIsYz14LmRlc2lnbl9kb2N1bWVudHx8IiI7cmV0dXJuL3NoYXJkc1wvWzAtOWEtZl17OH0tWzAtOWEtZl17OH1cLy4rJC8udGVzdChiKT90KGIuc3Vic3RyKDI1KS5yZXBsYWNlKC9cLlxkKyQvLCIiKSxhKSsoYz8iOiBfZC8iK3MoYy5zdWJzdHIoOCkpOiIiKStkKGIuc3Vic3RyKDcsMTcpKTp0KGIsYSkrKGM/IjogX2QvIitzKGMuc3Vic3RyKDgpKToiIik7ZnVuY3Rpb24gZCh4KXt2YXIgYT14LnNwbGl0KCItIikubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBwYXJzZUludCh4LDE2KX0pLGI9TWF0aC5yb3VuZChhWzFdLWFbMF0rMSksYz1NYXRoLnJvdW5kKGFbMF0vYisxKSxkPU1hdGgucm91bmQoNDI5NDk2NzI5Ni9iKTtyZXR1cm4gZS5hc3NpZ24oIiBbIitjKyIvIitkKyJdIiwiZnM5NSBncmF5MSIpfX1mdW5jdGlvbiB2KHgpe2lmKCEvXmh0dHBbc10/OlwvXC8uKy8udGVzdCh4KSlyZXR1cm4geDt2YXIgYT1uZXcgVVJMKHgpLGI9IjEyNy4wLjAuMSI9PWEuaG9zdG5hbWV8fCJsb2NhbGhvc3QiPT1hLmhvc3RuYW1lP2EucGF0aG5hbWUucmVwbGFjZSgvXlwvfFwvJC9nLCIiKTphLmhvc3RuYW1lK2EucGF0aG5hbWUucmVwbGFjZSgvXC8kLywiIik7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChiKX1mdW5jdGlvbiB3KHgpe3JldHVybiB4LnJlcGxhY2UoL14oaHR0cFtzXT9cOlwvXC9bXlw6QFwvXSs6KVteQF0rKEAuKykkLywiJDHigKLigKLigKLigKLigKIkMiIpfX0sUmVzdGFydFBvbGw6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guVGFza0xvb3BJbnRlcnZhbD14LlBobygiQ2ZnIikubG9vcEFjdGl2ZVRhc2tzLHguVGFza0xvb3AmJih4LlRhc2tMb29wLmNhbmNlbCgpLHguR2V0VGFza3MoITApKSx4LlRhc2tMb29wPXguR2V0VGFza3MuZmlsbCghMCkuZXZlcnkoMWUzKnguVGFza0xvb3BJbnRlcnZhbCl9LFJlc3RhcnRUYXNrczpmdW5jdGlvbih4LGEpe3ZhciBiLGM9dGhpcyxkPWMuZGF0YSxlPWMubGFuZyxmPSQuRGVmZXJyZWQoKSxnPShhfHxjLmRhdGEudGFzay5zZWxlY3Rpb24pLmZpbHRlcihjLk5vR3JvdXApLnNsaWNlKDApLGg9Yy5QaG8oIlJlcGxpY2F0b3JEQiIpLGk9W10saj1bXSxrPWN3LmxpYi5hMm8oZC50YXNrLmxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkpO2c9Zy5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuISFrW3hdfSk7dmFyIGw9Yy5UYXNrcy5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGcuaW5kZXhPZih4LnJlcGxpY2F0aW9uX2lkKT4tMSYmeC5kb2NfaWR9KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZG9jX2lkfSksbT1jLlRhc2tzLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZy5pbmRleE9mKHgucmVwbGljYXRpb25faWQpPi0xJiYheC5kb2NfaWR9KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2NhbmNlbDohMCxyZXBsaWNhdGlvbl9pZDp4LnJlcGxpY2F0aW9uX2lkfX0pLG49e3dpZHRoOjMwMCxtYW5pZmVzdDpjLlBobygiQ29uZmlybSIpLGRhdGE6e3RleHQ6Wyc8ZGl2IGNsYXNzPSJmczEzMCAnKyh4PyJyZWQiOiJvcmFuZ2UiKSsnIG1iNSI+JyxlW3g/IlRYVF9UQVNLX1NUT1BfVElUTEUiOiJUWFRfVEFTS19SRVNZTkNfVElUTEUiXSwiPC9kaXY+IixlW3g/IlRYVF9UQVNLX1NUT1BfV0FSTiI6IlRYVF9UQVNLX1JFU1lOQ19XQVJOIl0obC5sZW5ndGgsbS5sZW5ndGgsaCldLmpvaW4oIiIpLHllc2Nzczp4PyJyZWQiOiJvcmFuZ2UiLHllczplLkJUTl9UQVNLX1BST0NFRUQsbm86ZS5CVE5fQ0FOQ0VMLGNhbmNlbDoiIix1c2VCdXR0b25zOiEwfSxjc3M6ImxoMTYwIHhncmF5IHAyMCBwYjI1Iixlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiEwLGdsb2JhbDohMH07cmV0dXJuKGEmJmEubGVuZ3RoJiZsLmxlbmd0aD8kLkRlZmVycmVkKCkucmVzb2x2ZSh7Y21kOiJ5ZXMifSk6eD8kLm15Lm1vZGFsKG4pOihiPWMuTW9kYWxzLnRhc2tzPWMubXkuZmluZCgiI2J0bi1yZXN5bmMiKSkubW9kYWwoJC5leHRlbmQobix7cm9vdDpjLm15LmZpbmQoIiNycGFuZWwiKSxzY3JlZW46ITEsZ2xvYmFsOiExLGNzczoibGgxNjAgeGdyYXkgcDE1IHBiMjAiLGFsaWduOiJ0b3A6MTAyJTtsZWZ0OjA7Iixub3NlOiJ0b3AiLGZvY3VzOiIjYnRuLXllcyJ9KSkpLnRoZW4oZnVuY3Rpb24oeCl7aWYoInllcyIhPXguY21kKXJldHVybiBmLnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpO28oKX0pLmZhaWwoZnVuY3Rpb24oKXtmLnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMudGFza3M9PWImJihjLk1vZGFscy50YXNrcz1udWxsKX0pLGYucHJvbWlzZSgpO2Z1bmN0aW9uIG8oKXt2YXIgYTtmdW5jdGlvbiBiKHgpe3JldHVybiBjLlJlcSh7dXJsOltoLCJfYnVsa19kb2NzIl0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YVR5cGU6Impzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoe2RvY3M6eH0pfSl9bC5sZW5ndGgmJihhPWMuUmVxKHt1cmw6W2gsIl9hbGxfZG9jcyIse2luY2x1ZGVfZG9jczohMCxhdHRhY2htZW50czohMH1dLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoe2tleXM6bH0pfSkudGhlbihmdW5jdGlvbih4KXt4LnJvd3MuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT14LmRvYztqLnB1c2goe19pZDphLl9pZCxfcmV2OmEuX3JldixfZGVsZXRlZDohMH0pO3ZhciBiPXtfaWQ6YS5faWR9O2EuX2F0dGFjaG1lbnRzJiYoYi5fYXR0YWNobWVudHM9YS5fYXR0YWNobWVudHMpLCQuZXh0ZW5kKGIsT2JqZWN0LnJlamVjdChhLC9eXy8pKSxpLnB1c2goYil9KX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYihqKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoeClyZXR1cm4gYTtjdy5saWIubm90ZShjLmxhbmcuTVNHX1RBU0tfUkVTWU5DKTt2YXIgZD0kLkRlZmVycmVkKCk7cmV0dXJuIGZ1bmN0aW9uKCl7YihpKS50aGVuKGZ1bmN0aW9uKHgpe3ZhciBhPXgucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGEub2smJiIxLSIhPShhLnJldnx8IiIpLnN1YnN0cigwLDIpfHx4LnB1c2goYS5pZCkseH0sW10pO2lmKCFhLmxlbmd0aClyZXR1cm4gZC5yZXNvbHZlKHgpO3ZhciBjPWN3LmxpYi5hMm8oYSk7cmV0dXJuIGIoaS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuISFjW3guX2lkXX0pKS50aGVuKGZ1bmN0aW9uKHgpe2QucmVzb2x2ZSh4KX0pfSkuZmFpbChmdW5jdGlvbih4LGEsYil7ZC5yZWplY3QoeCxhLGIpfSl9LmRlYm91bmNlKDFlMykoKSxkLnByb21pc2UoKX0pKSxtLmxlbmd0aCYmKGwubGVuZ3RoP2EudGhlbjpmdW5jdGlvbih4KXthPXgoKX0pKGZ1bmN0aW9uKCl7dmFyIHg9JC5EZWZlcnJlZCgpLGE9bS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIGMuUmVxKHt1cmw6WyJfcmVwbGljYXRlIl0sbWV0aG9kOiJQT1NUIixkYXRhVHlwZToianNvbiIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoeCl9KX0pO3JldHVybiBRLmFsbFNldHRsZWQoYSkudGhlbihmdW5jdGlvbihhKXt4LnJlc29sdmUoKX0sZnVuY3Rpb24oKXt4LnJlc29sdmUoKX0pLHgucHJvbWlzZSgpfSksYS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZVt4PyJNU0dfVEFTS19TVE9QIjoiTVNHX1RBU0tfUkVTWU5DX09LIl0sIm9rIiksJC5teS5yYWRpbygiZGJsaXN0IixbaF0pLHh8fCQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6aCxjbWQ6IndyaXRlIixkb2NzOmkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4Ll9pZH0pfSksZi5yZXNvbHZlKGkpfSkuZmFpbChmdW5jdGlvbihhLGIsYyl7Y3cubGliLm5vdGUoZVt4PyJFUlJfVEFTS19TVE9QIjoiRVJSX1RBU0tfUkVTWU5DIl0uYXNzaWduKGErIjogIitiKSwiZXJyb3IiKSxjb25zb2xlLmxvZyhhLGIsYywiVW5zYXZlZCB0YXNrczoiLGkpLGYucmVqZWN0KGEsYixjKX0pfX0sVFRhc2s6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5kYXRhLGI9JzxkaXYgY2xhc3M9ImNiLXRhc2stcm93IGRpYiB2YXQgZnM5MCI+ezF9PC9kaXY+JztyZXR1cm4gYj0oIkVycm9yIiE9eC5waWR8fHguZG9jX2lkKSYmeC5yZXBsaWNhdGlvbl9pZD9iLmFzc2lnbignPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ0YXNrLXNlbGVjdGlvbiIgY2xhc3M9ImNwIHJvdy1zZWwgbWwyIiB2YWx1ZT0ie3JlcGxpY2F0aW9uX2lkfSIgJysoeC5fc2VsZWN0ZWQ/ImNoZWNrZWQ+IjoiPiIpKTpiLmFzc2lnbigiJm5ic3A7IiksKCJncm91cCIhPXguX3R5cGU/Wyc8ZGl2IGNsYXNzPSJ2aWV3LXJvdyBwbDI3IHByOCI+JyxiLCc8ZGl2IGNsYXNzPSJ0YXNrbGFiZWwgY3AgZGliIHcyMHAgZWxsIGZzOTUgcHQxIGdyYXkgdmF0IiB0aXRsZT0ie19waWRzYWZlfSI+e19waWR9PC9kaXY+JywnPGRpdiBjbGFzcz0iZGliIHc3MHAgZWxsIHByMTAgdmF0Ij57X3R5cGV9IHtfZGVzY308L2Rpdj4nLCJEb25lIj09eC5waWQ/Wyc8ZGl2IGNsYXNzPSJkaWIgdzEwcCB2YXQgdGFyIGdyYXkgZnM5MCI+JywnPGRpdiBjbGFzcz0iYnRuLWRvbmUtcmVzdGFydCBwMCBkaWIgdmF0IHRhYyBiZy1ncmF5NiBncmF5MSBicjIgY3AiICcsJ2RhdGEtaWQ9IntyZXBsaWNhdGlvbl9pZH0iIHN0eWxlPSJtaW4td2lkdGg6NjAlIiB0aXRsZT0iUmVzdGFydCBzeW5jIj4nLCc8c3BhbiBjbGFzcz0iZmktcGxheSI+PC9zcGFuPicsIjwvZGl2PjwvZGl2PiJdLmpvaW4oIiIpOlsnPGRpdiBjbGFzcz0iZGliIHcxMHAgdmF0IHRhciBncmF5IHB0MSBmczkwIj57X3Byb2dyZXNzfTwvZGl2PiddLmpvaW4oIiIpLCI8L2Rpdj4iXS5qb2luKCIiKTpbJzxkaXYgY2xhc3M9InZpZXctcm93IHBsMjcgcHI4Ij4nLGIsJzxkaXYgY2xhc3M9ImRpYiB3ODBwIGVsbCBwcjEwIHZhdCBvODAgdGFzay1mb2xkZ3JvdXAgY3AiICcsJ2RhdGEtZ3JvdXA9InsnKyh4LnJlcGxpY2F0aW9uX2lkPyJyZXBsaWNhdGlvbl9pZCI6Il9ncm91cCIpKyd9Ij4nLCc8c3BhbiBjbGFzcz0iYm9sZGVyIj57X2Rlc2N9PC9zcGFuPicsJzxzcGFuIGNsYXNzPSInKyhhLnRhc2suZm9sZFt4LnBob3Rvbl90YXNrXT8iYXJpZ2h0IjoiYWRvd24iKSsnIj48L3NwYW4+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0iZGliIHcyMHAgdmF0IHRhciBncmF5IGJvbGRlciBmczkwIj57X3Byb2dyZXNzfTwvZGl2PicsIjwvZGl2PiJdLmpvaW4oIiIpKS5hc3NpZ24oeCl9LHBhcmFtczp7c3RyaWN0OiEwfX0sJGxvZzp7aWQ6ImN3LlBob3Rvbi4kbG9nIixsYW5nOnt9LGRhdGE6e3NyYzoiY291Y2giLHNlYXJjaDoiIixzaXplOiIxMCIsb2Zmc2V0OiIwIixsaW5lczoiIixkaXI6InJldmVyc2UifSxQcmV2OltdLGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4ibG9nIn0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iTG9ncyJ9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGF8fDEhPXgubGVuZ3RofHwiX2xvZyIhPXhbMF0/bnVsbDp7dGl0bGU6IkxvZ3MifX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3JldHVybiAkLmV4dGVuZChiLGEuUGhvKCJMcyIpKCJMb2dzIil8fHt9KSxhLlByZXY9W2Iuc2l6ZSxiLm9mZnNldF0sYS5HZXQoITEsITApLnRoZW4oZnVuY3Rpb24oYil7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSksYS5uaWNlU2Nyb2xsKHguZmluZCgiI3JlcG9ydCIpKX0pfSx1aTp7IiNsc2l6ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguc2l6ZT1pc05hTihhKXx8IWE/IjEwIjooMHwrYSkuY2xhbXAoMSw1MDApKyIiLHRoaXMubXkuZmluZCgiI2xvZmZzZXQiKS5hdHRyKCJzdGVwIix4LnNpemUpKSx4LnNpemV9fSwiI2xvZmZzZXQiOiJvZmZzZXQiLCIjbG9nLXNlYXJjaCI6e2RlbGF5OjE1MCxiaW5kOiJzZWFyY2giLGNzczp7Im15LXNlYXJjaCI6L14uezIsfSQvfX0sIiNsb2dkaXIiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX0RJUil9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguZGlyPWErIiIpLHguZGlyfX0sIiNsb2ctcHJveHkiOntkZWxheTozMDAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7W3guc2l6ZSx4Lm9mZnNldCx4LmRpcl0rIiIhPWIuUHJldisiIiYmYi5HZXQoKS50aGVuKGZ1bmN0aW9uKCl7Yi5teS5yZWNhbGMoIiNsb2dzIil9KS5hbHdheXMoZnVuY3Rpb24oKXtiLlByZXY9W3guc2l6ZSx4Lm9mZnNldCx4LmRpcl0sYi5QaG8oIkxzIikoIkxvZ3MiLHtzaXplOnguc2l6ZX0pfSl9LHdhdGNoOlsiI2xzaXplIiwiI2xvZmZzZXQiLCIjbG9nZGlyIl19LCIjbG9ncyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYjtyZXR1cm4geC5zZWFyY2gubGVuZ3RoPjE/KGI9bmV3IFJlZ0V4cCgiKCIrUmVnRXhwLmVzY2FwZSh4LnNlYXJjaCkrIikiLCJpIikseC5saW5lcy5saW5lcygpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiJbIiE9YVswXSYmeC5sZW5ndGg/eFt4Lmxlbmd0aC0xXSs9IlxuIithOngucHVzaChhKSx4fSxbXSkuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiBiLnRlc3QoeCl9KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGFjZShiLCLvv7EkMe+/sCIpLmVzY2FwZUhUTUwoKS5yZXBsYWNlKCLvv7EiLCc8c3BhbiBjbGFzcz0ibG9nLWZvdW5kIj4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+Iil9KS5qb2luKCJcbiIpKTp4LmxpbmVzLmVzY2FwZUhUTUwoKX0sd2F0Y2g6WyIjbG9nLXNlYXJjaCJdfSwiI2J0bi1yZWxvYWQiOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLkdldCgpLnRoZW4oZnVuY3Rpb24oKXtiLm15LnJlY2FsYygiI2xvZ3MiKX0pfX0sIiNidG4tbG9nLW1pbnVzIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJih4Lm9mZnNldD0oK3gub2Zmc2V0LSt4LnNpemUpLmNsYW1wKDAsMWUxMCkrIiIpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiEreC5vZmZzZXR9fSx3YXRjaDoiI2xvZmZzZXQiLHJlY2FsYzoiI2xvZmZzZXQifSwiI2J0bi1sb2ctcGx1cyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5vZmZzZXQ9KCt4Lm9mZnNldCsgK3guc2l6ZSkuY2xhbXAoMCwxZTEwKSsiIil9LHdhdGNoOiIjbG9mZnNldCIscmVjYWxjOiIjbG9mZnNldCJ9fSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjcmVwb3J0IikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzE1MCBmczk1Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIHhncmF5IG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImxvZy1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJudyBkaWIgdmF0Ij48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yOCB2YXQiIHRpdGxlPSJ7UExDX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PHNwYW4gY2xhc3M9ImJvbGRlciBmczE1MCBsaDEzMCB4Z3JheSBtcjMwIGRpYiB2YXQiPntUWFRfVElUTEV9PC9zcGFuPiA8ZGl2IGNsYXNzPSJkaWIgdmF0Ij48c3Bhbj57VFhUX1NJWkV9PC9zcGFuPiA8aW5wdXQgaWQ9ImxzaXplIiB0eXBlPSJudW1iZXIiIGNsYXNzPSJ3NzAiIG1pbj0iMSIgbWF4PSI1MDAiIHN0ZXA9IjEiPiA8c3Bhbj57VFhUX0tCfSwge1RYVF9PRkZTRVR9PC9zcGFuPiA8aW5wdXQgaWQ9ImxvZmZzZXQiIHR5cGU9Im51bWJlciIgY2xhc3M9IncxMDAiIG1pbj0iMCIgbWF4PSIxMDAwMDAwIiBzdGVwPSIxMCI+IDxzcGFuPntUWFRfS0J9PC9zcGFuPiA8L2Rpdj48c3BhbiBjbGFzcz0iYnV0dG9ucyBtbDEwIj48YnV0dG9uIGlkPSJidG4tbG9nLW1pbnVzIiBjbGFzcz0idzQwIG1yMiBwbDAgcHIwIj48c3BhbiBjbGFzcz0iZmktYXJyb3ctbGVmdCBvODAiPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tbG9nLXBsdXMiIGNsYXNzPSJ3NDAgbXIyIHBsMCBwcjAiPjxzcGFuIGNsYXNzPSJmaS1hcnJvdy1yaWdodCBvODAiPjwvc3Bhbj48L2J1dHRvbj48L3NwYW4+PHNwYW4gaWQ9ImxvZ2RpciIgY2xhc3M9Im1sMjAiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodC00IGZlYXRoZXIgbXQ0Ij48ZGl2IGlkPSJyZXBvcnQiIGNsYXNzPSJwbDIwIHByMjAgcGFuZWxoZWlnaHQtNCBwcmUiPjxkaXYgaWQ9ImxvZ3MiIGNsYXNzPSJmczkwIGxoMTQwIHBiMTIgcHQ4Ij48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJsb2ctcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHN0eWxlOnsiIHByZSI6IndoaXRlLXNwYWNlOiBwcmUtd3JhcDsiLCIgLmxvZy1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjMyLDEyMSwwLjk0KTtib3JkZXItcmFkaXVzOjJweDsifSxHZXQ6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9MTAyNCp4LmRhdGEuc2l6ZSxiPTEwMjQqKHguZGF0YS5vZmZzZXR8fDApLGM9WyJfbG9nIix7Ynl0ZXM6YX0sYj97b2Zmc2V0OmJ9Om51bGxdLmNvbXBhY3QoKTtyZXR1cm4geC5SZXEoe3VybDpjLGRhdGFUeXBlOiJ0ZXh0In0pLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGI9YS5saW5lcygpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiJbIiE9YVswXSYmeC5sZW5ndGg/eFt4Lmxlbmd0aC0xXSs9IlxuIithOngucHVzaChhKSx4fSxbXSk7InJldmVyc2UiPT14LmRhdGEuZGlyJiYoYj1iLnJldmVyc2UoKSkseC5kYXRhLmxpbmVzPWIuam9pbigiXG4iKX0pfSxwYXJhbXM6e3N0cmljdDohMH19LCRkaWZmOntpZDoiY3cuUGhvdG9uLiRkaWZmIixsYW5nOnt9LHJlcXVpcmU6W3sid2luZG93Lmpzb25kaWZmcGF0Y2giOiJsaWIvZGlmZi5qcyJ9XSxwYXJhbXM6e3Jlc3R5bGU6MTAwLHN0cmljdDohMH0sZGF0YTp7aWQ6IiIscmV2OlsiIiwiIl0sc2tpcDpbIl9yZXYiLCJsb2ciXSxkb2M6e30sY29uZmxpY3RzOltdLHJldnM6W10scGFyYW1zOltdLGpzb246W3t9LHt9XX0saGFzaDpmdW5jdGlvbigpe3JldHVybiJkaWZmIn0sdGl0bGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLmRhdGEsYT0iRGlmZiAiK3RoaXMuZGF0YS5pZDtyZXR1cm4geC5yZXZbMF0hPXgucmV2WzFdJiYoYSs9IiwgezF9fnsyfSIuYXNzaWduKHgucmV2WzBdP3gucmV2WzBdLnNwbGl0KCItIilbMF06Imxhc3QiLHgucmV2WzFdP3gucmV2WzFdLnNwbGl0KCItIilbMF06Imxhc3QiKSksYX0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtpZighKHgubGVuZ3RoPDMpJiZhJiYiX2RpZmYiPT14WzFdKXJldHVybiJfZGVzaWduIj09eFsyXSYmeFszXSYmKHhbM109eFsyXSsiLyIreFszXSx4LnJlbW92ZUF0KDIpKSx7dGl0bGU6IkRpZmYgIit0aGlzLnRydW5jKHhbMl0sMjApLGFwcERhdGE6e2lkOnhbMl0scmV2OlsoeFszXXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKSwoeFs0XXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKV0scGF0aDp4fX19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTt0cnl7YS5EaWZmPWpzb25kaWZmcGF0Y2guY3JlYXRlKHtvYmplY3RIYXNoOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzQXJyYXkoeCkmJk9iamVjdC5pc051bWJlcih4WzBdKSlyZXR1cm4geFswXSsiIjtpZihPYmplY3QuaXNPYmplY3QoeCkpe2lmKHZvaWQgMCE9PXguX2lkKXJldHVybiB4Ll9pZCsiIjtpZih2b2lkIDAhPT14LmlkKXJldHVybiB4LmlkKyIiO2lmKHZvaWQgMCE9PXgubmFtZSlyZXR1cm4geC5uYW1lKyIifXJldHVybiIkJGluZGV4OiIrYX19KX1jYXRjaCh4KXt9cmV0dXJuIGIucGF0aC5sZW5ndGg+MyYmKGIucmV2WzBdPShiLnBhdGhbM118fCIiKS5yZXBsYWNlKC9eXEQrLywiIiksYi5yZXZbMV09KGIucGF0aFs0XXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKSkseC50aGVuKGZ1bmN0aW9uKGIpe2EubmljZVNjcm9sbCh4LmZpbmQoIiNkaWZmIikpfSksYS5HZXREb2MoKS50aGVuKGZ1bmN0aW9uKCl7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSl9KX0sUmV2c0xpc3Q6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guZGF0YTt4LlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoeCwiI2RvYy1yZXYwIikseC5QaG8oIiRkb2MiKS5SZXZzTGlzdC5jYWxsKHgsIiNkb2MtcmV2MSIpfSxHZXRSZXZzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPVtdO3JldHVybiBhLnJldlswXT9hLmpzb25bMF0uX3JldiYmYS5yZXZbMF09PWEuanNvblswXS5fcmV2fHxiLnB1c2goeC5SZXEoe3VybDpbYS5wYXRoWzBdLGEuaWQse3JldjphLnJldlswXX1dfSkudGhlbihmdW5jdGlvbih4KXthLmpzb25bMF09eH0pKTphLmpzb25bMF09JC5leHRlbmQoITAse30sYS5kb2MpLGEucmV2WzFdP2EuanNvblsxXS5fcmV2JiZhLnJldlsxXT09YS5qc29uWzFdLl9yZXZ8fGIucHVzaCh4LlJlcSh7dXJsOlthLnBhdGhbMF0sYS5pZCx7cmV2OmEucmV2WzFdfV19KS50aGVuKGZ1bmN0aW9uKHgpe2EuanNvblsxXT14fSkpOmEuanNvblsxXT0kLmV4dGVuZCghMCx7fSxhLmRvYyksUS5hbGxTZXR0bGVkKGIpfSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjZGlmZiIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sdWk6eyIjZG9jLWlkIjp7YmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLnAydSxiPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjezF9IiB0aXRsZT0iezN9Ij57Mn08L2E+Jy5hc3NpZ24oYSh4LnBhdGhbMF0pLHRoaXMudHJ1bmMoeC5wYXRoWzBdLDE1KS5lc2NhcGVIVE1MKCkseC5wYXRoWzBdLmVzY2FwZUhUTUwoKSksYz0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKGEoeC5wYXRoWzBdKSsiLyIrYSh4LmlkKSsoeC5yZXZbMF0/Ii9fIit4LnJldlswXToiIiksdGhpcy50cnVuYyh4LmlkLDE1MCkuZXNjYXBlSFRNTCgpLHguaWQuZXNjYXBlSFRNTCgpKTtyZXR1cm5bJzxzcGFuIGNsYXNzPSJmczE1MCBsaDEzMCB4Z3JheSBtdC0xIG84MCI+JywnPHNwYW4gY2xhc3M9Im85MCI+RGlmZiA8L3NwYW4+JywnPHNwYW4gY2xhc3M9Im84MCI+ezF9PC9zcGFuPuKAiS/igIk8c3BhbiBjbGFzcz0iIj57Mn08L3NwYW4+JywiPC9zcGFuPiJdLmpvaW4oIiIpLmFzc2lnbihiLGMpfSx3YXRjaDpbIiNkb2MtcmV2MCJdfSwiI3Byb3AtaGlkZSI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLnNlbGVjdDIoeCx7bXVsdGlwbGU6ITAsdGFnczpbIl9yZXYiLCJsb2ciXSxwbGFjZWhvbGRlcjphLmxhbmcuUExDX0JBTn0pfSxiaW5kOiJza2lwIn0sIiNkb2MtcmV2MCI6e2JpbmQ6InJldi4wIixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5QaG8oIiRkb2MiKS5SZXZzTGlzdC5jYWxsKGEsIiNkb2MtcmV2MCIpfX0sIiNkb2MtcmV2MSI6e2JpbmQ6InJldi4xIixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5QaG8oIiRkb2MiKS5SZXZzTGlzdC5jYWxsKGEsIiNkb2MtcmV2MSIpfX0sJ2lucHV0W25hbWU9InNldHRpbmdzIl0nOiJwYXJhbXMiLCIjZGlmZiI6e2RlbGF5OjEwMCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhLGIsYyxkPXRoaXMsZT14Lmpzb24sZj14LnNraXAuc2xpY2UoMCkuY29uY2F0KFsiX2NvbmZsaWN0cyIsIl9yZXZzX2luZm8iXSk7cmV0dXJuIiI9PXgucmV2WzBdJiYiIj09eC5yZXZbMV18fHgucmV2WzBdPT14LnJldlsxXT8nPGRpdiBjbGFzcz0idGFjIHA1MCBmczE1MCBvcmFuZ2UiPnsxfTwvZGl2PicuYXNzaWduKGQubGFuZy5UWFRfU0VMRUNUKTooYj1PYmplY3QucmVqZWN0KGVbMF0sZiksYz1PYmplY3QucmVqZWN0KGVbMV0sZiksbnVsbD09KGE9ZC5EaWZmLmRpZmYoYixjKSk/JzxkaXYgY2xhc3M9InRhYyBwNTAgZnMxMjAgZ3JlZW4iPnsxfTwvZGl2PicuYXNzaWduKGQubGFuZy5UWFRfTk9ESUZGKTooLTE9PXgucGFyYW1zLmluZGV4T2YoInVuY2hhbmdlZCIpP2pzb25kaWZmcGF0Y2guZm9ybWF0dGVycy5odG1sLmhpZGVVbmNoYW5nZWQoKTpqc29uZGlmZnBhdGNoLmZvcm1hdHRlcnMuaHRtbC5zaG93VW5jaGFuZ2VkKCksanNvbmRpZmZwYXRjaC5mb3JtYXR0ZXJzLmh0bWwuZm9ybWF0KGEsYikpKX0sd2F0Y2g6WydpbnB1dFtuYW1lPSJzZXR0aW5ncyJdJywiI3Byb3AtaGlkZSJdfSwiI2RpZmYtcHJveHkiOntkZWxheTozMDAsYmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzOygiIiE9eC5yZXZbMF18fCIiIT14LnJldlsxXXx8eC5qc29uWzBdLl9yZXYpJiZhLkdldFJldnMoKS50aGVuKGZ1bmN0aW9uKCl7YS5teS5jaGVjaygiI2RpZmYiKX0pO3gucGF0aC5zbGljZSgwKTt4LnBhdGhbM109PSJfIit4LnJldlswXSYmeC5wYXRoWzRdPT0iXyIreC5yZXZbMV18fCh4LnBhdGhbM109Il8iK3gucmV2WzBdLHgucGF0aFs0XT0iXyIreC5yZXZbMV0sJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOngudGFiaWQscGF0aDp4LnBhdGgsdGl0bGU6YS50aXRsZSgpfSkpfSx3YXRjaDpbIiNkb2MtcmV2MCIsIiNkb2MtcmV2MSJdfX0sSFRNTDonPGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMTAgbGgxNjAiPjxkaXYgaWQ9ImRvYy1pZCIgY2xhc3M9ImRpYiB2YXQgbncgb2ggZWxsIG1yMTAiPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgdzE5MCBtciI+PGlucHV0IGlkPSJkb2MtcmV2MCIgdHlwZT0idGV4dCIgY2xhc3M9IncxMDBwIGZzMTEwIHZhdCI+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCBvODAgdGFjIHczMCBwdDEiPnZzPC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCB3MTkwIj48aW5wdXQgaWQ9ImRvYy1yZXYxIiB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48ZGl2IGNsYXNzPSJmciI+PGRpdiBjbGFzcz0iZGliIHZhdCB3MjUwIG1sMTAgbXI4Ij48ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MCBwcjcgdGFyIHB0MSI+e1RYVF9CQU59PC9kaXY+PGRpdiBjbGFzcz0idzIwMCBkaWIgdmF0IGZzOTAiPjxpbnB1dCBpZD0icHJvcC1oaWRlIiB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48L2Rpdj48bGFiZWwgY2xhc3M9IncxMjAgZGliIHZhdCBwdDEgbGgxMjAiIHN0eWxlPSJjb2xvcjppbmhlcml0OyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJzZXR0aW5ncyIgdmFsdWU9InVuY2hhbmdlZCIgY2xhc3M9ImZzMTA1Ii8+PHNwYW4gY2xhc3M9ImRpYiB2YXQgcHQxIHBsNyI+e0xCTF9TUkN9PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctcGFuZWxzIiBjbGFzcz0idzEwMHAgcGFuZWxoZWlnaHQgZmVhdGhlciBwbDIwIj48ZGl2IGlkPSJkaWZmIiBjbGFzcz0ianNvbmRpZmYgdzEwMHAgcGFuZWxoZWlnaHQgcHIyMCBwdDEwIHBiMTYgbGgxMzAiPjwvZGl2Pjwvc2VjdGlvbj48ZGl2IGlkPSJkaWZmLXByb3h5Ij48L2Rpdj4nLHN0eWxlOnsiICNkb2MtaWQiOiJtYXgtd2lkdGg6Y2FsYygxMDAlIC0gODEwcHgpOyBtaW4td2lkdGg6MTUwcHg7IiwiIHByZSI6eyIiOiJmb250LXNpemU6aW5oZXJpdDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogYXV0bzsgd29yZC1icmVhazphdXRvOyIsIiAiOmZ1bmN0aW9uKHgpe3JldHVybiJtYXgtd2lkdGg6ezF9cHg7Ii5hc3NpZ24oeC53aWR0aCgpLTIyMCl9fSwiIC5qc29uZGlmZnBhdGNoLWRlbHRhIjoicGFkZGluZy1sZWZ0OjA7IGZvbnQtc2l6ZTppbmhlcml0OyJ9LEdldERvYzpmdW5jdGlvbih4LGEpe3ZhciBiLGMsZD10aGlzLGU9ZC5kYXRhLGY9e2NvbmZsaWN0czohMCxyZXZzX2luZm86ITB9O3JldHVybiBkLkJ1c3kuZGVib3VuY2UoMjApKCEwKSxiPVtlLnBhdGhbMF0sZS5pZCxmXSwoYz1kLlJlcShiKS50aGVuKGZ1bmN0aW9uKGIpe2UuZG9jPWIsZyhlLmRvYyksYSYmZC5SZXZzTGlzdCgpLGQubXkudHJpZ2dlcigiI3N0YXRlLXByb3h5IiwicmVzZXR0YWJoYXNoLm15IikseCYmZC5teS5yZWRyYXcoKX0pKS5hbHdheXMoZnVuY3Rpb24oKXtkLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpLGM7ZnVuY3Rpb24gZyh4KXtPYmplY3QuaXNBcnJheSh4Ll9yZXZzX2luZm8pJiYoeC5fcmV2c19pbmZvPXguX3JldnNfaW5mby5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuImF2YWlsYWJsZSI9PXguc3RhdHVzfSkpLGUuY29uZmxpY3RzPXguX2NvbmZsaWN0c3x8W10sZS5yZXZzPSh4Ll9yZXZzX2luZm98fFtdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmV2fSl9fX0sJHN0YXRzOntpZDoiY3cuQ291Y2guTW9uaXRvciIsQ29uZmlnOntzdGF0c01heFRpbWVmcmFtZToxODAwLHNlcmllTWF4TGVuZ3RoOjRlM30sZGF0YTp7cHJlc2V0TW91bnRlZDohMSxkb2M6e25hbWU6IlN0YXRzIn19LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4iX3N0YXRzIn0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iU3RhdHMifSxtYXRjaDpmdW5jdGlvbih4LGEpe3JldHVybiBhfHwxIT14Lmxlbmd0aHx8Il9zdGF0cyIhPXhbMF0/bnVsbDp7dGl0bGU6IlN0YXRzIn19LHVpOnsiI25vZGVzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGxpc3Rlbjp7cGhvdG9uX2NmZ19jaGFuZ2U6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guQ2ZnKCkuc3RhdHNSZWZyZXNoIT14LlBobygiQ2ZnIikuc3RhdHNSZWZyZXNoJiYoeC5DZmcoKS5zdGF0c1JlZnJlc2g9eC5QaG8oIkNmZyIpLnN0YXRzUmVmcmVzaCwkLm15LnJhZGlvKCJjb3VjaF9tb25pdG9yX2NmZ19jaGFuZ2UiLE9iamVjdC5jbG9uZSh4LkNmZygpKSkpfSx1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzT2JqZWN0KGEpJiYkLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9fX0sIiNlbmNyeXB0Ijp7aW5pdDpmdW5jdGlvbigpe30sYmluZDoiZHVtbXkifSwiI21uYW1lIjp7YmluZDpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaG9zdH0sY3NzOnsiYm9sZGVyIGZzMTgwIjpmdW5jdGlvbigpe3JldHVybiExfSxmczE3MDpmdW5jdGlvbigpe3JldHVybiEwfX19fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5UaW1lci5jYW5jZWwoKTt2YXIgYT14LmZpbmQoIiNub2RlcyIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sc3R5bGU6eyIgLm5vY3dtaW4iOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAjYXBwLXNlYXJjaCI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiICNub2RlLXRpbGVzIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9KGEuUGhvKCJNZW1iZXJzaGlwIikuY2x1c3Rlcl9ub2Rlc3x8WzFdKS5sZW5ndGgsZD0iIjtyZXR1cm4hIWEuZGF0YS5wcmVzZXRNb3VudGVkJiYoeC5maW5kKCJkaXYjcHJpbWUiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJyZWNhbGMiLCEwKX0pLHguZmluZCgiZGl2I3lheGlzIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigicmVjYWxjIil9KSksYS5DZmcoKS5zdGF0c1NjYWxlWT1jPihiPD0xNDAwPzI6NCk/MS4xOjEuNSwoYz4zfHxjPjEmJmI+MTQwMCkmJihkPXsiIC5ubm9kZSI6IndpZHRoOmNhbGMoNTAlIC0gMTZweCk7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9KSxkfX0sQXV0b1NhdmVOb2RlOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLkxzLGM9JC5leHRlbmQoITAse30seCksZD1hLkNmZygpLnNlcmllTWF4TGVuZ3RoO2Z1bmN0aW9uIGUoeCl7cmV0dXJuIHgubWFwKGZ1bmN0aW9uKHgpe3JldHVybiAwPT14PyIiOngudG9TdHJpbmcoMzYpfSkuam9pbigiICIpfWEuUGhvKCJfY29tcGlsZWQiKSYmKFsiZ2F1Z2VzIiwic2VyaWVzIl0uZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT1jW3hdO2EmJmEuZm9yRWFjaChmdW5jdGlvbih4KXt4LnJvd3M9eC5yb3dzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50byhkKX0pLm1hcChlKSx4LnRpbWU9ZSh4LnRpbWUudG8oeC5yb3dzLmxlbmd0aD4xP2Q6MTApKX0pfSksYigiU3RhdHMubm9kZS4iK2MubmFtZSxPYmplY3QucmVqZWN0KGMsWyJ1cmwiLCJjb3VjaCIsIm5hbWVzIiwiY29sb3JzIiwidW5pdHMiXSkpKX0sTW91bnQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPSh4fHxhLm15LnJvb3QoKSkud2lkdGgoKSxkPSEhYi5wcmVzZXRNb3VudGVkLGU9YS5QaG8oIkNvdWNoIikudmVyLGY9YS5kZWZhdWx0Tm9kZXNbZT49IjAwMi4iPyIyLngiOiIxLngiXTtpZihNYXRoLmxvZzEwPU1hdGgubG9nMTB8fGZ1bmN0aW9uKHgpe3JldHVybiBNYXRoLmxvZyh4KSpNYXRoLkxPRzEwRX0sIWQpe2lmKGEuQ2ZnKCkuc3RhdHNSZWZyZXNoPWEuUGhvKCJDZmciKS5zdGF0c1JlZnJlc2gsZT49IjAwMi4iKXtiLmRvYy5ub2Rlcz0oYS5QaG8oIk1lbWJlcnNoaXAiKS5jbHVzdGVyX25vZGVzfHxbXSkubWFwKGZ1bmN0aW9uKHgpe3ZhciBhPU9iamVjdC5jbG9uZShmLCEwKTtyZXR1cm4gYS5uYW1lPXgsYS51cmw9Ii9fbm9kZS97MX0vIi5hc3NpZ24oZW5jb2RlVVJJQ29tcG9uZW50KHgpKSxhfSk7dmFyIGc9Yi5kb2Mubm9kZXMubGVuZ3RoO2EuQ2ZnKCkuc3RhdHNTY2FsZVk9Zz4oYzw9MTQwMD8yOjQpPzEuMToxLjV9ZWxzZSBiLmRvYy5ub2Rlcz1bJC5leHRlbmQoITAse30sZildLGEuQ2ZnKCkuc3RhdHNTY2FsZVk9MS41O2EuTHM9YS5QaG8oIkxzIik7dmFyIGg9YS5DZmcoKS5zZXJpZU1heExlbmd0aD00ZTMvYi5kb2Mubm9kZXMubGVuZ3RofDA7YS5QaG8oIl9jb21waWxlZCIpJiZiLmRvYy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBiPWEuTHMoIlN0YXRzLm5vZGUuIit4Lm5hbWUpO2ImJihbImdhdWdlcyIsInNlcmllcyJdLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9Ylt4XTthJiZhLmZvckVhY2goZnVuY3Rpb24oeCl7eC50aW1lPWkoeC50aW1lKS50byhoKSx4LnJvd3M9eC5yb3dzLm1hcChpKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgudG8oaCl9KX0pfSksJC5leHRlbmQoITAseCxiKSl9KSxiLnByZXNldE1vdW50ZWQ9ITB9cmV0dXJuIGIuZG9jLm5vZGVzO2Z1bmN0aW9uIGkoeCl7cmV0dXJuIHguc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHBhcnNlSW50KHh8fCIwIiwzNil9KX19LHBhcmFtczp7c3RyaWN0OiEwfX0sVGFiOntpZDoiY3cuUGhvdG9uLlRhYiIsbGFuZzp7fSxkYXRhOntpZDoiIixuYW1lOiIiLHR5cGU6IiIsaGFzaDA6IiIsaGFzaDE6IiIsYWN0aXZlOiExLHBhdGg6W10sZXJyb3I6ITEscnVuOiExfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSl9LHVpOnsiI2wtdGFibmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGMubXkuZmluZCgiYSNsLXRhYm5hbWUiKS5hdHRyKCJocmVmIiwiIyIrYy5wMnUoeC5wYXRofHxbXSkuam9pbigiLyIpKS5hdHRyKCJ0aXRsZSIseC5wYXRoLmpvaW4oIi8iKSkudG9nZ2xlQ2xhc3MoInN5c3RlbSIsIXgucGF0aFswXXx8L14oX2Fib3V0fF9zdGF0c3xfY29uZmlnfF9sb2cpJC8udGVzdCh4LnBhdGhbMF0pKSxjLm15LnJvb3QoKS50b2dnbGVDbGFzcygiYWN0aXZlIiwhIXguYWN0aXZlKSx4Lm5hbWUuZXNjYXBlSFRNTCgpfSxjc3M6e3NtYWxsZXI6ZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZS5sZW5ndGg+MjB9fSxldmVudHM6ImNsaWNrLm15In0sIiNsLXRhYnN0YXRlIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LmVycm9yJiZ4Lmhhc2gwPT14Lmhhc2gxfSxyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LmVycm9yfX0sd2F0Y2g6IiNsLXRhYm5hbWUifSwiI2J0bi10YWJjbG9zZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnRyaWdnZXIoIiNidG4tdGFiY2xvc2UiLCJ0YWJjbG9zZSIseC5pZCl9LGV2ZW50czoiY2xpY2subXkifSwiI3RhYi1wcm94eSI6e2JpbmQ6ZnVuY3Rpb24oKXt9LGxpc3Rlbjp7YXBwYnVzeTpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmYS5pZD09eC5pZCYmdGhpcy5teS5yb290KCkudG9nZ2xlQ2xhc3MoInRhYi1idXN5IiwhIWEuYnVzeSl9LHBhdGhjaGFuZ2U6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNPYmplY3QoYSkpe3ZhciBiPXRoaXMsYz1hLnBhdGguc2xpY2UoMCk7aWYoYS5pZCE9eC5pZCl7aWYoYy5qb2luKCLvv70iKSE9eC5wYXRoLmpvaW4oIu+/vSIpKXJldHVybjt4Lmhhc2gwPT14Lmhhc2gxJiZiLlBobygiQ2xvc2UiKSh7dGFiaWQ6eC5pZCxlbmZvcmNlOiEwfSl9ZWxzZSB4LnBhdGg9Yyx4Lm5hbWU9YS50aXRsZXx8eC5uYW1lLGIuUGhvKCJfY29tcGlsZWQiKSYmeC5hY3RpdmUmJndpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCIjIitiLnAydShjKS5qb2luKCIvIikpLGIubXkuY2hlY2soIiNsLXRhYm5hbWUiKX19LHJlbG9hZDpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSYmYS5pZD09eC5pZCl7dmFyIGI9dGhpcyxjPWEucGF0aC5zbGljZSgwKSxkPSQoIiNsLWFwcHM+I2FwcC0iK2EuaWQpO2QubGVuZ3RoJiZkLmlzKCIubXktZm9ybSIpJiYoZC5teSgicmVtb3ZlIiksZC5yZW1vdmUoKSx4LnJ1bj0hMSx4LmVycm9yPSExLHguaGFzaDA9eC5oYXNoMT0iIix4LmFjdGl2ZSYmYi5QaG8oIlN3aXRjaCIpKGMpKX19fX19LEhUTUw6JzxhIGhyZWY9IiIgaWQ9ImwtdGFibmFtZSIgb25hdXhjbGljaz0iJCh0aGlzKS5wYXJlbnQoKS5maW5kKFwnI2J0bi10YWJjbG9zZVwnKS5jbGljaygpO3JldHVybiBmYWxzZTsiPjwvYT48ZGl2IGlkPSJsLXRhYnN0YXRlIiBjbGFzcz0ibC10YWJtYXJrIj7igKI8L2Rpdj48ZGl2IGlkPSJidG4tdGFiY2xvc2UiIGNsYXNzPSJsLXRhYm1hcmsiIHRpdGxlPSJ7QlROX0NMT1NFVEFCfSI+4pyVPC9kaXY+PGRpdiBpZD0idGFiLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+JyxwYXJhbXM6e3N0cmljdDohMH19LENvbmZpcm06e2lkOiJjdy5QaG90b24uQ29uZmlybSIscGFyYW1zOntkZWxheTo1LHN0cmljdDohMH0sZGF0YTp7Y21kOiIiLHRleHQ6IiIsY3NzOiJ4Z3JheSIseWVzOiJZZXMiLG5vOiJObyIsY2FuY2VsOiJDYW5jZWwiLHllc2NzczoiZ3JlZW4iLG5vY3NzOiIiLHVzZUJ1dHRvbnM6ITF9LGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLmRhdGE7eC5mb3JtZ2VuKFsnPGRpdiBjbGFzcz0iJytiLmNzcysnIj4nK2IudGV4dCsiPC9kaXY+Iix7bGFiZWw6IjcwcHgiLHJvdzphLnBhcmFtcy53aWR0aCsicHgiLHJvd0NzczoibXktcm93IG10MTUgcHQxNSBtYi01IHhncmF5IGJ0ZCJ9LFsiIiwic3BuI2J0bi15ZXMuYnV0dG9uLiIrKGIueWVzY3NzP2IueWVzY3NzKyIuIjoiIikrIm1yNSAgIix7dHh0OmIueWVzKyIifSwic3BuI2J0bi1uby5idXR0b24uIisoYi5ub2Nzcz9iLm5vY3NzKyIuIjoiIikrIm1yNS5oaWRlIix7dHh0OmIubm8rIiJ9LCJzcG4jYnRuLWNhbmNlbC5idXR0b24uZnIuaGlkZSIse3R4dDpiLmNhbmNlbCsiIn1dLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gYi51c2VCdXR0b25zJiYic3RyaW5nIj09dHlwZW9mIHgmJng/eC5yZXBsYWNlKC9ec3BuIyguKykkLywiYnV0IyQxLm1hcmtmb2N1cyIpOnh9KV0pfSx1aTp7IiNidG4teWVzIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHguY21kPSJ5ZXMiLGIudHJpZ2dlcigiY29tbWl0IikpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4Lnllc319fSwiI2J0bi1ubyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJih4LmNtZD0ibm8iLGIudHJpZ2dlcigiY29tbWl0IikpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4Lm5vfX19LCIjYnRuLWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJih4LmNtZD0iY2FuY2VsIixiLnRyaWdnZXIoImNhbmNlbCIpKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4heC5jYW5jZWx9fX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjIycHg7In19LEluZGV4RWQ6e2lkOiJjdy5QaG90b24uSW5kZXhFZCIsaW5oZXJpdDpbIlJUIl0scGFyYW1zOntyZXN0eWxlOjUwLHN0cmljdDohMH0sbGFuZzp7fSxyZXF1aXJlOlt7IndpbmRvdy5Db2RlTWlycm9yIjoibGliL2NvZGVtaXJyb3IuanMifV0sSFRNTDonPGRpdiBjbGFzcz0iYmctcGdyYXkgbGgxNjAgcHQyIHhncmF5IG53IG9oIGVsbCB4cGFuZWwiPjxkaXYgY2xhc3M9ImZzOTAgZnIgcHQxIHRhciI+PHNwYW4gaWQ9InZpZXctbWktbW9kZSIgY2xhc3M9Im10MCI+PC9zcGFuPjxzcGFuIGlkPSJidG4tdmlldy1taS1jbG9zZSIgY2xhc3M9InByOSBwbDggbWw2IHBzZXVkb2xpbmsgdGRuIiBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yKTsiIHRpdGxlPSJ7QlROX1BBTkVMX0NMT1NFfSI+4pyVPC9zcGFuPjwvZGl2PjxkaXYgaWQ9InZpZXctbWktbmFtZSIgY2xhc3M9ImJvbGRlciBwbDggb2ggbncgZWxsIj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1taS1wcm94eSIgY2xhc3M9ImJicyBwbDEgcHIxIj48dGV4dGFyZWEgaWQ9InZpZXctbWktZWQiIGNsYXNzPSJ3MTAwcCI+PC90ZXh0YXJlYT48L3NlY3Rpb24+PHNlY3Rpb24gaWQ9InZpZXctZWQtYnV0dG9ucyIgY2xhc3M9Im53IHA4IiBzdHlsZT0iIj48ZGl2IGNsYXNzPSJmciI+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWktcmV2ZXJ0IiBjbGFzcz0ib3JhbmdlIGhpZGUiIHRpdGxlPSJ7VElQX1JFVkVSVH0iPjxzcGFuIGNsYXNzPSJmaS1yZWZyZXNoIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1JFVkVSVH3CoDwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1pLWRlbCIgY2xhc3M9InJlZCBoaWRlIG1sMiIgdGl0bGU9IntUSVBfREVMfSI+PHNwYW4gY2xhc3M9ImZpLXRyYXNoIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX0RFTH08L2J1dHRvbj48L2Rpdj48YnV0dG9uIGlkPSJidG4tdmlldy1taS1ydW4iIGNsYXNzPSJtcjIgZ3JlZW4iIGRpc2FibGVkIHRpdGxlPSJ7VElQX1JVTn0iPjxzcGFuIGNsYXNzPSJmaS1wbGF5IGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1JVTn08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1taS1zYXZlYXMiIGNsYXNzPSJtcjIiIHRpdGxlPSJ7VElQX1NBVkVBU30iPjxzcGFuIGNsYXNzPSJmaS1zYXZlIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1NBVkVBU308L2J1dHRvbj48L3NlY3Rpb24+Jyxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSl9LGRhdGE6e2Rkb2M6IiIsbmFtZToiIix0eXBlOiJpbmRleCIsbW9kZTpbImphdmFzY3JpcHQiXSx0ZXh0OiIiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOjAscmV2OiIifSx1aTp7IiN2aWV3LW1pLWVkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLm1vZGUrIiI7Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoeFswXSx7bW9kZTpiLGxpbmVOdW1iZXJzOiExLHZpZXdwb3J0TWFyZ2luOjEwMCxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiJqc29uIj09YixleHRyYUtleXM6eyJDdHJsLVIiOmZ1bmN0aW9uKCl7YS5TYXZlSW5kZXgoKX0sIkNtZC1SIjpmdW5jdGlvbigpe2EuU2F2ZUluZGV4KCl9fX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9eC5tb2RlKyIiO3JldHVybiBudWxsIT1hJiYianNvbiIhPWImJih4LnRleHQ9YSksImpzb24iPT1iP0pTT04uc3RyaW5naWZ5KHguanNvbixudWxsLCJcdCIpOngudGV4dH19LCIjdmlldy1taS1wcm94eSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1PYmplY3QuaXNPYmplY3QsZD1PYmplY3QuaXNBcnJheSxlPXgudGV4dCxmPW51bGw7eC5lcnJvcnM9W10sbnVsbCE9KGY9Yi5SVCgianNldmFsIikoIigiK2UrIikiKSkmJmMoZik/YyhmLmluZGV4KSYmZChmLmluZGV4LmZpZWxkcyk/Zi50eXBlJiYianNvbiIhPT1mLnR5cGUmJnguZXJyb3JzLnB1c2goYi5sYW5nLkVSUl9OT19UWVBFKTp4LmVycm9ycy5wdXNoKGIubGFuZy5FUlJfTk9fSU5ERVgpOnguZXJyb3JzLnB1c2goYi5sYW5nLkVSUl9OT19KU09OKSx4Lmpzb249eC5lcnJvcnMubGVuZ3RoP3t9OmZ9LHdhdGNoOlsiI3ZpZXctbWktZWQiXSxjc3M6e3JlZDpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB9fX0sIiN2aWV3LW1pLW1vZGUiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX01PREUpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsPT1hKXJldHVybiB4Lm1vZGU7eC5tb2RlPWE7dmFyIGM9Yi5teS5maW5kKCIjdmlldy1taS1lZCIpLm5leHQoKVswXS5Db2RlTWlycm9yO3JldHVybiBjLnNldE9wdGlvbigibW9kZSIsYSsiIiksYy5zZXRPcHRpb24oInJlYWRPbmx5IiwianNvbiI9PWErIiIpLGIubXkucmVjYWxjKCIjdmlldy1taS1lZCIpLGF9fSwiI3ZpZXctbWktbmFtZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5SVCgiZGF0YSIpO3JldHVybiB4LmVycm9ycy5sZW5ndGg/eC5lcnJvcnNbMF0uZXNjYXBlSFRNTCgpOnguZGRvYy5zcGxpdCgiLyIpWzFdP2IubGFuZy5UWFRfVElUTEUuYXNzaWduKHgubmFtZS5lc2NhcGVIVE1MKCksJzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0vezJ9Ij5fZC97M308L2E+Jy5hc3NpZ24oYy5wYXRoWzBdLHguZGRvYyx4LmRkb2MuZnJvbSg4KS5lc2NhcGVIVE1MKCkpKToiRGVmYXVsdCBNYW5nbyBpbmRleCJ9LGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH0sYm9sZGVyOmZ1bmN0aW9uKHgpe3JldHVybiAwPT14LmVycm9ycy5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LW1pLXByb3h5Il19LCIjYnRuLXZpZXctbWktY2xvc2UiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcy5SVDtiKCJkYXRhIikuZWRpdG9yPSExLGIoInN0YXNoVmlld1N0YXRlIikoKSxiKCJteSIpLmNoZWNrKCIjYnRuLXZpZXdjb2RlIiksYigibXkiKS5yZXN0eWxlLmRlbGF5KDUwKX19fSwiI2J0bi12aWV3LW1pLXJ1biI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Il9pZHgvIit4LmRkb2MuZnJvbSg4KSsi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHtzb3VyY2U6Yi5SVCgiRGVmYXVsdE1hbmdvSWR4IikudGV4dH0sZT1iLmxhbmcsZj0nPHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoCcsZz14LnRleHQhPShkLnNvdXJjZXx8IiIpO3JldHVybiBudWxsIT1hJiZnJiYiX2Rlc2lnbi8iIT14LmRkb2MmJmIuU2F2ZUluZGV4KCksZitlLkJUTl9SVU59LGRlbGF5OjUwLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoIl9kZXNpZ24vIj09eC5kZG9jfHx4LmVycm9ycy5sZW5ndGh8fHguanNvbi5kZG9jJiZ4Lmpzb24uZGRvYyE9eC5kZG9jLmZyb20oOCl8fHguanNvbi5uYW1lJiZ4Lmpzb24ubmFtZSE9eC5uYW1lKXJldHVybiEwO3ZhciBhPXRoaXMsYj0iX2lkeC8iK3guZGRvYy5mcm9tKDgpKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e3NvdXJjZTphLlJUKCJEZWZhdWx0TWFuZ29JZHgiKS50ZXh0fTtyZXR1cm4geC50ZXh0PT0oYy5zb3VyY2V8fCIiKX19LHdhdGNoOlsiI3ZpZXctbWktcHJveHkiXX0sIiNidG4tdmlldy1taS1yZXZlcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPSJfaWR4LyIreC5kZG9jLmZyb20oOCkrIu+/vSIreC5uYW1lLGQ9Yi5SVChbIlZpIixjLCJ2aWV3Il0pfHx7c291cmNlOmIuUlQoIkRlZmF1bHRNYW5nb0lkeCIpLnRleHR9O251bGwhPWEmJih4LnRleHQ9ZC5zb3VyY2UpfSxkZWxheTo1MCxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0iX2lkeC8iK3guZGRvYy5mcm9tKDgpKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e3NvdXJjZTphLlJUKCJEZWZhdWx0TWFuZ29JZHgiKS50ZXh0fTtyZXR1cm4geC50ZXh0PT1jLnNvdXJjZX19LHJlY2FsYzpbIiN2aWV3LW1pLWVkIl0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdfSwiI2J0bi12aWV3LW1pLWRlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9Yi5sYW5nOyQubXkubW9kYWwoe2RhdGE6e3llczpjLkJUTl9ERUxfWUVTLHllc2NzczoicmVkIixubzpjLkJUTl9ERUxfTk8sY2FuY2VsOiIiLHRleHQ6Yy5NU0dfREVMX1RFWFQuYXNzaWduKHgubmFtZS5lc2NhcGVIVE1MKCkseC5kZG9jLmZyb20oOCkuZXNjYXBlSFRNTCgpKX0sbWFuaWZlc3Q6Yi5QaG8oIkNvbmZpcm0iKSxlc2M6ITAsZ2xvYmFsOiEwLHNjcmVlbjohMH0pLnRoZW4oZnVuY3Rpb24oeCl7InllcyI9PXguY21kJiZiLkRlbEluZGV4KCl9KX19LGRlbGF5OjIwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7aWYoIXguZGRvYy5mcm9tKDgpKXJldHVybiEwfX0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdfSwiI2J0bi12aWV3LW1pLXNhdmVhcyI6e2Nzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hIXguZXJyb3JzLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctbWktcHJveHkiXSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO2lmKG51bGwhPWEpcmV0dXJuIGIuZGF0YSgibW9kYWwiKT8oYi5tb2RhbCghMCksdm9pZCAwKTooJC5teS5tb2RhbCh7ZGF0YTokLmV4dGVuZCghMCx7fSxjLlJUKFsiZGF0YSIsIm1hbmdvIl0pKSxtYW5pZmVzdDp7ZGF0YTokLmV4dGVuZCghMCx7X3ZhbGlkOiEwLGRkb2M6IiJ9LCJfZGVzaWduLyIhPXguZGRvYz94Ok9iamVjdC5yZWplY3QoeCxbImRkb2MiLCJuYW1lIl0pLE9iamVjdC5zZWxlY3QoeC5qc29uLFsiZGRvYyIsIm5hbWUiXSkpLE5hbWU6IiIsaW5pdDpmdW5jdGlvbih4KXt0aGlzLmRhdGE7eC5odG1sKCQubXkuZm9ybWdlbihbe3JvdzoiMTAwJSIsbGFiZWw6IjkwcHgiLGxhYmVsQ3NzOiJteS1sYWJlbCBmczkwIG84MCIscm93Q3NzOiJteS1yb3cgcHQ4In0sJzxkaXYgY2xhc3M9Im1iOCI+JywnPGRpdiBpZD0iZnRpdGxlIiBjbGFzcz0ieGdyYXkgbWItOCI+e1RYVF9ORVd9PC9kaXY+JyxbIntMQkxfRERPQ30iLCJpbnAjbWRkb2MudzEwMHAiLHtwbGM6IntQTENfRERPQ30ifSwibXNnIl0sWyJ7TEJMX05FV30iLCJpbnAjbXZpZXcudzEwMHAiLHtwbGM6IntQTENfTkVXfSJ9LCJtc2ciXSwnPGRpdiBpZD0iZndhcm4iIGNsYXNzPSJ4Z3JheSBwdDEyIGhpZGUiPjwvZGl2PicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9Im10MTYgcHQ3IGJ0ZCBmczk1Ij4nLFsiIiwiYnRuI2J0bi1uZXctb2suZ3JlZW4ubXIyIix7dmFsOiJ7QlROX05FV19PS30ifSwiYnRuI2J0bi1uZXctY2FuY2VsIix7dmFsOiJ7QlROX05FV19DQU5DRUx9In1dLCI8L2Rpdj4iXSkuYXNzaWduKGMubGFuZykpfSx1aTp7IiNtZGRvYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB4LmRkb2M7eC5kZG9jPWF9fSwiI212aWV3Ijp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHgubmFtZTt4Lm5hbWU9YX0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYT9hLmluZGV4T2YoIi8iKT4tMT9jLmxhbmcuRVJSX05FV19TTEFTSDp2b2lkIDA6Yy5sYW5nLkVSUl9ORVdfUkVRfX0sIiNmd2FybiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0iX2Rlc2lnbi8iK3guZGRvYy5yZXBsYWNlKC9eX2Rlc2lnblwvLywiIik7cmV0dXJuIGMuUlQoWyJEZG9jcyIsYl0pP2MuUlQoWyJEZG9jcyIsYiwidmlld3MiLHgubmFtZV0pP2MubGFuZy5FWFBfRVhJU1Q6Yy5sYW5nLkVYUF9OVklFVzpjLmxhbmcuRVhQX05ERE9DfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7aGlkZTpmdW5jdGlvbih4KXtpZih4Ll92YWxpZD10aGlzLm15LnZhbGlkKCksIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1vayI6e2RlbGF5OjMwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNvbW1pdCgpfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1jYW5jZWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19fSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIycHg7In19LGNzczoicDE1IixnbG9iYWw6ITAsc2NyZWVuOiEwLHdpZHRoOjQwMCxlc2M6ITAsZm9jdXM6IiNtdmlldyIsZW50ZXI6ITAsYm91bmQ6MH0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWEuX3ZhbGlkKXJldHVybiBjdy5saWIubm90ZShjLmxhbmcuRVJSX05PX05BTUUsImVycm9yIiksdm9pZCAwO3ZhciBiPXguanNvbjthLmRkb2MmJihiLmRkb2M9YS5kZG9jLnJlcGxhY2UoL15fZGVzaWduXC8vLCIiKSksYi5kZG9jfHwoYi5kZG9jPSJpbmRleF8iK051bWJlci5yYW5kb20oNDY2NTYsMTY3OTYxNSkudG9TdHJpbmcoMzYpKSxhLm5hbWUmJihiLm5hbWU9YS5uYW1lKSxjLlNhdmVJbmRleChiKX0pLHZvaWQgMCl9LGV2ZW50czoiY2xpY2subXkifX0sc3R5bGU6eyIgLkNvZGVNaXJyb3IiOiJmb250LXNpemU6ODAlIWltcG9ydGFudDtwYWRkaW5nOjBweDttaW4taGVpZ2h0OjMwMHB4OyIsIiAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjMwMHB4OyIsIiAjdmlldy1taS1wcm94eSI6ZnVuY3Rpb24oeCl7cmV0dXJuIm1heC1oZWlnaHQ6IisoeC5wYXJlbnQoKS5oZWlnaHQoKS00OC0zMikrInB4OyJ9LCIgI3ZpZXctbWktcHJveHkucmVkIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgI2J0bi12aWV3LW1pLWRlbCI6ImRpc3BsYXk6bm9uZTsiLCIgI2J0bi12aWV3LW1pLXJldmVydC5oaWRlICsgI2J0bi12aWV3LW1pLWRlbCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiN2aWV3LW1pLXByb3h5IikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxTYXZlSW5kZXg6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9KGF8fGMubmFtZSxiLlJUKFsiZGF0YSIsInBhdGgiXSkpO2IuUlQoWyJkYXRhIiwidGFiaWQiXSk7aWYoYy5lcnJvcnMubGVuZ3RoKXJldHVybiBjdy5saWIubm90ZShiLmxhbmcuRVJSX0VSUkRPQy5hc3NpZ24oYy5lcnJvcnNbMF0pLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYy5lcnJvcnNbMF0pO3ZhciBlPSQuZXh0ZW5kKCEwLHt9LHh8fGMuanNvbik7cmV0dXJuIGUuZGRvY3x8KGUuZGRvYz1jLmRkb2MuZnJvbSg4KSksZS5uYW1lfHwoZS5uYW1lPWMubmFtZSksZS5kZG9jPyhiLlJUKCJCdXN5IikoITApLGIuUmVxKHt1cmw6W2RbMF0sIl9pbmRleCJdLG1ldGhvZDoiUE9TVCIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoZSksZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShiLmxhbmcuTVNHX1NBVkVELmFzc2lnbihlLmRkb2MrIi4iK2UubmFtZSksIm9rIiksJC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpkWzBdLGNtZDoid3JpdGUiLGRvY3M6W2MuZGRvY119KSxjLmRkb2MuZnJvbSg4KT09ZS5kZG9jJiZjLm5hbWU9PWUubmFtZT8oYi5teS5jaGVjaygiI2J0bi12aWV3LW1pLXJldmVydCIpLGIubXkuY2hlY2soIiNidG4tdmlldy1taS1ydW4iKSk6KGIuUlQoImRhdGEiKS52aWV3PSJfaWR4LyIrZS5kZG9jKyLvv70iK2UubmFtZSxiLlJUKCJteSIpLnRyaWdnZXIoIiNidG4tcmVsb2FkIiwiY2xpY2subXkiKSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y3cubGliLm5vdGUoYi5sYW5nLk1TR19GQUlMLmFzc2lnbihlLmRkb2MrIi4iK2UubmFtZSx4LGEpLCJlcnJvciIpfSkuYWx3YXlzKGIuUlQoIkJ1c3kiKS5maWxsKCExKSkpOihjdy5saWIubm90ZShiLmxhbmcuRVJSX05PX05BTUVfUlVOLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYi5sYW5nLkVSUl9OT19OQU1FX1JVTikpfSxEZWxJbmRleDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD14fHxjLmRkb2MsZT1hfHxjLm5hbWUsZj1iLlJUKFsiZGF0YSIsInBhdGgiXSk7Yi5SVChbImRhdGEiLCJ0YWJpZCJdKTtyZXR1cm4gYi5SVCgiQnVzeSIpKCEwKSxiLlJlcSh7dXJsOltmWzBdLCJfaW5kZXgiLGQsImpzb24iLGVdLG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9PSy5hc3NpZ24oZCsiLiIrZSksIm9rIiksYi5SVCgiZGF0YSIpLnZpZXc9IiIsYi5SVCgiZGF0YSIpLmVkaXRvcj0hMSxiLlJUKCkuUm93cz1bXSxiLlJUKCJteSIpLnJlY2FsYygiI3ZpZXctbmFtZSIpLGIuUlQoIm15IikuY2hlY2soIiN2aWV3LW5hbWUiKSxmdW5jdGlvbigpeyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6ZlswXSxjbWQ6IndyaXRlIixkb2NzOltkXX0pfS5kZWJvdW5jZSgxMDApKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y3cubGliLm5vdGUoYi5sYW5nLk1TR19ERUxfRkFJTC5hc3NpZ24oZCsiLiIrZSx4LGEpLCJlcnJvciIpfSkuYWx3YXlzKGIuUlQoIkJ1c3kiKS5maWxsKCExKSl9fSxWaWV3RWQ6e2lkOiJjdy5QaG90b24uVmlld0VkIixpbmhlcml0OlsiUlQiXSxwYXJhbXM6e3Jlc3R5bGU6NTAsc3RyaWN0OiEwfSxsYW5nOnt9LHJlcXVpcmU6W3sid2luZG93LkNvZGVNaXJyb3IiOiJsaWIvY29kZW1pcnJvci5qcyJ9XSxIVE1MOic8ZGl2IGNsYXNzPSJiZy1wZ3JheSBsaDE2MCBwdDIgeGdyYXkgbncgb2ggZWxsIHhwYW5lbCI+PGRpdiBjbGFzcz0iZnM5MCBmciBwdDEgdGFyIj48c3BhbiBpZD0idmlldy1tci1tb2RlIiBjbGFzcz0ibXQwIj48L3NwYW4+PHNwYW4gaWQ9ImJ0bi12aWV3LW1yLWNsb3NlIiBjbGFzcz0icHI5IHBsOCBtbDYgcHNldWRvbGluayB0ZG4iIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpOyIgdGl0bGU9IntCVE5fUEFORUxfQ0xPU0V9Ij7inJU8L3NwYW4+PC9kaXY+PGRpdiBpZD0idmlldy1tci1uYW1lIiBjbGFzcz0iYm9sZGVyIHBsOCBvaCBudyBlbGwiPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJ2aWV3LW1yLXByb3h5IiBjbGFzcz0iYmJzIHBsMSBwcjEiPjx0ZXh0YXJlYSBpZD0idmlldy1tci1lZCIgY2xhc3M9IncxMDBwIj48L3RleHRhcmVhPjwvc2VjdGlvbj48c2VjdGlvbiBpZD0idmlldy1lZC1idXR0b25zIiBjbGFzcz0ibncgcDgiIHN0eWxlPSIiPjxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4tdmlldy1tci1yZXZlcnQiIGNsYXNzPSJvcmFuZ2UgaGlkZSIgdGl0bGU9IntUSVBfUkVWRVJUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUkVWRVJUfcKgPC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbXItZGVsIiBjbGFzcz0icmVkIGhpZGUgbWwyIiB0aXRsZT0ie1RJUF9ERUx9Ij48c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fREVMfTwvYnV0dG9uPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi12aWV3LW1yLXJ1biIgY2xhc3M9Im1yMiBncmVlbiIgZGlzYWJsZWQgdGl0bGU9IntUSVBfUlVOfSI+PHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUlVOfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1yLXNhdmVhcyIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfU0FWRUFTfSI+PHNwYW4gY2xhc3M9ImZpLXNhdmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fU0FWRUFTfTwvYnV0dG9uPjwvc2VjdGlvbj4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sZGF0YTp7ZGRvYzoiIixuYW1lOiIiLHR5cGU6InZpZXciLG1vZGU6WyJtYXAiXSxtYXA6IiIscmVkdWNlOiIiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOjAscmV2OiIifSx1aTp7IiN2aWV3LW1yLWVkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9Yi5tb2RlKyIiO0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6Impzb24iPT1jP2M6Yi5sYW5ndWFnZXx8ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiEwLHZpZXdwb3J0TWFyZ2luOjEwMCxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMSx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiJqc29uIj09YyxleHRyYUtleXM6eyJDdHJsLVIiOmZ1bmN0aW9uKCl7YS5TYXZlRGRvYygpfSwiQ21kLVIiOmZ1bmN0aW9uKCl7YS5TYXZlRGRvYygpfX19KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXgubW9kZSsiIjtyZXR1cm4gbnVsbCE9YSYmImpzb24iIT1iJiYoeFtiXT1hKSwianNvbiI9PWI/SlNPTi5zdHJpbmdpZnkoeC5qc29uLG51bGwsIlx0Iik6eFtiXX19LCIjdmlldy1tci1wcm94eSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1PYmplY3QuaXNGdW5jdGlvbixkPU9iamVjdC5pc1N0cmluZyh4Lmxhbmd1YWdlKT94Lmxhbmd1YWdlOiJqYXZhc2NyaXB0IixlPXgubWFwLGY9eC5yZWR1Y2V8fCIiLGc9bnVsbCxoPS9eKCUlW15cclxuXSpbXHJcbl0rKSpbXHJcblxzXHRdKmZ1bltcclxuXHNcdF0qXChbXHJcblxzXHRdKlx7Py8saT0vXC5bXHJcblxzXHRdKiQvLGo9WyJfc3VtIiwiX2NvdW50IiwiX21pbiIsIl9tYXgiLCJfc3RhdHMiLCJfc3Vtc3FyIl0saz14LmVycm9ycz1bXTsiamF2YXNjcmlwdCI9PWQ/KG51bGwhPShnPWIuUlQoImpzZXZhbCIpKCIoIitlKyIpIikpJiZjKGcpfHxrLnB1c2goYi5sYW5nLkVSUl9OT19NQVApLGYmJiJfIiE9ZlswXSYmKGc9bnVsbCxudWxsIT0oZz1iLlJUKCJqc2V2YWwiKSgiKCIrZisiKSIpKSYmYyhnKXx8ay5wdXNoKGIubGFuZy5FUlJfTk9fUkVEVUNFKSksIl8iPT1mWzBdJiYtMT09ai5pbmRleE9mKGYudHJpbSgpKSYmay5wdXNoKGIubGFuZy5FUlJfRl9CVUlMVElOKSk6ImVybGFuZyI9PWQmJihoLnRlc3QoZSkmJmkudGVzdChlKXx8ay5wdXNoKGIubGFuZy5FUlJfTk9fTUFQKSwiXyI9PWZbMF0mJi0xPT1qLmluZGV4T2YoZi50cmltKCkpP2sucHVzaChiLmxhbmcuRVJSX0ZfQlVJTFRJTik6IWZ8fCJfIj09ZlswXXx8aC50ZXN0KGYpJiZpLnRlc3QoZil8fGsucHVzaChiLmxhbmcuRVJSX05PX1JFRFVDRSkpLHguanNvbj17fSx4LmVycm9ycy5sZW5ndGh8fChlLnRyaW0oKSYmKHguanNvbi5tYXA9ZSksZi50cmltKCkmJih4Lmpzb24ucmVkdWNlPWYpKX0sd2F0Y2g6WyIjdmlldy1tci1lZCJdLGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH19fSwiI3ZpZXctbXItbW9kZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfTU9ERSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIHgubW9kZTt4Lm1vZGU9YTt2YXIgYz1iLm15LmZpbmQoIiN2aWV3LW1yLWVkIikubmV4dCgpWzBdLkNvZGVNaXJyb3I7cmV0dXJuIGMuc2V0T3B0aW9uKCJtb2RlIiwianNvbiI9PWErIiI/Impzb24iOngubGFuZ3VhZ2UpLGMuc2V0T3B0aW9uKCJyZWFkT25seSIsImpzb24iPT1hKyIiKSxiLm15LnJlY2FsYygiI3ZpZXctbXItZWQiKSxhfX0sIiN2aWV3LW1yLW5hbWUiOntkZWxheTo1MCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlJUKCJkYXRhIiksYz1hLmRhdGE7eC5vbigiY2xpY2subXkiLCJhIixmdW5jdGlvbigpe3ZhciB4PWEuUGhvKCJFZCIpLmpzb250cmVlLkxzKCksZD0idmlld3N0YXRlLiIrY3cubGliLnNkYm0oYi5wYXRoWzBdKyIvIitjLmRkb2MpLGU9KHgoZCl8fHtzdGF0ZTpbXX0pLnN0YXRlfHxbXTtlPWUuY29uY2F0KFtjdy5saWIuc2RibSgiUm9vdOKdgHZpZXdzIiksY3cubGliLnNkYm0oIlJvb3TinYB2aWV3c+KdgCIrYy5uYW1lKV0pLnVuaXF1ZSgpLHgoZCx7c3RhbXA6RGF0ZS5ub3coKSxzdGF0ZTplfSl9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlJUKCJkYXRhIik7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD94LmVycm9yc1swXS5lc2NhcGVIVE1MKCk6Yi5sYW5nLlRYVF9USVRMRVt4Lmxhbmd1YWdlXS5hc3NpZ24oJzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0vezJ9Ij5fZC97M308L2E+Jy5hc3NpZ24oYy5wYXRoWzBdLHguZGRvYyx4LmRkb2MuZnJvbSg4KS5lc2NhcGVIVE1MKCkpLHgubmFtZS5lc2NhcGVIVE1MKCkpfSxjc3M6e3JlZDpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB9LGJvbGRlcjpmdW5jdGlvbih4KXtyZXR1cm4gMD09eC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdfSwiI2J0bi12aWV3LW1yLWNsb3NlIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMuUlQ7YigiZGF0YSIpLmVkaXRvcj0hMSxiKCJzdGFzaFZpZXdTdGF0ZSIpKCksYigibXkiKS5jaGVjaygiI2J0bi12aWV3Y29kZSIpLGIoIm15IikucmVzdHlsZS5kZWxheSg1MCl9fX0sIiNidG4tdmlldy1tci1ydW4iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPXguZGRvYysi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHt9LGU9Yi5sYW5nLGY9JzxzcGFuIGNsYXNzPSJmaS1wbGF5IGZzOTUgbzYwIj48L3NwYW4+wqAnLGc9eC5tYXAhPShkLm1hcHx8IiIpfHx4LnJlZHVjZSE9KGQucmVkdWNlfHwiIik7cmV0dXJuIG51bGwhPWEmJmc/Yi5TYXZlRGRvYygpOm51bGwhPWEmJmIuUlQoIkdldFZpZXciKSghMCksZitlLkJUTl9TQVZFfSxkZWxheTo1MCxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe2lmKHguZXJyb3JzLmxlbmd0aClyZXR1cm4hMDt2YXIgYT10aGlzLGI9eC5kZG9jKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e307YS5sYW5nO3JldHVybiEoeC5tYXAhPShjLm1hcHx8IiIpfHx4LnJlZHVjZSE9KGMucmVkdWNlfHwiIikpfSwic2VsZjpncmVlbiI6ZnVuY3Rpb24oeCl7aWYoeC5lcnJvcnMubGVuZ3RoKXJldHVybiExO3ZhciBhPXRoaXMsYj14LmRkb2MrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7fTtyZXR1cm4geC5tYXAhPShjLm1hcHx8IiIpfHx4LnJlZHVjZSE9KGMucmVkdWNlfHwiIil9fSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItcmV2ZXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz14LmRkb2MrIu+/vSIreC5uYW1lLGQ9Yi5SVChbIlZpIixjLCJ2aWV3Il0pfHx7fTtudWxsIT1hJiYoeC5tYXA9ZC5tYXB8fCIiLHgucmVkdWNlPWQucmVkdWNlfHwiIil9LGRlbGF5OjUwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPXguZGRvYysi77+9Iit4Lm5hbWUsYz1hLlJUKFsiVmkiLGIsInZpZXciXSl8fHt9O3JldHVybiB4Lm1hcD09KGMubWFwfHwiIikmJngucmVkdWNlPT0oYy5yZWR1Y2V8fCIiKX19LHJlY2FsYzpbIiN2aWV3LW1yLWVkIl0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdfSwiI2J0bi12aWV3LW1yLWRlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLGM9Yi5sYW5nOyQubXkubW9kYWwoe2RhdGE6e3llczpjLkJUTl9ERUxfWUVTLHllc2NzczoicmVkIixubzpjLkJUTl9ERUxfTk8sY2FuY2VsOiIiLHRleHQ6Yy5NU0dfREVMX1RFWFQuYXNzaWduKHgubmFtZS5lc2NhcGVIVE1MKCkseC5kZG9jLmVzY2FwZUhUTUwoKSl9LG1hbmlmZXN0OmIuUGhvKCJDb25maXJtIiksZXNjOiEwLGdsb2JhbDohMCxzY3JlZW46ITB9KS50aGVuKGZ1bmN0aW9uKHgpeyJ5ZXMiPT14LmNtZCYmYi5EZWxWaWV3KCl9KX19LGRlbGF5OjIwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7aWYoIXguZGRvYy5mcm9tKDgpKXJldHVybiEwfX0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdfSwiI2J0bi12aWV3LW1yLXNhdmVhcyI6e2Nzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hIXguZXJyb3JzLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctbXItcHJveHkiXSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9eDtpZihudWxsIT1hKXJldHVybiBiLmRhdGEoIm1vZGFsIik/KGIubW9kYWwoITApLHZvaWQgMCk6KCQubXkubW9kYWwoe2RhdGE6JC5leHRlbmQoITAse30sYy5SVChbImRhdGEiLCJtYW5nbyJdKSksbWFuaWZlc3Q6e2RhdGE6JC5leHRlbmQoITAse192YWxpZDohMH0seCksTmFtZToiIixpbml0OmZ1bmN0aW9uKHgpe3RoaXMuZGF0YTt4Lmh0bWwoJC5teS5mb3JtZ2VuKFt7cm93OiIxMDAlIixsYWJlbDoiOTBweCIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAgbzgwIixyb3dDc3M6Im15LXJvdyBwdDgifSwnPGRpdiBjbGFzcz0ibWI4Ij4nLCc8ZGl2IGlkPSJmdGl0bGUiIGNsYXNzPSJ4Z3JheSBtYi04Ij57VFhUX05FV308L2Rpdj4nLFsie0xCTF9ERE9DfSIsImlucCNtZGRvYy53MTAwcCIse3BsYzoie1BMQ19ERE9DfSJ9LCJtc2ciXSxbIntMQkxfTkVXfSIsImlucCNtdmlldy53MTAwcCIse3BsYzoie1BMQ19ORVd9In0sIm1zZyJdLCc8ZGl2IGlkPSJmd2FybiIgY2xhc3M9InhncmF5IHB0MTIgaGlkZSI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxNiBwdDcgYnRkIGZzOTUiPicsWyIiLCJidG4jYnRuLW5ldy1vay5ncmVlbi5tcjIiLHt2YWw6IntCVE5fTkVXX09LfSJ9LCJidG4jYnRuLW5ldy1jYW5jZWwiLHt2YWw6IntCVE5fTkVXX0NBTkNFTH0ifV0sIjwvZGl2PiJdKS5hc3NpZ24oYy5sYW5nKSl9LHVpOnsiI21kZG9jIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHguZGRvYzt4LmRkb2M9YX19LCIjbXZpZXciOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5uYW1lO3gubmFtZT1hfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhP2EuaW5kZXhPZigiLyIpPi0xP2MubGFuZy5FUlJfTkVXX1NMQVNIOnZvaWQgMDpjLmxhbmcuRVJSX05FV19SRVF9fSwiI2Z3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPSJfZGVzaWduLyIhPXguZGRvYy50byg4KT8iX2Rlc2lnbi8iK3guZGRvYzp4LmRkb2M7cmV0dXJuIGMuUlQoWyJEZG9jcyIsYl0pP2MuUlQoWyJEZG9jcyIsYiwidmlld3MiLHgubmFtZV0pP2MubGFuZy5FWFBfRVhJU1Q6Yy5sYW5nLkVYUF9OVklFVzpjLmxhbmcuRVhQX05ERE9DfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7aGlkZTpmdW5jdGlvbih4KXtpZih4Ll92YWxpZD10aGlzLm15LnZhbGlkKCksIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1vayI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNvbW1pdCgpfSx3YXRjaDpbIiNtZGRvYyIsIiNtdmlldyJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoIXguX3ZhbGlkKXJldHVybiEwfX19LCIjYnRuLW5ldy1jYW5jZWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19fSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIycHg7In19LGNzczoicDE1IixnbG9iYWw6ITAsc2NyZWVuOiEwLHdpZHRoOjQwMCxlc2M6ITAsZm9jdXM6IiNtdmlldyIsZW50ZXI6ITAsYm91bmQ6MH0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWEuX3ZhbGlkKXJldHVybiBjdy5saWIubm90ZShjLmxhbmcuRVJSX05PX05BTUUsImVycm9yIiksdm9pZCAwO2EuZGRvYz0iX2Rlc2lnbi8iIT1hLmRkb2MudG8oOCk/Il9kZXNpZ24vIithLmRkb2M6YS5kZG9jO3ZhciBiPWMuUlQoWyJEZG9jcyIsYS5kZG9jXSk7Ynx8KGI9e19pZDphLmRkb2MsbGFuZ3VhZ2U6eC5sYW5ndWFnZSx2aWV3czp7fX0pLGMuU2F2ZURkb2MoYixhLm5hbWUpLnRoZW4oZnVuY3Rpb24oKXt2YXIgeDtjLlJUKCJkYXRhIikudmlldz1hLmRkb2MrIu+/vSIrYS5uYW1lLGQuZGRvYz09YS5kZG9jJiZkLm5hbWU9PWEubmFtZXx8KHg9Yy5SVChbIlZpIixkLmRkb2MrIu+/vSIrZC5uYW1lLCJ2aWV3Il0pfHx7fSxkLm1hcD14Lm1hcHx8IiIsZC5yZWR1Y2U9eC5yZWR1Y2V8fCIiKSxjLlJUKCJteSIpLnRyaWdnZXIoIiNidG4tcmVsb2FkIiwiY2xpY2subXkiKX0pfSksdm9pZCAwKX0sZXZlbnRzOiJjbGljay5teSJ9fSxzdHlsZTp7IiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZTo4MCUhaW1wb3J0YW50O3BhZGRpbmc6MHB4O21pbi1oZWlnaHQ6MzAwcHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MzAwcHg7IiwiICN2aWV3LW1yLXByb3h5IjpmdW5jdGlvbih4KXtyZXR1cm4ibWF4LWhlaWdodDoiKyh4LnBhcmVudCgpLmhlaWdodCgpLTQ4LTMxKSsicHg7In0sIiAjdmlldy1tci1wcm94eS5yZWQgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAjYnRuLXZpZXctbXItZGVsIjoiZGlzcGxheTpub25lOyIsIiAjYnRuLXZpZXctbXItcmV2ZXJ0LmhpZGUgKyAjYnRuLXZpZXctbXItZGVsIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7In0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI3ZpZXctbXItcHJveHkiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LFNhdmVEZG9jOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPWF8fGMubmFtZSxlPWIuUlQoWyJkYXRhIiwicGF0aCJdKTtiLlJUKFsiZGF0YSIsInRhYmlkIl0pO2lmKGMuZXJyb3JzLmxlbmd0aClyZXR1cm4gY3cubGliLm5vdGUoYi5sYW5nLkVSUl9FUlJET0MuYXNzaWduKGMuZXJyb3JzWzBdKSwiZXJyb3IiKSwkLkRlZmVycmVkKCkucmVqZWN0KGMuZXJyb3JzWzBdKTtiLlJUKCJCdXN5IikoITApO3ZhciBmPSQuZXh0ZW5kKCEwLHt9LHh8fGIuUlQoWyJEZG9jcyIsYy5kZG9jXSkpO3JldHVybiBjLm1hcC50cmltKCk/Y3cubGliLnVubWFzayhmLFtjLm1hcF0sW1sidmlld3MiLGQsIm1hcCJdXSk6Y3cubGliLmdldHJlZihmLFsidmlld3MiLGQsIm1hcCJdKSYmKGYudmlld3NbZF0ubWFwPXZvaWQgMCksYy5yZWR1Y2UudHJpbSgpP2N3LmxpYi51bm1hc2soZixbYy5yZWR1Y2VdLFtbInZpZXdzIixkLCJyZWR1Y2UiXV0pOmN3LmxpYi5nZXRyZWYoZixbInZpZXdzIixkLCJyZWR1Y2UiXSkmJihmLnZpZXdzW2RdLnJlZHVjZT12b2lkIDApLGIuUmVxKHt1cmw6W2VbMF0sZi5faWRdLG1ldGhvZDoiUFVUIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShmKSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2MucmV2PXgucmV2LGN3LmxpYi5ub3RlKGIubGFuZy5NU0dfU0FWRUQuYXNzaWduKGYuX2lkKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmVbMF0sY21kOiJ3cml0ZSIsZG9jczpbZi5faWRdfSksYi5teS5jaGVjaygiI2J0bi12aWV3LW1yLXJldmVydCIpLGIubXkuY2hlY2soIiNidG4tdmlldy1tci1ydW4iKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0ZBSUwuYXNzaWduKGYuX2lkLHgsYSksImVycm9yIil9KS5hbHdheXMoZnVuY3Rpb24oKXtiLlJUKCJCdXN5IikoITEpfSl9LERlbFZpZXc6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9YXx8Yy5uYW1lLGU9Yi5SVChbImRhdGEiLCJwYXRoIl0pO2IuUlQoWyJkYXRhIiwidGFiaWQiXSk7aWYoYy5lcnJvcnMubGVuZ3RoKXJldHVybiBjdy5saWIubm90ZShiLmxhbmcuRVJSX0VSUkRPQy5hc3NpZ24oYy5lcnJvcnNbMF0pLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYy5lcnJvcnNbMF0pO3ZhciBmPSQuZXh0ZW5kKCEwLHt9LHh8fGIuUlQoWyJEZG9jcyIsYy5kZG9jXSkpO3JldHVybiBjdy5saWIuZ2V0cmVmKGYsWyJ2aWV3cyIsZF0pJiZkZWxldGUgZi52aWV3c1tkXSxiLlJlcSh7dXJsOltlWzBdLGYuX2lkXSxtZXRob2Q6IlBVVCIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoZiksZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXtjLnJldj14LnJldixjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9PSy5hc3NpZ24oZi5faWQrIi4iK2QpLCJvayIpLGIuUlQoImRhdGEiKS52aWV3PSIiLGIuUlQoImRhdGEiKS5lZGl0b3I9ITEsYi5SVCgpLlJvd3M9W10sYi5SVCgibXkiKS5yZWNhbGMoIiN2aWV3LW5hbWUiKSxiLlJUKCJteSIpLmNoZWNrKCIjdmlldy1uYW1lIiksZnVuY3Rpb24oKXskLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmVbMF0sY21kOiJ3cml0ZSIsZG9jczpbZi5faWRdfSl9LmRlYm91bmNlKDEwMCkoKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9GQUlMLmFzc2lnbihmLl9pZCsiLiIrZCx4LGEpLCJlcnJvciIpfSkuYWx3YXlzKGIuUlQoIkJ1c3kiKS5maWxsKCExKSl9fSxNYW5nb0VkOntpZDoiY3cuUGhvdG9uLk1hbmdvRWQiLGluaGVyaXQ6WyJSVCJdLHBhcmFtczp7cmVzdHlsZTo1MCxzdHJpY3Q6ITB9LGxhbmc6e30scmVxdWlyZTpbeyJ3aW5kb3cuQ29kZU1pcnJvciI6ImxpYi9jb2RlbWlycm9yLmpzIn1dLEhUTUw6JzxkaXYgY2xhc3M9ImJnLXBncmF5IGxoMTYwIHB0MiB4Z3JheSBudyBvaCBlbGwgeHBhbmVsIj48ZGl2IGNsYXNzPSJmczkwIHRhciBmciBwdDEiPjxzcGFuIGlkPSJ2aWV3LW1hbmdvLW1vZGUiIGNsYXNzPSJtdDAiPjwvc3Bhbj48c3BhbiBpZD0iYnRuLXZpZXctbWFuZ28tY2xvc2UiIGNsYXNzPSJwcjkgcGw4IG1sNiBwc2V1ZG9saW5rIHRkbiIgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7IiB0aXRsZT0ie0JUTl9QQU5FTF9DTE9TRX0iPuKclTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ2aWV3LW1hbmdvLW5hbWUiIGNsYXNzPSJib2xkZXIgcGw4IG9oIG53IGVsbCI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctbWFuZ28tcHJveHkiIGNsYXNzPSJiYnMgcGwxIHByMSI+PHRleHRhcmVhIGlkPSJ2aWV3LW1hbmdvLWVkIiBjbGFzcz0idzEwMHAiPjwvdGV4dGFyZWE+PC9zZWN0aW9uPjxzZWN0aW9uIGlkPSJ2aWV3LW1hbmdvLWJ1dHRvbnMiIGNsYXNzPSJudyBwOCIgc3R5bGU9IiI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLXJldmVydCIgY2xhc3M9ImhpZGUiIHRpdGxlPSJ7VElQX1JFU0VUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUkVTRVR9wqA8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1kZWwiIGNsYXNzPSJoaWRlIHJlZCIgdGl0bGU9IntUSVBfREVMfSI+PHNwYW4gY2xhc3M9ImZpLXRyYXNoIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX0RFTH08L2J1dHRvbj48L2Rpdj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1ydW4iIGNsYXNzPSJtcjIgZ3JlZW4iIHRpdGxlPSJ7VElQX1JVTn0iPjxzcGFuIGNsYXNzPSJmaS1wbGF5IGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1JVTn08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1zdGFzaCIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfU0FWRX0iPjxzcGFuIGNsYXNzPSJmaS1zYXZlIGZzOTUgbzYwIj48L3NwYW4+wqB7QlROX1NBVkV9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWFuZ28tZXhwbGFpbiIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfRVhQTH0iPjxzcGFuIGNsYXNzPSJmaS1tZWdhcGhvbmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fRVhQTH08L2J1dHRvbj48L3NlY3Rpb24+Jyxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSksYS5UZXh0PWEuZGF0YS50ZXh0LGEuVmFsaWRhdGU9YS5WYWxpZGF0ZSgpLGEuTWFuZ29LZXlzPWN3LmxpYi5hMm8oYS5NYW5nb0tleXMuc3BsaXQoIiAiKSl9LGRhdGE6e25hbWU6IlVudGl0bGVkIHF1ZXJ5Iix0eXBlOiJtYW5nbyIsdGV4dDoiKHtcblx0Ly8gV3JpdGUgeW91ciBtYW5nbyBxdWVyeSwgSlMgc3ludGF4IGFsbG93ZWRcbn0pIixqc29uOnt9LGVycm9yczpbXSxzdGFtcDowfSxNb2RlOlsiamF2YXNjcmlwdCJdLFRleHQ6IiIsdWk6eyIjdmlldy1tYW5nby1lZCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuTW9kZSsiIjtDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmIsbGluZU51bWJlcnM6ITEsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Impzb24iPT1iLGV4dHJhS2V5czp7IkN0cmwtUiI6ZnVuY3Rpb24oKXthLlJUKCJHZXRWaWV3IikoITApfSwiQ21kLVIiOmZ1bmN0aW9uKCl7YS5SVCgiR2V0VmlldyIpKCEwKX19fSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLk1vZGUrIiI7cmV0dXJuIG51bGwhPWEmJiJqc29uIiE9YiYmKHgudGV4dD1hKSwianNvbiI9PWI/SlNPTi5zdHJpbmdpZnkoeC5qc29uLG51bGwsIlx0Iik6eC50ZXh0fX0sIiN2aWV3LW1hbmdvLXByb3h5Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGRlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5WYWxpZGF0ZSh4LnRleHQpO09iamVjdC5pc09iamVjdChiKT94LmVycm9ycz1bXTp4LmVycm9ycz1iLHguanNvbj14LmVycm9ycy5sZW5ndGg/e306Yn0sd2F0Y2g6WyIjdmlldy1tYW5nby1lZCJdLGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH19fSwiI2J0bi12aWV3LW1hbmdvLXJ1biI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEpe3ZhciBjPWIuUlQsZD1jKCJkYXRhIikuZ3JpZCxlPWMoImRhdGEiKS5jb2x1bW5zLGY9ZS5zbGljZSgwKSxnPShjKCJqc2V2YWwiKSgiKCIreC50ZXh0KyIpIil8fHtmaWVsZHM6W119KS5maWVsZHN8fFtdLGg9KGMoImpzZXZhbCIpKCIoIitiLlRleHQrIikiKXx8e2ZpZWxkczpbXX0pLmZpZWxkc3x8W10saT1nLnN1YnRyYWN0KGgpLnN1YnRyYWN0KGguc3VidHJhY3QoZikpLGo9ZisiIj09Ii52YWx1ZSImJmcubGVuZ3RoP2cudG8oOCk6Zi5jb25jYXQoaS5zdWJ0cmFjdChmKSkudG8oOCk7ZSsiIiE9aisiIiYmKGMoImRhdGEiKS5jb2x1bW5zPWouc2xpY2UoMCksZCYmYygiYnVpbGRHcmlkQ29sdW1ucyIpKCkpLGIuVGV4dD14LnRleHQsYygiR2V0VmlldyIpKCEwKS50aGVuKGZ1bmN0aW9uKCl7ZCYmKGMoIm15IikucmVjYWxjKCIjdmlldy1ncmlkLWNvbHMiKSxjKCJteSIpLmNoZWNrKCIjdmlldy1ncmlkLWNvbHMiKSl9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfHx0aGlzLlRleHQ9PXgudGV4dH19LHdhdGNoOlsiI3ZpZXctbWFuZ28tcHJveHkiXX0sIiNidG4tdmlldy1tYW5nby1leHBsYWluIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcztpZihudWxsIT1hKXt2YXIgZD1jLm15LmZpbmQoIiN2aWV3LW1hbmdvLXByb3h5IiksZT1kLm91dGVySGVpZ2h0KCktMyxmPWQub3V0ZXJXaWR0aCgpLTMyO2lmKGIuZGF0YSgibW9kYWwiKSlyZXR1cm4gYi5tb2RhbCghMCksdm9pZCAwO2IubW9kYWwoe2NzczoicDE1IHB0MCIsYWxpZ246ImJvdHRvbToxNDAlIixub3NlOiJib3R0b20iLGRhdGE6e2hlaWdodDplKyJweCIsZHJhZzohMCxyZXE6e3VybDpbYy5SVCgiZGF0YSIpLnBhdGhbMF0sIl9leHBsYWluIl0sbWV0aG9kOiJwb3N0IixkYXRhOkpTT04uc3RyaW5naWZ5KHguanNvbil9fSx3aWR0aDpmLGRyYWc6IiNkcmFnZ2VyIixib3VuZDoiMCIscm9vdDoiIixtYW5pZmVzdDpjLlBobygiUmVxSlNPTiIpfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiExLHguZXJyb3JzLmxlbmd0aD4wfX0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI3ZpZXctbWFuZ28tbW9kZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfTU9ERSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIGIuTW9kZTtiLk1vZGU9YTt2YXIgYz1iLm15LmZpbmQoIiN2aWV3LW1hbmdvLWVkIikubmV4dCgpWzBdLkNvZGVNaXJyb3I7cmV0dXJuIGMuc2V0T3B0aW9uKCJtb2RlIixhKyIiKSxjLnNldE9wdGlvbigicmVhZE9ubHkiLCJqc29uIj09YSsiIiksYi5teS5yZWNhbGMoIiN2aWV3LW1hbmdvLWVkIiksYX19LCIjdmlldy1tYW5nby1uYW1lIjp7ZGVsYXk6MjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5SVCgiZGF0YSIpO2lmKGIuUGhvKCJMcyIpKCJNYW5nby4iK2MucGF0aFswXSxjLm1hbmdvKSwheC5lcnJvcnMubGVuZ3RoKXt2YXIgZD14Lm5hbWUrIiI7cmV0dXJuIkRlZmF1bHQgcXVlcnkiPT1kP2IubGFuZy5UWFRfVElUTEUwOmIubGFuZy5UWFRfVElUTEUuYXNzaWduKGQuZXNjYXBlSFRNTCgpKX1yZXR1cm4geC5lcnJvcnNbMF0uZXNjYXBlSFRNTCgpfSxjc3M6e3JlZDpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB9LGJvbGRlcjpmdW5jdGlvbih4KXtyZXR1cm4gMD09eC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI2J0bi12aWV3LW1hbmdvLWNsb3NlIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMuUlQ7YigiZGF0YSIpLmVkaXRvcj0hMSxiKCJzdGFzaFZpZXdTdGF0ZSIpKCksYigibXkiKS5jaGVjaygiI2J0bi12aWV3Y29kZSIpLGIoIm15IikucmVzdHlsZS5kZWxheSg1MCl9fX0sIiNidG4tdmlldy1tYW5nby1kZWwiOntjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKCl7cmV0dXJuIkRlZmF1bHQgcXVlcnkiPT10aGlzLlJUKFsiZGF0YSIsIm1hbmdvIiwiYWN0aXZlIl0pfX0sYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLlJUKFsiZGF0YSIsIm1hbmdvIl0pO2MuYWN0aXZlPSJEZWZhdWx0IHF1ZXJ5IixjLnF1ZXJ5LnJlbW92ZShmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lPT14Lm5hbWV9KSxiLlJUKCJkYXRhIikudmlldz0iX2ZpbmTvv71EZWZhdWx0IHF1ZXJ5IixiLlJUKCJHZXRWaWV3cyIpKCEwLCExLCEwKSxiLlJUKCJteSIpLnJlZHJhdy5kZWJvdW5jZSg1MCkoKX19fSwiI2J0bi12aWV3LW1hbmdvLXJldmVydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO251bGwhPWEmJih4LnRleHQ9Yi5SVCgiRGVmYXVsdE1hbmdvUXJ5IikudGV4dCl9LGRlbGF5OjEwMCxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiJEZWZhdWx0IHF1ZXJ5IiE9eC5uYW1lfSwiOmRpc2FibGVkIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3JldHVybiB4LnRleHQ9PWEuUlQoIkRlZmF1bHRNYW5nb1FyeSIpLnRleHR9fSxyZWNhbGM6WyIjdmlldy1tYW5nby1lZCJdLHdhdGNoOlsiI3ZpZXctbWFuZ28tcHJveHkiXX0sIiNidG4tdmlldy1tYW5nby1zdGFzaCI6e2Nzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iRGVmYXVsdCBxdWVyeSIhPXgubmFtZT90aGlzLlRleHQ9PXgudGV4dDp4LnRleHQ9PXRoaXMuUlQoIkRlZmF1bHRNYW5nb1FyeSIpLnRleHR9fSx3YXRjaDpbIiN2aWV3LW1hbmdvLXByb3h5Il0sYmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPShjLlJUKFsiZGF0YSIsIm1hbmdvIiwiYWN0aXZlIl0pLCc8c3BhbiBjbGFzcz0iZmktc2F2ZSBmczk1IG82MCI+PC9zcGFuPsKgJytjLmxhbmcuQlROX1NBVkUpO3JldHVybiBudWxsPT1hP2Q6Yi5kYXRhKCJtb2RhbCIpPyhiLm1vZGFsKCEwKSxkKTooYy5teS5tb2RhbCgiI2J0bi12aWV3LW1hbmdvLXN0YXNoIix7ZGF0YTokLmV4dGVuZCghMCx7X25ldzp7fX0sYy5SVChbImRhdGEiLCJtYW5nbyJdKSksbWFuaWZlc3Q6e2RhdGE6e30sTmFtZToiIixRcnk6W10saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2EuUXJ5PU9iamVjdC5jbG9uZShiLnF1ZXJ5LCEwKSx4Lmh0bWwoJC5teS5mb3JtZ2VuKFsnPGRpdiBjbGFzcz0ibWI4Ij4nLCc8ZGl2IGlkPSJmdGl0bGUiIGNsYXNzPSJ4Z3JheSI+e1RYVF9TVEFTSH08L2Rpdj4nLFsiIiwiaW5wI210aXRsZS53MTAwcCIse3BsYzoie1BMQ19TVEFTSH0ifSwibXNnIl0sIjwvZGl2PiIsJzxkaXYgY2xhc3M9Im10MTUgcHQxNSBidGQgZnM5NSI+JyxbIiIsImJ0biNidG4tc3Rhc2gtb2suZ3JlZW4ubXIyIix7dmFsOiJ7QlROX1NUQVNIX09LfSJ9XSwiPC9kaXY+Il0pLmFzc2lnbihjLmxhbmcpKX0sdWk6eyIjbXRpdGxlIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4gYi5OYW1lO2lmKGIuTmFtZT1hLmNvbXBhY3QoKSxiLk5hbWUubGVuZ3RoPjImJmIuTmFtZS5sZW5ndGg8MzEpe3ZhciBjPU9iamVjdC5jbG9uZSh4LnF1ZXJ5LmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEubmFtZT09eC5hY3RpdmV9KSwhMCk7Yy5uYW1lPWIuTmFtZSxjLnN0YW1wPURhdGUubm93KCkseC5fbmV3PWN9cmV0dXJuIGF9LGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGEuY29tcGFjdCgpP2EuY29tcGFjdCgpLmxlbmd0aDwzfHxhLmxlbmd0aD4zMD9jLmxhbmcuRVJSX1NUQVNIX0xFTjp0aGlzLlFyeS5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PWF9KT9jLmxhbmcuRVJSX1NUQVNIX0VYSVNUOnZvaWQgMDpjLmxhbmcuRVJSX1NUQVNIX1JFUX19LCIjYnRuLXN0YXNoLW9rIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LHdhdGNoOlsiI210aXRsZSJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5teS52YWxpZCgpfX19fSxzdHlsZTp7fX0sY3NzOiJwMTUiLGdsb2JhbDohMCxzY3JlZW46ITAsd2lkdGg6NDAwLGVzYzohMCxlbnRlcjohMCxib3VuZDoyMH0pLnRoZW4oZnVuY3Rpb24oeCl7eC5xdWVyeS5wdXNoKHguX25ldykseC5hY3RpdmU9eC5fbmV3Lm5hbWUsJC5leHRlbmQoYy5SVCgiZGF0YSIpLm1hbmdvLE9iamVjdC5yZWplY3QoeCwiX25ldyIpKSxjLlJUKCJkYXRhIikudmlldz0iX2ZpbmTvv70iK3guYWN0aXZlLGMuUlQoIkdldFZpZXdzIikoITAsITEsITApLGMuUlQoIm15IikucmVkcmF3KCl9KSxkKX0sZXZlbnRzOiJjbGljay5teSJ9fSxzdHlsZTp7IiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZToxM3B4IWltcG9ydGFudDsgcGFkZGluZzo0cHg7IG1pbi1oZWlnaHQ6MzAwcHg7IiwiICN2aWV3LW1hbmdvLXByb3h5IjpmdW5jdGlvbih4KXtyZXR1cm4ibWF4LWhlaWdodDoiKyh4LnBhcmVudCgpLmhlaWdodCgpLTQ4LTMyKSsicHg7In0sIiAjdmlldy1tYW5nby1wcm94eS5yZWQgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyJ9LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiN2aWV3LW1hbmdvLXByb3h5IikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxNYW5nb0tleXM6InNlbGVjdG9yIGxpbWl0IHNraXAgc29ydCBmaWVsZHMgdXNlX2luZGV4IGNvbmZsaWN0cyByIGJvb2ttYXJrIHVwZGF0ZSBzdGFibGUgc3RhbGUgZXhlY3V0aW9uX3N0YXRzIixWYWxpZGF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0oeC5kYXRhLHgubGFuZyksYj1PYmplY3QuaXNBcnJheSxjPU9iamVjdC5pc09iamVjdCxkPU9iamVjdC5pc1N0cmluZyxlPU9iamVjdC5zaXplLGY9Y3cubGliLmEybyxnPWYoWyIkYWxsIiwiJGFsbE1hdGNoIiwiJGFuZCIsIiRlbGVtTWF0Y2giLCIkZXhpc3RzIiwiJGluIiwiJGtleU1hcE1hdGNoIiwiJG1vZCIsIiRuaW4iLCIkbm9yIiwiJG5vdCIsIiRvciIsIiRyZWdleCIsIiRzaXplIiwiJHR5cGUiXSksaD1mKFsiJGluIiwiJG5pbiIsIiRtb2QiLCIkYWxsIl0pLGk9ZihbIiRlcSIsIiRuZSIsIiRndCIsIiRndGUiLCIkbHQiLCIkbHRlIl0pLGo9ZihbIm51bGwiLCJib29sZWFuIiwibnVtYmVyIiwic3RyaW5nIiwiYXJyYXkiLCJvYmplY3QiXSk7cmV0dXJuIGs7ZnVuY3Rpb24gayhkKXt2YXIgZj1bXSxnPXguUlQoImpzZXZhbCIpKCIoIitkKyIpIil8fG51bGw7aWYobnVsbCE9ZyYmYyhnKSlpZihjKGcuc2VsZWN0b3IpJiZlKGcuc2VsZWN0b3IpKWlmKGIoZy5maWVsZHMpKWlmKGcuZmllbGRzLmxlbmd0aCl0cnl7bChnLnNlbGVjdG9yLCEwKX1jYXRjaCh4KXtmLnB1c2goeC5tZXNzYWdlKyIiKX1lbHNlIGYucHVzaChhLkVSUl9FTVBUWV9GSUVMRFMpO2Vsc2UgZi5wdXNoKGEuRVJSX05PX0ZJRUxEUyk7ZWxzZSBmLnB1c2goYS5FUlJfTk9fU0VMRUNUT1IpO2Vsc2UgZi5wdXNoKGEuRVJSX05PX0pTT04pO3JldHVybiFmLmxlbmd0aCYmZShnKT4yJiZPYmplY3Qua2V5cyhnKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3guTWFuZ29LZXlzW2JdfHxmLnB1c2goYS5FUlJfTUFOR09fS0VZUy5hc3NpZ24oIi4iK2IpKX0pLGYubGVuZ3RoP2Y6Z31mdW5jdGlvbiBsKHgsZCl7aWYoYih4KSlmb3IodmFyIGU9MDtlPHgubGVuZ3RoO2UrKylrPXhbZV0sKGIoayl8fGMoaykpJiZsKGssZCk7ZWxzZXt2YXIgZj1PYmplY3Qua2V5cyh4KTtmb3IoZT0wO2U8Zi5sZW5ndGg7ZSsrKXt2YXIgaj1mW2VdLGs9eFtqXTtpZigiJCI9PWpbMF0mJiFnW2pdJiYhaFtqXSYmIWlbal0pdGhyb3cgbmV3IEVycm9yKGEuRVJSX0lOVkFMSURfT1BFUkFUT1IuYXNzaWduKGopKTtnW2pdJiZtKGosayxkKSxpW2pdfHwoaFtqXXx8KGIoayl8fGMoaykpJiZsKGssZCkpfX19ZnVuY3Rpb24gbSh4LGUsZil7dmFyIGc9IiI7aWYoWyIkaW4iLCIkbmluIiwiJG9yIiwiJGFuZCIsIiRtb2QiLCIkbm9yIiwiJGFsbCJdLmZpbmQoeCkmJihiKGUpfHwoZz1hLkVSUl9WX0FSUi5hc3NpZ24oeCkpKSxbIiRub3QiLCIkZWxlbU1hdGNoIiwiJGFsbE1hdGNoIiwiJGtleU1hcE1hdGNoIl0uZmluZCh4KSYmKGMoZSl8fChnPWEuRVJSX1ZfT0JKLmFzc2lnbih4KSkpLCFnKXtpZigiJG1vZCI9PXgmJmIoZSkpaWYoMiE9ZS5sZW5ndGgpZz1hLkVSUl9WX01PRDE7ZWxzZXt2YXIgaD1lWzBdLGk9ZVsxXTswPT09aCYmKGc9YS5FUlJfVl9NT0QwKSwibnVtYmVyIj09dHlwZW9mIGgmJnBhcnNlSW50KGgsMTApPT09aHx8KGc9YS5FUlJfVl9NT0REKSxwYXJzZUludChpLDEwKSE9aSYmKGc9YS5FUlJfVl9NT0RSKX0iJGV4aXN0cyI9PXgmJiJib29sZWFuIiE9dHlwZW9mIGUmJihnPWEuRVJSX1ZfRVhJU1QpLCIkdHlwZSI9PXgmJihkKGUpP2pbZV18fChnPWEuRVJSX1ZfVFlQRTEpOmc9YS5FUlJfVl9UWVBFMCksIiRzaXplIj09eCYmcGFyc2VJbnQoZSwxMCkhPT1lJiYoZz1hLkVSUl9WX1NJWkUpLCIkcmVnZXgiPT14JiYoZChlKXx8KGc9YS5FUlJfVl9SRUdFWCkpfWlmKGcpdGhyb3cgbmV3IEVycm9yKGcpfX19LFVzZXJEb2M6e2lkOiJjdy5QaG90b24uVXNlckRvYyIsbGFuZzp7fSxkYXRhOntfaWQ6Im9yZy5jb3VjaGRiLnVzZXI6Iix0eXBlOiJ1c2VyIixuYW1lOiIiLHBhc3N3b3JkOiIiLHJvbGVzOltdfSxSb2xlczpbXSxTZWM6e30sVXNlcnM6e30sSXM6e2E6e30sbTp7fX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpLGQ9Yi5faWQuc3BsaXQoIjoiKVsxXTthLlNlYz1PYmplY3Qua2V5cyhjKS5yZWR1Y2UoZnVuY3Rpb24oeCxiKXt2YXIgZT1jW2JdLnNlY3VyaXR5LGY9KGUuYWRtaW5zfHx7fSkucm9sZXN8fFtdLGc9KGUubWVtYmVyc3x8e30pLnJvbGVzfHxbXSxoPShlLmFkbWluc3x8e30pLm5hbWVzfHxbXSxpPShlLm1lbWJlcnN8fHt9KS5uYW1lc3x8W107cmV0dXJuIGguaW5kZXhPZihkKT4tMSYmKGEuSXMuYVtiXT0hMCksaS5pbmRleE9mKGQpPi0xJiYoYS5Jcy5tW2JdPSEwKSxmLmZvckVhY2goZnVuY3Rpb24oYSl7eFthXXx8KHhbYV09e2E6e30sbTp7fX0pLHhbYV0uYVtiXT0hMH0pLGcuZm9yRWFjaChmdW5jdGlvbihhKXt4W2FdfHwoeFthXT17YTp7fSxtOnt9fSkseFthXS5tW2JdPSEwfSkseH0se30pLGEuUm9sZXM9T2JqZWN0LmtleXMoYS5TZWMpLnJlbW92ZSgvXl8vKS5zb3J0KCksYi5fcmV2JiYoYS5sYW5nLlRYVF9USVRMRT1hLmxhbmcuVFhUX1RJVExFX0VELGEubGFuZy5QTENfUD1hLmxhbmcuUExDX1BfRUQpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSksYS5QaG8oIkdldFVzZXJzIikoKS50aGVuKGZ1bmN0aW9uKHgpe2EuVXNlcnM9Y3cubGliLmEybyh4KX0pLHgudGhlbihmdW5jdGlvbigpe2EuU2VsMlNjcm9sbCh4LCEwKX0pfSxzYXZlVXNlcjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eHx8YS5kYXRhLGM9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX07cmV0dXJuIGEuUmVxKHt1cmw6WyJfdXNlcnMiLGIuX2lkXSxtZXRob2Q6IlBVVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoYil9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoYS5sYW5nLk1TR19PSy5hc3NpZ24oYyhiLm5hbWUpKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIsIl91c2VycyIpfSkuZmFpbChmdW5jdGlvbih4LGQpe2N3LmxpYi5ub3RlKGEubGFuZy5NU0dfRkFJTC5hc3NpZ24oYyhiLm5hbWUpLHgsYyhkKSksImVycm9yIil9KX0sdWk6eyIjdW5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4Lm5hbWU9YSx4Ll9pZD0ib3JnLmNvdWNoZGIudXNlcjoiK2EpLHgubmFtZX0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5oYXMoIjoiKXx8L15fLy50ZXN0KGEpP3RoaXMubGFuZy5FUlJfTjp0aGlzLlVzZXJzW2FdJiYheC5fcmV2P3RoaXMubGFuZy5FUlJfTlg6dm9pZCAwfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiEheC5fcmV2fSwic2VsZjp4Z3JheSI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4Ll9yZXZ9fX0sIiN1cGFzcyI6InBhc3N3b3JkIiwiI3Vyb2xlcyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI3Vyb2xlcyIsdGhpcy5Sb2xlcywiUExDX1IiKX0sYmluZDoicm9sZXMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7aWYoYS5maW5kKC9eXy8pKXJldHVybiB0aGlzLmxhbmcuRVJSX1J9fSwiI3VhY2Nlc3MiOntkZWxheTo1MCxpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlNlYyxkPXt9LGU9W10sZj17fSxnPVtdLGg9W10saT0nPHNwYW4gY2xhc3M9ImZ3NTAwIj57MX0gPC9zcGFuPiB7Mn0nO3JldHVybiB4LnJvbGVzLmZvckVhY2goZnVuY3Rpb24oeCl7Y1t4XSYmKCQuZXh0ZW5kKGQsY1t4XS5hKSwkLmV4dGVuZChmLGNbeF0ubSkpfSksJC5leHRlbmQoZCxiLklzLmEpLCQuZXh0ZW5kKGYsYi5Jcy5tKSxlPU9iamVjdC5rZXlzKGQpLnNvcnQoKSxnPU9iamVjdC5rZXlzKGYpLnN1YnRyYWN0KGUpLnNvcnQoKSxlLmxlbmd0aCYmKGUubGVuZ3RoPjIwP2gucHVzaChpLmFzc2lnbigiQWRtaW4iLCJvZiAiK2UubGVuZ3RoKyIgREJzIikpOmgucHVzaChpLmFzc2lnbigiQWRtaW46IixlLm1hcCh4PT54LnRydW5jYXRlKDIwLCJtaWRkbGUiLCLigKYiKSkuam9pbigiLCAiKSkpKSxnLmxlbmd0aCYmKGcubGVuZ3RoPjIwP2gucHVzaChpLmFzc2lnbigiTWVtYmVyIiwib2YgIitnLmxlbmd0aCsiIERCcyIpKTpoLnB1c2goaS5hc3NpZ24oIk1lbWJlcjoiLGcubWFwKHg9PngudHJ1bmNhdGUoMjAsIm1pZGRsZSIsIuKApiIpKS5qb2luKCIsICIpKSkpLG51bGw9PWEmJmIubXkudHJpZ2dlcigiI3VhY2Nlc3MiLCJsYXlvdXQiKSxoLmpvaW4oIjxicj4iKX0sd2F0Y2g6IiN1cm9sZXMiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC5yb2xlcy5sZW5ndGh9fX0sIiNidG4tc3RhcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztpZih4Ll9yZXYpe3ZhciBjPWN3LmxpYi5kcnkoT2JqZWN0LmNsb25lKHgsITApKTtjLnBhc3N3b3JkPyhkZWxldGUgYy5kZXJpdmVkX2tleSxkZWxldGUgYy5pdGVyYXRpb25zLGRlbGV0ZSBjLnBhc3N3b3JkX3NjaGVtZSk6ZGVsZXRlIGMucGFzc3dvcmQsYi5zYXZlVXNlcihjKS50aGVuKGZ1bmN0aW9uKCl7Yi5teS5jYW5jZWwoKX0pfWVsc2UgYi5zYXZlVXNlcigpLnRoZW4oZnVuY3Rpb24oKXtiLm15LmNhbmNlbCgpfSl9fSx3YXRjaDpbIiN1bmFtZSIsIiN1cm9sZXMiLCIjdXBhc3MiXSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMubXkudmFsaWQoKXx8IXgubmFtZXx8IXgucGFzc3dvcmQmJiF4Ll9yZXZ9fX0sIiNidG4tb3RoZXJkb2MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC5fcmV2fHwhIXgubmFtZXx8ISF4LnBhc3N3b3JkfHx4LnJvbGVzLmxlbmd0aD4wfX0sd2F0Y2g6WyIjdW5hbWUiLCIjdXBhc3MiLCIjdXJvbGVzIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKSxbIiN1YWNjZXNzIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj14LmZpbmQoYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGIuZ2V0TmljZVNjcm9sbCYmYi5nZXROaWNlU2Nyb2xsKCkucmVtb3ZlKCl9KX0sUzI6ZnVuY3Rpb24oeCxhLGIpe3RoaXMuc2VsZWN0Mih0aGlzLm15LmZpbmQoeCkse3RhZ3M6YSxwbGFjZWhvbGRlcjp0aGlzLmxhbmdbYl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTIsdG9rZW5TZXBhcmF0b3JzOlsiICIsIiwiXX0pfSxIVE1MOlsnPGRpdiBpZD0iY3RpdGxlIiBjbGFzcz0iZnMxMzAgbWIyIGxoMTYwIGJvbGRlciI+e1RYVF9USVRMRX08L2Rpdj4nLHtyb3c6IjEwMCUiLGxhYmVsOiI3NXB4Iixyb3dDc3M6Im15LXJvdyBwdDMgcGIzIixsYWJlbENzczoibXktbGFiZWwifSxbIntMQkxfTn0iLCJpbnAjdW5hbWUuZnMxMTAiLHtwbGM6IntQTENfTn0ifSwibXNnIl0sWyJ7TEJMX1B9IiwiaW5wI3VwYXNzLmZzMTEwIix7cGxjOiJ7UExDX1B9In0sIm1zZyJdLHtyb3dDc3M6Im15LXJvdyBwdDcgcGIzIixsYWJlbENzczoibXktbGFiZWwgdmF0IHB0NiJ9LFsie0xCTF9SfSIsImlucCN1cm9sZXMuZnMxMDUiLCJtc2ciXSwnPGRpdiBpZD0idWFjY2VzcyIgY2xhc3M9ImhpZGUgZWxsIHcxMDBwIGZzOTAgZ3JheSBsaDEzMCBtdDQgbWItNCBwbDc1Ij48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtdDEyIHB0MTUgYnRkIj4nLCc8YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fU0FWRX08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCc8ZGl2IGNsYXNzPSJmciI+JywnPGEgaHJlZj0iI191c2Vycy9fbmV3IiBpZD0iYnRuLW90aGVyZG9jIiBjbGFzcz0iYnV0dG9uIHRkbiBkaWIgdmF0Ij4nLCc8c3BhbiBjbGFzcz0iIj57QlROX0RPQ308L3NwYW4+JywiPC9hPiIsIjwvZGl2PiIsIjwvZGl2PiJdLHN0eWxlOnsiIGlucHV0IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIjoibWF4LWhlaWdodDoxNjBweDsiLCIgI3VhY2Nlc3MiOiJtYXgtaGVpZ2h0OjMwMHB4OyJ9LHBhcmFtczp7c3RyaWN0OiEwfX0sTG9naW46e2lkOiJjdy5QaG90b24uTG9naW4iLHBhcmFtczp7cmVzdHlsZTozNTAsc3RyaWN0OiEwfSxsYW5nOnt9LGRhdGE6e25hbWU6IiIscGFzc3dvcmQ6IiJ9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSx4LmZpbmQoIiN1cHdkIikub24oImtleXVwLm15IixmdW5jdGlvbihhKXt2YXIgYj1hLmtleUNvZGU7MTMhPWImJjEwIT1ifHx4LmZpbmQoIiNidG4tc2VuZCIpLnRyaWdnZXIoImNsaWNrIil9KSx4LmZpbmQoIiN1bmFtZSIpLm9uKCJrZXl1cC5teSIsZnVuY3Rpb24oYSl7dmFyIGI9YS5rZXlDb2RlOzEzIT1iJiYxMCE9Ynx8eC5maW5kKCIjdXB3ZCIpLmZvY3VzKCl9KX0sdWk6eyIjdW5hbWUiOiJuYW1lIiwiI3Vwd2QiOiJwYXNzd29yZCIsIiNidG4tc2VuZCI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuZG9Mb2dpbigpLnRoZW4oZnVuY3Rpb24oKXtiLm15LmNhbmNlbCgpfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXgubmFtZXx8IXgucGFzc3dvcmR9fSx3YXRjaDpbIiN1bmFtZSIsIiN1cHdkIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sSFRNTDonPGRpdiBjbGFzcz0iZnMxNTAgbGgxNDAgZnc1MDAgbWI4Ij57VFhUX0xPR0lOfTwvZGl2PjxpbnB1dCBjbGFzcz0idzEwMHAgZnMxMjAgbWIxNSIgaWQ9InVuYW1lIiB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0ie1BMQ19VTkFNRX0iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+PGlucHV0IGNsYXNzPSJ3MTAwcCBmczEyMCBtYjE1IiBpZD0idXB3ZCIgdHlwZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJ7UExDX1BXRH0iIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiPjxkaXYgY2xhc3M9InB0MTUgYnRkIj48YnV0dG9uIGlkPSJidG4tc2VuZCIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPntCVE5fTE9HSU59PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+PC9kaXY+Jyxkb0xvZ2luOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJfY29tcGlsZWQiKSxiPSQuZXh0ZW5kKCEwLHt9LHguZGF0YSksYz14Lmxhbmc7cmV0dXJuIHgubXkucm9vdCgpLnBhcmVudCgpLmFkZENsYXNzKCJtb2RhbC1idXN5IikseC5SZXEoe3VybDpbIl9zZXNzaW9uIl0sbWV0aG9kOiJQT1NUIixkYXRhVHlwZToianNvbiIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoYil9KS50aGVuKGZ1bmN0aW9uKGQpe3ZhciBlPXtuYW1lOmQubmFtZXx8Yi5uYW1lLHJvbGVzOmQucm9sZXN9LGY9JC5EZWZlcnJlZCgpO3JldHVybiBhJiYkLmV4dGVuZCghMCx3aW5kb3cuRERPQy5fbWUsZSkseC5QaG8oIkdldExpc3QiKSgpLmFsd2F5cyhmdW5jdGlvbigpeyQubXkucmFkaW8oInVzZXJDdHgiLGUpLGN3LmxpYi5ub3RlKGMuTVNHX0FVVEhfT0suYXNzaWduKChiLm5hbWV8fCIiKS5lc2NhcGVIVE1MKCkpLCJvayIpLGYucmVzb2x2ZSgpfSksZi5wcm9taXNlKCl9KS5mYWlsKGZ1bmN0aW9uKGQsZSl7YSYmJC5leHRlbmQod2luZG93LkRET0MuX21lLHtuYW1lOiIiLHJvbGVzOltdfSksJC5teS5yYWRpbygidXNlckN0eCIse25hbWU6bnVsbCxyb2xlczpbXX0pLHguUGhvKCJteSIpLmNoZWNrKCIjYnRuLWFzaWRlLWF1dGgiKSxjdy5saWIubm90ZShjLk1TR19BVVRIX0ZBSUwuYXNzaWduKChiLm5hbWV8fCIiKS5lc2NhcGVIVE1MKCksZCxlLmVzY2FwZUhUTUwoKSksImVycm9yIil9KS5hbHdheXMoZnVuY3Rpb24oKXt4Lm15LnJvb3QoKS5wYXJlbnQoKS5yZW1vdmVDbGFzcygibW9kYWwtYnVzeSIpfSl9LHN0eWxlOnsiIjoiZm9udC1zaXplOjE3cHg7IGxpbmUtaGVpZ2h0OjEuN2VtOyJ9fSxMb2dvdXQ6e2lkOiJjdy5QaG90b24uTG9nb3V0IixwYXJhbXM6e3Jlc3R5bGU6MzUwLHN0cmljdDohMH0sbGFuZzp7fSxkYXRhOnt9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sSFRNTDonPGRpdiBpZD0ibHRpdGxlIiBjbGFzcz0ibWI2IGxoMTQwIj48L2Rpdj48ZGl2IGNsYXNzPSJncmF5IHBsMSI+PGRpdiBpZD0ieHByb2ZpbGUiPjxzcGFuIGNsYXNzPSJmaS10b3JzbyI+PC9zcGFuPiA8YSBpZD0iYnRuLXByb2ZpbGUiIGhyZWY9IiIgY2xhc3M9InBzZXVkb2xpbmsgdGRuIj57VFhUX1BST0ZJTEV9PC9hPjwvZGl2PjxkaXY+PHNwYW4gY2xhc3M9ImZpLXBvd2VyIj48L3NwYW4+IDxzcGFuIGlkPSJidG4tbG9nb3V0IiBjbGFzcz0icHNldWRvbGluayB0ZG4iPntUWFRfTE9HT1VUfTwvc3Bhbj48L2Rpdj48L2Rpdj4nLHVpOnsiI2x0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0nPGRpdiBjbGFzcz0iZnMxMzAgeGdyYXkgbGgxMjAgdzEwMHAgb2ggZWxsIj57MX08L2Rpdj4nLmFzc2lnbihjdy5tZSgpLmVzY2FwZUhUTUwoKSksYz1jdy5tZSgicm9sZXMiKXx8W107cmV0dXJuIGMubGVuZ3RoJiYoYis9JzxkaXYgY2xhc3M9ImdyYXkgZnM5MCI+ezF9PC9kaXY+Jy5hc3NpZ24oYy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIjxub2JyPiIreC5lc2NhcGVIVE1MKCkrIjwvbm9icj4ifSkuam9pbigiLCAiKSkpLGJ9fSwiI2J0bi1wcm9maWxlIjp7ZGVsYXk6MzAsYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIiwiI191c2Vycy9vcmcuY291Y2hkYi51c2VyOiIrY3cubWUoKSksbnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LCIjYnRuLWxvZ291dCI6e2RlbGF5OjMwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJih0aGlzLmRvTG9nb3V0KCksdGhpcy5teS5jYW5jZWwoKSl9fX0sZG9Mb2dvdXQ6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5sYW5nLGI9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX07Y3cubGliLm5vdGUoYS5NU0dfTE9HT1VUX1NUQVJULCIiLDFlMykseC5SZXEoe3VybDpbIl9zZXNzaW9uIl0sbWV0aG9kOiJQT1NUIixkYXRhVHlwZToianNvbiIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoe25hbWU6IjAiLHBhc3N3b3JkOiIwIn0pfSkudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShhLk1TR19MT0dPVVRfRkFJTC5hc3NpZ24oOTk5LCJTZXJ2ZXIgcmV0dXJuZWQgaW52YWxpZCByZXNwb25zZSIpLCJlcnJvciIpfSkuZmFpbChmdW5jdGlvbihjLGQsZSl7NDAxIT1jJiY0MDMhPWM/KGN3LmxpYi5ub3RlKGEuTVNHX0xPR09VVF9GQUlMLmFzc2lnbihjLGIoZCkpLCJlcnJvciIpLHguUGhvKCJteSIpLmNoZWNrKCIjYnRuLWFzaWRlLWF1dGgiKSk6Y3cubGliLm5vdGUoYS5NU0dfTE9HT1VUX09LLCJvayIpfSl9fSxDb21wYWN0OntpZDoiY3cuUGhvdG9uLkNvbXBhY3QiLGxhbmc6e30sZGF0YTp7c2VsZWN0aW9uOltdLG9wczpbImRvY3MiXSxkZG9jczpbXSxkc2VsZWN0aW9uOltdfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7Yi5BbGw9YS5QaG8oIkFsbCIpLGIuYWxsPU9iamVjdC5rZXlzKGIuQWxsKS5zb3J0KCkseC5odG1sKGEuSFRNTC5hc3NpZ24oYS5sYW5nKSkseC50aGVuKGZ1bmN0aW9uKCl7YS5TZWwyU2Nyb2xsKHgsITApfS5kZWJvdW5jZSgxNSkpfSxDQjp7ZG9jczpmdW5jdGlvbigpe30sZGRvY3M6ZnVuY3Rpb24oKXt9LHZpZXdzOmZ1bmN0aW9uKCl7fX0sdWk6eyIjY3RpdGxlIjp7YmluZDpmdW5jdGlvbih4KXtyZXR1cm4gMT09eC5zZWxlY3Rpb24ubGVuZ3RoP3RoaXMubGFuZy5UWFRfVElUTEUxOnRoaXMubGFuZy5UWFRfVElUTEV9LHdhdGNoOlsiI2RicyJdfSwiI2RicyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse2RhdGE6dGhpcy5kYXRhLmFsbC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiEwLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSwhMCl9LGJpbmQ6InNlbGVjdGlvbiIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9EQlN9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZGRvY3MubGVuZ3RoPjB9fX0sIiNkYm9wcyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHt0YWdzOnRoaXMubGFuZy5UQUdfT1AudG8odGhpcy5kYXRhLmRkb2NzLmxlbmd0aD8zOjIpfSl9LGJpbmQ6Im9wcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9PUH19LCIjZGRvY3MiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuc2VsZWN0Mih4LHtkYXRhOnRoaXMuZGF0YS5kZG9jcy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDoiX2Rlc2lnbi8iK3h9fSksbXVsdGlwbGU6ITAscGxhY2Vob2xkZXI6dGhpcy5sYW5nLlBMQ19ERE9DUyxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOiJkc2VsZWN0aW9uIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiFhLmxlbmd0aCYmeC5vcHMuaW5kZXhPZigiZGRvY3MiKT4tMT90aGlzLmxhbmcuRVJSX0RET0NTOiIifSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4tMT09eC5vcHMuaW5kZXhPZigiZGRvY3MiKXx8MSE9eC5zZWxlY3Rpb24ubGVuZ3RofX0sd2F0Y2g6WyIjZGJvcHMiLCIjZGJzIl19LCIjYnRuLXN0YXJ0Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3RyeXt0aGlzLmRvQ29tcGFjdCgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfXRoaXMubXkuY2FuY2VsKCl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXguc2VsZWN0aW9uLmxlbmd0aHx8IXgub3BzLmxlbmd0aHx8IXRoaXMubXkudmFsaWQoKX19LHdhdGNoOlsiI2RicyIsIiNkYm9wcyIsIiNkZG9jcyJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LGRvQ29tcGFjdDpmdW5jdGlvbigpe3ZhciB4LGEsYj10aGlzLGM9JC5leHRlbmQoITAse30sYi5kYXRhKSxkPShiLlBobygiX2NvbXBpbGVkIiksYi5sYW5nKSxlPWMuc2VsZWN0aW9uLmxlbmd0aDtmdW5jdGlvbiBmKCl7KGUtPTEpPjB8fFs3MDAsMjUwMCw3NTAwLDE1ZTNdLmZvckVhY2goZnVuY3Rpb24oeCl7Zy5kZWJvdW5jZSh4KSgpfSl9ZnVuY3Rpb24gZygpeyQubXkucmFkaW8oImRibGlzdCIsYy5zZWxlY3Rpb24pfWMub3BzLmxlbmd0aCYmZSYmT2JqZWN0LmtleXMoYy5BbGwpLmludGVyc2VjdChjLnNlbGVjdGlvbikubGVuZ3RoJiZjLnNlbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBnPVtdO2Mub3BzLmZpbmQoImRvY3MiKSYmZy5wdXNoKGIuUmVxKHt1cmw6W2UsIl9jb21wYWN0Il0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiJ9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjb25zb2xlLmxvZygiRXJyb3Igc3RhcnRpbmcgZGF0YSBjb21wYWN0aW9uIG9mICIrZSx4LGEsYil9KSksYy5vcHMuZmluZCgidmlld3MiKSYmZy5wdXNoKGIuUmVxKHt1cmw6W2UsIl92aWV3X2NsZWFudXAiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIn0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2NvbnNvbGUubG9nKCJFcnJvciBzdGFydGluZyBwdXJnaW5nIG9sZCB2aWV3cyBvZiAiK2UseCxhLGIpfSkpLGMub3BzLmZpbmQoImRkb2NzIikmJih4PWMuZHNlbGVjdGlvbi5jb21wYWN0KCEwKSxhPWZ1bmN0aW9uKCl7Yi5DQi5kZG9jcyh4KX0uZGVib3VuY2UoNSkuYWZ0ZXIoeC5sZW5ndGgpLHguZm9yRWFjaChmdW5jdGlvbih4KXtnLnB1c2goYi5SZXEoe3VybDpbZSwiX2NvbXBhY3QiLHhdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24ifSkuZmFpbChmdW5jdGlvbihhLGIsYyl7Y29uc29sZS5sb2coIkVycm9yIHN0YXJ0aW5nIHZpZXcgY29tcGFjdGlvbiBvZiAiK2UrIi9fZGVzaWduLyIreCxhLGIsYyl9KS5hbHdheXMoZnVuY3Rpb24oKXthKCl9KSl9KSksUS5hbGwoZykudGhlbihmdW5jdGlvbih4KXtjdy5saWIubm90ZShkLk1TR19DT01QQUNUX1NUQVJULmFzc2lnbihlKSksZigpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y3cubGliLm5vdGUoZC5NU0dfQ09NUEFDVF9GQUlMX1NPTUUsImVycm9yIiksZigpfSl9LmxhenkoYi5QaG8oIkNmZyIpLmJhdGNoQ29tcGFjdERlbGF5KSl9LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6JzxkaXYgaWQ9ImN0aXRsZSIgY2xhc3M9ImZzMTMwIG1iMTAgYm9sZGVyIj57VFhUX1RJVExFfTwvZGl2PjxkaXYgY2xhc3M9Im1iMTAgZnMxMDUiPjxpbnB1dCBpZD0iZGJzIiBjbGFzcz0idzEwMHAiPjwvZGl2PjxkaXYgY2xhc3M9Im1iMTAiPjxzcGFuIGlkPSJkYm9wcyI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im1iMTAgZnMxMDUgaGlkZSI+PGlucHV0IGlkPSJkZG9jcyIgY2xhc3M9IncxMDBwIj48L2Rpdj48ZGl2IGNsYXNzPSJtdDEwIHB0MTAgYnRkIj48YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJtYXJrZm9jdXMgZ3JlZW4gbXIyIj57QlROX1NUQVJUfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiIGNsYXNzPSJtYXJrZm9jdXMiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPjwvZGl2Picsc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjIxNHB4OyJ9LHBhcmFtczp7c3RyaWN0OiEwfX0sTmV3REI6e2lkOiJjdy5QaG90b24uTmV3REIiLGxhbmc6e30sZGF0YTp7ZGJzOltdLGFsbDpbXSxhbGxvOnt9LHVzZXJzOltdLHJvbGVzOltdLGFkbWluczp7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6e25hbWVzOltdLHJvbGVzOltdfSxxOjAsbjowLHBhcnRpdGlvbmVkOiExfSxVc2VyczpbXSxTMjpmdW5jdGlvbih4LGEsYil7dGhpcy5zZWxlY3QyKHRoaXMubXkuZmluZCh4KSx7dGFnczphLHBsYWNlaG9sZGVyOnRoaXMubGFuZ1tiXSx0b2tlblNlcGFyYXRvcnM6WyIgIiwiLCJdLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWEuUGhvKCJBbGwiKTtmdW5jdGlvbiBkKCl7eC5wYXJlbnQoKS5jc3MoImhlaWdodCIsImF1dG8iKX1iLmFsbD1PYmplY3Qua2V5cyhjKSxiLmFsbG89Y3cubGliLmEybyhiLmFsbCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSxiLnJvbGVzPU9iamVjdC5rZXlzKE9iamVjdC5rZXlzKGMpLnJlZHVjZShmdW5jdGlvbih4LGEpe3ZhciBiPWNbYV0uc2VjdXJpdHk7cmV0dXJuW10uYWRkKGIuYWRtaW5zLnJvbGVzKS5hZGQoYi5tZW1iZXJzLnJvbGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3hbYV09ITB9KSx4fSx7fSkpLmFkZCgiX2FkbWluIikudW5pcXVlKCkuc29ydCgpLGIucT1hLlBobygiQ291Y2giKS5xLGIubj1hLlBobygiQ291Y2giKS5uLHgucGFyZW50KCkub24oImRyYWdzdG9wIixkKSx4LnRoZW4oZnVuY3Rpb24oKXtkKCl9KSxRLmFsbChbYS5QaG8oIkdldFVzZXJzIikoKS50aGVuKGZ1bmN0aW9uKHgpe2IudXNlcnM9eH0pLHhdKS50aGVuKGZ1bmN0aW9uKCl7YS5TMigiI3VhZG0iLGEuZGF0YS51c2VycywiUExDX1VBRE0iKSxhLlMyKCIjdW1lbSIsYS5kYXRhLnVzZXJzLCJQTENfVU1FTSIpLGEuU2VsMlNjcm9sbCh4LCEwKX0pfSx1aTp7IiNjdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LmRicy5sZW5ndGg/dGhpcy5sYW5nLlRYVF9USVRMRTE6dGhpcy5sYW5nLlRYVF9USVRMRX0sd2F0Y2g6WyIjZGJzIl19LCIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7dGFnczpbXSxwbGFjZWhvbGRlcjp0aGlzLmxhbmcuUExDX0RCUyx0b2tlblNlcGFyYXRvcnM6WyIgIiwiLCJdLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImRicyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXt2YXIgYj1bXSxjPVtdLGQ9W107cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihhKXt4LmFsbG9bYV0mJmIucHVzaChhKSwvXlthLXowLTlfJFwoXClcK1wtXC9dKyQvLnRlc3QoYSl8fGMucHVzaChhKSwvXlthLXpdLy50ZXN0KGEpfHxkLnB1c2goYSl9KSxiLmxlbmd0aD90aGlzLmxhbmcuRVJSX0RCX0VYSVNULmFzc2lnbihiLmpvaW4oIiwgIikuZXNjYXBlSFRNTCgpKTpjLmxlbmd0aD90aGlzLmxhbmcuRVJSX0RCX05BTUU6ZC5sZW5ndGg/dGhpcy5sYW5nLkVSUl9EQl9VTkQ6dm9pZCAwfX0sIiN1YWRtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdWFkbSIsdGhpcy5kYXRhLnVzZXJzLCJQTENfVUFETSIpfSxiaW5kOiJhZG1pbnMubmFtZXMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuaXNVbmFtZXMoYSl9fSwiI2dhZG0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiNnYWRtIix0aGlzLmRhdGEucm9sZXMsIlBMQ19HQURNIil9LGJpbmQ6ImFkbWlucy5yb2xlcyJ9LCIjdW1lbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI3VtZW0iLHRoaXMuZGF0YS51c2VycywiUExDX1VNRU0iKX0sYmluZDoibWVtYmVycy5uYW1lcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pc1VuYW1lcyhhKX19LCIjZ21lbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI2dtZW0iLHRoaXMuZGF0YS5yb2xlcywiUExDX0dNRU0iKX0sYmluZDoibWVtYmVycy5yb2xlcyJ9LCIjcXNoYXJkcyI6InEiLCIjcXNoYXJkc3R4dCI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGFuZy5UWFRfU0hBUkRTKHgucSl9LHdhdGNoOlsiI3FzaGFyZHMiXX0sIiNuY29waWVzIjoibiIsIiNuY29waWVzdHh0Ijp7YmluZDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sYW5nLlRYVF9DT1BJRVMoeC5uKX0sd2F0Y2g6WyIjbmNvcGllcyJdfSwnaW5wdXRbbmFtZT0icGFydGl0aW9uZWQiXSc6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucGFydGl0aW9uZWQ9YS5sZW5ndGg+MCkseC5wYXJ0aXRpb25lZD9bInBhcnRpdGlvbmVkIl06W119LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5QaG8oIkNvdWNoIikudmVyPCIwMDMuInx8eC5xPDJ9fSx3YXRjaDpbIiNxc2hhcmRzIl19LCIjY2x1c3RlcmluZyI6e2Nzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlBobygiQ291Y2giKS52ZXI8IjAwMi4ifX19LCIjYnRuLXN0YXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHRoaXMubGFuZ1siQlROX1NUQVJUIisoeC5tZW1iZXJzLm5hbWVzK3gubWVtYmVycy5yb2xlcz8iIjoiX1BVQkxJQyIpXTt0cnl7dGhpcy5kb0NyZWF0ZSgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfXRoaXMubXkuY2FuY2VsKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5kYnMubGVuZ3RofHwhdGhpcy5teS52YWxpZCgpfSwic2VsZjpvcmFuZ2UiOmZ1bmN0aW9uKHgpe3JldHVybiEoeC5tZW1iZXJzLm5hbWVzK3gubWVtYmVycy5yb2xlcyl9LCJzZWxmOmdyZWVuIjpmdW5jdGlvbih4KXtyZXR1cm4hISh4Lm1lbWJlcnMubmFtZXMreC5tZW1iZXJzLnJvbGVzKX19LHdhdGNoOlsiI2RicyIsIiN1bWVtIiwiI2dtZW0iXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxkb0NyZWF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlBobygiQ291Y2giKSxjPWIudmVyLGQ9e25hbWU6IiIsc2VjdXJpdHk6T2JqZWN0LnNlbGVjdChhLFsiYWRtaW5zIiwibWVtYmVycyJdKX07Yz4iMDAyLiImJitiLnE+MCYmJC5leHRlbmQoZCx7cTorYS5xLG46K2Eubn0pLGM+IjAwMy4iJiZhLnBhcnRpdGlvbmVkJiYrYS5xPjEmJihkLnBhcnRpdGlvbmVkPSEwKTt2YXIgZT1hLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGQse25hbWU6eH0pfSk7cmV0dXJuIHguUGhvKCJDcmVhdGVEQnMiKShlLCExKX0saXNVbmFtZXM6ZnVuY3Rpb24oeCl7dmFyIGE9IiIsYj10aGlzO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7Il9hZG1pbiIhPXgmJih4LmhhcygiOiIpfHwvXl8vLnRlc3QoeCkpJiYoYT1iLmxhbmcuRVJSX1VOQU1FKX0pLGF9LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6Wyc8ZGl2IGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIGNtIj4nLCc8c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gJywnPHNwYW4gaWQ9ImN0aXRsZSI+e1RYVF9USVRMRX08L3NwYW4+JywiPC9kaXY+Iix7cm93OiIxMDAlIixsYWJlbDoiNjBweCIscm93Q3NzOiJteS1yb3cgcHQzIHBiMyIsbGFiZWxDc3M6Im15LWxhYmVsIn0sWyJ7TEJMX0RCU30iLCJpbnAjZGJzLmZzMTA1LmxoMTYwIiwibXNnIl0sJzxzZWN0aW9uIGlkPSJjbHVzdGVyaW5nIj4nLFsie0xCTF9DTFVTVEVSfSIsJzxzcGFuIGNsYXNzPSJmczk1Ij4nLCJudW0jcXNoYXJkcy53NTAubXI1Iix7bWluOjEsbWF4OjMyfSwic3BhbiNxc2hhcmRzdHh0LmRpYi53NzAiLCJudW0jbmNvcGllcy53NTAubXI1Iix7bWluOjEsbWF4OjE2fSwic3BhbiNuY29waWVzdHh0LmRpYi53OTAiLCc8c3BhbiBjbGFzcz0iaGlkZSI+PGxhYmVsIGNsYXNzPSJkaWIgeGdyYXkgY3AiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icGFydGl0aW9uZWQiIGNsYXNzPSJmczExMCB2YW0gbXIzIGNwIiB2YWx1ZT0icGFydGl0aW9uZWQiPiB7VFhUX1BBUlRJVElPTlN9JywiPC9sYWJlbD48L3NwYW4+IiwiPC9zcGFuPiJdLCI8L3NlY3Rpb24+IiwnPGRpdiBjbGFzcz0iZnMxMjAgbXQxMCBtYjIiPntUWFRfQURNfTwvZGl2PicsWyJ7TEJMX1VBRE19IiwiaW5wI3VhZG0uZnMxMDUubGgxNjAiLCJtc2ciXSxbIntMQkxfR0FETX0iLCJpbnAjZ2FkbS5mczEwNS5saDE2MCIsIm1zZyJdLCc8ZGl2IGNsYXNzPSJmczEyMCBtdDEwIG1iMiI+e1RYVF9NRU19PC9kaXY+JyxbIntMQkxfVUFETX0iLCJpbnAjdW1lbS5mczEwNS5saDE2MCIsIm1zZyJdLFsie0xCTF9HQURNfSIsImlucCNnbWVtLmZzMTA1LmxoMTYwIiwibXNnIl0sJzxkaXYgY2xhc3M9Im10MTIgcHQxNSBidGQiPicsJzxidXR0b24gaWQ9ImJ0bi1zdGFydCIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPntCVE5fU1RBUlR9PC9idXR0b24+JywnPGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+JywiPC9kaXY+Il0sc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjU2cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxEZWxEQjp7aWQ6ImN3LlBob3Rvbi5EZWxEQiIsbGFuZzp7fSxkYXRhOntkYnM6W10sYWxsOltdLGFsbG86e30scmVuZXc6ITEscmVuZXdhY2w6ITAscmVuZXdxbnA6ITAsaGFzYWNsOiEwLGhhc3FucDohMCxyZXNvcmU6W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWEuUGhvKCJBbGwiKTtiLmRicy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWNbeF07YS5jbHVzdGVyJiZhLmNsdXN0ZXIucXx8KGIuaGFzcW5wPSExKSxhLnNlY3VyaXR5JiZhLnNlY3VyaXR5LnN0YW1wfHwoYi5oYXNhY2w9ITEpfSksYi5hbGw9Yi5kYnMuc2xpY2UoMCksYi5hbGxvPWN3LmxpYi5hMm8oYi5hbGwpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSkseC50aGVuKGZ1bmN0aW9uKCl7YS5TZWwyU2Nyb2xsKHgsITApfS5kZWJvdW5jZSgxNSkpfSx1aTp7IiNjdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LmRicy5sZW5ndGg/dGhpcy5sYW5nLlRYVF9USVRMRTE6dGhpcy5sYW5nLlRYVF9USVRMRX0sd2F0Y2g6WyIjZGJzIl19LCIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLmRhdGEuYWxsO3RoaXMuc2VsZWN0Mih4LHtkYXRhOmEubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LHRleHQ6eH19KSxtdWx0aXBsZTohMCxwbGFjZWhvbGRlcjp0aGlzLmxhbmcuUExDX0RCUyxyZWFkT25seToxPT1hLmxlbmd0aCxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOiJkYnMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGEubGVuZ3RoPyIiOnRoaXMubGFuZy5FUlJfREJTfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LmFsbC5sZW5ndGh9fX0sIiNkZWx3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz17c2l6ZTowLGNvdW50OjAsZGlzazowLGJhc2U6KG5ldyBVUkwoYi5QaG8oIkJhc2UiKSkuaG9zdG5hbWUrIiIpLnRydW5jYXRlKDQ1LCJtaWRkbGUiKS5lc2NhcGVIVE1MKCl9LGQ9Yi5QaG8oIkFsbCIpO3JldHVybiB4LmRicy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWRbeF07YSYmKGMuc2l6ZSs9K2EuZGF0YV9zaXplfHwwLGMuZGlzays9K2EuZGlza19zaXplfHwwKX0pLGMuY291bnQ9eC5kYnMubGVuZ3RoLHguZGJzLmxlbmd0aD9iLmxhbmcuVFhUX1dBUk4oYyk6IiJ9LHdhdGNoOiIjZGJzIn0sIiNkZWxuZXciOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJlbmV3PSEhYS5sZW5ndGgpLHgucmVuZXc/WyJvayJdOltdfX0sIiNkZWxuZXcxIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZW5ld2FjbD0hIWEubGVuZ3RoKSx4LnJlbmV3YWNsP1sib2siXTpbXX0sd2F0Y2g6WyIjZGVsbmV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4Lmhhc2FjbH0sIjpkaXNhYmxlZCBvODAiOmZ1bmN0aW9uKHgpe3JldHVybiF4LnJlbmV3fX19LCIjZGVsbmV3MiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmVuZXdxbnA9ISFhLmxlbmd0aCkseC5yZW5ld3FucD9bIm9rIl06W119LHdhdGNoOlsiI2RlbG5ldyJdLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC5oYXNxbnB8fHRoaXMuUGhvKCJDb3VjaCIpLnZlcjwiMDAyLiJ9LCI6ZGlzYWJsZWQgbzgwIjpmdW5jdGlvbih4KXtyZXR1cm4heC5yZW5ld319fSwiI2J0bi1zdGFydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB0aGlzLmxhbmcuQlROX1NUQVJUKHguZGJzLmxlbmd0aCk7dHJ5e3RoaXMuZG9EZWxldGVaKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jb21taXQoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LmRicy5sZW5ndGh8fCF0aGlzLm15LnZhbGlkKCl9fSx3YXRjaDpbIiNkYnMiXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxkb0RlbGV0ZVo6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9JC5leHRlbmQoITAse30seC5kYXRhKSxiPSh4LlBobygiX2NvbXBpbGVkIikseC5QaG8oIkNmZyIpLmJhdGNoQ3JlYXRlRGVsYXkpLGM9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX0sZD14LmxhbmcsZT1hLmRicyxmPWUubGVuZ3RoLGc9W10saD1bXTtpZihmKXt2YXIgaT14LlBobygiQWxsIik7YS5yZW5ldyYmZS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBiPWlbeF07aWYoYil7dmFyIGM9e2NyZWF0ZTohMCxuYW1lOngsc2VjdXJpdHk6bnVsbH07Yi5zZWN1cml0eSYmYi5zZWN1cml0eS5zdGFtcCYmYS5yZW5ld2FjbCYmKGMuc2VjdXJpdHk9JC5leHRlbmQoITAse30sT2JqZWN0LnNlbGVjdChiLnNlY3VyaXR5LFsiYWRtaW5zIiwibWVtYmVycyJdKSkpLGIuY2x1c3RlciYmYi5jbHVzdGVyLnEmJmEucmVuZXdxbnAmJihjLnE9Yi5jbHVzdGVyLnEsYy5uPWIuY2x1c3Rlci5uLGMucGFydGl0aW9uZWQ9ISFiLnByb3BzJiYhIWIucHJvcHMucGFydGl0aW9uZWQpLGcucHVzaChjKX19KSxRLmFsbFNldHRsZWQoZS5tYXAoZnVuY3Rpb24oZSxmKXt2YXIgZz0kLkRlZmVycmVkKCk7cmV0dXJuIGZ1bmN0aW9uKCl7eC5SZXEoe3VybDpbZV0sbWV0aG9kOiJERUxFVEUifSkudGhlbihmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGQuTVNHX09LLmFzc2lnbihlKSwib2siKSxhLnJlbmV3fHwkLm15LnJhZGlvKCJkYmRlbGV0ZWQiLGUpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7aC5wdXNoKGUpLGN3LmxpYi5ub3RlKGQuTVNHX0ZBSUwuYXNzaWduKGUseCxjKGEpKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2cucmVzb2x2ZSgpfSl9LmRlbGF5KGYqYiksZy5wcm9taXNlKCl9KSkudGhlbihmdW5jdGlvbigpe3JldHVybiAkLm15LnJhZGlvKCJkYmxpc3QiLFtdKSxhLnJlbmV3P3guUGhvKCJDcmVhdGVEQnMiKShnLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4haC5maW5kKHgubmFtZSl9KSwhMSkudGhlbihmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIsZy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pLnN1YnRyYWN0KGgpKX0pOmEuZGJzfSl9fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5TZWwyU2Nyb2xsKHgsITEpfSxIVE1MOlsnPGRpdiBpZD0iY3RpdGxlIiBjbGFzcz0iZnMxMzAgbWIyIGxoMTYwIGJvbGRlciByZWQiPntUWFRfVElUTEV9PC9kaXY+JywnPGRpdiBjbGFzcz0ibWIxMCBmczEwNSI+PGlucHV0IGlkPSJkYnMiIGNsYXNzPSJ3MTAwcCI+PC9kaXY+JywnPGRpdiBjbGFzcz0ibWIxMCI+PHNwYW4gaWQ9ImRlbHdhcm4iPjwvc3Bhbj48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtYjgiPicsJzxsYWJlbCBjbGFzcz0ieGdyYXkgbGgxMzAiPicsJzxzcGFuIGNsYXNzPSJ3MjAgZGliIj48aW5wdXQgaWQ9ImRlbG5ldyIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJvayI+IDwvc3Bhbj57TEJMX05FV30nLCI8L2xhYmVsPiIsJzxkaXY+PGxhYmVsIGNsYXNzPSJ4Z3JheSBsaDEzMCBwbDIwIj48aW5wdXQgaWQ9ImRlbG5ldzEiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ib2siPiZuYnNwOyB7TEJMX05FV19BQ0x9PC9sYWJlbD48L2Rpdj4nLCc8ZGl2PjxsYWJlbCBjbGFzcz0ieGdyYXkgbGgxMzAgcGwyMCI+PGlucHV0IGlkPSJkZWxuZXcyIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9Im9rIj4mbmJzcDsge0xCTF9ORVdfUU5QfTwvbGFiZWw+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxMiBwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0icmVkIG1hcmtmb2N1cyBtcjIiPntCVE5fU1RBUlR9PC9idXR0b24+JywnPGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+JywiPC9kaXY+Il0sc3R5bGU6eyIiOiJmb250LXNpemU6MTZweCIsIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6MjE0cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxTZWNPYmo6e2lkOiJjdy5QaG90b24uU2VjT2JqIixsYW5nOnt9LGRhdGE6e2RiczpbXSxhbGw6W10sYWxsbzp7fSx1c2VyczpbXSxyb2xlczpbXSxhZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LFVzZXJzOltdLFMyOmZ1bmN0aW9uKHgsYSxiLGMpe3RoaXMuc2VsZWN0Mih0aGlzLm15LmZpbmQoeCkse3RhZ3M6YSxwbGFjZWhvbGRlcjp0aGlzLmxhbmdbYl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9LCEhYyl9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWEuUGhvKCJBbGwiKTtiLmFsbD1PYmplY3Qua2V5cyhjKS5zb3J0KCksYi5hbGxvPWN3LmxpYi5hMm8oYi5hbGwpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSksYi5yb2xlcz1PYmplY3Qua2V5cyhPYmplY3Qua2V5cyhjKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXt2YXIgYj1jW2FdLnNlY3VyaXR5O3JldHVybltdLmFkZChiLmFkbWlucy5yb2xlcykuYWRkKGIubWVtYmVycy5yb2xlcykuZm9yRWFjaChmdW5jdGlvbihhKXt4W2FdPSEwfSkseH0se30pKS5hZGQoIl9hZG1pbiIpLnVuaXF1ZSgpLnNvcnQoKSxRLmFsbChbYS5QaG8oIkdldFVzZXJzIikoKS50aGVuKGZ1bmN0aW9uKHgpe2IudXNlcnM9eH0pLHhdKS50aGVuKGZ1bmN0aW9uKCl7YS5TMigiI3VhZG0iLGEuZGF0YS51c2VycywiUExDX1VBRE0iKSxhLlMyKCIjdW1lbSIsYS5kYXRhLnVzZXJzLCJQTENfVU1FTSIpLHgudHJpZ2dlcigibGF5b3V0IiksYS5TZWwyU2Nyb2xsKHgsITApfSl9LHVpOnsiI2RicyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse3RhZ3M6dGhpcy5kYXRhLmFsbC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiEwLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSwhMCl9LGJpbmQ6ImRicyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9EQlN9fSwiI3VhZG0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiN1YWRtIix0aGlzLmRhdGEudXNlcnMsIlBMQ19VQURNIiwhMCl9LGJpbmQ6ImFkbWlucy5uYW1lcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pc1VuYW1lcyhhKX19LCIjZ2FkbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI2dhZG0iLHRoaXMuZGF0YS5yb2xlcywiUExDX0dBRE0iKX0sYmluZDoiYWRtaW5zLnJvbGVzIn0sIiN1bWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdW1lbSIsdGhpcy5kYXRhLnVzZXJzLCJQTENfVU1FTSIsITApfSxiaW5kOiJtZW1iZXJzLm5hbWVzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLmlzVW5hbWVzKGEpfX0sIiNnbWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjZ21lbSIsdGhpcy5kYXRhLnJvbGVzLCJQTENfR01FTSIpfSxiaW5kOiJtZW1iZXJzLnJvbGVzIn0sIiNidG4tc3RhcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4gdGhpcy5sYW5nLkJUTl9TVEFSVDt0cnl7dGhpcy5kb1NlY1VwZGF0ZSgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfXRoaXMubXkuY2FuY2VsKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5kYnMubGVuZ3RofHwhdGhpcy5teS52YWxpZCgpfX0sd2F0Y2g6WyIjZGJzIiwiI3VtZW0iLCIjZ21lbSJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX0sIiNsYXlwcm94eSI6e2RlbGF5OjE1MCx3YXRjaDpbIiNkYnMiLCIjdWFkbSIsIiNnYWRtIiwiI3VtZW0iLCIjZ21lbSJdLGJpbmQ6ZnVuY3Rpb24oKXt0aGlzLm15LnRyaWdnZXIoIiNsYXlwcm94eSIsImxheW91dCIpfX19LGlzVW5hbWVzOmZ1bmN0aW9uKHgpe3ZhciBhPSIiLGI9dGhpcztyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKHgpeyJfYWRtaW4iIT14JiYoeC5oYXMoIjoiKXx8L15fLy50ZXN0KHgpKSYmKGE9Yi5sYW5nLkVSUl9VTkFNRSl9KSxhfSxkb1NlY1VwZGF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0kLmV4dGVuZCghMCx7fSx4LmRhdGEpLGI9KHguUGhvKCJfY29tcGlsZWQiKSxmdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfSksYz14LmxhbmcsZD1hLmRicy5sZW5ndGgsZT1PYmplY3Quc2VsZWN0KGEsWyJhZG1pbnMiLCJtZW1iZXJzIl0pLGY9KGUubWVtYmVycy5uYW1lcyxlLm1lbWJlcnMucm9sZXMsZS5hZG1pbnMubmFtZXMsZS5hZG1pbnMucm9sZXMsZS5tZW1iZXJzLm5hbWVzLGUubWVtYmVycy5yb2xlcyxhLmRicyk7ZCYmZi5mb3JFYWNoKGZ1bmN0aW9uKGEsZyl7eC5SZXEoe3VybDpbYSwiX3NlY3VyaXR5Il0sbWV0aG9kOiJQVVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KGUpfSkudGhlbihmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGMuTVNHX09LLmFzc2lnbihhKSwib2siKX0pLmZhaWwoZnVuY3Rpb24oeCxkLGUpe2N3LmxpYi5ub3RlKGMuTVNHX0ZBSUwuYXNzaWduKGEseCxiKGQpKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2c9PWQtMSYmJC5teS5yYWRpbygiZGJsaXN0IixmKX0pfS5sYXp5KHguUGhvKCJDZmciKS5iYXRjaENyZWF0ZURlbGF5KSl9LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6Wyc8ZGl2IGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIj57VFhUX1RJVExFfTwvZGl2Picse3JvdzoiMTAwJSIsbGFiZWw6IjYwcHgiLHJvd0NzczoibXktcm93IHB0MyBwYjMiLGxhYmVsQ3NzOiJteS1sYWJlbCJ9LFsie0xCTF9EQlN9IiwiaW5wI2Ricy5mczEwNSIsIm1zZyJdLCc8ZGl2IGNsYXNzPSJmczEyMCBtdDEwIG1iMiI+e1RYVF9BRE19PC9kaXY+JyxbIntMQkxfVUFETX0iLCJpbnAjdWFkbS5mczEwNSIsIm1zZyJdLFsie0xCTF9HQURNfSIsImlucCNnYWRtLmZzMTA1IiwibXNnIl0sJzxkaXYgY2xhc3M9ImZzMTIwIG10MTAgbWIyIj57VFhUX01FTX08L2Rpdj4nLFsie0xCTF9VQURNfSIsImlucCN1bWVtLmZzMTA1IiwibXNnIl0sWyJ7TEJMX0dBRE19IiwiaW5wI2dtZW0uZnMxMDUiLCJtc2ciXSwnPGRpdiBjbGFzcz0ibXQxMiBwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9TVEFSVH08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iLCc8ZGl2IGlkPSJsYXlwcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PiddLHN0eWxlOnsiIGlucHV0IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIjoibWF4LWhlaWdodDo1NnB4OyJ9LHBhcmFtczp7c3RyaWN0OiEwfX0sUmVxSlNPTjp7aWQ6ImN3LlBob3Rvbi5SZXFKU09OIixwYXJhbXM6e3Jlc3R5bGU6MTAwLHN0cmljdDohMH0sZGF0YTp7dGV4dDoiTG9hZGluZy4uLiIsZHJhZzohMSxoZWlnaHQ6Im5vbmUiLHJlcTp7dXJsOltdLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOiJnZXQifSxjbTp7bW9kZToiamF2YXNjcmlwdCIsbGluZU51bWJlcnM6ITEsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTohMH19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtmdW5jdGlvbiBjKHgpe2IudGV4dD1KU09OLnN0cmluZ2lmeSh4LG51bGwsIiAgIiksYS5teS5yZWNhbGMoIiN0cmVzdWx0Iil9eC5odG1sKFtiLmRyYWc/JzxkaXYgaWQ9ImRyYWdnZXIiPjwvZGl2Pic6IiIsJzx0ZXh0YXJlYSBpZD0idHJlc3VsdCIgY2xhc3M9IncxMDBwIj48L3RleHRhcmVhPiddLmpvaW4oIiIpKSx4LnRoZW4oZnVuY3Rpb24oKXthLlJlcShiLnJlcSkudGhlbihmdW5jdGlvbih4KXtjKHgpfS5kZWJvdW5jZSg1MCkpLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2MoYSl9KS5hbHdheXMoZnVuY3Rpb24oKXt4LnRyaWdnZXIoImxheW91dCIpfS5kZWJvdW5jZSg1MCkpfSl9LHVpOnsiI3RyZXN1bHQiOntiaW5kOiJ0ZXh0Iixpbml0OmZ1bmN0aW9uKHgpe0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0sdGhpcy5kYXRhLmNtKX19fSxzdHlsZTp7IiAjZHJhZ2dlciI6IndpZHRoOjEwMCU7aGVpZ2h0OjE1cHg7Y3Vyc29yOm1vdmU7IiwiIC5Db2RlTWlycm9yIjpmdW5jdGlvbigpe3JldHVybiJwYWRkaW5nOjBweDsgaGVpZ2h0OiIrdGhpcy5kYXRhLmhlaWdodCsiIWltcG9ydGFudDsifSwiIC5Db2RlTWlycm9yLWxpbmUiOiJmb250LXNpemU6MTNweDsgIiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1heC1oZWlnaHQ6bm9uZSFpbXBvcnRhbnQ7In19LGZpbGVzOnsiZmF2aWNvbi5wbmciOntkaWdlc3Q6Im1kNS1vQzNxSUkwWUtmWEwwZ1pRbDdTbS9nPT0iLGNvbnRlbnRfdHlwZToiaW1hZ2UvcG5nIixkYXRhOiJpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRDhBQUFCQUNBWUFBQUN0SzYvTEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFENXBKUkVGVWVOcmNXdzE0VkZWNi9zNjlkeVl6azh4TVFuNkFoRUFTQ0QrV0J5eGRWc2t1S2lLaWRva3NyVmEyV0MxdG4vcURzdXVEdTB0YmJmM1o3ZGIxV1Z0M1VYWnJRWkRxczFwUjBhNHJpcUt1S0xwYVFBUmFrQjlEUWdpRVpDYkovTjU3VHIvMzN0d3dpVWxJTU1IRTcrRndaeWIzbnZPKzUzem4rN3YzaWhVL3ZJZDZGQ0ZJVDZYSU5EVFNUSTBJL3p3YVJWb3RxanVnNkkrcUJMVTBFZW02b0JRcDh2QUpiYWswNWZoMUlrblUwaVlvSjBlUnRMZ3JBNzlKL2xtUnJwUlBTaTJiS08wbjhzUTFUYlpaUWlRMEVqeUFSc3EwU09QVFcxc0ZCYk1sd3pBb0hwZVVsY1ZYOFBWZVBzK3lGQVh6aUQ3Y3BxaDRncUJ3ams0eUxlMXhwU0hKTUNWWlhpK1JVajNTTTJnUWhYa3dRYnFCc1Y3RnRDN2dZNEZnTEJhYU5OdlBNa2tYR3ViWmJpd25sYUR0ZlB3Tlg3K09qMjJEaFcvQXlXdENGUEhoSjd4QU4zcTlsbWh0VFZBaWdaYml5UkRwM054UVUwNTJkaUlVQ3BMWGwwV3BSSkxpc1JpMXRyWDVtcHVqZVZLcUFwL1ArOGMrbnc5dEZTbE44YVN0NVlsWnlmMDJERW55dkdnTCtiREJvNHZzVTZlaXZEVmExS2lpb3RxTExxb0t6UGpENlhsbDQwcko0ekU4ZkU1UmIvMmsweVlkUGxKREgvM1B6cVp0NzM0UU8zcnNXSEU0R0Z3YXpBa3U1UTNHRzBrdDRkT2VIeExrZVVVVzgzOXJyVlE2cTZidUJJMHF6bSs0OWsrdURzMlo4dzJmYmhnbC9lMlBKNGdxSjVTajVmM1pOUXZ6TE5Pa045NTRKN0hwNVZlaU5UWDFSY1hGaGM5NXZONmtFT292K2ZTbnpqbDUyQkJld3pJbHhkc3BLelhteU9Iak5HUDZwT1lmckxndFozVHh5S0tCVkUyZVFMcHMzc1UrdEdOMXg4M0gxcXh2L1dqbi8rYU9LeDM1cEpMZUJ3eVBtczE0RHA4NzhwTCt0Zkk4Y2Z1ZVBiVmk3Tmd4a1ZVUC84aGZQSHBrTGcyeThNUWFkLzNEbmJsMXg0Nm5IdnI1TCtONzloNGRVM2xleWNHbXFIcVkvL3pkZm10dFAxMmRMZ3h0UnlJUm44cXIwTHJzOXIvSm5qM3JBaUhhemZTNUZNVXI4UGJ2dHF0ZnJQcFZmSFR4NklEUDU5K3RUSGsrdXpxcnI2NU82NGRGeXpNOFdtTmRiZDFVbjVFVmVXVFZnMWtYVlYzNHBSQjMxa1dqaTJiUEVvK3MrcGtIZUlBTCtJQ3p6NTZwVHdNcG1xWjd0S1A3RGh3S3o1MTdTZXErKy84dXB5QS96ME5EUUlBRGVJQUwrSUFUZUFlRXZCSmluS0ViNzMyeTcvOENmL0dkYTgzci8vd2F3K3YxNkRTRUJIaUFDL2lBRTNpQis4d0dyeWV0VmZiR0NtaFozdDE3OSs3MzMvSzNTODM1bDEvQ01ZelFhQWlLcm12YTFkWHp5ZWZMTWxmLzZuSC9sQ21WdTZVbFIvS2ZZajF4TkZSSzl0Q1pUa0tYQncvc1A1enpuY1dMVXZNdnY5ajdaZTN2dnRzQm9URk9MZG9TVFQzenpJczU0OGVYSGxTV05zcXlyQjdVWGpqaFdUZnRONDJubWtmT3VuQkdiTkhDYjNtRzZJSjNhd2lCdDJyV2pEYmdCNCtlT0dyQ1Rpb3ltcU1qUzB3emZhVXByY2pOTnkvMUdvWXVhQmdKOE41ODAxSnZtdkdEQi9pQVYxZXVXcVRsT0xtdE9WcFB5ckQzejVxRGg0Nm9mMXk1SXNmdjh4azBESVdUSXM4L01YN3dBQi9GSmpyUzBrRFIxaE1kcmN2S0N4aTZqVTNOVWMrQzZzc1RaZVZqZFJyR0F2emdBVDVNYkNQNGRWcDVHRFkwVGJOL0NISGErZTFZV3l5eVpQRzFQdm9LQ0hpQWp5YTBienY4TkhJNTYza2pSdE9wVXhGcU9ORklsUldULzd1eHNiRmk4WFVMYWRLa0NZTVh4TGdocDYxcEdaOEh4UVZ5anAzdG93OC8vTmpJSDFIMDlSMjdkcTF2Ym80eTUyWXlYRGZneThyeUt5SG54dUtweUx4NWw0YlBlclRXVnFLYUdxTGp4NGthR29oSGNYNUxKT3d5bHQxcWE0bXFxNGtXTENCNjZTV2lUWnVJU2tyczBvL2RmS3gwT1RsRUkwWnc5czlKNGtoMjE2V2x6bTluSWN6SHQzN0RzeEZGMWx6d1RLVlNjZHN3WG5iNWxYWkVZNXJtdmZWSGE5aE5YT1ZoMWU5N3o1OStTclJ2bjNNRTBiWTJJazZHS0prODNUZ243NmhUY1lwS1I0NFF6Wjd0WE4vVTVGd2ZqenZuUVJQc25KblBROUhPYlVoU3NyT2RDUmsvbm1qeVpPZllwM0thb0lWWFgrSFp1dlYzVlBYTmkrNDFET05PK0RxanZyYW1QVVRNK3Q3SkUwMVV2V0IrZ0hvdnRSRHQya1gwKzk4VEhUdkdKalJDRkkwU3RiUTQ1RHdlQnpoV0VKOEJYTk02RmZiczgwSEdHWmdvajNPUjNGeEhLMXh4dFFRVENhM0J4R0JzVE16T25VU2hFRkdZRlhUMGFLS3ZmWTFvMmpSbnZCNmt1dnJLd0g4OXM0a0MyZG5mUzZXU2Q5b3I3MWhBTVpsWFhoOC9ZZXhKanBNTHVsNW83ZGhCV21FaENham1ndzhTSFRqZ3JEQUU1REJvUVVIbi9aejVXWGFKSXJ2NzdyWXVGVkM3LzR3VTJ4Wk1DTFFNa3crdGVmOTlvZ2tUaUZhdUpNVmJTcDQ0UWZyNTUzZnFLc3ZySWZDTEo5SUZiUFFtSzZYMmFaNHNEeGxlNDZZNHE5MWxsODNKemd6dDVUdnZVUHFlZTBndFcwWnEyemJuRC92M082c005VU1MQkJ6eUxuaFhiWHZKby90dEhOM21qb0h4TUs2TEFYaUFDNmN6VHVBRmJ1RFBSQUYrNEFtKzRBM0RUNGJtdVNFYWJhRnZ6UHE2djJPU1djM01ILytZNk5sbjdkbTBHdG9McHhNbk9uc1BoaktUN0xtdFpKeWVET0FBSHVDQ2xqSk80QVZ1NEFjUFY4QVBQTUVYdkxXY1lENnFJcmwrdnorYTVjdFFNVnpFNm1QdktXNkNqWlJOY2ViTTdsWDN5eElYQitNQ1B1QjBNZHY0TThpREgzaUNMM2hyL0tFa3pZYWt2S3owMU9mMkcxUUxuZlBNeWpmZkpJSFBjK2NTOStDNEw5ZUM5Nlgxc3lUYzV3WWN3TU80Z0E4NGJVMEFWdURYT2lkazRBbSs0SzFGSWllbUp4SkpxcXdjSCt5bFdrRGk1RW15dG05M3ZuLy8rMDdIVUM5WWJsamhNelYzbXdqeE9VRDJkL3p1cW5GZitzTzRHQjg0Z0FjcXovaUFzOE9UZENQZ0NiN2d6Zm1QbXNhV25pckt4L1plZmVVZ1E5MTlOOGtYWHlTdHJJem9ycnVJZnZ0Ym9rOCtjU3h2WnJTV2Fla3o5eWZPZ1QrdnF6dXRyamppT3dRcmlIUGR5WEExSmxOejNIRmc2QkFyWEhFRkIvRmxKTmtkQXA4ZERQVWk0UG42RzI4VGVMTkQ5cFNrTFVuNStmbDZyL3VLVlVrZFBrenlqanVJSG5qQW1ZQ2JibklpT1FRcTdzcDFOVXFaRXdGU0NIbzJiSEFtQVlManhSZHpFTDdFY1d0dUg1bkVNOG1qRC9TSDJBQ1JIK0N4Nmt0ZWZZVkpCSzVlN0JGNGdpOTRHNEtzb09JdlBuOW5WWkZkTFRnNkxDOG50WFVyeWR0dUkxcTRrTVFsbHpnQTJrRjBjd3VyZTVrMHlRbDlvZUt3SVlzWE8rcmJReld0UitFQVMyM1pZbXVqd3Bhc3FIRDY3QzNWWlo3Z0M5NEl4ZktVc25qc1BzVE42QmdUd0JHV3VYczNhUys4NE1Ua2JuM2MzYy90clZQWkMzL0g5V3lGTlNZcnNFSjIzbGxHaWxWV3JsM3JCQzJjYlhXc05GK2p1Z1pCN2pnSWRCRFFmUHd4aVhaY1p5SU9BVS93WmNucnNWQ2g5V1NoQVFDdWp3ZFgyTzhJYzd1cWU4ZEgxWG12QWpBM3VYY3ZHZmZlUzRJVEdCQTNzVmQvL1d0bkVqTnZOSFRGMEZYOTJVWUloTVc0cHArdVYycWFaUEt5U1FpZFlyRld5ZzBIK3g1a3VDRnRmOXdZem9WaDJyaVIxSXdaSks2N2p0VHp6OXZmQllJVVpIUDlDWmpPSXBvRVQvRGxpeUtHSXIxRjZCb2w0c251T3gvb0tJNk5tb0NmcmE5M2h1QWp2dHZHRHBveE1GWE0wN2k3U0p4NWdxK1ExTUlybjY3MThKZkd4bE5XUlVXWjNtbC9zODlVVUM5akFNdDQ2QXVaWUxKOXN2bW84QjFlSXlNYSs4S0N2dHk0SVVQQWsva3lUNnZXc0pUWXhma3RIVHowV2ZQTW1UUHlNd01iRDN5NVlUaEdhQ0NGNHdKUlZlVlVXcXFyU2NQMmdkOGVTQUZwVEVDWGdPY1E4MlMrK1RidmNMaHdKNmtHVG9vK2JZRWJ6S2ova09JOU9WZzFhOW0rNmpSbENnbHVnNUwvZE9OdXdkUG55OG9IYjg3bnRWb1BHNjlEaDJzNlRiM2kvWGYweGhzZGQyVU1Rdlc2cXhzY2FPRlZoN2NwZmZ4eEVobXJENTZGaGZrbzF0WWFyUzJOcU53MmM1NmJtK1NZMTgzczhEaklTWFkvU0JhRyttMnE3aDJCc3UxVjhXT1BjZjd1a0FjLzVobGk0czNnYlVpeTJDNVk2MEtoNFBKMzNuMC9mdW1jMlhaT3I3SGFaL0UrRkxET3ZTUUtRNVk4NGhEZVZscUd2UUkvNXVrM1pYcWRiWHZUeVRSV2RqWG51Y3RmZSsyTk5wYzhWTkhDeFc1a050eUUzYWVFNjh6WVV1REhQUDFteWx3TnpUQnM5VkJxbjllYlpYMTY0TE9DWkNwdDE3dVVtMTNCWW1yYThDUGZqdHVOTXNFTC9NYVdsVnFwVkhLZnZmS2pTa3JkMHZWREJXMXRLelp0ZWpsMnpaOVdCelJXOVZFclYzSkFvQTlQOG15ckZHdXMxcjVsd2F1Z2NFUWdsSmYza0dFYmNFSGkwbmtMMnQyNjF6OTkydlJZVGMyeHlCUHJWb1g3VmJzZjh2T2c2UG9iYm8yVWxvNE83OXkxTStEZXRPaTRWNWRJSnVOQ2FWdjhmbS80MVZkZlQ5QlhTTURINy9lRkJlbGJ3TlBsTEc1ZXRyekROVWdwUStIY3draGRUWDFrelgvOFc4anI5UXo3NVUrbDBtcnBYeTJQRm84WkZZNUdHMW1qdGFqcnVqWGNxME9UMkNOS1JsbEZuZ3RrQjhJYm5ucjZLN0g2NEFFK1Vzbm5ISDZTWE02bzN0THBoa0lCTGNyTERhVmYzTFRaZC9qUVo5WndKZzc4NEFFK1RHeVI0OWxPODlYQ3daSGt0dHpRS0JJbTNMcGNXbEUrVHR6enp3KzJ4aE1KY3pnU0IyN2dCdy93RWJ5TTRXQVJoWElLTzFxWGxjZDdFTFpmM0dBWW5wY05UUTgvK3VpYWxHbGFhamdSQjE3Z0JuN3dBQi93NnNwVmM1NjM2N1pkbFQ4aTkvaTc3MzBVMlBqOFMybWNQRHhpZWtuQUM5ekFEeDQ5Y1RTRXQvc0F4cTdlS2xFeG9iTHMrSk5QYmN3SmhVTG0vSGxEOXlIRWRvOGxYOW44cG1TODNpbFRLbHROUzFZUVh0VFF1NGZjODhvN2FXZE1KbE5UcDB5YUVGLzl5elhHQzV0ZWtieC9ocVFLQUJmd1BjSTRnUmU0Z2I4anNlK21uWEVWaFZKSFRNdThjTXFraWJIMVR6NXRQUEdmejVqc080ZVVGd0FlNEFLK1A1ZzhNUWE4d0gzR2lscWYxRW5RTGlzdHgweWVVSDVveTVhdDRiMjc5MFh1L01IdGdhSHc1UFhKeHFiMFQvL2w0VmpkOGZvdzQ0dVlLVm11ZEdycXk3VjkzNytLbXN5MHpDOHVLZDZkTUpQaFcyNWRrWHhyMjN0S0tmVmw3Vy9DK0xmY2VrY2FlSUFMK0lDenIzM29WZCtjMDJ1cFNVUDB4MG1Pa0xoblJrclR4YU90TVMydmVGUjQ5dVpYM2hMdmY3QWpNblhxWkMwWXpEbG5EeXppTlpQNzd2OVo2MnV2dnVtcnFCaHJ0TWIwaC8wKzdXb2xuVnM4ZUJ0TjQyUkduYUh3ZWxhV20rMzlkL2Z2VVJYbm5WZHlOSjFPaHBmZC92ZmUrKzcvYVROZUFCcE0wdWdmNDJBOGpJdng5KytSRmNCek52MmRWV1VTZVlHWnBzTThhQ2tIRWtzbVZvNTdyUEZVSkhmNUhYZmJyNVpWWHpuZmZiWHNpMXZ4akZmTDZ1c2E4V3BaTG8rWE5GUHB2K2J4TjVqcHMzOSs4UXVqWTFYYmdBaEt6L0lzS2g5WHN0NlVWdEhUejc1QS83NXVneHBWV0ZSWFZUVXo4NlhDUGxTZk1sNHEzUFpCclA1RVEzRTRKK2dMQm9NKzdyL05KR20vVk1qamZ1R0pIYkNhTkh1RWpYaG8yYkpVMFlnUm9aL2s1WVZ2NU15cDVLMjN0dEhtemE5LzduVlNmeURRMCt1a0hwL1BpNmVtOHpnSHp5c3JIYU9FVUd0akNmbERRNk1HUlFObllJMUJzTUo0YkdzcFkxd2FJNWtkOUFldkR3UUMzOUowL1FKV2t3SzJTVVZwMDZKRVU0VGMyd282UjJBK3Y1K0tjWTllYUNjNWt0cXVLZjJsRmtvK0VWUjZHKzQ4eUVId0tvUDZMTDFGQ2s4cXJtYVNxMVY3cElXakxzZ25OS1A5RlhJanJnblp4bEZUUW5YY1lsSHU5WVBxTmY1ZmdBRUF2NE1YTUY2MzV3a0FBQUFBU1VWT1JLNUNZSUk9In19LHN0YW1wOjE2NDkxNjMxOTk2NzJ9LCJjdy5QaG90b24uU3luY1Rhc2siOntpZDoiY3cuUGhvdG9uLlN5bmNUYXNrIixidWlsZDo5LGxhbmc6e30sZGF0YTp7dGFzazoiTXVsdGkiLGRvYzoiIixtb2RlOlsib25jZSJdLHNyYzp7dXJsOiIiLGRiczpbXSx1c2VyOiIiLHB3ZDoiIix1Y3R4OltdLHVucHJlZml4OiIiLGZpbHRlcjpbXSxmbjoiIixpZHM6W10scXVlcnk6e30semlwOiExLG9wdHM6W119LHRndDp7dXJsOiIiLHVzZXI6IiIscHdkOiIiLHByZWZpeDoiIixjcmVhdGU6ITEscToiIixuOiIiLGFjbDohMSx6aXBmaWxlOiIiLG9wdHM6WyJjcmVhdGUiXX0sdGFza3M6W119LERCczpbXSxpc0NvdWNoMjohMSxjYW5aaXA6bnVsbCxjYW5TdHJlYW06ITAsaXNTdHJlYW1pbmc6ITEsVW56aXBUbzpbXSxVbnppcERCbWFwOm51bGwsZG9jc1RvU2F2ZTpbXSxVbnppcFN0cmVhbTp7fSxVbnppcE9wdHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLnRndC5vcHRzfSx1aTp7IiNydGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMubGFuZztpZih4Lm1vZGUrIiI9PSJ6aXAiKXtpZih4LnNyYy56aXApcmV0dXJuIGEuVFhUX1RJVExFX0RVTVB9ZWxzZSBpZih4LnNyYy51cmx8fHguc3JjLmRicy5sZW5ndGgpcmV0dXJuIGEuVFhUX1RJVExFX1NZTkM7cmV0dXJuIGEuVFhUX1RJVExFfSx3YXRjaDpbIiNybW9kZSIsIiNyemlwZHVtcCIsIiNyc291cmNlIiwiI3Jzb3VyY2VzIl19LCIjcm1vZGUiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmdbIkNvcHkiPT10aGlzLmRhdGEudGFzaz8iVEFHX01PREVfQ09QWSI6IlRBR19NT0RFIl0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsIT1hJiYoeC5tb2RlPWEubGVuZ3RoJiYiZG9jIiE9YT9hOlsib25jZSJdLmNvbmNhdChhKSkseC5tb2RlLmluZGV4T2YoInppcCIpPi0xKXt4Lm1vZGU7ITA9PT1iLmNhblppcD94Lm1vZGUubGVuZ3RoPjEmJih4Lm1vZGU9WyJ6aXAiXSk6ITE9PT1iLmNhblppcD9jKCk6bnVsbD09PWIuY2FuWmlwJiZkKCkudGhlbihmdW5jdGlvbih4KXtiLlBobygpLmNhblppcD14LGIuY2FuWmlwPXgseHx8KGMoKSxiLm15LnJlY2FsYygiI3Jtb2RlIikpfSl9cmV0dXJuInppcCI9PXgubW9kZVswXT8oeC50Z3QuemlwZmlsZT14LnRndC56aXBmaWxlfHwiZHVtcC0iK0RhdGUubm93KCkudG9TdHJpbmcoMzYpKyIuemlwIixiLm15LnJvb3QoKS5hZGRDbGFzcygiaGFzemlwIikpOmIubXkucm9vdCgpLnJlbW92ZUNsYXNzKCJoYXN6aXAiKSx4Lm1vZGU7ZnVuY3Rpb24gYygpe3gubW9kZT1bIm9uY2UiXSxjdy5saWIubm90ZShiLmxhbmcuRVJSX05PWklQLCJlcnJvciIpfWZ1bmN0aW9uIGQoKXt2YXIgeD0kLkRlZmVycmVkKCksYT1iLm15LmZpbmQoIiN6aXAtdGVzdGVyIik7cmV0dXJuIGEubXkoYi5aaXBUZXN0ZXIse30pLnRoZW4oZnVuY3Rpb24oYil7eC5yZXNvbHZlKCEwKSxmdW5jdGlvbigpe2EubXkoInJlbW92ZSIpfS5kZWxheSgyMDApfSkuZmFpbChmdW5jdGlvbihhKXt4LnJlc29sdmUoITEpfSkseC5wcm9taXNlKCl9fX0sIiN4c3NoaW0iOntjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hMX19fSwiI3Jkb2NpZCI6e2JpbmQ6ImRvYyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtpZih4Lm1vZGUuZmluZCgiZG9jIikpcmV0dXJuIGE/Il8iPT1hWzBdP3RoaXMubGFuZy5FUlJfSURfVU5EOnZvaWQgMDp0aGlzLmxhbmcuRVJSX0lEfSxjc3M6e3NoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4Lm1vZGUuZmluZCgiZG9jIil9fSx3YXRjaDpbIiNybW9kZSJdfSwiI2J0bi1zdGFydCI6e2RlbGF5OjYwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEpaWYoInppcCI9PXgubW9kZSl7dmFyIGM9Yi5teS5yb290KCkucGFyZW50cygiI2wtYm9hcmQiKS5lcSgwKSxkPWMuZmluZCgiI2wtcGl2b3QtcmIiKTtpZihkLmRhdGEoIm1vZGFsIikpY3cubGliLm5vdGUoYi5sYW5nLk1TR19aSVBfUlVOTklORyk7ZWxzZSBpZih4LnNyYy56aXApe3RyeXtiLnJ1blVuZHVtcChkLGMpLmFsd2F5cyhmdW5jdGlvbigpe2IuY2xlYW5EYXRhKHgpfSl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9Yi5Eb250U3RvcFVuemlwPSEwLGIubXkuY2FuY2VsKCl9ZWxzZSBiLnJ1blppcChkLGMpLnRoZW4oZnVuY3Rpb24oKXtiLmNsZWFuRGF0YSh4KX0pLGIubXkuY2FuY2VsKCl9ZWxzZSBiLnJ1blRhc2tzKCkudGhlbihmdW5jdGlvbihhKXt2YXIgYz0hMDthLmZvckVhY2goZnVuY3Rpb24oeCl7InJlamVjdGVkIj09eC5zdGF0ZSYmKGM9ITEpfSksYyYmYi5jbGVhbkRhdGEoeCksT2JqZWN0LmlzRnVuY3Rpb24oYi5SZXN0YXJ0UG9sbCkmJmIuUmVzdGFydFBvbGwuZGVib3VuY2UoYi5pc0NvdWNoMj8xZTM6MTAwKSgpfSksYi5teS5jYW5jZWwoKTtyZXR1cm4gdGhpcy5sYW5nWyJ6aXAiPT14Lm1vZGUmJiJDb3B5IiE9eC50YXNrP3guc3JjLnppcD8iQlROX1NUQVJUX1VOWklQIjoiQlROX1NUQVJUX1pJUCI6eC5tb2RlLmZpbmQoImRvYyIpPyJCVE5fU1RBUlRfRE9DIjoiQlROX1NUQVJUIl0oKHguc3JjLmRicy5sZW5ndGh8fDEpKih4Lm1vZGUuZmluZCgiMndheSIpPzI6MSkseC5zcmMuaWRzLmxlbmd0aCx4Lm1vZGUpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMubXkudmFsaWQoKXx8KCEoeC5zcmMudXJsfHx4LnNyYy5kYnMubGVuZ3RofHx4LnNyYy56aXApfHwoInppcCI9PXgubW9kZT94LnNyYy5maWx0ZXIuZmluZCgiaWRzIikmJiF4LnNyYy5pZHMubGVuZ3RofHwheC50Z3QuemlwZmlsZSYmIXguc3JjLnppcDoheC50Z3QudXJsKSl9fSx3YXRjaDpbIiNyZG9jaWQiLCIjcnNvdXJjZSIsIiNyc291cmNlcyIsIiNyc2xvZ2luIiwiI3JzcGFzcyIsIiNyZm4iLCIjcmRvY3MiLCIjcnF1ZXJ5IiwiI3J0YXJnZXQiLCIjcnRsb2dpbiIsIiNydHBhc3MiLCIjcnR6aXBmaWxlIiwiI3J0dW56aXBkYnMiXX0sIiNidG4tY2xlYXIiOntkZWxheTo2MCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHRoaXMuY2xlYW5EYXRhKHgpLHRoaXMubXkucmVkcmF3KCkpfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiJDb3B5Ij09eC50YXNrfX19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYodGhpcy5jbGVhbkRhdGEoeCksdGhpcy5teS5jYW5jZWwoKSl9LCIjeHNvdXJjZSI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iU3luYyIhPXgudGFza3x8InppcCI9PXgubW9kZSYmeC5zcmMuemlwfX0sd2F0Y2g6WyIjcnppcGR1bXAiXX0sIiNyc291cmNlIjp7ZGVsYXk6MjAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2Z1bmN0aW9uIGIoYixjKXthLm15LmNoZWNrKCIjcnNvdXJjZSIpLGEuZml4SGVpZ2h0LmRlYm91bmNlKDEwMCkoeCl9IlN5bmMiPT1hLmRhdGEudGFzayYmeC5hdXRvY29tcGxldGUoe2RlbGF5OjAsc291cmNlOnRoaXMuREJzLGNsb3NlOmZ1bmN0aW9uKHgsYil7YS5teS5jaGVjaygiI2J0bi1mb2xkc3JjIil9LmRlYm91bmNlKDEwKSxzZWxlY3Q6Yi5kZWJvdW5jZSgxMCksYXBwZW5kVG86YS5teS5yb290KCksbWluTGVuZ3RoOjFlNH0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zcmMudXJsO3ZhciBiPWEucmVwbGFjZSgvW1xyXG5cdFxzXS9nLCIiKSxjPWIubWF0Y2goL1wvXC8oW15cLzpcc10rKTooW15cLzpAXHNdKylALisvKTtyZXR1cm4gYyYmMz09Yy5sZW5ndGg/KHguc3JjLnVzZXI9Y1sxXSx4LnNyYy5wd2Q9Y1syXSx4LnNyYy51cmw9Yi5yZXBsYWNlKGNbMV0rIjoiK2NbMl0rIkAiLCIiKSk6eC5zcmMudXJsPWIseC5zcmMudXJsfSxjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSl7dmFyIGM9dGhpcy5sYW5nO3JldHVybiBiLmlzVVJMKGEpJiYhYi5pc1ZhbGlkVVJMKGEpP2IubGFuZy5FUlJfRlJPTV9VUkw6IlN5bmMiIT14LnRhc2t8fGIuUGhvKFsiQWxsIixhXSl8fGIuaXNCdWNrZXRVUkwoYSk/dm9pZCAwOmMuRVJSX0ZST019fSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjcnNvdXJjZSIpfS5kZWJvdW5jZSgyMDApKCksITB9fX0sIiNyemlwZHVtcCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEmJmEpe3ZhciBjPXRoaXMsZD1iWzBdLmZpbGVzWzBdO2lmKGQmJiFjLmlzU3RyZWFtaW5nKXt2YXIgZT0hIWQuc3RyZWFtO3guc3JjLnppcD1kLm5hbWUuc3BsaXQoIi8iKS5sYXN0KCk7dHJ5eyhlP2Muc3RhcnRVbnppcFN0cmVhbShkKTpjLnN0YXJ0VW56aXBTeW5jKGQpKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBiPWEuaW5mbzskLmV4dGVuZChjLlVuemlwU3RyZWFtLE9iamVjdC5yZWplY3QoYSxbImluZm8iXSkpLGMuVW56aXBUbz1iLmRicyxjLm15LnJlY2FsYygiI3J0dW56aXBkYnMiKSxiLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguc2VjdXJpdHk/MTowfSkuc3VtKCkmJmZ1bmN0aW9uKCl7eC50Z3Qub3B0cz14LnRndC5vcHRzLmFkZCgiYWNsIikuc2xpY2UoMCksYy5teS5yZWNhbGMoIiNydHVuemlwb3B0cyIpfS5kZWxheSg1MCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y29uc29sZS5sb2coIkZhaWwgc3RhcnRpbmcgdW56aXAgc3RyZWFtIix4LGEpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZSYmKGIudmFsKG51bGwpLGIudHJpZ2dlcigiY2hlY2siKSl9KX1jYXRjaCh4KXtjdy5saWIubm90ZSgiRXJyb3IgdW56aXBwaW5nLCBzZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLCJlcnJvciIpLGNvbnNvbGUubG9nKHgpfX19fSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHguc3JjLmRicy5sZW5ndGh8fHguc3JjLnVybC5sZW5ndGh8fHgubW9kZSsiIiE9InppcCJ8fCJNdWx0aSI9PXgudGFza319LHdhdGNoOlsiI3Jtb2RlIiwiI3Jzb3VyY2UiXX0sIiNyemlwZHVtcGluZm8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguc3JjLnppcD8nPHNwYW4gY2xhc3M9ImZpLWNoZWNrIGdyZWVuIGZzOTAgcHI1Ij48L3NwYW4+Jyt4LnNyYy56aXAudHJ1bmNhdGUoNjAsIm1pZGRsZSIsIi4uLiIpOnRoaXMubGFuZy5QTENfWklQRFVNUH0sd2F0Y2g6WyIjcnppcGR1bXAiXSxjc3M6eyJzZWxmOnRyYW5zIjpmdW5jdGlvbih4KXtyZXR1cm4heC5zcmMuemlwfX19LCIjYnRuLWZvbGRzcmMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5teS5maW5kKCIjcnNvdXJjZSIpLGM9IlN5bmMiPT14LnRhc2smJmIuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGM/Yi5hdXRvY29tcGxldGUoImNsb3NlIik6Yi5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGM9IWMpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGM/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaXNVUkwoeC5zcmMudXJsKX19LHdhdGNoOlsiI3Jzb3VyY2UiXX0sIiNyc291cmNlcyI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczsiTXVsdGkiPT1hLmRhdGEudGFzayYmYS5zZWxlY3QyKHgse3RhZ3M6YS5EQnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LHRleHQ6eH19KSxtdWx0aXBsZTohMCxwbGFjZWhvbGRlcjphLmxhbmcuUExDX0ZST00sdG9rZW5TZXBhcmF0b3JzOlsiICIsIiwiXSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0sITApfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aHx8Ik11bHRpIiE9eC50YXNrPyIiOnRoaXMubGFuZy5FUlJfRlJPTX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYic3RyaW5nIiE9dHlwZW9mIGEmJih4LnNyYy5kYnM9YSkseC5zcmMuZGJzfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfX19LCIjeHNjcmVkcyI6e2Nzczp7c2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnNyYy56aXB8fCEoeC5tb2RlLmZpbmQoImRvYyIpfHx0aGlzLmlzVVJMKHguc3JjLnVybCl8fHgubW9kZS5maW5kKCJsaXZlIikmJnRoaXMuaXNDb3VjaDIpfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSJdfSwiI3JzbG9naW4iOntiaW5kOiJzcmMudXNlciIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5zcmMudWN0eC5sZW5ndGh9fSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiJfIj09KGF8fCIiKVswXT90aGlzLmxhbmcuRVJSX1VOT186IiJ9LHdhdGNoOlsnaW5wdXRbbmFtZT0icnVzZXJDdHgiXScsIiNybW9kZSIsIiNyc291cmNlIl19LCIjcnNwYXNzIjp7YmluZDoic3JjLnB3ZCIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5zcmMudWN0eC5sZW5ndGh9fSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB4LnNyYy51c2VyJiYhYT90aGlzLmxhbmcuRVJSX05PUFdEOiIifSx3YXRjaDpbJ2lucHV0W25hbWU9InJ1c2VyQ3R4Il0nLCIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyc2xvZ2luIl19LCdpbnB1dFtuYW1lPSJydXNlckN0eCJdJzp7YmluZDoic3JjLnVjdHgiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pc0NvdWNoMnx8IXgubW9kZS5maW5kKCJkb2MiKXx8dGhpcy5pc1VSTCh4LnNyYy51cmwpfHx4LnNyYy51c2VyfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyc2xvZ2luIl19LCIjcnVucHJlZml4Ijp7YmluZDoic3JjLnVucHJlZml4Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfHwiemlwIj09eC5tb2RlfX0sd2F0Y2g6WyIjcm1vZGUiXX0sIiNyZmlsdGVyIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19GSUxURVIpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnNyYy5maWx0ZXI9YS5maW5kKC9eeC8pP2EuZmlsdGVyKC9eeC8pOmEpLHguc3JjLmZpbHRlcn0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJDb3B5Ij09eC50YXNrfHwiemlwIj09eC5tb2RlJiYheC5zcmMudXJsJiYiTXVsdGkiIT14LnRhc2t9fSx3YXRjaDpbIiNyemlwZHVtcCIsIiNyc291cmNlIl19LCIjcmRvY3MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zcmMuaWRzLmxlbmd0aD9jdy5saWIuanNvbih4LnNyYy5pZHMsIiAgIik6IiI7aWYoIiI9PWEpcmV0dXJuIHguc3JjLmlkcz1bXSxhO3ZhciBiO3RyeXtiPUpTT04ucGFyc2UoYSl9Y2F0Y2goeCl7fXJldHVybiBPYmplY3QuaXNBcnJheShiKSYmYi5sZW5ndGgmJiFiLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4fSl8fChiPVtdKSx4LnNyYy5pZHM9YixhfSxjaGVjazpmdW5jdGlvbih4LGEpe2lmKGEpe3ZhciBiO3RyeXtiPUpTT04ucGFyc2UoYSl9Y2F0Y2goeCl7fXJldHVybiBPYmplY3QuaXNBcnJheShiKSYmYi5sZW5ndGgmJiFiLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4fSk/dm9pZCAwOnRoaXMubGFuZy5FUlJfRE9DU319LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iaWRzIiE9eC5zcmMuZmlsdGVyfX0sd2F0Y2g6WyIjcmZpbHRlciIsIiNybW9kZSJdfSwiI3JmbiI6e2JpbmQ6InNyYy5mbiIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJmbiIhPXguc3JjLmZpbHRlcnx8InppcCI9PXgubW9kZX19LHdhdGNoOlsiI3JmaWx0ZXIiLCIjcm1vZGUiXX0sIiNycXVlcnkiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuImZuIiE9eC5zcmMuZmlsdGVyfHwheC5zcmMuZm58fCJ6aXAiPT14Lm1vZGV9fSx3YXRjaDpbIiNyZmlsdGVyIiwiI3JmbiIsIiNybW9kZSJdfSwiI3J6aXBvcHRzIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9T2JqZWN0LmNsb25lKGEubGFuZy5UQUdfWklQT1BULCEwKTthLlBobygiQ291Y2giKS52ZXI8IjAwMi4iJiZiLnRhZ3MucmVtb3ZlKGZ1bmN0aW9uKHgpe3JldHVybiJxbnAiPT14LnZhbHVlfSkseC50YWdzKGIpfSxiaW5kOiJzcmMub3B0cyIsY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuInppcCIhPXgubW9kZXx8IkNvcHkiPT14LnRhc2t8fHguc3JjLnppcHx8IXguc3JjLnVybCYmIXguc3JjLmRicy5sZW5ndGh9fSx3YXRjaDpbIiNybW9kZSIsIiNyc291cmNlcyIsIiNyc291cmNlIiwiI3J6aXBkdW1wIl19LCIjYnRuLXppcGR1bXAtY2xlYXIiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLmNsZWFuVW56aXAoKSxiLm15LmNoZWNrKCIjcm1vZGUiKX19LGV2ZW50czpbImNsaWNrLm15Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LnNyYy56aXB8fCJ6aXAiIT14Lm1vZGV9fSx3YXRjaDpbIiNyemlwZHVtcCJdfSwiI3J0YXJnZXQiOntkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7ZnVuY3Rpb24gYyhiLGMpe2EubXkuY2hlY2soIiNydGFyZ2V0IiksYS5maXhIZWlnaHQuZGVib3VuY2UoMTAwKSh4KX0vXihTeW5jfENvcHkpJC8udGVzdChiLnRhc2spJiZ4LmF1dG9jb21wbGV0ZSh7ZGVsYXk6MCxzb3VyY2U6YS5EQnMsY2xvc2U6ZnVuY3Rpb24oeCxiKXthLm15LmNoZWNrKCIjYnRuLWZvbGR0Z3QiKX0uZGVib3VuY2UoMTApLHNlbGVjdDpjLmRlYm91bmNlKDEwKSxhcHBlbmRUbzphLm15LnJvb3QoKSxtaW5MZW5ndGg6MWU0fSl9LGJpbmQ6InRndC51cmwiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7aWYoYSlpZih0aGlzLmlzVVJMKGEpKXtpZighdGhpcy5pc1ZhbGlkVVJMKGEpKXJldHVybiB0aGlzLmxhbmcuRVJSX1RPX1VSTDtpZigiTXVsdGkiIT14LnRhc2smJiF0aGlzLmlzQnVja2V0VVJMKGEpKXJldHVybiB0aGlzLmxhbmcuRVJSX1RPfWVsc2UgaWYoIXgudGd0LmNyZWF0ZSYmIXRoaXMuUGhvKFsiQWxsIixhXSkpcmV0dXJuIHRoaXMubGFuZy5FUlJfVE9fTUlTU30sd2F0Y2g6WydpbnB1dFtuYW1lPSJydGNyZWF0ZWRiIl0nXSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjcnRhcmdldCIpfS5kZWJvdW5jZSgyMDApKCksITB9fX0sIiNidG4tZm9sZHRndCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLm15LmZpbmQoIiNydGFyZ2V0IiksYz0iTXVsdGkiIT14LnRhc2smJmIuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGM/Yi5hdXRvY29tcGxldGUoImNsb3NlIik6Yi5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGM9IWMpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGM/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIS9eKFN5bmN8Q29weSkkLy50ZXN0KHgudGFzayl9fX0sIiN4dGNyZWRzIjp7Y3NzOntzaGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iTXVsdGkiIT14LnRhc2smJigiQ29weSI9PXgudGFzayYmIXRoaXMuaXNVUkwoeC50Z3QudXJsKXx8ISh4LnRndC5jcmVhdGUmJiF0aGlzLkRCcy5maW5kKHgudGd0LnVybCkmJih0aGlzLmlzQ291Y2gyfHx4Lm1vZGUuZmluZCgiZG9jIikpKSYmISh4Lm1vZGUuZmluZCgiZG9jIil8fHRoaXMuaXNVUkwoeC50Z3QudXJsKXx8eC5tb2RlLmZpbmQoImxpdmUiKSYmdGhpcy5pc0NvdWNoMikpfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnRhcmdldCJdfSwiI3J0bG9naW4iOntiaW5kOiJ0Z3QudXNlciIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hYSYmeC50Z3QuY3JlYXRlJiYodGhpcy5pc1VSTCh4LnRndC51cmwpfHwhdGhpcy5EQnMuZmluZCh4LnRndC51cmwpJiYodGhpcy5pc0NvdWNoMiYmIXgubW9kZS5maW5kKCJvbmNlIil8fHgubW9kZS5maW5kKCJkb2MiKSkpP3RoaXMubGFuZy5FUlJfVVJFUV9DVDoiXyI9PShhfHwiIilbMF0/dGhpcy5sYW5nLkVSUl9VTk9fOiIifSx3YXRjaDpbIiNybW9kZSIsJ2lucHV0W25hbWU9InJ0Y3JlYXRlZGIiXScsIiNydGFyZ2V0Il19LCIjcnRwYXNzIjp7YmluZDoidGd0LnB3ZCIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC50Z3QudXNlciYmIWE/dGhpcy5sYW5nLkVSUl9OT1BXRDoiIn0sd2F0Y2g6WyIjcnRsb2dpbiJdfSwiI3JwcmVmaXgiOntiaW5kOiJ0Z3QucHJlZml4Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfX19LCdpbnB1dFtuYW1lPSJydGNyZWF0ZWRiIl0nOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuKHgudGd0LmNyZWF0ZT1udWxsIT1hPyEhYS5sZW5ndGg6eC50Z3QuY3JlYXRlKT9bImNyZWF0ZSJdOltdfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudGd0LnVybHx8ISF0aGlzLkRCcy5maW5kKHgudGd0LnVybCl9fSx3YXRjaDpbIiNydGFyZ2V0Il19LCIjeHRub256aXAiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iemlwIj09eC5tb2RlfX0sd2F0Y2g6WyIjcm1vZGUiXX0sIiNydHppcGZpbGUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubW9kZSsiIiE9InppcCImJih4LnRndC56aXBmaWxlPSIiKSxudWxsPT1hP3gudGd0LnppcGZpbGU6KHgudGd0LnppcGZpbGU9YS5jb21wYWN0KCksYSl9LGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiJ6aXAiIT14Lm1vZGV8fCF4LnNyYy51cmwmJiF4LnNyYy5kYnMubGVuZ3RofHwhIXguc3JjLnppcH19LHdhdGNoOlsiI3Jtb2RlIiwiI3Jzb3VyY2UiLCIjcnppcGZpbGUiXX0sIiNydHVuemlwb3B0cyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfVU5aSVBPUFQpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC50Z3Qub3B0czt2YXIgYj14LnRndC5vcHRzO3JldHVybiB4LnRndC5vcHRzPWEsYi5maW5kKCJjcmVhdGUiKSE9YS5maW5kKCJjcmVhdGUiKSYmKHRoaXMuVW56aXBUbz10aGlzLlVuemlwVG8uY2xvbmUoITApLHRoaXMubXkuZmluZCgiI3J0dW56aXBkYnMiKS5maW5kKCJpbnB1dCN1bnppcC10Z3QiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJibHVyIil9KSkseC50Z3Qub3B0c30sY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuInppcCIhPXgubW9kZXx8IkNvcHkiPT14LnRhc2t8fCF4LnNyYy56aXB9fSx3YXRjaDpbIiNybW9kZSIsIiNyemlwZHVtcCJdfSwiI3J0dW56aXBkYnMiOntiaW5kOiJ0aGlzLlVuemlwVG8iLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxsaXN0Oic8ZGl2IGNsYXNzPSJ3MTAwcCBmczkwIG10MyBjYiI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5VbnppcERCUm93fSxjaGVjazohMCxtZXJnZTohMSxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lKyIgIit0aGlzLmRhdGEudGd0Lm9wdHN9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5jcmMyKHgsdGhpcy5kYXRhLnRndC5vcHRzKX19LCIjeHJ0dW56aXBkYnMiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuInppcCIhPXgubW9kZXx8IXRoaXMuVW56aXBUby5sZW5ndGh9fSx3YXRjaDpbIiNydHVuemlwZGJzIiwiI3Jtb2RlIl19LCIjcnR6aXB3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPWMubGFuZyxlPVtkLk1TR19aSVBfV0FSTl07cmV0dXJuInppcCIhPXgubW9kZT9iLnBhcmVudCgpLmFkZENsYXNzKCJoaWRlIik6Yi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaGlkZSIpLGMuY2FuU3RyZWFtfHxlLnB1c2goZC5NU0dfWklQX0JMT0IpLGUubWFwKGZ1bmN0aW9uKHgpe3JldHVybic8ZGl2IGNsYXNzPSJtdDIgbWI0Ij4nK3grIjwvZGl2PiJ9KX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyemlwZmlsZSJdfX0saXNCdWNrZXRVUkw6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYT8vXmh0dHBbc10/OlwvXC9bXlwvOlxzXSs6W15cLzpAXHNdK0BbXlwvXHNdezIsfShcL1teXC9cc10rKStbXC9dPyQvLnRlc3QoeCk6L15odHRwW3NdPzpcL1wvW15cL1xzXXsyLH0oXC9bXlwvXHNdKykrW1wvXT8kLy50ZXN0KHgpfSxpc0xvY2FsREI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QaG8oIkNvdWNoIikucG9ydCxiPSIiO3JldHVybiB0aGlzLmlzVVJMKHgpPyh4LmluZGV4T2YoImxvY2FsaG9zdDoiK2ErIi8iKT4tMXx8eC5pbmRleE9mKCIxMjcuMC4wLjE6IithKyIvIik+LTEpJiYoYj14LnNwbGl0KCI/IilbMF0uc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCkpOmI9eCxifSxpc1VSTDpmdW5jdGlvbih4KXtyZXR1cm4vXmh0dHBbc10/OlwvXC8vLnRlc3QoeCl9LGlzVmFsaWRVUkw6ZnVuY3Rpb24oeCl7dmFyIGE9ITE7dHJ5e2E9bmV3IFVSTCh4KX1jYXRjaCh4KXt9cmV0dXJuIGF9LGZpeEhlaWdodDpmdW5jdGlvbih4KXt4LmhlaWdodCgwKS5oZWlnaHQoKHhbMF0uc2Nyb2xsSGVpZ2h0LTEwKS5jbGFtcCgxOCwxMDApKX0sY2xlYW5EYXRhOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7JC5leHRlbmQoeCx7ZG9jOiIiLG1vZGU6WyJvbmNlIl19KSwkLmV4dGVuZCh4LnNyYyx7dXJsOiIiLGRiczpbXSx1c2VyOiIiLHB3ZDoiIix1Y3R4OltdLGZpbHRlcjpbXSxmbjoiIixpZHM6W10scXVlcnk6e30sdW5wcmVmaXg6IiIsemlwOiExLG9wdHM6W119KSwkLmV4dGVuZCh4LnRndCx7dXJsOiIiLHVzZXI6IiIscHdkOiIiLGNyZWF0ZTohMSxwcmVmaXg6IiIscToiIixuOiIiLGFjbDohMSx6aXBmaWxlOiIiLG9wdHM6WyJjcmVhdGUiXX0pLGEubXkuZmluZCgiI3J0emlwZmlsZSIpLnZhbChudWxsKSxhLlVuemlwVG89W10sIWEuRG9udFN0b3BVbnppcCYmYS5VbnppcFN0cmVhbS5hYm9ydCYmKGEuVW56aXBTdHJlYW0uYWJvcnQoKSxhLlVuemlwU3RyZWFtPXt9KX0sY2xlYW5VbnppcDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5kYXRhLnNyYy56aXA9ITEseC5teS5maW5kKCIjcnR6aXBmaWxlIikudmFsKG51bGwpLHguVW56aXBUbz1bXSx4LlVuemlwREJtYXA9e30seC5VbnppcFN0cmVhbS5hYm9ydCgpLHguVW56aXBTdHJlYW09e319LGRpZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuU2VsMlNjcm9sbCh4LCEwKSwiU3luYyI9PWEuZGF0YS50YXNrJiZ4LmZpbmQoIiNyc291cmNlIikuYXV0b2NvbXBsZXRlKCJkZXN0cm95IiksIk11bHRpIiE9YS5kYXRhLnRhc2smJnguZmluZCgiI3J0YXJnZXQiKS5hdXRvY29tcGxldGUoImRlc3Ryb3kiKSwhYS5Eb250U3RvcFVuemlwJiZhLlVuemlwU3RyZWFtLmFib3J0JiZhLlVuemlwU3RyZWFtLmFib3J0KCl9LHN0eWxlOnsiIHRleHRhcmVhIjoicmVzaXplOm5vbmU7d29yZC13cmFwOmJyZWFrLXdvcmQ7IiwiIC5teS1lcnJvci10aXAiOiJwYWRkaW5nOjAuMWVtIDAgMC4yZW0gMDsiLCIgLnVpLXdpZGdldCI6ImZvbnQtc2l6ZToxMDAlIiwiIC51aS1hdXRvY29tcGxldGUiOiJsaW5lLWhlaWdodDoxLjNlbTsgbWF4LWhlaWdodDoxOXZoOyBvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC53MTAwcC0yMCI6IndpZHRoOmNhbGMoMTAwJSAtIDIwcHgpOyIsIiAuYmZvbGQiOnsiIjpbIndpZHRoOjIwcHghaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyAiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsiLCJtYXJnaW4tbGVmdDotMjFweDsgei1pbmRleDorMTsiXSwiIGRpdiI6ImZvbnQtc2l6ZTo2MCU7IG9wYWNpdHk6MC41O3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjMuMmVtO3dpZHRoOjEwMCU7In0sIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6MTA5cHg7IiwiLmhhc3ppcCAubm96aXAiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAuemlwb25seSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiLmhhc3ppcCAuemlwb25seSI6ImRpc3BsYXk6aW5saW5lIWltcG9ydGFudDsiLCIgLm15LXJvdywgLm15LWdyb3VwIjoidHJhbnNpdGlvbjogaGVpZ2h0IDAuMXMsIG1pbi1oZWlnaHQgMC4xcywgcGFkZGluZyAwLjA1czsgbWluLWhlaWdodDogMTVweDsgaGVpZ2h0OmF1dG87IiwiIC5zaGlkZSI6Im92ZXJmbG93OmhpZGRlbjsgbWluLWhlaWdodDowOyBoZWlnaHQ6MHB4OyBwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDsiLCIgdWwiOnsiLnVpLWF1dG9jb21wbGV0ZSI6Im1heC13aWR0aDpjYWxjKDEwMCUgLSAxMTVweCk7IiwiIGxpLnVpLW1lbnUtaXRlbSI6IndvcmQtYnJlYWs6IGJyZWFrLWFsbDsifX0sWmlwVGVzdGVyOntyZXF1aXJlOlt7IndpbmRvdy5Xcml0YWJsZVN0cmVhbSI6ImxpYi93ZWJzdHJlYW1zLmpzIn0seyJ3aW5kb3cuZmZsYXRlIjoibGliL2ZmbGF0ZS5qcyJ9XSxpbml0OlsnPGRpdiBpZD0ieC1kdW1teSI+PC9kaXY+J10sdWk6eyIjeC1kdW1teSI6ZnVuY3Rpb24oKXt9fX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2Z1bmN0aW9uIGMoKXt4LnBhcmVudCgpLmNzcygiaGVpZ2h0IiwiYXV0byIpfWEubGFuZ1tiLnRhc2tdJiYkLmV4dGVuZChhLmxhbmcsYS5sYW5nW2IudGFza10pLGEuREJzPU9iamVjdC5rZXlzKGEuUGhvKCJBbGwiKSkuc29ydCgpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKS5hc3NpZ24oe19yZXBsaWNhdG9yOmEuUGhvKCJSZXBsaWNhdG9yREIiKX0pKSxhLmlzQ291Y2gyPWEuUGhvKCJDb3VjaCIpLnZlcj49IjAwMi4iLGEuY2FuWmlwPW51bGwhPT1hLlBobygiY2FuWmlwIik/YS5QaG8oImNhblppcCIpOiJmZXRjaCJpbiB3aW5kb3cmJiJVaW50OEFycmF5ImluIHdpbmRvdyYmIkJsb2IiaW4gd2luZG93JiYiTWFwImluIHdpbmRvdyYmbnVsbCxhLmNhblN0cmVhbT0hd2luZG93LnNhZmFyaSYmInNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yLCJDb3B5IiE9Yi50YXNrJiZiLnNyYy5vcHRzLnB1c2goImFjbCIpLHguZmluZCgidGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4Lm9uKCJpbnB1dC5teSxrZXl1cC5teSIsZnVuY3Rpb24oKXthLmZpeEhlaWdodCh4KX0pfSkseC5wYXJlbnQoKS5vbigiZHJhZ3N0b3AiLGMpLHgudGhlbihmdW5jdGlvbigpe3guZmluZCgidGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJpbnB1dCIpfSksYS5TZWwyU2Nyb2xsKHgsITApLCJTeW5jIj09Yi50YXNrJiZmdW5jdGlvbigpe3guZmluZCgiI3Jzb3VyY2UiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsIm1pbkxlbmd0aCIsMCl9LmRlYm91bmNlKDEwMCkoKSwvXihTeW5jfENvcHkpJC8udGVzdChiLnRhc2spJiZmdW5jdGlvbigpe3guZmluZCgiI3J0YXJnZXQiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsIm1pbkxlbmd0aCIsMCl9LmRlYm91bmNlKDEwMCkoKX0uZGVib3VuY2UoMjApKS50aGVuKGZ1bmN0aW9uKCl7eC5wYXJlbnQoKS50cmlnZ2VyKCJsYXlvdXQiKSxjKCl9LmRlYm91bmNlKDE1MCkpfSxIVE1MOlt7cm93OiIxMDAlIixyb3dDc3M6Im15LXJvdyBwdDMgcGIzIGZzMTAwIixsYWJlbDoiMTE1cHgiLGxhYmVsQ3NzOiJteS1sYWJlbCBkaWIgdmF0IG10OSJ9LCc8ZGl2IGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIGNtIj4nLCc8c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gPHNwYW4gaWQ9InJ0aXRsZSI+e1RYVF9USVRMRX08L3NwYW4+JywiPC9kaXY+IiwnPGZvcm0gaWQ9InhyY3JlYXRlIiBhdXRvY29tcGxldGU9Im9mZiI+JyxbIntMQkxfTU9ERX0iLCJkaXYjcm1vZGUuZGliLnZhdC5mczEwNS5saDE4MCJdLFsie0xCTF9JRH0iLCJpbnAjcmRvY2lkLncxMDBwIix7cGxjOiJ7UExDX0lEfSJ9LCJtc2ciXSwnPGRpdiBpZD0ieHNvdXJjZSIgY2xhc3M9Im15LWdyb3VwIj4nLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9GUk9NfTwvc3Bhbj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHcxMDBwIj4nLCJ0eHQjcnNvdXJjZS53MTAwcC5mczEwMC5saDEzMCIse3BsYzoie1BMQ19GUk9NfSJ9LCJtc2ciLCI8L2Rpdj4iLCJzcG4jYnRuLWZvbGRzcmMucHNldWRvbGluay50ZG4uYmZvbGQuZGliLnZhdCIse3R4dDoiPGRpdj7ilrw8L2Rpdj4ifV0sIjwvZGl2PiIsJzxkaXYgaWQ9Inh6aXBkdW1wIj4nLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9aSVBEVU1QfTwvc3Bhbj4nLCc8aW5wdXQgaWQ9InJ6aXBkdW1wIiB0eXBlPSJmaWxlIiBhY2NlcHQ9Ii56aXAsIGFwcGxpY2F0aW9uL3ppcCIgY2xhc3M9IncxMDBwIGNwIG8wIiBzdHlsZT0iaGVpZ2h0OjIuMWVtOyIgcGxhY2Vob2xkZXI9IntQTENfWklQRFVNUH0iPicsJzxkaXYgaWQ9InJ6aXBkdW1waW5mbyIgY2xhc3M9ImRiIHcxMDBwIGJnLWdyYXk0IGJyMiBwbDUgcHQzIHRyYW5zIiBzdHlsZT0ibWFyZ2luLXRvcDotMi4xZW07IGhlaWdodDoyLjFlbTsiPntQTENfWklQRFVNUH08L2Rpdj4nLCc8ZGl2IGlkPSJidG4temlwZHVtcC1jbGVhciIgY2xhc3M9InBhYmMgbGgxMDAgcDcgY3AgbzUwIiBzdHlsZT0idG9wOjRweDtyaWdodDowOyI+4pyVPC9kaXY+J10sIjwvZGl2PiIsJzxkaXYgaWQ9Inhzc2hpbSIgY2xhc3M9ImhpZGUiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX0ZST019PC9zcGFuPicsImlucCNyc291cmNlcy53MTAwcC5mczExMC5saDE2MCIsIm1zZyJdLCc8ZGl2IGlkPSJ4c2NyZWRzIiBjbGFzcz0ibXktZ3JvdXAgc2hpZGUiPicsWyJ7TEJMX1NSQ19DUkVEU30iLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MHAgcHI2Ij4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IG1yLTIwIHppMSB0YWMgdzIwIHB0MyBwbDIgbzMwIj48c3BhbiBjbGFzcz0iZmktdG9yc28iPjwvc3Bhbj48L2Rpdj4nLCJpbnAjcnNsb2dpbi53MTAwcC5mczk1LmxoMTMwLnBsMjAiLHtwbGM6IntQTENfVU5BTUV9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIiwiPC9kaXY+IiwnPGRpdiBjbGFzcz0iZGliIHZhdCB3NTBwIj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IG1yLTIwIHppMSB0YWMgdzIwIHB0MyBwbDIgbzQwIj48c3BhbiBjbGFzcz0iZmkta2V5Ij48L3NwYW4+PC9kaXY+JywicHdkI3JzcGFzcy53MTAwcC5mczk1LmxoMTMwLnBsMjAiLHtwbGM6IntQTENfVVBXRH0iLGF1dG9jb21wbGV0ZToibmV3LXBhc3N3b3JkIn0sIm1zZyIsIjwvZGl2PiIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzEwMHAiPjxsYWJlbCBjbGFzcz0iZGliIG10MyB2YXQgY3AgZ3JheTEgbGgxNTAgbWIzIHcxMDBwIGZzOTUiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icnVzZXJDdHgiIHZhbHVlPSJfYWRtaW4iIGNsYXNzPSJtcjYgZnMxMTAgbGgxMDAiPicsIntUWFRfVUNUWH0iLCI8L2xhYmVsPjwvZGl2PiJdLCI8L2Rpdj4iLFsie0xCTF9VTlBSRUZJWH0iLCJpbnAjcnVucHJlZml4Lnc3NXAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19VTlBSRUZJWH0iLHRpdGxlOiJ7VElQX1VOUFJFRklYfSJ9XSxbIntMQkxfRklMVEVSfSIsImRpdiNyZmlsdGVyLmRpYi52YXQubGgxNjAucHQyLnBiMiJdLFsie0xCTF9ET0NTfSIsInR4dCNyZG9jcy53MTAwcC5mczk1LmxoMTMwIix7cGxjOiJ7UExDX0RPQ1N9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIl0sWyJ7TEJMX0ZOfSIsImlucCNyZm4udzEwMHAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19GTn0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciXSxbIntMQkxfUVJZfSIsInR4dCNycXVlcnkudzEwMHAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19RUll9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIl0sJzxkaXYgY2xhc3M9IncxMDBwIGgxMCBtdDEwIG9oIGJ0ZCI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBpZD0ieHRub256aXAiIGNsYXNzPSJ3MTAwcCI+JyxbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfVE99PC9zcGFuPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzEwMHAiPicsInR4dCNydGFyZ2V0LncxMDBwLmZzMTAwLmxoMTMwIix7cGxjOiJ7UExDX1RPfSJ9LCJtc2ciLCI8L2Rpdj4iLCJzcG4jYnRuLWZvbGR0Z3QucHNldWRvbGluay50ZG4uYmZvbGQuZGliLnZhdCIse3R4dDoiPGRpdj7ilrw8L2Rpdj4ifV0sJzxkaXYgaWQ9Inh0Y3JlZHMiIGNsYXNzPSJteS1ncm91cCBzaGlkZSI+JyxbIntMQkxfVEdUX0NSRURTfSIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzUwcCBwcjYiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvMzAiPjxzcGFuIGNsYXNzPSJmaS10b3JzbyI+PC9zcGFuPjwvZGl2PicsImlucCNydGxvZ2luLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VTkFNRX0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MHAiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvNDAiPjxzcGFuIGNsYXNzPSJmaS1rZXkiPjwvc3Bhbj48L2Rpdj4nLCJwd2QjcnRwYXNzLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VUFdEfSIsYXV0b2NvbXBsZXRlOiJuZXctcGFzc3dvcmQifSwibXNnIiwiPC9kaXY+Il0sIjwvZGl2PiIsWyJ7TEJMX1BSRUZJWH0iLCJpbnAjcnByZWZpeC53NzVwLmZzOTUubGgxMzAiLHtwbGM6IntQTENfUFJFRklYfSJ9XSxbIiAiLCc8bGFiZWwgY2xhc3M9ImRpYiBjcCBncmF5MSBsaDEyMCBmczk1IHc1MHAiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icnRjcmVhdGVkYiIgdmFsdWU9ImNyZWF0ZSIgY2xhc3M9Im1yNiBmczExMCI+Jywie1RYVF9ORVdUR1R9IiwiPC9sYWJlbD4iXSwiPC9kaXY+IixbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfWklQRklMRX08L3NwYW4+JywiaW5wI3J0emlwZmlsZS53MTAwcC5mczEwMC5saDEzMCIse3BsYzoie1BMQ19aSVBGSUxFfSJ9XSxbIntMQkxfWklQT1BUfSIsImRpdiNyemlwb3B0cy5kaWIudmF0LmxoMTYwLnB0Mi5wYjIiXSwnPGRpdiBpZD0ieHJ0dW56aXBkYnMiIGNsYXNzPSJtdC01IGhpZGUiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX1VOWklQREJTfTwvc3Bhbj4nLCc8ZGl2IGlkPSJydHVuemlwZGJzImNsYXNzPSJkaWIgdmF0IHcxMDBwIHBiNSBtYi01IiBzdHlsZT0ibWF4LWhlaWdodDoyMGVtOyI+PC9kaXY+J10sWyJ7TEJMX1VOWklQT1BUfSIsImRpdiNydHVuemlwb3B0cy5kaWIudmF0LmxoMTYwLnB0NS5wYjIiXSwiPC9kaXY+IixbIiAiLCc8ZGl2IGlkPSJydHppcHdhcm4iIGNsYXNzPSJkaWIgdmF0IHcxMDBwIGZzODUgbGgxMzAgbzgwIj48L2Rpdj4nXSwiPC9mb3JtPiIsJzxkaXYgY2xhc3M9Im10MTAgcHQxMyBidGQiPicsJzxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4tY2xlYXIiPntCVE5fQ0xFQVJ9PC9idXR0b24+PC9kaXY+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0iZ3JlZW4gbXIyIj57QlROX1NUQVJUfTwvYnV0dG9uPicsJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPicsIjwvZGl2PiIsJzxkaXYgaWQ9InppcC10ZXN0ZXIiIGNsYXNzPSJoaWRlIj48L2Rpdj4nXSxVbnppcERCUm93OntpZDoiY3cuUGhvdG9uLlN5bmNUYXNrLlVuemlwREJSb3ciLGluaGVyaXQ6WyJEQnMiLCJQaG8iLCJVbnppcE9wdHMiXSxkYXRhOntuYW1lOiIiLHRhcmdldDoiIixkb2NfY291bnQ6MCxyYXdfc2l6ZTowLHNlY3VyaXR5Om51bGx9LGluaXQ6ZnVuY3Rpb24oeCl7eC5odG1sKHRoaXMuSFRNTCksdGhpcy5kYXRhLnRhcmdldD10aGlzLmRhdGEubmFtZSx0aGlzLkRCcz1jdy5saWIuYTJvKHRoaXMuREJzKX0sdWk6eyIjYnRuLXJlbW92ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoMT09dGhpcy5teS5wYXJlbnQoKS5VbnppcFRvLmxlbmd0aD90aGlzLm15LnBhcmVudCgpLm15LmZpbmQoIiNidG4tY2FuY2VsIikudHJpZ2dlcigiY2xpY2subXkiKTp0aGlzLm15LnJlbW92ZSgpKX0sZXZlbnRzOlsiY2xpY2subXkiXX0sIiN1bnppcC1zcmMiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5VbnppcE9wdHMoKS5maW5kKCJjcmVhdGUiKSxjPXRoaXMuUGhvKFsiQWxsIix4LnRhcmdldF0pO3JldHVybic8c3BhbiBjbGFzcz0iZnMxMTUgYm9sZGVyIj57MX08L3NwYW4+IDxzcGFuIGNsYXNzPSJvNDAgZmktYXJyb3ctcmlnaHQgcGwyIj48L3NwYW4+IHsyfScuYXNzaWduKHgubmFtZS50cnVuY2F0ZSg0MCwibWlkZGxlIiwiLi4uIikuZXNjYXBlSFRNTCgpLGM/IiI6Yj8nPHNwYW4gY2xhc3M9InBsNCBwcjUgcHQxIHBiMiBiZy1ncmVlbjIgZnM5MCB3aGl0ZSBmdzYwMCBicjIiPk5ldzwvc3Bhbj4nOic8c3BhbiBjbGFzcz0icGw0IHByNSBwdDEgcGIyIGJnLXJlZDIgZnM5MCB3aGl0ZSBmdzYwMCBicjIiPk5vIERCPC9zcGFuPicpfSx3YXRjaDpbIiN1bnppcC10Z3QiXX0sIiN1bnppcC10Z3QiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnRhcmdldD1hKSx4LnRhcmdldH0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4vXlthLXowLTlfJFwoXClcK1wtXC9dKyQvLnRlc3QoYSk/L15bYS16XS8udGVzdChhKT90aGlzLlVuemlwT3B0cygpLmZpbmQoImNyZWF0ZSIpfHx0aGlzLlBobyhbIkFsbCIsYV0pP3ZvaWQgMDoiREIgZG9lc27igJl0IGV4aXN0IjoiTXVzdCBzdGFydCB3aXRoIGEteiI6Ik9ubHkgbG93ZXJjYXNlIGEteiwgMC05IGFuZCAgXyQoKSstIGFsbG93ZWQifSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjdW56aXAtdGd0Iil9LmRlYm91bmNlKDIwMCkoKSwhMH19fSwiI3VuemlwLWluZm8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9T2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpP3guZmlsdGVyOltdLGM9Yi5sZW5ndGg/Yi5sZW5ndGg6eC5kb2NfY291bnQrKHguZG9jX2RlbF9jb3VudHx8MCksZD0iIixlPSIiO2lmKGQ9Yi5sZW5ndGg/IlBhcnRpYWwgZHVtcDogezF9IGRvY3syfSIuYXNzaWduKGIubGVuZ3RoLGIubGVuZ3RoPjE/InMiOiIiKToiezF9IGRvY3syfSwgezN9IHJhdyIuYXNzaWduKGM+MWUzP2MuYWJicigxKS5yZXBsYWNlKCJtIiwiTSIpOmMsYz4xPyJzIjoiIix4LnJhd19zaXplLmJ5dGVzKDIpLnJlcGxhY2UoL0IkLywiYiIpKSxudWxsIT14LnNlY3VyaXR5KXt2YXIgZj0kLmV4dGVuZCghMCx7YWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119fSx4LnNlY3VyaXR5KSxnPVtmLmFkbWlucy5uYW1lcyxmLmFkbWlucy5yb2xlcyxmLm1lbWJlcnMubmFtZXMsZi5tZW1iZXJzLnJvbGVzXS5mbGF0dGVuKCkubGVuZ3RoO2U9JzxzcGFuIGNsYXNzPSJ7MX0iPjwvc3Bhbj4gezJ9IEFDTC4gJy5hc3NpZ24oZz8iZmktbG9jayBncmVlbjEiOiJmaS11bmxvY2sgb3JhbmdlMSIsZz8iSGFzIjoiRW1wdHkiKX1yZXR1cm4gZStkfX19LEhUTUw6JzxkaXYgaWQ9ImJ0bi1yZW1vdmUiIGNsYXNzPSJmciBwNSBjcCByZWQxIGxoMTAwIiB0aXRsZT0iRG8gbm90IHJlc3RvcmUgdGhpcyBEQiI+4pyVPC9kaXY+PGRpdiBjbGFzcz0idzQwcCBmciI+PGlucHV0IGlkPSJ1bnppcC10Z3QiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBtdDMiIHBsYWNlaG9sZGVyPSJUYXJnZXQgREIgbmFtZSI+PC9kaXY+PGRpdiBpZD0idW56aXAtc3JjIiBjbGFzcz0idzU1cCBsaDEzMCBwdDMgbWIzIHdiYSI+PC9kaXY+PGRpdiBpZD0idW56aXAtaW5mbyIgY2xhc3M9IncxMDBwIG1iMiBmczkwIGxoMTIwIG83MCI+PC9kaXY+J30scnVuWmlwOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPSJNdWx0aSI9PWMudGFzayxlPWIuRHVtcFppcCxmPShjLnRndC56aXBmaWxlLHtkYnM6KGQ/Yy5zcmMuZGJzLnVuaXF1ZSgpOltjLnNyYy51cmxdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue3VybDp4LGRyb3A6T2JqZWN0LnNlbGVjdChjLnNyYyxbImZpbHRlciIsImZuIiwiaWRzIiwicXVlcnkiXSl9fSksbmFtZTpjLnRndC56aXBmaWxlLnJlcGxhY2UoL1wuemlwJC9pLCIiKXx8ImR1bXAiLG9wdHM6Yy5zcmMub3B0c30pO3JldHVybiB4Lm1vZGFsKHtyb290OmEsZGF0YTpmLG1hbmlmZXN0OmUsZ2xvYmFsOiExLGNsb3NlOiExLGVzYzohMSxhbGlnbjoiYm90dG9tOjEycHg7cmlnaHQ6MjBweDsiLGNzczoicDEwIHhncmF5IixkcmFnOiIuY20iLHdpZHRoOjQ1MH0pLnRoZW4oZnVuY3Rpb24oKXt9KS5mYWlsKGZ1bmN0aW9uKHgpe2NvbnNvbGUubG9nKHgpLGN3LmxpYi5ub3RlKCJGYWlsZWQgdG8gc3RhcnQgc3RyZWFtaW5nIGpvYi4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIiwiZXJyb3IiKX0pfSxydW5VbmR1bXA6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9Ik11bHRpIj09Yy50YXNrLGU9JC5leHRlbmQoITAse30sYi5VbmR1bXApO2MudGd0LnppcGZpbGUsZD9jLnNyYy5kYnMudW5pcXVlKCk6Yy5zcmMudXJsO2IuVW56aXBEQm1hcD17fSxiLlVuemlwVG8uZm9yRWFjaChmdW5jdGlvbih4KXtiLlVuemlwREJtYXBbeC5uYW1lXT14LnRhcmdldH0pLCQuZXh0ZW5kKGUsT2JqZWN0LnNlbGVjdChiLFsiVW56aXBTdHJlYW0iLCJVbnppcERCbWFwIl0pKTt2YXIgZj17ZG9jc1RvU2F2ZTpiLmRvY3NUb1NhdmUsZGJzOmIuVW56aXBUby5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue3NyYzp4Lm5hbWUsbmFtZTp4LnRhcmdldCxmaWx0ZXI6eC5maWx0ZXIsdG90YWxTaXplOngucmF3X3NpemUsdG90YWxEb2NzOnguZG9jX2NvdW50Kyh4LmRvY19kZWxfY291bnR8fDApLHNlY3VyaXR5Onguc2VjdXJpdHksY2x1c3Rlcjp4LmNsdXN0ZXJ8fG51bGwscHJvcHM6eC5wcm9wc3x8bnVsbCxkb25lRG9jczowfX0pLG9wdHM6Yy50Z3Qub3B0c307cmV0dXJuIHgubW9kYWwoe3Jvb3Q6YSxkYXRhOmYsbWFuaWZlc3Q6ZSxnbG9iYWw6ITEsY2xvc2U6ITEsZXNjOiExLGFsaWduOiJib3R0b206MTJweDtyaWdodDoyMHB4OyIsY3NzOiJwMTAgeGdyYXkiLGRyYWc6Ii5jbSIsd2lkdGg6NDUwfSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT14LnN0YXR1cztyZXR1cm4iYWJvcnRlZCI9PWE/Y3cubGliLm5vdGUoYi5sYW5nLkVSUl9VTlpJUF9BQlJULCJlcnJvciIsOGUzKToiZG9uZSI9PWE/Y3cubGliLm5vdGUoYi5sYW5nLk1TR19VTlpJUF9PSywib2siLDhlMyk6dm9pZCAwfSkuZmFpbChmdW5jdGlvbih4KXtiLlVuemlwU3RyZWFtLmFib3J0KCksY29uc29sZS5sb2coeCxmKSxjdy5saWIubm90ZShiLmxhbmcuRVJSX1VOWklQX0ZBSUwsImVycm9yIiw1ZTMpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5kb2NzVG9TYXZlPVtdfSl9LHN0YXJ0VW56aXBTdHJlYW06ZnVuY3Rpb24oeCl7dmFyIGEsYj10aGlzLGM9Yi5kYXRhLGQ9JC5EZWZlcnJlZCgpLGU9ITEsZj0hMSxnPSExLGg9ITEsaT1bXSxqPW5ldyBVaW50OEFycmF5KCd7Im5ld19lZGl0cyI6ZmFsc2UsImRvY3MiOlsnLmNvZGVzKCkpLGs9bmV3IFVpbnQ4QXJyYXkoJ3sibmV3X2VkaXRzIjpmYWxzZSwiZG9jcyI6Jy5jb2RlcygpKSxsPW5ldyBVaW50OEFycmF5KCJdfSIuY29kZXMoKSksbT1uZXcgVWludDhBcnJheSgifSIuY29kZXMoKSksbj1uZXcgZmZsYXRlLlVuemlwKHYpO24ucmVnaXN0ZXIoZmZsYXRlLkFzeW5jVW56aXBJbmZsYXRlKTt2YXIgbz14LnN0cmVhbSgpLHA9by5nZXRSZWFkZXIoKSxxPWIuZG9jc1RvU2F2ZSxyPTEscz0wLHQ9MCx1PSExO3JldHVybiBiLmlzU3RyZWFtaW5nPSEwLGMuc3JjLnppcD14Lm5hbWUscC5yZWFkKCkudGhlbih3LmRlYm91bmNlKDUpKSxkLnByb21pc2UoKTtmdW5jdGlvbiB2KHgpe2lmKGYpcmV0dXJuIHgudGVybWluYXRlKCk7dmFyIGM9eC5uYW1lLG49L1wvX2NvbmZsaWN0c1wvLy50ZXN0KGMpLG89RShjLnNwbGl0KCIvIilbMF0pLHA9KGIuVW56aXBEQm1hcHx8e30pW29dLHY9W10sdz0iX2luZm8uanNvbiI9PWM7aWYod3x8YyE9byYmKG51bGw9PT1iLlVuemlwREJtYXB8fHApJiYvXlthLXowLTlfJFwoXClcK1wtXC9dK1wvLitcLmpzb24kLy50ZXN0KEUoYykpKXt2LnB1c2gobj9rOmopO3ZhciB5PXtuYW1lOmMsc3JjZGI6byxkZXN0ZGI6cCxzaXplOjAscmVhZHk6ITEsc2F2ZWQ6ITEsZXJyb3JzOltdLHJlcTpudWxsfTtyKz0xLHd8fChzKz0xKSx4Lm9uZGF0YT1mdW5jdGlvbihhLGIsYyl7aWYoZilyZXR1cm4geC50ZXJtaW5hdGUoKTthP0IoIkZhaWxlZCB1bnppcHBpbmc6ICIrKChhfHwidW5rbm93biBlcnJvciIpKyIiKS50cnVuY2F0ZSgxMDApKTooYiYmKHYucHVzaChiKSx5LnNpemUrPWIubGVuZ3RoKSxjJiZGKCkpfSx4LnN0YXJ0KCl9ZWxzZSB4Lm9uZGF0YT1mdW5jdGlvbihhLGIsYyl7aWYoZilyZXR1cm4geC50ZXJtaW5hdGUoKX0seC5zdGFydCgpLHQrPTE7ZnVuY3Rpb24gRigpe3JldHVybiBmP3gudGVybWluYXRlKCk6KHItPTEseS5yZWFkeT0hMCx2LnB1c2gobj9tOmwpLHcmJiF1PyhDKCksdT0hMCxhPXtpbmZvOkpTT04ucGFyc2Uoeih2KSkuZG9jc1swXSxwYXVzZTpDLGFib3J0OkIsY29udGludWU6RCxub3RpZnk6ZnVuY3Rpb24oeCl7aS5wdXNoKHgpfSxnZXRTdGF0czpmdW5jdGlvbigpe3JldHVybntpc1ppcFJlYWQ6aCxmaWxlczpzLGRyb3A6dH19LGlzUGF1c2VkOmZ1bmN0aW9uKCl7cmV0dXJuIGV9LGlzQWJvcnRlZDpmdW5jdGlvbigpe3JldHVybiBmfHxnfSxpc0RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZ30saXNBbGxSZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIGh9fSx2PXZvaWQgMCxkLnJlc29sdmUoYSkpOih5LnJlcT17dXJsOiIiLHByb2Nlc3NEYXRhOiExLG1ldGhvZDoicG9zdCIsZGF0YTpuZXcgQmxvYih2KSxoZWFkZXJzOnsiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19LHEucHVzaCh5KSxBKCJkb2MiLHkuc2l6ZSksMD09ciYmKGIuaXNTdHJlYW1pbmc9ITEsZz0hMCxxLnB1c2gobnVsbCksQSgiZW5kZWQiKSxkLnJlamVjdCgpKSx2b2lkIDApKX19ZnVuY3Rpb24gdyh4KXt2YXIgYT14LmRvbmUsYj14LnZhbHVlO2E/KG4ucHVzaChifHxuZXcgVWludDhBcnJheSwhMCksci09MSxoPSEwLGNvbnNvbGUubG9nKCJaaXAgZmlsZSBlbmRlZCwgezF9IGZpbGVzIHBpcGVkLCB7Mn0gZmlsZXMgZHJvcHBlZCIuYXNzaWduKHMsdCkpKToobi5wdXNoKGIpLGV8fHkuZGVsYXkoMSkpfWZ1bmN0aW9uIHkoKXtwLnJlYWQoKS50aGVuKHcpfWZ1bmN0aW9uIHooeCl7dmFyIGE9bmV3IFVpbnQ4QXJyYXkoeC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubGVuZ3RofSkuc3VtKCkpLGI9MDtyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBjPXgubGVuZ3RoO2Euc2V0KHgsYiksYis9Y30pLGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGEpKSl9ZnVuY3Rpb24gQSh4LGIpe2EmJmkuZm9yRWFjaChmdW5jdGlvbihhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYSl0cnl7YSh4LGIpfWNhdGNoKHgpe2NvbnNvbGUubG9nKCJFcnJvciBub3RpZnlpbmcgdW56aXBwZWQgZG9jIHB1bXBzIix4KX19KX1mdW5jdGlvbiBCKHgpe2Y9ITAsZz0hMCxiLmlzU3RyZWFtaW5nPSExLGIuZG9jc1RvU2F2ZS5sZW5ndGg9MCxwLmNhbmNlbCgpLnRoZW4oZnVuY3Rpb24oKXtwLnJlbGVhc2VMb2NrKCk7dHJ5e28uY2FuY2VsKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9fSksY29uc29sZS5sb2coIlxuUmVhZGVyIGNhbmNlbGxlZFxuIisoeHx8IiIpKSx4JiZjdy5saWIubm90ZSh4LCIiLDZlMyl9ZnVuY3Rpb24gQygpe2U9ITAsY29uc29sZS5sb2coIlxuUmVhZGVyIHBhdXNlZCwgezF9IGZpbGVzIGluIHRoZSBidWZmZXJcbiIuYXNzaWduKHEubGVuZ3RoKSl9ZnVuY3Rpb24gRCgpe2U9ITEscC5yZWFkKCkudGhlbih3LmRlYm91bmNlKDUpKSxjb25zb2xlLmxvZygiXG5SZWFkZXIgcmVzdGFydGVkXG4iKX1mdW5jdGlvbiBFKHgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoeCl9fSxzdGFydFVuemlwU3luYzpmdW5jdGlvbih4KXt2YXIgYSxiPXRoaXMsYz0oYi5kYXRhLGIuZG9jc1RvU2F2ZSksZD0kLkRlZmVycmVkKCksZT1bXSxmPSExLGc9ITEsaD0hMTtyZXR1cm4geC5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oeCl7ZmZsYXRlLnVuemlwKG5ldyBVaW50OEFycmF5KHgpLGZ1bmN0aW9uKHgsail7eD9jb25zb2xlLmxvZyh4KTpPYmplY3Qua2V5cyhqKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBkPWkoeC5zcGxpdCgiLyIpWzBdKSxrPSJfaW5mby5qc29uIj09eDtpZihrfHxpKHgpIT1kJiYvXlthLXowLTlfJFwoXClcK1wtXC9dK1wvLitcLmpzb24kLy50ZXN0KGkoeCkpKXJldHVybiBrPyhhPXtpbmZvOkpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsalt4XSkpKSkscGF1c2U6ZnVuY3Rpb24oKXt9LGFib3J0OmZ1bmN0aW9uKCl7Zz0hMCxoPSEwLGIuaXNTdHJlYW1pbmc9ITEsYi5kb2NzVG9TYXZlLmxlbmd0aD0wfSxjb250aW51ZTpmdW5jdGlvbigpe30sbm90aWZ5OmZ1bmN0aW9uKHgpe2UucHVzaCh4KX0sZ2V0U3RhdHM6ZnVuY3Rpb24oKXtyZXR1cm57aXNaaXBSZWFkOiEwLGZpbGVzOk9iamVjdC5zaXplKGopLGRyb3A6MH19LGlzUGF1c2VkOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGlzQWJvcnRlZDpmdW5jdGlvbigpe3JldHVybiBnfHxofSxpc0RvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gaH0saXNBbGxSZWFkOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx2b2lkIDApOihjLnB1c2goe25hbWU6eCxzcmNkYjpkLGRlc3RkYjpudWxsLHNpemU6alt4XS5sZW5ndGgscmVhZHk6ITEsc2F2ZWQ6ITEsZXJyb3JzOltdLHJlcTp7dXJsOiIiLHByb2Nlc3NEYXRhOiExLG1ldGhvZDoicG9zdCIsZGF0YTovXC9fY29uZmxpY3RzXC8vLnRlc3QoeCk/bmV3IEJsb2IoWyd7Im5ld19lZGl0cyI6ZmFsc2UsImRvY3MiOicsalt4XSwifSJdKTpuZXcgQmxvYihbJ3sibmV3X2VkaXRzIjpmYWxzZSwiZG9jcyI6Wycsalt4XSwiXX0iXSksaGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fX0pLHZvaWQgMCl9KSxjLnB1c2gobnVsbCksYT9kLnJlc29sdmUoYSk6ZC5yZWplY3QoeHx8Ik5vIHN0cmVhbSIpfSl9KSxkLnByb21pc2UoKTtmdW5jdGlvbiBpKHgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoeCl9fSxydW5UYXNrczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj0iaHR0cDovL2xvY2FsaG9zdDoiK3guUGhvKCJDb3VjaCIpLnBvcnQrIi8iLGM9Ik11bHRpIj09YS50YXNrLGQ9ISFhLm1vZGUuZmluZCgiZG9jIiksZT0oYS5tb2RlLmZpbmQoIjJ3YXkiKSwhIWEubW9kZS5maW5kKCJsaXZlIikpLGY9eC5pc0NvdWNoMiYmKGV8fGQpLGc9IXguaXNDb3VjaDImJiEhYS5zcmMudWN0eC5sZW5ndGgsaD1bXSxpPXt9LGo9e2RvYzoiIixtb2RlOltdLHNyYzp7ZGI6IiIsdXJsOiIiLHVjdHg6W10sZmlsdGVyOltdLGZuOiIiLHF1ZXJ5Ont9LGlkczpbXX0sdGd0Ont1cmw6IiIsY3JlYXRlOiExLGFjbDohMX19O2M/YS5zcmMuZGJzLnVuaXF1ZSgpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9JC5leHRlbmQoITAse30saixPYmplY3QucmVqZWN0KGEsInRhc2tzIikpLGM9YS50Z3QucHJlZml4Kyh4LnN0YXJ0c1dpdGgoYS5zcmMudW5wcmVmaXgpP3gucmVwbGFjZShhLnNyYy51bnByZWZpeCwiIik6eCk7Yi5zcmMuZGI9eCxiLnNyYy51cmw9Zj9sKHgsYi5zcmMudXNlcixiLnNyYy5wd2QpOngsZyYmKGIudXNlcl9jdHg9e25hbWU6Y3cubWUoKSxyb2xlczphLnNyYy51Y3R4LnNsaWNlKDApfSksYi50Z3QudXJsPWwoYi50Z3QudXJsKygiLyI9PWIudGd0LnVybC5zdWJzdHIoLTEpPyIiOiIvIikrbShjKSxiLnRndC51c2VyLGIudGd0LnB3ZCksaC5wdXNoKGIpfSk6KGk9JC5leHRlbmQoITAse30saixPYmplY3QucmVqZWN0KGEsInRhc2tzIikpLGcmJiF4LmlzVVJMKGEuc3JjLnVybCkmJihpLnVzZXJfY3R4PXtuYW1lOmN3Lm1lKCkscm9sZXM6YS5zcmMudWN0eC5zbGljZSgwKX0pLChmfHx4LmlzVVJMKGkuc3JjLnVybCkpJiYoaS5zcmMudXJsPWwoaS5zcmMudXJsLGkuc3JjLnVzZXIsaS5zcmMucHdkKSksKGZ8fHguaXNVUkwoaS50Z3QudXJsKXx8aS50Z3QudXNlciYmaS50Z3QucHdkKSYmKGkudGd0LnVybD1sKGkudGd0LnVybCxpLnRndC51c2VyLGkudGd0LnB3ZCkpLGg9W2ldKSxjJiZjdy5saWIubm90ZSh4LmxhbmcuTVNHX1NUQVJUSU5HKTt2YXIgaz1bXTtyZXR1cm4gaC5mb3JFYWNoKGZ1bmN0aW9uKGEsYil7ay5wdXNoKFEuZGVsYXkoMSsxMDAqYikudGhlbihmdW5jdGlvbigpe3JldHVybiB4LnJ1blRhc2tDaGFpbihhKX0pKX0pLFEuYWxsU2V0dGxlZChrKTtmdW5jdGlvbiBsKGEsYyxlKXt2YXIgZjtpZih4LmlzVVJMKGEpKWY9bmV3IFVSTChhKTtlbHNle2lmKCEoZHx8Y3x8eC5pc0NvdWNoMikpcmV0dXJuIGE7Zj1uZXcgVVJMKGIrbShhKSl9cmV0dXJuIGMmJihmLnVzZXJuYW1lPWMsZi5wYXNzd29yZD1lKSxmKyIifWZ1bmN0aW9uIG0oeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX19LHJ1blRhc2tDaGFpbjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5sYW5nLGM9Yi5FUlJfSk9CLGQ9T2JqZWN0LGU9YS5QaG8oIlJlcGxpY2F0b3JEQiIpLGY9Y3cubGliLm5vdGUsZz1kLm1lcmdlKHtkb2M6IiIsbW9kZTpbXSxzcmM6e2RiOiIiLHVybDoiIix1Y3R4OltdLGZpbHRlcjpbXSxmbjoiIixxdWVyeTp7fSxpZHM6W119LHRndDp7dXJsOiIiLGNyZWF0ZTohMSxhY2w6ITF9fSx4LCEwKSxoPWEuaXNMb2NhbERCKGcuc3JjLnVybCksaT1oLGo9KGEuaXNMb2NhbERCKGcudGd0LnVybCksISFnLm1vZGUuZmluZCgiZG9jIikpLGs9ISFnLm1vZGUuZmluZCgibGl2ZSIpLGw9ISFnLm1vZGUuZmluZCgiMndheSIpLG09IiIsbj1bXSxvPSQuRGVmZXJyZWQoKSxwPSQuRGVmZXJyZWQoKTtyZXR1cm4gby50aGVuKHEpLnRoZW4ocikudGhlbihzKS50aGVuKHQpLnRoZW4odSkuZmFpbChmdW5jdGlvbigpe2YobS5lc2NhcGVIVE1MKCksImVycm9yIiw1ZTMpLHAucmVqZWN0KDQ5OSxtKX0pLmFsd2F5cyhmdW5jdGlvbigpe3AucmVzb2x2ZSgpfSksby5yZXNvbHZlLmRlYm91bmNlKDEpKCkscC5wcm9taXNlKCk7ZnVuY3Rpb24gcSgpe2lmKGgpe3ZhciB4PSQuRGVmZXJyZWQoKTtyZXR1cm4gYS5SZXEodih7dXJsOltpLCJfYWxsX2RvY3MiLHtzdGFydGtleToiX2Rlc2lnbi8iLGVuZGtleToiX2Rlc2lnbjAifV0sbWV0aG9kOiJHRVQifSkpLnRoZW4oZnVuY3Rpb24oYSl7YS5yb3dzLmZvckVhY2goZnVuY3Rpb24oeCl7bi5wdXNoKHguaWQpfSkseC5yZXNvbHZlKCl9KS5mYWlsKGZ1bmN0aW9uKGEsYil7bT1jLlQuYXNzaWduKGMuR0VULGksYSxiKSx4LnJlamVjdChhLG0pfSkseC5wcm9taXNlKCl9fWZ1bmN0aW9uIHIoKXtpZihoJiZnLnNyYy5maWx0ZXIuZmluZCgvXngoZGVsfGRkb2N8Y29uZmxpY3QpJC8pKXt2YXIgeD0kLkRlZmVycmVkKCksYj1kLmNsb25lKGEuRGRvYywhMCk7cmV0dXJuIG4uZmluZChiLl9pZCk/YS5SZXEodih7dXJsOltpLGIuX2lkXSxtZXRob2Q6IkdFVCJ9KSkudGhlbihmdW5jdGlvbihhKXthLnZlcnNpb249PWIudmVyc2lvbj94LnJlc29sdmUoKTooYi5fcmV2PWEuX3JldixlKCkpfSkuZmFpbChmKTplKCkseC5wcm9taXNlKCl9ZnVuY3Rpb24gZSgpe2EuUmVxKHYoe3VybDpbaSxiLl9pZF0sbWV0aG9kOiJQVVQiLGRhdGE6Y3cubGliLmpzb24oJC5leHRlbmQoYix7c3RhbXA6RGF0ZS5ub3coKX0pKSxkYXRhVHlwZToidGV4dCJ9KSkudGhlbihmdW5jdGlvbigpe3gucmVzb2x2ZSgpfSkuZmFpbChmKX1mdW5jdGlvbiBmKGEsYil7bT1jLlQuYXNzaWduKGMuVVRJTFMsaSxhLGIpLHgucmVqZWN0KGEsbSl9fWZ1bmN0aW9uIHMoKXtpZihnLm1vZGUuZmluZCgiMndheSIpJiZoJiZnLnNyYy5maWx0ZXIuZmluZCgvXihmbnx4ZGVsfHhkZG9jfHhjb25mbGljdCkkLykpe3ZhciB4PWEuRGRvYy5faWQ7aWYoZy5zcmMuZmlsdGVyLmZpbmQoImZuIikpe2lmKCFnLnNyYy5mbilyZXR1cm47eD0iX2Rlc2lnbi8iK2cuc3JjLmZuLnNwbGl0KCIvIilbMF19dmFyIGI9JC5EZWZlcnJlZCgpO3JldHVybiBhLlJlcSh2KHt1cmw6WyJfcmVwbGljYXRlIl0sbWV0aG9kOiJQT1NUIix0aW1lb3V0OjZlNCxkYXRhVHlwZToidGV4dCIsZGF0YTpKU09OLnN0cmluZ2lmeSh7c291cmNlOmcuc3JjLnVybCx0YXJnZXQ6Zy50Z3QudXJsLGNvbnRpbnVvdXM6ITEsY3JlYXRlX3RhcmdldDohIWcudGd0LmNyZWF0ZSxkb2NfaWRzOlt4XX0pfSkpLnRoZW4oZnVuY3Rpb24oKXtiLnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtmKGMuVC5hc3NpZ24oYy5GRERPQyxpLHgsYSkrYy5DLCJ3YXJuaW5nIiksYi5yZXNvbHZlKCl9KSxiLnByb21pc2UoKX19ZnVuY3Rpb24gdCgpe31mdW5jdGlvbiB1KCl7dmFyIHgsbj1bXSxvPXtzb3VyY2U6Zy5zcmMudXJsLHRhcmdldDpnLnRndC51cmwsY29udGludW91czohIWcubW9kZS5maW5kKCJsaXZlIiksY3JlYXRlX3RhcmdldDohIWcudGd0LmNyZWF0ZX07Zy5zcmMuZmlsdGVyLmZpbmQoImZuIikmJmcuc3JjLmZuPyhvLmZpbHRlcj1nLnNyYy5mbixkLnNpemUoZy5zcmMucXVlcnkpJiYoby5xdWVyeV9wYXJhbXM9ZC5jbG9uZShnLnNyYy5xdWVyeSwhMCkpKTpnLnNyYy5maWx0ZXIuZmluZCgiaWRzIik/by5kb2NfaWRzPWQuY2xvbmUoZy5zcmMuaWRzLCEwKToobj1nLnNyYy5maWx0ZXIuZmluZEFsbCgvXngoZGVsfGRkb2N8Y29uZmxpY3QpJC8pKS5sZW5ndGgmJihvLmZpbHRlcj1hLkRkb2MuX2lkLnNwbGl0KCIvIilbMV0rIi9leGNsdWRlIixvLnF1ZXJ5X3BhcmFtcz1uLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2FdPSJUIix4fSx7fSkpLGomJihvLl9pZD1nLmRvYysoaD8iLCAiK2krIiA9PiI6bD8iLCBvdXRib3VuZCI6IiIpLG8ub3duZXI9Y3cubWUoKSxvLnBob3Rvbl90YXNrPWcuZG9jKyIiLGcudXNlcl9jdHgmJihvLnVzZXJfY3R4PU9iamVjdC5jbG9uZShnLnVzZXJfY3R4LCEwKSkpO3ZhciBwPWcuc3JjLnVybC5zcGxpdCgiLyIpLmNvbXBhY3QoITApLmxhc3QoKS5lc2NhcGVIVE1MKCkscT0kLkRlZmVycmVkKCk7cmV0dXJuIGp8fGt8fGYoYi5NU0dfU1RBUlQuYXNzaWduKHApKSxsJiYoeD0kLmV4dGVuZCghMCx7fSxvLHtzb3VyY2U6Zy50Z3QudXJsLHRhcmdldDpnLnNyYy51cmwsY3JlYXRlX3RhcmdldDohMX0pLGomJih4Ll9pZD1nLmRvYysoaD8iLCAiK2krIiA8PSI6IiwgaW5ib3VuZCIpKSkscihvKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHg9YltqPyJNU0dfT0tfRE9DIjprPyJNU0dfT0tfTElWRSI6Ik1TR19PS19PTkNFIl07Zih4LmFzc2lnbihwKSwib2siKSx0KGcudGd0LnVybCksbD9RLmRlbGF5KG8uY3JlYXRlX3RhcmdldD81ZTM6aj8yZTM6MTAwKS50aGVuKGZ1bmN0aW9uKCl7cygpLmFsd2F5cyhmdW5jdGlvbigpe3EucmVzb2x2ZSgpfSl9KTpxLnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXttPWMuVC5hc3NpZ24oYy5UTyxpLHgsYSkscS5yZWplY3QoeCxtKX0pLHEucHJvbWlzZSgpO2Z1bmN0aW9uIHIoeCl7dmFyIGI9eC5faWQsYz17dXJsOmI/W2UsYl06WyJfcmVwbGljYXRlIl0sbWV0aG9kOmI/IlBVVCI6IlBPU1QiLGRhdGFUeXBlOiJ0ZXh0IixkYXRhOkpTT04uc3RyaW5naWZ5KHgpLHRpbWVvdXQ6Ynx8eC5jb250aW51b3VzPzFlNDozZTV9O3JldHVybiBhLlJlcSh2KGMpKX1mdW5jdGlvbiBzKCl7cmV0dXJuIHIoeCkudGhlbihmdW5jdGlvbigpe3ZhciB4PWJbKGo/Ik1TR19PS19ET0MiOms/Ik1TR19PS19MSVZFIjoiTVNHX09LX09OQ0UiKSsiX0JBQ0siXTtmKHguYXNzaWduKHApLCJvayIpLHQoZy5zcmMudXJsKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtmKGMuVC5hc3NpZ24oYy5GUk9NLGkseCxhKStjLkMsIndhcm5pbmciKX0pfWZ1bmN0aW9uIHQoeCl7dmFyIGI9YS5pc0xvY2FsREIoeCk7IWsmJmImJiQubXkucmFkaW8oImRibGlzdCIsW2JdKSxqJiYkLm15LnJhZGlvKCJkYmxpc3QiLFtlXSl9fWZ1bmN0aW9uIHYoeCl7cmV0dXJuICQuZXh0ZW5kKCEwLHt1cmw6W10sbWV0aG9kOiIiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxkYXRhVHlwZToianNvbiIsdGltZW91dDoxZTR9LHgpfX0sRGRvYzp7X2lkOiJfZGVzaWduL3Bob3Rvbi1zeW5jIixsYW5ndWFnZToiamF2YXNjcmlwdCIsbmFtZToiUGhvdG9uIHN5bmMgdXRpbHMiLHZlcnNpb246IjAxLjAxIixzdGFtcDowLG9wdGlvbnM6e2NvbmZsaWN0czohMH0sZmlsdGVyczp7ZXhjbHVkZTpmdW5jdGlvbih4LGEpe3ZhciBiPWEucXVlcnl8fHt9LGM9eC5faWQ7cmV0dXJuIShiLnhkZWwmJnguX2RlbGV0ZWR8fGIueGRkb2MmJiJfZGVzaWduLyI9PWMuc3Vic3RyKDAsOCkpfX19LER1bXBaaXA6e2lkOiJjdy5QaG90b24uRHVtcFppcCIscGFyYW1zOntyZXN0eWxlOjIwMH0sRGF0YVVybHM6W10scmVxdWlyZTpbeyJ3aW5kb3cuV3JpdGFibGVTdHJlYW0iOiJsaWIvd2Vic3RyZWFtcy5qcyJ9LHsid2luZG93LnN0cmVhbVNhdmVyIjoibGliL3N0cmVhbXNhdmVyLmpzIiwid2luZG93LmZmbGF0ZSI6ImxpYi9mZmxhdGUuanMifV0sZGF0YTp7ZGJzOltdLG5hbWU6ImR1bXAiLHppcDpudWxsLHVybDoiIixvcHRzOltdLGJ5dGVzOjAsemJ5dGVzOjAsZG9uZTohMSxzdGF0dXM6InJlYWR5IixtYXhSZWFkU3RyZWFtczo0LG1heEZlZWRDaHVuazoyMDk3MTUyLG1pbkZlZWREb2NzOjE1LG1heEZlZWREb2NzOjEwMCxtYXhSZXN0YXJ0czozfSxEQnM6e30sU3RhbXA6MCxEb2NMaXN0OltdLERCc1JlYWRDdHI6MCxTdHJlYW06e2Fib3J0OmZ1bmN0aW9uKCl7fX0sSW5mb0RvYzp7fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIHguaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2EuU3RyZWFtPWEuU3RyZWFtRG9jcygpLGIuc3RhdHVzPSJzdHJlYW1pbmcifS5kZWJvdW5jZSg1MCkpLGEuUmVhZERCc0luZm8oKS50aGVuKGZ1bmN0aW9uKCl7YS5TdGFtcD1EYXRlLm5vdygpfSl9LHVpOnsiI2RiLXJvd3MiOntiaW5kOiJkYnMiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5uaWNlU2Nyb2xsKHgpfSxsaXN0Oic8ZGl2IGNsYXNzPSJtdDUgcHQ1IHBiNSBiYmQiPjwvZGl2PicsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuREJSb3d9LGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LnVybH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gudG90YWxEb2NzKyIiLHgudG90YWxTaXplKyIiXSl9fSwiI2J5dGVzIjpmdW5jdGlvbih4LGEpe3JldHVybiB4LmJ5dGVzP3RoaXMuQnl0ZXNULmFzc2lnbih4LmJ5dGVzLmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYiIpLHguZG9uZT8iZmktY2hlY2sgbzcwIGdyZWVuIGZzODAiOiJmaS1hcnJvdy1yaWdodCBvNTAgeGdyYXkgZnM4MCIseC56Ynl0ZXMuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIikpOiIifSwiI3N0cmVhbS1zcGVlZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0oRGF0ZS5ub3coKS10aGlzLlN0YW1wKzEpLzFlMyxjPSg4KnguYnl0ZXMvYnwwKS5jbGFtcCgwLDFlOSk7cmV0dXJuIGM/Yy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImJpdC9zIik6IiJ9LHdhdGNoOlsiI2J5dGVzIl19LCIjYnRuLXN0b3AiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5TdHJlYW0uYWJvcnQoKX19fSxzdHlsZTp7IiAiOmZ1bmN0aW9uKHgpe3JldHVybiJzdHJlYW1pbmciPT10aGlzLmRhdGEuc3RhdHVzJiZ4LnRyaWdnZXIoImxheW91dCIpLCJmb250LXNpemU6MTVweDsgbGluZS1oZWlnaHQ6MS40ZW07In19LEhUTUw6JzxkaXYgY2xhc3M9ImZzMTMwIGZ3NDAwIGNtIj48c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gRHVtcCB0byB6aXA8L2Rpdj48ZGl2IGlkPSJkYi1yb3dzIiBjbGFzcz0ibXQxMCBidGQgbWIxMCIgc3R5bGU9Im1heC1oZWlnaHQ6NTAwcHg7Ij48L2Rpdj48ZGl2PjxkaXYgaWQ9InN0cmVhbS1zcGVlZCIgY2xhc3M9IncyNXAgbzUwIGZyIHRhciBtdDUiPjwvZGl2PjxkaXYgaWQ9ImJ5dGVzIiBjbGFzcz0iZnIgdzQ1cCBtdDUgbzcwIj48L2Rpdj48YnV0dG9uIGlkPSJidG4tc3RvcCIgY2xhc3M9Im1yNSI+QWJvcnQgemlwPC9idXR0b24+PC9kaXY+JyxCeXRlc1Q6JzxzcGFuIGNsYXNzPSJkaWIgdzQ1cCB0YXIiPnsxfTwvc3Bhbj48c3BhbiBjbGFzcz0iZGliIHcxMHAgdGFjIHsyfSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJkaWIgdzQ1cCB0YWwiPnszfTwvc3Bhbj4nLGRpZTpmdW5jdGlvbih4KXt0aGlzLkRhdGFVcmxzLmZvckVhY2goZnVuY3Rpb24oeCl7VVJMLnJldm9rZU9iamVjdFVSTCh4KX0pfSxSZWFkREJzSW5mbzpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1hLm9wdHN8fFtdO3JldHVybiB4LkRCc1JlYWRDdHI9YS5kYnMubGVuZ3RoLFEuYWxsKGEuZGJzLm1hcChmdW5jdGlvbihhKXt2YXIgZD0vXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdChhLnVybCk/YS51cmwuc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCk6YS51cmwsZT1hLmRyb3AuZmlsdGVyfHxbXSxmPWUuZmluZCgiaWRzIikmJmEuZHJvcC5pZHN8fFtdLGc9L14oaHR0cFtzXT86XC9cL3xcLykvLnRlc3QoYS51cmwpP2EudXJsOiIvIitjKGEudXJsKSxoPSEhZS5maW5kKCJ4ZGVsIik7cmV0dXJuIHguUmVxKGcpLnRoZW4oZnVuY3Rpb24oYyl7dmFyIGU9KGMuZG9jX2NvdW50fHwwKSsoaD8wOmMuZG9jX2RlbF9jb3VudHx8MCksZz0oYy5zaXplcz9jLnNpemVzLmFjdGl2ZTpjLmRhdGFfc2l6ZSl8fDA7YS50b3RhbFNpemU9ZyxhLnRvdGFsRG9jcz1lLGEubWF4U2VxPWMudXBkYXRlX3NlcT8rKGMudXBkYXRlX3NlcSsiIikuc3BsaXQoIi0iKVswXTotMTt2YXIgaT1bImRvY19jb3VudCJdO2h8fGkucHVzaCgiZG9jX2RlbF9jb3VudCIpLGIuZmluZCgicW5wIikmJmkucHVzaCgicHJvcHMiLCJjbHVzdGVyIikseC5JbmZvRG9jW2RdPSQuZXh0ZW5kKCEwLHtuYW1lOmQsZmlsdGVyOmYubGVuZ3RoP2Y6bnVsbCxzdGFydF9zZXE6MCxtYXhfc2VxOmEubWF4U2VxLHRzOkRhdGUubm93KCksc2VjdXJpdHk6bnVsbCxyYXdfc2l6ZTpnLGRvY19jb3VudDowLGRvY19kZWxfY291bnQ6MH0sT2JqZWN0LnNlbGVjdChjLGkpKX0pLnRoZW4oZnVuY3Rpb24oKXtpZihiLmZpbmQoImFjbCIpKXt2YXIgYT0kLkRlZmVycmVkKCk7cmV0dXJuIHguUmVxKGcrIi9fc2VjdXJpdHkiKS50aGVuKGZ1bmN0aW9uKGIpe09iamVjdC5pc09iamVjdChiKSYmKHguSW5mb0RvY1tkXS5zZWN1cml0eT1iKSxhLnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oKXthLnJlc29sdmUoKX0pLGEucHJvbWlzZSgpfX0pLmZhaWwoZnVuY3Rpb24oKXtjdy5saWIubm90ZSgnRmFpbGVkIHJlYWRpbmcgPHNwYW4gY2xhc3M9ImZ3NDAwIj57MX08L3NwYW4+IERCLiBEdW1wIGFib3J0ZWQuJy5hc3NpZ24oZCksImVycm9yIil9KX0pKTtmdW5jdGlvbiBjKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9fSxTdHJlYW1Eb2NzOmZ1bmN0aW9uKCl7dmFyIHgsYSxiPXRoaXMsYz1iLmRhdGEsZD17fSxlPXt9LGY9W10sZz1bXSxoPWMubWF4UmVhZFN0cmVhbXMsaT1jLm1heFJlc3RhcnRzfHwzLGo9ITAsaz0hMSxsPUEudGhyb3R0bGUoMjUwKSxtPSJ7MX0vezJ9P3Jldj17M30mYXR0YWNobWVudHM9dHJ1ZSIsbj0iezF9L3syfT9hdHRhY2htZW50cz10cnVlIixvPSJ7MX0vezJ9P29wZW5fcmV2cz17M30mYXR0YWNobWVudHM9dHJ1ZSI7IlRleHRFbmNvZGVyImluIHdpbmRvdz8oeD1uZXcgVGV4dEVuY29kZXIsYT1mdW5jdGlvbihhKXtyZXR1cm4geC5lbmNvZGUoYSl9KTphPWZ1bmN0aW9uKHgpe3JldHVybiBmZmxhdGUuc3RyVG9VOCh4KX07dmFyIHAscT1uZXcgZmZsYXRlLlppcCxyPXN0cmVhbVNhdmVyLmNyZWF0ZVdyaXRlU3RyZWFtKGMubmFtZSsiLnppcCIse3BhdGhuYW1lOiIvX3N0cmVhbS8iK2MubmFtZSsiLnppcCIsc2lnbmFsOnN9KS5nZXRXcml0ZXIoKTtyZXR1cm4gcS5vbmRhdGE9ZnVuY3Rpb24oeCxhLGIpe3g/QygiRmFpbGVkIHppcHBpbmc6ICIrKCh4fHwidW5rbm93biBlcnJvciIpKyIiKS50cnVuY2F0ZSgxMDApKTooYSYmYS5sZW5ndGgmJihyLndyaXRlKGEpLGMuemJ5dGVzKz1hLmxlbmd0aCksYiYmKGs/QygiQWJvcnRlZCIpOkIoKSkpfSxwPWIuUGhvLHQoIl9pbmZvLmpzb24iLGEoSlNPTi5zdHJpbmdpZnkoe3VzZXI6Y3cubWUoKSxkYXRlOihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9cLlxkKy8sIiIpLHBob3RvbjpwKCJWZXJzaW9uIikrIi4iK3AoImJ1aWxkIiksY291Y2g6cChbIkNvdWNoIiwidmVyc2lvbiJdKSxob3N0OmN3LmxpYi5jcmMyKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSksZGJzOk9iamVjdC52YWx1ZXMoYi5JbmZvRG9jKX0sbnVsbCwiICAiKSkpLGMuZGJzLmZvckVhY2goZnVuY3Rpb24oeCl7Yi5EQnNbeC51cmxdPXgsT2JqZWN0LmlzQXJyYXkoeC5kcm9wLmlkcykmJnguZHJvcC5pZHMubGVuZ3RoPyh4LmRyb3AuaWRzLmZvckVhY2goZnVuY3Rpb24oYSl7dSh4LnVybCx7aWQ6YSxkb2M6bnVsbCxyZXZzOltdfSl9KSxiLkRCc1JlYWRDdHItPTEsZy5wdXNoKG51bGwpKTpiLlByZXBhcmVEb2NMaXN0KHgsdSkudGhlbihmdW5jdGlvbihhKXtEKCJEQjogezF9LCBkb2NzOiB7ZG9jc30sIHNlcToge3NlcX0iLmFzc2lnbihhKS5hc3NpZ24oeC51cmwuc3BsaXQoIi8iKS5sYXN0KCkpKSxiLkRCc1JlYWRDdHJ8fGcucHVzaChudWxsKSx5KCl9KS5mYWlsKGZ1bmN0aW9uKCl7QygiRmFpbGVkIHJlYWRpbmcgZG9jIGxpc3QiKX0pfSkse2Fib3J0OmZ1bmN0aW9uKHgpe2s9ITAsQyh4fHwiVGVybWluYXRlZCBieSB1c2VyIil9fTtmdW5jdGlvbiBzKHgpeyJ1c2VyIGFib3J0ZWQiPT14JiZDKCJVc2VyIGFib3J0ZWQiKX1mdW5jdGlvbiB0KHgsYSl7dmFyIGIsYz1hLmJ5dGVMZW5ndGg7Yj1jPDUxMj9uZXcgZmZsYXRlLlppcFBhc3NUaHJvdWdoKHgpOmM8MzI3Njg/bmV3IGZmbGF0ZS5aaXBEZWZsYXRlKHgpOm5ldyBmZmxhdGUuQXN5bmNaaXBEZWZsYXRlKHgpLHEuYWRkKGIpLGIucHVzaChhLCEwKX1mdW5jdGlvbiB1KHgsYSl7dmFyIGI9L14oaHR0cFtzXT86XC9cL3xcLykvLnRlc3QoeCksYz1hLmlkLGQ9YS5yZXY7cmV0dXJuIGEucmV2cy5sZW5ndGgmJmcucHVzaCh7ZGI6eCxpZDpjLG5hbWU6W3coYj94LnNwbGl0KCIvIikuY29tcGFjdCghMCkubGFzdCgpOngpKyIvIiwiX2NvbmZsaWN0cy8iLHcoYywhMCkrIi5qc29uIl0uam9pbigiIiksdXJsOm8uYXNzaWduKGI/eDoiLyIrdih4KSx2KGMpLHYoSlNPTi5zdHJpbmdpZnkoYS5yZXZzKSkpLG9wdHM6e2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSxpc1JldnM6ITB9KSxnLnB1c2goe2RiOngsaWQ6YyxuYW1lOlt3KGI/eC5zcGxpdCgiLyIpLmNvbXBhY3QoITApLmxhc3QoKTp4KSsiLyIsYS5kZWw/Il9kZWxldGVkLyI6IiIsdyhjLGEuZGVsKSsiLmpzb24iXS5qb2luKCIiKSxkb2M6YS5kb2MsdXJsOihkP206bikuYXNzaWduKGI/eDoiLyIrdih4KSx2KGMpLGQpLG9wdHM6e2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fX0pLHkoKSxrfWZ1bmN0aW9uIHYoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX1mdW5jdGlvbiB3KHgsYSl7dmFyIGI9IWEmJi9eX2Rlc2lnblwvLy50ZXN0KHgpO3JldHVybihiPyJfZGVzaWduLyI6IiIpKyhiP3guc3Vic3RyKDgpOngpLnJlcGxhY2UoL1siXC86JTw+XD9cXFx8XS9nLHYpLnJlcGxhY2UoL1wqL2csIiUyQSIpfWZ1bmN0aW9uIHkoKXtpZighaylmb3IodmFyIHg9e307T2JqZWN0LnNpemUoZCk8aCYmZy5sZW5ndGgmJm51bGwhPT14OyludWxsPT09KHg9Zy5zaGlmdCgpKT8wPT1PYmplY3Quc2l6ZShkKT9xLmVuZCgpOmcucHVzaChudWxsKTpkW3gubmFtZV09eih4KX1mdW5jdGlvbiB6KHgpe2lmKGspcmV0dXJuICQuRGVmZXJyZWQoKS5yZWplY3QoKTt2YXIgaD0kLkRlZmVycmVkKCk7cmV0dXJuIG51bGwhPXguZG9jP20uZGVsYXkoMCx4LmRvYyk6ZmV0Y2goeC51cmwseC5vcHRzKS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEub2spcmV0dXJuIHguaXNSZXZzP2EuanNvbigpOmEuYXJyYXlCdWZmZXIoKTs0MDQ9PWEuc3RhdHVzPyhiLkRCc1t4LmRiXS5kb25lRG9jcys9MSxmLnB1c2goeC51cmwpLGZ1bmN0aW9uKCl7aC5yZXNvbHZlKCl9LmRlYm91bmNlKDUwKSgpKTooZVt4LnVybF09KGVbeC51cmxdfHxbXSkucHVzaChbYS5zdGF0dXMsRGF0ZS5ub3coKV0uam9pbigiICIpKSxlW3gudXJsXS5sZW5ndGg8aT9udWxsPT09Zy5sYXN0KCk/KGcucG9wKCksZy5wdXNoKHgsbnVsbCkpOmcucHVzaCh4LG51bGwpOmo/QygiRmF0YWwgZmFpbHVyZSByZWFkaW5nICIreC51cmwuZXNjYXBlSFRNTCgpKyIsIGR1bXAgYWJvcnRlZC4iKTooYi5EQnNbeC5kYl0uZG9uZURvY3MrPTEsZnVuY3Rpb24oKXtoLnJlc29sdmUoKX0uZGVib3VuY2UoNTApKCkpKX0pLnRoZW4obSkuY2F0Y2goZnVuY3Rpb24oKXtEKCJGYWlsZWQgcmVhZGluZyAiK3guaWQpLGgucmVqZWN0KCJGYWlsZWQgcmVhZGluZyAiK3guaWQpfSksaC5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgZFt4Lm5hbWVdLHkoKX0pLGgucHJvbWlzZSgpO2Z1bmN0aW9uIG0oZCl7dmFyIGY9ITA7aWYoZCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKWMuYnl0ZXMrPWQuYnl0ZUxlbmd0aCx0KHgubmFtZSxuZXcgVWludDhBcnJheShkKSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGQpe3ZhciBnPWEoZCk7Yy5ieXRlcys9Zy5ieXRlTGVuZ3RoLHQoeC5uYW1lLGcpfWVsc2UgT2JqZWN0LmlzQXJyYXkoZCkmJihmPSExLHQoeC5uYW1lLGEoIltcbiIrZC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHgub2spfSkuam9pbigiLFxuIikrIlxuXSIpKSk7RCgiRG9uZSAiK3guZGIrIi8iK3gubmFtZSksaC5yZXNvbHZlKCksZiYmKGIuREJzW3guZGJdLmRvbmVEb2NzKz0xKSxkZWxldGUgZVt4LnVybF0sbCgpfX1mdW5jdGlvbiBBKCl7Yi5teS5jaGVjaygiI2J5dGVzIiksJC5teS5yYWRpbygiZGJTdHJlYW1VcGRhdGUiLHt9KX1mdW5jdGlvbiBCKCl7RCgiRG9uZSIpLGMuZG9uZT0hMCxyLmNsb3NlKCksQSgpLGN3LmxpYi5ub3RlKCc8c3BhbiBjbGFzcz0iZnc0MDAiPlpJUCBkdW1wIHdhcyBzdWNjZXNzZnVsbHkgY3JlYXRlZC48L3NwYW4+Jywib2siLDVlMyksZnVuY3Rpb24oKXtiLm15LmNvbW1pdCgpfS5kZWxheSgzZTMpfWZ1bmN0aW9uIEMoeCl7aWYoYy5kb25lKXJldHVybiBiLm15LmNvbW1pdCgpO2s9ITAsY3cubGliLm5vdGUoeCwiZXJyb3IiLDZlMyksci5hYm9ydCgpLHEudGVybWluYXRlKCksYy5lcnJvcj14LGIubXkuY29tbWl0KCl9ZnVuY3Rpb24gRCh4LGEsYyl7Yi5fZGVidWcmJmNvbnNvbGUubG9nKHgsYSxjKX19LFByZXBhcmVEb2NMaXN0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9JC5EZWZlcnJlZCgpLGM9dGhpcyxkPWMuZGF0YSxlPWQubWF4RmVlZENodW5rLGY9eC50b3RhbFNpemUmJngudG90YWxEb2NzP3gudG90YWxTaXplL3gudG90YWxEb2NzfDA6MCxnPSEoZiYmIShmPmUvZC5taW5GZWVkRG9jcykpLGg9KGc/ZC5tYXhGZWVkRG9jczpNYXRoLmNlaWwoZS9mKSkuY2xhbXAoZC5taW5GZWVkRG9jcyxkLm1heEZlZWREb2NzKSxpPWQubWF4UmVzdGFydHN8fDMsaj14LnNpbmNlfHwwLGs9ISEoeC5kcm9wLmZpbHRlcnx8W10pLmZpbmQoInhkZG9jIiksbD0hISh4LmRyb3AuZmlsdGVyfHxbXSkuZmluZCgieGRlbCIpLG09ISEoeC5kcm9wLmZpbHRlcnx8W10pLmZpbmQoInhyZXZzIiksbj1bL14oaHR0cFtzXT86XC9cL3xcLykvLnRlc3QoeC51cmwpP3gudXJsOiIvIitxKHgudXJsKSwiL19jaGFuZ2VzP3NpbmNlPXsxfSIsbT8iIjoiJnN0eWxlPWFsbF9kb2NzIixnPyIiOiImaW5jbHVkZV9kb2NzPXRydWUmYXR0YWNobWVudHM9dHJ1ZSIsIiZsaW1pdD0iK2hdLmpvaW4oIiIpLG89cy5kZWJvdW5jZSgxZTMpLHA9MDtyZXR1cm4gcigpLGIucHJvbWlzZSgpO2Z1bmN0aW9uIHEoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX1mdW5jdGlvbiByKCl7Yy5SZXEobi5hc3NpZ24oaikpLnRoZW4oZnVuY3Rpb24oZCl7aj1kLmxhc3Rfc2VxO3ZhciBlPShkLnJlc3VsdHN8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIXQoYS5zZXEseC5tYXhTZXEpfSksZj0hMTtpZighZS5sZW5ndGgpcmV0dXJuIGMuREJzUmVhZEN0ci09MSxiLnJlc29sdmUoe2RvY3M6cCxzZXE6an0pO2Zvcih2YXIgaD1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hKGwmJnguZGVsZXRlZHx8ayYmL15fZGVzaWduXC8vLnRlc3QoeC5pZCkpfSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LmlkLHJldjp4LmNoYW5nZXNbMF0ucmV2LGRlbDohIXguZGVsZXRlZCxkb2M6Z3x8IXguZG9jP251bGw6SlNPTi5zdHJpbmdpZnkoeC5kb2MpLHJldnM6bT9bXTp4LmNoYW5nZXMuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJldn0pfX0pLGk9MDtpPGgubGVuZ3RoJiYhZjtpKyspZj1hKHgudXJsLGhbaV0pLHArPTE7Zj9iLnJlamVjdCh7ZXJyb3I6ImFib3J0ZWQiLGRvY3M6cCxzZXE6an0pOnIoKX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2NvbnNvbGUubG9nKHgsYSxiKSxvKCl9KX1mdW5jdGlvbiBzKCl7aWYoKGktPTEpPDEpcmV0dXJuIGIucmVqZWN0KCJBdHRlbXB0cyB0byByZWFkIGRvY3MgbGlzdCBmYWlsZWQiKTtyKCl9ZnVuY3Rpb24gdCh4LGEpe2lmKC0xPT1hKXJldHVybiExO3ZhciBiPXgrIi0iO3JldHVybitiLnN1YnN0cigwLGIuaW5kZXhPZigiLSIpKT5hfX0sREJSb3c6e2lkOiJjdy5QaG90b24uRHVtcFppcC5EQlJvdyIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTt4Lmh0bWwoYS5IVE1MKX0sZGF0YTp7dXJsOiIiLHNpbmNlOjAsZHJvcDp7ZmlsdGVyOltdLGZuOiIiLGlkczpbXSxxdWVyeTp7fX0sbW9kZToianNvbiIsdG90YWxTaXplOjAsdG90YWxEb2NzOjAsZG9uZURvY3M6MCxtYXhTZXE6MH0sdWk6eyIjbnVtLXRvdGFsIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKCF4LnRvdGFsRG9jcylyZXR1cm4iIjt2YXIgYj14LmRyb3AuaWRzLmxlbmd0aHx8eC50b3RhbERvY3M7cmV0dXJuIE1hdGguZmxvb3IoeC5kb25lRG9jcy9iKjEwMCkuY2xhbXAoMCwxMDApKyIlIn0sbGlzdGVuOntkYlN0cmVhbVVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSlyZXR1cm4gbnVsbH19fSwiI251bS1iZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXguZHJvcC5pZHMubGVuZ3RofHx4LnRvdGFsRG9jcztjP2IuY3NzKHtoZWlnaHQ6KHguZG9uZURvY3MvYyoyLjUpLmNsYW1wKDAsMi41KSsiZW0ifSk6Yi5jc3Moe2hlaWdodDoiMHB4In0pfSxsaXN0ZW46e2RiU3RyZWFtVXBkYXRlOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybiBudWxsfX19LCIjZGItbmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KC9eaHR0cFtzXT86XC9cLy8udGVzdCh4LnVybCl8fCIvIj09eC51cmxbMF0/eC51cmwuc3BsaXQoIi8iKS5sYXN0KCk6eC51cmwpLnRydW5jYXRlKDM1LCJtaWRkbGUiLCIuLi4iKS5lc2NhcGVIVE1MKCl9fSwiI2RiLXRvdGFscyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj14LmRyb3AuaWRzLmxlbmd0aDtifHx4LnRvdGFsRG9jcztyZXR1cm4gYj8iezF9IGRvY3syfSBvZiB7M30iLmFzc2lnbihiLGI+MT8icyI6IiIseC50b3RhbERvY3MpOiJ7MX0gZG9jcywgezJ9IHJhdyIuYXNzaWduKHgudG90YWxEb2NzLHgudG90YWxTaXplLmJ5dGVzKDIpLnJlcGxhY2UoL0IkLywiYiIpKX19fSxIVE1MOic8ZGl2IGNsYXNzPSJudW0tY29udCBkaWIgdmF0Ij48ZGl2IGlkPSJudW0tYmciIGNsYXNzPSJ3MTAwcCI+PC9kaXY+PGRpdiBpZD0ibnVtLXRvdGFsIiBjbGFzcz0idzEwMHAgdGFjIGZzMTEwIGZ3MzAwIG83MCBsaDIwMCBwdDEiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImRiLWluZm8gZGliIHZhdCI+PGRpdiBpZD0iZGItbmFtZSIgY2xhc3M9IncxMDBwIGZzMTIwIGZ3NDAwIG53IG9oIGVsbCI+PC9kaXY+PGRpdiBpZD0iZGItdG90YWxzIiBjbGFzcz0idzEwMHAgZnM5MCBvODAgbncgb2ggZWxsIj48L2Rpdj48L2Rpdj4nLHN0eWxlOnsiIC5udW0tY29udCI6eyIiOiJ3aWR0aDozZW07IGhlaWdodDoyLjVlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyLXJhZGl1czogMnB4OyBvdmVyZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNmMmY1Zjg7IiwiICNudW0tYmciOiJwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjA7IGxlZnQ6IDA7IGJhY2tncm91bmQtY29sb3I6I2MzZWU5NDsgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7In0sIiAuZGItaW5mbyI6eyIiOiJ3aWR0aDogY2FsYygxMDAlIC0gM2VtKTsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZy1sZWZ0OiAxZW07In19fX0sVW5kdW1wOntpZDoiY3cuUGhvdG9uLlVuZHVtcCIscGFyYW1zOntyZXN0eWxlOjIwMH0sRGF0YVVybHM6W10scmVxdWlyZTpbeyJ3aW5kb3cuV3JpdGFibGVTdHJlYW0iOiJsaWIvd2Vic3RyZWFtcy5qcyJ9LHsid2luZG93LmZmbGF0ZSI6ImxpYi9mZmxhdGUuanMifV0sZGF0YTp7ZGJzOltdLGRvY3NUb1NhdmU6W10sb3B0czpbXSxieXRlczowLHpieXRlczowLGRvbmU6ITEsc3RhdHVzOiIiLG1heEJ1ZmZlcjoyZTgsbWF4V3JpdGVTdHJlYW1zOjYsbWF4UmVzdGFydHM6M30sVW56aXBEQm1hcDpudWxsLFVuemlwU3RyZWFtOnt9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTt4Lmh0bWwoYS5IVE1MKSx4LnRoZW4oZnVuY3Rpb24oKXtiLnN0YXR1cz0ic3RyZWFtaW5nIixhLlByZXBhcmVEQnMoKS50aGVuKGZ1bmN0aW9uKCl7YS5TYXZlcj1hLlNhdmVEb2NzKCl9KX0uZGVib3VuY2UoNTApKSxhLlN0YW1wPURhdGUubm93KCl9LHVpOnsiI2RiLXJvd3MiOntiaW5kOiJkYnMiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5uaWNlU2Nyb2xsKHgpfSxsaXN0Oic8ZGl2IGNsYXNzPSJtdDUgcHQ1IHBiNSBiYmQiPjwvZGl2PicsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuREJSb3d9LGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LnVybH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gudG90YWxEb2NzKyIiLHgudG90YWxTaXplKyIiXSl9fSwiI2J5dGVzIjpmdW5jdGlvbih4LGEpe3JldHVybiB4LmJ5dGVzPyc8c3BhbiBjbGFzcz0iZmktdXBsb2FkLWNsb3VkIG81MCB4Z3JheSBmczgwIj48L3NwYW4+ICcreC5ieXRlcy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKToiIn0sIiNzdHJlYW0tc3BlZWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9KERhdGUubm93KCktdGhpcy5TdGFtcCsxKS8xZTMsYz0oOCp4LmJ5dGVzL2J8MCkuY2xhbXAoMCwxZTkpO3JldHVybiBjP2MuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiaXQvcyIpOiIifSx3YXRjaDpbIiNieXRlcyJdfSwiI2J0bi1zdG9wIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJih0aGlzLkFib3J0KCksdGhpcy5teS5jb21taXQoKSl9fX0sU2F2ZXI6bnVsbCxBYm9ydDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGE7dHJ5e3guU2F2ZXIuYWJvcnQoKX1jYXRjaCh4KXt9dHJ5e3guVW56aXBTdHJlYW0uYWJvcnQoKX1jYXRjaCh4KXt9JC5teS5yYWRpbygiZGJsaXN0IixhLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pKSxhLnN0YXR1cz0iYWJvcnRlZCJ9LEhUTUw6JzxkaXYgY2xhc3M9ImZzMTMwIGZ3NDAwIGNtIj48c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gUmVzdG9yZSBmcm9tIFpJUCBkdW1wPC9kaXY+PGRpdiBpZD0iZGItcm93cyIgY2xhc3M9Im10MTAgYnRkIG1iMTAiIHN0eWxlPSJtYXgtaGVpZ2h0OjQ1MHB4OyI+PC9kaXY+PGRpdj48ZGl2IGlkPSJzdHJlYW0tc3BlZWQiIGNsYXNzPSJ3MjVwIG81MCBmciB0YXIgbXQ1Ij48L2Rpdj48ZGl2IGlkPSJieXRlcyIgY2xhc3M9ImZyIHcyNXAgbXQ1IG83MCI+PC9kaXY+PGJ1dHRvbiBpZD0iYnRuLXN0b3AiIGNsYXNzPSJtcjUiPkFib3J0IHJlc3RvcmU8L2J1dHRvbj48L2Rpdj4nLHN0eWxlOnsiICI6ZnVuY3Rpb24oeCl7cmV0dXJuInN0cmVhbWluZyI9PXRoaXMuZGF0YS5zdGF0dXMmJngudHJpZ2dlcigibGF5b3V0IiksImZvbnQtc2l6ZToxNXB4OyBsaW5lLWhlaWdodDoxLjRlbTsifX0sUHJlcGFyZURCczpmdW5jdGlvbigpe3ZhciB4LGE9dGhpcyxiPWEuZGF0YSxjPShhLlVuemlwREJtYXAsYS5QaG8oIkFsbCIpKSxkPWEuUGhvKCJDb3VjaCIpLGU9T2JqZWN0LmlzT2JqZWN0LGY9W107aWYoYi5vcHRzLmZpbmQoImNyZWF0ZSIpKXt2YXIgZz1iLmRicy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtpZihjW2EubmFtZV0pcmV0dXJuIHg7Zi5wdXNoKGEubmFtZSk7dmFyIGc9JC5leHRlbmQoe25hbWU6YS5uYW1lLHNlY3VyaXR5OmIub3B0cy5maW5kKCJhY2wiKSYmZShhLnNlY3VyaXR5KT9hLnNlY3VyaXR5Om51bGwscGFydGl0aW9uZWQ6ZShhLnByb3BzKSYmISFhLnByb3BzLnBhcnRpdGlvbmVkfSxkLnZlcj4iMDAyLiImJmUoYS5jbHVzdGVyKT97cTorYS5jbHVzdGVyLnE+MD8rYS5jbHVzdGVyLnE6K2QucXx8MixuOigrYS5jbHVzdGVyLm58fDEpLmNsYW1wKDEsZC5ufHwxKX06e30pO3JldHVybiB4LnB1c2goZykseH0sW10pO3g9Zy5sZW5ndGg/YS5QaG8oIkNyZWF0ZURCcyIpKGcsITEpOiQuRGVmZXJyZWQoKS5yZXNvbHZlKFtdKX1lbHNlIHg9JC5EZWZlcnJlZCgpLnJlc29sdmUoKTtyZXR1cm4geC50aGVuKGZ1bmN0aW9uKCl7aWYoIWIub3B0cy5maW5kKCJhY2wiKSlyZXR1cm4hMDt2YXIgeD1jdy5saWIuYTJvKGYpLGM9Yi5kYnMucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIHhbYi5uYW1lXXx8bnVsbD09Yi5zZWN1cml0eT9hOihhLnB1c2goe2NyZWF0ZTohMSxuYW1lOmIubmFtZSxzZWN1cml0eTplKGIuc2VjdXJpdHkpP2Iuc2VjdXJpdHk6bnVsbH0pLGEpfSxbXSk7cmV0dXJuIWMubGVuZ3RofHxhLlBobygiQ3JlYXRlREJzIikoYywhMSl9KS5mYWlsKGZ1bmN0aW9uKCl7YS5BYm9ydCgpLGEubXkuY29tbWl0KCl9KX0sU2F2ZURvY3M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9e30sYz0wLGQ9YS5kb2NzVG9TYXZlLGU9YS5tYXhCdWZmZXIsZj1hLm1heFdyaXRlU3RyZWFtcyxnPWEubWF4UmVzdGFydHN8fDMsaD0hMSxpPSExLGo9eC5VbnppcERCbWFwLGs9MSxsPTAsbT0wLG49MCxvPTUwMCxwPTFlMy9vKjUscT1PYmplY3Quc2l6ZSxyPUEuZGVib3VuY2Uobykscz1FLnRocm90dGxlKDI1MCksdD0hIWEub3B0cy5maW5kKCJ4ZGVsIiksdT0hIWEub3B0cy5maW5kKCJ4cmV2cyIpO2QuZm9yRWFjaChmdW5jdGlvbih4KXtudWxsIT09eCYmKGsrPTEsYys9eC5zaXplKX0pO3ZhciB2PXguVW56aXBTdHJlYW07cmV0dXJuIHYubm90aWZ5KHcpLHYuaXNEb25lKCl8fHYuY29udGludWUoKSx5KCkscigpLEYuZGVsYXkoMWUzKSx7YWJvcnQ6ZnVuY3Rpb24oKXtkLmZvckVhY2goZnVuY3Rpb24oeCl7bnVsbCE9eCYmeC5yZXEmJih4LnJlcS5kYXRhPXZvaWQgMCl9KSxkLmxlbmd0aD0wLGk9ITB9fTtmdW5jdGlvbiB3KHgsYSl7ImRvYyI9PXg/KGsrPTEsISgoYys9YSk+ZXx8ZC5sZW5ndGg+MTAyNCl8fHYuaXNQYXVzZWQoKXx8di5pc0FsbFJlYWQoKXx8di5wYXVzZSgpLHkuZGVsYXkoMikpOiJlbmRlZCI9PXgmJnkuZGVsYXkoNTApfWZ1bmN0aW9uIHkoKXtpZighaSYmIWgpZm9yKHZhciB4LGE9e307cShiKTxmJiZkLmxlbmd0aCYmbnVsbCE9PWE7KW51bGw9PShhPWQuc2hpZnQoKSk/MD09cShiKT9rLT0xOmQucHVzaChudWxsKTohalthLnNyY2RiXXx8dCYmL1wvX2RlbGV0ZWRcLy8udGVzdChhLm5hbWUpfHx1JiYvXC9fY29uZmxpY3RzXC8vLnRlc3QoYS5uYW1lKT8oay09MSxjLT1hLnNpemUsYS5yZXEuZGF0YT12b2lkIDAsbSs9MSk6KHg9eihhKSkmJihiW2EubmFtZV09eCl9ZnVuY3Rpb24geihlKXtpZihpKXJldHVybiAkLkRlZmVycmVkKCkucmVqZWN0KCk7dmFyIGYsaD1qW2Uuc3JjZGJdLG09YS5kYnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5zcmM9PWUuc3JjZGJ9KTtpZighbSlyZXR1cm4geS5kZWJvdW5jZSgxMCkoKSx2b2lkIDA7e3JldHVybiBlLnJlcS51cmw9Ii97MX0vX2J1bGtfZG9jcyIuYXNzaWduKEgoaCkpLGUuZXJyb3JzLmxlbmd0aD8oZj0kLkRlZmVycmVkKCksZnVuY3Rpb24oKXt4LlJlcShlLnJlcSkudGhlbihmdW5jdGlvbih4KXtmLnJlc29sdmUoeCl9LGZ1bmN0aW9uKHgsYSxiKXtmLnJlamVjdCh4LGEsYil9KX0uZGVib3VuY2UoMWUzKlsxLDMsMTAsMzBdW2UuZXJyb3JzLmxlbmd0aC5jbGFtcCgwLDMpXSkoKSk6Zj14LlJlcShlLnJlcSksZi50aGVuKGZ1bmN0aW9uKHgpe3gubGVuZ3RoJiZ4WzBdLmVycm9yP28oeFswXS5lcnJvcisiICIreFswXS5yZWFzb24pOihrLT0xLG0uZG9uZURvY3MrPTEsYy09ZS5zaXplLGUuc2F2ZWQ9ITAsZS5yZXEuZGF0YT12b2lkIDAsbCs9MSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtvKHgrIjogIithKyIgIitiKX0pLmFsd2F5cyhmdW5jdGlvbigpe249MCxkZWxldGUgYltlLm5hbWVdLGEuYnl0ZXMrPWUuc2l6ZSxzKCksRCgpLHkuZGVsYXkoMSl9KTtmdW5jdGlvbiBvKGEpe2lmKGUuZXJyb3JzLnB1c2goYSksZS5lcnJvcnMubGVuZ3RoPGcpbnVsbD09PWQubGFzdCgpPyhkLnBvcCgpLGQucHVzaChlKSxkLnB1c2gobnVsbCkpOmQucHVzaChlKTtlbHNle3ZhciBiPW0ubmFtZSsiLyIrZGVjb2RlVVJJQ29tcG9uZW50KGUubmFtZS5mcm9tKGUuc3JjZGIubGVuZ3RoKzEpLnJlcGxhY2UoL1wuanNvbiQvLCIiKSk7QygiRmFpbGVkIHNhdmluZyBkb2MgezF9LiAiLmFzc2lnbihiKSkseC5teS5maW5kKCIjYnRuLXN0b3AiKS50cmlnZ2VyKCJjbGljay5teSIpfX19fWZ1bmN0aW9uIEEoKXtpfHxofHwoaz4wPyh5KCkscigpLGQubGVuZ3RofHwxIT1rfHxxKGIpfHxHKCl8fChuKz0xKT49cCYmKGQucHVzaChudWxsKSxjb25zb2xlLmxvZygiUHVtcCBzdGFsbGVkLCBlbmZvcmNlIHB1bXAgYWJvcnQiKSkpOkIoKSl9ZnVuY3Rpb24gQigpe2g9ITAscygpLHYuaXNBbGxSZWFkKCk/JC5teS5yYWRpbygiZGJsaXN0IixhLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZX0pKTooeC5TYXZlci5hYm9ydD1mdW5jdGlvbigpe30seC5BYm9ydCgpKSxhLnN0YXR1cz0iZG9uZSIseC5teS5jb21taXQoKSxjb25zb2xlLmxvZygiRG9uZSByZXN0b3JlLCB7MX0gZG9jcyBzYXZlZC4iLmFzc2lnbihsKSl9ZnVuY3Rpb24gQyh4KXtjdy5saWIubm90ZSgiezF9UmVzdG9yZSBhYm9ydGVkLCB7Mn0gb2YgezN9IGRvY3Mgc2F2ZWQuIi5hc3NpZ24oeHx8IiIsYS5kYnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmRvbmVEb2NzfSkuc3VtKCksYS5kYnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnRvdGFsRG9jc30pLnN1bSgpKSwiZXJyb3IiLDhlMyl9ZnVuY3Rpb24gRCgpeyF2LmlzRG9uZSgpJiZ2LmlzUGF1c2VkKCkmJmM8ZS8yJiZkLmxlbmd0aDw1MTImJnYuY29udGludWUoKSxyKCl9ZnVuY3Rpb24gRSgpe3gubXkuY2hlY2soIiNieXRlcyIpLCQubXkucmFkaW8oInVuZHVtcFdyaXRlVXBkYXRlIix7fSl9ZnVuY3Rpb24gRigpe2l8fGh8fCgkLm15LnJhZGlvKCJkYmxpc3QiLE9iamVjdC52YWx1ZXMoaikpLEYuZGVsYXkoNWUzKSl9ZnVuY3Rpb24gRygpe3ZhciB4PXYuZ2V0U3RhdHMoKSxhPXguaXNaaXBSZWFkLGI9eC5maWxlczt4LmRyb3A7cmV0dXJuIWF8fGI+bCttfWZ1bmN0aW9uIEgoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX19LERCUm93OntpZDoiY3cuUGhvdG9uLlVuZHVtcC5EQlJvdyIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTt4Lmh0bWwoYS5IVE1MKX0sZGF0YTp7bmFtZToiIix0YXJnZXQ6IiIsdG90YWxTaXplOjAsdG90YWxEb2NzOjAsZG9uZURvY3M6MH0sdWk6eyIjbnVtLXRvdGFsIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPU9iamVjdC5pc0FycmF5KHguZmlsdGVyKT94LmZpbHRlci5sZW5ndGg6eC50b3RhbERvY3M7cmV0dXJuIGI/TWF0aC5mbG9vcih4LmRvbmVEb2NzL2IqMTAwKS5jbGFtcCgwLDEwMCkrIiUiOiIifSxsaXN0ZW46e3VuZHVtcFdyaXRlVXBkYXRlOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybiBudWxsfX19LCIjbnVtLWJnIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9T2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpP3guZmlsdGVyLmxlbmd0aDp4LnRvdGFsRG9jcztjP2IuY3NzKHtoZWlnaHQ6KHguZG9uZURvY3MvYyoyLjUpLmNsYW1wKDAsMi41KSsiZW0ifSk6Yi5jc3Moe2hlaWdodDoiMHB4In0pfSxsaXN0ZW46e3VuZHVtcFdyaXRlVXBkYXRlOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybiBudWxsfX19LCIjZGItbmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5uYW1lLnRydW5jYXRlKDQwLCJtaWRkbGUiLCIuLi4iKS5lc2NhcGVIVE1MKCl9fSwiI2RiLXRvdGFscyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj1PYmplY3QuaXNBcnJheSh4LmZpbHRlcik/eC5maWx0ZXI6W10sYz1iLmxlbmd0aD9iLmxlbmd0aDp4LnRvdGFsRG9jcztyZXR1cm4gYi5sZW5ndGg/InsxfSBkb2N7Mn0iLmFzc2lnbihiLmxlbmd0aCxiLmxlbmd0aD4xPyJzIjoiIik6InsxfSBkb2N7Mn0sIHszfSByYXciLmFzc2lnbihjLGM+MT8icyI6IiIseC50b3RhbFNpemUuYnl0ZXMoMikucmVwbGFjZSgvQiQvLCJiIikpfX19LEhUTUw6JzxkaXYgY2xhc3M9ImRiLWluZm8gZGliIHZhdCI+PGRpdiBpZD0iZGItbmFtZSIgY2xhc3M9IncxMDBwIGZzMTIwIGZ3NDAwIG53IG9oIGVsbCI+PC9kaXY+PGRpdiBpZD0iZGItdG90YWxzIiBjbGFzcz0idzEwMHAgZnM5MCBvODAgbncgb2ggZWxsIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJudW0tY29udCBkaWIgdmF0Ij48ZGl2IGlkPSJudW0tYmciIGNsYXNzPSJ3MTAwcCI+PC9kaXY+PGRpdiBpZD0ibnVtLXRvdGFsIiBjbGFzcz0idzEwMHAgdGFjIGZzMTEwIGZ3MzAwIG83MCBsaDIwMCBwdDEiPjwvZGl2PjwvZGl2Picsc3R5bGU6eyIgLm51bS1jb250Ijp7IiI6IndpZHRoOjNlbTsgaGVpZ2h0OjIuNWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXItcmFkaXVzOiAycHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQtY29sb3I6I2YyZjVmODsiLCIgI251bS1iZyI6InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MDsgbGVmdDogMDsgYmFja2dyb3VuZC1jb2xvcjojOTNlZWRlOyB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yczsifSwiIC5kYi1pbmZvIjp7IiI6IndpZHRoOiBjYWxjKDEwMCUgLSAzZW0pOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nLWxlZnQ6IHJpZ2h0ZW07In19fX0sc3RhbXA6MTY0NzMxNTEyNjczNixwYXJhbXM6e3N0cmljdDohMH19LCJjdy5TeXMuSlNPTiI6e2lkOiJjdy5TeXMuSlNPTiIsYnVpbGQ6NDAsVmVyc2lvbjoiMi45IixkYXRhOntkb2M6e30sbWF4RGVwdGg6MTUwLGxhYmVsV2lkdGg6MTMwLHRyZWU6e30sY21kOiIiLHRpdGxlOiJVbnRpdGxlZCBKU09OIixyYXc6IiIsdmlld3N0YXRlOnt9LHNlYXJjaDoiIixmb3VuZDp7fX0sUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHg/dGhpc1t4XTp0aGlzfSxNUm9vdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm15LnJvb3QoKX0scGFyYW1zOntyZXN0eWxlOjEwMCxkZWxheTowLHN0cmljdDohMH0sTGliOntyZWxpc3Q6ZnVuY3Rpb24oeCxhKXthLkxpc3Q9YS5NYWtlTGlzdChhLmRhdGEpLHguZmluZCgiPi5pdmFsdWU+LmlsaXN0IikudHJpZ2dlcigicmVjYWxjIikseC5maW5kKCI+LmluYXY+LmlkZXNjIikudHJpZ2dlcigiY2hlY2siKX0sa2ljazpmdW5jdGlvbih4LGEpe2Zvcih2YXIgYiBpbiB4KWRlbGV0ZSB4W2JdO09iamVjdC5tZXJnZSh4LGEpLE9iamVjdC5pc0FycmF5KHgpJiYoeC5sZW5ndGg9YS5sZW5ndGgpfSxrZXlCaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYyxkPXRoaXMubGFiZWxXaWR0aC8zfDA7cmV0dXJuIDQmeC5zdGF0ZSYmdGhpcy5SVCgiU2VhcmNoUmUiKT9jPXgua2V5LnJlcGxhY2UodGhpcy5SVCgiU2VhcmNoUmUiKSwi77+xJDHvv7AiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgi77+xIiwnPHNwYW4gY2xhc3M9Imp2YWwtZm91bmQta2V5Ij4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+Iik6KHgua2V5Lmxlbmd0aD5kJiZiLmF0dHIoInRpdGxlIix4LmtleS5lc2NhcGVIVE1MKCkpLGM9L14ofFxzKykkLy50ZXN0KHgua2V5KT8nIicreC5rZXkuZXNjYXBlSFRNTCgpKyciJzp4LmtleS50cnVuY2F0ZShkLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSksY30sY29tbW9uSW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3guYWRkQ2xhc3MoImVkLW5vZGUtIithLlBhdGhTaWcoYi5wYXRoLGIua2V5KSkseC5odG1sKGEuSFRNTCl9fSxNZW1TdGF0ZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLmRhdGE7YS52aWV3c3RhdGV8fChhLnZpZXdzdGF0ZT17fSk7dmFyIGI9dGhpcy5QYXRoU2lnKHgucGF0aCx4LmtleSk7YS52aWV3c3RhdGVbYl0hPXguc3RhdGUmJihhLnZpZXdzdGF0ZVtiXT14LnN0YXRlLGEuX2lkJiZ0aGlzLk1lbVN0YXRlU2F2ZSgpKX0sTWVtU3RhdGVTYXZlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhO2lmKHguX2lkJiZPYmplY3Quc2l6ZSh4LnZpZXdzdGF0ZSkpe3ZhciBhPU9iamVjdC5rZXlzKHgudmlld3N0YXRlKS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4gMj09eC52aWV3c3RhdGVbYl0mJmEucHVzaChiKSxhfSxbXSk7dGhpcy5Mcygidmlld3N0YXRlLiIrY3cubGliLnNkYm0oKHguZGJuYW1lfHwiIikrIi8iK3guX2lkKSx7c3RhbXA6RGF0ZS5ub3coKSxzdGF0ZTphfSl9fSxNZW1TdGF0ZVJlc3RvcmU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLmRhdGE7aWYoeC5faWQpe3ZhciBhPXRoaXMuTHMoInZpZXdzdGF0ZS4iK2N3LmxpYi5zZGJtKCh4LmRibmFtZXx8IiIpKyIvIit4Ll9pZCkpO2lmKCFPYmplY3QuaXNPYmplY3QoYSkpcmV0dXJuO3gudmlld3N0YXRlPWEuc3RhdGUucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09Mix4fSx7fSl9fSxQYXRoU2lnOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LGFdLmNvbXBhY3QoKS5mbGF0KCkuam9pbigi4p2AIikpfSxSZWpvaW46ZnVuY3Rpb24oeCxhKXtmb3IodmFyIGIsYz10aGlzLkluZGV4LGQ9MDtkPGEubGVuZ3RoO2QrKyliPWFbZF0sL14ob2J8YXIpLy50ZXN0KGIudHlwZSl8fCh4LnZhbHVlW2Iua2V5XT1iLnZhbHVlKSxjLmRpcnR5PSEwfSxOb2RlVXBkYXRlZDpmdW5jdGlvbih4LGEsYil7fSxFZGl0b3JJbnZva2VkOmZ1bmN0aW9uKHgsYSl7fSxIZWxwOmZ1bmN0aW9uKHgpe3JldHVybnt0aXA6IiIsdXJsOiIifX0sU2VhcmNoUmU6ITEsaW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1hLmRhdGEsZD0oRGF0ZS5ub3coKSxPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuL15cJFthLXpdLy50ZXN0KHgpP3guZnJvbSgxKToiIn0pLmNvbXBhY3QoITApKSxlPU9iamVjdC5pc0FycmF5LGY9T2JqZWN0LmlzT2JqZWN0O2IuTHM9Yi5McygiIiksT2JqZWN0LmlzRnVuY3Rpb24oYi5EYikmJihiLkRiPWIuRGIoeCkpLHguaHRtbChiLkhUTUwuTWFpbiksYi5NZW1TdGF0ZVNhdmU9Yi5NZW1TdGF0ZVNhdmUuZGVib3VuY2UoNzAwKTt2YXIgZz0iUlQgUm9vdCBJbmxpbmVDTSBNYWtlTGlzdCBOb2RlVXBkYXRlZCBIZWxwIFBhdGhTaWciLnNwbGl0KCIgIik7aWYoZC5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWJbIiQiK3hdO2EubGFiZWxXaWR0aD1jLmxhYmVsV2lkdGgsZy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2FbeF09Ylt4XX0pLCJtdWx0aSI9PXg/YS5IVE1MPWIuSFRNTC5JdGVtQ29tcGxleDooYS5IVE1MfHwoYS5IVE1MPWIuSFRNTC5JdGVtU2ltcGxlKSxhLmluaXR8fChhLmluaXQ9Yi5MaWIuY29tbW9uSW5pdCksYS51aVsiLmlrZXkiXS5iaW5kfHwoYS51aVsiLmlrZXkiXS5iaW5kPWIuTGliLmtleUJpbmQpKSxhLnBhcmFtc3x8KGEucGFyYW1zPXt9KSxhLnBhcmFtcy5zdHJpY3Q9ITB9KSwkLmV4dGVuZChiLkRvYyx7c3RhdGU6MixsZXZlbDowLHBhdGg6W10sdHlwZToib2JqZWN0IixrZXk6IlJvb3QiLHZhbHVlOmEuZGF0YS5kb2N9KSxjLl9pZD1jLl9pZHx8Yy5kb2MuX2lkfHwiIixudWxsPT09Yy5kb2MuX3JldiYmZGVsZXRlIGMuZG9jLl9yZXYsWyJhZGQiLCJ0YWtlb3V0Il0uZm9yRWFjaChmdW5jdGlvbihhKXt4Lm9uKCJjbGljay5teSIsIi5idG4tIithLGIuRXZlbnRbYV0uZmlsbCh2b2lkIDAsdm9pZCAwLGIsYi5NUm9vdCgpKSl9KSx4Lm9uKCJjbGljay5teSIsIi5pZGVzYyIsZnVuY3Rpb24oeCl7eC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgYT0kKHRoaXMpLm15KCkucm9vdCxiPWEubXkoImRhdGEiKS5tYW5pZmVzdDtyZXR1cm4vXlwkKG11bHRpfGZpbGVzKS8udGVzdChifHwiJG11bHRpIikmJmEuZmluZCgiPi5pYWN0Pi5idG4tanNvbiIpLnRyaWdnZXIoImNsaWNrIiksITF9KSx4Lm9uKCJjbGljay5teSIsIi5pa2V5IixmdW5jdGlvbih4KXt2YXIgYT0kKHguY3VycmVudFRhcmdldCksYj1hLm15KCkucm9vdCxjPWEubXkoKS5kYXRhO2UoYy52YWx1ZSl8fGYoYy52YWx1ZSk/MTYmYy5zdGF0ZSYmYi50cmlnZ2VyKCJlZGl0b3JjYW5jZWwubXkiKTpiLnRyaWdnZXIoImVkaXRvcmNhbmNlbC5teSIpfSkseC5vbigiY2xpY2subXkiLCIjZG9jPi5pYWN0Pi5idG4tZGVsIixmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpLHgudHJpZ2dlcigiY2FuY2VsIil9KSxiLm9uSW5pdC5sZW5ndGgmJngudGhlbihmdW5jdGlvbigpe2Iub25Jbml0LmZvckVhY2goZnVuY3Rpb24oYyl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGMpdHJ5e2MuY2FsbChiLHgsYSl9Y2F0Y2goeCl7fX0pfSksYi5NZW1TdGF0ZVJlc3RvcmUmJmIuTWVtU3RhdGVSZXN0b3JlKCksImNyZWF0ZSIhPWMuY21kJiZiLmRiJiZiLmFwcCYmYi5hcHAubG9jYWwpcmV0dXJuIGN3LmxpYi5zY3JvbGxZJiZjdy5saWIuc2Nyb2xsWSh4KSxiLmRiLmdldChjLmRvYy5faWQse2F0dGFjaG1lbnRzOiEwLHJldnNfaW5mbzohMCxjb25mbGljdHM6ITB9KS50aGVuKGZ1bmN0aW9uKHgpeyQuZXh0ZW5kKGMuZG9jLE9iamVjdC5zZWxlY3QoeCxbIl9hdHRhY2htZW50cyJdKSkseC5fY29uZmxpY3RzJiZ4Ll9jb25mbGljdHMubGVuZ3RoJiYoYy5kb2MuX2NvbmZsaWN0cz14Ll9jb25mbGljdHMuc2xpY2UoMCkpLGMuZG9jLl9yZXZzX2luZm89eC5fcmV2c19pbmZvLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4ibWlzc2luZyIhPXguc3RhdHVzfSl9KX0sb25Jbml0OltdLGRpZTpmdW5jdGlvbigpe3ZhciB4LGE9dGhpcy5CbG9icztmb3IoeCBpbiBhKVVSTC5yZXZva2VPYmplY3RVUkwoYVt4XSl9LEJsb2JzOnt9LERvYzp7fSxJbmRleDp7ZGlydHk6ITAsaWR4OltdfSx1aTp7IiNidG4tc2F2ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7bnVsbCE9YSYmYy5kYi5zYXZlKHguZG9jKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBkPXtkb2M6YX07Yy5MaWIua2ljayh4LmRvYyxhKTt2YXIgZT1jLkxzKCJ2aWV3c3RhdGUuIithLl9pZCk7ZSYmKGUuc3RhbXA+ZC5zdGFtcHx8IU9iamVjdC5zaXplKHgudmlld3N0YXRlKSkmJih4LnZpZXdzdGF0ZT1lLnN0YXRlKSx4Ll9pZD1hLl9pZHx8IiIsYS5fcmV2JiYoeC5fcmV2PWEuX3JldiksJC5leHRlbmQoYy5Eb2Mse3N0YXRlOjIsbGV2ZWw6MCxwYXRoOltdLHR5cGU6Im9iamVjdCIsa2V5OiJSb290Iix2YWx1ZTp4LmRvY30pLGIubXkoImZpbmQiLCIjZG9jIC5pa2V5dHJlZTplcSgwKSIpLnRyaWdnZXIoImNsaWNrIil9LGZ1bmN0aW9uKHgsYSl7Y3cubGliLm5vdGUoIlNhdmUgZmFpbGVkLCBzZWUgY29uc29sZSIsImVycm9yIiksY29uc29sZS5sb2coYSx4KX0pfX0sIiNkb2N0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguX2lkPXguZG9jLl9pZHx8eC5faWQseC5fcmV2PXguZG9jLl9yZXYseC50aXRsZT0oeC5kb2MuX2RifHwodGhpcy5kYnx8e25hbWU6Ik5vREIifSkubmFtZSkrIuKAiS/igIkiKyh4LmRvYy5faWR8fCIiKSx4LnRpdGxlfSx3YXRjaDpbIiNkb2MiXSxkZWxheTozMH0sIiNqc29uLXNlYXJjaCI6e2RlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zZWFyY2g7dmFyIGI9dGhpcyxjPXguc2VhcmNoO3JldHVybiB4LnNlYXJjaD1hLmxlbmd0aDwzPyIiOmEseC5zZWFyY2g/KGIuU2VhcmNoUmU9bmV3IFJlZ0V4cCgiKCIrUmVnRXhwLmVzY2FwZShhLmNvbXBhY3QoKSkrIikiLCJpIiksYi5TZWFyY2goKSxiLm15LnRyaWdnZXIoIiNkb2MgLmlrZXk6ZXEoMCkiLCJjbGljay5teSIpLGEpOihiLlNlYXJjaFJlPSExLHguZm91bmQ9e30sYyYmYi5teS50cmlnZ2VyKCIjZG9jIC5pa2V5OmVxKDApIiwiY2xpY2subXkiKSxhKX0sY3NzOnsibXktc2VhcmNoIjovXi57Myx9JC99LGV2ZW50czoiaW5wdXQubXkgY2hlY2subXkifSwiI2RvYyI6e2RlbGF5OjIwLGJpbmQ6InRoaXMuRG9jIixjaGVjazohMX19LGoyaDpmdW5jdGlvbih4LGEsYixjLGQpe3ZhciBlPWJ8fFtdLGY9Y3cubGliLmEybyhlKSxnPSEhZCxoPVtdO3JldHVybiBsKGooeCxhLDApKSxoO2Z1bmN0aW9uIGkoeCxhLGIpe3ZhciBkLGYsaCxpLGs9e2tleTpudWxsLHZhbDpudWxsLGVtcHR5OiExLHNpemU6MixsZWZ0OiJ7IixyaWdodDoifSIsdHJpbTowLHR5cGU6Im9iamVjdCIscm93czpbXX0sbD0wLG09e30sbj1PYmplY3Qua2V5cyh4KTtpZighbi5sZW5ndGgpcmV0dXJuIGsuZW1wdHk9ITAsay5zaXplPTIsay52YWw9IiIsaztpZihiPj1jfHxuLmxlbmd0aD41MClyZXR1cm4gay50cmltPW4ubGVuZ3RoLGsuc2l6ZT0yLGs7dmFyIG89KDEuNSphL24ubGVuZ3RofDApLmNsYW1wKDEwLC45KmF8MCkscD0wO209e307Zm9yKGQ9MDtkPGUubGVuZ3RoJiZsPGEtby8zO2QrKyludWxsIT14W2g9ZVtkXV0mJihtW2hdPSEwLGk9aC50cnVuY2F0ZSgoby8oZz8xOjIpKS5jbGFtcCgxMiwxMDApLCJyaWdodCIsIuKApiIpLCEvXHMvLnRlc3QoaSkmJml8fChpPSciJytpKyciJyksKGY9aih4W2hdLG8sYisxKSkua2V5PWksbCs9aS5sZW5ndGgrKGc/MDpmLnNpemUpLHArPTEsay5yb3dzLnB1c2goZikpO2ZvcihkPTA7ZDxuLmxlbmd0aCYmbDxhLW8vMztkKyspbVtoPW5bZF1dfHwoaT1oLnRydW5jYXRlKChvLyhnPzE6MikpLmNsYW1wKDEyLDEwMCksInJpZ2h0Iiwi4oCmIiksIS9ccy8udGVzdChpKSYmaXx8KGk9JyInK2krJyInKSwoZj1qKHhbaF0sbyxiKzEpKS5rZXk9aSxsKz1pLmxlbmd0aCsoZz8wOmYuc2l6ZSkscCs9MSxrLnJvd3MucHVzaChmKSk7cmV0dXJuIGsudHJpbT1uLmxlbmd0aC1wLGsuc2l6ZT1sLGt9ZnVuY3Rpb24gaih4LGEsYil7dmFyIGQsZSxmPXtrZXk6bnVsbCx2YWw6bnVsbCxlbXB0eTohMSxzaXplOjAsbGVmdDoiIixyaWdodDoiIix0cmltOjAsdHlwZToiIixyb3dzOltdfSxnPTAsaD0wLGs9MCxsPXR5cGVvZiB4O2lmKG51bGw9PT14fHwib2JqZWN0IiE9bClyZXR1cm4idW5kZWZpbmVkIj09bD8oZi50eXBlPSJ1bmRlZmluZWQiLGU9eCsiIik6InN0cmluZyIhPWw/KGYudHlwZT0ibnVtYmVyIiE9bD8ic2ltcGxlIjpsLGU9eCsiIik6KGYudHlwZT0ic3RyaW5nIiwoaD14Lmxlbmd0aCk8PWEtMT9lPXg6KGU9eC5zdWJzdHIoMCxhKSxmLnRyaW09aC1hKSxlLmxlbmd0aCYmIi0iIT1lWzBdJiYhL1xzLy50ZXN0KGUpfHwoZi5sZWZ0PWYucmlnaHQ9JyInLGcrPTIpKSxnKz1lLmxlbmd0aCxmLnNpemU9ZyxmLmVtcHR5PSFlLmxlbmd0aCxmLnZhbD1lLGY7aWYoIU9iamVjdC5pc0FycmF5KHgpKXJldHVybiBpKHgsYSxiKTtpZihmLnR5cGU9ImFycmF5IixmLmxlZnQ9IlsiLGYucmlnaHQ9Il0iLGcrPTIseC5sZW5ndGgpaWYoYjxjJiZ4Lmxlbmd0aDw1MCYmYS94Lmxlbmd0aD41KXtrPSgxLjUqYS94Lmxlbmd0aHwwKS5jbGFtcCgxMCwuOSphfDApLGg9MDt2YXIgbT0wO2ZvcihkPTA7ZDx4Lmxlbmd0aCYmaDxhLWsvMztkKyspZys9KGU9aih4W2RdLGssYisxKSkuc2l6ZSxoKz1lLnNpemUsbSs9MSxmLnJvd3MucHVzaChlKTtmLnRyaW09eC5sZW5ndGgtbX1lbHNlIGYudHJpbT14Lmxlbmd0aDtlbHNlIGYuZW1wdHk9ITAsZz0yLGYudmFsPSIiO3JldHVybiBmLnNpemU9ZyxmfWZ1bmN0aW9uIGsoeCxhKXtoLnB1c2goW3gsYV0pfWZ1bmN0aW9uIGwoeCl7aWYobnVsbCE9eC5rZXkmJihrKCJrZXkiLHgua2V5KSxnfHxrKCIiLCI6ICIpKSx4LmVtcHR5KXJldHVybiBrKCJlbXB0eSIseC5sZWZ0Kyh4LnZhbHx8IiIpK3gucmlnaHQpLHZvaWQgMDt2YXIgYj14LnR5cGUsYz0hMTtpZihudWxsIT14LnZhbCl7aWYoeC5sZWZ0JiZrKCJicmFja2V0Iix4LmxlZnQpLHgudmFsLmxlbmd0aDxhLzUmJmZbeC5rZXldJiYoYz0hMCksKCFnfHxjKSYmKGcmJmMmJmsoIiIsIjogIiksayhiLHgudmFsLmVzY2FwZUhUTUwoKSkseC50cmltKSl7dmFyIGQ9IisiO2soInRyaW0iLCJvYmplY3QiPT1ifHwiYXJyYXkiPT1iP2QreC50cmltOiLigKYiKX14LnJpZ2h0JiZrKCJicmFja2V0Iix4LnJpZ2h0KSxjfHwhZ3x8eC5yaWdodHx8InNpbXBsZSI9PWJ8fCJudW1iZXIiPT1ifHxrKCJicmFja2V0Iiwic3RyaW5nIj09Yj8nIiInOiJvYmplY3QiPT1iPyJ7fSI6IltdIil9ZWxzZSBpZih4LnJvd3MubGVuZ3RoKXt4LmxlZnQmJmsoImJyYWNrZXQiLHgubGVmdCk7dmFyIGUsaD14LnJvd3MubGVuZ3RoO2ZvcihlPTA7ZTxoO2UrKylsKHgucm93c1tlXSksKGUhPWgtMXx8eC50cmltKSYmaygiIiwiLCAiKTtpZih4LnRyaW0pe2Q9IisiO2soInRyaW0iLCJvYmplY3QiPT1ifHwiYXJyYXkiPT1iP2QreC50cmltOiLigKYiKX14LnJpZ2h0JiZrKCJicmFja2V0Iix4LnJpZ2h0KX1lbHNlIHgudHJpbSYmKCJvYmplY3QiPT1iP2soInNob3J0IiwieyIreC50cmltKyJ9Iik6ImFycmF5Ij09YiYmaygic2hvcnQiLCJbIit4LnRyaW0rIl0iKSl9fSxJbmxpbmVDTTpmdW5jdGlvbih4LGEsYil7dmFyIGM9YS5kYXRhLGQ9JC50eXBlKGMudmFsdWUpLGU9L14ob2J8YXIpLy50ZXN0KGQpLGY9YS5SVCgiTUVkaXQiKS5wYXJzZVN0cmluZyxnPWEuUlQoIkxpYiIpLmtpY2ssaD1hLlJUKCIkbnVtYmVyIikuRi5DYWxjO2Z1bmN0aW9uIGkoeCl7cmV0dXJuIGEubXkucm9vdCgpLmZpbmQoeCl9ZnVuY3Rpb24gaih4LGIpe2lmKGMuaGFzaD1jdy5saWIuc2RibShbYy5pZCxjLnZhbHVlXSksaSgiPi5pbmF2Pi5pZWRpdG9yIikubXkoInJlbW92ZSIpLGkoIj4uaW5hdiIpLnJlbW92ZUNsYXNzKCJpc2VkaXRvciIpLGUpe2Muc3RhdGU9eD8yMzkmYy5zdGF0ZToyMzcmYy5zdGF0ZXwxLDEmYy5zdGF0ZT9hLkxpc3Q9W106YS5MaXN0PWEuTWFrZUxpc3QoYyk7dmFyIGQ9aSgiPi5pbmF2Pi5pZGVzYyIpLGY9aSgiPi5pdmFsdWU+LmlsaXN0IiksZz1pKCI+LmluYXY+LmlrZXkiKTtkLnJlbW92ZUNsYXNzKCJoaWRlIiksYnx8KGYudHJpZ2dlcigicmVjYWxjIiksZi50cmlnZ2VyKCJjaGVjayIpKSxkLnRyaWdnZXIoImNoZWNrIiksZy50cmlnZ2VyKCJjaGVjayIpfWVsc2UgYy5zdGF0ZT0xLGkoIj4uaW5hdj4uaXZhbHVlIikucmVtb3ZlQ2xhc3MoImhpZGUiKX14Lm9uKCJjbGljay5teSIsZnVuY3Rpb24oYil7dmFyIGQ9JChiLnRhcmdldCk7aWYoIWQuaXMoImEiKSYmIWQuaXMoImltZyIpJiYoIWV8fDE2JmMuc3RhdGUpKXt2YXIgZj1pKCI+LmluYXYiKTtpZighZi5oYXNDbGFzcygiaXNlZGl0b3IiKSl7dmFyIGc9YS5SVCgiTGliIikuaXNTeXN0ZW0uY2FsbChhLGMpO2cmJmN3LmxpYi5ub3RlKE9iamVjdC5pc1N0cmluZyhnKT9nOiJUaGlzIHByb3AgaXMgcmVhZC1vbmx5LiIsIndhcm5pbmciKSxjLnN0YXRlPWU/MTZ8Yy5zdGF0ZToyLGYuYWRkQ2xhc3MoImlzZWRpdG9yIiksaShlPyI+LmluYXY+LmlkZXNjIjoiPi5pbmF2Pi5pdmFsdWUiKS5hZGRDbGFzcygiaGlkZSIpLGkoIj4uaW5hdj4uaWVkaXRvciIpLm15KGEuUlQoIk1FZGl0Iikse3RleHQ6ZT8iKCIrSlNPTi5zdHJpbmdpZnkoYy52YWx1ZSxudWxsLCIgICIpKyIpIjpjLnZhbHVlKyIiLG1vZGU6YS5DTXx8ImF1dG8iLHJlYWRvbmx5OmcsZXhwZWN0OiQudHlwZShjLnZhbHVlKX0pLnRoZW4oZnVuY3Rpb24oKXt2YXIgYj1hLlJUKCJFZGl0b3JJbnZva2VkIik7ImZ1bmN0aW9uIj09dHlwZW9mIGImJmIoeCxhKX0pfX19LmRlYm91bmNlKDE1KSksYS5teS5yb290KCkub24oImVkaXRvcmNvbW1pdC5teSIsZnVuY3Rpb24oeCl7eC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgYz1pKCI+LmluYXYiKSxrPWEuZGF0YSxsPSIiO2lmKGMuaGFzQ2xhc3MoImlzZWRpdG9yIikpe3ZhciBtLG4sbz1rLnZhbHVlLHA9T2JqZWN0LmNsb25lKG8sITApLHE9aSgiPi5pbmF2Pi5pZWRpdG9yIikubXkoImRhdGEiKS50ZXh0O2U/KG09ZihxKSwkLnR5cGUobyk9PSQudHlwZShtKT8oZyhrLnZhbHVlLG0pLGEubXkucmVkcmF3KCkpOigobj1hLm15LnBhcmVudCgpKS5kYXRhLnZhbHVlW2sua2V5XT1tLGsudmFsdWU9bi5kYXRhLnZhbHVlW2sua2V5XSxhLlJUKCJMaWIiKS5yZWxpc3Qobi5teS5yb290KCksbikpKToibnVtYmVyIj09ZD9udWxsIT1oKHEsbnVsbCk/ay52YWx1ZT1oKHEsbnVsbCk6bD0iRXhwcmVzc2lvbiBtdXN0IHJldHVybiBhIG51bWJlciI6ay52YWx1ZT1xLGw/Y3cubGliLm5vdGUobCwiZXJyb3IiLDNlMyk6KGEuTm9kZVVwZGF0ZWQoW2sucGF0aCxrLmtleV0scCxrLnZhbHVlKSxmdW5jdGlvbigpe2ooITApLCJmdW5jdGlvbiI9PXR5cGVvZiBiP2Ioay52YWx1ZSxvKTplfHxpKCI+LmluYXY+Lml2YWx1ZSIpLnRyaWdnZXIoImNoZWNrIil9LmRlbGF5KDEwKSl9fSkub24oImVkaXRvcmNhbmNlbC5teSIsZnVuY3Rpb24oeCl7eC5zdG9wUHJvcGFnYXRpb24oKSxqKGUsITApfSl9LE11dGF0ZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9Yi5kb2MsZD1iLnZpZXdzdGF0ZSxlPU9iamVjdC5pc09iamVjdCxmPU9iamVjdC5pc0FycmF5LGc9YS5QYXRoU2lnO0pTT04uc3RyaW5naWZ5O2lmKCFlKHgpKXJldHVybntlcnJvcjoiSW52YWxpZCBwYXJhbXMifTt2YXIgaD0kLmV4dGVuZCh7cGF0aDpudWxsLGN0eDpudWxsLG9wOiJ1cGQiLHZhbDp2b2lkIDAsZXhwYW5kOiExLGJsaW5rOiExLGVkaXQ6ITF9LHgpO2lmKCFmKGgucGF0aCkpcmV0dXJue2Vycm9yOiJJbnZhbGlkIHBhdGgifTt2YXIgaT1bIlJvb3QiXS5jb25jYXQoaC5wYXRoLmZsYXQoKSksaj1pLnBvcCgpLGs9aS5zbGljZSgxKSxsPS9eKG5vcHxpbnN8ZGVsfHVwZCkkLy50ZXN0KGgub3ApP2gub3A6bnVsbDtpZihudWxsPT1sKXJldHVybntlcnJvcjoiSW52YWxpZCBvcCJ9O2lmKC9eKGluc3x1cGQpJC8udGVzdChsKSYmdm9pZCAwPT09aC52YWwpcmV0dXJue2Vycm9yOiJObyB2YWx1ZSJ9O3ZhciBtLG4sbyxwLHE9e30scj0wO2lmKCJub3AiIT09bCl7aWYobnVsbD09KG09eihjLGspKSlyZXR1cm57ZXJyb3I6Ik5vZGUgaXMgdW5yZWFjaGVhYmxlIn07aWYoZihtKSl7aWYoaj0raixpc05hTihqKXx8ajwwfHxqIT0oMHxqKSlyZXR1cm57ZXJyb3I6IkludmFsaWQgbm9kZSBpbmRleCJ9O2lmKCJpbnMiPT1sJiZqPm0ubGVuZ3RoJiYoaj1tLmxlbmd0aCksL14oZGVsfHVwZCkkLy50ZXN0KGwpJiZqPm0ubGVuZ3RoLTEpcmV0dXJue2Vycm9yOiJOb2RlIGluZGV4IGlzIG91dCBvZiBhcnJheSJ9fX1lKG0pJiYhbS5oYXNPd25Qcm9wZXJ0eShqKSYmaC5jdHgmJihsPSJpbnMiKSwidXBkIj09bD9tW2pdPWgudmFsOiJkZWwiPT1sP2YobSk/bS5yZW1vdmVBdChqKTpkZWxldGUgbVtqXToiaW5zIj09bCYmKGYobSk/bS5pbnNlcnQoZihoLnZhbCk/W2gudmFsXTpoLnZhbCxqKTohKG89aC5jdHgpfHwhZihvKXx8by5sZW5ndGg8Mj9tW2pdPWgudmFsOigocD0obj1PYmplY3Qua2V5cyhtKSkuaW5kZXhPZihvWzBdKSk+LTE/cj1wKzE6KHA9bi5pbmRleE9mKG9bMV0pKT4tMSYmKHI9cC5jbGFtcCgwLDFlNikpLG4uc2xpY2UocikuZm9yRWFjaChmdW5jdGlvbih4KXtxW3hdPW1beF0sZGVsZXRlIG1beF19KSxtW2pdPWgudmFsLG4uc2xpY2UocikuZm9yRWFjaChmdW5jdGlvbih4KXttW3hdPXFbeF0sZGVsZXRlIHFbeF19KSkpO3ZhciBzLHQsdT1nKGksaiksdj1bXSx3PSIiO2lmKCh2PWkubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGcoaS50byhhKzEpKX0pLnNsaWNlKDEpKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3c9d3x8Mj09ZFt4XT93Onh9KSx3fHwodz12Lmxhc3QoKXx8Y3cubGliLnNkYm0oIlJvb3QiKSkscz1hLm15LmZpbmQoIi5lZC1ub2RlLSIrdykubXkoIm1hbmlmZXN0IiksaC5leHBhbmQmJih2LmZvckVhY2goZnVuY3Rpb24oeCl7ZFt4XT0yfSksZFt1XT1mKGgudmFsKXx8ZShoLnZhbCk/MjoxLHMuZGF0YS5zdGF0ZT0yKSwyPT1zLmRhdGEuc3RhdGUmJihzLkxpc3Q9cy5NYWtlTGlzdChzLmRhdGEpKSx0PWEubXkuZmluZCgiLmVkLW5vZGUtIit1KSwidXBkIj09bCYmdC5sZW5ndGgmJiQudHlwZSh0Lm15KCJkYXRhIikudmFsdWUpPT0kLnR5cGUoaC52YWwpKXt2YXIgeT10Lm15KCJkYXRhIik7eS52YWx1ZT1oLnZhbCwiJG11bHRpIj09eS5tYW5pZmVzdCYmMiZ5LnN0YXRlJiYodC5teSgibWFuaWZlc3QiKS5MaXN0PXQubXkoIm1hbmlmZXN0IikuTWFrZUxpc3QoeSkpLHQubXkoInJlZHJhdyIpfWVsc2UgMj09cy5kYXRhLnN0YXRlJiYocy5MaXN0PXMuTWFrZUxpc3Qocy5kYXRhKSkscy5teS5yZWRyYXcoKTtyZXR1cm4gaC5leHBhbmQmJmEuTWVtU3RhdGVTYXZlKCksaC5leHBhbmQmJmguYmxpbmsmJmZ1bmN0aW9uKCl7dmFyIHg9YS5teS5maW5kKCIuZWQtbm9kZS0iKygiZGVsIiE9bD91OnYubGFzdCgpKSksYj1PYmplY3QuaXNTdHJpbmcoaC5ibGluayk/aC5ibGluazoib3JhbmdlIjt4LmFkZENsYXNzKGIpLGZ1bmN0aW9uKCl7eC5yZW1vdmVDbGFzcyhiKX0uZGVsYXkoNTAwKX0uZGVsYXkoMTAwKSx7b2s6ITAsZXhwYW5kZWQ6dn07ZnVuY3Rpb24geih4LGEpe2Zvcih2YXIgYj14LGM9YS5sZW5ndGgsZD0wO2Q8YyYmbnVsbCE9YjtkKyspYj1iW2FbZF1dLGUoYil8fGYoYil8fChiPW51bGwpO3JldHVybiBifX0sU2VhcmNoOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj17fSxjPWEuU2VhcmNoUmV8fHg7aWYoIWMpcmV0dXJuIGEuZGF0YS5mb3VuZD17fTthLkluZGV4LmRpcnR5JiYoYS5JbmRleC5pZHg9ayhhLkRvYy52YWx1ZSksYS5JbmRleC5kaXJ0eT0hMSk7Zm9yKHZhciBkLGU9Y3cubGliLnNkYm0sZj0wLGc9YS5JbmRleC5pZHgsaD0wLGk9MDtoPGcubGVuZ3RoO2grKylpZihmPTAsaT0oZD1nW2hdKS5wLmxlbmd0aCxjLnRlc3QoZC5rKSYmKGZ8PTQpLGQudiYmYy50ZXN0KGQudikmJihmfD04KSxmKWZvcih2YXIgaj0xO2o8aTtqKyspYltlKGQucC5zbGljZSgwLGopLmpvaW4oIuKdgCIpKyLinYAiK2QucFtqXSldPWo9PWktMT9mOjM7cmV0dXJuIGEuZGF0YS5mb3VuZD1iO2Z1bmN0aW9uIGsoeCl7dmFyIGE9WyJSb290Il0sYj1bXTtmdW5jdGlvbiBjKHgpe09iamVjdC5rZXlzKHgpLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGU9JC50eXBlKHhbZF0pOyJvYmplY3QiPT1lfHwiYXJyYXkiPT1lPyhhLnB1c2goZCksYyh4W2RdKSxiLnB1c2goe2s6ZC50b0xvd2VyQ2FzZSgpLHA6YS5zbGljZSgwKSx2OiExfSksYS5wb3AoKSk6InN0cmluZyI9PWU/Yi5wdXNoKHtrOmQudG9Mb3dlckNhc2UoKSxwOmEuc2xpY2UoMCkuYWRkKGQpLHY6eFtkXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1tcclxuXHRcc10rL2csIiAiKX0pOmIucHVzaCh7azpkLnRvTG93ZXJDYXNlKCkscDphLnNsaWNlKDApLmFkZChkKSx2OnhbZF0rIiJ9KX0pfXJldHVybiBjKHgpLGJ9fSxFdmVudDp7YWRkOmZ1bmN0aW9uKHgsYSxiLGMpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKSxlPWQucGFyZW50cygiLm15LWZvcm0iKS5lcSgwKSxmPWUuZGF0YSgibXkiKS5kYXRhLGc9ZS5kYXRhKCJteSIpLm1hbmlmZXN0LGg9JC50eXBlKGYudmFsdWUpLGk9ImFycmF5Ij09aCxqPShlLm15KCJkYXRhIikua2V5LGIuTHMoIkNsaXAiKXx8e3R5cGU6IiJ9KSxrPXtvYmplY3Q6e30sYXJyYXk6W10sc3RyaW5nOiIiLGJvb2xlYW46ITAsbnVtYmVyOjB9O2QucGFyZW50KCkuYWRkQ2xhc3MoImhvdmVyIiksZS5hZGRDbGFzcygiaG92ZXIiKSwkKHRoaXMpLm1vZGFsKHttYW5pZmVzdDpiLk1BZGQsZGF0YTp7Y21kOiJwcmVwZW5kIix0ZXh0OlsiTmV3ICIsaT8ibWVtYmVyIjoicHJvcGVydHkiLCcgaW4mbmJzcDs8c3BhbiBjbGFzcz0iYm9sZGVyIG53Ij4nLGYua2V5LnRydW5jYXRlKDI1LCJtaWRkbGUiLCLigKYiKS5lc2NhcGVIVE1MKCksaT8iOltdIjoiOnt9IiwiPC9zcGFuPiJdLmpvaW4oIiIpLHByZXBlbmQ6aT8iSW5zZXJ0IjoiUHJlcGVuZCIsYXBwZW5kOmk/IiI6IkFwcGVuZCIsaXNhcnJheTppLGtleTppPyIwIjoiIixjbGlwOmosa2V5czppP3t9Ok9iamVjdC5rZXlzKGYudmFsdWUpLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2FdPSEwLHh9LHt9KSxmaWxlOnt9fSx3aWR0aDozMTAsYWxpZ246InRvcDoxMDMlO3JpZ2h0Oi0xMTRweDsiLHJvb3Q6Yyxib3VuZDoxLG5vc2U6InRvcCIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixjbG9zZTohMSxlc2M6ITAsZW50ZXI6ITB9KS50aGVuKGZ1bmN0aW9uKHgpe3ZhciBhLGMsZD14LmNtZCxqPSEwLGw9W10sbT1bXTtpZih4LmNsaXAudHlwZSYmImNsaXAiPT14LnR5cGUmJihrLmNsaXA9eC5jbGlwLnZhbHVlKSxjPU9iamVjdC5jbG9uZSgiZmlsZSI9PXgudHlwZT94LmZpbGU6a1t4LnR5cGVdLCEwKSx4LmlzYXJyYXl8fCgic3RyaW5nIj09eC50eXBlJiZ4LmZpbGUuZGF0YT9jPSJkYXRhOiIreC5maWxlLmNvbnRlbnRfdHlwZSsiO2Jhc2U2NCwiK3guZmlsZS5kYXRhOmRlbGV0ZSBjLm5hbWUpLDE9PWYubGV2ZWwmJi9eKF9pZHxfcmV2KSQvLnRlc3QoeC5rZXkpKXJldHVybiBjdy5saWIubm90ZSgiQ2Fu4oCZdCBjaGFuZ2Ugc3lzdGVtIHByb3BlcnRpZXMuIiwiZXJyb3IiKSx2b2lkIDA7aWYoL14ob2IpLy50ZXN0KGgpKWlmKCJhcHBlbmQiPT1kfHxudWxsIT1mLnZhbHVlW3gua2V5XSlmLnZhbHVlW3gua2V5XT1jLG4oKTtlbHNlIGlmKCJwcmVwZW5kIj09ZCl7Zm9yKGEgaW4gbD1PYmplY3Qua2V5cyhmLnZhbHVlKSltLnB1c2goZi52YWx1ZVtsW2FdXSksZGVsZXRlIGYudmFsdWVbbFthXV07Zm9yKGEgaW4gZi52YWx1ZVt4LmtleV09YyxsKWxbYV0hPT14LmtleSYmKGYudmFsdWVbbFthXV09bVthXSk7bT1sPW51bGwsbigpfWVsc2Ugaj0hMTtlbHNlIGk/KHgua2V5PSgreC5rZXl8fDApLmNsYW1wKDAsZi52YWx1ZS5sZW5ndGgpKyIiLGYudmFsdWUuaW5zZXJ0KE9iamVjdC5pc0FycmF5KGMpP1tjXTpjLHgua2V5KSxuKCkpOmo9ITE7ZnVuY3Rpb24gbigpe2IuTm9kZVVwZGF0ZWQoW2YucGF0aCxmLmtleSx4LmtleV0sdm9pZCAwLGMpfWomJihnLkxpc3Q9Yi5NYWtlTGlzdChmKSxmLnN0YXRlPTIsZS5maW5kKCIuaWRlc2M6ZXEoMCkiKS50cmlnZ2VyKCJjaGVjayIpLGUuZmluZCgiLmlsaXN0OmVxKDApIikudHJpZ2dlcigicmVjYWxjIikpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKSxlLnJlbW92ZUNsYXNzKCJob3ZlciIpfSl9LHRha2VvdXQ6ZnVuY3Rpb24oeCxhLGIsYyl7eC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgZD0kKHRoaXMpLGU9ZC5wYXJlbnRzKCIubXktZm9ybSIpLmVxKDApLGY9ZS5kYXRhKCJteSIpLmRhdGEsZz1lLmRhdGEoIm15IikubWFuaWZlc3QsaD1PYmplY3QsaT0oaC5zaXplLGguY2xvbmUpLGo9aC5tZXJnZTtkLnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGUuYWRkQ2xhc3MoImhvdmVyIiksZC5tb2RhbCh7bWFuaWZlc3Q6Yi5NVGFrZW91dCxkYXRhOntqc29uOkpTT04uc3RyaW5naWZ5KGYudmFsdWUsbnVsbCwiICAiKSxwYXRoOmYucGF0aCxrZXk6Zi5rZXkscmVwbGFjZTpoLnNpemUoZi52YWx1ZSk/IlJlcGxhY2UiOiJTYXZlIixleHRlbmQ6aC5zaXplKGYudmFsdWUpPyJFeHRlbmQiOiIifSx3aWR0aDooZS53aWR0aCgpLTE2MCkuY2xhbXAoNTAwLDFlMyksYWxpZ246InRvcDoxMDMlO3JpZ2h0Oi03NnB4OyIscm9vdDpjLmZpbmQoInNlY3Rpb24jZWRpdG9yIikuZXEoMCksbm9zZToidG9wIixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGNsb3NlOiEwLGVzYzohMCxlbnRlcjohMCxib3VuZDoyfSkudGhlbihmdW5jdGlvbih4KXt2YXIgYSxjLGQsaz0hMDtmdW5jdGlvbiBsKCl7Yi5Ob2RlVXBkYXRlZChbZi5wYXRoLGYua2V5XSxjLGYudmFsdWUpfWE9Yi5teS5wYXJlbnQoKSYmYi5teS5wYXJlbnQoKS5kYXRhLmlzTmV3P3gubm9kZTowPT1mLmxldmVsP2gucmVqZWN0KHgubm9kZSwvXihfaWR8X3JldikkLyk6eC5ub2RlLCJleHRlbmQiPT14LmNtZD8oYz1pKGYudmFsdWUsITApLGooZi52YWx1ZSxhLCEwKSk6InJlcGxhY2UiPT14LmNtZD8oYz1pKGYudmFsdWUsITApLGQ9e30sMD09Zi5sZXZlbCYmZi52YWx1ZS5fcmV2JiYoZD1oLnNlbGVjdChmLnZhbHVlLC9eKF9pZHxfcmV2KSQvKSksYi5SVCgiTGliIikua2ljayhmLnZhbHVlLGEpLDA9PWYubGV2ZWwmJmooZi52YWx1ZSxkKSk6az0hMSxrJiYoZi5zdGF0ZT0yLGwoKSxiLlJUKCJMaWIiKS5yZWxpc3QoZSxnKSl9KS5hbHdheXMoZnVuY3Rpb24oKXtkLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJob3ZlciIpLGUucmVtb3ZlQ2xhc3MoImhvdmVyIil9KX19LEhUTUw6e01haW46JzxzZWN0aW9uIHN0eWxlPSIiPjxzZWN0aW9uIGlkPSJlZGl0b3IiIGNsYXNzPSJkaWIgdzEwMHAiPjxkaXYgY2xhc3M9InBiNSBmczEzMCBub2N3bWluIj48ZGl2IGlkPSJkb2N0aXRsZSIgY2xhc3M9ImZzMTEwIHc2MHAgcHQ0IGJvbGRlciBkaWIgdmF0IHhncmF5IG53IG9oIGVsbCBwcjEwIiA+PC9kaXY+PGRpdiBjbGFzcz0idzIwcCBmczkwIGRpYiB2YXQiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgeGdyYXkgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ianNvbi1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS50cmlnZ2VyKFwnY2hlY2subXlcJykiPjwvc3Bhbj48L2Rpdj48YnV0dG9uIGNsYXNzPSJidXR0b24gbXIwIGZyIHcxNTAgZnM5MCIgaWQ9ImJ0bi1zYXZlIj5TYXZlPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZG9jIiBjbGFzcz0iaXJvd1x0eGdyYXkiPjwvZGl2Pjwvc2VjdGlvbj48L3NlY3Rpb24+JyxJdGVtU2ltcGxlOic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IGlrZXlzaW1wbGUiPjwvZGl2PjxkaXYgY2xhc3M9Iml2YWx1ZSI+PC9kaXY+PGRpdiBjbGFzcz0iaWVkaXRvciI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiIHRpdGxlPSJEZWwgcHJvcGVydHkiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLEl0ZW1Db21wbGV4Oic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IGlrZXl0cmVlIj48L2Rpdj48c2VjdGlvbiBjbGFzcz0iaWRlc2MgY3AiPuKAkzwvc2VjdGlvbj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48c2VjdGlvbiBjbGFzcz0iaXZhbHVlIGltdWx0aSBoaWRlIj48ZGl2IGNsYXNzPSJpbGlzdCI+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWFkZCBidXR0b24gZ3JlZW4iIHRpdGxlPSJBZGQgbmV3IHByb3BlcnR5Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1wbHVzIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tanNvbiBoaWRlIj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGJ1dHRvbiByZWQiICB0aXRsZT0iRGVsIG5vZGUiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nfSxzdHlsZTp7IiAiOiJmb250LXNpemU6MTVweDtmb250LWZhbWlseTogJy1hcHBsZS1zeXN0ZW0nLCdCbGlua01hY1N5c3RlbUZvbnQnLCdIZWx2ZXRpY2EgTmV1ZScsJ1NlZ29lIFVJJyxIZWx2ZXRpY2EsVGFob21hLFZlcmRhbmEsU2Fucy1zZXJpZjtmb250LXdlaWdodDozMDA7bWluLWhlaWdodDo1MDBweDttYXgtd2lkdGg6MTkwMHB4OyIsIiAuYm9sZGVyIjoiZm9udC13ZWlnaHQ6Ym9sZGVyOyIsIiAjZG9jdGl0bGUiOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4id2lkdGg6IisoeC53aWR0aCgpLmNsYW1wKDAsMTUwMCktMjIwLTIwLTE0NCkrInB4In0sIiAgLmlyb3ciOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhLmxhYmVsV2lkdGg7cmV0dXJueyIgLmlrZXkiOiJ3aWR0aDoiK3grInB4OyIsIiAuaW5hdiI6InBhZGRpbmctbGVmdDoiK3grInB4OyIsIiAuaW5hdj4uaWtleSI6Im1hcmdpbi1sZWZ0Oi0iK3grInB4OyJ9fSwiIC5qdmFsLWJyYWNrZXQiOiJmb250LXdlaWdodDppbmhlcml0O2NvbG9yOiByZ2JhKDAsMTgxLDE2MSwwLjcyKTsiLCIgLmp2YWwtdHJpbSI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6MnB4O3BhZGRpbmc6MHB4IDJweCAxcHggMnB4O2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOnJnYmEoMjEzLCA0OCwgODksIDAuNjMpO2JhY2tncm91bmQtY29sb3I6cmdiYSg0MywxMDcsMTkyLDAuMDcpOyIsIiAuanZhbC1zaG9ydCI6ImNvbG9yOnJnYmEoODgsMTAxLDEyMywwLjYzKTsiLCIgLmp2YWwtZW1wdHkiOiJjb2xvcjpyZ2JhKDg4LDEwMSwxMjMsMC42Myk7IiwiIC5qdmFsLWtleSI6ImZvbnQtd2VpZ2h0OmluaGVyaXQ7bWFyZ2luLWxlZnQ6M3B4OyIsIiAuanZhbC1icmFja2V0Ky5qdmFsLWtleSI6Im1hcmdpbi1sZWZ0OjFweDsiLCIgLmp2YWwtc2ltcGxlIjoiY29sb3I6cmdiYSgyNTUsOTcsMCwwLjg3KTsiLCIgLmp2YWwtdW5kZWZpbmVkIjoiY29sb3I6cmdiYSgyMjAsMjI3LDIzMCwwLjg3KTsiLCIgLmp2YWwtbnVtYmVyIjoiY29sb3I6cmdiYSg1MiwxNDMsMjcsMC44KSIsIiAuanZhbC1udWxsIjoiY29sb3I6cmdiYSgyMTQsMCwyNiwwLjgpIiwiIC5qdmFsLXN0cmluZyI6ImNvbG9yOnJnYmEoMzAsNjUsMTY0LDAuOCk7IiwiIC5qdmFsLWZ1bmN0aW9uIjoiY29sb3I6cmdiYSgxNDMsMzYsMTU4LDAuOCk7IiwiIC5qdmFsLWZvdW5kLWtleSI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjIxLDAsMC43KTtwYWRkaW5nLWxlZnQ6MXB4O3BhZGRpbmctcmlnaHQ6MXB4O2JvcmRlci1yYWRpdXM6MnB4OyIsIiAuaXJvb3Q+LmllZGl0b3IgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMTIwcHgpOyBoZWlnaHQ6MTAwJTsgb3ZlcmZsb3cteTpzY3JvbGw7IiwiIjp7IiB0ZXh0YXJlYSI6ImZvbnQtZmFtaWx5OkNvdXNpbmUsJ1BUIE1vbm8nLE1vbmFjbywnTHVjaWRhIENvbnNvbGUnLG1vbm9zcGFjZTsiLCIgLmlyb3ciOiJ3aWR0aDpjYWxjKDEwMCUgLSAxcHgpO2Rpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHBhZGRpbmc6MHB4IDBweCAwcHggMjVweDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoNzAsMTA1LDEzNSwwLjI1KTsgbGluZS1oZWlnaHQ6MS4zZW07IG1hcmdpbi1sZWZ0OjFweDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1czsiLCIgLmlyb3c6YmVmb3JlIjonY29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTVweDtsZWZ0OjA7d2lkdGg6MThweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDcwLDEwNSwxMzUsMC4yNSk7JywiIC5pcm93Omxhc3QtY2hpbGQiOiJib3JkZXI6bm9uZTsiLCIgLmlyb3c6bGFzdC1jaGlsZDphZnRlciI6J2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxNXB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDcwLDEwNSwxMzUsMC4yNSk7JywiIC5pcm93OmhvdmVyLC5pcm93LmhvdmVyIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIwNiwgMjE0LCAyMjYsIDAuMik7IiwiIC5pa2V5IjoicGFkZGluZy1yaWdodDoxMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyB3b3JkLWJyZWFrOmJyZWFrLWFsbDtmb250LXNpemU6OTUlOyBsaW5lLWhlaWdodDoxLjJlbTtvcGFjaXR5OjAuODsgb3ZlcmZsb3c6aGlkZGVuO3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW46MC4yNWVtIDAgMC4zZW0gMHB4OyIsIiAuaWtleXRyZWUiOiJjdXJzb3I6IHBvaW50ZXI7IiwiIC5pbGFiZWwiOiJmb250LXNpemU6ODAlO3BhZGRpbmc6MCA1cHg7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4wNSk7IGJvcmRlci1yYWRpdXM6MnB4O29wYWNpdHk6MC45OyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luOi0xcHggNXB4IDAgMHB4OyIsIiAuYWRvd24sIC5hcmlnaHQiOiJmb250LXNpemU6NTAlOyBsaW5lLWhlaWdodDoxZW07IGZvbnQtd2VpZ2h0OjQwMCFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MCAwIDFweCAzcHg7IG9wYWNpdHk6MC4zOyIsIiAuYXJpZ2h0OmFmdGVyIjonY29udGVudDoi4pa277iOIjsnLCIgLmFkb3duOmFmdGVyIjonY29udGVudDoi4pa8IjsnLCIgLml2YWx1ZSwgLmlsaXN0Ijoid29yZC1icmVhazogYnJlYWstYWxsOyIsIiAuaXZhbHVlIjoibGluZS1oZWlnaHQ6IDEuNmVtO2N1cnNvcjpwb2ludGVyOyIsIiAuaWRlc2MiOiJsaW5lLWhlaWdodDogMS41ZW07IiwiIC5pdmFsdWUsIC5pbGlzdCwgLmlkZXNjIjoid2lkdGg6MTAwJTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsiLCIgLmlkZXNjIC5pbW9kZSI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IGZvbnQtc2l6ZTo5NSU7IGxpbmUtaGVpZ2h0OjEuNWVtOyBtYXJnaW4tbGVmdDoyMHB4OyIsIiAuaW1vZGUgPiBzcGFuIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MGVtIDAuNWVtOyBtYXJnaW4tcmlnaHQ6MC4wZW07IGJvcmRlci1yYWRpdXM6MnB4OyBib3JkZXI6IDFweCBzb2xpZCAjNDM0ZTVkMDA7IGNvbG9yOiM0MzRlNWQ5MDsiLCIgLmltb2RlLm1vZGUtdHJlZSAubW9kZS10cmVlLCAuaW1vZGUubW9kZS1qc29uIC5tb2RlLWpzb24sIC5pbW9kZS5tb2RlLWpzIC5tb2RlLWpzLCAuaW1vZGUubW9kZS1kaWZmIC5tb2RlLWRpZmYiOiJjb2xvcjojNDM0ZTVkYzA7IGJhY2tncm91bmQtY29sb3I6ICM0MzRlNWQxYTsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsiLCIgLmltdWx0aS5pdmFsdWUiOiJjdXJzb3I6aW5oZXJpdDsiLCIgLmlzZWRpdG9yIC5pdmFsdWUiOiJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOnByZTsgcGFkZGluZzowLjJlbSAwLjNlbSAwLjJlbSAwLjRlbTsgZm9udC1mYW1pbHk6Q291c2luZSwnUFQgTW9ubycsTW9uYWNvLCdMdWNpZGEgQ29uc29sZScsbW9ub3NwYWNlOyBtYXgtaGVpZ2h0OjQwMHB4OyBvdmVyZmxvdzphdXRvO292ZXJmbG93Om92ZXJsYXk7IG91dGxpbmU6bm9uZTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7IGZvbnQtc2l6ZTo5MCU7IGJvcmRlci1yYWRpdXM6MnB4O21hcmdpbjotMXB4IDAgLTFweCAwOyB0YWItc2l6ZToyOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNDAsMC44KTsgY3Vyc29yOnRleHQ7IiwiIC5pc2VkaXRvcn4uaXZhbHVlIjoiZGlzcGxheTpub25lOyIsIiAuaWJvb2xlYW4tdGFnIjoicGFkZGluZzowIDlweCAxcHggOXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXItcmFkaXVzOjEwMHB4OyIsIiAuaXNlZGl0b3IgLmllZHR5cGUiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjZweDsgcmlnaHQ6ODZweDsgZm9udC1zaXplOiAwLjhlbTsgbGluZS1oZWlnaHQ6IDEuMmVtOyBib3JkZXItcmFkaXVzOjIwcHg7IHBhZGRpbmc6IDAgNXB4IDFweCA1cHg7IiwiIC5pbmF2IjoibWFyZ2luOjJweCAwOyIsIiAuaW5hdiAuaWVkaXRvciI6IndpZHRoOjEwMCU7ZGlzcGxheTpub25lO3dvcmQtYnJlYWs6bm9ybWFsOyIsIiAuaW5hdiAuaXZhbHVlLmhpZGV+LmllZGl0b3IiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLmluYXYgLmlkZXNjLmhpZGV+LmllZGl0b3IiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLmluYXYgLmllZGl0b3IgLmljbWZyYW1lIjoib3ZlcmZsb3c6aGlkZGVuOyBib3JkZXI6MXB4IHNvbGlkICNkMWRmZTk7IGJvcmRlci1yYWRpdXM6MnB4OyIsIiAuaW5hdiAuaWVkaXRvciAuYnV0dG9uIjoicGFkZGluZzogMC4yNWVtIDAuN2VtIDAuMTVlbSAwLjdlbTttYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiAwOyIsIiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZToxMy4ycHg7IGZvbnQtZmFtaWx5OkNvdXNpbmUsJ1BUIE1vbm8nLE1vbmFjbyxtb25vc3BhY2U7IGxpbmUtaGVpZ2h0OjEuNGVtOyBjb2xvcjogIzQzNGU1ZDsiLCIgLkNvZGVNaXJyb3IgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4OyIsIiAuQ29kZU1pcnJvci1zY3JvbGwiOiJtYXgtaGVpZ2h0OmNhbGMoMjAgKiAxNnB4ICsgNnB4KTsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiIC5lZC1lcnJvciAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDIwMCwgMjAwLCAwLjc1KTsiLCIgLkNvZGVNaXJyb3IgLmNtLXByb3BlcnR5IjoiY29sb3I6IzQzNGU1ZDsiLCIgLkNvZGVNaXJyb3IgLmNtLXZhcmlhYmxlIjoiY29sb3I6IzMzYmZhZDsiLCIgLkNvZGVNaXJyb3IgLmNtLWtleXdvcmQiOiJjb2xvcjojOTAyNTllOyIsIiAuQ29kZU1pcnJvci5yZWFkb25seSI6ImJhY2tncm91bmQtY29sb3I6I2Y4ZjlmYTsgb3BhY2l0eTogMC44OyIsIiAubXktbW9kYWwtZm9ybSAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MTUwcHg7IGhlaWdodDphdXRvOyIsIiAubXktbW9kYWwtZm9ybSAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjE1MHB4OyIsIiAuaW5hdiAuaWVkaXRvciAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MjVweDsgaGVpZ2h0OmF1dG87IiwiIC5pYWN0IjoicG9zaXRpb246YWJzb2x1dGU7IHRvcDozcHg7IHJpZ2h0OjNweDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDAuM3M7Ym9yZGVyLXJhZGl1czozcHg7IiwiIC5pYWN0OmhvdmVyLCAuaWFjdC5ob3ZlciI6ImRpc3BsYXk6YmxvY2s7b3BhY2l0eToxIWltcG9ydGFudDsiLCIgLmluYXY6aG92ZXJ+LmlhY3QiOiJkaXNwbGF5OmJsb2NrO29wYWNpdHk6MC43OyIsIiAuaWFjdCAuYnV0dG9uIjoicGFkZGluZzowLjI1ZW0gMCAwLjE1ZW0gMDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjM2cHg7d2hpdGUtc3BhY2U6bm93cmFwOyIsIiAuaW5hdi5pc2VkaXRvcn4uaWFjdCI6ImRpc3BsYXk6bm9uZTsiLCIgI2RvYyI6InBhZGRpbmc6MDsgYm9yZGVyOm5vbmU7b3ZlcmZsb3c6dmlzaWJsZTsiLCIgI2RvYzpiZWZvcmUsICNkb2M6YWZ0ZXIiOiJkaXNwbGF5Om5vbmU7IiwiICNkb2M6aG92ZXIiOiJiYWNrZ3JvdW5kOndoaXRlOyIsIiAjZG9jPi5pbmF2IjoicGFkZGluZy1sZWZ0OjEyMHB4OyIsIiAjZG9jPi5pbmF2IC5pa2V5IjoiZm9udC1zaXplOjEwNSU7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MCAwIDAgLTEyMHB4O3dpZHRoOjEyMHB4OyIsIiAjZG9jPi5pYWN0Ijoib3BhY2l0eTowLjM7dG9wOjA7cmlnaHQ6MDsiLCIgLnRhZy5hY3RpdmUiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzNSwgMjEyLCAwLCAwLjE3KSFpbXBvcnRhbnQ7Y29sb3I6IHJnYig2NSwgMTMyLCAwKSFpbXBvcnRhbnQ7IiwiIC5idXR0b25zIGJ1dHRvbiI6ImJvcmRlci1yYWRpdXM6MDttYXJnaW4tcmlnaHQ6MnB4OyBwYWRkaW5nOjAuNGVtIDAuN2VtIDAuNGVtIDAuN2VtO3dpZHRoOjM2cHg7Zm9udC1zaXplOjkwJTsiLCIgLmJ1dHRvbnMgYnV0dG9uOmxhc3QtY2hpbGQiOiJib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDsgbWFyZ2luLXJpZ2h0OjA7IiwiIC5idXR0b25zIGJ1dHRvbjpmaXJzdC1jaGlsZCI6ImJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDsiLCIgLmJ1dHRvbnMgLmJ1dHRvbiI6ImJvcmRlci1yYWRpdXM6MDttYXJnaW4tcmlnaHQ6MnB4OyIsIiAuYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQiOiJib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDsgbWFyZ2luLXJpZ2h0OjA7IiwiIC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQiOiJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHg7IiwiIGEuYmFzZTY0aW1hZ2UgaW1nIjoiYmFja2dyb3VuZDogd2hpdGU7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQhaW1wb3J0YW50OyBwYWRkaW5nOiAzcHg7IG1heC13aWR0aDogMTAlOyBtaW4td2lkdGg6IDIlOyBtYXgtaGVpZ2h0OiA2MHB4OyIsIiAuYmFzZTY0aW1hZ2V+ZGl2Ijoid2lkdGg6ODclOyIsIiAuYmFzZTY0aWNvfmRpdiI6IndpZHRoOjg3JTsiLCIgLnc1NSI6IndpZHRoOjU1cHg7IiwiIC5oNTUiOiJoZWlnaHQ6NTVweDsifX0sTVRha2VvdXQ6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2IuU3RhcnRIYXNoPSQubXkuZi5zZGJtQ29kZShhLmRhdGEuanNvbiksYi5kYXRhLmpzb249IigiK2IuZGF0YS5qc29uKyIpIix4Lmh0bWwoYi5IVE1MKX0sSFRNTDonPGRpdiBpZD0idGl0bGUiIGNsYXNzPSJtYjUgZnMxMDUgYm9sZGVyIj48L2Rpdj48ZGl2IGNsYXNzPSJuZWVkc2NsaWNrIiBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBtYXJnaW46MnB4IDAgOHB4IDA7Ym9yZGVyLXJhZGl1czoycHgiPjx0ZXh0YXJlYSBpZD0ianNvbiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIj48L3RleHRhcmVhPjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0iZnIgZ3JheSBwdDUiIGlkPSJpbmZvIj48L2Rpdj48ZGl2IGNsYXNzPSJidXR0b25zIGRpYiB2YXQgZnMxMTAgbXQ0Ij48YnV0dG9uIGNsYXNzPSJidXR0b24gdzkwIiBpZD0iYnRuLXJlcGxhY2UiPlJlcGxhY2U8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidXR0b24gdzkwIiBpZD0iYnRuLWV4dGVuZCI+RXh0ZW5kPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIHc5MCIgaWQ9ImJ0bi1jYW5jZWwiPkNhbmNlbDwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImxncmF5IHBsMzAgZGliIHZhdCBwdDUiIGlkPSJpbmZvIj5KU09OIG9yIGpzIGV4cHJlc3Npb24g4oehPC9kaXY+PGRpdiBjbGFzcz0icGwzMCBkaWIgdmF0IHB0NSBvNzAiPjxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiIgaWQ9ImJ0bi1zdHJpcCIgdGl0bGU9IlJlbW92ZXMgYWxsIF8qIHN5c3RlbSBmaWVsZHMgZXhjZXB0IF9pZCBhbmQgX2F0dGFjaG1lbnRzIj5TdHJpcCBfIGtleXM8L3NwYW4+PC9kaXY+PC9kaXY+Jyx1aTp7IiN0aXRsZSI6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiJKU09OIGZvciAiK3gucGF0aC5zbGljZSgwKS5hZGQoeC5rZXkpLmpvaW4oIi8iKS50cnVuY2F0ZSg3MCwibWlkZGxlIiwi4oCmIil9LCIjanNvbiI6e2RlbGF5OjIwLGJpbmQ6Impzb24iLGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLmRhdGEuanNvbi5sZW5ndGg8NWU1O0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6Yj8iamF2YXNjcmlwdCI6InRleHQiLGxpbmVOdW1iZXJzOmIsdmlld3BvcnRNYXJnaW46MTAwLGluZGVudFdpdGhUYWJzOiEwLGluZGVudFVuaXQ6MixzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLGF1dG9mb2N1czohMH0pfX0sIiNidG4tcmVwbGFjZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBudWxsIT1hJiYoeC5ub2RlPXRoaXMuUGFyc2VkLHguY21kPSJyZXBsYWNlIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LnJlcGxhY2V9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5EaXJ0eXx8IXRoaXMuUGFyc2VkfSwic2VsZjpvcmFuZ2UiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuRGlydHkmJiEhdGhpcy5QYXJzZWR9fSx3YXRjaDoiI2luZm8ifSwiI2J0bi1leHRlbmQiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHgubm9kZT10aGlzLlBhcnNlZCx4LmNtZD0iZXh0ZW5kIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LmV4dGVuZH0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLkRpcnR5fHwhdGhpcy5QYXJzZWR9LCJzZWxmOm9yYW5nZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5EaXJ0eSYmISF0aGlzLlBhcnNlZH0sInNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZXh0ZW5kfX0sd2F0Y2g6IiNpbmZvIn0sIiNidG4tY2FuY2VsIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmYi50cmlnZ2VyKCJjYW5jZWwiKX19LCIjYnRuLXN0cmlwIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcy5QYXJzZWQsZD1bIl9pZCIsIl9hdHRhY2htZW50cyJdLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB2b2lkIDAhPT1jW2FdJiYoeFthXT1jW2FdKSx4fSx7fSk7dGhpcy5QYXJzZWQ9JC5leHRlbmQoZCxPYmplY3QucmVqZWN0KHRoaXMuUGFyc2VkLC9eXy8pKSx4Lmpzb249IigiK0pTT04uc3RyaW5naWZ5KHRoaXMuUGFyc2VkLG51bGwsIiAgIikrIikiLHRoaXMubXkucmVjYWxjKCIjanNvbiIpfX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLlBhcnNlZHx8IU9iamVjdC5rZXlzKHRoaXMuUGFyc2VkKS5maW5kQWxsKC9eXy8pLnJlbW92ZSgiX2lkIikucmVtb3ZlKCJfYXR0YWNobWVudHMiKS5sZW5ndGh9fSx3YXRjaDoiI2luZm8ifSwiI2luZm8iOntkZWxheTo0MDAsYmluZDpmdW5jdGlvbihkLHYsJG8pe3ZhciBwYXJzZSxzPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChkLmpzb24pKS5sZW5ndGg7dHJ5e3BhcnNlPWV2YWwoIigiK2QuanNvbisiKSIpLHBhcnNlPU9iamVjdC5pc09iamVjdChwYXJzZSl8fE9iamVjdC5pc0FycmF5KHBhcnNlKT9KU09OLnBhcnNlKCQubXkudG9qc29uKHBhcnNlKSk6bnVsbH1jYXRjaCh4KXt9cmV0dXJuIHRoaXMuUGFyc2VkPXBhcnNlfHxudWxsLCRvLm15KCkucm9vdC50b2dnbGVDbGFzcygiZWQtZXJyb3IiLCFwYXJzZSksdGhpcy5IYXNoPSQubXkuZi5zZGJtQ29kZShkLmpzb24pLHRoaXMuRGlydHk9dGhpcy5TdGFydEhhc2ghPXRoaXMuSGFzaCxzLm1ldHJpYygyKSsiYiJ9LHdhdGNoOiIjanNvbiJ9fSxzdHlsZTp7IiAjanNvbiI6ImJvcmRlcjogbm9uZTsgd2lkdGg6IDEwMCU7ZGlzcGxheTogYmxvY2s7aGVpZ2h0OiAzMDBweDtmb250LXNpemU6IDAuN2VtO3dvcmQtd3JhcDogbm9ybWFsOyBvdmVyZmxvdy14OiBoaWRkZW47IiwiIC5Db2RlTWlycm9yIjp7IiI6Im1pbi1oZWlnaHQ6MTUwcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjEzcHghaW1wb3J0YW50OyIsIiAuQ29kZU1pcnJvci1saW5lcyI6ImxpbmUtaGVpZ2h0OjE3cHghaW1wb3J0YW50OyIsIiAuY20tcHJvcGVydHkiOiJjb2xvcjojNDM0ZTVkOyIsIiAuY20tdmFyaWFibGUiOiJjb2xvcjojMzNiZmFkOyIsIiAuY20ta2V5d29yZCI6ImNvbG9yOiM5MDI1OWU7In19fSxNQWRkOntpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczt4LmZvcm1nZW4oYi5IVE1MKSxhLmRhdGEuaXNhcnJheSYmeC5maW5kKCIjbmtleSIpLmF0dHIoInR5cGUiLCJudW1iZXIiKX0sZGF0YTp7Y21kOiIiLGtleToiIix0eXBlOiJzdHJpbmciLGlzYXJyYXk6ITEsdGV4dDoiQ3JlYXRlIG5ldyBwcm9wZXJ0eSIscHJlcGVuZDoiUHJlcGVuZCIsYXBwZW5kOiJBcHBlbmQiLHVwbG9hZDonPHNwYW4gY2xhc3M9InBzZXVkb2xpbmsgZGliIHcxMDBwIHZhdCB0YWMiPlNlbGVjdCBmaWxlLi4uPC9zcGFuPicsa2V5czp7fSxmaWxlOnt9fSx1aTp7IiNudGV4dCI6InRleHQiLCIjbmtleSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguaXNhcnJheT94LmtleT1hLnJlcGxhY2UoL1xEL2csIiIpOngua2V5PWEpLHgua2V5fSx3YXRjaDoiI250eXBlIn0sIiNudHlwZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBudWxsIT1hJiYoeC50eXBlPWEsIkNsaXAiIT1hfHx4LmtleXx8eC5pc2FycmF5fHwoeC5rZXk9eC5jbGlwLmtleSkpLHgudHlwZX0saW5pdDpmdW5jdGlvbih4LGEpe3gudGFncyh7dGFnczpbW3sie09ian0iOiJvYmplY3QifSx7IltBcnJdIjoiYXJyYXkifSx7TnVtOiJudW1iZXIifSx7Qm9vbDoiYm9vbGVhbiJ9LHtGaWxlOiJmaWxlIn1dXSxlbXB0eTp7JyJTdHIiJzoic3RyaW5nIn0sdGFnY3NzOiJ0YWcgYmx1ZSBjcCBwbDUgcHI1Iix0YWdzaGltOiIiLGdyb3Vwc2hpbToiIn0pfSxyZWNhbGM6IiNua2V5dHlwZSJ9LCIjbmtleXR5cGUiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlzYXJyYXk/IkluZGV4IjoiS2V5In0sIiN4dXBsb2FkIjp7d2F0Y2g6IiNudHlwZSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJmaWxlIiE9eC50eXBlfX19LCIjdXBsb2FkIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZCxlPXt9O251bGwhPWEmJmEmJigoYz1iWzBdLmZpbGVzWzBdKS5zaXplPngubGltaXQ/KGN3Lm5vdGUoIk1heCB1cGxvYWQgZmlsZSBzaXplIGlzICIrKDEqeC5saW1pdCkuYWJicigxKSsiYiIsImVycm9yIiksYi53cmFwKCI8Zm9ybT4iKS5jbG9zZXN0KCJmb3JtIikuZ2V0KDApLnJlc2V0KCkpOmMmJmZ1bmN0aW9uKCl7ZS5uYW1lPWMubmFtZSxlLmNvbnRlbnRfdHlwZT1jLnR5cGV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iO3ZhciBhLGY9bmV3IEZpbGVSZWFkZXIsZz1bXTtmLm9ubG9hZD1mdW5jdGlvbihmKXthPW5ldyBVaW50OEFycmF5KGYudGFyZ2V0LnJlc3VsdCk7Zm9yKHZhciBoPTA7aDxhLmxlbmd0aDtoKyspZy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYVtoXSkpO2Q9d2luZG93LmJ0b2EoZy5qb2luKCIiKSksZS5kYXRhPWQsZS5sZW5ndGg9Zy5sZW5ndGgsJC5leHRlbmQoeC5maWxlLGUpLHgua2V5fHx4LmlzYXJyYXl8fCh4LmtleT1jLm5hbWUpLCF4LmtleSYmeC5pc2FycmF5LGIud3JhcCgiPGZvcm0+IikuY2xvc2VzdCgiZm9ybSIpLmdldCgwKS5yZXNldCgpLGIubXkoImZpbmQiLCIuY3ctYXR0LXVwbG9hZD5zcGFuIikudGV4dChjLm5hbWUudHJ1bmNhdGUoMTUsIm1pZGRsZSIsIuKApiIpKyIgIitlLmxlbmd0aC5tZXRyaWMoMiwhMSkrImIiKSx4LmtleT09Yy5uYW1lJiZiLm15KCJmaW5kIiwiI25rZXkiKS52YWwoeC5rZXkpLnRyaWdnZXIoImJsdXIiKX0sZi5yZWFkQXNBcnJheUJ1ZmZlcihjKX0oKSl9LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC51cGxvYWR9fX0sIi5jdy1hdHQtdXBsb2FkIjoidXBsb2FkIiwiI2J0bi10bzAiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHguY21kPSJwcmVwZW5kIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LmtleXNbeC5rZXldJiYheC5pc2FycmF5PyJSZXBsYWNlIjp4LnByZXBlbmR9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgua2V5fSwic2VsZjpyZWQiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmtleXNbeC5rZXldJiYheC5pc2FycmF5fX0sd2F0Y2g6IiNua2V5In0sIiNidG4tdG8xIjp7YmluZDpmdW5jdGlvbih4LGEsYil7cmV0dXJuIG51bGwhPWEmJih4LmNtZD0iYXBwZW5kIixiLnRyaWdnZXIoImNvbW1pdCIpKSx4LmFwcGVuZH0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4heC5rZXl9LCJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmFwcGVuZHx8L15cZCskLy50ZXN0KHgua2V5KXx8eC5rZXlzW3gua2V5XX19LHdhdGNoOiIjbmtleSJ9LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJmIudHJpZ2dlcigiY2FuY2VsIil9fSxIVE1MOlsnPGRpdiBpZD0ibnRleHQiPjwvZGl2Picse2xhYmVsOiI1MHB4Iixyb3c6IjEwMCUiLHJvd0NzczoibXktcm93IHB0NSBwYjUiLGxhYmVsQ3NzOiJteS1sYWJlbCBncmF5IGZzOTAifSxbJzxzcGFuIGlkPSJua2V5dHlwZSI+S2V5PC9zcGFuPicsImlucCNua2V5LncxMDBwIiwibXNnLm10Mi5tYi0yIl0sWyJUeXBlIiwic3BuI250eXBlLmRpdi52YXQuZnM5NSJdLCc8ZGl2IGlkPSJ4dXBsb2FkIiBjbGFzcz0icGw2MCBtdDUgbWIxMCBoaWRlIj4nLCc8c3BhbiBjbGFzcz0iY3ctYXR0LXVwbG9hZCBidXR0b24gdzEwMHAiPjwvc3Bhbj4nLCc8aW5wdXQgaWQ9InVwbG9hZCIgY2xhc3M9InBsNjAiIHR5cGU9ImZpbGUiIC8+JywiPC9kaXY+Iix7cm93Q3NzOiJteS1yb3cgcHQ1IHBiMiBidXR0b25zIHBsNTAifSxbIiIsImJ1dCNidG4tdG8wLmJ1dHRvbi5ncmVlbi53OTUiLHt0eHQ6IlByZXBlbmQifSwiYnV0I2J0bi10bzEuYnV0dG9uLmdyZWVuLnc4NSIse3R4dDoiQXBwZW5kIn0sImJ1dCNidG4tY2FuY2VsLmJ1dHRvbi53NzUubXIwIix7dHh0OiJDYW5jZWwifV1dLHN0eWxlOnsiIC5jdy1hdHQtaXRlbSI6IndoaXRlLXNwYWNlOm5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nOjAuMmVtIDAgMC4yZW0gMDsgbGluZS1oZWlnaHQ6MS40ZW07IiwiIGlucHV0W3R5cGU9ZmlsZV0iOiJ3aWR0aDoyNDBweDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjA7IHBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6NjBweDtoZWlnaHQ6MzVweDsifX0sTUVkaXQ6e2RhdGE6e3RleHQ6IiIsbW9kZToiYXV0byIscmVhZG9ubHk6ITEsY29tbWl0S2V5czpbXSxjb21taXRUeXBlS2V5czp7fSxjYW5jZWxLZXlzOltdLGNhbmNlbFR5cGVLZXlzOnt9LGV4cGVjdDoic3RyaW5nIix0eXBlOiJzdHJpbmcifSxpbml0Oic8ZGl2IHN0eWxlPSJ3aWR0aDpjYWxjKDEwMCUgLSA4MHB4KTsiIGNsYXNzPSJpY21mcmFtZSBkaWIgdmF0IG10LTEgbWItMSI+PHRleHRhcmVhIGlkPSJpZWQiIHN0eWxlID0id2lkdGg6MTAwJTt4bWF4LWhlaWdodDozMDBweDsiIGNsYXNzPSJ4Z3JheSI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2IGlkPSJpZWR0eXBlIiBjbGFzcz0iaWVkdHlwZSBoaWRlIHdoaXRlIGJvbGQiIHN0eWxlPSIiPmFycmF5PC9kaXY+PGRpdiBjbGFzcz0iYnV0dG9ucyB3ODAgZGliIHZhdCB0YXIgbzEwMCBwcjMgcHQwIj48YnV0dG9uIGlkPSJidG4tY2hhbmdlIiBjbGFzcz0iYnV0dG9uIGdyZWVuIHczNiIgdGl0bGU9IkFwcGx5IGNoYW5nZXMiPjxzcGFuIGNsYXNzPSJmaS1jaGVjayI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kaXNjYXJkIiBjbGFzcz0iYnV0dG9uIHczNiIgdGl0bGU9IkRpc2NhcmQgY2hhbmdlcyI+PHNwYW4gY2xhc3M9ImZpLXgiPjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nLHVpOnsiI2llZCI6e2JpbmQ6InRleHQiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGEsYj10aGlzLGM9Yi5kYXRhLGQ9Yy50ZXh0LGU9Yy5tb2RlLGY9Im51bWJlciI9PWUsZz0hMDtpZigiYXV0byI9PWUpaWYoKChhPWQuc3Vic3RyKDAsODAwKSkubWF0Y2goLyh2YXJcc3xjb25zdFxzfGZ1bmN0aW9uW1xzXChdfHJldHVyblxzfFtcc1x0XWlmXHMpL2cpfHxbXSkubGVuZ3RoPjIpe2U9InRleHQvamF2YXNjcmlwdCI7dmFyIGg9MDtkLmxpbmVzKCkuZm9yRWFjaChmdW5jdGlvbih4LGEpe2E+MjAwfHx4Lmxlbmd0aD5oJiYoaD14Lmxlbmd0aCl9KSxoPjE1MCYmaDwxZTMmJiEwfWVsc2UvPFwvKGRpdnxzcGFufHB8YXxzY3JpcHR8aGVhZHx0aXRsZXxzdmd8cGF0aCkvLnRlc3QoYSl8fC88KHN2Z3xwYXRofGdyb3VwKVxzLy50ZXN0KGEpPyhlPSJ0ZXh0L2h0bWwiLCEwKTpDb2RlTWlycm9yLm1vZGVzLmVybGFuZyYmL14oJSVbXlxyXG5dKltcclxuXSspKltcclxuXHNcdF0qZnVuW1xyXG5cc1x0XSpcKFtcclxuXHNcdF0qXHs/Ly50ZXN0KGEpPyhlPSJlcmxhbmciLCEwKTooZT0idGV4dCIsL1tcclxuXS8udGVzdChhKXx8KCEwLGQubGVuZ3RoPDgwMCYmKGc9ITEpKSk7ZnVuY3Rpb24gaSgpe2IubXkudHJpZ2dlcigiI2llZCIsImVkaXRvcmNvbW1pdC5teSIpfWZ1bmN0aW9uIGooKXtiLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3JjYW5jZWwubXkiKX0ibnVtYmVyIj09ZT8oZT0idGV4dC9qYXZhc2NyaXB0IixnPSExKToiYjY0Ij09ZSYmKGU9InRleHQvcGxhaW4iLCEwLGc9ITEpLENvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6ZSx2aWV3cG9ydE1hcmdpbjoxMDAsbGluZU51bWJlcnM6ZyxpbmRlbnRXaXRoVGFiczohMCxpbmRlbnRVbml0OjIsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTpjLnJlYWRvbmx5LGF1dG9mb2N1czohMCxsaW5lV3JhcHBpbmc6ITAsZXh0cmFLZXlzOiQuZXh0ZW5kKHtFc2M6aiwiQ3RybC1FbnRlciI6aS5kZWJvdW5jZSgyMCksIkNtZC1FbnRlciI6aS5kZWJvdW5jZSgyMCl9LGY/e0VudGVyOml9Ont9LGMuY29tbWl0S2V5cy5jb25jYXQoYy5jb21taXRUeXBlS2V5c1tjLm1vZGVdP2MuY29tbWl0VHlwZUtleXNbYy5tb2RlXTpbXSkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09aSx4fSx7fSksYy5jYW5jZWxLZXlzLmNvbmNhdChjLmNhbmNlbFR5cGVLZXlzW2MubW9kZV0/Yy5jYW5jZWxUeXBlS2V5c1tjLm1vZGVdOltdKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFthXT1qLHh9LHt9KSxjLmNvbW1pdFR5cGVLZXlzW2MubW9kZV0/Yy5jb21taXRUeXBlS2V5c1tjLm1vZGVdOltdKX0pLGMucmVhZG9ubHkmJngubmV4dCgpLmFkZENsYXNzKCJyZWFkb25seSIpfX0sIiNidG4tY2hhbmdlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2llZCIsImVkaXRvcmNvbW1pdC5teSIpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiEheC5yZWFkb25seX19fSwiI2J0bi1kaXNjYXJkIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2llZCIsImVkaXRvcmNhbmNlbC5teSIpfX0sIiNpZWR0eXBlIjp7ZGVsYXk6MzAwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4ib2JqZWN0IiE9eC5leHBlY3QmJiJhcnJheSIhPXguZXhwZWN0fHwoeC50eXBlPSQudHlwZSh0aGlzLnBhcnNlU3RyaW5nKHgudGV4dCkpKSx4LnR5cGV9LGNzczp7ImJnLXJlZDEiOmZ1bmN0aW9uKHgpe3JldHVybiB4LnR5cGUhPXguZXhwZWN0fSwiYmctZ3JheTIiOmZ1bmN0aW9uKHgpe3JldHVybiB4LnR5cGU9PXguZXhwZWN0fSxoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEoIm9iamVjdCI9PXguZXhwZWN0fHwiYXJyYXkiPT14LmV4cGVjdCl9fSx3YXRjaDpbIiNpZWQiXX19LHBhcnNlU3RyaW5nOmZ1bmN0aW9uIF9wYXJzZVN0cmluZyh2YWwpe3ZhciBvLGVycjt0cnl7bz1KU09OLnBhcnNlKHZhbCl9Y2F0Y2goeCl7ZXJyPSEwfWlmKGVycil7dHJ5e289ZXZhbCgiKCIrdmFsKyIpIiksZXJyPSExfWNhdGNoKHgpe2Vycj0hMH0hZXJyJiYvXihvYnxhcikvLnRlc3QoJC50eXBlKG8pKSYmKG89SlNPTi5wYXJzZShjdy5saWIuanNvbihvKSkpfXJldHVybiBlcnJ8fHZvaWQgMD09PW8/dmFsOm99fSwkbXVsdGk6e2lkOiJTeXMuSlNPTi5PYmplY3QiLHBhcmFtczp7bm9ybWFsaXplZDohMH0sZGF0YTp7fSxMaXN0OltdLENNOiJ0ZXh0L2phdmFzY3JpcHQiLEY6e30sVHh0OntvYmplY3Q6WyJPYmplY3QgeyIsIn0iXSxhcnJheTpbIkFycmF5IFsiLCJdIl19LGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhO3guYWRkQ2xhc3MoImVkLW5vZGUtIitiLlBhdGhTaWcoYy5wYXRoLGMua2V5KSkseC5odG1sKGIuSFRNTCksYy5zdGF0ZT4xJiYoYi5MaXN0PWIuTWFrZUxpc3QoYi5kYXRhKSkseC50aGVuKGZ1bmN0aW9uKCl7eC5vbigiY2xpY2subXkiLCIuaWxpc3Q6ZXEoMCkgLmJ0bi1kZWwiLGZ1bmN0aW9uKGMpe2Muc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKS5wYXJlbnRzKCIubXktZm9ybSIpLmVxKDApLGU9ZC5wYXJlbnQoKS5kYXRhKCJteSIpLmRhdGEsZj1iLlJUKCJMaWIiKS5pc1N5c3RlbS5jYWxsKGQubXkoIm1hbmlmZXN0IiksZC5teSgiZGF0YSIpKSxnPSQudHlwZShlLnZhbHVlKSxoPWQubXkoImRhdGEiKS5rZXksaT1udWxsO2lmKGYpY3cubGliLm5vdGUoIkRlbGV0aW9uIGlzIG5vdCBhbGxvd2VkIiwiZXJyb3IiKTtlbHNle2lmKCJvYmplY3QiPT1nKXt2YXIgaj1PYmplY3Qua2V5cyhlLnZhbHVlKSxrPWouaW5kZXhPZihoKTtpPVtudWxsLG51bGxdLGs+MCYmKGlbMF09altrLTFdKSxrPGoubGVuZ3RoLTEmJihpWzFdPWpbaysxXSl9Yi5Ob2RlVXBkYXRlZChbZS5wYXRoLGUua2V5LGhdLGUudmFsdWVbaF0sdm9pZCAwLGkpLCJvYmplY3QiPT1nP2RlbGV0ZSBlLnZhbHVlW2hdOiJhcnJheSI9PWcmJmUudmFsdWUucmVtb3ZlQXQoaCksYi5SVCgiTGliIikucmVsaXN0KHgsYixhKX19KX0pfSx1aTp7Ii5pdmFsdWUiOntkZWxheTowLGNzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLkxpc3QubGVuZ3RofX19LCIuYnRuLWpzb24iOntkZWxheTouMDEsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuSW5saW5lQ00oeCxhKX0sYmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7eC5zdGF0ZT0xNnx4LnN0YXRlfX0scmVjYWxjOlsiLmlrZXkiLCIuaWRlc2MiXX0sIi5pa2V5Ijp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLGU9ZC5sYWJlbFdpZHRoLzN8MCxmPSIkbXVsdGkiPT14Lm1hbmlmZXN0LGc9ISEoMTYmeC5zdGF0ZSksaD1PYmplY3Quc2l6ZSh4LnZhbHVlKTtyZXR1cm4gbnVsbD09YXx8Z3x8KGg8PWQuUlQoImRhdGEiKS5tYXhEZXB0aD8oeC5zdGF0ZT0xJnguc3RhdGUmJighZnx8aCl8fCF4LmxldmVsPzI1NCZ4LnN0YXRlfDI6MjUzJnguc3RhdGV8MSwyJnguc3RhdGU/ZC5MaXN0PWQuTWFrZUxpc3QoeCk6KGQuTGlzdD1bXSxkLlNob3dJdGVtcz1udWxsKSk6KGQuTGlzdD1bXSxkLlNob3dJdGVtcz1udWxsLHguc3RhdGU9MjUzJnguc3RhdGV8MSxkLm15LmZpbmQoIi5pZGVzYyIpLnRyaWdnZXIoImNsaWNrLm15IikpLGQuUlQoIk1lbVN0YXRlIikoeCkpLDQmeC5zdGF0ZSYmZC5SVCgiU2VhcmNoUmUiKT9jPXgua2V5LnJlcGxhY2UoZC5SVCgiU2VhcmNoUmUiKSwi77+xJDHvv7AiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgi77+xIiwnPHNwYW4gY2xhc3M9Imp2YWwtZm91bmQta2V5Ij4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+Iik6KHgua2V5Lmxlbmd0aD5lJiZiLmF0dHIoInRpdGxlIix4LmtleS5lc2NhcGVIVE1MKCkpLGM9L14ofFxzKykkLy50ZXN0KHgua2V5KT8nIicreC5rZXkuZXNjYXBlSFRNTCgpKyciJzp4LmtleS50cnVuY2F0ZShlLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSwxOCZ4LnN0YXRlPyhjPSc8c3BhbiBjbGFzcz0iZnc1MDAiPicrYysiPC9zcGFuPiIsMTYmeC5zdGF0ZXx8IWh8fChjKz0nPHNwYW4gY2xhc3M9ImFkb3duIj48L3NwYW4+JykpOmgmJihjKz0nPHNwYW4gY2xhc3M9ImFyaWdodCI+PC9zcGFuPicpKSxjfSxldmVudHM6ImNsaWNrLm15IixyZWNhbGM6WyIuaXZhbHVlIiwiLmlkZXNjIiwiLmlsaXN0Il19LCIuaWRlc2MiOntkZWxheTowLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD0oYy5MaXN0LGMuVHh0W3gudHlwZV0sT2JqZWN0LnNpemUoeC52YWx1ZSkpLGU9KHgubWFuaWZlc3QsIiIpO2lmKG51bGw9PWEpe2lmKDE2Jnguc3RhdGUpZT0iIjtlbHNlIGlmKGMuTGlzdC5sZW5ndGgpZT0ib2JqZWN0Ij09eC50eXBlPyJPYmplY3QgeyIrZCsifSI6IkFycmF5IFsiK2QrIl0iO2Vsc2UgaWYoIWMuUlQoIlNlYXJjaFJlIil8fHgucGF0aC5sZW5ndGgpe3ZhciBmPWMuUlQoImoyaCIpKHgudmFsdWUsNTAsWyJpZCIsIm5hbWUiLCJsZW5ndGgiLCJzdGF0dXMiXSwiYXJyYXkiIT14LnR5cGU/MToyLCJhcnJheSIhPXgudHlwZSk7MT09Zi5sZW5ndGgmJiJzaG9ydCI9PWZbMF1bMF0mJigieyI9PWZbMF1bMV1bMF0/ZlswXVsxXT0iT2JqZWN0ICIrZlswXVsxXToiWyI9PWZbMF1bMV1bMF0mJihmWzBdWzFdPSJBcnJheSAiK2ZbMF1bMV0pKSxlKz1mLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geFswXT8nPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiI6eFsxXX0pLmpvaW4oIiIpfWVsc2UgZT0nPHNwYW4gY2xhc3M9ImxoMTE1IGRpYiB2YXQiPkZvdW5kIG5vIG5vZGVzIGNvbnRhaW5pbmcgPHNwYW4gY2xhc3M9ImJvbGRlciI+ezF9PC9zcGFuPjwvc3Bhbj4nLmFzc2lnbihjLlJUKCJkYXRhIikuc2VhcmNoLmVzY2FwZUhUTUwoKSk7Yi5odG1sKGUpfX0scmVjYWxjOlsiLml2YWx1ZSIsIi5pa2V5IiwiLmlsaXN0Il19LCIuaWxpc3QiOntkZWxheTowLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lm9uKCJjaGFuZ2UubXkiLGZ1bmN0aW9uKCl7YS5SVCgiUmVqb2luIikoYS5kYXRhLGEuTGlzdCl9LmRlYm91bmNlKDMwMCkpfSxiaW5kOiJ0aGlzLkxpc3QiLGxpc3Q6JzxkaXYgY2xhc3M9Imlyb3ciPjwvZGl2PicsaWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIlgiK3guaWR9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIlgiK3guaGFzaH0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcztyZXR1cm4gYS5SVCh4Lm1hbmlmZXN0KXx8YS5SVCgiJHN0cmluZyIpfX19fSwkc3RyaW5nOntpZDoiU3lzLkpTT04uU3RyaW5nIixDTToiYXV0byIsRjp7fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5JbmxpbmVDTSh4LGEpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIDIhPXguc3RhdGU/Yih4LnZhbHVlKToobnVsbCE9YSYmKHgudmFsdWU9YSksYih4LnZhbHVlKSk7ZnVuY3Rpb24gYih4KXt2YXIgYT0nPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPicsYj0nPHNwYW4gY2xhc3M9Im8zMCI+4oCJwrbigIk8L3NwYW4+JztyZXR1cm4geC5sZW5ndGg+MTQwP2ErPXgudHJ1bmNhdGUoMTQwKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgvXG4vZyxiKSsnJnF1b3Q7IDxzcGFuIGNsYXNzPSJpbGFiZWwiPicreC5sZW5ndGgrIiBjaGFyczwvc3Bhbj4iOmErPXguZXNjYXBlSFRNTCgpLnJlcGxhY2UoL1xuL2csYikrJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGF9fSxldmVudHM6ImlucHV0Lm15In19fSwkZm91bmQ6e2lkOiJTeXMuSlNPTi5Gb3VuZCIsQ006ImF1dG8iLEY6e30sdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO2EuSW5saW5lQ00oeCxhKX0sYmluZDpmdW5jdGlvbih4LGEpe3RoaXMubGFiZWxXaWR0aDt2YXIgYixjPXgudmFsdWU7cmV0dXJuIDgmeC5zdGF0ZSYmdGhpcy5SVCgiU2VhcmNoUmUiKT9bJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLChiPWMucmVwbGFjZSh0aGlzLlJUKCJTZWFyY2hSZSIpLCLvv7EkMe+/sSIpLnNwbGl0KCLvv7EiKSlbMF0udHJ1bmNhdGUoMTQwLCJsZWZ0Iiwi4oCmIikuZXNjYXBlSFRNTCgpLCc8c3BhbiBjbGFzcz0ianZhbC1mb3VuZC1rZXkiPicrYlsxXS5lc2NhcGVIVE1MKCkrIjwvc3Bhbj4iLGJbMl0udHJ1bmNhdGUoMTQwLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSwnPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPicsYy5sZW5ndGg+MjgwPyc8c3BhbiBjbGFzcz0iaWxhYmVsIj4nK2MubGVuZ3RoKyIgY2hhcnM8L3NwYW4+IjoiIl0uam9pbigiIik6MiE9eC5zdGF0ZT9kKHgudmFsdWUpOihudWxsIT1hJiYoeC52YWx1ZT1hKSxkKHgudmFsdWUpKTtmdW5jdGlvbiBkKHgpe3ZhciBhPSc8c3BhbiBjbGFzcz0ianZhbC1icmFja2V0Ij4mcXVvdDs8L3NwYW4+JztyZXR1cm4geC5sZW5ndGg+MTQwP2ErPXgudHJ1bmNhdGUoMTQwKS5lc2NhcGVIVE1MKCkrJyZxdW90OyA8c3BhbiBjbGFzcz0iaWxhYmVsIj4nK3gubGVuZ3RoKyIgY2hhcnM8L3NwYW4+IjphKz14LmVzY2FwZUhUTUwoKSsnPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPicsYX19LGV2ZW50czoiaW5wdXQubXkifX19LCRmdW5jdGlvbjp7aWQ6IlN5cy5KU09OLkZ1bmN0aW9uIixDTToidGV4dC9qYXZhc2NyaXB0IixGOnt9LHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7aW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7Yi5kYXRhO2IuSW5saW5lQ00oeCxiKX0sYmluZDpmdW5jdGlvbih4LGEpe2lmKDIhPXguc3RhdGUpe3ZhciBiPSIiLGM9L15bXHNcclxuXHRdKlwoP1tcc1xyXG5cdF0qZnVuY3Rpb24vLGQ9L1tcc1xyXG5cdF0qXClbXHNcclxuXHRdKiQvO2lmKHgudmFsdWUubGVuZ3RoPjEwMCl7dmFyIGU9eC52YWx1ZS5zcGxpdCgiKSIsMSlbMF07Yis9Wyc8c3BhbiBjbGFzcz0ianZhbC1mdW5jdGlvbiI+ZnVuY3Rpb24gPC9zcGFuPiAnLGUucmVwbGFjZShjLCIiKS5zcGxpdCgiKCIpWzBdLnRyaW0oKSwiKCIsZS5zcGxpdCgiKCIpWzFdKyIpIHsiLCcgPHNwYW4gY2xhc3M9ImlsYWJlbCBsaDE0MCI+JywoeC52YWx1ZS5tYXRjaCgvW1xyXG5dKy9nKXx8IiIpLmxlbmd0aCsxKyIgTE9DLCAiLHgudmFsdWUubGVuZ3RoKyIgY2hhcnMiLCI8L3NwYW4+ICIsIn0iXS5qb2luKCIiKX1lbHNlIGI9JzxzcGFuIGNsYXNzPSJqdmFsLWZ1bmN0aW9uIj5mdW5jdGlvbjwvc3Bhbj4nK3gudmFsdWUucmVwbGFjZShjLCIiKS5yZXBsYWNlKGQsIiIpLmVzY2FwZUhUTUwoKTtyZXR1cm4gYn1yZXR1cm4gbnVsbCE9YSYmKHgudmFsdWU9YSkseC52YWx1ZX0sZXZlbnRzOiJpbnB1dC5teSJ9fX0sJGJhc2U2NDp7aWQ6IlN5cy5KU09OLkJhc2U2NCIsQ006ImI2NCIsRjp7fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2IuZGF0YTtiLklubGluZUNNKHgsYil9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPSIiLGQ9dGhpcy5SVCgiQmxvYnMiKSxlPS9eaW1hZ2VcLy8udGVzdCh4Lm1pbWUrIiIpJiZ4LnZhbHVlLmxlbmd0aDw1ZTU/ZFt4Lmhhc2hdOm51bGwsZj0iIjtpZigyIT14LnN0YXRlKXt2YXIgZz1iLndpZHRoKCk7ZT8oYys9Wyc8YSBocmVmPSInK2UrJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJiYXNlNjRpbWFnZSI+JywnPGltZyBzcmM9IicrZSsnIiBjbGFzcz0iZmwgbXIxMCIvPicsIjwvYT4iXS5qb2luKCIiKSxnLT04MCk6eC5taW1lJiZ4LmZuYW1lJiYoZj14LmZuYW1lfHwidW50aXRsZWQuYmluIixjKz0nPGEgaHJlZj0iJytkW3guaGFzaF0rJyIgIGNsYXNzPSJiYXNlNjRpY28gdzU1IGg1NSB0YWMgZGliIHZhdCBtcjEwIGxncmF5IGZzMjAwIGJnLWxncmF5IGJyMiIgZG93bmxvYWQ9IicrZisnIiAgdGl0bGU9IkRvd25sb2FkICcrZisnIiAgc3R5bGU9ImxpbmUtaGVpZ2h0OjU1cHgiPjxzcGFuIGNsYXNzPSInKyh4Lmljb3x8ImZpLWFyY2hpdmUiKSsnIj48L3NwYW4+PC9hPicsZy09ODApO3ZhciBoPShnLzEwKjIuNXwwKS5jbGFtcCgxNDAsNjAwKTtyZXR1cm4gYys9JzxkaXYgY2xhc3M9ImRpYiB2YXQgYmFzZTY0c3RyaW5nIj4nLGMrPSciJyx4LnZhbHVlLmxlbmd0aD5oP2MrPXgudmFsdWUudHJ1bmNhdGUoaCkrJyImbmJzcDs8YSBocmVmPSInK2RbeC5oYXNoXSsnIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImlsYWJlbCB0ZG4iPicrKGU/Ik9wZW4iOiJEb3dubG9hZCIpKyImbmJzcDsiK3guc2l6ZS5tZXRyaWMoMikrImI8L2E+IjpjKz14LnZhbHVlKyciJyxlJiYoYys9IjwvZGl2PiIpLGN9cmV0dXJuIG51bGwhPWEmJih4LnZhbHVlPWEpLHgudmFsdWV9LGV2ZW50czpbImlucHV0Lm15Il19fSxNaW1lOnsiYXBwbGljYXRpb24veC1jb21wcmVzc2VkIjovXC56aXAkL2ksImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCI6L1wueGxzeD8kL2ksImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI6L1wuKGNkcnxkYXR8cmFyKSQvaSwiYXBwbGljYXRpb24vanNvbiI6L1wuKGpzbnxqc29uKSQvaSwiYXBwbGljYXRpb24vamF2YXNjcmlwdCI6L1wuanMkL2ksImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50IjovXC5kb2N4JC9pLCJhcHBsaWNhdGlvbi9tc3dvcmQiOi9cLmRvYz8kL2ksImFwcGxpY2F0aW9uL3BkZiI6L1wucGRmJC9pLCJ0ZXh0L3BsYWluIjovXC50eHQkL2ksInRleHQvaHRtbCI6L1wuKFt4XT9odG1bbF0/KSQvaSwidGV4dC94bWwiOi9cLih4bWx8eHNkfHhzZnx4c2x8eHNsdCkkL2ksImltYWdlL3BuZyI6L1wucG5nJC9pLCJpbWFnZS9qcGVnIjovXC5qcGU/ZyQvaSwiaW1hZ2UvZ2lmIjovXC5naWYkL2ksImltYWdlL3N2Zyt4bWwiOi9cLnN2ZyQvaX0sSWNvOnsiZmktcGhvdG8iOi9cLihwbmd8anBbZV0/Z3xnaWZ8dGlmW2ZdP3xibXB8c3ZnKSQvaSwiZmktc29jaWFsLWFkb2JlIjovXC4ocGRmfGFpfHBzZCkkL2ksImZpLXBhZ2UtZG9jIjovXC4oZG9jW3hdP3x0eHR8cnRmKSQvaSwiZmktZ3JhcGgtcGllIjovXC4oeGxzW3hdP3xjc3YpJC9pLCJmaS1hcmNoaXZlIjovXC4oemlwfHJhcnw3enw3emlwKSQvaSwiZmktaHRtbDUgcGwyIjovXC4oaHRtW2xdfHBocCkkL2ksImZpLWNzczMgcGwyIjovXC5jc3MkL2ksImZpLXdpZGdldCI6L1wuKGpzW29uXT98cGhwfGFzcHxqYXJ8Y3xlcmwpJC9pLCJmaS1zb3VuZCI6L1wuKHdhdnxhaWZmfG1wM3xvZ2d8bXBlZzMpJC9pfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPWIuZGF0YTtpZih4LmFkZENsYXNzKCJlZC1ub2RlLSIrYi5QYXRoU2lnKGMucGF0aCxjLmtleSkpLHguaHRtbChiLkhUTUwpLCFjLnNpZyl7dmFyIGQ9L15kYXRhOmltYWdlXC8oanBlZ3xwbmd8Z2lmfHN2Z1wreG1sKTtiYXNlNjQsLyxlPWQudGVzdChjLnZhbHVlKSxmPWU/Yy52YWx1ZS5yZXBsYWNlKGQsIiIpOmMudmFsdWU7aWYoYy5zaXplPShmLmxlbmd0aC80KjMpLmZsb29yKCksYy5zaWc9YT13aW5kb3cuYXRvYihmLnRvKDQwMCkpLGUpYy5taW1lPWMudmFsdWUudG8oMzApLnNwbGl0KCI7YmFzZTY0IilbMF0uc3BsaXQoIjoiKVsxXTtlbHNlIGlmKCLDv8OYw7/DoCI9PT1hLnRvKDQpP2MubWltZT0iaW1hZ2UvanBlZyI6IsKJUE5HIj09PWEudG8oNCk/Yy5taW1lPSJpbWFnZS9wbmciOi9ePFw/eG1sLy50ZXN0KGEpJiYvPHN2Z1xzdmVyc2lvblxzKj1ccyoiMVwuXGQiLy50ZXN0KGEpJiYoYy5taW1lPSJpbWFnZS9zdmcreG1sIiksIWMubWltZSYmMz09Yy5wYXRoLmxlbmd0aCYmIl9hdHRhY2htZW50cyI9PWMucGF0aFsxXSl7dmFyIGcsaD0iZmktcGFwZXJjbGlwIixpPSJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLGo9Yy5wYXRoWzJdO2ZvcihnIGluIGIuTWltZSliLk1pbWVbZ10udGVzdChqKSYmKGk9Zyk7Zm9yKGcgaW4gYi5JY28pYi5JY29bZ10udGVzdChqKSYmKGg9Zyk7Yy5taW1lPWksYy5pY289aCxjLmZuYW1lPWp9Yy5taW1lPWMubWltZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsYi5SVCgiQmxvYnMiKVtjLmhhc2hdPVVSTC5jcmVhdGVPYmplY3RVUkwoJC5teS5mLmJhc2U2NDJibG9iKGMudmFsdWUucmVwbGFjZSgvXmRhdGE6aW1hZ2VcLyhqcGVnfHBuZ3xnaWZ8c3ZnXCt4bWwpO2Jhc2U2NCwvLCIiKSxudWxsLGMubWltZSkpfX19LCRudW1iZXI6e2lkOiJTeXMuSlNPTi5OdW1iZXIiLENNOiJudW1iZXIiLEY6e04yUzpmdW5jdGlvbih4KXt2YXIgYT0nPHNwYW4gY2xhc3M9Imp2YWwtbnVtYmVyIj4nK3gudG9TdHJpbmcoKSsiPC9zcGFuPiI7cmV0dXJuIHg8MWUxMyYmeD44ZTExJiZ4PT09KCt4KS5mbG9vcigpJiYoYSs9JyA8c3BhbiBjbGFzcz0iaWxhYmVsIHhncmF5IGxoMTQwIHZhdCBtdDQiPjxzcGFuIGNsYXNzPSJmaS1jbG9jayI+PC9zcGFuPiAnK0RhdGUuY3JlYXRlKHgpLmZvcm1hdCgie2R9IHtNb259IHt5eXl5fSwge0h9OnttbX06e3NzfSwgTG9jYWwiKSsiPC9zcGFuPiIpLGF9LENhbGM6ZnVuY3Rpb24ocyxwcmV2KXtpZighaXNOYU4ocykpcmV0dXJuK3M7dmFyIG49bnVsbDt0cnl7bj1ldmFsKCIoIitzKyIpIil9Y2F0Y2goeCl7fXJldHVybiBudWxsPT09bnx8aXNOYU4obik/cHJldjorbn19LHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7aW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGE7Yi5JbmxpbmVDTSh4LGIsZnVuY3Rpb24oYSxkKXtjLnZhbHVlPWIuRi5DYWxjKGEsZCkseC50cmlnZ2VyKCJjaGVjayIpfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPXgudmFsdWUrIiI7cmV0dXJuIDgmeC5zdGF0ZSYmdGhpcy5SVCgiU2VhcmNoUmUiKT9bKGI9Yy5yZXBsYWNlKHRoaXMuUlQoIlNlYXJjaFJlIiksIu+/sSQx77+xIikuc3BsaXQoIu+/sSIpKVswXS50cnVuY2F0ZSgxNDAsImxlZnQiLCLigKYiKS5lc2NhcGVIVE1MKCksJzxzcGFuIGNsYXNzPSJqdmFsLWZvdW5kLWtleSI+JytiWzFdLmVzY2FwZUhUTUwoKSsiPC9zcGFuPiIsYlsyXS50cnVuY2F0ZSgxNDAsInJpZ2h0Iiwi4oCmIikuZXNjYXBlSFRNTCgpXS5qb2luKCIiKToxPT14LnN0YXRlfHw0PT14LnN0YXRlP3RoaXMuRi5OMlMoeC52YWx1ZSk6KG51bGwhPWEmJih4LnZhbHVlPXRoaXMuRi5DYWxjKGEseC52YWx1ZSkpLHRoaXMuRi5OMlMoeC52YWx1ZSkpfSxldmVudHM6ImlucHV0Lm15In19fSwkYm9vbGVhbjp7aWQ6IlN5cy5KU09OLkJvb2xlYW4iLHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC52YWx1ZT0heC52YWx1ZSx0aGlzLk5vZGVVcGRhdGVkKFt4LnBhdGgseC5rZXldLCF4LnZhbHVlLHgudmFsdWUpKSx0aGlzLlZbeC52YWx1ZT8xOjBdfSxldmVudHM6ImNsaWNrLm15In19LFY6Wyc8c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIGdyYXkgbWwtOSI+dHJ1ZTwvc3Bhbj48c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIHllbGxvdy0xIGJnLXllbGxvdzUiPmZhbHNlPC9zcGFuPicsJzxzcGFuIGNsYXNzPSJpYm9vbGVhbi10YWcgYmx1ZS0xIGJnLWJsdWU0IG84MCBtbC05Ij50cnVlPC9zcGFuPjxzcGFuIGNsYXNzPSJpYm9vbGVhbi10YWcgZ3JheSI+ZmFsc2U8L3NwYW4+J119LCRudWxsOntpZDoiU3lzLkpTT04uTnVsbCIsdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuJzxzcGFuIGNsYXNzPSJyZWQgbzgwIj5udWxsPC9zcGFuPid9fX19LHN0YW1wOjE2NDI4NjA2MTkxNzV9LCJjdy5Db3VjaC5Nb25pdG9yIjp7aWQ6ImN3LkNvdWNoLk1vbml0b3IiLGJ1aWxkOjY0LFZlcnNpb246IjIuMSIscGFyYW1zOntyZXN0eWxlOjQwLHN0cmljdDohMH0sZGF0YTp7c2VhcmNoOiIiLGNtZDoiIixkb2M6e25hbWU6IlVubmFtZWQgbWVzaCIsdHlwZToiY291Y2hzdGF0cyIsY3J5cHRvOiItIixub2RlczpbXSxsb2c6W119fSxDb25maWc6e3N0YXRzU2NhbGVZOjEuNSxzdGF0c01heEdyYXBoczo0LHN0YXRzTWF4VGltZWZyYW1lOjkwMCxzdGF0c1JlZnJlc2g6MTAsc2VyaWVNYXhMZW5ndGg6MWU0fSxDZmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5Db25maWd9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLmRhdGEsYS5kYXRhLmRvYyk7aWYoYS5Nb3VudCh4KSxiLm5vZGVzLmxlbmd0aHx8Yi5ub2Rlcy5wdXNoKCQuZXh0ZW5kKCEwLHt9LGEuZGVmYXVsdE5vZGVzWyIxLngiXSkpLGIubm9kZXMuZm9yRWFjaChhLkFwcGx5UHJlc2V0cyksWyJOb2RlIiwiU2VyaWUiLCJHYXVnZSJdLmZvckVhY2goZnVuY3Rpb24oeCl7WyJzZWxlY3QyIiwiUmVxIl0uZm9yRWFjaChmdW5jdGlvbihiKXthW3hdW2JdPWFbYl19KX0pLHguaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2EuVGltZXI9ZnVuY3Rpb24oKXskLm15LnJhZGlvKCJjb3VjaF9tb25pdG9yX3RpbWVyIixEYXRlLm5vdygpKX0uZXZlcnkoMmUzKX0uZGVib3VuY2UoMTAwKSksY3cubGliLnNjcm9sbFkmJmN3LmxpYi5zY3JvbGxZKHgpLCFjdy5tZSgpKXJldHVybiAkLkRlZmVycmVkKCkucmVqZWN0KDQwMSwiWW91IG5lZWQgdG8gbG9nIGluIHRvIHNlZSBzdGF0cyIse29rOiExLHJlYXNvbjoiY29uZmlnIn0pLnByb21pc2UoKX0sdWk6eyIjbW5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuKHguZG9jLm5hbWV8fCJVbnRpdGxlZCBtb25pdG9yaW5nIGdyb3VwIikuZXNjYXBlSFRNTCgpfX0sIiNub2RlcyI6e2JpbmQ6ImRvYy5ub2RlcyIsbGlzdDonPGRpdiBjbGFzcz0ibm5vZGUiPjwvZGl2PicsaWQ6WyJuYW1lIl0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuTm9kZX0sY3NzOntub3RpdGxlOmZ1bmN0aW9uKHgpe3JldHVybiB4LmRvYy5ub2Rlcy5sZW5ndGg8Mn19fSwiI2J0bi11cGRhdGUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmJC5teS5yYWRpbygiY291Y2hfbW9uaXRvcl9yZWZyZXNoIiwhMCl9fX0sZGllOmZ1bmN0aW9uKCl7dGhpcy5UaW1lci5jYW5jZWwoKX0sc2VsZWN0MjpmdW5jdGlvbih4LGEpe3JldHVybiB4LnNlbGVjdDIoYSl9LEF1dG9TYXZlTm9kZTpmdW5jdGlvbigpe30sTHM6ZnVuY3Rpb24oKXt9LE1vdW50OmZ1bmN0aW9uKCl7fSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCB4Z3JheSBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzEycCBmczk1IG1sNiBoaWRlIj48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIHhncmF5IG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IlNlYXJjaCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsiIG9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykuYmx1cigpIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCI+PGJ1dHRvbiBpZD0iYnRuLXVwZGF0ZSIgY2xhc3M9Inc0MCBtcjIiIHRpdGxlPSJVcGRhdGUiPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0ibW5hbWUiIGNsYXNzPSJkaWIgZnMxODAgbGgxMjAgbXQtMiBib2xkZXIgdmF0IG53IG9oIGVsbCBwcjYgcGw2IiBzdHlsZT0id2lkdGg6Y2FsYygzNSUgLSA0MnB4KTsiPjwvZGl2PjxkaXYgaWQ9Im1jb250cm9scyIgY2xhc3M9ImZyIG5vY3dtaW4gdGFyIiBzdHlsZT0id2lkdGg6Y2FsYyg1MyUgLSA2cHgpOyI+PGRpdiBjbGFzcz0iZmwiPjxidXR0b24gaWQ9ImJ0bi1hZGQiIGNsYXNzPSJ0ZWFsIG1yMTAgdGFjIj48c3BhbiBjbGFzcz0iZmktcGx1cyBvNTAiPjwvc3Bhbj4gQWRkLi4uPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCB3NjBwIHRhbCIgc3R5bGU9Im1heC13aWR0aDoyNTBweDsiPjxpbnB1dCBpZD0iZW5jcnlwdCIgdHlwZT0idGV4dCIgY2xhc3M9IncxMDBwIGZzMTEwIHZhdCBwcjIiPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1zYXZlIiBjbGFzcz0iZ3JlZW4gbXIyIHRhYyI+wqBTYXZlwqA8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tY2xvc2UiIGNsYXNzPSJ0YWMiPsKgQ2xvc2XCoDwvYnV0dG9uPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJub2RlLXRpbGVzIiBjbGFzcz0icGFuZWxoZWlnaHQgcGwyMCBmZWF0aGVyIHcxMDBwIj48ZGl2IGlkPSJub2RlcyIgY2xhc3M9Im5ub2RlcyB4Z3JheSB3MTAwcCBwYW5lbGhlaWdodCI+PC9kaXY+PC9zZWN0aW9uPicsUHJlc2V0czp7UlBTOntuYW1lOiJSZXF1ZXN0IHJhdGUiLG1vZGU6InN1bSIsbmFtZXM6WyJSZXF1ZXN0IHJhdGUiLCIyMFgiLCI0MFgiLCI1MDAiXSx1bml0czpbInJlcS9zIiwicmVxIiwicmVxIiwicmVxIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDUwLDIwOSwwLDAuNjkpIiwiIHJnYmEoMjU1LDEyMywwLDAuNjkpIiwiIHJnYmEoMjI5LDAsMjM1LDAuNjkpIl0sZmllbGRzOltbIjIwMCIsIjIwMSIsIjIwMiIsIjQwMCIsIjQwMSIsIjQwMyIsIjQwNCIsIjQwOSIsIjUwMCJdLFsiMjAwIiwiMjAxIiwiMjAyIl0sWyI0MDAiLCI0MDEiLCI0MDMiLCI0MDQiLCI0MDkiXSxbIjUwMCJdXSxyb3dzOltbMF0sWzBdLFswXSxbMF1dLHRpbWU6WzEwXX0sREJSVzp7bmFtZToiREJzIHJlYWRzL3dyaXRlcyByYXRlIixtb2RlOiJzdW0iLG5hbWVzOlsiUlcgcmF0ZSIsIlJlYWRzIiwiV3JpdGVzIiwiVmlldyByZWFkcyJdLHVuaXRzOlsiREIgb3BzL3MiLCJvcHMiLCJvcHMiLCJvcHMiXSxjb2xvcnM6WyJpbmhlcml0IiwiIHJnYmEoMzUsMTM3LDI1NSwwLjU4KSIsIiByZ2JhKDI1NSwzOCwxMTcsMC41OCkiLCIgcmdiYSgyNTUsMTk1LDAsMC44KSJdLGZpZWxkczpbWyJkYXRhYmFzZV9yZWFkcyIsImRhdGFiYXNlX3dyaXRlcyJdLFsiZGF0YWJhc2VfcmVhZHMiXSxbImRhdGFiYXNlX3dyaXRlcyJdLFsidmlld19yZWFkcyJdXSxyb3dzOltbMF0sWzBdLFswXV0sdGltZTpbMTBdfSxBVVRIOntuYW1lOiJBdXRoIGhpdHMgYW5kIG1pc3NlcyIsbW9kZToic3VtIixuYW1lczpbIkF1dGggaGl0cy9taXNzZXMgcnBzIiwiSGl0cyIsIk1pc3NlcyJdLHVuaXRzOlsiYXV0aCBycHMiLCJyZXEiLCJyZXEiXSxjb2xvcnM6WyJpbmhlcml0IiwiIHJnYmEoMjAsMjMyLDAsMC42OSkiLCIgcmdiYSgyNTUsMzgsMzgsMC42OSkiXSxmaWVsZHM6W1siYXV0aF9jYWNoZV9oaXRzIiwiYXV0aF9jYWNoZV9taXNzZXMiXSxbImF1dGhfY2FjaGVfaGl0cyJdLFsiYXV0aF9jYWNoZV9taXNzZXMiXV0scm93czpbWzBdLFswXSxbMF1dLHRpbWU6WzEwXX0sRkVFRFM6e25hbWU6Ik51bWJlciBvZiBjb250aW51b3VzIF9jaGFuZ2VzIGZlZWRzIGFjdGl2ZSIsbmFtZXM6WyJDb250aW51b3VzIF9jaGFuZ2VzIGZlZWRzIiwiRmVlZHMiXSx1bml0czpbInN5bmMgZmVlZHMiLCIiXSxjb2xvcnM6WyJpbmhlcml0IiwiIHJnYmEoODYsMTIzLDE3MiwwLjYyKSJdLGZpZWxkczpbWyJjbGllbnRzX3JlcXVlc3RpbmdfY2hhbmdlcyJdLFsiY2xpZW50c19yZXF1ZXN0aW5nX2NoYW5nZXMiXV0scm93czpbWzBdLFswXV0sdGltZTpbMTBdLG1vZGU6ImN1cnJlbnQifSxGSUxFUzp7bmFtZToiT3BlbiBPUyBmaWxlcyIsbmFtZXM6WyJGaWxlcyIsIkZpbGVzIl0sdW5pdHM6WyJvcGVuIGZpbGVzIiwiIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDg2LDEyMywxNzIsMC42MikiXSxmaWVsZHM6W1sib3Blbl9vc19maWxlcyJdLFsib3Blbl9vc19maWxlcyJdXSxyb3dzOltbMF0sWzBdXSx0aW1lOlsxMF0sbW9kZToiY3VycmVudCJ9LFJBTTp7bmFtZToiUkFNIixuYW1lczpbIlJBTSwgTWIiLCJOb2RlIFJBTSwgTWIiXSx1bml0czpbIk1iIFJBTSIsIk1iIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDYzLDE2OSwxNTgsMC42MikiXSxkZW5vbWluYXRvcjoxMDQ4NTc2LGZpZWxkczpbWyJhdG9tIiwiYmluYXJ5IiwiY29kZSIsImV0cyIsIm90aGVyIiwicHJvY2Vzc2VzIl0sWyJhdG9tIiwiYmluYXJ5IiwiY29kZSIsImV0cyIsIm90aGVyIiwicHJvY2Vzc2VzIl1dLHJvd3M6W1swXSxbMF1dLHRpbWU6WzEwXSxtb2RlOiJjdXJyZW50In0sVVBUSU1FOntuYW1lOiJVcHRpbWUiLG5hbWVzOlsiVXB0aW1lLCBkYXlzIiwiRGF5cyJdLHVuaXRzOlsiZGF5cyB1cHRpbWUiLCJkYXlzIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDYzLDE2OSwxNTgsMC42MikiXSxkZW5vbWluYXRvcjo4NjQwMCxmaWVsZHM6W1sidXB0aW1lIl0sWyJ1cHRpbWUiXV0scm93czpbWzBdLFswXV0sdGltZTpbMTBdLG1vZGU6ImN1cnJlbnQifX0sZGVmYXVsdE5vZGVzOnsiMS54Ijp7bmFtZToiTm9kZSAxIixjb3VjaDoiMS54Iix1cmw6Ii8iLGhlYWx0aDoiIixnYXVnZXM6W3tuYW1lOiJPcGVuIGZpbGVzIixwcmVzZXQ6IkZJTEVTIn0se25hbWU6IkFjdGl2ZSBfY2hhbmdlcyBmZWVkcyIscHJlc2V0OiJGRUVEUyJ9XSxzZXJpZXM6W3tuYW1lOiJSZXF1ZXN0IHJhdGUiLHByZXNldDoiUlBTIn0se25hbWU6IkRCcyBSL1cgcmF0ZSIscHJlc2V0OiJEQlJXIn1dfSwiMi54Ijp7bmFtZToiTm9kZSAxIixjb3VjaDoiMi54Iix1cmw6Ii8iLGhlYWx0aDoiIixnYXVnZXM6W3tuYW1lOiJPcGVuIGZpbGVzIixwcmVzZXQ6IkZJTEVTIn0se25hbWU6IkFjdGl2ZSBfY2hhbmdlcyBmZWVkcyIscHJlc2V0OiJGRUVEUyJ9LHtuYW1lOiJVcHRpbWUiLHByZXNldDoiVVBUSU1FIn1dLHNlcmllczpbe25hbWU6IlJlcXVlc3QgcmF0ZSIscHJlc2V0OiJSUFMifSx7bmFtZToiREJzIFIvVyByYXRlIixwcmVzZXQ6IkRCUlcifSx7bmFtZToiUkFNIixwcmVzZXQ6IlJBTSJ9XX19LFJlcTpmdW5jdGlvbih4KXt2YXIgYT0kLmV4dGVuZCghMCx7fSx4KTtyZXR1cm4gJC5hamF4KGEpfSxBcHBseVByZXNldHM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QcmVzZXRzLGI9T2JqZWN0LmlzQXJyYXk7cmV0dXJuKHguc2VyaWVzfHxbXSkuZm9yRWFjaChjKSwoeC5nYXVnZXN8fFtdKS5mb3JFYWNoKGMpLHg7ZnVuY3Rpb24gYyhjKXtpZihjLnByZXNldCYmYVtjLnByZXNldF0pe3ZhciBkPWFbYy5wcmVzZXRdLGU9T2JqZWN0LnNlbGVjdChjLFsicm93cyIsInRpbWUiXSk7cmV0dXJuICQuZXh0ZW5kKGMsT2JqZWN0LmNsb25lKGQsITApLGUpLGIoYy5yb3dzKSYmYihjLnRpbWUpfHwoYy5yb3dzPU9iamVjdC5jbG9uZShkLnJvd3MsITApLGMudGltZT1bMTBdKSxjLnJvd3MubGVuZ3RoPGMuZmllbGRzLmxlbmd0aCYmKGMucm93cz1jLnJvd3MuYWRkKE9iamVjdC5jbG9uZShkLnJvd3MsITApKS50byhjLmZpZWxkcy5sZW5ndGgpKSx4fX19LEdlbkF4aXM6ZnVuY3Rpb24oeCl7dmFyIGE9eC5DZmcoKS5zdGF0c01heFRpbWVmcmFtZSxiPTYwKnguQ2ZnKCkuc3RhdHNTY2FsZVksYz14LlQuUGl2b3RYLGQ9eC5ULlBpdm90WSxlPXguVC5QaXZvdFRleHQsZj1bXSxnPVtdO3JldHVybiB4LkF4aXMuaDYwPT1iP3guQXhpczooNy4udGltZXMoZnVuY3Rpb24oeCl7Zi51bnNoaWZ0KGMuYXNzaWduKCJNMCx7Mn0gTHsxfSx7Mn0gIi5hc3NpZ24oYSsyMDAseCooYi82KSsuNSksIiByZ2JhKDE1OCwxNzQsMTkyLCIrKHg/Nj09eD8iMC40KSI6IjAuMTUpIjoiMC4yNSkiKSkpfSksKGEvNjApLnRpbWVzKGZ1bmN0aW9uKHgpe3ZhciBhPXgrMTtnLnVuc2hpZnQoZC5hc3NpZ24oIk17MX0sMCBMezF9LHsyfSAiLmFzc2lnbig2MCphLGIpLCIgcmdiYSgxNTgsMTc0LDE5MiwwLjM1KSIpK2UuYXNzaWduKDYwKmErMiwi4oiSIithKyJtaW4iKSl9KSx4LkF4aXM9e2g2MDpiLGF4aXN4OmZbMF0scGl2b3RzeDpmLnNsaWNlKDEpLmpvaW4oIiIpLHBpdm90c3k6Zy5qb2luKCIiKX0pfSxHZW5HcmFwaHM6ZnVuY3Rpb24oeCl7dmFyIGE9eC5kYXRhLGI9eC5oQmFyLGM9eC5DZmcoKS5zdGF0c01heFRpbWVmcmFtZSxkPXguQ2ZnKCkuc3RhdHNNYXhHcmFwaHMsZT14LkNmZygpLnN0YXRzU2NhbGVZLGY9NjAqZSxnPWEuZmllbGRzLmxlbmd0aCxoPWEucm93cy5zbGljZSgwKSxpPWEudGltZS5zbGljZSgxKSxqPWEuY29sb3JzLGs9YS5uYW1lcyxsPWEudW5pdHMsbT1hLmRlbm9taW5hdG9yfHwxLG49YS50aW1lWzBdLzEwLG89eC5BeGlzLHA9by5heGlzeCxxPW8ucGl2b3RzeCxyPW8ucGl2b3RzeSxzPXguVC5CYXIsdD14LlQuR3JhcGgsdT14LlQuTGluZSx2PXguVC5CYXJUaXAsdz1bXTtFKCksaS5sZW5ndGgudGltZXMoZnVuY3Rpb24oeCl7dmFyIGo9aVt4XS8xMCxvPTEscD1bXTtpZihuLT1qLGo+Yyl7aWYody5sZW5ndGg+PWQpcmV0dXJuO3ZhciBxPUUobixqKTtvPXEvaixqPXF9Zy50aW1lcyhmdW5jdGlvbihkKXtpZihkKXt2YXIgZz1oW2RdW3grMV18fDAsaT13WzBdLmxpbmVzW2RdLGs9d1swXS5kdCxsPXdbMF0uZHg7aWYocC5wdXNoKGcpLCEobCtrPjIqYysyMDApKXt2YXIgbj0iY3VycmVudCI9PWEubW9kZT9mKy41LWIoZypvL20sMSkqZTpmKzEtYihnKm8vbSxqKSplKi45OTE4O2krPWk/Ikx7MX0sezN9IEx7Mn0sezN9ICIuYXNzaWduKEQobCtrKyhqLzMpLmNsYW1wKDAsMykpLEQobCtrK2opLG4pOiJNezF9LHszfSBMezJ9LHszfSAiLmFzc2lnbihEKGwpLEQobCtrK2opLG4pLHdbMF0ubGluZXNbZF09aX19fSksd1swXS5kdCs9aix3WzBdLmNvdmVycys9cy5hc3NpZ24oIiIsaix2LmFzc2lnbih7dGltZTpEYXRlLmNyZWF0ZSgxZTMqKG4raikpLmZvcm1hdCgie2R9IHtNb259IHt5eXl5fSwge0hIfTp7bW19Ontzc30iKSxkdXI6IkR1cmF0aW9uOiAiK2oucm91bmQoMSkrInMiLHJvd3M6cC5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4ga1thKzFdKyI6ICIrKG8qeC9tKS5yb3VuZCgxKSsiICIrbFthKzFdfSkuam9pbigiXG4iKX0pKX0pLHcucmV2ZXJzZSgpO3ZhciB5PXgubXkucm9vdCgpLndpZHRoKCl8fDAsej0oeT4wPyh5LTEwMC00MSkuY2xhbXAoMzAwLDNlMyk6eC5QcmV2V2lkdGgpfHwzMDAsQT1HKHdbMF0uZHQpLEI9d1sxXT93WzFdLmR0OjAsQz13WzJdP3dbMl0uZHQ6MDtyZXR1cm4geC5QcmV2V2lkdGg9eix3WzBdLndpZHRoPXosejw0NTA/dy5sZW5ndGg9MTp6PDcyMD9CPyhCPUIuY2xhbXAoMTUwLHovMyksd1swXS53aWR0aD1BPSh6LUIpLmNsYW1wKDMwMCwxZTYpLHdbMV0ud2lkdGg9ei1BLTMxLHcubGVuZ3RoPTIpOncubGVuZ3RoPTE6QiYmIUM/KEI9RyhCLmNsYW1wKDEyMCx6LzMpKSx3WzBdLndpZHRoPUE9KHotQikuY2xhbXAoMzAwLDFlNiksd1sxXS53aWR0aD16LUEtMzEsdy5sZW5ndGg9Mik6Qz8od1sxXS53aWR0aD1CPUIuY2xhbXAoMTIwLHovMy41LTMxKSx3WzJdLndpZHRoPUM9Qy5jbGFtcCgxMjAsei8xLjgtQi02MSksd1swXS53aWR0aD16LUItQy02MSx3Lmxlbmd0aD0zKTp3Lmxlbmd0aD0xLHcuZm9yRWFjaChGKSx3O2Z1bmN0aW9uIEQoeCl7cmV0dXJuIHguY2xhbXAoLWMtMjAwLGMrMjAwKS5yb3VuZCgyKX1mdW5jdGlvbiBFKHgsYSl7dmFyIGI9e2VuZDoiIix3aWR0aDowLGR4OjAsZHQ6MCxsaW5lczpbIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiJdLnRvKGcpLGNvdmVyczoiIixzdmc6IiJ9LGM9MDtpZih4KXt2YXIgZD1EYXRlLmNyZWF0ZShNYXRoLnJvdW5kKDFlMyp4KSkuY2xvbmUoITApLmNsb25lKCEwKTtkLnNldE1pbGxpc2Vjb25kcygwKSxkLnNldFNlY29uZHMoMCksZC5hZGRNaW51dGVzKDEpLE1hdGguYWJzKHgtZC52YWx1ZU9mKCkvMWUzKTw1JiZkLmFkZE1pbnV0ZXMoMSksYz1NYXRoLnJvdW5kKGQudmFsdWVPZigpLzEwMCkvMTAteCxiLmVuZD1kLmZvcm1hdCgne0hIfTp7bW19PGJyPjxzcGFuIGNsYXNzPSJmczgwIG83MCI+e3l5eXl9wrd7TU19wrd7ZGR9PC9zcGFuPicpfXJldHVybiB3LnVuc2hpZnQoYiksY3x8YX1mdW5jdGlvbiBGKHgsYSl7eC5zdmc9dC5hc3NpZ24oeC53aWR0aC0xLGYrMSxxKyhhP3I6IiIpK3gubGluZXMubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGE/dS5hc3NpZ24oeCxqW2FdKToiIn0pLmpvaW4oIiIpK3ApfWZ1bmN0aW9uIEcoeCl7cmV0dXJuIDYwKihNYXRoLmZsb29yKHgvNjApKzEpfX0sc3R5bGU6eyIiOiJmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS40ZW07IiwiICNub2RlLXRpbGVzIjoiIiwiIC53MTJwIjoid2lkdGg6MTIlOyIsIiAudzE4cCI6IndpZHRoOjE4JTsiLCIgLm5ub2RlcyI6eyIiOiJwYWRkaW5nOjE2cHggNHB4IDBweCAwcHg7IiwiIC5ubm9kZSI6eyIiOlsiYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwyMTksMjM0LDApOyBib3JkZXItcmFkaXVzOiAzcHg7ICIsInBhZGRpbmc6MnB4IDE1cHggMTBweCAxNXB4OyBtYXJnaW46IDBweCAxNnB4IDE2cHggMDtiYWNrZ3JvdW5kOiNmNGY4ZmE7Il0sIiAubnNlcmllcyI6IndpZHRoOiBjYWxjKDEwMCUgLSAxMTBweCk7IiwiIC5udGl0bGUiOiJib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgcmdiYSgxNjAsMTc2LDE5MiwwLjU2KTsiLCIgLnBhbGViZyI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiIC5ndW5pdHMiOiJmb250LXNpemU6MTA1JTsgbGluZS1oZWlnaHQ6MS4yZW07IiwiIC5ndmFsIjoiZm9udC1zaXplOjE4MCU7IGxpbmUtaGVpZ2h0OjFlbTsiLCIgLmduYW1lcyI6eyIiOiJvcGFjaXR5OiAwLjM7IHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgZm9udC1zaXplOjAuN2VtOyBsaW5lLWhlaWdodDoxLjE1ZW07IGZvbnQtd2VpZ2h0OjUwMDsiLCI+c3BhbiI6IiB3aGl0ZS1zcGFjZTogbm93cmFwOyJ9LCIucmVkMSI6eyIgLnJoaXN0byAucnNoaW0iOiJib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2ZmNzE4MDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxMjcsMTI5LDAuMik7IiwiIC5yaGlzdG8gLnJzaGltPmRpdiI6ImJvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDI1NSwxMjcsMTI5LDAuNyk7In19LCIubm90aXRsZSI6eyIgLm50aXRsZSI6ImRpc3BsYXk6bm9uZTsiLCIgLm5ub2RlIjoicGFkZGluZy10b3A6OHB4OyJ9fSwiIC5yZ2F1Z2UiOmZ1bmN0aW9uKCl7dmFyIHg9NjAqdGhpcy5DZmcoKS5zdGF0c1NjYWxlWTtyZXR1cm57IiI6ImRpc3BsYXk6YmxvY2s7IHBhZGRpbmctdG9wOiA1cHg7IGhlaWdodDp7MX1weDsgIi5hc3NpZ24oeCsxNiksIjphZnRlciI6Wydjb250ZW50OiIiOyBoZWlnaHQ6ezF9cHg7IHdpZHRoOjFweDsgdG9wOjhweDsgcmlnaHQ6MHB4OycuYXNzaWduKHgrNCksInBvc2l0aW9uOmFic29sdXRlOyBib3JkZXItcmlnaHQ6MXB4IGRvdHRlZCByZ2JhKDE2MCwxNzYsMTkyLDAuNTYpOyAiXX19LCIgLnJzZXJpZSI6eyIiOmZ1bmN0aW9uKCl7dmFyIHg9NjAqdGhpcy5DZmcoKS5zdGF0c1NjYWxlWTtyZXR1cm4iZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgcGFkZGluZy10b3A6IDVweDsgaGVpZ2h0OnsxfXB4OyBvdmVyZmxvdzpoaWRkZW47Ii5hc3NpZ24oeCsxNil9LCI6aG92ZXIiOnsiIC5nbmFtZXMiOiJvcGFjaXR5OjE7IiwiIC5wYWxlYmciOiJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7In0sIiAucmhpc3RvIjpmdW5jdGlvbigpe3ZhciB4PTYwKnRoaXMuQ2ZnKCkuc3RhdHNTY2FsZVl8MDtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7IiI6IndpZHRoOmNhbGMoMTAwJSAtIDEwMHB4KTsgcGFkZGluZy10b3A6NXB4OyBmb250LXdlaWdodDo0MDA7IiwiIC5yc2NhbGUiOnsiIjoid2lkdGg6NDBweDsgaGVpZ2h0OntoNjF9cHg7IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6ICM4MDkwYTA7IiwiPmRpdiI6IndpZHRoOjEwMCU7IGhlaWdodDp7aDEwfXB4OyBmb250LXNpemU6OXB4OyBsaW5lLWhlaWdodDo3LjJweDsgcGFkZGluZy1yaWdodDo0cHg7IHRleHQtYWxpZ246cmlnaHQ7IG92ZXJmbG93OmhpZGRlbjsiLCI+ZGl2OmZpcnN0LWNoaWxkIjoibWFyZ2luLXRvcDotMnB4OyIsIj5kaXY6YWZ0ZXIiOidjb250ZW50OiIgIjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IHJpZ2h0OjA7IHdpZHRoOjJweDsgb3ZlcmZsb3c6aGlkZGVuOyBib3JkZXItdG9wOjFweCBzb2xpZCAjYTBiMGMwOyd9LCIgLnJzaGltIjp7IiI6ImhlaWdodDp7aDYxfXB4OyB3aWR0aDowOyBib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2EwYjBjMDsgb3ZlcmZsb3c6aGlkZGVuOyIsIj5kaXYiOiJoZWlnaHQ6e2gxMH1weDsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggZG90dGVkIHJnYmEoMTYwLDE3NiwxOTIsMC4zNyk7In0sIiAucnZhbHVlcyI6eyIiOiJ4d2lkdGg6Y2FsYygxMDAlIC0gNDFweCk7IHdpZHRoOmF1dG87IGhlaWdodDp7aDYxfXB4O292ZXJmbG93OmhpZGRlbjsgY29sb3I6ICM4MDkwYTA7IiwiIC5yYmFycyI6eyI+LnJiYXIiOnsiIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6e2g2MH1weDsiLCI+ZGl2IjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7In0sIiAucmNvdmVyIjp7IiI6InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB6LWluZGV4OisyOyIsIj4ucmJhciI6eyIiOlsiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgb3ZlcmZsb3c6aGlkZGVuOyIsImhlaWdodDp7aDYxfXB4OyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zczsiLCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwxOTMsMzksMCk7Il0sIjpob3ZlciI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDE5MywzOSwwLjQzKTsifX19LCIgLnhyc3ZnIjp7IiI6ImJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTYwLDE3NiwxOTIsMC4zNyk7In0sIiAucnRpbWUiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0xcHg7IGxlZnQ6MnB4OyBmb250LXNpemU6MTBweDsgbGluZS1oZWlnaHQ6MTVweDsgY29sb3I6cmdiYSgxNjAsMTc2LDE5MiwwLjgxKTsifSwiIC5yYm91bmRzIjoiYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMTYwLDE3NiwxOTIsMC40KTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDE2MCwxNzYsMTkyLDAuNCk7IiwiIHRzcGFuIjoiZmlsbDpyZ2JhKDE2MCwxNzYsMTkyLDAuODEpOyIsIiAjdGFpbCAucmdyYXBoIjoibWF4LXdpZHRoOjYwMHB4OyBvdmVyZmxvdzpoaWRkZW47IiwiICN5YXhpcyI6InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB6LWluZGV4OisxOyJ9KS5hc3NpZ24oe2gxMDp4LzYsaDYwOngsaDYxOngrMSxoNjI6eCsyLGg2Mzp4KzN9KSl9fSwiIC5hcHAtaGVhZCI6eyIiOiJkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiA1MnB4OyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsifX0sTm9kZTp7aWQ6ImN3LkNvdWNoLk1vbml0b3IuTm9kZSIscGFyYW1zOntyZXN0eWxlOjUwfSxpbmhlcml0OlsiU2VyaWUiLCJHYXVnZSIsIkNmZyIsIkdlbkdyYXBocyIsIkdlbkF4aXMiLCJBdXRvU2F2ZU5vZGUiXSxSVDpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxkYXRhOntuYW1lOiJOb2RlIixoZWFsdGg6IiIsdXJsOiIvIixzZXJpZXM6W10sZ2F1Z2VzOltdfSxQZW5kaW5nOm51bGwsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9KGEuZGF0YSxhLkNmZygpLnN0YXRzUmVmcmVzaCk7cmV0dXJuIHguaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2EuR2V0U3RhdHMuZGVib3VuY2UoMWUzKSgpLGEuR2V0U3RhdHMuZGVib3VuY2UoMWUzKmIvMykoKSxhLlRpbWVyPWZ1bmN0aW9uKCl7YS5HZXRTdGF0cygpfS5ldmVyeSgxZTMqYil9LmRlYm91bmNlKDEpKSxhLkdldFN0YXRzKCEwKX0sdWk6eyIjbm5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubmFtZS5zcGxpdCgiQCIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVIVE1MKCl9KS5qb2luKCc8c3BhbiBjbGFzcz0ibzYwIHBsMiBwcjIiPkA8L3NwYW4+Jyl9LGNzczp7cmVkOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJyZWQxIiwhIXguaGVhbHRoKSwhMX19fSwiI25zZXJpZXMiOntiaW5kOiJzZXJpZXMiLGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LnJvd3MseC50aW1lXSl9LGxpc3Q6JzxkaXYgY2xhc3M9InJzZXJpZSI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5TZXJpZX19LCIjbmdhdWdlcyI6e2JpbmQ6ImdhdWdlcyIsaGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gucm93cyx4LnRpbWVdKX0sbGlzdDonPGRpdiBjbGFzcz0icmdhdWdlIj48L2Rpdj4nLG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLkdhdWdlfX0sIiNucHJveHkiOntiaW5kOmZ1bmN0aW9uKCl7fSxsaXN0ZW46e2NvdWNoX21vbml0b3JfcmVmcmVzaDpmdW5jdGlvbih4LGEpe3RoaXMuR2V0U3RhdHMoKX0sY291Y2hfbW9uaXRvcl9jZmdfY2hhbmdlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztiLlRpbWVyLmNhbmNlbCgpLGIuVGltZXI9ZnVuY3Rpb24oKXtiLkdldFN0YXRzKCl9LmV2ZXJ5KDFlMypiLkNmZygpLnN0YXRzUmVmcmVzaCksYi5HZXRTdGF0cygpfX19fSxkaWU6ZnVuY3Rpb24oKXt0aGlzLlRpbWVyLmNhbmNlbCgpfSxIVE1MOic8ZGl2IGNsYXNzPSJudGl0bGUgcGI1IG1iNSI+PGRpdiBpZD0ibm5hbWUiIGNsYXNzPSJubmFtZSBmczE2MCBsaDE0MCBwdDIgYm9sZGVyIj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJuZ2F1Z2VzIiBjbGFzcz0ibmdhdWdlcyB3MTEwIGRpYiB2YXQiPjwvZGl2PjxkaXYgaWQ9Im5zZXJpZXMiIGNsYXNzPSJuc2VyaWVzIGRpYiB2YXQiPjwvZGl2PjxkaXYgaWQ9Im5wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PicsR2V0U3RhdHM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWN3LmxpYi5tYXNrLGQ9JC5EZWZlcnJlZCgpLGU9T2JqZWN0LmlzT2JqZWN0LGY9T2JqZWN0LmlzTnVtYmVyLGc9e307aWYoYS5QZW5kaW5nKXJldHVybiBhLlBlbmRpbmc7dmFyIGg9W10saT0iIixqPTkwMCphLkNmZygpLnN0YXRzUmVmcmVzaCxrPWIuY291Y2g8IjIuIj9bIl9zdGF0cyJdOlsiX3N0YXRzIiwiX3N5c3RlbSJdO3JldHVybiBiLmNvdWNoPj0iMi4iJiYhL1wvX25vZGUvLnRlc3QoYi51cmwpJiYoaT0iX25vZGUvX2xvY2FsLyIpLGIuaGVhbHRoPSIiLGsuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYz17QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn07Yi5iYXNpYyYmKGMuQXV0aG9yaXphdGlvbj0iQmFzaWMgIitiLmJhc2ljKSxoLnB1c2goYS5SZXEoe3VybDpiLnVybCsoIi8iIT1iLnVybC5zdWJzdHIoLTEpPyIvIjoiIikraSt4LG1ldGhvZDoiZ2V0IixkYXRhVHlwZToianNvbiIsaGVhZGVyczpjLHRpbWVvdXQ6an0pLnRoZW4oZnVuY3Rpb24oeCl7JC5leHRlbmQoZyxsKHgpKX0pLmZhaWwoZnVuY3Rpb24oeCxhLGMpe2IuaGVhbHRoPWMrIiJ9KSl9KSxhLlBlbmRpbmc9US5hbGxTZXR0bGVkKGgpLnRoZW4oZnVuY3Rpb24oKXtiLmhlYWx0aHx8bShnKSx4fHwoYS5teS5maW5kKCIjbnNlcmllcyIpLnRyaWdnZXIoInJlY2FsYyIpLGEubXkuZmluZCgiI25nYXVnZXMiKS50cmlnZ2VyKCJyZWNhbGMiKSk7dHJ5e2EuQXV0b1NhdmVOb2RlKGIpfWNhdGNoKHgpe319KS5maW5hbGx5KGZ1bmN0aW9uKCl7YS5QZW5kaW5nPW51bGwseHx8YS5teS5maW5kKCIjbm5hbWUiKS50cmlnZ2VyKCJjaGVjayIpLGQucmVzb2x2ZSgpfSksYS5QZW5kaW5nO2Z1bmN0aW9uIGwoeCl7dmFyIGE9e307cmV0dXJuIHgubWVtb3J5JiZ4LnVwdGltZT9KU09OLnN0cmluZ2lmeSh4LGZ1bmN0aW9uKHgsYil7cmV0dXJuIGYoYikmJihhW3hdPWIpLGJ9KTpKU09OLnN0cmluZ2lmeSh4LGZ1bmN0aW9uKHgsYil7cmV0dXJuIGUoYikmJihmKGIuc3VtKXx8ZihiLnZhbHVlKSkmJihhW3hdPWIuc3VtfHxiLnZhbHVlfHwwKSxifSksYX1mdW5jdGlvbiBtKHgpe3ZhciBkPWEuQ2ZnKCkuc2VyaWVNYXhMZW5ndGg7ZnVuY3Rpb24gZShhLGIpe3ZhciBlPU1hdGgucm91bmQoRGF0ZS5ub3coKS8xMDApO2EudGltZVswXT1lLWEudGltZVswXSxhLnRpbWUudW5zaGlmdChlKSxhLmZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKGIsZCl7dmFyIGU9Yyh4LGIpLnN1bSgpfHwwOyJjdXJyZW50IiE9YS5tb2RlJiYoYS5yb3dzW2RdWzBdPWUtYS5yb3dzW2RdWzBdKSxhLnJvd3NbZF0udW5zaGlmdChlKSwyPT1hLnRpbWUubGVuZ3RoJiYoYS5yb3dzW2RdWzFdPTApfSksYS5yb3dzWzBdLmxlbmd0aD4xMCYmKGEucm93c1swXS5sZW5ndGg9MTApLDI9PWEudGltZS5sZW5ndGg/KGEudGltZVsxXT0zMCxhLmZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKHgsYil7YS5yb3dzW2JdWzFdPTB9KSk6YS50aW1lLmxlbmd0aD5kJiYoYS50aW1lLmxlbmd0aD1kLGEucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7eC5sZW5ndGg+ZCYmKHgubGVuZ3RoPWQpfSkpfWIuc2VyaWVzLmZvckVhY2goZSksYi5nYXVnZXMuZm9yRWFjaChlKX19fSxTZXJpZTp7aWQ6ImN3LkNvdWNoLk1vbml0b3IuU2VyaWUiLHBhcmFtczp7cmVzdHlsZTo2MH0saW5oZXJpdDpbIkNmZyIsIkdlbkdyYXBocyIsIkdlbkF4aXMiXSxkYXRhOntuYW1lOiJSb3ciLGRlbm9taW5hdG9yOjEsbmFtZXM6W10sY29sb3JzOltdLGZpZWxkczpbXSxyb3dzOltdLHRpbWU6W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7YS5HZW5BeGlzKGEpLHguaHRtbChhLkhUTUwpfSx1aTp7Ii5ndmFsIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPTA7cmV0dXJuIGI9ImN1cnJlbnQiPT14Lm1vZGU/K3gucm93c1swXVswXXx8MDp4LnRpbWVbMV0/MTAqKCt4LnJvd3NbMF1bMV18fDApL3gudGltZVsxXTowLChiLz14LmRlbm9taW5hdG9yfHwxKTwxP2Iucm91bmQoMikrIiI6Yj45OSYmYjwxZTQ/KDB8YikrIiI6Yi5yb3VuZCgxKS5tZXRyaWMoMywzKS5yZXBsYWNlKC8oXGRcZFxkP1wuXGQpXGR7MSwyfS8sIiQxIil9LHdhdGNoOiIjcHJpbWUifSwiLmd1bml0cyI6e2JpbmQ6InVuaXRzLjAifSwiLnJzaGltIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbD09YSl7dmFyIGM9TWF0aC5yb3VuZChEYXRlLm5vdygpLzFlMy14LnRpbWVbMF0vMTApO2IuY3NzKHt3aWR0aDpjKyJweCJ9KX19LGxpc3Rlbjp7Y291Y2hfbW9uaXRvcl90aW1lcjpmdW5jdGlvbih4LGEpe3JldHVybiEwfX19LCIjeWF4aXMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuR2VuQXhpcyhiKTtpZihudWxsPT1hKXJldHVybiBiLlQuR3JhcGguYXNzaWduKGIuQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsNjAqYi5DZmcoKS5zdGF0c1NjYWxlWSxjLnBpdm90c3kpfSx3YXRjaDoiI3ByaW1lIn0sIi5nbmFtZXMiOmZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWVzLnNsaWNlKDEpLm1hcChmdW5jdGlvbihhLGIpe3JldHVybic8c3BhbiBzdHlsZT0iY29sb3I6ezJ9Ij57MX08L3NwYW4+Jy5hc3NpZ24oYSx4LmNvbG9yc1tiKzFdKX0pLmpvaW4oIiAiKX0sIiNwcmltZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXt2YXIgYj10aGlzLGM9KGIuR2VuQXhpcyhiKSxiLkdlbkdyYXBocyhiKSksZD1iLlQuVGFpbEdyYXBoLGU9Yi5DZmcoKS5zdGF0c01heFRpbWVmcmFtZSxmPSd7MX08ZGl2IGNsYXNzPSJyY292ZXIiPnsyfTwvZGl2Pic7cmV0dXJuIGIubXkuZmluZCgiI3RhaWwiKS5odG1sKGMuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBkLmFzc2lnbihmLmFzc2lnbih4LnN2Zyx4LmNvdmVycykseC5lbmQpfSkuam9pbigiIikpLGIubXkuZmluZCgiI3RpY2tpbmciKS5jc3Moe3dpZHRoOmNbMF0ud2lkdGguY2xhbXAoMzAxLGUrMSkrInB4In0pLGYuYXNzaWduKGNbMF0uc3ZnLGNbMF0uY292ZXJzKX19fX0saEJhcjpmdW5jdGlvbih4LGEpe3ZhciBiPSgreHx8MCkuY2xhbXAoMCwxZTUzKSxjPSgrYXx8MCkuY2xhbXAoMSwxZTUzKTtyZXR1cm4oMTAqTWF0aC5sb2cxMCgxKzEwKmIvYykpLmNsYW1wKDAsNjEpLnJvdW5kKDEpfSxIVE1MOic8ZGl2IGNsYXNzPSJnYmxvY2sgZGliIHZhdCB3MTAwIj48ZGl2IGNsYXNzPSJndmFsIHRhciBvODAgbXQtMSI+PC9kaXY+PGRpdiBjbGFzcz0iZ3VuaXRzIHRhciBvOTAiPjwvZGl2PjxkaXYgY2xhc3M9ImduYW1lcyB0YXIgbXQyIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJyaGlzdG8gZGliIHZhdCBudyBvaCI+PGRpdiBjbGFzcz0icnNjYWxlIGRpYiB2YXQiPjxkaXY+MTAwSzwvZGl2PjxkaXY+MTBLPC9kaXY+PGRpdj4xMDAwPC9kaXY+PGRpdj4xMDA8L2Rpdj48ZGl2PjEwPC9kaXY+PGRpdj4xPC9kaXY+PC9kaXY+PGRpdiBpZD0idGlja2luZyIgY2xhc3M9InJ2YWx1ZXMgZGliIHZhdCBudyByYm91bmRzIj48ZGl2IGlkPSJ5YXhpcyIgY2xhc3M9InlheGlzIj48L2Rpdj48ZGl2IGNsYXNzPSJyc2hpbSBkaWIgdmF0IHBhbGViZyI+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0icHJpbWUiIGNsYXNzPSJyYmFycyBkaWIgdmF0IG53IHBhbGViZyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icnZhbHVlcyBkaWIgdmF0Ij48ZGl2IGlkPSJ0YWlsIiBjbGFzcz0icmJhcnMgZGliIHZhdCBudyI+PC9kaXY+PC9kaXY+PC9kaXY+JyxBeGlzOntwaXZvdHN4OiIiLHBpdm90c3k6IiIsYXhpc3g6IiJ9LFQ6e0JhcjonPGRpdiBjbGFzcz0icmJhciIgc3R5bGU9IndpZHRoOnsyfXB4OyIgdGl0bGU9InszfSI+ezF9PC9kaXY+JyxCYXJUaXA6Int0aW1lfVxue2R1cn1cbntyb3dzfSIsR3JhcGg6JzxzdmcgY2xhc3M9InJzdmciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgc3R5bGU9IndpZHRoOnsxfXB4O2hlaWdodDp7Mn1weDsiIHg9IjAiIHk9IjAiIHdpZHRoPSJ7MX0iIGhlaWdodD0iezJ9IiB2aWV3Qm94PSIwLCAwLCB7MX0sIHsyfSI+ezN9PC9zdmc+JyxUYWlsR3JhcGg6JzxkaXYgY2xhc3M9ImRpYiB2YXQgbWwzMCByYm91bmRzIHJncmFwaCBwYWxlYmciPjxkaXYgY2xhc3M9InJ0aW1lIj57Mn08L2Rpdj57MX08ZGl2IGNsYXNzPSJyY292ZXIiPjwvZGl2PjwvZGl2PicsTGluZTonPHBhdGggZD0iezF9IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iezJ9IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+JyxQaXZvdFg6JzxwYXRoIGQ9InsxfSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9InsyfSIgc3Ryb2tlLXdpZHRoPSIxIi8+JyxQaXZvdFk6JzxwYXRoIGQ9InsxfSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9InsyfSIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtZGFzaGFycmF5PSIxLDEiLz4nLFBpdm90VGV4dDonPHRleHQ+PHRzcGFuIHg9InsxfSIgeT0iMTAiIGZvbnQtc2l6ZT0iMTAiIHhmaWxsPSIjNUU1RDUzIj57Mn08L3RzcGFuPjwvdGV4dD4nfX0sR2F1Z2U6e2lkOiJjdy5Db3VjaC5Nb25pdG9yLkdhdWdlIixwYXJhbXM6e3Jlc3R5bGU6NjB9LGluaGVyaXQ6WyJDZmciXSxkYXRhOntuYW1lOiJSb3ciLG1vZGU6IiIsbmFtZXM6W10sY29sb3JzOltdLGZpZWxkczpbXSxyb3dzOltdLHRpbWU6W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtiLmZpZWxkcy5sZW5ndGg9MSxiLnJvd3MubGVuZ3RoPTEseC5odG1sKGEuSFRNTCl9LHVpOnsiLmd2YWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9MDtyZXR1cm4gYj0iY3VycmVudCI9PXgubW9kZT8reC5yb3dzWzBdWzBdfHwwOngudGltZVsxXT8xMCooK3gucm93c1swXVsxXXx8MCkveC50aW1lWzFdOjAsKGIvPXguZGVub21pbmF0b3J8fDEpPDE/Yi5yb3VuZCgyKSsiIjpiPjk5JiZiPDFlND8oMHxiKSsiIjpiLnJvdW5kKDEpLm1ldHJpYygzLDMpLnJlcGxhY2UoLyhcZFxkXGQ/XC5cZClcZHsxLDJ9LywiJDEiKX19LCIuZ3VuaXRzIjp7YmluZDoidW5pdHMuMCJ9fSxIVE1MOic8ZGl2IGNsYXNzPSJnYmxvY2sgcHIxMCB3MTEwIGRpYiB2YXQiPjxkaXYgY2xhc3M9Imd2YWwgbzgwIG10LTEiPjwvZGl2PjxkaXYgY2xhc3M9Imd1bml0cyBvOTAiPjwvZGl2PjwvZGl2Pid9LHN0YW1wOjE2NDY4NzMwODUzMjB9fSksJChmdW5jdGlvbigpe3ZhciB4PW5ldyBVUkwobG9jYXRpb24uaHJlZiksYT14LnBhdGhuYW1lLnJlcGxhY2UoL15cLy8sIiIpLnNwbGl0KCIvIikucmV2ZXJzZSgpLm1hcChtKSxiPSJfZGVzaWduIj09YVsyXSxjPSJfcGhvdG9uIj09YVsxXSxkPWEuZnJvbShiPzQ6MykucmV2ZXJzZSgpLGU9e2Jhc2U6eC5vcmlnaW4rIi8iKyhkLmxlbmd0aD9kLm1hcChsKS5qb2luKCIvIikrIi8iOiIiKSxkYjphW2M/MTpiPzM6Ml0sZG9jOmM/Il9kZXNpZ24vcGhvdG9uIjpiPyJfZGVzaWduLyIrYVsxXTphWzFdfTskLm15Lm1vZGFsLnBhcmVudCgiI2N3LWJvZHkiKSwkKHdpbmRvdykub24oInJlc2l6ZSIsZnVuY3Rpb24oKXskKCIubXktbW9kYWwiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJsYXlvdXQiKX0pfS5kZWJvdW5jZSgzMCkpLHdpbmRvdy5jdy5tZT1mdW5jdGlvbih4KXt2YXIgYT0od2luZG93LkRET0N8fHt9KS5fbWV8fHtuYW1lOiIiLHJvbGVzOltdLGxvY2FsZToiZW4ifTtyZXR1cm4gbnVsbD09PXg/YTp2b2lkIDA9PT14P2EubmFtZTphW3hdfTt2YXIgZj13aW5kb3cuRERPQz0kLmV4dGVuZCh3aW5kb3cuRERPQyx7X2Jhc2U6ZS5iYXNlLF9kYjplLmRiLF9kb2M6ZS5kb2N9KTtyZXR1cm4gZygpLnRoZW4oaCkudGhlbihpKS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjb25zb2xlLmxvZyh4LGEsYiksY3cubGliLm5vdGUoIlBob3RvbiAxLjIwIGZhaWxlZCB0byBzdGFydCwgc2VlIGNvbnNvbGUgZm9yIGRldGFpbHMiLCJlcnJvciIsM2U0KX0pLE9iamVjdC5rZXlzKGYuYXBwc3x8e30pLmZvckVhY2goZnVuY3Rpb24oeCl7JC5teS5jYWNoZShmLmFwcHNbeF0pfSksayh7Y3RybF96OmZ1bmN0aW9uKHgsYSl7aWYoIkJPRFkiPT14LnRhcmdldC5ub2RlTmFtZSl7dmFyIGI9JCgiI2wtYXBwcz4ubC1hcHA6bm90KC5oaWRlKSIpLm15KCJtYW5pZmVzdCIpLmNtZFVuZG87aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIpe3gucHJldmVudERlZmF1bHQoKTt0cnl7YigpfWNhdGNoKHgpe31yZXR1cm4hMX19fSxjdHJsX3M6ZnVuY3Rpb24oeCxhKXtpZigiQk9EWSI9PXgudGFyZ2V0Lm5vZGVOYW1lKXt2YXIgYj0kKCIjbC1hcHBzPi5sLWFwcDpub3QoLmhpZGUpIikubXkoIm1hbmlmZXN0IikuY21kU2F2ZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYil7eC5wcmV2ZW50RGVmYXVsdCgpO3RyeXtiKCl9Y2F0Y2goeCl7fXJldHVybiExfX19fSksdm9pZCAwO2Z1bmN0aW9uIGcoKXtyZXR1cm4gUS5hbGwoW2ooZS5iYXNlKyhlLmRiP2woZS5kYikrIi8iOiIiKStlLmRvYykudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZCghMCxmLE9iamVjdC5zZWxlY3QoeCwiX2lkIF9yZXYgbmFtZSBzdGFtcCBzZXR0aW5ncyB2ZXJzaW9uIHZlcnNpb25zIi5zcGxpdCgiICIpKSl9KSxqKGUuYmFzZSsiX3Nlc3Npb24iKS50aGVuKGZ1bmN0aW9uKHgpeyQuZXh0ZW5kKCEwLGYuX21lLHgudXNlckN0eHx8e30pfSldKS50aGVuKGZ1bmN0aW9uKHgpe3ZhciBhPWYuX21lO3JldHVybiBhLm5hbWU9YS5uYW1lfHwiIixhLnJvbGVzLmZvckVhY2goZnVuY3Rpb24oeCl7L15sYW5nXC1bYS16XXsyfSQvLnRlc3QoeCkmJihhLmxvY2FsZT14LnNwbGl0KCItIilbMV0sJC5teS5sb2NhbGUoYS5sb2NhbGUpKX0pLGZ9KX1mdW5jdGlvbiBoKCl7dHJ5e3ZhciB4PUpTT04ucGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJjdy5QaG90b24uQ2ZnIil8fCJ7fSIpLnRoZW1lfHwiIjsiYXV0byI9PXgmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/JCgiYm9keSIpLmFkZENsYXNzKCJ0aGVtZS1kYXJrIik6eCYmJCgiYm9keSIpLmFkZENsYXNzKCJ0aGVtZS0iK3gpfWNhdGNoKHgpe319ZnVuY3Rpb24gaSgpe3ZhciB4PWYucnVuLGE9W107cmV0dXJuIHguZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYj0kKHguY29udGFpbmVyKTthLnB1c2goYi5teSh4Lm1hbmlmZXN0LHguZGF0YXx8e30pKX0pLFEuYWxsKGEpfWZ1bmN0aW9uIGooeCl7cmV0dXJuICQuYWpheCgkLmV4dGVuZCh7bWV0aG9kOiJnZXQiLGRhdGFUeXBlOiJqc29uIixoZWFkZXJzOnthY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifSxjYWNoZTohMX0se3VybDp4fSkpfWZ1bmN0aW9uIGsoeCl7aWYoITE9PT14KXJldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGEpO3g9eHx8e307ZnVuY3Rpb24gYShhKXt2YXIgYj1bYS5zaGlmdEtleT8ic2hpZnQiOiIiLGEuY3RybEtleXx8YS5tZXRhS2V5PyJjdHJsIjoiIixhLmFsdEtleT8iYWx0IjoiIixTdHJpbmcuZnJvbUNoYXJDb2RlKGEua2V5Q29kZSkudG9Mb3dlckNhc2UoKV0uY29tcGFjdCghMCkuam9pbigiXyIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4W2JdKXJldHVybiB4W2JdKGEsYil9fWZ1bmN0aW9uIGwoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX1mdW5jdGlvbiBtKHgpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoeCl9fSk7" + "data": "LypQaG90b24gMS4yMCBhcHBzIGFuZCBib290c3RyYXAgY29kZSwgKGMpIDIwMjIgZXJtb3V0aCovCiQuZXh0ZW5kKHdpbmRvdy5ERE9DLmFwcHMseyJjdy5QaG90b24iOntpZDoiY3cuUGhvdG9uIixidWlsZDo1LFZlcnNpb246IjEuMjAiLENmZzp7cm9vdFJlcG86Imh0dHBzOi8vY2RuLmNsb3Vkd2FsbC5tZS9waG90b24vIix1cGRhdGU6InJlbWluZCIscm9sZXM6W10sbWF4V2lkdGg6IjIwMDAiLG1heFRhYnM6MTUsc2Nyb2xsU3BlZWQ6IjAiLGZvbnQ6ImF1dG8iLGZvbnRXZWlnaHQ6IjQwMCIsZm9udENvZGU6ImF1dG8iLGljb246IiIsbGlzdENvbHM6WyJpbmZvIiwic2VjdXJpdHkiXSxiYXRjaERiSW5mb0RlbGF5OjUsYmF0Y2hDb21wYWN0RGVsYXk6NTAwLGJhdGNoQ3JlYXRlRGVsYXk6MTUwLGJhdGNoVXBkYXRlQ2ZnOjEwMCxsb29wQWN0aXZlVGFza3M6NSx0YXNrc1JlYWRSZXBsaWNhdG9yOiEwLHN0YXRzUmVmcmVzaDo1LHBpbmdTZXNzaW9uOjAsdGFiQmFyOiJhdXRvIix0aGVtZToiIixncm91cGluZzpbIm5vcm1hbCIsImF1dG8iXX0sbGFuZzp7ZW46e1RJUF9MT0dJTjoiTG9nIGluIixUSVBfUFJPRklMRToiRWRpdCB1c2VyIFxucHJvZmlsZSBkb2MiLFRJUF9DT05GSUc6IkNvdWNoREIgY29uZmlnIixUSVBfU0hBUkU6IlBob3RvbiBjb25maWciLFRJUF9ST09UOiJTaW5nbGUgY2xpY2s6IGxpc3Qgb2YgREJzIFxuRG91YmxlIGNsaWNrOiBjbG9zZSBhbGwgdGFicyIsQlROX1hBTEw6IuKclSBDbG9zZSBhbGzCoCIsRVJSX1JFUV9JTlZBTElEQ0FMTDoiSW52YWxpZCByZXF1ZXN0IHBhcmFtcywgcHJvYmFibHkgaW52YWxpZCBjb21tYW5kLCBvciB0aGVyZeKAmXMgYSBidWciLEVSUl9SRVFfQVVUSFJFUToiWW91IG5lZWQgdG8gbG9nIGluIHRvIHVzZSBQaG90b24iLEVSUl9SRVFfUk9MRVJFUToiSW5zdWZmaWNpZW50IHByaXZpbGVnZXMgdG8gcnVuIFBob3RvbiIsRVJSX1JFUTp7MDoiT2ZmbGluZSIsNDAwOiJCYWQgcmVxdWVzdCIsNDAxOiJVbmF1dGhvcml6ZWQiLDQwMzoiRm9yYmlkZGVuIiw0MDQ6Ik5vdCBmb3VuZCIsNDA1OiJOb3QgYWxsb3dlZCIsNDA4OiJUaW1lb3V0Iiw0MDk6IkNvbmZsaWN0Iiw0MTI6IlByZWNvbmRpdGlvbiBmYWlsZWQiLDQyOToiVG9vIG1hbnkgcmVxdWVzdHMiLDUwMDoiSW50ZXJuYWwgZXJyb3IiLDUwMToiTm90IGltcGxlbWVudGVkIiw1MDM6IlNlcnZpY2UgdW5hdmFpbGFibGUiLDUwNDoiR2F0ZXdheSB0aW1lb3V0Iiw1MDk6IkJhbmR3aWR0aCBxdW90YSIsOTk5OiJVbmtub3duIGVycm9yIn0sRkFJTF9UT09fTUFOWV9UQUJTOiJ7MX0gdGFicyBtYXhpbXVtLCBwbGVhc2UsIGNsb3NlIHNvbWV0aGluZyBvciBkb3VibGUtY2xpY2sgdGhlIGxvZ28gdG8gY2xvc2UgYWxsIHRhYnMuIixGQUlMX1RBQl9BUFA6IkZhaWxlZCBzdGFydGluZyB0YWIgYXBwLiBTZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLERMR19VTkxPQUQ6IlRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMuIFJlbG9hZD8iLERMR19VTlNBVkVEOiJUaGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzLiBQcm9jZWVkPyIsVVBEX09MRDoiWW91ciB2ZXJzaW9uIG9mIFBob3RvbiBpcyBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IG9sZC4gIixVUERfTU9OVEg6IllvdSB1cGRhdGVkIFBob3RvbiBtb3JlIHRoYW4gezF9IG1vbnRoezJ9IGFnby4gIixVUERfVEFJTDonVG8gdXBkYXRlIGNsaWNrIDxzcGFuIGNsYXNzPSJmaS13cmVuY2ggbzgwIj48L3NwYW4+IGljb24gYXQgbmF2YmFyLCBhbmQgdGhlbiBjbGljayDigJhDaGVjayBmb3IgdXBkYXRlc+KAmSBidXR0b24uJyxNU0dfTkVXREJfT0s6IkNyZWF0ZWQgbmV3IERCIOKAmHsxfeKAmSIsTVNHX05FV0RCX0ZBSUw6IkZhaWxlZCBjcmVhdGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkiLE1TR19ORVdEQl9OT0FDTDoiREIg4oCYezF94oCZIGNyZWF0ZWQgYnV0IHNlY3VyaXR5IGNvbmZpZyBmYWlsZWQsIHdoaWNoIG1lYW5zIERCIGlzIHB1YmxpYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkiLE1TR19TRUNEQl9PSzoiVXBkYXRlZCBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmSIsTVNHX1NFQ0RCX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M30iLEluZGV4RWQ6e1RYVF9USVRMRToiTWFuZ28gaW5kZXggezF9wqBpbsKgezJ9IixUWFRfVElUTEUwOiJEZWZhdWx0IE1hbmdvIGluZGV4IixCVE5fUEFORUxfQ0xPU0U6IkNsb3NlIGVkaXRvciIsVEFHX01PREU6e3RhZ3M6W3tKU09OOiJqc29uIn1dLGVtcHR5OntTb3VyY2U6ImphdmFzY3JpcHQifX0sRVJSX05PX0lOREVYOiJNdXN0IGhhdmUgLmluZGV4LmZpZWxkcyBhcnJheSIsRVJSX05PX1RZUEU6J1Byb3BlcnR5IC50eXBlIHNob3VsZCBiZSAianNvbiInLEVSUl9OT19KU09OOiJDYW7igJl0IGNvbnZlcnQgdG8gSlNPTiIsQlROX1JVTjoiU2F2ZSBhbmQgcnVuIixCVE5fUlVOMDoiQ3JlYXRlIG5ldyBhbmQgcnVuIixUSVBfUlVOOiJTYXZlcyBpbmRleCBhbmQgc2hvd3MgaW5kZXggZW50cmllcyIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIGluZGV4IGVudHJpZXMiLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIGluZGV4IHVuZGVyIGRpZmZlcmVudCBuYW1lIGFuZCBzaG93cyBpbmRleCBlbnRyaWVzIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyBNYW5nbyBpbmRleCIsQlROX1JFVkVSVDoiUmV2ZXJ0IixUSVBfUkVWRVJUOiJSZXZlcnRzIGVkaXRvciB0byBzYXZlZCBpbmRleCBjb2RlIixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyBpbmRleDwvaDM+PHA+U2F2ZXMgaW5kZXggaW50byBleGlzdGluZyBvciBuZXcgZGVzaWduIGRvY3VtZW50LjwvcD4iLExCTF9ERE9DOiJEZG9jIG5hbWUiLFBMQ19ERE9DOiJTaG9ydCBvZiBmdWxsIGZvcm0iLExCTF9ORVc6IkluZGV4IG5hbWUiLFBMQ19ORVc6IktleSBuYW1lIGluIC52aWV3cyBwcm9wIG9mIGRkb2MiLEVSUl9ORVdfUkVROiJJbmRleCBuYW1lIHJlcXVpcmVkIixFWFBfRVhJU1Q6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IEluZGV4IGFscmVhZHkgZXhpc3RzIGFuZCB3aWxsIGJlIHJlcGxhY2VkLicsRVhQX05ERE9DOiJUYXJnZXQgZGVzaWduIGRvYyBkb2VzbuKAmXQgZXhpc3QgYW5kIHdpbGwgYmUgY3JlYXRlZC4iLEVYUF9OVklFVzoiTmV3IGluZGV4IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgaW5kZXgiLEJUTl9ORVdfQ0FOQ0VMOiJDYW5jZWwiLEVSUl9OT19OQU1FOiJJbnZhbGlkIGRkb2Mgb3IgaW5kZXggbmFtZSwgY2Fu4oCZdCBjcmVhdGUgaW5kZXgiLEVSUl9OT19OQU1FX1JVTjoiWW91IGNhbuKAmXQgcnVuIGRlZmF1bHQgaW5kZXgsIHBsZWFzZSB1c2UgU2F2ZSBhcyBidXR0b24iLEVSUl9FUlJET0M6IkNhbuKAmXQgc2F2ZSBpbnZhbGlkIGluZGV4LiB7MX0uIixNU0dfREVMX1RFWFQ6JzxzcGFuIGNsYXNzPSJyZWQxIGZpLWFsZXJ0Ij48L3NwYW4+IERlbGV0ZSBNYW5nbyBpbmRleCB7MX0gZnJvbSB7Mn0/JyxCVE5fREVMX1lFUzoiRGVsZXRlIixCVE5fREVMX05POiJDYW5jZWwiLE1TR19ERUxfT0s6IkluZGV4IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sVmlld0VkOntUWFRfVElUTEU6e2phdmFzY3JpcHQ6IkpTIHZpZXcgezF94oCJL+KAiXsyfSIsZXJsYW5nOiJFcmxhbmcgdmlldyB7MX3igIkv4oCJezJ9In0sVEFHX01PREU6e3RhZ3M6W1t7UmVkdWNlOiJyZWR1Y2UifSx7SlNPTjoianNvbiJ9XV0sZW1wdHk6e01hcDoibWFwIn19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fTUFQOiJNYXAgaXMgbm90IGEgZnVuY3Rpb24iLEVSUl9OT19SRURVQ0U6IlJlZHVjZSBpcyBub3QgYSBmdW5jdGlvbiIsRVJSX0ZfQlVJTFRJTjoiVW5rbm93biBidWlsdC1pbiByZWR1Y2VyIixFUlJfRVJSRE9DOiJDYW7igJl0IHNhdmUgaW52YWxpZCBkZXNpZ24gZG9jLiB7MX0uIixCVE5fUlVOOiJSdW4gdmlldyIsVElQX1JVTjoiUnVucyBzYXZlZCB2aWV3IGluZGV4IHF1ZXJ5IixCVE5fU0FWRToiU2F2ZSBhbmQgcnVuIixUSVBfU0FWRToiU2F2ZXMgdmlldyBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsTVNHX0ZBSUw6IkZhaWxlZCBzYXZpbmcgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1NBVkVEOiJVcGRhdGVkIHsxfSwgcmVsb2FkaW5nIHZpZXciLEJUTl9TQVZFQVM6IlNhdmUgYXMuLi4iLFRJUF9TQVZFQVM6IlNhdmVzIHZpZXcgdW5kZXIgZGlmZmVyZW50IG5hbWUgYW5kIHNob3dzIHRoZSByZXN1bHQiLEJUTl9SRVZFUlQ6IlJldmVydCIsVElQX1JFVkVSVDoiUmV2ZXJ0cyBlZGl0b3IgdG8gc2F2ZWQgdmlldyBjb2RlIixCVE5fREVMOiJEZWwuLi4iLFRJUF9ERUw6IkRlbGV0ZXMgdGhpcyB2aWV3IGluZGV4IixUWFRfTkVXOiI8aDM+Q3JlYXRlIG5ldyB2aWV3PC9oMz48cD5TYXZlcyB2aWV3IGludG8gZXhpc3Rpbmcgb3IgbmV3IGRlc2lnbiBkb2N1bWVudC48L3A+IixMQkxfRERPQzoiRGRvYyBfaWQiLFBMQ19ERE9DOiJGdWxsZm9ybSwgbGlrZSBfZGVzaWduL2Rkb2NOYW1lIixFUlJfRERPQzoiVmFsaWQgX2lkLXMgYXJlIGxpa2UgX2Rlc2lnbi9kZG9jTmFtZSIsTEJMX05FVzoiVmlldyBuYW1lIixQTENfTkVXOiJLZXkgbmFtZSBpbiAudmlld3MgcHJvcCBvZiBkZG9jIixFUlJfTkVXX1JFUToiVmlldyBuYW1lIHJlcXVpcmVkIixFUlJfTkVXX1NMQVNIOiJTbGFzaGVzIGFyZSBub3QgYWxsb3dlZCBpbiB2aWV3IG5hbWUiLEVYUF9FWElTVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gVmlldyBhbHJlYWR5IGV4aXN0cyBhbmQgd2lsbCBiZSByZXBsYWNlZC4nLEVYUF9ORERPQzoiVGFyZ2V0IGRlc2lnbiBkb2MgZG9lc27igJl0IGV4aXN0IGFuZCB3aWxsIGJlIGNyZWF0ZWQuIixFWFBfTlZJRVc6Ik5ldyB2aWV3IHdpbGwgYmUgYWRkZWQgdG8gZXhpc3RpbmcgZGVzaWduIGRvYy4iLEJUTl9ORVdfT0s6IlNhdmUgdmlldyIsQlROX05FV19DQU5DRUw6IkNhbmNlbCIsRVJSX05PX05BTUU6IkludmFsaWQgZGRvYyBvciB2aWV3IG5hbWUsIGNhbuKAmXQgY3JlYXRlIHZpZXciLE1TR19ERUxfVEVYVDonPHNwYW4gY2xhc3M9InJlZDEgZmktYWxlcnQiPjwvc3Bhbj4gRGVsZXRlIHZpZXcgaW5kZXggezF9IGZyb20gezJ9PycsQlROX0RFTF9ZRVM6IkRlbGV0ZSIsQlROX0RFTF9OTzoiQ2FuY2VsIixNU0dfREVMX09LOiJWaWV3IHsxfSBkZWxldGVkIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyB7MX0uIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIn0sTWFuZ29FZDp7VFhUX1RJVExFOiJNYW5nbyBxcnkgezF9IixUWFRfVElUTEUwOiJVbnRpdGxlZCBNYW5nbyBxcnkiLFRBR19NT0RFOnt0YWdzOlt7SlNPTjoianNvbiJ9XSxlbXB0eTp7U291cmNlOiJqYXZhc2NyaXB0In19LEJUTl9QQU5FTF9DTE9TRToiQ2xvc2UgZWRpdG9yIixFUlJfTk9fU0VMRUNUT1I6Ik5vIC5zZWxlY3RvciBwcm9wZXJ0eSIsRVJSX05PX0ZJRUxEUzoiTm8gLmZpZWxkcyBhcnJheSIsRVJSX0VNUFRZX0ZJRUxEUzoiRW1wdHkgLmZpZWxkcyBhcnJheSIsRVJSX05PX0pTT046IkNhbuKAmXQgY29udmVydCB0byBKU09OIixFUlJfTUFOR09fS0VZUzoiVW5rbm93biBrZXkgezF9IixFUlJfSU5WQUxJRF9PUEVSQVRPUjoiSW52YWxpZCBvcGVyYXRvciB7MX0iLEVSUl9WX01PRDA6IiRtb2QgZGl2aXNvciBpcyAwIixFUlJfVl9NT0QxOiIkbW9kIG11c3QgYmUgW2Rpdmlzb3IsIHJlbWFpbmRlcl0iLEVSUl9WX01PREQ6IiRtb2QgZGl2aXNvciBtdXN0IGJlIGFuIGludGVnZXIiLEVSUl9WX01PRFI6IiRtb2QgcmVtYWluZGVyIG11c3QgYmUgYW4gaW50ZWdlciIsRVJSX1ZfRVhJU1Q6IiRleGlzdHMgbXVzdCBiZSBhIGJvb2wiLEVSUl9WX1RZUEUwOiIkdHlwZSBtdXN0IGJlIGEgc3RyaW5nIixFUlJfVl9UWVBFMToiSW52YWxpZCAkdHlwZSIsRVJSX1ZfU0laRToiJHNpemUgbXVzdCBiZSBhbiBpbnRlZ2VyIixFUlJfVl9SRUdFWDoiJHJlZ2V4IG11c3QgYmUgYSBzdHJpbmciLEVSUl9WX0FSUjoiezF9IG11c3QgYmUgYW4gYXJyYXkiLEVSUl9WX09CSjoiezF9IG11c3QgYmUgYW4gb2JqZWN0IixCVE5fUlVOOiJSdW4gcXJ5IixUSVBfUlVOOiJFeGVjdXRlcyBxdWVyeSBhbmQgc2hvd3MgdGhlIHJlc3VsdCIsQlROX0VYUEw6IkV4cGxhaW4iLFRJUF9FWFBMOiJFeHBsYWlucyBxdWVyeSwgYWxsIGhpZGRlbiBwYXJhbXMgYW5kIGluZGV4ZXMgaW52b2x2ZWQiLEJUTl9TQVZFOiJTYXZlIGFzLi4uIixCVE5fUkVOQU1FOiJSZW5hbWUuLi4iLFRJUF9TQVZFOiJTYXZlcyBNYW5nbyBxdWVyeSB0byBsb2NhbFN0b3JhZ2UgZm9yIGxhdGVyIHJlLXVzZSIsQlROX0RFTDoiRGVsIixUSVBfREVMOiJEZWxldGVzIHRoaXMgTWFuZ28gcXVlcnkgZnJvbSBsb2NhbFN0b3JhZ2UgYW5kIHN3aXRjaGVzIHRvIERlZmF1bHQgcXVlcnkiLEJUTl9SRVNFVDoiUmVzZXQiLFRJUF9SRVNFVDoiUmVzZXRzIHRvIGluaXRpYWwgZGVmYXVsdCBxdWVyeSIsVFhUX1NUQVNIOiI8aDM+TWVtb2l6ZSBxdWVyeTwvaDM+PHA+U2F2ZXMgTWFuZ28gcXVlcnkgdG8gbG9jYWxTdG9yYWdlIGZvciBsYXRlciByZS11c2UuPC9wPiIsUExDX1NUQVNIOiJRdWVyeSB0aXRsZSwgMy4uLjMwIGNoYXJzIixFUlJfU1RBU0hfUkVROiJUaXRsZSByZXF1aXJlZCIsRVJSX1NUQVNIX0xFTjoiMy4uLjMwIGNoYXJhY3RlcnMiLEVSUl9TVEFTSF9FWElTVDoiQWxyZWFkeSBleGlzdHMiLEJUTl9TVEFTSF9PSzoiU2F2ZSBxdWVyeSIsQlROX1NUQVNIX09LMToiU2F2ZSAmIHN3aXRjaCB0byBuZXciLEJUTl9TVEFTSF9DQU5DRUw6IkNhbmNlbCJ9LFVzZXJEb2M6e1RYVF9USVRMRToiQ3JlYXRlIG5ldyB1c2VyIixUWFRfVElUTEVfRUQ6IkNoYW5nZSBwYXNzd29yZCBvciByb2xlcyIsTEJMX046Ik5hbWUiLFBMQ19OOiJVc2VyIGxvZ2luIixFUlJfTjoiQ2Fu4oCZdCBzdGFydCB3aXRoIF8gb3IgY29udGFpbiA6IixFUlJfTlg6IlVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIixMQkxfUDoiUGFzc3dvcmQiLFBMQ19QOiJVc2VyIHBhc3Nzd29yZCIsUExDX1BfRUQ6IkNoYW5nZSB1c2VyIHBhc3Nzd29yZCIsRVJSX1A6IlJlcXVpcmVkIixMQkxfUjoiUm9sZXMiLFBMQ19SOiJBZGQgcm9sZXMiLEVSUl9SOiJSb2xlcyBjYW7igJl0IHN0YXJ0IHdpdGggXyIsQlROX1NBVkU6IlNhdmUgdXNlciIsQlROX0RPQzoiQ3JlYXRlIGVtcHR5IEpTT04uLi4iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX09LOiJVc2VyIHsxfSBzdWNjZXNzZnVsbHkgc2F2ZWQiLE1TR19GQUlMOiJGYWlsZWQgc2F2aW5nIHVzZXIgezF9LiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSJ9LERlbERCOntUWFRfVElUTEU6IkRlbGV0ZSBEQnMiLFRYVF9USVRMRTE6IkRlbGV0ZSBEQiIsUExDX0RCUzoiU2VsZWN0IERCcyB0byBkZWxldGUiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLExCTF9ORVc6IlJlLWNyZWF0ZSBEQnMgYWZ0ZXIgZGVsZXRpb24iLExCTF9ORVdfQUNMOiJBcHBseSBvcmlnaW5hbCBzZWN1cml0eSBvYmplY3RzIixMQkxfTkVXX1FOUDoiUmVzdG9yZSBzaGFyZGluZyBzZXR0aW5ncyIsVFhUX1dBUk46ZnVuY3Rpb24oeCl7dmFyIGE9T2JqZWN0LmNsb25lKHgpO3JldHVybiBhLnNjb3VudD1hLmNvdW50PDI/IiI6InMiLGEuc2l6ZT0oK2Euc2l6ZSkuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIiksYS5kaXNrPSgrYS5kaXNrKS5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKSxbIllvdSBhcmUgZGVsZXRpbmcge2NvdW50fSBEQntzY291bnR9IGNvbnRhaW5pbmcge3NpemV9IG9mIGRhdGEuIiwiRGVsZXRpb24gd2lsbCBmcmVlIH57ZGlza30gb2YgZGlzayBzcGFjZSBhdCA8bm9icj57YmFzZX08L25vYnI+LiJdLmpvaW4oIiAiKS5hc3NpZ24oYSl9LEJUTl9TVEFSVDpmdW5jdGlvbih4KXtyZXR1cm4geD8iRGVsZXRlICIreCsiIERCIisoeD4xPyJzIjoiIik6Ik5vdGhpbmcgdG8gZGVsZXRlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIOKAmHsxfeKAmSBEQiIsTVNHX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBEQiDigJh7MX3igJkuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OiB7M33igJkifSxTZWNPYmo6e1RYVF9USVRMRToiQWNjZXNzIGNvbnRyb2wiLExCTF9EQlM6IkRCcyIsUExDX0RCUzoiU2VsZWN0IERCIG5hbWVzIHRvIHNldCBBQ0wiLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLFRYVF9BRE06IkFkbWluaXN0cmF0b3JzIixMQkxfVUFETToiVXNlcnMiLFBMQ19VQURNOiJVc2VyIG5hbWVzIixMQkxfR0FETToiUm9sZXMiLFBMQ19HQURNOiJSb2xlcyB3aXRoIGFkbWluIGFjY2VzcyIsRVJSX0FETToiSW52YWxpZCBuYW1lIixFUlJfVU5BTUU6Ik5hbWVzIGNhbuKAmXQgc3RhcnQgd2l0aCBfIG9yIGNvbnRhaW4gOiIsVFhUX01FTToiTWVtYmVycyIsUExDX1VNRU06IlVzZXIgbmFtZXMiLFBMQ19HTUVNOiJSb2xlcyB3aXRoIG1lbWJlciBhY2Nlc3MiLEJUTl9TVEFSVDoiU2V0IHNlY3VyaXR5IixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19PSzoiU2VjdXJpdHkgb2JqZWN0IGZvciBEQiDigJh7MX3igJkgdXBkYXRlZCIsTVNHX0ZBSUw6IkZhaWxlZCB1cGRhdGluZyBzZWN1cml0eSBvYmplY3QgZm9yIERCIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LExvZ2luOntUWFRfTE9HSU46IkxvZyBpbiIsUExDX1VOQU1FOiJVc2VybmFtZSIsUExDX1BXRDoiUGFzc3dvcmQiLEJUTl9MT0dJTjoiQ3JlYXRlIHNlc3Npb24iLEJUTl9DQU5DRUw6IkNhbmNlbCIsTVNHX0FVVEhfT0s6IkF1dGhvcml6ZWQgYXMgezF9IixNU0dfQVVUSF9GQUlMOiJBdXRob3JpemF0aW9uIGFzIHsxfSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezJ9OsKgezN9In0sTG9nb3V0OntUWFRfTE9HT1VUOiJMb2cgb3V0IixUWFRfUFJPRklMRToiUHJvZmlsZSIsTVNHX0xPR09VVF9TVEFSVDoiTG9nZ2luZyBvdXQuLi4iLE1TR19MT0dPVVRfT0s6IllvdSB3YXMgbG9nZ2VkIG91dCBzdWNjZXNzZnVsbHkiLE1TR19MT0dPVVRfRkFJTDoiTG9nIG91dCBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9In0sVGFiOntCVE5fQ0xPU0VUQUI6IkNsb3NlIHRhYiJ9LE5ld0RCOntUWFRfVElUTEU6IkNyZWF0ZSBEQnMiLFRYVF9USVRMRTE6IkNyZWF0ZSBEQiIsTEJMX0RCUzoiTmFtZXMiLFBMQ19EQlM6IkRCcyB0byBjcmVhdGUiLEVSUl9EQl9FWElTVDoiREIgezF9IGFscmVhZHkgZXhpc3RzIixFUlJfREJfTkFNRToiTG93ZXJjYXNlIGEteiwgMC05IGFuZCBfJCgpKy0vIGFyZSBvbmx5IGFsbG93ZWQgaW4gREIgbmFtZXMiLEVSUl9EQl9VTkQ6IkRCIG5hbWVzIG11c3Qgc3RhcnQgd2l0aCBsb3dlcmNhc2UgYS16IixUWFRfQURNOiJBZG1pbmlzdHJhdG9ycyIsTEJMX1VBRE06IlVzZXJzIixQTENfVUFETToiVXNlciBuYW1lcyIsTEJMX0dBRE06IlJvbGVzIixQTENfR0FETToiUm9sZXMgd2l0aCBhZG1pbiBhY2Nlc3MiLEVSUl9BRE06IkludmFsaWQgbmFtZSIsRVJSX1VOQU1FOiJOYW1lcyBjYW7igJl0IHN0YXJ0IHdpdGggXyBvciBjb250YWluIDoiLFRYVF9NRU06Ik1lbWJlcnMiLFBMQ19VTUVNOiJVc2VyIG5hbWVzIixQTENfR01FTToiUm9sZXMgd2l0aCBtZW1iZXIgYWNjZXNzIixMQkxfQ0xVU1RFUjoiU3RvcmFnZSIsVFhUX1NIQVJEUzpmdW5jdGlvbih4KXtyZXR1cm4ic2hhcmQiKyh4PjE/InMiOiIiKX0sVFhUX0NPUElFUzpmdW5jdGlvbih4KXtyZXR1cm4iZGF0YSBjb3AiKyh4PDI/InkiOiJpZXMiKX0sVFhUX1BBUlRJVElPTlM6InBhcnRpdGlvbmVkIixCVE5fU1RBUlQ6IkNyZWF0ZSBEQnMiLEJUTl9TVEFSVF9QVUJMSUM6IkNyZWF0ZSBwdWJsaWMgREJzIixCVE5fQ0FOQ0VMOiJDYW5jZWwifSxDb21wYWN0OntUWFRfVElUTEU6IkNvbXBhY3QgREJzIixUWFRfVElUTEUxOiJDb21wYWN0IERCIixUWFRfREJMSVNUOmZ1bmN0aW9uKHgpe3ZhciBhPXgubGVuZ3RoO3JldHVybiJZb3UgYXJlIGdvaW5nIHRvIGNvbXBhY3QgezF9IGJ1Y2tldHsyfTogIi5hc3NpZ24oYSxhPDI/IiI6InMiKSt4Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVIVE1MKCl9KS5qb2luKCIsICIpfSxQTENfREJTOiJTZWxlY3QgREJzIHRvIGNvbXBhY3QiLFBMQ19ERE9DUzoiU2VsZWN0IGRkb2NzIGZvciB2aWV3IGNvbXBhY3Rpb24iLEVSUl9EQlM6IlNlbGVjdCBhdCBsZWFzdCBvbmUgREIiLEVSUl9ERE9DUzoiU2VsZWN0IGF0IGxlYXN0IG9uZSBkZXNpZ24gZG9jIixUQUdfT1A6W3siU3RyaXAgb2xkIHJldnMiOiJkb2NzIn0seyJTdHJpcCBvbGQgdmlld3MiOiJ2aWV3cyJ9LHsiQ29tcGFjdCB2aWV3cyI6ImRkb2NzIn1dLEVSUl9PUDoiU2VsZWN0IGF0IGxlYXN0IG9uZSBhY3Rpb24iLEVSUl9WQzoiVmlldyBjb21wYWN0aW9uIHJlcXVpcmVzIHNlbGVjdGluZyBkZG9jcywgc28gaXTigJlzIHVuYXZhaWxhYmxlIGZvciBtdWx0aXBsZSBEQnMgc2VsZWN0ZWQiLEJUTl9TVEFSVDoiU3RhcnQgY29tcGFjdGlvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixNU0dfQ09NUEFDVF9TVEFSVDoiU3RhcnRlZCBjb21wYWN0aW9uIG9mIOKAmHsxfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIGNvbXBhY3Rpb24gb2Yg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX0NPTVBBQ1RfRkFJTF9TT01FOiJFcnJvcnMgb2NjdXJlZCBkdXJpbmcgYXQgbGVhc3Qgb25lIGNvbXBhY3Rpb24gdGFza3MsIGNoZWNrIGNvbnNvbGUgZm9yIGRldGFpbHMifSxTeW5jVGFzazp7VFhUX1RJVExFOiJOZXcgcmVwbGljYXRpb24vZHVtcCIsVFhUX1RJVExFX1NZTkM6Ik5ldyByZXBsaWNhdGlvbiIsVFhUX1RJVExFX1pJUDoiRHVtcCB0byBaSVAiLFRYVF9USVRMRV9EVU1QOiJSZXN0b3JlIGZyb20gWklQIGR1bXAiLExCTF9NT0RFOiJNb2RlIixUQUdfTU9ERTp7dGFnczpbW3tPbmNlOiJvbmNlIn0se0xpdmU6ImxpdmUifSx7WklQOiJ6aXAifV0sW3tuYW1lOiJVc2UgX3JlcGxpY2F0b3IgZG9jIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxUQUdfTU9ERV9DT1BZOnt0YWdzOltbeyJSZXBsaWNhdGUgZG9jcyI6Im9uY2UifSx7IkR1bXAgZG9jcyB0byBaSVAiOiJ6aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IlN5bmMgbmFtZSIsUExDX0lEOiJEb2MgX2lkIGZvciB7X3JlcGxpY2F0b3J9IERCIixFUlJfSUQ6IlJlcXVpcmVkIixFUlJfSURfVU5EOiJDYW7igJl0IHN0YXJ0IHdpdGggdW5kZXJzY29yZSIsRVJSX1VOWklQX0ZBSUw6IlVuemlwIGZhaWxlZC4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIixFUlJfVU5aSVBfQUJSVDoiVW56aXAgYW5kIHNhdmUgYWJvcnRlZC4iLE1TR19VTlpJUF9PSzoiRHVtcCByZXN0b3JlIGNvbXBsZXRlZC4iLExCTF9GUk9NOiJTb3VyY2UgREIiLFBMQ19GUk9NOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9GUk9NOiJFeGlzdGluZyBEQiBuYW1lIG9yIHZhbGlkIFVSTCIsRVJSX0ZST01fVVJMOiJJbnZhbGlkIFVSTCIsRVJSX1BXRDoiUGxlYXNlIHByb3ZpZGUgY3JlZGVudGlhbHMiLExCTF9aSVBEVU1QOiJTcmMgemlwIGR1bXAiLFBMQ19aSVBEVU1QOiJTZWxlY3Qgb3IgZHJhZyAuemlwIERCIGR1bXAgaGVyZSIsRVJSX1pJUERVTVA6IkludmFsaWQgemlwIixMQkxfU1JDX0NSRURTOiJTb3VyY2UgY3JlZHMiLFBMQ19VTkFNRToiVXNlcm5hbWUiLEVSUl9VTk9fOiJDYW7igJl0IHN0YXJ0IHdpdGggXyIsUExDX1VQV0Q6IlBhc3N3b3JkIixFUlJfTk9QV0Q6IlBhc3N3b3JkIHJlcXVpcmVkIixUWFRfVUNUWDoiVXNlIC51c2VyQ3R4IHByb3Agd2l0aCBfYWRtaW4gcm9sZSIsTEJMX0ZJTFRFUjoiRmlsdGVyIixUQUdfRklMVEVSOnt0YWdzOltbe25hbWU6IkJ5IF9pZHMiLHZhbHVlOiJpZHMifSx7bmFtZToiRnVuY3Rpb24iLHZhbHVlOiJmbiIsY3NzOiJub3ppcCJ9LHtuYW1lOiJTa2lwIF9kZWxldGVkIix2YWx1ZToieGRlbCJ9XSx7bmFtZToiU2tpcCBkZG9jcyIsdmFsdWU6InhkZG9jIn0se25hbWU6IlNraXAgY29uZmxpY3RzIix2YWx1ZToieHJldnMiLGNzczoiemlwb25seSJ9XSxlbXB0eTp7Tm86IiJ9LHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfRE9DUzoiRG9jcyB0byBzeW5jIixQTENfRE9DUzoiSlNPTiBbXSBvZiBkb2MgX2lkLXMgdG8gcmVwbGljYXRlIixFUlJfRE9DUzoiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixMQkxfRk46IkZpbHRlciBmbiIsUExDX0ZOOiJkZG9jTmFtZS9maWx0ZXJGbk5hbWUsIGZpbHRlciBmdW5jdGlvbiIsRVJSX0ZOX0RFU0lHTjoiTm8gX2Rlc2lnbiBwcmVmaXgsIG9ubHkgZGRvY05hbWUvZmlsdGVyIixFUlJfRk46IlZhbGlkIGZvcm1hdCBpcyBkZG9jTmFtZS9maWx0ZXIiLExCTF9RUlk6IlFyeSBwYXJhbXMiLFBMQ19RUlk6IlF1ZXJ5IHBhcmFtcyBmb3IgZmlsdGVyIGZuLCBKU09OIG9iamVjdCIsRVJSX1FSWToiTXVzdCBiZSBub24tZW1wdHkgSlNPTiBvYmplY3QiLExCTF9aSVBPUFQ6IlN0b3JlIERCIG1ldGEiLFRBR19aSVBPUFQ6e3RhZ3M6W3tuYW1lOiJTZWN1cml0eSBvYmplY3RzIix2YWx1ZToiYWNsIn0se25hbWU6IlNoYXJkaW5nIHNldHRpbmdzIix2YWx1ZToicW5wIn1dLHRhZ3NoaW06IiIsZ3JvdXBzaGltOiLigIkifSxMQkxfVE86IlRhcmdldCBEQiIsUExDX1RPOiJMb2NhbCBuYW1lIG9yIHJlbW90ZSBVUkwiLEVSUl9UTzoiSW52YWxpZCBEQiBVUkwiLEVSUl9UT19VUkw6Ik1hbGZvcm1lZCBVUkwiLEVSUl9UT19NSVNTOiJNaXNzaW5nIGxvY2FsIHRhcmdldCBEQiIsRVJSX0RVUDoiU291cmNlIGFuZCBUYXJnZXQgbXVzdCBiZSBkaWZmZXJlbnQiLEVSUl9DUkVEUzoiQ3JlZGVudGlhbHMgcmVxdWlyZWQsIGxpa2UgaHR0cDovL3VzZXI6cHdkQGFiYy54eXovLi4uIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLEVSUl9VUkVRX0NUOiJSZXF1aXJlZCB3aXRoIENyZWF0ZSB0YXJnZXQiLFRYVF9ORVdUR1Q6IkNyZWF0ZSB0YXJnZXQiLFRJUF9UR1RfUToiTnVtYmVyIG9mIHNoYXJkcywgZm9yIG5ld2x5IGNyZWF0ZWQgREJzIG9ubHkiLFRJUF9UR1RfTjoiTnVtYmVyIG9mIGRhdGEgY29waWVzIHN0b3JlZCBpbiBhIGNsdXN0ZXIsIGZvciBuZXdseSBjcmVhdGVkIERCcyBvbmx5IixUWFRfQ09QWUFDTDoiQ29weSBzb3VyY2UgREIgc2VjdXJpdHkgIGRlc2NyaXB0b3JzIixMQkxfWklQRklMRToiVGFyZ2V0IGZpbGUiLFBMQ19aSVBGSUxFOiJUYXJnZXQgLnppcCBhcmNoaXZlIGZpbGUgbmFtZSIsRVJSX05PWklQOiJZb3VyIGJyb3dzZXIgZG9lc27igJl0IGhhdmUgYWxsIGZlYXR1cmVzIHJlcXVpcmVkIHRvIGNyZWF0ZSBaSVAgZmlsZSBvbiB0aGUgZmx5LCBzb3JyeS4gVXNlIENMSSB0b29scyB0byBkdW1wIHlvdXIgZGF0YS4iLE1TR19aSVBfQkxPQjonPHNwYW4gY2xhc3M9ImRpYiB3MjAgdGFjIG1sLTIwIGZpLWFsZXJ0IHJlZDEiPjwvc3Bhbj5Zb3VyIGJyb3dzZXIgZG9lc27igJl0IGFsbG93IGNsaWVudC1zaWRlIHN0cmVhbWluZyB0byBhIGZpbGUuIEl0IG1lYW5zIGFsbCBkYXRhIHNob3VsZCBmaXQgaW4gbWVtb3J5LCBzbyBkb2504oCZdCBkdW1wIG1vcmUgdGhhbiBzZXZlcmFsIGh1bmRyZWRzIG9mIG1lZ2FiYXl0ZXMuICcsTVNHX1pJUF9XQVJOOiJUaGlzIGZlYXR1cmUgaXMgZXhwZXJpbWVudGFsLCBpdCB3b3JrcyB3ZWxsIGZvciBEQnMgdXAgdG8gc2V2ZXJhbCBHYiBpZiBib3RoIG5ldHdvcmsgYW5kIERCIGFyZSBoZWFsdGh5LiBDb25zaWRlciB1c2luZyBwcm92ZW4gQ0xJIHNvbHV0aW9ucyBmb3IgbGFyZ2VyIERCcyBvciBmbGFreSBuZXR3b3Jrcy4iLExCTF9VTlpJUE9QVDoiVW56aXAgb3B0aW9ucyIsVEFHX1VOWklQT1BUOnt0YWdzOlt7bmFtZToiQ3JlYXRlIERCcyIsdmFsdWU6ImNyZWF0ZSJ9LHtuYW1lOiJQdXQgQUNMIix2YWx1ZToiYWNsIn0se25hbWU6IlNraXAgZGVsZXRlZCIsdmFsdWU6InhkZWwifSx7bmFtZToiU2tpcCBjb25mbGljdHMiLHZhbHVlOiJ4cmV2cyJ9XSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1VOWklQREJTOiJSZXN0b3JlIERCcyIsQlROX1NUQVJUOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCB7MX0gcmVwbGljYXRpb257Mn0iLmFzc2lnbigxPT14PyIiOngseD4xPyJzIjoiIil9LEJUTl9TVEFSVF9ET0M6ZnVuY3Rpb24oeCl7cmV0dXJuIkNyZWF0ZSB7MX0gZG9jezJ9IGFuZCBzdGFydCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1pJUDpmdW5jdGlvbih4KXtyZXR1cm4iRHVtcCB7MX0gREJ7Mn0gdG8gLnppcCIuYXNzaWduKDE9PXg/IiI6eCx4PjE/InMiOiIiKX0sQlROX1NUQVJUX1VOWklQOmZ1bmN0aW9uKHgpe3JldHVybiJTdGFydCByZXN0b3JlIn0sQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xFQVI6IkNsZWFyIixNU0dfU1RBUlQ6IlN0YXJ0aW5nIHsxfSBzeW5jIHRhc2suLi4iLE1TR19PS19PTkNFOiJSZXBsaWNhdGlvbiBmcm9tIHsxfSBmaW5pc2hlZCIsTVNHX09LX0RPQzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfTElWRToiQ3JlYXRlZCBhIHRhc2sgZm9yIHsxfSBvdXRib3VuZCBzeW5jIixNU0dfT0tfT05DRV9CQUNLOiJSZXBsaWNhdGlvbiB0byB7MX0gZmluaXNoZWQiLE1TR19PS19ET0NfQkFDSzoiQ3JlYXRlZCBfcmVwbGljYXRvciBkb2MgZm9yIHsxfSBpbmJvdW5kIHN5bmMiLE1TR19PS19MSVZFX0JBQ0s6IkNyZWF0ZWQgYSB0YXNrIGZvciB7MX0gaW5ib3VuZCBzeW5jIixNU0dfRkFJTDoiRmFpbGVkIHN0YXJ0aW5nIHsxfSBzeW5jLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTrCoHszfeKAmSIsTVNHX1pJUF9SVU5OSU5HOiJDYW7igJl0IHN0YXJ0IG5ldyBkdW1wIHdoaWxlIGFub3RoZXIgZHVtcCB0YXNrIGlzIHJ1bm5pbmcuIFJldHJ5IHdoZW4gaXQgZmluaXNoZXMuIixFUlJfSk9COntUOiJGYWlsZWQgezF9IGZvciB7Mn0gREIuIFNlcnZlciByZXNwb25kZWQg4oCYezN9OsKgezR94oCZIixDOiIgQ29udGludWluZyB0YXNrLiIsR0VUOiJyZWFkaW5nIGRkb2NzIixVVElMUzoiY3JlYXRpbmcgdXRpbCBkZG9jIixGRERPQzoicmVwbGljYXRpbmcgZmlsdGVyaW5nIGRkb2MgdG8gdGFyZ2V0IixBQ0w6ImNsb25pbmcgc2VjdXJpdHkgb2JqZWN0IHRvIHRhcmdldCIsVE86ImNyZWF0aW5nIG91dGJvdW5kIHN5bmMiLEZST006ImNyZWF0aW5nIGluYm91bmQgc3luYyJ9LE11bHRpOntUWFRfVElUTEU6Ik5ldyBiYWNrdXAvcmVzdG9yZSBqb2IiLFRBR19NT0RFOnt0YWdzOltbe09uY2U6Im9uY2UifSx7TGl2ZToibGl2ZSJ9LHtaSVA6InppcCJ9XSxbe25hbWU6IlVzZSBfcmVwbGljYXRvciBkb2NzIix2YWx1ZToiZG9jIixjc3M6Im5vemlwIn1dLFt7bmFtZToiVHdvIHdheSIsdmFsdWU6IjJ3YXkiLGNzczoibm96aXAifV1dLGdyb3Vwc2hpbTonPHNwYW4gY2xhc3M9Im82MCBub3ppcCI+JnRoaW5zcDvCtyZ0aGluc3A7PC9zcGFuPicsdGFnc2hpbToiJnRoaW5zcDsifSxMQkxfSUQ6IkRvY3MgcHJlZml4IixQTENfSUQ6IlByZWZpeCBmb3Ige19yZXBsaWNhdG9yfSBkb2NzIixFUlJfSURfVU5EOiJEb2MgbmFtZXMgY2Fu4oCZdCBzdGFydCB3aXRoIHVuZGVyc2NvcmUiLExCTF9GUk9NOiJTb3VyY2UgREJzIixQTENfRlJPTToiU2VsZWN0IERCcyB0byBiYWNrdXAvcmVzdG9yZSIsRVJSX0ZST006IkF0IGxlYXN0IG9uZSBEQiByZXF1aXJlZCIsTEJMX1VOUFJFRklYOiJVbnByZWZpeCBEQnMiLFBMQ19VTlBSRUZJWDoiUHJlZml4IHRvIHJlbW92ZSBmcm9tIERCIG5hbWVzIixUSVBfVU5QUkVGSVg6IkRCIG5hbWVzIG5vdCBzdGFydGluZyB3aXRoIHByZWZpeCBhcmUga2VwdCBpbnRhY3QiLExCTF9GSUxURVI6IkZpbHRlciIsVEFHX0ZJTFRFUjp7dGFnczpbe25hbWU6IlNraXAgX2RlbGV0ZWQiLHZhbHVlOiJ4ZGVsIn0se25hbWU6IlNraXAgZGRvY3MiLHZhbHVlOiJ4ZGRvYyJ9LHtuYW1lOiJTa2lwIGNvbmZsaWN0cyIsdmFsdWU6InhyZXZzIixjc3M6InppcG9ubHkifV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCJIn0sTEJMX1RPOiJUYXJnZXQgQ291Y2giLFBMQ19UTzoiVGFyZ2V0IENvdWNoREIgcm9vdCBVUkwiLEVSUl9UTzoiUGxlYXNlIHByb3ZpZGUgdmFsaWQgVVJMIixMQkxfVEdUX0NSRURTOiJUYXJnZXQgY3JlZHMiLExCTF9QUkVGSVg6IkFkZCBwcmVmaXgiLFBMQ19QUkVGSVg6IlN0cmluZyB0byBwcmVwZW5kIHRvIHRhcmdldCBEQiBuYW1lcyIsVFhUX05FV1RHVDoiQ3JlYXRlIHRhcmdldCBEQnMiLFRYVF9DT1BZQUNMOiJDb3B5IHNlY3VyaXR5ICBkZXNjcmlwdG9ycyBmcm9tIHNvdXJjZSBEQnMiLE1TR19TVEFSVElORzoiQ3JlYXRpbmcgc3luYyB0YXNrcy4uLiIsTVNHX1NUQVJUOiJTdGFydGluZyB7MX0gc3luYy4uLiIsTVNHX0ZBSUw6IkZhaWxlZCBzdGFydGluZyB7MX0gc3luYy4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06wqB7M33igJkifSxDb3B5OntUWFRfVElUTEU6IlJlcGxpY2F0ZS9kdW1wIGRvY3MiLEJUTl9TVEFSVDpmdW5jdGlvbih4LGEsYil7cmV0dXJuInppcCI9PWI/IkR1bXAgezF9IGRvY3syfSIuYXNzaWduKDE9PWE/IiI6YSxhPjE/InMiOiIiKToiUmVwbGljYXRlIHsxfSBkb2N7Mn0iLmFzc2lnbigxPT1hPyIiOmEsYT4xPyJzIjoiIil9fX0sJHN0YXRzOnt9LCRsb2c6e1RYVF9USVRMRToiTG9ncyIsVFhUX0tCOiJrYiIsVFhUX1NJWkU6IlNob3ciLFRYVF9PRkZTRVQ6Im9mZnNldCIsUExDX1NFQVJDSDoiU2VhcmNoIGluIGxvZ3MiLFBMQ19SRUxPQUQ6IlJlbG9hZCIsVEFHX0RJUjp7dGFnczpbeyLigKZhdCB0aGUgYm90dG9tIjoiZm9yd2FyZCJ9XSxlbXB0eTp7IkxhdGVzdCBhdCB0aGUgdG9wIjoicmV2ZXJzZSJ9fX0sJGRpZmY6e1RYVF9CQU46IlNraXAiLFBMQ19CQU46Ik5vZGVzIHRvIGV4Y2x1ZGUiLExCTF9TUkM6IlNob3cgc291cmNlIixUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TUkM6IlNvdXJjZSByZXZpc2lvbi4uLiIsUExDX1RHVDoiVGFyZ2V0IHJldmlzaW9uLi4uIixUWFRfTk9ESUZGOiJObyBkaWZmZXJlbmNlIixUWFRfU0VMRUNUOiJTZWxlY3QgZGlmZmVyZW50IHJldmlzaW9ucyJ9LCRjb25maWc6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixFUlJfUkVMT0FEOiJFcnJvciByZWxvYWRpbmcgY29uZmlnLiBTZXJ2ZXIgcmVzcG9uZGVkIHsxfTogezJ9IixCVE5fU0FWRToiU2F2ZSBjaGFuZ2VzICZuYnNwOyIsQlROX1JFVkVSVDoiUmV2ZXJ0IHRvIHNhdmVkICIsQlROX0NBTkNFTDoiQ2FuY2VsIixCVE5fQ0xPU0U6IkNsb3NlIixUWFRfSElTVF9USVRMRToiQ29uZmlnIGNoYW5nZXMiLFRYVF9ISVNUX0VNUFRZOiJObyB1bnNhdmVkIGNoYW5nZXMiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLEVSUl9WQUw6e0NIQVJTOiJGb3JiaWRkZW4gY2hhcnMgaW4gYSBrZXksIG9ubHkgYS16LCAwLTkgYW5kIF8tISBhbGxvd2VkIixWQUxTVFJJTkc6IlZhbHVlIGNhbuKAmXQgYmUgbnVsbCwgYXJyYXkgb3Igb2JqZWN0In0sTVNHX1NBVkVfT0s6IlN1Y2Nlc3NmdWxseSB1cGRhdGVkIGNvbmZpZyIsTVNHX1NBVkVfRkFJTDoiRmFpbGVkIHVwZGF0aW5nIHNvbWUga2V5cywgc2VlIGNvbnNvbGUgZm9yIGRldGFpbHMiLE1TR19DTFVTVEVSOiJZb3UgYXJlIG9wZXJhdGluZyBhIGNsdXN0ZXIuIFByb3BhZ2F0ZSBjb25maWcgY2hhbmdlcyB0byBhbGwgbm9kZXM/IixCVE5fU0FWRUNMVVNURVI6IlNhdmUgdG8gYWxsIG5vZGVzIixCVE5fU0FWRU5PREU6IlNhdmUgdG8gezF9IG9ubHkiLEJBTl9IVFRQOiJLZXkgY2Fu4oCZdCBiZSBjaGFuZ2VkIHRocm91Z2ggSFRUUCwgZWRpdCBsb2NhbC5pbmkgc2VydmVyc2lkZS4gUmVhc29uIGlzIENWRS0yMDE3LTEyNjM2LiIsQkFOX0NMVVNURVI6IktleSBjYW7igJl0IGJlIGNoYW5nZWQgdXNpbmcgYWRtaW4gcGFuZWwuIixNU0dfVU5LTk9XTl9LRVk6IlVua25vd24gY29uZmlnIGtleSIsSEVMUDp7T0JKX1BBVEhTOntWMToiaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuLzEuNi4xL2NvbmZpZy8iLFYyOiJodHRwczovL2RvY3MuY291Y2hkYi5vcmcvZW4vMi4zLjEvY29uZmlnLyIsVjM6Imh0dHBzOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi8zLjIuMC9jb25maWcvIixDQjoiaHR0cHM6Ly9naXRsYWIuY29tL0NvdWNoYm94L2NvdWNoYm94In0sVFhUX0RPQ1M6Ik9mZmljaWFsIGRvY3VtZW50YXRpb24iLFRYVF9OT0RPQ1M6Ik5vIG9mZmljaWFsIGRvY3VtZW50YXRpb24iLGFkbWluczp7X186IntWMn1hdXRoLmh0bWwjc2VydmVyLWFkbWluaXN0cmF0b3JzIiwiIjoiQ291Y2hEQiBub2RlIGFkbWluaXN0cmF0b3JzLCB1c2VycyBoYXZpbmcgYF9hZG1pbmAgcm9sZSIsIioiOiJLZXkgaXMgdXNlciBuYW1lLCB2YWx1ZSBpcyBwYXNzd29yZCBoYXNoLCBvciBuZXcgcGFzc3dvcmQgZm9yIHRoZSB1c2VyIn0sYXR0YWNobWVudHM6e19fOiJ7VjJ9bWlzYy5odG1sI3trZXl9IiwiIjoiQ29uZmlndXJhdGlvbiBvZiBhdHRhY2htZW50IGZpbGUgc3RvcmFnZSIsY29tcHJlc3NpYmxlX3R5cGVzOiJDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb21wcmVzc2libGUgTUlNRSB0eXBlcyBsaWtlIGB0ZXh0LyosIGFwcGxpY2F0aW9uL2phdmFzY3JpcHRgIixjb21wcmVzc2lvbl9sZXZlbDoiWmxpYiBjb21wcmVzc2lvbiBsZXZlbCwgbnVtYmVyIDDigJM5In0sY2h0dHBkOntfXzoie1YzfWh0dHAuaHRtbCN7a2V5fSIsIiI6IkhUVFAgc2VydmVyIG9wdGlvbnMiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGJhY2tsb2c6Ik1vY2hpV2ViIHBhcmFtLCBzb2NrZXQgYmFja2xvZyBzaXplLCBieXRlcyIsbWF4X2RiX251bWJlcl9mb3JfZGJzX2luZm9fcmVxOiJNYXggbnVtYmVyIG9mIERCcyBhbGxvd2VkIGZvciBgL19kYnNfaW5mb2AgcmVxdWVzdCIscG9ydDoiQ291Y2hEQiBwb3J0LCBudW1iZXIgMeKAkzY1NTM1IixwcmVmZXJfbWluaW1hbDoiU2VuZHMgbWluaW1hbCBzZXQgb2YgaGVhZGVycyIscmVxdWlyZV92YWxpZF91c2VyOiJXaGVuIGB0cnVlYCwgbm8gcmVxdWVzdHMgYXJlIGFsbG93ZWQgZnJvbSBhbm9ueW1vdXMgdXNlcnMiLHNvY2tldF9vcHRpb25zOiJUaGUgc29ja2V0IG9wdGlvbnMgZm9yIHRoZSBsaXN0ZW5pbmcgc29ja2V0IGluIENvdWNoREIiLGFkbWluX29ubHlfYWxsX2RiczpbIldoZW4gYHRydWVgIHByZXZlbnRzIG5vbi1hZG1pbnMgZnJvbSBhY2Nlc3NpbmcgYC9fYWxsX2Ric2AiLCIiXX0sY2h0dHBkX2F1dGg6e19fOiJ7VjN9YXV0aC5odG1sI3trZXl9IiwiIjoiQXV0aGVudGljYXRpb24gY29uZmlnIixwYXNzd29yZF9yZWdleHA6IlJlZ0V4cCByZXN0cmljdGluZyBwYXNzd29yZCB2YWx1ZSJ9LGNsdXN0ZXI6e19fOiJ7VjJ9Y2x1c3Rlci5odG1sI3trZXl9IiwiIjoiQ2x1c3RlciBvcHRpb25zIixuOiJOdW1iZXIgb2YgcmVwbGljYXMgb2YgZWFjaCBkb2N1bWVudCBpbiBhIGNsdXN0ZXIsIG51bWJlciAxKyIscGxhY2VtZW50OiJTZXRzIHRoZSBjbHVzdGVyLXdpZGUgcmVwbGljYSBwbGFjZW1lbnQgcG9saWN5IGZvciBuZXcgZGF0YWJhc2VzIixxOiJEZWZhdWx0IG51bWJlciBvZiBzaGFyZHMgZm9yIG5ld2x5IGNyZWF0ZWQgZGF0YWJhc2VzLCBudW1iZXIgMSsiLHNlZWRsaXN0OiJMaXN0IG9mIG5vZGVzIHRvIGNvbnRhY3QgaW4gb3JkZXIgdG8gam9pbiBhIGNsdXN0ZXIifSxjb21wYWN0aW9uX2RhZW1vbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJDb21wYWN0aW9uIGRhZW1vbiBjb25maWciLGNoZWNrX2ludGVydmFsOiJEZWxheSBiZWZvcmUgYXV0by1jb21wYWN0aW9uIGRhZW1vbiBjaGVja3MgYSBEQiwgc2Vjb25kcyIsbWluX2ZpbGVfc2l6ZToiTWluaW1hbCBEQiBmaWxlIHNpemUgZm9yIGNvbXBhY3Rpb24gZGFlbW9uIHRvIHRyaWdnZXIgY2hlY2siLHNub296ZV9wZXJpb2RfbXM6Ik1pbmltdW0gZ2FwIGJldHdlZW4gc3Vic2VxdWVudCBkYWVtb24gYWN0aXZhdGlvbnMsIG1pbGxpc2Vjb25kcyJ9LGNvbXBhY3Rpb25zOntfXzoie1YyfWNvbXBhY3Rpb24uaHRtbCN7a2V5fSIsIiI6IkEgbGlzdCBvZiBydWxlcyB0byBkZXRlcm1pbmUgd2hlbiB0byBydW4gYXV0b21hdGljIGNvbXBhY3Rpb24iLCIqIjonS2V5IGlzIERCIG5hbWUsIHZhbHVlIGlzIGxpa2VgW3tkYl9mcmFnbWVudGF0aW9uLCI3MCUifSwge3ZpZXdfZnJhZ21lbnRhdGlvbiwiNjAlIn0sIHtmcm9tLCIyMzowMCJ9LHt0bywiMDQ6MDAifV1gJ30sY29yczp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJDcm9zcy1vcmlnaW4gcmVzb3VyY2Ugc2hhcmluZyBjb25maWciLGNyZWRlbnRpYWxzOiJJZiBzZXQgYHRydWVgLCBDb3VjaCBzZW5kcyBhdXRoIGNvb2tpZXMgZm9yIGNyb3NzLW9yaWdpbiByZXF1ZXN0cyIsaGVhZGVyczoiSGVhZGVycyBhY2NlcHRlZCBmb3IgQ09SUyByZXF1ZXN0cywgZ29vZCBkZWZhdWx0IGlzIGBhY2NlcHQsIGF1dGhvcml6YXRpb24sIGNvbnRlbnQtdHlwZSwgb3JpZ2luYCIsbWF4X2FnZToiU2V0cyBtYXggYWdlIGhlYWRlciBmb3IgT1BUSU9OUyByZXNwb25zZSwgc2Vjb25kcyIsbWV0aG9kczoiTGlzdCBvZiBhbGxvd2VkIG1ldGhvZHMsIGxpa2UgYEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIE9QVElPTlMsIEhFQURgIixvcmlnaW5zOiJMaXN0IG9mIG9yaWdpbnMgc2VwYXJhdGVkIGJ5IGEgY29tbWEsIGxpa2UgYGh0dHA6Ly9kb21haW4wLmNvbSwgaHR0cHM6Ly9kb21haW4xLmNvbTo0NDNgIn0sY291Y2hfaHR0cGRfYXV0aDp7X186IntWMn1hdXRoLmh0bWwje2tleX0iLCIiOiJBdXRoZW50aWNhdGlvbiBjb25maWciLGFsbG93X3BlcnNpc3RlbnRfY29va2llczoiV2hlbiBgdHJ1ZWAsIENvdWNoIGF1dG8tcmVmcmVzaGVzIHNlc3Npb24gY29va2llcyB0aW1lIHRvIHRpbWUiLGF1dGhfY2FjaGVfc2l6ZToiSG93IG1hbnkgdXNlcnMgYXJlIGNhY2hlZCBpbiBtZW1vcnksIG51bWJlciIsYXV0aGVudGljYXRpb25fcmVkaXJlY3Q6IlJlZGlyZWN0aW9uIG9uIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24gaWYgdGhlIGNsaWVudCBhY2NlcHRzIGB0ZXh0L2h0bWxgIixjb29raWVfZG9tYWluOiJDb25maWd1cmVzIHRoZSBkb21haW4gYXR0cmlidXRlIG9mIHRoZSBgQXV0aFNlc3Npb25gIGNvb2tpZSIsaXRlcmF0aW9uczoiUGFzc3dvcmQgaGFzaGluZyBpdGVyYXRpb25zIGNvdW50IixtYXhfaXRlcmF0aW9uczoiTWF4aW11bSBQQktERjIgaXRlcmF0aW9ucyBjb3VudCIsbWluX2l0ZXJhdGlvbnM6Ik1pbmltdW0gUEJLREYyIGl0ZXJhdGlvbnMgY291bnQiLHByb3h5X3VzZV9zZWNyZXQ6IkZvcmNlIHByb3h5IGF1dGggdG8gdXNlIHNlY3JldCB0b2tlbiwgYGZhbHNlYCBtYWtlcyBDb3VjaCB2ZXJ5IHVucHJvdGVjdGVkIixwdWJsaWNfZmllbGRzOiJMaXN0IG9mIHB1YmxpYyBmaWVsZHMgaW4gYF91c2Vyc2AgZG9jdW1lbnRzIHRoYXQgYXJlIHVzZXIgcHJvZmlsZXMiLHJlcXVpcmVfdmFsaWRfdXNlcjoiV2hlbiBgdHJ1ZWAsIG5vIHJlcXVlc3RzIGFyZSBhbGxvd2VkIGZyb20gYW5vbnltb3VzIHVzZXJzIixzZWNyZXQ6IlNlY3JldCB0b2tlbiB1c2VkIGZvciBQcm94eSBhbmQgQ29va2llIGF1dGhlbnRpY2F0aW9uIixzYW1lX3NpdGU6IlNhbWVTaXRlIGF0dHJpYnV0ZSBmb3IgYXV0aCBjb29raWUsIGBub25lYCwgYGxheGAgb3IgYHN0cmljdGAgIix0aW1lb3V0OiJOdW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCByZXF1ZXN0IGJlZm9yZSBzZXNzaW9uIGV4cGlyZXMiLHVzZXJzX2RiX3B1YmxpYzoiQWxsb3cgYWxsIHVzZXJzIHRvIHZpZXcgdXNlciBkb2N1bWVudHMiLHhfYXV0aF9yb2xlczoiUHJveHkgQXV0aCByb2xlcyBoZWFkZXIgbmFtZSwgZGVmYXVsdCBpcyBgWC1BdXRoLUNvdWNoREItUm9sZXNgIix4X2F1dGhfdG9rZW46IlByb3h5IEF1dGggdG9rZW4gaGVhZGVyIG5hbWUsIGRlZmF1bHQgaXMgYFgtQXV0aC1Db3VjaERCLVRva2VuYCIseF9hdXRoX3VzZXJuYW1lOiJQcm94eSBBdXRoIHVzZXJuYW1lIGhlYWRlciBuYW1lLCBkZWZhdWx0IGlzIGBYLUF1dGgtQ291Y2hEQi1Vc2VyTmFtZWAifSxjb3VjaF9odHRwZF9vYXV0aDp7X186IntWMX1hdXRoLmh0bWwje2tleX0iLCIiOiJIVFRQIE9BdXRoIENvbmZpZ3VyYXRpb24iLHVzZV91c2Vyc19kYjoiSWYgYHRydWVgIE9BdXRoIHRva2VuIGFuZCBjb25zdW1lciBzZWNyZXRzIGFyZSBsb29rZWQgdXAgaW4gYF91c2Vyc2AgZG9jcyJ9LGNvdWNoX3BlcnVzZXI6e19fOiJ7VjJ9Y291Y2gtcGVydXNlci5odG1sI3trZXl9IiwiIjoiR2VuZXJhdGVzIGEgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtYmVyIixkZWxldGVfZGJzOiJEZWxldGUgYSB1c2VyIERCIG9uIGBfdXNlcnNgIGRvYyBkZWxldGlvbiIsZW5hYmxlOiJJZiBgdHJ1ZWAgYXV0by1jcmVhdGVzIGB1c2VyLXtoZXhuYW1lfWAgREIgZm9yIGVhY2ggYF91c2Vyc2AgbWVtZWJlciJ9LGNvdWNoZGI6e19fOiJ7VjJ9Y291Y2hkYi5odG1sI3trZXl9IiwiIjoiQmFzZSBDb3VjaERCIG9wdGlvbnMiLGF0dGFjaG1lbnRfc3RyZWFtX2J1ZmZlcl9zaXplOiJCdWZmZXIgdXNlZCB3aGlsZSBzdHJlYW1pbmcgYW4gYXR0YWNobWVudCwgYnl0ZXMiLGRhdGFiYXNlX2RpcjoiRGF0YWJhc2VzIGxvY2F0aW9uIGRpcmVjdG9yeSIsZGVmYXVsdF9zZWN1cml0eToiRGVmYXVsdCBzZWN1cml0eSBvYmplY3QgZm9yIERCcywgYGV2ZXJ5b25lYCBhbmQgYGFkbWluX2xvY2FsYCBtYWtlIERCIHB1YmxpYywgYGFkbWluX29ubHlgIHByb3RlY3RzIixkZWxheWVkX2NvbW1pdHM6IklmIGB0cnVlYCBDb3VjaCBndWFyYW50ZWVzIGNoYW5nZXMgYXJlIHdyaXR0ZW4gdG8gZGlzayBiZWZvcmUgYDIweGAgcmVzcG9uc2UgaXMgc2VudCIsZmlsZV9jb21wcmVzc2lvbjoiQ29tcHJlc3Npb24gbWV0aG9kIGZvciBkb2N1bWVudHMsIGBub25lYCwgYHNuYXBweWAgb3IgYGRlZmxhdGVfTmAiLGZzeW5jX29wdGlvbnM6IkZzeW5jIG9wdGlvbnMiLG1haW50ZW5hbmNlX21vZGU6IklmIHNldCBgdHJ1ZWAsIG5vZGUgaXMgbm90IGluIGNsdXN0ZXIsIGFuZCBgL191cGAgcmV0dXJucyBgNDA0YCIsbWF4X2Ric19vcGVuOiJMaW1pdCBvZiBzaW11bHRhbmVvdXNseSBvcGVuZWQgZGF0YWJhc2VzLCBudW1iZXIiLG1heF9kb2N1bWVudF9zaXplOiJMaW1pdCBtYXhpbXVtIGRvY3VtZW50IGJvZHkgc2l6ZSwgYnl0ZXMiLG9zX3Byb2Nlc3NfdGltZW91dDoiRXh0ZXJuYWwgcHJvY2Vzc2VzIHRpbWUgbGltaXQsIG1pbGxpc2Vjb25kcyIsdXJpX2ZpbGU6IkRpc2NvdmVyeSBDb3VjaERCIGhlbHAgZmlsZSIsdXNlcnNfZGJfc3VmZml4OiJTcGVjaWZpZXMgdGhlIHN1ZmZpeCBvZiB0aGUgc3lzdGVtIGRhdGFiYXNlIG9mIHVzZXJzIix1dGlsX2RyaXZlcl9kaXI6IlNwZWNpZmllcyBsb2NhdGlvbiBvZiBiaW5hcnkgZHJpdmVycyIsdXVpZDoiVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgQ291Y2hEQiBzZXJ2ZXIgaW5zdGFuY2UiLHZpZXdfaW5kZXhfZGlyOiJWaWV3IGluZGV4ZXMgbG9jYXRpb24gZGlyZWN0b3J5Iix1c2Vyc19kYl9zZWN1cml0eV9lZGl0YWJsZTpbIkFsbG93IGVkaXRzIG9uIHRoZSBgX3NlY3VyaXR5YCBvYmplY3QgaW4gdGhlIHVzZXIgZGIiLCIiXX0sY3NwOntfXzoie1YzfW1pc2MuaHRtbCN7a2V5fSIsIiI6IkNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IHNldHRpbmdzIixlbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBGYXV4dG9uIixoZWFkZXJfdmFsdWU6IkRlZmF1bHQgRmF1eHRvbiBDU1AgaGVhZGVyIHZhbHVlIixhdHRhY2htZW50c19lbmFibGU6IklmIGB0cnVlYCBlbmFibGVzIENTUCBoZWFkZXJzIGZvciBkb2MgYXR0YWNobWVudHMiLGF0dGFjaG1lbnRzX2hlYWRlcl92YWx1ZToiRGVmYXVsdCBDU1AgaGVhZGVyIHZhbHVlIGZvciBkb2MgYXR0YWNobWVudHMiLHNob3dsaXN0X2VuYWJsZToiSWYgYHRydWVgIGVuYWJsZXMgQ1NQIGhlYWRlcnMgZm9yIG5vbi1KU09OIHNob3cvbGlzdCByZXN1bHRzIixzaG93bGlzdF9oZWFkZXJfdmFsdWU6IkRlZmF1bHQgQ1NQIGhlYWRlciB2YWx1ZSBmb3Igbm9uLUpTT04gc2hvdy9saXN0IHJlc3VsdHMifSxkYWVtb25zOntfXzoie1YyfXNlcnZpY2VzLmh0bWwje2tleX0iLCIiOiJDb3VjaERCIERhZW1vbml6ZWQgTWluaSBBcHBzIixhdXRoX2NhY2hlOiJBdXRoZW50aWNhdGlvbiBjYWNoaW5nIGxvY2F0b3IiLGNvbXBhY3Rpb25fZGFlbW9uOiJDb21wYWN0aW9uIGRhZW1vbiBsb2NhdG9yIixleHRlcm5hbF9tYW5hZ2VyOiJFeHRlcm5hbCBwcm9jZXNzZXMgbWFuYWdlciBsb2NhdG9yIixodHRwZDoiTm9kZSBIVFRQIHNlcnZlciBkYWVtb24gbG9jYXRvciIsaW5kZXhfc2VydmVyOiJDb3VjaERCIGluZGV4IHNlcnZlciBsb2NhdG9yIixxdWVyeV9zZXJ2ZXJzOiJRdWVyeSBzZXJ2ZXJzIG1hbmFnZXIgbG9jYXRvciIscmVwbGljYXRvcl9tYW5hZ2VyOiJDb3VjaCByZXBsaWNhdG9yIG1hbmFnZXIgbG9jYXRvciIsc3RhdHNfYWdncmVnYXRvcjoiQ291Y2ggc3RhdHMgYWdncmVnYXRvciBkYWVtb24gbG9jYXRvciIsc3RhdHNfY29sbGVjdG9yOiJDb3VjaCBzdGF0cyBjb2xsZWN0b3IgZGFlbW9uIGxvY2F0b3IiLHV1aWRzOiJVVUlEcyBnZW5lcmF0b3IgZGFlbW9uIGxvY2F0b3IiLHZob3N0czoiTWFuYWdlciBvZiBgdmhvc3RzYCBjb25uZWN0aW9ucyBsb2NhdG9yIn0sZGF0YWJhc2VfY29tcGFjdGlvbjp7X186IntWMn1jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJEYXRhYmFzZSBjb21wYWN0aW9uIG9wdGlvbnMiLGNoZWNrcG9pbnRfYWZ0ZXI6IlRyaWdnZXJzIGEgY2hlY2twb2ludCBhZnRlciB0aGUgc3BlY2lmaWVkIGFtb3VudCBvZiBieXRlcyB3ZXJlIGNvcGllZCIsZG9jX2J1ZmZlcl9zaXplOiJUaGUgY29weSBidWZmZXLigJlzIG1heGltdW0gc2l6ZSwgYnl0ZXMifSxkcmV5ZnVzOntfXzoie1YzfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IkRyZXlmdXMgc2VhcmNoIHN1YnN5c3RlbSBjb25maWd1cmF0aW9uIixsaW1pdDoiRGVmYXVsdCByZXN1bHQgc2V0IGxpbWl0IGZvciBnbG9iYWwgc2VhcmNoIixsaW1pdF9wYXJ0aXRpb25zOiJEZWZhdWx0IHJlc3VsdCBzZXQgbGltaXQgZm9yIHBhcnRpdGlvbmVkIERCcyIsbWF4X2xpbWl0OiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIGdsb2JhbCBzZWFyY2giLG1heF9saW1pdF9wYXJ0aXRpb25zOiJNYXhpbXVtIHJlc3VsdCBzZXQgZm9yIHBhcnRpdGlvbmVkIHNlYXJjaCIsbmFtZToiQ2xvdXNlYXUgSlZNIG5vZGUgbmFtZSBhbmQgbG9jYXRpb24iLHJldHJ5X2xpbWl0OiJNYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9uIHJldHJpZXMifSxodHRwZDp7X186IntWMn1odHRwLmh0bWwje2tleX0iLCIiOiJIVFRQIHNlcnZlciBjb25maWcsIGZvciAyLnggb25seSBmb3IgbG9jYWwgNTk4NiBwb3J0IiwiV1dXLUF1dGhlbnRpY2F0ZSI6IklmIGB0cnVlYCB0cmlnZ2VyIGJhc2ljLWF1dGggcG9wLXVwIG9uIHVuYXV0aG9yaXplZCByZXF1ZXN0cyIsYWxsb3dfanNvbnA6IklmIGB0cnVlYCBlbmFibGVzIEpTT05QIHN1cHBvcnQsIGBmYWxzZWAgcmVjb21tZW5kZWQiLGF1dGhlbnRpY2F0aW9uX2hhbmRsZXJzOiJMaXN0IG9mIGF1dGhlbnRpY2F0aW9uIGhhbmRsZXJzIHVzZWQgYnkgQ291Y2hEQiIsYmluZF9hZGRyZXNzOiJJUCBhZGRyZXNzIGxpc3RlbmVkIGJ5IENvdWNoREIiLGNoYW5nZXNfdGltZW91dDoiQ2hhbmdlcyBmZWVkIHRpbWVvdXQsIG1pbGxpc2Vjb25kcyIsY29uZmlnX3doaXRlbGlzdDoiT25seSB3aGl0ZWxpc3RlZCB2YWx1ZXMgbWF5IGJlIGNoYW5nZWQgdmlhIHRoZSBgL19jb25maWdgIEhUVFAgZW5kcG9pbnRzIixkZWZhdWx0X2hhbmRsZXI6IkRlZmF1bHQgcmVxdWVzdCBoYW5kbGVyIGxvY2F0b3IiLGVuYWJsZV9jb3JzOiJJZiBgdHJ1ZWAgYWxsb3dzIENPUlMiLGVuYWJsZV94ZnJhbWVfb3B0aW9uczoiQ29udHJvbHMgWC1GcmFtZS1PcHRpb25zIGhlYWRlciIsbG9nX21heF9jaHVua19zaXplOiJNYXggcmVzcG9uc2Ugc2l6ZSBmb3IgYC9fbG9nYCByZXF1ZXN0IixtYXhfaHR0cF9yZXF1ZXN0X3NpemU6IkxpbWl0IHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIEhUVFAgcmVxdWVzdCBib2R5LCBieXRlcyIscG9ydDoiTGlzdGVuIHBvcnQiLHJlZGlyZWN0X3Zob3N0X2hhbmRsZXI6IkN1c3RvbWl6ZXMgdGhlIGRlZmF1bHQgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHJlcXVlc3RzIHRvIHZpcnR1YWwgaG9zdHMiLHNlY3VyZV9yZXdyaXRlczoiQWxsb3dzIGBfcmV3cml0ZWAgcnVsZXMgcG9pbnRpbmcgdG8gZGlmZmVyZW50IERCIixzZXJ2ZXJfb3B0aW9uczoiTW9jaGlXZWIgd2ViIHNlcnZlciBvcHRpb25zIixzb2NrZXRfb3B0aW9uczoiVGhlIHNvY2tldCBvcHRpb25zIGZvciB0aGUgbGlzdGVuaW5nIHNvY2tldCBpbiBDb3VjaERCIix2aG9zdF9nbG9iYWxfaGFuZGxlcnM6Ikxpc3Qgb2YgZ2xvYmFsIGhhbmRsZXJzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdmlydHVhbCBob3N0cyIseF9mb3J3YXJkZWRfaG9zdDoiWC1Gb3J3YXJkZXItSG9zdCIseF9mb3J3YXJkZWRfcHJvdG86IlgtRm9yd2FyZGVyLVByb3RvIix4X2ZvcndhcmRlZF9zc2w6IlgtRm9yd2FyZGVyLVNzbCJ9LGh0dHBkX2RiX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZXZlcnkgQ291Y2hEQiBkYXRhYmFzZSIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZGVzaWduX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6IkhUVFAgZW5kcG9pbnRzIGF2YWlsYWJsZSBmb3IgZGVzaWduIGRvY3VtZW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saHR0cGRfZ2xvYmFsX2hhbmRsZXJzOntfXzoie1YxfWh0dHAtaGFuZGxlcnMuaHRtbCN7a2V5fSIsIiI6Ikdsb2JhbCBIVFRQIGVuZHBvaW50cyIsIioiOiJLZXkgaXMgZW5kcG9pbnQgbmFtZSwgdmFsdWUgaXMgaGFuZGxlciBmdW5jdGlvbiBsb2NhdG9yIn0saW9xOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiSU8gcXVldWUgcHJpb3JpdGl6YXRpb24gb3B0aW9ucyIsY29uY3VycmVuY3k6Ik51bWJlciBvZiBjb25jdXJyZW50IGluLWZsaWdodCBJTyByZXF1ZXN0cyB0aGF0IHRoZSBxdWV1ZWluZyBzeXN0ZW0gd2lsbCBzdWJtaXQiLHJhdGlvOiJCYWNrZ3JvdW5kIElPIHJlcXVlc3RzIHF1b3RhIHJhdGlvIn0sImlvcS5ieXBhc3MiOntfXzoie1YzfWlvcS5odG1sI3trZXl9IiwiIjoiTGlzdCBvZiBvcGVyYXRpb25zIHRoYXQgY2FuIGJ5cGFzcyBJTyBxdWV1ZSIsIioiOiJLZXkgaXMgdGhlIG9wZXJhdGlvbiwgdmFsdWUgaXMgYnlwYXNzIHN0YXR1cyBmb3IgaXQifSxrZW46e19fOiJ7VjN9aW5kZXhidWlsZHMuaHRtbCN7a2V5fSIsIiI6IkJhY2tncm91bmQgaW5kZXggYnVpbGRzIixiYXRjaF9jaGFubmVsczoiQ29udHJvbHMgdGhlIG51bWJlciBvZiBiYWNrZ3JvdW5kIHZpZXcgYnVpbGRzIHRoYXQgY2FuIGJlIHJ1bm5pbmcgaW4gcGFyYWxsZWwiLGluY3JlbWVudGFsX2NoYW5uZWxzOiJBZGRpdGlvbmFsIHNsb3RzIGZvciBzaG9ydCBqb2JzIixtYXhfaW5jcmVtZW50YWxfdXBkYXRlczoiVGhyZXNob2xkIGRlZmluaW5nIGEgam9iIGFzIHNob3J0In0sImtlbi5pZ25vcmUiOntfXzoie1YzfWluZGV4YnVpbGRzLmh0bWwje2tleX0iLCIiOiJBdXRvLWluZGV4aW5nIGJsYWNrbGlzdCIsIioiOiJLZXkgaXMgYSBzaGFyZCBuYW1lIHRvIHNraXAgd2hpbGUgYXV0by1pbmRleGluZywgdmFsdWUgc2hvdWxkIGJlIGB0cnVlYCJ9LGxvZzp7X186IntWMn1sb2dnaW5nLmh0bWwje2tleX0iLCIiOiJMb2dnaW5nIG9wdGlvbnMiLHdyaXRlcjoiU2V0IHRoZSBsb2cgd3JpdGVyIHRvIHVzZTogYHN0ZGVycmAsIGBmaWxlYCwgYHN5c2xvZ2AiLGZpbGU6IkxvZ2dpbmcgZmlsZSBwYXRoIixpbmNsdWRlX3Nhc2w6IklmIGB0cnVlYCBwdXRzIFNBU0wgaW5mbyBpbnRvIGxvZ3MiLGxldmVsOiJMb2dnaW5nIHZlcmJvc2l0eTogYGRlYnVnYCwgYGluZm9gLCBgbm90aWNlYCwgYHdhcm5gLCBgZXJyYCwgYG5vbmVgIixzeXNsb2dfYXBwaWQ6IlNwZWNpZmllcyBhcHBsaWNhdGlvbiBuYW1lIGZvciB0aGUgYHN5c2xvZ2Agd3JpdGVyIixzeXNsb2dfZmFjaWxpdHk6IlNwZWNpZmllcyB0aGUgc3lzbG9nIGZhY2lsaXR5IHRvIHVzZSB3aXRoIHRoZSBgc3lzbG9nYCB3cml0ZXIiLHN5c2xvZ19ob3N0OiJTcGVjaWZpZXMgdGhlIGhvc3QgdG8gc2VuZCBsb2dzIHRvIGJ5IGBzeXNsb2dgIHdyaXRlciIsc3lzbG9nX3BvcnQ6IlNwZWNpZmllcyB0aGUgcG9ydCB0byBzZW5kIGxvZ3MgdG8gYnkgYHN5c2xvZ2Agd3JpdGVyIix3cml0ZV9idWZmZXI6IkJ1ZmZlciBmb3IgYGZpbGVgIGxvZyB3cml0ZXIsIGJ5dGVzIix3cml0ZV9kZWxheToiRGVsYXkgZm9yIGBmaWxlYCBsb2cgd3JpdGVyLCBtaWxsaXNlY29uZHMifSxuYXRpdmVfcXVlcnlfc2VydmVyczp7X186IntWMn1xdWVyeS1zZXJ2ZXJzLmh0bWwje2tleX0iLCIiOiJOYXRpdmUgRXJsYW5nIHF1ZXJ5IHNlcnZlciIsZW5hYmxlX2VybGFuZ19xdWVyeV9zZXJ2ZXI6IklmIGB0cnVlYCwgRXJsYW5nIFFTIGlzIGVuYWJsZWQgaW4gMi54Iixlcmxhbmc6IkVybGFuZyBRUyBsb2NhdG9yIGZvciBDb3VjaCAxLngifSxwdXJnZTp7X186IntWM31taXNjLmh0bWwje2tleX0iLCIiOiJDb25maWd1cmF0aW9uIG9mIGRhdGFiYXNlIHB1cmdlIixtYXhfZG9jdW1lbnRfaWRfbnVtYmVyOiJNYXggbnVtYmVyIG9mIGRvY3MgYWxsb3dlZCBpbiBhIHNpbmdsZSBwdXJnZSByZXF1ZXN0IixtYXhfcmV2aXNpb25zX251bWJlcjoiTWF4IG51bWJlciBvZiBhY2N1bXVsYXRlZCByZXZpc2lvbnMgaW4gYSBzaW5nbGUgcHVyZ2UgcmVxdWVzdCIsaW5kZXhfbGFnX3dhcm5fc2Vjb25kczoiTWF4IGR1cmF0aW9uIGZvciB1cGRhdGluZyBpbmRleCB0byBjb21wbHkgbG9jYWwgcHVyZ2UgY2hlY2twb2ludCJ9LHNtb29zaDp7X186IntWM31jb21wYWN0aW9uLmh0bWwje2tleX0iLCIiOiJBdXRvY29tcGFjdGlvbiBkYWVtb24gc2V0dGluZ3MiLGRiX2NoYW5uZWxzOiJMaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBkYiBjb21wYWN0aW9uIGNoYW5uZWwgbmFtZXMiLHZpZXdfY2hhbm5lbHM6Ikxpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIHZpZXcgaW5kZXggY29tcGFjdGlvbiBjaGFubmVsIG5hbWVzIn0sInNtb29zaC5yYXRpb19kYnMiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgZGJzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LCJzbW9vc2gucmF0aW9fdmlld3MiOntfXzoie1YzfWNvbXBhY3Rpb24uaHRtbCNzbW9vc2guPGNoYW5uZWw+IiwiIjoiQ29udHJvbHMgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgdmlldyBpbmRpY2VzIGNvbXBhY3Rpb24gY2hhbm5lbCIsY2FwYWNpdHk6Ik1heCBpdGVtcyB0aGUgY2hhbm5lbCBjYW4gaG9sZCAobG93IHByaW9yaXR5IGl0ZW1zIGRyb3BwZWQgZmlyc3QpLCBkZWZhdWx0IDk5OTkiLGNvbmN1cnJlbmN5OiJNYXggam9icyB0aGF0IGNhbiBydW4gY29uY3VycmVudGx5IGluIHRoaXMgY2hhbm5lbCwgZGVmYXVsdHMgdG8gMSIsbWluX3ByaW9yaXR5OiJNaW4gcHJpb3JpdHkgb2YgYW4gaXRlbSB0byBlbnF1ZXVlIixtYXhfcHJpb3JpdHk6Ik1heCBwcmlvcml0eSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9zaXplOiJNaW4gc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1heF9zaXplOiJNYXggc2l6ZSBvZiBhbiBpdGVtIHRvIGVucXVldWUiLG1pbl9jaGFuZ2VzOiJNaW4gY2hhbmdlcyBzaW5jZSBsYXN0IGNvbXBhY3Rpb24gYmVmb3JlIHRoZSBpdGVtIHdpbGwgYmUgZW5xdWV1ZWQiLHByaW9yaXR5OiJQcmlvcml0eSBjYWxjIG1ldGhvZDogcmF0aW8gKGRlZmF1bHQsIHNpemVzLmZpbGUvc2l6ZXMuYWN0aXZlKSwgb3Igc2xhY2sgKHNpemVzLmZpbGUtc2l6ZXMuYWN0aXZlKSJ9LHF1ZXJ5X3NlcnZlcnM6e19fOiJ7VjJ9cXVlcnktc2VydmVycy5odG1sI3trZXl9IiwiIjoiUXVlcnkgc2VydmVycyBsaXN0IiwiKiI6IktleSBpcyBsYW5ndWFnZSwgdmFsdWUgaXMgcGF0aCB0byBwcm9jZXNzb3IifSxxdWVyeV9zZXJ2ZXJfY29uZmlnOntfXzoie1YyfXF1ZXJ5LXNlcnZlcnMuaHRtbCN7a2V5fSIsIiI6IlF1ZXJ5IHNlcnZlcnMgY29uZmlndXJhdGlvbiIsY29tbWl0X2ZyZXE6IkRlbGF5IGluIHNlY29uZHMgYmVmb3JlIHZpZXcgaW5kZXggY2hhbmdlcyBhcmUgY29tbWl0dGVkIHRvIGRpc2siLGxpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixvc19wcm9jZXNzX2xpbWl0OiJOdW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIixyZWR1Y2VfbGltaXQ6IkNvbnRyb2xzIGlmIHJlZHVjZSB0aHJvd3MgZXJyb3Igb24gYSBzdGVwIHdoaWNoIGlzIG1vcmUgdGhhbiB0d2ljZSBhcyBsYXJnZSBhcyBpbnB1dCIsc29mdF9saW1pdDoiU29mdCBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIE9TIHByb2Nlc3NlcyB1c2FibGUgYnkgUXVlcnkgU2VydmVycyIsb3NfcHJvY2Vzc19zb2Z0X2xpbWl0OiJTb2Z0IGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgT1MgcHJvY2Vzc2VzIHVzYWJsZSBieSBRdWVyeSBTZXJ2ZXJzIn0scmVwbGljYXRvcjp7X186IntWMn1yZXBsaWNhdG9yLmh0bWwje2tleX0iLCIiOiJSZXBsaWNhdG9yIERCIGNvbmZpZyIsYXV0aF9wbHVnaW5zOiJMaXN0IG9mIHJlcGxpY2F0b3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uIHBsdWdpbnMiLGNlcnRfZmlsZToiUGF0aCB0byBhIGZpbGUgY29udGFpbmluZyB0aGUgdXNlcuKAmXMgY2VydGlmaWNhdGUiLGNoZWNrcG9pbnRfaW50ZXJ2YWw6IlJlcGxpY2F0aW9uIGNoZWNrcG9pbnQgaW50ZXJ2YWwsIG1pbGxpc2Vjb25kcyIsY29ubmVjdGlvbl90aW1lb3V0OiJIVFRQIGNvbm5lY3Rpb24gdGltZW91dCBwZXIgcmVwbGljYXRpb24gaW4gbWlsbGlzZWNvbmRzLCBkaXZpZGVkIGJ5IDMgZm9yIHB1bGwgc3luYyIsaHR0cF9jb25uZWN0aW9uczoiTWF4IG51bWJlciBvZiBIVFRQIGNvbm5lY3Rpb25zIHBlciByZXBsaWNhdGlvbiIsaW50ZXJ2YWw6IlNjaGVkdWxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIixrZXlfZmlsZToiUGF0aCB0byBmaWxlIGNvbnRhaW5pbmcgdXNlcuKAmXMgcHJpdmF0ZSBQRU0gZW5jb2RlZCBrZXkiLG1heF9jaHVybjoiTWF4IG51bWJlciBvZiByZXBsaWNhdGlvbiBqb2JzIHRvIHN0YXJ0L3N0b3AgZHVyaW5nIHJlc2NoZWR1bGluZyIsbWF4X2pvYnM6Ik1heCBudW1iZXIgb2YgYWN0aXZlbHkgcnVubmluZyByZXBsaWNhdGlvbnMiLHBhc3N3b3JkOiJVc2Vy4oCZcyBwYXNzd29yZCwgaWYgdGhlIHByaXZhdGUga2V5IGZpbGUgaXMgcGFzc3dvcmQgcHJvdGVjdGVkIixyZXRyaWVzX3Blcl9yZXF1ZXN0OiJJZiBhIHJlcXVlc3QgZmFpbHMsIHRoZSByZXBsaWNhdG9yIHdpbGwgcmV0cnkgaXQgdXAgdG8gTiB0aW1lcyIsc29ja2V0X29wdGlvbnM6IkZpbmUgdHVuZSByZXBsaWNhdGlvbiBzb2NrZXQgb3B0aW9ucyIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIixzc2xfdHJ1c3RlZF9jZXJ0aWZpY2F0ZXNfZmlsZToiRmlsZSBjb250YWluaW5nIGEgbGlzdCBvZiBwZWVyIHRydXN0ZWQgY2VydGlmaWNhdGVzIGluIHRoZSBQRU0gZm9ybWF0Iix1cGRhdGVfZG9jczoiSWYgYHRydWVgIENvdWNoIHVwZGF0ZXMgX3JlcGxpY2F0b3IgZG9jcyBvbiB0YXNrIGVycm9yIGFuZCBzdGFydCIsdXNlX2NoZWNrcG9pbnRzOiJJZiBgdHJ1ZWAgQ291Y2hEQiBtYWtlcyBjaGVja3BvaW50cyBkdXJpbmcgYW5kIGF0IHRoZSBjb21wbGV0aW9uIG9mIHJlcGxpY2F0aW9uIix2ZXJpZnlfc3NsX2NlcnRpZmljYXRlczoiSWYgYGZhbHNlYCBpbnZhbGlkIGNlcnRpZmljYXRlcyBkbyBub3QgcHJldmVudCByZXBsaWNhdGlvbiIsd29ya2VyX2JhdGNoX3NpemU6Ik51bWJlciBvZiBkb2NzIHRvIHJlYWQgaW4gYmF0Y2ggZHVyaW5nIHN5bmMiLHdvcmtlcl9wcm9jZXNzZXM6Ik51bWJlciBvZiBhIHJlcGxpY2F0aW9uIHN1Yi1wcm9jZXNzZXMgdG8gcnVuIHNpbXVsdGFuZW91c2x5In0scmVzaGFyZGluZzp7X186IntWMn1yZXNoYXJkaW5nLmh0bWwje2tleX0iLCIiOiJSZXNoYXJkaW5nIGNvbmZpZ3VyYXRpb24iLGRlbGV0ZV9zb3VyY2U6ImlmIGB0cnVlYCBzb3VyY2Ugc2hhcmQgc2hvdWxkIGJlIGRlbGV0ZWQgYWZ0ZXIgcmVzaGFyZGluZyIsbWF4X2pvYnM6Ik1heGltdW0gbnVtYmVyIG9mIHJlc2hhcmRpbmcgam9icyBwZXIgY2x1c3RlciBub2RlIixtYXhfcmV0cmllczoiSG93IG1hbnkgdGltZXMgdG8gcmV0cnkgc2hhcmQgc3BsaXR0aW5nIHN0ZXBzIGlmIHRoZXkgZmFpbCIscmV0cnlfaW50ZXJ2YWxfc2VjOiJIb3cgbG9uZyB0byB3YWl0IGJldHdlZW4gc3Vic2VxdWVudCByZXRyaWVzLCBzZWNvbmRzIixzb3VyY2VfY2xvc2VfdGltZW91dF9zZWM6IkhvdyBtYW55IHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHNvdXJjZSBzaGFyZCB0byBjbG9zZSIsdXBkYXRlX3NoYXJkX21hcF90aW1lb3V0X3NlYzoiSG93IG1hbnkgc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgc2hhcmQgbWFwIHVwZGF0ZSBvcGVyYXRpb24gdG8gY29tcGxldGUifSxzc2w6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiSFRUUFMgb3B0aW9ucyIsY2FjZXJ0X2ZpbGU6IkNBIENlcnRpZmljYXRlIGZpbGUgcGF0aCIsY2VydF9maWxlOiJDZXJ0aWZpY2F0ZSBmaWxlIHBhdGgiLGNpcGhlcnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBjaXBoZXIgbGlzdCwgSlNPTiBhcnJheSBvZiBzdHJpbmdzIixmYWlsX2lmX25vX3BlZXJfY2VydDoiUmVxdWlyZSBwcmVzZW5jZSBvZiBjbGllbnQgY2VydGlmaWNhdGUgaWYgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQiLGtleV9maWxlOiJDZXJ0aWZpY2F0ZSBrZXkgZmlsZSBwYXRoIixwYXNzd29yZDoiQ2VydGlmaWNhdGUga2V5IHBhc3N3b3JkIixzZWN1cmVfcmVuZWdvdGlhdGU6IkVuYWJsZSBzZWN1cmUgcmVuZWdvdGlhdGlvbiIsc3NsX2NlcnRpZmljYXRlX21heF9kZXB0aDoiTWF4aW11bSBwZWVyIGNlcnRpZmljYXRlIGRlcHRoIix0bHNfdmVyc2lvbnM6IlNwZWNpZnkgcGVybWl0dGVkIHNlcnZlciBTU0wvVExTIHByb3RvY29sIHZlcnNpb25zIix2ZXJpZnlfZnVuOiJTU0wgdmVyaWZpY2F0aW9uIGZ1bmN0aW9uIGxvY2F0b3IiLHZlcmlmeV9zc2xfY2VydGlmaWNhdGVzOiJJZiBgdHJ1ZWAgZW5hYmxlcyBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24ifSxzdGF0czp7X186IntWMn1taXNjLmh0bWwje2tleX0iLCIiOiJTdGF0aXN0aWMgY2FsY3VsYXRpb24iLHJhdGU6IlJhdGUgb2Ygc3RhdGlzdGljcyBnYXRoZXJpbmcgaW4gbWlsbGlzZWNvbmRzIixzYW1wbGVzOiJJbnRlcnZhbHMgZm9yIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiwgc2Vjb25kcyJ9LHV1aWRzOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlVVSURzIGNvbmZpZyIsYWxnb3JpdGhtOiJHZW5lcmF0aW9uIGFsZ29yaXRobSwgYHJhbmRvbWAsIGBzZXF1ZW50aWFsYCwgYHV0Y19yYW5kb21gLCBgdXRjX2lkYCIsbWF4X2NvdW50OiJQZXItcmVxdWVzdCBVVUlEIGxpbWl0LCBudW1iZXIiLHV0Y19pZF9zdWZmaXg6IlN1ZmZpeCB0byBhcHBlbmQgd2hlbiBgdXRjX2lkYCBVVUlEIGdlbmVyYXRvciBpcyB1c2VkIn0sdmVuZG9yOntfXzoie1YyfW1pc2MuaHRtbCN7a2V5fSIsIiI6IlZlbmRvciBpbmZvcm1hdGlvbiIsIioiOiJLZXkgaXMgYSBrZXkgZm9yIGBHRVQgL2AgcmVzcG9uc2UsIHZhbHVlIGlzIHJldHVybmVkIHVuZGVyIHRoZSBrZXkifSx2aG9zdHM6e19fOiJ7VjJ9aHR0cC5odG1sI3trZXl9IiwiIjoiVmlydHVhbCBob3N0cyBsaXN0IiwiKiI6IktleSBpcyBsaWtlIGBkb21haW4ubmFtZTo1OTg0YCwgdmFsdWUgaXMgYC9kYm5hbWUvZG9jLy4uLmAifSx2aWV3X2NvbXBhY3Rpb246e19fOiJ7VjJ9Y29tcGFjdGlvbi5odG1sI3trZXl9IiwiIjoiVmlld3MgY29tcGFjdGlvbiBvcHRpb25zIixrZXl2YWx1ZV9idWZmZXJfc2l6ZToiS2V5LVZhbHVlcyBidWZmZXIgc2l6ZSwgYnl0ZXMifSxjb3VjaGJveDp7X186IntDQn0jY291Y2hib3gtMSIsIiI6IkNvdWNoYm94IGNvbmZpZyIsZGVidWc6IlR1cm5zIG9uIGRlYnVnIG1vZGUgKG1vcmUgaW5mb3JtYXRpdmUgbWVzc2FnZXMpIixub2RlbmFtZToiU2hvcnRjdXQgbmFtZSBvZiBjdXJyZW50IG5vZGUiLG5vZGVzOiJMaXN0IG9mIG5vZGVzLCBKU09OOyBub2RlbmFtZXMgYXJlIGtleXMsIFVSTHMgYXJlIHZhbHVlcyIsbWF4X3BhcmFsbGVsX2NoYW5nZXM6Ik1heGltdW0gY2hhbmdlcyB0aWNrcyBwcm9jZXNzZWQgc2ltdWx0YW5lb3VzbHkiLGNvbGRfc3RhcnQ6IkRlZmluZXMgaWYgZmlyc3QgcnVuIHN0YXJ0cyBmcm9tIGN1cnJlbnQgc2VxdWVuY2VzIG9yIERCIGZpcnN0IHNlcSAoJ25vcm1hbCcpIixhcGk6IkNvbmZpZ3VyZXMgUkVTVCBBUEksIEpTT04iLHByb3h5OiJQcm94eSBzZXR0aW5ncywgSlNPTi4gRGVmYXVsdCBpcyBhIG1hc2sgYSBwYXRoIHJld3JpdGVzIGludG8iLHNvY2tldDoiU29ja2V0LmlvIGNvbmZpZyIsbWFpbDoiRW1lcmdlbmN5IG5vdGlmaWNhdGlvbnMgZW1haWxzIixyZWRpc19pcDoiUmVkaXMgZG9tYWluIG9yIElQIGFkZHJlc3MiLHJlZGlzX3BvcnQ6IlJlZGlzIHBvcnQiLHJlZGlzX3Bhc3N3b3JkOiJSZWRpcyBwYXNzd29yZCwgaWYgYW55IixyZWRpc19jb21tYW5kZXI6IlJlZGlzIGNvbW1hbmRlciBjb25maWcsIEpTT04ifSxjb3VjaGJveF9hcGk6e19fOiJ7Q0J9I3Jlc3QtYXBpIiwiIjoiTGlzdCBvZiBlbmRwb2ludHMgYW5kIGRkb2NzIGF0dGFjaGVkIHRvIHRoZW0iLCIqIjoiS2V5IGlzIGVuZHBvaW50IHdpdGggYWxsIGAvYCByZXBsYWNlZCB3aXRoIGAhYCwgdmFsdWUgaXMgYGRiL2Rkb2MgcGx1Z2luMSBwbHVnaW4yIC4uLmAifSxjb3VjaGJveF9ob29rczp7X186IntDQn0jaG9va3MtY29uZmlndXJhdGlvbiIsIiI6Ikxpc3Qgb2YgZGVzaWduIGRvY3VtZW50cyB3aXRoIGhvb2tzIGFuZCBwbHVnaW5zIHRoZXkgY2FuIHVzZSIsIioiOiJLZXkgaXMgcGF0aCBvZiBkZG9jLCB2YWx1ZSBpcyBhIGxpc3Qgb2YgcGx1Z2lucyBhdmFpbGFibGUgZm9yIHRoZSBkZG9j4oCZcyBob29rcyJ9LGNvdWNoYm94X3BsdWdpbnM6e19fOiJ7Q0J9I2NvdWNoYm94LXBsdWdpbnMiLCIiOiJDb3VjaGJveCBwbHVnaW5zIGNvbmZpZyIsIioiOiJLZXlzIGlzIGEgcGx1Z2luIG5hbWUsIHZhbHVlIGlzIEpTT04gcGx1Z2luIGNvbmZpZyJ9fX0sJGFib3V0OntMX1BITzoiUGhvdG9uIHZlcnNpb24iLExfUEhPQUREOiJQaG90b24gYWRkb25zIixMX1BIT0xJQlM6IlBob3RvbiBsaWJzIixMX1BIT0ZPTlRTOiJGb250cyB1c2VkIixMX1ZFUjoiQ291Y2hEQiB2ZXJzaW9uIixMX1ZFTkRPUjoiVmVuZG9yIixMX1VSTDoiTm9kZSBVUkwiLExfQ09VQ0g6IldlbGNvbWUgbXNnIixMX0ZFQVQ6IkF1eCBmZWF0dXJlcyIsTF9DTFVTVEVSOiJDbHVzdGVyIixUWFRfQ0xVU1RFUjpmdW5jdGlvbih4KXtyZXR1cm4geCsoeCUxMD09MSYmeCUxMDAhPTExPyIgbm9kZSI6IiBub2RlcyIpfSxMX1BFUkY6IlBlcmZvcm1hbmNlIixMX1BFUkZURVNUOiJSdW4gdGVzdC4uLiIsTF9HSVRIVUI6IlBob3RvbiBhdCBHaXRodWIiLExfU09VUkNFUzoiU291cmNlIGNvZGUiLExfREw6IkRvd25sb2FkIFBob3RvbiBhcHAganNvbi4uLiIsTF9ETF9MSU5LOiJDbGljayB0byBkb3dubG9hZCIsTF9ETFBSRVA6IlByZXBhcmluZyBqc29uLi4uIixMX0NIRUNLX1VQREFURVM6IkNoZWNrIGZvciB1cGRhdGVzIixUWFRfVVBEOidOZXcgdmVyc2lvbiBmb3VuZC4gTG9jYWwgdmVyc2lvbiBpcyA8bm9iciBjbGFzcz0iYm9sZGVyIj57MX08L25vYnI+LCBsYXRlc3QgaXMgPG5vYnIgY2xhc3M9ImJvbGRlciI+ezJ9PC9ub2JyPi4gezN9ICcsVFhUX1VQRF9GRUFUVVJFUzonPHVsIGNsYXNzPSJmczkwIG10OCBtYjEyIiBzdHlsZT0ibWF4LWhlaWdodDozNTBweDtvdmVyZmxvdy15OnNjcm9sbDsiPnsxfTwvdWw+JyxNU0dfVVBEX05PTkVFRDoiTm8gdXBkYXRlIG5lZWRlZCIsQlROX1VQREFURToiVXBkYXRlIFBob3RvbiIsQlROX0NBTkNFTDoiQ2FuY2VsIixFUlJfVVBEQVRFX0NIRUNLOiJGYWlsZWQgcmVhZGluZyBuZXcgdmVyc2lvbiwgc29ycnkiLEVSUl9VUERBVEU6IkZhaWxlZCB1cGRhdGluZyBQaG90b24uIFNlcnZlciByZXNwb25kZWQgezF9OsKgezJ9IixNU0dfVVBEQVRFX09LOiJQaG90b24gd2FzIHVwZGF0ZWQsIHBsZWFzZSByZWxvYWQgdGhlIHBhZ2UiLFNfVElUTEU6IkN1c3RvbWl6ZSBQaG90b24iLFNfUkVQTzoiVXBkYXRlIHJlcG8gVVJMIixTX1VQRDoiVXBkYXRlIHJlbWluZGVyIixUQUdfVVBEOnt0YWdzOltbe05ldmVyOiJubyJ9XV0sZW1wdHk6eyJUaW1lIHRvIHRpbWUiOiJyZW1pbmQifX0sU19QSU5HOiJQaW5nIC9fc2Vzc2lvbiIsVEFHX1BJTkc6e3RhZ3M6W1t7IkV2ZXJ5IG1pbiI6IjEifSx7IkV2ZXJ5IDXigIltaW4iOiI1In1dXSxlbXB0eTp7TmV2ZXI6IjAifX0sU19TQ1JPTEw6IlNjcm9sbGJhcnMiLFRBR19TQ1JPTEw6e3RhZ3M6W1t7IkhvdmVyIHNsaW0iOiIzIn0seyJTbGltICYgYnJpc2siOiI0In1dXSxlbXB0eTp7TmF0aXZlOiIwIn19LFNfRkZBTUlMWToiVUkgZm9udCBmYW1pbHkiLFNfRldFSUdIVDoiRm9udCB3ZWlnaHQiLFRBR19GV0VJR0hUOnt0YWdzOlt7VGhpbjoiMzAwIn1dLGVtcHR5OntOb3JtYWw6IjQwMCJ9fSxTX0ZDRkFNSUxZOiI8Y29kZT5Db2RlPC9jb2RlPiBmb250IGZhbWlseSIsU19QT0xMOiJUYXNrIHBvbGwgaW50ZXJ2YWwiLFNfU1RBVFNfUE9MTDoiU3RhdHMgcG9sbCBpbnRlcnZhbCIsU19JQ09OOiJCcm93c2VyIHRhYiBpY29uIixTX0NPTFM6IkRCIGxpc3QgY29sdW1ucyIsVEFHX0NPTFM6W3siREIgc2l6ZSI6ImluZm8ifSx7IkFDTCBpbmZvIjoic2VjdXJpdHkifV0sU19USEVNRToiVUkgdGhlbWUiLFRBR19USEVNRTp7dGFnczpbW3tEYXJrOiJkYXJrIn0seyJNYXRjaCBicm93c2VyIjoiYXV0byJ9XV0sZW1wdHk6e0xpZ2h0OiIifX0sU19HUk9VUDoiREIgZ3JvdXBzIixUQUdfR1JPVVA6e3RhZ3M6W1t7MTA6InRpbnkifSx7MzA6InNtYWxsIn0sezEwMDoibm9ybWFsIn0sezI1MDoibGFyZ2UifV0sW3tQcmVmaXhlZDoiYXV0byJ9XV0sZW1wdHk6e05vOiIifSx0YWdzaGltOiIiLGdyb3Vwc2hpbToi4oCKIn0sQlROX0lDT046IlVwbG9hZCBuZXcgaWNvbuKApiIsQlROX0lDT05fUkVTRVQ6IlJlc2V0IGljb24iLEJUTl9BUFBMWToiQXBwbHkifSwkdmlldzp7TVNHX0xPQURJTkc6IkxvYWRpbmcuLi4iLE9QVF9BTExET0NTOiJBbGwgZG9jdW1lbnRzIixPUFRfRERPQ1M6IkRlc2lnbiBkb2N1bWVudHMiLE9QVF9DSEFOR0VTOiJDaGFuZ2VzIGZlZWQiLE9QVF9MT0NBTDoiTG9jYWwgZG9jdW1lbnRzIixPUFRfTVFSSUVTOiJMb2NhbCBNYW5nbyBxdWVyaWVzIixPUFRfTUlORElDRVM6Ik1hbmdvIGluZGljZXMiLFRYVF9GUk9NOiJmcm9tIixQTENfU1RBUlRLRVk6IlN0YXJ0IGtleSBvciBfc2tpcCIsVElQX1NISUZUX01JTlVTOiJTaGlmdCBmcmFtZSBiYWNrd2FyZCIsVElQX1NISUZUX1BMVVM6IlNoaWZ0IGZyYW1lIGZvcndhcmQiLFRJUF9DTEVBUl9GSUxURVI6IkNsZWFyIHN0YXJ0a2V5IixUSVBfVVA6Ik9wZW4gezF9IGRvYyBsaXN0XG5pbiBuZXcgdGFiIixUSVBfUkVMT0FEOiJSZWxvYWQiLEJUTl9ORVdET0M6Ik5ldyBkb2PCoCIsQlROX05FV0RPQ19QT1BVUDoiTmV3IGRvYy4uLiIsQlROX05FV1VTRVJfRExHOiJOZXcgdXNlci4uLiIsQlROX0NPUFlET0NTOiJDb3B5L2R1bXAuLi4iLEJUTl9ERUwwOiJEZWwuLi4iLEJUTl9ERUxET0NTOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jczwvc3Bhbj4uLi4nLEJUTl9ERUwxRE9DOidEZWw8c3BhbiBjbGFzcz0idzEyODBwbHVzIj4gZG9jPC9zcGFuPi4uLicsQlROX0FDTDoiQUNMLi4uIixCVE5fQ09NUEFDVDoiQ29tcGFjdOKApiIsQlROX0NBTkNFTDoiQ2FuY2VsIixUSVBfQ0xPU0VKU09OOiJDbG9zZSBKU09OIixUSVBfQUREQ09MOiJBZGQgY29sdW1uIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9ERFNUQVRTOic8c3Bhbj5JbmRleCBkYXRhOsKgezJ9PC9zcGFuPiA8c3BhbiBjbGFzcz0ibWwxNSI+SW5kZXggZGlzayBzaXplOsKgezF9PC9zcGFuPicsRVJSX0dFVFZJRVdTOiJGYWlsZWQgcmVhZGluZyBsaXN0IG9mIHZpZXcgZnVuY3Rpb25zIGZvciB7MX0gREIuIixFUlJfR0VUQUNMOiJGYWlsZWQgcmVhZGluZyBzZWN1cml0eSBvYmplY3QiLFRYVF9NQVBWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14fHxhPyJ7MX0gb2YgezJ9IHJvdyIuYXNzaWduKHgsYSkrKDEhPWE/InMiOiIiKToiTm8gcm93cyI7cmV0dXJuIHgmJmEmJm51bGwhPWImJihjPSdGb3VuZCA8c3BhbiBjbGFzcz0idmlldy1mb3VuZCBwbDMgcHIzIj4nK2IrIjwvc3Bhbj4gcm93IisoMSE9Yj8icyI6IiIpKSxjfSxCVE5fVklFV0NPREU6IkNvZGUiLEJUTl9WSUVXQ09ERV9HTTonPHNwYW4gY2xhc3M9ImZpLXBlbmNpbCBmczk1Ij48L3NwYW4+JyxUSVBfVklFV0NPREU6IkVkaXQgdmlldyBzb3VyY2UgY29kZSIsTVNHX1NUQVJUX0NIQU5HRToiU3RhcnRpbmcgZnJvbSBrZXkgezF9IixFUlJfTk9UQVVTRVI6Ik5vdCBhIHVzZXIiLFRYVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9VTlNFTEVDVDoiVW5zZWxlY3QgezF9IixUWFRfVU5TRUxFQ1RfT0Y6IlVuc2VsZWN0IHsxfSBvZiB7Mn0iLFRYVF9TRUxFQ1RfQUxMOiJhbGwiLFRYVF9TRUxFQ1RfRklMVEVSOiJmaWx0ZXJlZCIsVElQX0FOQ0hPUjoiT3BlbiBhcyBhIEpTT04gaW4gbmV3IGJyb3dzZXIgdGFiIixUQUdfUkVEVUNFOnt0YWdzOltbeyJHcm91cCBub25lIjoiMCJ9LHsi4oCJTDHigIkiOiIxIn0seyLigIlMMuKAiSI6IjIifSx7IuKAiUwz4oCJIjoiMyJ9LHsi4oCJTDTigIkiOiI0In0seyLigIlMNeKAiSI6IjUifSx7RXhhY3Q6Ijk5In1dXSxlbXB0eTp7Ik5vIHJlZHVjZSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUQUdfV0lUSERPQ1M6e3RhZ3M6W3siSW5jbHVkZSBkb2NzIjoiZG9jcyJ9XSxlbXB0eTp7IlJldnMgb25seSI6IiJ9LGdyb3Vwc2hpbToiIix0YWdzaGltOiIifSxUWFRfREVMX1RJVExFOiJCdWxrIGRlbGV0ZSBkb2NzIixUWFRfREVMX1dBUk46ZnVuY3Rpb24oeCxhKXtyZXR1cm4iWW91IGFyZSBnb2luZyB0byBkZWxldGUgIit4KyIgZG9jIisoeD4xPyJzIjoiIikrIiBmcm9tIHRoZSDigJgiK2ErIuKAmSBEQi4ifSxUWFRfREVMX1dBUk5fSElEREVOOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIk9ubHkgIithKyIgZG9jIisoYT4xPyJzIjoiIikrIiBvZiAiK3grIiBzZWxlY3RlZCAiKygxPT1hPyJpcyI6ImFyZSIpKyIgdmlzaWJsZSBpbiBjdXJyZW50IHNjb3BlLCBiZSBjYXJlZnVsLiJ9LEJUTl9ERUxfU1RBUlQ6IlByb2NlZWQiLExCTF9ERUxfQUxMOiJEZWwgZG9jcyBhbmQgdGhlaXIgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jcyBhcyBkZWxldGVkLCBidXQgcmV0YWluIGNvbnRlbnQiLExCTF9ERUxfUFVSR0U6IlB1cmdlIGRvY3MgY29tcGxldGVseSIsTVNHX0RFTF9PSzpmdW5jdGlvbih4LGEsYixjKXt2YXIgZD0iIGZyb20gdGhlIOKAmCIrYisi4oCZIERCIjtyZXR1cm4gYT09eD9kPSJTdWNjZXNzZnVsbHkgIisoInB1cmdlIiE9Yz8iZGVsZXRlZCAiOiJwdXJnZWQgIikrYSsiIGRvYyIrKGE+MT8icyI6IiIpK2Q6KGQ9IkRlbGV0ZWQgIithKyIgZG9jIisoYT4xPyJzIjoiIikrZCsiLCBidXQgZmFpbGVkIHRvIGRlbGV0ZSAiKyh4LWEpKyIgZG9jIisoeC1hPjE/InMiOiIiKSsiLiAiLGQrPSJQb3NzaWJseSwgZGVsZXRpb24gd2FzIGRlbmllZCBieSB2YWxpZGF0ZSBmdW5jdGlvbiwgb3IgZG9jIisoeC1hPjE/InMgd2VyZSI6IiB3YXMiKSsiIGFscmVhZHkgZGVsZXRlZC4gIixkKz0iU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIiksZH0sTVNHX0RFTF9GQUlMOiJGYWlsZWQgZGVsZXRpbmcgZG9jc+KAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7MX06IHsyfeKAmSJ9LCRkYnM6e1RJUF9SRUxPQUQ6IlJlbG9hZCBEQiBsaXN0IixCVE5fTkVXREI6Ik5ldyBEQi4uLiIsQlROX0NPTVBBQ1Q6IkNvbXBhY3QuLi4iLEJUTl9ERUxEQjoiRGVsZXRlLi4uIixCVE5fTE9HUzoiTG9nc+KAiSIsQlROX1NUQVRTOiJTdGF0c+KAiSIsQlROX0NBTkNFTDoiQ2FuY2VsIixQTENfU0VBUkNIOiJTZWFyY2giLFRYVF9EQlNWSUVXOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz0iIjtyZXR1cm4gYz14fHxhP3g9PWE/eCsiIERCIisoYT4xPyJzIjoiIik6eD4xZTR8fGE+MWU0PyJ7MX0gLyB7Mn0iLmFzc2lnbih4LGEpOng+OTkmJmE+OTl8fHg+OTk5fHxhPjk5OT8iezF9IG9mIHsyfSIuYXNzaWduKHgsYSk6InsxfSBvZiB7Mn0gREIiLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gREJzIixiJiYoYys9IiAiK2IpLGN9LFRYVF9UQVNLVklFVzpmdW5jdGlvbih4LGEpe3JldHVybiB4fHxhPyh4PT1hPyJ7MX0gdGFzayI6InsxfSBvZiB7Mn0gdGFzayIpLmFzc2lnbih4LGEpKyhhPjE/InMiOiIiKToiTm8gdGFza3MifSxUSVBfREJTSVpFOiJEYXRhOiB7MX1cbkRpc2s6IHsyfSIsTVNHX05FV0RCX1NUQVJUOiJDcmVhdGVkIG5ldyBEQiDigJh7MX3igJkiLE1TR19ORVdEQl9GQUlMOiJGYWlsZWQgY3JlYXRpbmcgREIg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfTkVXREJfTk9BQ0w6IkRCIOKAmHsxfeKAmSBjcmVhdGVkLCBidXQgc2V0dGluZyBzZWN1cml0eSBjb25maWcgZmFpbGVkLCBzbyBEQiBpcyBwdWJsaWMuIFNlcnZlciByZXNwb25kZWQg4oCYezJ9OsKgezN94oCZIixUWFRfU0VMRUNUOiJTZWxlY3QgezF9IixUWFRfVU5TRUxFQ1Q6IlVuc2VsZWN0IHsxfSIsVFhUX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1NFTEVDVF9GSUxURVI6ImZpbHRlcmVkIixIX0RPQ1M6IkRvY3MiLEhfREVMRE9DUzoiRGVsZXRlZCIsSF9TRVE6IlNlcSIsSF9TSVpFOiJEaXNrIixUSVBfRE9DX0lORk86IlNob3cgREIgaW5mbyIsVElQX0JUTl9BQ0w6IkVkaXQgREIgYWNjZXNzIGNvbnRyb2wgbGlzdCIsVElQX0JUTl9TVEFSOiJBZGQvcmVtb3ZlIHRvIGZhdm9yaXRlcywgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgbGlzdCIsVElQX0JUTl9JTkZPOiJTaG93IERCIGluZm8gSlNPTiIsVElQX0NMT1NFSlNPTjoiQ2xvc2UgSlNPTiIsVFhUX0RCSU5GT19MT0FEOiJMb2FkaW5nLi4uIixFUlJfREJJTkZPOiJFcnJvciByZWFkaW5nIERCIGluZm8iLFRYVF9UQVNLX1RJVExFOiJUYXNrcyIsVEFHU19UQVNLX1RZUEU6e3RhZ3M6W1t7QWN0aXZlOiJhY3RpdmUifV0sW3tTeW5jOiJyZXBsaWNhdGlvbiJ9LHtDb21wYWN0aW9uOiJjb21wYWN0aW9uIn1dXSxlbXB0eTp7IuKAiUFsbOKAiSI6IiJ9fSxUSVBfVEFTS19SRUxPQUQ6IlJlbG9hZCB0YXNrcyIsQlROX1RBU0tfTkVXU1lOQzoiU3luYy9kdW1wLi4uIixCVE5fVEFTS19CQUNLVVA6IlN5bmMvZHVtcC4uLiIsQlROX1RBU0tfUkVTWU5DOiJSZXN0YXJ0Li4uIixUWFRfVF9TRUxFQ1Q6IlNlbGVjdCB7MX0iLFRYVF9UX1VOU0VMRUNUOiJVbnNlbGVjdCB7MX0iLFRYVF9UX1NFTEVDVF9BTEw6ImFsbCIsVFhUX1RfU0VMRUNUX0ZJTFRFUjoiZmlsdGVyZWQiLFRYVF9UQVNLX1JFU1lOQ19USVRMRToiUmVzdGFydCByZXBsaWNhdGlvbnMiLFRYVF9UQVNLX1JFU1lOQ19XQVJOOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4nWW91IGFyZSBnb2luZyB0byByZXN0YXJ0IDxzcGFuIGNsYXNzPSJib2xkZXIiPicreCsiPC9zcGFuPiBzeW5jIHRhc2siKyh4PjE/InMiOiIiKSsiLiBUYXNrIGRvYyIrKHg+MT8icyI6IiIpKyIgaW4gIitiKyIgREIgd2lsbCBiZSBkZWxldGVkLCBhbmQgdGhlbiByZS1jcmVhdGVkLiJ9LEJUTl9UQVNLX1BST0NFRUQ6IlByb2NlZWQiLE1TR19UQVNLX1JFU1lOQzoiU3luYyBkb2NzIGRlbGV0ZWQsIHRhc2tzIHN0b3BwZWQuIFRyeWluZyB0byByZXN0YXJ0IHN5bmMgdGFza3MuLi4iLE1TR19UQVNLX1JFU1lOQ19PSzoiU3luYyB0YXNrcyByZXN0YXJ0ZWQiLEVSUl9UQVNLX1JFU1lOQzoiRXJyb3IgcmVzdGFydGluZyBzeW5jIHRhc2tzLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsQlROX1RBU0tfU1RPUDoiUmVtb3ZlLi4uIixUWFRfVEFTS19TVE9QX1RJVExFOiJTdG9wL3JlbW92ZSByZXBsaWNhdGlvbiB0YXNrcyIsVFhUX1RBU0tfU1RPUF9XQVJOOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14K2EsZD0nWW91IGFyZSBnb2luZyB0byBzdG9wIGFuZCByZW1vdmUgPHNwYW4gY2xhc3M9ImJvbGRlciI+JytjKyI8L3NwYW4+IHN5bmMgdGFzayIrKGM+MT8icyI6IiIpKyIuICI7cmV0dXJuIHg+MCYmKGQ9ZCsiVGFzayBkb2MiKyh4PjE/InMiOiIiKSsiIGluICIrYisiIERCIHdpbGwgYmUgZGVsZXRlZC4iKSxkfSxNU0dfVEFTS19TVE9QOiJTeW5jIGRvY3MgZGVsZXRlZCwgdGFza3Mgc3RvcHBlZCIsRVJSX1RBU0tfU1RPUDoiRXJyb3Igc3RvcHBpbmcgdGFza3MsIHNlcnZlciByZXNwb25kZWQgezF9In0sJGZpbGU6e1BMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiU2F2ZSBmaWxlICIsQlROX1NBVkVBUzoiU2F2ZSBhcy4uLiIsQlROX0RFTDoiRGVsZXRlLi4uIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLE1TR19TQVZFOiJGaWxlIHsxfSB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkIGludG8gezJ9IixFUlJfU0FWRToiRXJyb3Igc2F2aW5nIGZpbGUgezF9IGludG8gaXRzIGRvYywgc2VydmVyIHJlc3BvbmRlZCB7Mn0ifSwkZG9jOntUWFRfUkVWOiJMYXRlc3QgcmV2aXNpb24iLFBMQ19TRUFSQ0g6IlNlYXJjaCIsUExDX1JFTE9BRDoiUmVsb2FkIixCVE5fU0FWRToiwqBTYXZlwqAiLEJUTl9TQVZFQVM6IkNsb25lLi4uIixCVE5fREVMOiJEZWwuLi4iLEJUTl9ESUZGOiJEaWZm4oCJIixCVE5fQ0FOQ0VMOiJDYW5jZWwiLFRYVF9ISVNUX1RJVExFOiJIaXN0b3J5IixUWFRfSElTVF9FTVBUWToiQ2hhbmdlcyBoaXN0b3J5IGlzIGVtcHR5IixCVE5fSElTVF9DTEVBUjoiQ2xlYXIiLEJUTl9ISVNUX1VORE86IuKAiVVuZG/igIkiLE1TR19TQVZFOiJEb2MgezF9IHdhcyBzdWNjZXNzZnVsbHkgc2F2ZWQgd2l0aCByZXZpc2lvbiB7Mn0iLEVSUl9TQVZFOiJFcnJvciBzYXZpbmcgZG9jLCBzZXJ2ZXIgcmVzcG9uZGVkIHsxfSIsRVJSX1NBVkVMT0FEOiJEb2Mgd2FzIHNhdmVkLCBob3dldmVyIGxvYWRpbmcgaXQgYWZ0ZXIgc2F2ZSBmYWlsZWQuIFNlcnZlciByZXNwb25kZWQgezF9IixNU0dfRURTOiJUaGVyZSBhcmUgYWN0aXZlIGVkaXRvcnMgY29udGFpbmluZyBub3QgeWV0IGFwcGxpZWQgY2hhbmdlcy4iLEJUTl9FRFNfWUVTOiJBcHBseSBjaGFuZ2VzIGFuZCBzYXZlwqAiLEJUTl9FRFNfTk86IkRpc2NhcmQgYW5kIHNhdmXCoCIsTVNHX0NPTkZMSUNUOic8ZGl2IGNsYXNzPSJmczEzMCBsaDE1MCBtYjIgYm9sZGVyIG9yYW5nZSI+Q29uZmxpY3Q8L2Rpdj5Db25mbGljdCBzYXZpbmcgZG9jIOKAmHsxfeKAmSA8YnI+PHNwYW4gY2xhc3M9ImRpYiB3MTQwIj5Zb3VyIHJldjogPC9zcGFuPjxub2JyPnsyfTwvbm9icj4gPGJyPjxzcGFuIGNsYXNzPSJkaWIgdzE0MCI+REIgcmV2OiAgIDwvc3Bhbj48bm9icj57M308L25vYnI+LicsQlROX0NPTkZMSUNUX1lFUzoiT3ZlcndyaXRlIERCIGRvYyIsQlROX0NPTkZMSUNUX05POiJDYW5jZWwgc2F2ZSIsTVNHX0NPTkZMSUNUX0NBTkNFTExFRDoiQ2FuY2VsbGVkLCBkb2Mgd2FzIG5vdCBzYXZlZCIsTVNHX0NPTkZMSUNUX0xPQURGQUlMOiJGYWlsZWQgbG9hZGluZyBjb25mbGljdGluZyByZXZpc2lvbiwgZG9jIGNhbiBub3QgYmUgc2F2ZWQiLFRYVF9ERUxfVElUTEU6IkRlbGV0ZSBkb2MiLFRYVF9ERUxfVElUTEVfQ09ORkxJQ1Q6IkRlbGV0ZSBkb2MgY29uZmxpY3QiLFRYVF9ERUxfV0FSTjoiWW91IGFyZSBnb2luZyB0byBkZWxldGUgZG9jIDxub2JyPuKAmHsxfeKAmTwvbm9icj4gZnJvbSB0aGUg4oCYezJ94oCZIERCLiIsQlROX0RFTF9TVEFSVDoiUHJvY2VlZCIsVFhUX0RFTF9OT0RFTDoiTm90ZSwgdGhhdCB0aGUgZG9jIGhhcyBjb25mbGljdCByZXZpc2lvbnMsIGFuZCBvbmUgb2YgdGhlbSBwcm9iYWJseSBiZWNvbWUgYWN0aXZlIGFmdGVyIGRlbGV0aW9uLiIsVFhUX0RFTF9DT05GTElDVDoiTm90ZSwgdGhhdCB5b3UgYXJlIGRlbGV0aW5nIGNvbmZsaWN0IHJldmlzaW9uLCBpdCB3aWxsIG5vdCBhZmZlY3QgYWN0aXZlIHZlcnNpb24gb2YgdGhlIGRvYy4iLExCTF9ERUxfQUxMOiJEZWwgZG9jIGFuZCBpdHMgY29udGVudCIsTEJMX0RFTF9SRVRBSU46Ik1hcmsgZG9jIGFzIGRlbGV0ZWQsIGJ1dCByZXRhaW4gY29udGVudCIsTEJMX0RFTF9QVVJHRToiUHVyZ2UgZG9jIGNvbXBsZXRlbHkiLE1TR19ERUxfT0s6IlN1Y2Nlc3NmdWxseSBkZWxldGVkIGRvYyDigJh7MX3igJkgZnJvbSB0aGUg4oCYezJ94oCZIERCIixNU0dfREVMX0ZBSUw6IkZhaWxlZCBkZWxldGluZyBkb2Mg4oCYezF94oCZLiBTZXJ2ZXIgcmVzcG9uZGVkIOKAmHsyfTogezN94oCZIixNU0dfREVMX1JFTE9BRDoiVXBkYXRlZCBsYXRlc3QgYWN0aXZlIHJldmlzaW9uIG9mIHRoZSBkb2MiLE1TR19ERUxfUkVMT0FEX0ZBSUw6IkZhaWxlZCByZWFkaW5nIGFjdGl2ZSByZXYgb2YgZG9jIOKAmHsxfeKAmS4gU2VydmVyIHJlc3BvbmRlZCDigJh7Mn06IHszfeKAmSJ9LCRlcnJvcjp7VFhUX0VSUjonPGRpdiBjbGFzcz0icmVkIHRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+RXJyb3Igc3dpdGNoaW5nIDxpPnsxfTwvaT48YnI+PHNwYW4gY2xhc3M9ImJvbGRlciI+ezJ9PC9zcGFuPjwvZGl2PicsQlROX1JFVFJZOic8c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBvNjAiPjwvc3Bhbj7CoFRyeSBhZ2FpbsKgJyxCVE5fQVVUSDonPHNwYW4gY2xhc3M9ImZpLXRvcnNvIG82MCI+PC9zcGFuPiBMb2cgaW4gJyxUWFRfQzNfQUxMX0RCU180MDE6JzxkaXYgY2xhc3M9InRhbCB3NTBwIHBsNzAgbGgxNzAgZGliIHZhdCI+U29ycnksIENvdWNoREIgMyBoaWRlcyBmdWxsIGxpc3Qgb2YgREJzIGZyb20gbm9uLWFkbWluIHVzZXJzLiBUbyBuYXZpZ2F0ZSB0aHJvdWdoIERCcyBzZWxlY3QgYSBEQiB5b3UgdmlzaXRlZCByZWNlbnRseSAoaWYgYW55KSwgb3IgZW50ZXIga25vd24gREIgbmFtZS48L2Rpdj4nLFBMQ19EQk5BTUU6IkVudGVyIGV4aXN0aW5nIERCIG5hbWUiLEJUTl9HTzoiT3BlbiBEQiJ9fX0sQmFzZToiIixBbGw6e30sR3JvdXBzOnt9LFRhYnM6W10sVHlwZXM6W10sSGlzdG9yeTpbXSxEb3dubG9hZFVSTDohMSxSZXBsaWNhdG9yREI6IiIsaXNDbHVzdGVyOiEwLGlzSUU6ITEsaU9TOiExLGlzV2ViS2l0OiExLGlzTWFjOiEwLGNhblppcDpudWxsLENvdWNoOnt2ZXJzaW9uOiIiLHE6MCxuOjAscG9ydDo1OTg0fSxVc2Vyczp7X3NlcTowfSxNZW1iZXJzaGlwOnt9LFBhbmVsSGVpZ2h0OjAsaXNCYXI6ITEsZGF0YTp7cGF0aDpbXSxuYW1lOiIifSxwYXJhbXM6e3Jlc3R5bGU6MTYsc3RyaWN0OiEwfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5kYXRhLGEuQ2ZnKSxjPSQuRGVmZXJyZWQoKSxkPXdpbmRvdy5ERE9DLGU9d2luZG93LmxvY2F0aW9uLGY9d2luZG93Lm5hdmlnYXRvcixnPU9iamVjdC5rZXlzKGEpLmZpbHRlcigvXlwkLyk7YS5fY29tcGlsZWQ9YS5fY29tcGlsZWR8fCEoY3cuQ1d8fCJib29sZWFuIj09dHlwZW9mIGN3LmRlYnVnKSxPYmplY3Qua2V5cyhhLkYpLmZvckVhY2goeD0+YVt4XT1hW3hdfHxhLkZbeF0uYmluZChhKSksYS5TZXNzaW9uPWEuU2Vzc2lvbi5kZWJvdW5jZSgxZTMpLGEuVHlwZXM9Zy5zbGljZSgwKSxhLmlzSUU9ISFmLnVzZXJBZ2VudC5tYXRjaCgvRWRnZXxUcmlkZW50LyksYS5pc01hYz0vTWFjLy50ZXN0KGYucGxhdGZvcm0rIiIpLGEuaU9TPS9eKGlQYWR8aVBob25lKSQvLnRlc3QoZi5wbGF0Zm9ybSsiIil8fGEuaXNNYWMmJmYubWF4VG91Y2hQb2ludHM+MSxhLmlzV2ViS2l0PSFhLmlzSUUmJi9BcHBsZVdlYktpdC8udGVzdChmLnVzZXJBZ2VudCsiIiksYS5Mcz1hLkxzKCksYS5McygiVGFza3MuU3RhcnMiKSYmKGEuTHMoIkRCcy5TdGFycyIsYS5McygiVGFza3MuU3RhcnMiKSksYS5McygiVGFza3MuU3RhcnMiLG51bGwpKSxhLkJhc2V8fChhLkJhc2U9ZD9kLl9iYXNlOltlLnByb3RvY29sLCIiLGUuaG9zdCwiIl0uY29tcGFjdCgpLmpvaW4oIi8iKSksYS5fY29tcGlsZWQmJi9eV2luLy50ZXN0KGYucGxhdGZvcm0rIiIpJiYkKCIjc2Nyb2xsYmFyLXR3ZWFrIikudGV4dChbIiB7d2lkdGg6NHB4OyBoZWlnaHQ6NHB4O30iLCItdGh1bWIge2JhY2tncm91bmQ6cmdiYSg5MCw5MCw5MCwwLjIpOyBib3JkZXItcmFkaXVzOjJweDt9IiwiLXRyYWNrIHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Il0ubWFwKHg9PiI6Oi13ZWJraXQtc2Nyb2xsYmFyIit4KS5qb2luKCJcbiIpKSx4Lmh0bWwoYS5IVE1MKSxPYmplY3Qua2V5cyhhLkVkKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuRWRbeF0uaWQmJihhLkVkW3hdPSQuZXh0ZW5kKCEwLCQubXkuY2FjaGUoYS5FZFt4XS5pZCl8fHt9LGEuRWRbeF0se1BobzphLlBob30pKX0pO3ZhciBoPWEuRWQuanNvbnRyZWU7JC5leHRlbmQoITAsaC4kZmlsZXMudWkseyIuaWtleSI6aC4kbXVsdGkudWlbIi5pa2V5Il0sIi5idG4tanNvbiI6aC4kbXVsdGkudWlbIi5idG4tanNvbiJdfSksWyJIaXN0b3J5IiwiSFRNTC5IaXN0b3J5Um93IiwiRXh0RWQuTm9kZVVwZGF0ZWQiLCJFeHRFZC5FZGl0b3JJbnZva2VkIiwic3R5bGUuICIsImNtZFVuZG8iLCJ1aS4jZG9jLWhpc3RvcnkiLCJ1aS4jc3R5bGUtaGlzdG9yeSIsInVpLiNlbXB0eS1oaXN0b3J5IiwidWkuI2J0bi1oaXN0b3J5LXVuZG8iLCJzdHlsZS4gI2RvYy1oaXN0b3J5Il0uZm9yRWFjaChmdW5jdGlvbih4KXtjdy5saWIudW5tYXNrKGEuJGNvbmZpZyxjdy5saWIuZ2V0cmVmKGEuJGRvYyx4KSx4KX0pLGEuJHN0YXRzPSQuZXh0ZW5kKCEwLHt9LCQubXkuY2FjaGUoYS4kc3RhdHMuaWQpfHx7fSxhLiRzdGF0cyk7dmFyIGk9WyJUYWIiLCJMb2dpbiIsIkxvZ291dCIsIlJlcUpTT04iLCJDb21wYWN0IiwiTmV3REIiLCJEZWxEQiIsIlNlY09iaiIsIlVzZXJEb2MiLCJNYW5nb0VkIiwiVmlld0VkIiwiSW5kZXhFZCIsIlN5bmNUYXNrIiwiU3luY1Rhc2suRHVtcFppcCIsIlN5bmNUYXNrLlVuZHVtcCJdLmFkZChnKSxqPVsiaXNJRSIsImlPUyIsImlzV2ViS2l0IiwiUGhvIiwiUmVxIiwidHJ1bmMiLCJwMnUiLCJTZWwyU2Nyb2xsIiwibmljZVNjcm9sbCIsInNlbGVjdDIiXTtpZihpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9Y3cubGliLmdldHJlZihhLHgpO2ImJihiLmxhbmcmJiQuZXh0ZW5kKGIubGFuZyxhLmxhbmdbeF18fHt9KSxqLmZvckVhY2goZnVuY3Rpb24oeCl7Ylt4XT1hW3hdfSksYi5CdXN5PWEuRi5CdXN5KX0pLGEuajJoPWEuRWQuanNvbnRyZWUuajJoLHgub24oInRhYmNsb3NlLm15IiwoeCxiKT0+YS5DbG9zZShiKSksYS5fY29tcGlsZWQpe3ZhciBrPWEuTHMoIlRhYkNsb3NlSGlzdG9yeSIpO2lmKGsmJmsubGVuZ3RoKWlmKERhdGUubm93KCkta1swXS5zdGFtcDwzZTQpYS5UYWJzPU9iamVjdC5jbG9uZShrWzBdLnRhYnMsITApO2Vsc2V7dmFyIGw9W107ay5mb3JFYWNoKGZ1bmN0aW9uKHgpe0RhdGUubm93KCkteC5zdGFtcD4xNTU1MmU2fHxsLmxlbmd0aDx4LnRhYnMubGVuZ3RoJiYobD14LnRhYnMpfSksbC5sZW5ndGgmJihhLlRhYnM9T2JqZWN0LmNsb25lKGtbMF0udGFicywhMCkpfXZhciBtPWEuTHMoIkNmZyIpO209T2JqZWN0LmlzT2JqZWN0KG0pP206e30sJC5leHRlbmQoITAsYS5DZmcsbSksJC5leHRlbmQoYS5DZmcsT2JqZWN0LnNlbGVjdChtfHx7fSxbImxpc3RDb2xzIiwiZ3JvdXBpbmciXSkpLCInUFQgTW9ubyciPT1hLkNmZy5mb250Q29kZSYmKGEuQ2ZnLmZvbnRDb2RlPSJDb3VzaW5lIiksIidQVCBNb25vJyI9PWEuQ2ZnLmZvbnQmJihhLkNmZy5mb250PSJDb3VzaW5lIiksYS5DZmcudGFiQmFyPSJhdXRvIiwkLm5pY2VzY3JvbGwub3B0aW9ucy5tb3VzZXNjcm9sbHN0ZXA9MjUqYS5DZmcuc2Nyb2xsU3BlZWQtNSwkLmV4dGVuZChhLkNmZyxkJiZkLnNldHRpbmdzP2Quc2V0dGluZ3M6e30pfXJldHVybiBiPWEuQ2ZnLHgudGhlbihmdW5jdGlvbigpe2EuX2NvbXBpbGVkfHwoY3cubG9nKCJQaG90b24gc3RhcnRlZCBpbiBDbG91ZFdhbGwiKSx4Lm9uKCJjbGljay5teSIsImEiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5hdHRyKCJocmVmIik7aWYoIiMiPT1iWzBdKXt2YXIgYz1kZWNvZGVVUklDb21wb25lbnQoYi5yZXBsYWNlKC9eIytcLz8vLCIiKSkuc3BsaXQoIi8iKS5jb21wYWN0KCEwKTtyZXR1cm4gYS5Td2l0Y2goYyksITF9fSkpLGEuX2NvbXBpbGVkJiYoIWZ1bmN0aW9uKHgpe2Z1bmN0aW9uIGIoKXt2YXIgeD0oZS5oYXNoKyIiKS5yZXBsYWNlKC9eIysvLCIiKS5zcGxpdCgiLyIpLm1hcChkZWNvZGVVUklDb21wb25lbnQpOyJfZGVzaWduIj09eFsxXSYmKHhbMl09Il9kZXNpZ24vIit4WzJdLHgucmVtb3ZlQXQoMSkpLGEuU3dpdGNoKHgpfSQod2luZG93KS5vbigiaGFzaGNoYW5nZS5waG8iLGIuZGVib3VuY2UoMWUzLzYwKzMpKSxudWxsIT14JiYoZS5oYXNoPXgrIiIpLCQod2luZG93KS50cmlnZ2VyKCJoYXNoY2hhbmdlIil9KCksJCgnbGlua1tyZWw9Imljb24iXScpLmF0dHIoImhyZWYiLGIuaWNvbnx8YS5maWxlc1siZmF2aWNvbi5wbmciXS51cmwpLHdpbmRvdy5vbmJlZm9yZXVubG9hZD1mdW5jdGlvbih4KXtpZihhLlRhYnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5oYXNoMCE9eC5oYXNoMX0pKXt2YXIgYj1hLmxhbmcuRExHX1VOTE9BRDt4LnJldHVyblZhbHVlPWJ9cmV0dXJuIGJ9LCQod2luZG93KS5vbigidW5sb2FkIixmdW5jdGlvbigpe3ZhciB4PU9iamVjdC5jbG9uZShhLlRhYnMsITApLGI9YS5McygiVGFiQ2xvc2VIaXN0b3J5Iil8fFtdO2IudW5zaGlmdCh7c3RhbXA6RGF0ZS5ub3coKSx0YWJzOngubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJ1bj0hMSx4LmVycm9yPSExLHguaGFzaDA9eC5oYXNoMT0iIix4fSl9KSxhLkxzKCJUYWJDbG9zZUhpc3RvcnkiLGIudG8oMykpfSksYS5VcGRhdGVyLmRlYm91bmNlKDFlMykoKSxhLnBpbmdTZXNzaW9uLmV2ZXJ5KDFlNCkpLGEubXkucmVzdHlsZSgpfS5kZWJvdW5jZSgxMCkpLGEuR2V0TGlzdCgpLmFsd2F5cyhmdW5jdGlvbigpe2MucmVzb2x2ZSgpfSksYy5wcm9taXNlKCl9LHVpOnsiI2wtcm9vdCI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4LmF0dHIoInRpdGxlIixhLmxhbmcuVElQX1JPT1QpLHgub24oImRibGNsaWNrLm15IixmdW5jdGlvbigpe3JldHVybiBhLkNsb3NlQWxsLmRlbGF5KDUwKSwhMX0pfSxiaW5kOmZ1bmN0aW9uKHgpe3JldHVyblt0aGlzLlNWRy5sb2dvLCc8c3BhbiBjbGFzcz0ibm9iYXIgcGw4IGZzMTE1IHcyMjAgbncgb2ggZWxsIGxoMTgwIj4nLHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiPC9zcGFuPiJdLmpvaW4oIiIpfX0sIiNidG4tYXNpZGUtYXV0aCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1jdy5tZSgpLGU9Yy5pc0JhcixmPSIiO2lmKGIuYXR0cigidGl0bGUiLGQ/Yy5sYW5nLlRJUF9QUk9GSUxFOmMubGFuZy5USVBfTE9HSU4pLGY9JzxzcGFuIGlkPSJidG4tYXV0aC1wb3B1cCI+ezF9PC9zcGFuPicuYXNzaWduKGQ/Yy5TVkcudXNlcjpjLlNWRy5sb2dpbiksbnVsbD09YSlyZXR1cm4gZjtpZihiLmRhdGEoIm1vZGFsIikpYi5tb2RhbCghMCk7ZWxzZSBpZihkKXsoY3cubWUoInJvbGVzIil8fFtdKS5sZW5ndGg7dmFyIGc9Yy5pc0Jhcj8yNTA6Yy5teS5maW5kKCIjbC1oZWFkZXIiKS53aWR0aCgpLTQyO2MubXkubW9kYWwoIiNidG4tYXNpZGUtYXV0aCIse2JvdW5kOjUsbWFuaWZlc3Q6Yy5Mb2dvdXQsd2lkdGg6Zyxub3NlOmU/InRvcCI6ImJvdHRvbSIsYWxpZ246InsxfTtyaWdodDotNDRweDsiLmFzc2lnbihlPyJ0b3A6ODclIjoiYm90dG9tOjExNyUiKSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiExLHo6MTk5Nn0pfWVsc2UgYy5teS5tb2RhbCgiI2J0bi1hc2lkZS1hdXRoIix7bWFuaWZlc3Q6Yy5Mb2dpbixib3VuZDoyLHdpZHRoOjMyMCxjbG9zZTohMSxlc2M6ITAsZW50ZXI6ITEsc2NyZWVuOiEwLGdsb2JhbDohMCx6OjNlMyxjc3M6InAyMCBwdDE1IHhncmF5In0pO3JldHVybiBmfSxldmVudHM6ImNsaWNrLm15IixsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJnRoaXMubXkuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpfX19LCIjYnRuLWFzaWRlLWNvbmZpZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX0NPTkZJRyksJzxhIGhyZWY9IiNfY29uZmlnIj4nK3RoaXMuU1ZHLmNvbmZpZysiPC9hPiJ9fSwiI2J0bi1hc2lkZS1zaGFyZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX1NIQVJFKSwnPGEgaHJlZj0iI19hYm91dCI+Jyt0aGlzLlNWRy5zaGFyZSsiPC9hPiJ9LGV2ZW50czoiY2xpY2subXkifSwiI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuZmluZCgiI2wtYXBwdGFicyAubC10YWIuYWN0aXZlICNidG4tdGFiY2xvc2UiKS50cmlnZ2VyKCJjbGljay5teSIpfSxldmVudHM6ImNsaWNrLm15In0sIiNidG4tY2xvc2UtYWxsLXRhYnMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJnRoaXMuQ2xvc2VBbGwuZGVsYXkoNTAsITApLHRoaXMubGFuZy5CVE5fWEFMTH0sZXZlbnRzOlsiY2xpY2subXkiXX0sIiNsLWFwcHRhYnMiOntpbml0OmZ1bmN0aW9uKHgpe3guc29ydGFibGUoe2Rpc3RhbmNlOjV9KX0sZGVsYXk6MSxtZXJnZTohMSxpZDpbImlkIl0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gubmFtZSx4LmFjdGl2ZSx4LmVycm9yLHguaGFzaDAseC5oYXNoMV0pfSxsaXN0Oic8ZGl2IGNsYXNzPSJsLXRhYiI+PC9kaXY+JyxiaW5kOiJ0aGlzLlRhYnMiLG1hbmlmZXN0OiJ0aGlzLlRhYiJ9fSxzdHlsZTp7IiAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxkPWEuQ2ZnLGU9YjwoYz8xMzgwOjE1MTApPzE1OjE2LGY9ZS0xLjgsZz1kLmZvbnRXZWlnaHQsaD0iJy1hcHBsZS1zeXN0ZW0nLCdCbGlua01hY1N5c3RlbUZvbnQnLCdIZWx2ZXRpY2EgTmV1ZScsJ1NlZ29lIFVJJyxVYnVudHUsSGVsdmV0aWNhLFRhaG9tYSxWZXJkYW5hLHNhbnMtc2VyaWYiOyJhdXRvIiE9ZC5mb250JiYoaD1kLmZvbnQrIixzYW5zLXNlcmlmIik7dmFyIGk9IkNvdXNpbmUsdWktbW9ub3NwYWNlLE1vbmFjbyxDb25zb2xhcyxtb25vc3BhY2UiOyJhdXRvIiE9ZC5mb250Q29kZSYmKGk9ZC5mb250Q29kZSsiLHVpLW1vbm9zcGFjZSxtb25vc3BhY2UiKTt2YXIgaj0iZm9udC1mYW1pbHk6ICIraCsiO2ZvbnQtd2VpZ2h0OnsyfTsiLGs9aisiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiO2EuX2NvbXBpbGVkJiYoJCgiYm9keSIpLmNzcyh7ImZvbnQtZmFtaWx5IjpoLCJmb250LXdlaWdodCI6Z30pLCQoIiNjdy1ib2R5IikuY3NzKHsiZm9udC1mYW1pbHkiOmgsImZvbnQtd2VpZ2h0IjpnfSkpO3ZhciBsPSJmb250LXdlaWdodDp7MX0haW1wb3J0YW50OyIuYXNzaWduKCgrZysxMDApLmNsYW1wKDQwMCw2MDApKTtyZXR1cm4gYS5fY29tcGlsZWQmJiQoIiNjdy1ub3RlcyIpLmNzcyh7dG9wOmM/IjUwcHgiOiIxOHB4In0pLHsiIjprLmFzc2lnbihlLGcpKyJsaW5lLWhlaWdodDoxLjZlbTsiLCIgLnBsc2hpbSI6Yj4oYz8xMjcwOjE2MDApPyJwYWRkaW5nLWxlZnQ6MTZweDsiOiIiLCIgYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEiOmouYXNzaWduKCItIixnKSwiIC5Db2RlTWlycm9yLCAucHJlIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsgZm9udC1mYW1pbHk6ezJ9IWltcG9ydGFudDsiLmFzc2lnbihmLGkpLCIgY29kZSI6ImZvbnQtZmFtaWx5OnsxfSFpbXBvcnRhbnQ7Ii5hc3NpZ24oaSksIiAuanNvbmRpZmZwYXRjaC1kZWx0YSwgLmpzb25kaWZmcGF0Y2gtZGVsdGEgcHJlIjoiZm9udC1mYW1pbHk6ezF9IWltcG9ydGFudDsiLmFzc2lnbihpKSwiICNkaWZmLmpzb25kaWZmIjoiZm9udC1zaXplOnsxfXB4IWltcG9ydGFudDsiLmFzc2lnbihmKSwiIC5ib2xkZXIsIC5sLXRhYi5hY3RpdmUgYSI6bCwiICN2aWV3LXBhbmVsIC5qdmFsLWtleSwgI3ZpZXctcGFuZWwgLmp2YWwtYnJhY2tldCI6bCwiICN2aWV3LXJlc3VsdHMgaW5wdXQ6Y2hlY2tlZCtkaXYsICNkYi1saXN0IGlucHV0OmNoZWNrZWQrZGl2IjpsLCIgI2J0bi1jbG9zZS1hY3RpdmUtdGFiIjp7IiI6Yz8iZGlzcGxheTpub25lIjoicmlnaHQ6MDt0b3A6MDt6LWluZGV4OjE5OTY7IiwiICI6ImNvbG9yOnJnYmEoMTU4LDE4NCwyMzAsMC4zKTsgdHJhbnNpdGlvbjogY29sb3IgMC42czsgZm9udC1zaXplOjE4cHg7IGxpbmUtaGVpZ2h0OjI0cHg7IHdpZHRoOjI0cHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwiOmhvdmVyIjoiY29sb3I6cmdiYSgyNTUsMzAsNjQsMC41KTsifX19LCIgLnhwYW5lbCI6eyIiOiJib3JkZXItcmFkaXVzOjJweCAycHggMCAwOyBoZWlnaHQ6MzFweDsiLCIgLnhidXR0b24iOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7IGJvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjJweDsiLCIgLm15LXRhZ3MiOnsiIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWFyZ2luLXRvcDogMnB4OyBsaW5lLWhlaWdodDoyMHB4OyAiLCIgLnRhZyI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyAiLCIgLnRhZy5hY3RpdmUiOiJiYWNrZ3JvdW5kLWNvbG9yOiNkM2RhZTA7Y29sb3I6ICM0ZDVhNmE7In19LCIgLmJnLXBncmF5IjoiYmFja2dyb3VuZC1jb2xvcjojZTNlOWVjOyIsIiBidXR0b24sIC5idXR0b24iOiJwYWRkaW5nOjAuM2VtIDAuNmVtIDAuNGVtIDAuNmVtIiwiIC5ub2N3bWluIjoiZGlzcGxheTpub25lIWltcG9ydGFudCIsIiAubm90YXAiOiItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7IiwiIC5teS1tb2RhbC1vdmVybGF5IjoiYm94LXNoYWRvdzogMnB4IDNweCAyMnB4IC03cHggcmdiYSgxMCwgMjAsIDI5LCAwLjgpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnQ7IiwiIC5kaWYiOiJkaXNwbGF5OmlubGluZS1mbGV4OyIsIiAudzExcCI6IndpZHRoOjExJTsiLCIgLncxMnAiOiJ3aWR0aDoxMiU7IiwiIC53MThwIjoid2lkdGg6MTglOyIsIiAudzAiOiJ3aWR0aDowcHg7IiwiIC53NDIiOiJ3aWR0aDo0MnB4OyIsIiAudzJlbSI6IndpZHRoOjJlbTsiLCIgLm13MTAwcCI6Im1heC13aWR0aDoxMDAlOyIsIiAubXc5NXAiOiJtYXgtd2lkdGg6OTUlOyIsIiAuYm9sZGVyIjoiZm9udC13ZWlnaHQ6Ym9sZGVyOyIsIiAubGlnaHRlciI6ImZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IiwiIC5saDE0MGkiOiJsaW5lLWhlaWdodDoxLjRlbSFpbXBvcnRhbnQ7IiwiIC50cmFucyI6InBvaW50ZXItZXZlbnRzOm5vbmU7IiwiIC5wYWJjIjoicG9zaXRpb246YWJzb2x1dGU7IiwiIC5wcmVsIjoicG9zaXRpb246cmVsYXRpdmU7IiwiIC53YmEiOiJ3b3JkLWJyZWFrOmJyZWFrLWFsbDsiLCIgLnduIjoid2hpdGUtc3BhY2U6bm9ybWFsOyB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzOyIsIiAub3hoIjoib3ZlcmZsb3cteDpoaWRkZW47IiwiIC50dzEwMCI6InRyYW5zaXRpb246d2lkdGggMC4xcyIsIiAudHc1MDAiOiJ0cmFuc2l0aW9uOndpZHRoIDAuNXMiLCIgLmJ4dG9wIjoiYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4OyIsIiAuYnh0b3AtMzEiOnsiOmFmdGVyIjonYm9yZGVyOjFweCBzb2xpZCAjZDNkYWUwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O3RvcDozMXB4OyBsZWZ0OjA7IHdpZHRoOmNhbGMoMTAwJSAtIDJweCk7IGhlaWdodDpjYWxjKDEwMCUgLSAzMnB4KTtwb2ludGVyLWV2ZW50czpub25lOyB6LWluZGV4OjM7IGNvbnRlbnQ6IiAiOyBwb3NpdGlvbjphYnNvbHV0ZTsgJ30sIiBzZWN0aW9uIjoib3V0bGluZTogbm9uZTsiLCIgLmFkb3duLCAuYXJpZ2h0IjpbImZvbnQtc2l6ZTo1MCU7IGxpbmUtaGVpZ2h0OjFlbTsgZm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudDsgIiwidmVydGljYWwtYWxpZ246bWlkZGxlOyBkaXNwbGF5OmlubGluZS1ibG9jazsiLCJwYWRkaW5nOjAgMCAxcHggM3B4OyBvcGFjaXR5OjAuMzsgIl0sIiAuYXJpZ2h0OmFmdGVyIjonY29udGVudDoi4pa277iOIjsnLCIgLmFkb3duOmFmdGVyIjonY29udGVudDoi4pa8IjsnLCIgLm15LXRhZ3MuYnV0dG9ucyI6eyIgLnRhZyI6ImJvcmRlci1yYWRpdXM6MDsgYm9yZGVyOiAxcHggc29saWQgI2UzZTVlNzsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnM7bWFyZ2luLWxlZnQ6LTFweDtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmhvdmVyIjoiY29sb3I6IzI3YTsiLCIgLnRhZy5hY3RpdmUiOiJib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6I2UzZTVlNztjb2xvcjp3aGl0ZTtjb2xvcjojOGM5NmEyOyIsIiAudGFnOmZpcnN0LWNoaWxkIjoiYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTNlNWU3OyIsIiAudGFnOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwOyIsIiAudGFnOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQiOiJib3JkZXItcmFkaXVzOjNweDsifSwiIGRpdi5teS1tb2RhbCI6ImJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI0LCAyMjgsIDIzMiwgMC41NSk7IiwiIC5teS1tb2RhbC5tb2RhbC1idXN5Ijp7IjphZnRlciI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6LTFweDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDo1O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjYpOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaS9sb2FkZXItYmFyMi5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIC03cHg7JywiLm5vc2UtdG9wOmJlZm9yZSI6InotaW5kZXg6NjsifSwiIC5wcmUiOiJ3aGl0ZS1zcGFjZTpwcmUtd3JhcDsgd29yZC13cmFwOmJyZWFrLXdvcmQ7IiwiIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3ciOiJib3JkZXItcmFkaXVzOjA7IiwiICNsLWJvYXJkIjp7IiAiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LndpZHRoKCksYz14LnBhcmVudCgpLmhhc0NsYXNzKCJteS1tb2RhbC1mb3JtIiksZD0od2luZG93LmlubmVySGVpZ2h0LyhjPzEuMzoxKXwwKSsicHgiLGU9IShiPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxmPWU/MDoxMjYrYi8xMHwwO3JldHVybnsiIjplP1sid2lkdGg6MTAwJTsgcGFkZGluZzowOyBvdmVyZmxvdzpoaWRkZW47IixhLl9jb21waWxlZD8iaGVpZ2h0OmNhbGMoIitkKyIgLSAzMnB4KTsiOiJoZWlnaHQ6Y2FsYygiK2QrIiAtIDcwcHgpOyJdLmpvaW4oIiIpOlsiZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6Y2FsYygxMDAlIC0gezF9cHgpOyIuYXNzaWduKGYpLGEuX2NvbXBpbGVkPyJoZWlnaHQ6IitkKyI7IjoiaGVpZ2h0OmNhbGMoIitkKyIgLSAzOHB4KTsiXS5qb2luKCIiKSwiICNsLXBpdm90LXJiIjoicG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowOyByaWdodDowOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IiwiIC53MTI4MHBsdXMiOmItZjwxMjgwPyJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyI6IiIsIiAudzEyMDBwbHVzIjpiLWY8MTIwMD8iZGlzcGxheTpub25lIWltcG9ydGFudDsiOiIifX19LCIgI2wtYXBwcyI6eyIiOiJtaW4td2lkdGg6MTAyMHB4OyBtYXJnaW46MCBhdXRvOyBtYXgtd2lkdGg6MTAwJTsiLCIgLmwtYXBwIjp7IiI6Im9wYWNpdHk6MTsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7IiwiICI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSEoeC53aWR0aCgpPj0xNDIwJiYidG9wIiE9YS5DZmcudGFiQmFyKSxjPWEuX2NvbXBpbGVkLGQ9eC5wYXJlbnQoKS5oYXNDbGFzcygibXktbW9kYWwtZm9ybSIpLGU9KHdpbmRvdy5pbm5lckhlaWdodC8oZD8xLjM6MSl8MCktKGM/MDozMikrKGI/MDozMiksZj0iaGVpZ2h0OmNhbGMoIisoZSsicHgiKSsiIC0gIjtyZXR1cm4gYS5QYW5lbEhlaWdodD1lLTg0LGEuaXNCYXI9Yix7IiAuYXBwaGVpZ2h0IjpmKyIzMnB4KTsiLCIgLnBhbmVsaGVpZ2h0IjpmKyI4NHB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQiOmYrIjg4cHgpOyIsIiAucGFuZWxoZWlnaHQtOCI6ZisiOTJweCk7IiwiIC5wYW5lbGhlaWdodC0xNiI6ZisiMTAwcHgpOyIsIiAucGFuZWxoZWlnaHQtMzIiOmYrIjExNnB4KTsiLCIgLnBhbmVsaGVpZ2h0LTQ4IjpmKyIxMzJweCk7IiwiIC5wYW5lbGhlaWdodC02MyI6ZisiMTQ3cHgpOyIsIiAucGFuZWxoZWlnaHQtNjQiOmYrIjE0OHB4KTsifX0sIiAuYXBwLWhlYWQiOnsiIjoiZGlzcGxheTpibG9jaztoZWlnaHQ6NTJweDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTsiLCIgYnV0dG9uLCAuYnV0dG9uLCAudGFnLmJ0biI6ImhlaWdodDoyZW07cGFkZGluZy10b3A6MC4yZW07cGFkZGluZy1ib3R0b206NHB4O2xpbmUtaGVpZ2h0OjE5cHg7dGV4dC1hbGlnbjpjZW50ZXI7In0sIi5hcHAtYnVzeSI6Im9wYWNpdHk6MC41O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOyIsIiAuZmVhdGhlciI6eyI6YmVmb3JlIjp7IiI6J2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDpjYWxjKDEwMCUgLSAxMnB4KTtoZWlnaHQ6MTVweDsgcG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDEpLCByZ2JhKDI1NSwyNTUsMjU1LDApKTt6LWluZGV4OjE5OTA7J30sIjphZnRlciI6eyIiOidjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6Y2FsYygxMDAlIC0gMTJweCk7aGVpZ2h0OjE1cHg7YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgyNTUsMjU1LDI1NSwxKSwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7ei1pbmRleDoxOTkwOyd9fX0sIiAuYXBwLWJ1c3k6YWZ0ZXIiOidjb250ZW50OiIgIjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6KzE5OTM7IHdpZHRoOjEwMCU7IGhlaWdodDoxMTAlOyB0b3A6MDsgbGVmdDowOyd9LCIgLmNvbC1qc29uIjp7IiI6InBhZGRpbmc6MCAwIDAgNnB4IWltcG9ydGFudDt3b3JkLXdyYXA6bm9ybWFsOyIsIiAuQ29kZU1pcnJvciI6ImJhY2tncm91bmQ6bm9uZTtmb250LXNpemU6OTUlIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjNlbSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtdHJpbSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiPmRpdi5jb2wtZWQiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsiLCI+ZGl2LmNvbC1lZC1jbG9zZSI6eyIiOiJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246cmlnaHQ7IHBvc2l0aW9uOmFic29sdXRlO3RvcDowOyByaWdodDo1cHg7IHdpZHRoOjk1JSFpbXBvcnRhbnQ7IGhlaWdodDoyMXB4OyB6LWluZGV4OjU7dHJhbnNpdGlvbjpjb2xvciAwLjVzOyBjb2xvcjpyZ2JhKDQxLDEwOSwxNjYsMC43NSk7IiwiOmhvdmVyIjoiY29sb3I6IzEyYTVkYzsifX0sIiAuanZhbC10cmltIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzoxcHggMnB4O2xpbmUtaGVpZ2h0OjEuMWVtO2NvbG9yOnJnYmEoMjEzLCA0OCwgODksIDAuNjMpO2JhY2tncm91bmQtY29sb3I6cmdiYSg0MywgMTA3LCAxOTIsIDAuMDcpOyIsIiAuanZhbC1zaG9ydCI6ImNvbG9yOnJnYmEoODgsMTAxLDEyMywwLjYzKTsiLCIgLmp2YWwta2V5IjoibWFyZ2luLWxlZnQ6MnB4OyBjb2xvcjojNGQ1YTZhOyIsIiAuanZhbC1icmFja2V0Ky5qdmFsLWtleSI6Im1hcmdpbi1sZWZ0OjBweDsiLCIgLmp2YWwtYnJhY2tldCI6ImNvbG9yOiAjODE5NWM1OyIsIiAuanZhbC1zaW1wbGUiOiJjb2xvcjpyZ2JhKDUyLCAxNDMsIDI3LCAwLjc4KTsiLCIgLmp2YWwtdW5kZWZpbmVkIjoiY29sb3I6cmdiYSgxMTcsMTI4LDEzOCwwLjQxKTsiLCIgLmp2YWwtc3RyaW5nIjoiY29sb3I6IzNiNWU4NTsiLCIgLmp2YWwtbnVtYmVyIjoiY29sb3I6IzViOTgwOCIsIiAuQ29kZU1pcnJvci1saW5lbnVtYmVyIjoid2hpdGUtc3BhY2U6bm93cmFwOyIsIiAuQ29kZU1pcnJvci1ndXR0ZXJzIjoiYmFja2dyb3VuZDp3aGl0ZTt4Ym9yZGVyLXJpZ2h0Om5vbmU7IiwiIC5Db2RlTWlycm9yIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5Db2RlTWlycm9yIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsiLCIgLkNvZGVNaXJyb3IgLmNtLW1hdGNoaGlnaGxpZ2h0IjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5MiwyNTUsMiwwLjM3KTsgYm94LXNoYWRvdzpub25lOyBib3JkZXItcmFkaXVzOiAxcHg7IiwiIC5Db2RlTWlycm9yIC5jbS1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDIzMiwxMjEsMC43NSkhaW1wb3J0YW50OyBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNTUsMjMyLDEyMSwwLjc1KSFpbXBvcnRhbnQ7IiwiICAgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC53aWR0aCgpLGM9ImJvb2xlYW4iPT10eXBlb2YgYS5pc0ZGP2EuaXNGRjphLmlzRkY9L0ZpcmVmb3gvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR8fCIiKSxkPWEuQ2ZnLGU9ZC50YWJCYXIsZj0hKGI+PTE0MjAmJiJ0b3AiIT1lKSxnPWQudGhlbWUsaD14LnBhcmVudCgpLmhhc0NsYXNzKCJteS1tb2RhbC1mb3JtIiksaT0od2luZG93LmlubmVySGVpZ2h0LyhoPzEuMzoxKXwwKS0oYS5fY29tcGlsZWQ/MDozMiksaj17aGVpZ2h0OmEuX2NvbXBpbGVkPyIxMDB2aCI6aSsicHgiLGh0YWI6Zj8zMjppPDY1MD8zNDppPDcwMD8zNjppPDgwMD8zODo0MCx3dGFiOmY/MDoxMjYrYi8xMHwwfSxrPSguNTUqKGItai53dGFiKXwwKS00MC0yLTMzODtyZXR1cm57IiAjZGItbGlzdCAudmlldy1yb3ciOmMmJiFhLmlzTWFjPyJ3aWR0aDp7MX1weDsiLmFzc2lnbihrKzMzOCk6bnVsbCwiICNkYi1wYW5lbCI6eyIgI2RiLWxpc3QgLnZpZXctcm93Ijp7fX0sIiAjbC1oZWFkZXIiOnsiIjpmP1sid2lkdGg6MTAwJTtoZWlnaHQ6MzJweDtvdmVyZmxvdzpoaWRkZW47IiwiYmFja2dyb3VuZC1zaXplOiAycHggMzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsiLGcrIiImJmEuX2NvbXBpbGVkPyJiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZDZkY2U4LCAjZjJmOGZmKTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhNWFiYjE7IjoiYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzBjMTkzMiwgIzRiNjI3Yyk7Il0uam9pbigiIik6WyJiYWNrZ3JvdW5kLWNvbG9yOiAjMWUzNTUzOyB3aWR0aDp7d3RhYn1weDsgaGVpZ2h0OntoZWlnaHR9OyIsIm92ZXJmbG93OmhpZGRlbjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsiXS5qb2luKCIiKS5hc3NpZ24oaiksIiAjbC10YWJzICI6Im1heC13aWR0aDoxMDAlOyIsIiAubm9iYXIiOmY/ImRpc3BsYXk6bm9uZTsiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyIsIiAjbC10YWJzIjp7IiI6Zj8ibWluLXdpZHRoOjEwMjBweDsgbWFyZ2luOjAgYXV0bzsiOiJ3aWR0aDoxMDAlOyBoZWlnaHQ6e2hlaWdodH07Ii5hc3NpZ24oaiksIiAudWktc29ydGFibGUtaGVscGVyIjpmPyJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAyLDEyMCwxNTIsMC44KTtib3JkZXItbGVmdDoxcHggc29saWQgIzllYTZiMDsiOnsiOmJlZm9yZSI6Wydjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrOyB3aWR0aDp7Mn1weDsgaGVpZ2h0OnsxfXB4OycuYXNzaWduKGouaHRhYixqLnd0YWItMTApLCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MiwyNDYsMjU1LDAuMik7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjVweDsiLCJib3JkZXItcmFkaXVzOiAzcHg7Il0uam9pbigiIil9LCIgLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyKy5sLXRhYiI6Zj8iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICM5ZWE2YjA7IjoiIiwiIC50YWItYnVzeTphZnRlciI6Zj9bJ2NvbnRlbnQ6IiAiOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaS9sb2FkZXItYmFyMi5naWYpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb24teTogLTJweDsnLCJwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjJweDsgYm90dG9tOjA7IGxlZnQ6MDsgei1pbmRleDorMTk4MDsgb3ZlcmZsb3c6aGlkZGVuOyJdLmpvaW4oIiIpOlsnY29udGVudDoiICI7IGJhY2tncm91bmQtaW1hZ2U6IHVybChpL2xvYWRlci1iYXIyLmdpZik7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAtMXB4OycsInBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDp7MX1weDsgaGVpZ2h0OjJweDsgdG9wOjNweDsgbGVmdDoycHg7IHotaW5kZXg6KzE5ODA7IG92ZXJmbG93OmhpZGRlbjsiLmFzc2lnbihqLmh0YWItNiksInRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjogMCAwOyBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDsiXS5qb2luKCIiKX0sIiAjbC1yb290dGFiIjp7IiI6Zj8id2lkdGg6IDcycHg7Ijoid2lkdGg6IHt3dGFifXB4OyBoZWlnaHQ6NThweDtsaW5lLWhlaWdodDozN3B4O292ZXJmbG93OmhpZGRlbjsiLmFzc2lnbihqKSwiICNsLXJvb3QiOiJkaXNwbGF5OmJsb2NrOyIrKGY/IndpZHRoOiA3MnB4OyBwYWRkaW5nOjNweCAxMHB4IDAgMjBweDsgIjoid2lkdGg6IHt3dGFifXB4OyBwYWRkaW5nOjEzcHggMCAwIDEwcHg7IGhlaWdodDo1OHB4OyIuYXNzaWduKGopKSwiLmwtdGFiIjpmPyIiOiJib3JkZXItdG9wOm5vbmU7IiwiLmwtdGFiOmJlZm9yZSI6Zj8iIjoiZGlzcGxheTpub25lOyJ9LCIgI2wtYXBwdGFicyI6Zj8id2lkdGg6Y2FsYygxMDAlIC0gNzJweCAtIDk2cHgpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsiOiJ3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjNGY2NDgxOyBwYWRkaW5nLXRvcDo1cHg7IGhlaWdodDp7MX1weDsiLmFzc2lnbihpLTk0KSwiIC5sLXRhYiI6eyIiOmY/WyJsaW5lLWhlaWdodDoyOXB4OyBoZWlnaHQ6MzJweDsgbWluLXdpZHRoOjcycHg7IG1heC13aWR0aDozMDBweDsgdHJhbnNpdGlvbjp3aWR0aCAwLjJzOyIsImJvcmRlci1yaWdodDoxcHggc29saWQgIzllYTZiMDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyIsImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG92ZXJmbG93OmhpZGRlbiA7Il0uam9pbigiIik6WyJsaW5lLWhlaWdodDp7Mn1weDsgaGVpZ2h0OnsxfXB4OyIuYXNzaWduKGouaHRhYixqLmh0YWItMyksImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7Il0uam9pbigiIiksIiAiOmY/IndpZHRoOmNhbGMoMTAwJSAvICIrKGEuVGFicy5sZW5ndGh8fDEpKyIpOyI6IndpZHRoOjEwMCU7IiwiICNidG4tdGFiY2xvc2UiOiJjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpub25lOyIrKGY/ImNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7IjoiY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsiKSwiICNsLXRhYnN0YXRlIjp7IiI6ImNvbG9yOnJnYmEoMTMxLDE5OCwyNTUsMC42Mik7IiwiLmhpZGUrI2J0bi10YWJjbG9zZSI6ImRpc3BsYXk6YmxvY2s7In0sIiAubC10YWJtYXJrIjp7IiI6WyJ3aWR0aDoxNnB4O3Bvc2l0aW9uOmFic29sdXRlO2xpbmUtaGVpZ2h0OjIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7IiwidHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzLCBjb2xvciAwLjNzOyIsZj8icmlnaHQ6MDsgdG9wOjA7IjoicmlnaHQ6NnB4OyB0b3A6ezF9cHg7Ii5hc3NpZ24oKGouaHRhYi0yNikvMildLmpvaW4oIiIpfSwiOmhvdmVyICI6eyIgI2wtdGFic3RhdGUiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAjYnRuLXRhYmNsb3NlIjoiZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC42KTsifSwiICNidG4tdGFiY2xvc2U6aG92ZXIiOiJjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOSk7IiwiIGEiOiJ0ZXh0LWRlY29yYXRpb246bm9uZTt0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IGNvbG9yOndoaXRlOyBvcGFjaXR5OjAuOCFpbXBvcnRhbnQ7IiwiIGEuc3lzdGVtIjoiY29sb3I6I2Q4ZmZhNDsiLCI6aG92ZXIgYSI6Im9wYWNpdHk6MSFpbXBvcnRhbnQ7IiwiICNsLXRhYm5hbWUiOnsiIjoid2lkdGg6Y2FsYygxMDAlIC0gMTZweCk7ZGlzcGxheTppbmxpbmUtYmxvY2s7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsgd2hpdGUtc3BhY2U6bm93cmFwOyIrKGY/InBhZGRpbmc6MCAwIDRweCA2cHg7IjoicGFkZGluZzowIDAgNHB4IDExcHg7IiksIi5zbWFsbGVyIjoiZm9udC1zaXplOjAuOTVlbTsifSwiOmJlZm9yZSI6Zj8iIjp7IiI6Wydjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrOyB3aWR0aDp7MX1weDsgaGVpZ2h0OjFweDsnLmFzc2lnbihqLnd0YWItMjApLCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0MiwyNDUsMjU1LDAuMSk7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjEwcHg7IiwiYm9yZGVyLXJhZGl1czogMHB4OyB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzLCBoZWlnaHQgMC4wNnMsIGJvcmRlci1yYWRpdXMgMC4xcywgYmFja2dyb3VuZC1jb2xvciAwLjJzLCBsZWZ0IDAuMXM7Il0uam9pbigiIil9LCIuYWN0aXZlIjp7IiBhIjoiY29sb3I6IzAyMGUxZSFpbXBvcnRhbnQ7b3BhY2l0eTowLjghaW1wb3J0YW50OyB4Zm9udC13ZWlnaHQ6Ym9sZGVyOyIsIjpob3ZlciBhIjoib3BhY2l0eTowLjk1IWltcG9ydGFudDsiLCIiOmY/WyJiYWNrZ3JvdW5kLXNpemU6IDJweCAzMnB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsiLCJiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYTNiNWNkLCAjZDJkZWVlKTsiXS5qb2luKCIiKTp7IjpiZWZvcmUiOlsnY29udGVudDoiICI7ZGlzcGxheTpibG9jazsgd2lkdGg6ezJ9cHg7IGhlaWdodDp7MX1weDsnLmFzc2lnbihqLmh0YWIsai53dGFiLTEwKSwiYmFja2dyb3VuZC1jb2xvcjogI2M4ZDFkZSFpbXBvcnRhbnQ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MHB4OyBsZWZ0OjVweDsiLCJib3JkZXItcmFkaXVzOiAzcHg7Il0uam9pbigiIil9LCIgI2wtdGFic3RhdGUiOiJjb2xvcjpyZ2JhKDM3LDEzNywyMTUsMC44KTsiLCIgI2J0bi10YWJjbG9zZSI6Zj8iY29sb3I6cmdiYSgwLDE4LDQwLDAuMyk7IjoiY29sb3I6cmdiYSgwLDE3LDQwLDApOyIsIjpob3ZlciAjYnRuLXRhYmNsb3NlIjoiY29sb3I6cmdiYSgwLDE4LDQwLDAuNik7IiwiICNidG4tdGFiY2xvc2U6aG92ZXIiOiJjb2xvcjpyZ2JhKDAsMTgsNDAsMC44KTsifX0sIiAjbC1hc2lkZSI6eyIiOiJwb3NpdGlvbjphYnNvbHV0ZTsgezJ9OjA7IHJpZ2h0OjA7IHdpZHRoOnsxfXB4OyIuYXNzaWduKGY/OTY6ai53dGFiLGY/InRvcCI6ImJvdHRvbSIpKyhmPyJib3JkZXItcmlnaHQ6MXB4IHNvbGlkICM5ZWE2YjA7IjoiYm9yZGVyLXRvcDoxcHggc29saWQgIzRmNjQ4MTsiKSsid2hpdGUtc3BhY2U6bm93cmFwOyB6LWluZGV4OjI7IiwiIC5hc2lkZS1idG4iOlsid2lkdGg6ezF9cHg7IGhlaWdodDp7Mn1weDsgY3Vyc29yOnBvaW50ZXI7Ii5hc3NpZ24oZj8zMjpqLnd0YWIvNSxmPzMyOjM1KSxmPyIiOiJwYWRkaW5nOjFweCAwIDAgMDsgdGV4dC1hbGlnbjpjZW50ZXI7IixmPyJib3JkZXItbGVmdDoxcHggc29saWQgIzllYTZiMDsiOiJib3JkZXItbGVmdDoxcHggc29saWQgIzRmNjQ4MTsiLCJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBvdmVyZmxvdzpoaWRkZW47IiwidHJhbnNpdGlvbjogY29sb3IgMC4zcywgb3BhY2l0eSAwLjNzOyBjb2xvcjp3aGl0ZSFpbXBvcnRhbnQ7Iiwib3BhY2l0eTowLjchaW1wb3J0YW50OyJdLmpvaW4oIiIpLCIgLmFzaWRlLWJ0bjpob3ZlciI6Im9wYWNpdHk6MSFpbXBvcnRhbnQ7IiwiICNidG4tY2xvc2UtYWxsLXRhYnMiOnsiIjoib3BhY2l0eTowLjY7IGNvbG9yOndoaXRlOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IHdpZHRoOmNhbGMoMTAwJSAtIDMgKiB7MX1weCk7Ii5hc3NpZ24oai53dGFiLzUpLCI6aG92ZXIiOiJvcGFjaXR5OjE7In0sIiBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOndoaXRlOyIsIiBhOmhvdmVyIjoiY29sb3I6d2hpdGU7In19fX19LFBobzpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxTZXRUaXRsZTpmdW5jdGlvbih4KXt0aGlzLl9jb21waWxlZCYmJCgiaGVhZCB0aXRsZSIpLnRleHQoeCsiIil9LHAydTpmdW5jdGlvbih4LGEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgeD9iKHgsMSk6eC5tYXAoYik7ZnVuY3Rpb24gYih4LGIpe3ZhciBjPWVuY29kZVVSSUNvbXBvbmVudDtpZihhfHwxPT1ifHwyPT1iKXtpZigvXl9kZXNpZ25cLy4rJC8udGVzdCh4KSlyZXR1cm4iX2Rlc2lnbi8iK2MoeC5mcm9tKDgpKTtpZigvXl9sb2NhbFwvLiskLy50ZXN0KHgpKXJldHVybiJfbG9jYWwvIitjKHguZnJvbSg3KSl9cmV0dXJuIGMoeCl9fSxqMmg6ZnVuY3Rpb24oKXt9LG5pY2VTY3JvbGw6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pT1N8fHRoaXMuaXNNYWN8fHRoaXMuaXNXZWJLaXR8fCIwIj09dGhpcy5DZmcuc2Nyb2xsU3BlZWQ/eC5jc3MoeyJvdmVyZmxvdy15Ijp0aGlzLmlzV2ViS2l0PyJvdmVybGF5IjoiYXV0byIsIi1tcy1vdmVyZmxvdy1zdHlsZSI6Ii1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhciIsIi13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nIjoidG91Y2giLCJzY3JvbGxiYXItd2lkdGgiOiJ0aGluIiwib3ZlcmZsb3cteCI6ImhpZGRlbiJ9KTp4Lm5pY2VTY3JvbGwoYXx8e2N1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4wNyxjdXJzb3JvcGFjaXR5bWF4Oi40LHppbmRleDozfSkseH0sc2VsZWN0MjpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPXguc2VsZWN0MihhKTtyZXR1cm4gYy5pT1MmJighKGF8fHt9KS5tdWx0aXBsZSYmIShhfHx7fSkudGFnc3x8YikmJihkLm9uKCJzZWxlY3QyLW9wZW4iLGMuc2VsZWN0MmlPU2JsdXIpLGQub24oInNlbGVjdDItY2xvc2UiLGZ1bmN0aW9uKCl7c2V0VGltZW91dChjLnNlbGVjdDJpT1NibHVyLDUwKX0pKSxkfSxzZWxlY3QyaU9TYmx1cjpmdW5jdGlvbigpeyQoIi5zZWxlY3QyLXNlYXJjaCBpbnB1dCwgOmZvY3VzLCBpbnB1dCIpLnByb3AoImZvY3VzIiwhMSkuYmx1cigpfSx0cnVuYzpmdW5jdGlvbih4LGEpe3JldHVybiB4Lmxlbmd0aD5hKzE/eC50cnVuY2F0ZShhLCJtaWRkbGUiLCLigKYiKTp4fSxkaWU6ZnVuY3Rpb24oeCl7JCh3aW5kb3cpLm9mZigiLnBobyIpLHguZmluZCgiI2wtYXBwcz5kaXYiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5teSgicmVtb3ZlIil9KX0scGluZ1Nlc3Npb246ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5sYXN0UGluZ3x8MCxiPURhdGUubm93KCksYz0oK3guQ2ZnLnBpbmdTZXNzaW9ufHwwKS5jbGFtcCgwLDFlMyk7IWN8fChiLWEpLzZlNDxjfHwoeC5sYXN0UGluZz1iLHguU2Vzc2lvbigpKX0sZGJUeXBlOntzeW5jc3RhdGU6IiIsc3RhbXA6MCxjb21taXR0ZWRfdXBkYXRlX3NlcTotMSxjb21wYWN0X3J1bm5pbmc6ITEsZGF0YV9zaXplOiIiLGRpc2tfc2l6ZTowLHNpemVzYWZlOiIiLHNpemV0aXA6IiIsZGJfbmFtZToiIixkaXNrX2Zvcm1hdF92ZXJzaW9uOiIiLGRvY19jb3VudDoiIixkb2NfZGVsX2NvdW50OiIiLGluc3RhbmNlX3N0YXJ0X3RpbWU6IiIscHVyZ2Vfc2VxOiIiLHVwZGF0ZV9zZXE6IiIsdXBkYXRlX3NlcV9zYWZlOiIiLHNlY3VyaXR5OntzdGFtcDowLHNlcTotMSxhZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LHByb3RlY3RlZDoiIixzdGFyOiIiLGdyb3VwOiIiLHRhc2tzOntzdGFtcDowLHBpZHM6W119LHN5bmNzOntzdGFtcDowLGRvY3M6W119fSxMaWJzVXNlZDp7alF1ZXJ5OiJodHRwczovL2pxdWVyeS5jb20vIiwiJC51aSI6Imh0dHBzOi8vanF1ZXJ5dWkuY29tLyIsIiQubXkiOiJodHRwOi8vanF1ZXJ5bXkuY29tLyIsIiQudGFncyI6IiIsIiQubGlzdCI6IiIsc2VsZWN0MjoiaHR0cHM6Ly9zZWxlY3QyLmdpdGh1Yi5pby9zZWxlY3QyLyIsQ29kZU1pcnJvcjoiaHR0cHM6Ly9jb2RlbWlycm9yLm5ldC8iLG5pY2VTY3JvbGw6Imh0dHBzOi8vZ2l0aHViLmNvbS9pbnV5YWtzYS9qcXVlcnkubmljZXNjcm9sbCIsSkNyb3A6Imh0dHBzOi8vZ2l0aHViLmNvbS90YXBtb2RvL0pjcm9wIixTdWdhcjoiaHR0cHM6Ly9zdWdhcmpzLmNvbSIsUToiaHR0cHM6Ly9naXRodWIuY29tL2tyaXNrb3dhbC9xIixVUkxwb2x5ZmlsbDoiaHR0cHM6Ly9naXRodWIuY29tL3dlYmNvbXBvbmVudHMvVVJMIiwid2ViLXN0cmVhbXMtcG9seWZpbGwiOiJodHRwczovL2dpdGh1Yi5jb20vTWF0dGlhc0J1ZWxlbnMvd2ViLXN0cmVhbXMtcG9seWZpbGwiLFN0cmVhbVNhdmVyOiJodHRwczovL2dpdGh1Yi5jb20vamltbXl3YXJ0aW5nL1N0cmVhbVNhdmVyLmpzIixmZmxhdGU6Imh0dHBzOi8vZ2l0aHViLmNvbS8xMDFhcnJvd3ovZmZsYXRlIixqc29uZGlmZjoiaHR0cHM6Ly9naXRodWIuY29tL2JlbmphbWluZS9qc29uZGlmZnBhdGNoIiwiY3cubGliIjoiaHR0cHM6Ly9jbG91ZHdhbGwubWUvYXBpL2N3X2xpYiJ9LEZvbnRzVXNlZDp7Q291c2luZToiaHR0cHM6Ly93d3cuZm9udHNxdWlycmVsLmNvbS9mb250cy9jb3VzaW5lIiwiRm91bmRhdGlvbiBJY29ucyI6Imh0dHBzOi8venVyYi5jb20vcGxheWdyb3VuZC9mb3VuZGF0aW9uLWljb24tZm9udHMtMyJ9LEhUTUw6JzxkaXYgaWQ9ImJ0bi1jbG9zZS1hY3RpdmUtdGFiIiBjbGFzcz0iY3Agbm9iYXIgcGFiYyBmdzIwMCIgdGl0bGU9IkNsb3NlIHRhYiI+4pyVPC9kaXY+PGRpdiBpZD0ibC1oZWFkZXIiPjxkaXYgaWQ9ImwtdGFicyI+PGRpdiBpZD0ibC1yb290dGFiIiBjbGFzcz0ibC10YWIiPjxhIGlkPSJsLXJvb3QiIGhyZWY9IiMiIGNsYXNzPSIiPlBob3RvbjwvYT48L2Rpdj48ZGl2IGlkPSJsLWFwcHRhYnMiIGNsYXNzPSJkaWIgdmF0IG9oIj48L2Rpdj48ZGl2IGlkPSJsLWFzaWRlIj48ZGl2IGlkPSJidG4tY2xvc2UtYWxsLXRhYnMiIGNsYXNzPSJub2JhciBmdzIwMCBmczkwIHRhYyBsaDI0MCBjcCI+PC9kaXY+PGRpdiBpZD0iYnRuLWFzaWRlLWF1dGgiIGNsYXNzPSJhc2lkZS1idG4iPjwvZGl2PjxkaXYgaWQ9ImJ0bi1hc2lkZS1jb25maWciIGNsYXNzPSJhc2lkZS1idG4iPjwvZGl2PjxkaXYgaWQ9ImJ0bi1hc2lkZS1zaGFyZSIgY2xhc3M9ImFzaWRlLWJ0biI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibC1ib2FyZCI+PGRpdiBpZD0ibC1hcHBzIj48L2Rpdj48ZGl2IGlkPSJsLXBpdm90LXJiIj48L2Rpdj48L2Rpdj4nLFNWRzp7bG9nbzonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMSIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCwgMCwgMzEsIDE2Ij5cbiAgPGcgaWQ9IlBob3RvbkxvZ28iPlxuICAgICA8cGF0aCBkPSJNMTUuNSwwIEMyMC4zLDAuMCAyNC4yLDAuNiAyNy44LDEuOSBMMjguMCwxLjkgQzI5LjYsMi41IDI5LjIsMi40IDI5LjQsMi40IEwzMSwzLjEgTDMxLDE2IEwwLDE2IEwwLDMuMSBDMS43LDIuNCAxLjMsMi41IDIuNCwyLjEgTDIuOSwxLjkgQzYuNywwLjYgMTAuNiwwLjAgMTUuMSwwLjAgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjRkZGRkZGIiBmaWxsLW9wYWNpdHk9IjEiLz5cbiAgICAgPHBhdGggZD0iTTMwLDEyIEwzMCwxNSBMMSwxNSBMMSwxMiBMMzAsMTIgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjZDcxZDJmIi8+XG4gICAgIDxwYXRoIGQ9Ik0zLjAsMy4wIEMzLjEsMy43IDMuMiw0LjMgMy4yLDQuNiBDMy40LDUuNyAzLjksNi42IDQuNyw3LjIgQzUuNCw3LjcgNi4yLDguMCA3LjAsOC4wIEM4LjAsNy45IDExLjYsOC4wIDEzLjEsOC4wIEMxNC4wLDguMCAxNC42LDguNiAxNSw5LjUgTDE1LDExIEwxLDExIEwxLDMuOCBDMi42LDMuMSAxLjksMy40IDMuMCwzLjAgeiIgXG5cdFx0XHRcdFx0IGZpbGw9IiAjRkE0ODQ4Ii8+XG4gICAgIDxwYXRoIGQ9Ik0xNSwxIEwxNSw3LjcgQzE0LjYsNy4xIDE0LjAsNi45IDEzLjQsNi44IEM5LjUsNi44IDguNiw2LjggNy42LDYuOCBDNy40LDYuOCA3LjMsNi44IDcuMyw2LjggQzUuOCw2LjggNC40LDUuNyA0LjEsNC4wIEw0LDIuOCBDNy41LDEuNSAxMS4zLDEuMCAxNSwxIHoiIFxuXHRcdFx0XHRcdCBmaWxsPSIgI0ZGNjc2NyIvPlxuICAgICA8cGF0aCBkPSJNMjcuOSwzLjAgQzI3LjgsMy43IDI3LjcsNC4zIDI3LjcsNC42IEMyNy41LDUuNyAyNy4wLDYuNiAyNi4yLDcuMiBDMjUuNSw3LjcgMjQuNyw4LjAgMjMuOSw4LjAgQzIyLjksNy45IDE5LjMsOC4wIDE3LjgsOC4wIEMxNi45LDguMCAxNi4zLDguNiAxNiw5LjUgTDE2LDExIEwzMCwxMSBMMzAsMy44IEMyOC4zLDMuMSAyOS4wLDMuNCAyNy45LDMuMCB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNGQTQ4NDgiLz5cbiAgICAgPHBhdGggZD0iTTE2LDEgTDE2LDcuNyBDMTYuMyw3LjEgMTYuOSw2LjkgMTcuNSw2LjggQzIxLjQsNi44IDIyLjMsNi44IDIzLjMsNi44IEMyMy41LDYuOCAyMy42LDYuOCAyMy42LDYuOCBDMjUuMSw2LjggMjYuNSw1LjcgMjYuOCw0LjAgTDI3LDIuOCBDMjMuNCwxLjUgMTkuNiwxLjAgMTYsMSB6IiBcblx0XHRcdFx0XHQgZmlsbD0iICNGRjY3NjciLz5cbiAgPC9nPlxuPC9zdmc+Jyx1c2VyOic8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwLCAwLCAzMiwgMzIiPlxuXHQ8ZyBpZD0iYnRuLXVzZXItc3ZnIj48Zz5cbiAgICA8cGF0aCBpZD0ic3ZnLWF1dGgiIGQ9Ik0yNi4yNSwyMC42NSBMMjMuNTUsMjMuMzUgTDIxLjc1LDIxLjU1IE0yNCwxNy41IEMyMS41MSwxNy41IDE5LjUsMTkuNTEgMTkuNSwyMiBDMTkuNSwyNC40OCAyMS41MSwyNi41IDI0LDI2LjUgQzI2LjQ4LDI2LjUgMjguNSwyNC40OCAyOC41LDIyIEMyOC41LDE5LjUxIDI2LjQ4LDE3LjUgMjQsMTcuNSB6IiBmaWxsLW9wYWNpdHk9IjAiIFxuICAgICAgc3Ryb2tlPSIjOWJkMDg5IiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICAgIDxwYXRoIGQ9Ik0xOC45OSwxOC40NCBMMTYsMTcuMzYgTDE2LDE1LjMyIE0xNywyMi41IEw2LjUsMjIuNSBMNi41LDIxLjAxIEM2LjUsMjAuMDEgNy4xMSwxOS4xMSA4LjA1LDE4Ljc3IEwxMiwxNy4zNiBMMTIsMTUuMzIgTTE3Ljk0LDExLjIzIEMxNy45NCw4LjYyIDE2LjE4LDYuNSAxNCw2LjUgQzExLjgxLDYuNSAxMC4wNSw4LjYyIDEwLjA1LDExLjIzIEMxMC4wNSwxMy44NSAxMS44MSwxNS45NyAxNCwxNS45NyBDMTYuMTcsMTUuOTcgMTcuOTQsMTMuODUgMTcuOTQsMTEuMjMgeiBNMTAuMDksMTAuNDcgQzEwLjU3LDEwLjcyIDExLjA1LDEwLjg0IDExLjYyLDEwLjg0IEMxMi43NiwxMC44NCAxNC4xNCwxMC4xNyAxNC41OSw5LjMxIEMxNS4zMywxMC42MSAxNi4xOSwxMS4xMCAxNy41NCwxMC44NCBDMTcuNjcsMTAuODEgMTcuNzgsMTAuODIgMTcuOTEsMTAuODEiIGZpbGwtb3BhY2l0eT0iMCIgXG4gICAgICBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgPC9nPjwvZz5cbjwvc3ZnPicsbG9naW46JzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAsIDAsIDMyLCAzMiI+XG4gIDxnIGlkPSJsb2dvX2xvZ2luIj5cbiAgICA8Zz5cbiAgICAgIDxwYXRoIGQ9Ik0xNi41LDE5LjUgTDQuNSwxOS41IEw0LjUsMTAuNSBMMjcuNSwxMC41IEwyNy41LDE2LjUyIE04LjUsMTcgTDguNSwxMyBNNi44MiwxNi4wOSBMMTAuMTcsMTMuOTAgTTYuODMsMTMuODkgTDEwLjE2LDE2LjExIE0xNC41LDE3IEwxNC41LDEzIE0xMi44MiwxNi4wOSBMMTYuMTcsMTMuOTAgTTEyLjgzLDEzLjg5IEwxNi4xNiwxNi4xMSIgZmlsbC1vcGFjaXR5PSIwIiBcbiAgICAgIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICAgICAgPHBhdGggaWQ9InN2Zy11bmF1dGgiIGQ9Ik0xOC41LDE5LjgzIEwyNy41LDE5LjgzIEwyNy41LDI2LjUwIEwxOC41LDI2LjUwIHogTTIyLjk3LDIyLjU3IEwyMi45NywyNC4yNCBNMjUuNjcsMTkuODMgTDI1LjY3LDE5LjAwIEMyNS42NywxNy42MiAyNC40NiwxNi41MCAyMi45NywxNi41MCBDMjEuNDgsMTYuNTAgMjAuMjcsMTcuNjIgMjAuMjcsMTkuMDAgTDIwLjI3LDE5LjgzIE0yMy40MiwyMi4xNSBDMjMuNDIsMjEuOTIgMjMuMjIsMjEuNzQgMjIuOTcsMjEuNzQgQzIyLjcyLDIxLjc0IDIyLjUyLDIxLjkyIDIyLjUyLDIyLjE1IEMyMi41MiwyMi4zOCAyMi43MiwyMi41NyAyMi45NywyMi41NyBDMjMuMjIsMjIuNTcgMjMuNDIsMjIuMzggMjMuNDIsMjIuMTUgeiIgZmlsbC1vcGFjaXR5PSIwIiBcbiAgICAgIHN0cm9rZT0iI0ZGQzMwMDsiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gICAgPC9nPlxuICA8L2c+XG48L3N2Zz4nLGNvbmZpZzonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCwgMCwgMzIsIDMyIj5cbiAgPGcgaWQ9ImxvZ29fY2ZnIj5cbiAgICA8cGF0aCBkPSJNMTYuNDgsMTguNSBMMTYuNDgsMTEuNSBNMjIuNTEsMTYuNSBMMjIuNTEsMTguNSBNMTAuNDgsNy41IEwxMC40OCwxMi41IE0xMC40OCwxNC41IEwxMC40OCwxOC41IE0yMi41MSw3LjUgTDIyLjUxLDE0LjUgTTE2LjQ4LDcuNSBMMTYuNDgsOS41IE0yMC41MSwxNi41IEwyNC41MSwxNi41IEwyNC41MSwxNC41IEwyMC41MSwxNC41IHogTTE0LjQ4LDExLjUgTDE4LjQ4LDExLjUgTDE4LjQ4LDkuNSBMMTQuNDgsOS41IHogTTguNDgsMTQuNSBMMTIuNDgsMTQuNSBMMTIuNDgsMTIuNSBMOC40OCwxMi41IHogTTIyLjUyLDIxLjUgQzIxLjY5LDIxLjUgMjEuMDIsMjIuMTcgMjEuMDIsMjMgQzIxLjAyLDIzLjgyIDIxLjY5LDI0LjUgMjIuNTIsMjQuNSBDMjMuMzUsMjQuNSAyNC4wMiwyMy44MiAyNC4wMiwyMyBDMjQuMDIsMjIuMTcgMjMuMzUsMjEuNSAyMi41MiwyMS41IHogTTE2LjQ4LDIxLjUgQzE1LjY1LDIxLjUgMTQuOTgsMjIuMTcgMTQuOTgsMjMgQzE0Ljk4LDIzLjgyIDE1LjY1LDI0LjUgMTYuNDgsMjQuNSBDMTcuMzEsMjQuNSAxNy45OCwyMy44MiAxNy45OCwyMyBDMTcuOTgsMjIuMTcgMTcuMzEsMjEuNSAxNi40OCwyMS41IHogTTEwLjQ4LDIxLjUgQzkuNjUsMjEuNSA4Ljk4LDIyLjE3IDguOTgsMjMgQzguOTgsMjMuODIgOS42NSwyNC41IDEwLjQ4LDI0LjUgQzExLjMxLDI0LjUgMTEuOTgsMjMuODIgMTEuOTgsMjMgQzExLjk4LDIyLjE3IDExLjMxLDIxLjUgMTAuNDgsMjEuNSB6IiBmaWxsLW9wYWNpdHk9IjAiIFxuICAgIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz4nLHNoYXJlOic8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIxLCAwLCAzMywgMzIiPlxuICA8ZyBpZD0ibG9nb19zZXR0aW5ncyI+XG4gICAgPHBhdGggZD0iTTIzLjU4OSwxNi44NDcgQzI1LjQ2NywxNC45NjggMjUuODMsMTIuMTQyIDI0LjY4MSw5Ljg5OSBMMjEuNjQxLDEyLjc5OSBMMTkuMjAxLDEyLjc5OSBMMTkuMjAxLDEwLjUwMyBMMjIuMTYsNy4zMSBDMTkuOTE4LDYuMTYzIDE3LjA2Miw2LjUyNiAxNS4xODQsOC40MDMgQzEzLjMwNywxMC4yOCAxMi45MjUsMTMuMDk3IDE0LjA3MywxNS4zNDEgTDYuODg0LDIyLjUyMiBDNi4xNjcsMjMuMjM5IDYuMTYxLDI0LjQwMSA2Ljg3OSwyNS4xMTkgQzcuNTk3LDI1LjgzNyA4Ljc1NywyNS44MzcgOS40NzQsMjUuMTE5IEwxNi42NTMsMTcuOTM5IEMxOC44OTYsMTkuMDg3IDIxLjcxMiwxOC43MjMgMjMuNTg5LDE2Ljg0NyB6IE0yMy4zMzQsMTcuMjE5IEwxOS4yMDEsMTIuNzk5IE0xNi45MDUsMTIuNzk5IEwxNS41MjcsMTQuMTc2IE0xOC4wNTMsMTMuOTQ3IEwxNi42NzYsMTUuMzI0IE0xOS4yMDEsMTUuMDk1IEwxNy44MjQsMTYuNDcyIiBcbiAgICAgICAgICBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz5cbiAgPC9nPlxuPC9zdmc+J30sRjp7TWV0cmljOmZ1bmN0aW9uKHgsYSl7aWYoIiI9PXgpcmV0dXJuIHg7YT1hfHw2O3ZhciBiPSt4fHwwO2lmKCFiKXJldHVybiAwO3ZhciBjPStiLnRvRXhwb25lbnRpYWwoKS5zcGxpdCgiZSIpWzFdO2lmKGI8KygiMWUiK2EpKXJldHVybiBiKyIiO3ZhciBkPWM+Nz8zOjIsZT1jJiZjJTMhPTI/YyUzPT0wPzI6MTowO3JldHVybiBiLm1ldHJpYyhlLGQpfSxCeXRlczpmdW5jdGlvbih4KXtpZigiIj09eClyZXR1cm4geDt2YXIgYT0reHx8MDtpZighYSlyZXR1cm4iIjt2YXIgYj0rYS50b0V4cG9uZW50aWFsKCkuc3BsaXQoImUiKVsxXTtyZXR1cm4gYS5ieXRlcyhiJTM9PTAmJmI/MTowKX0sUG9rZUJ1Y2tldDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5SZXEoW3hdKX0sU2V0VGhlbWU6ZnVuY3Rpb24oeCl7ZnVuY3Rpb24gYSgpeyQoImJvZHkiKS5yZW1vdmVDbGFzcygoeCxhKT0+KGEubWF0Y2goLyhefFxzKXRoZW1lLVxTKy9nKXx8W10pLmpvaW4oIiAiKSl9dGhpcy5fY29tcGlsZWQmJigiYXV0byI9PXgmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/KGEoKSwkKCJib2R5IikuYWRkQ2xhc3MoInRoZW1lLWRhcmsiKSk6eD8oYSgpLCQoImJvZHkiKS5hZGRDbGFzcygidGhlbWUtIit4KSk6YSgpLCQoImJvZHkiKS50cmlnZ2VyKCJyZXNpemUiKSl9LFNlbDJTY3JvbGw6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2E/eC5maW5kKCIuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyIpLmVhY2goZnVuY3Rpb24oKXtiLm5pY2VTY3JvbGwoJCh0aGlzKSx7Ym91bmNlc2Nyb2xsOiEwLGN1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4xLGN1cnNvcm9wYWNpdHltYXg6LjQscmFpbHBhZGRpbmc6e3JpZ2h0OjF9fSl9KTp4LmZpbmQoIi5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIikuZWFjaChmdW5jdGlvbigpe3ZhciB4PSQodGhpcykuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgeCYmeCgpLnJlbW92ZSgpfSl9LFNlc3Npb246ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9dGhpcy5pc0lFO3guUGhvKCJfY29tcGlsZWQiKSYmd2luZG93LkRET0MmJiQuYWpheCh7dXJsOnguQmFzZS5yZXBsYWNlKC9cLyskLywiIikrIi9fc2Vzc2lvbiIsbWV0aG9kOiJnZXQiLGRhdGFUeXBlOiJqc29uIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifSxjYWNoZTohYX0pLnRoZW4oZnVuY3Rpb24oeCl7aWYoT2JqZWN0LmlzT2JqZWN0KHgpJiZ4LnVzZXJDdHgpe3ZhciBhPXgudXNlckN0eCxiPXtuYW1lOmEubmFtZXx8IiIscm9sZXM6YS5yb2xlc3x8W119O2EubmFtZXx8KCQuZXh0ZW5kKHdpbmRvdy5ERE9DLl9tZSxiKSwkLm15LnJhZGlvKCJ1c2VyQ3R4IixiKSl9fSl9LENsb3NlQWxsOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLlRhYnMucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuKHg/Yi5hY3RpdmU6IWIucGF0aC5sZW5ndGgpfHxiLmhhc2gwIT1iLmhhc2gxP2E6KGEucHVzaCh7dGFiaWQ6Yi5pZCxlbmZvcmNlOiEwLHNpbGVudDohMH0pLGEpfSxbXSk7Yi5sYXN0KCkuc2lsZW50PSExLGIubWFwKGZ1bmN0aW9uKHgpe2EuQ2xvc2UoeCl9LmxhenkoMzApKX0sQnVzeTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2EubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJhcHAtYnVzeSIseCksJC5teS5yYWRpbygiYXBwYnVzeSIse2lkOmIudGFiaWQsYnVzeTp4fSl9LFJlcTpmdW5jdGlvbih4LGEpe09iamVjdC5pc1N0cmluZzt2YXIgYj1PYmplY3QuaXNPYmplY3QsYz1PYmplY3QuaXNBcnJheSxkPXRoaXMuaXNJRSxlPWZ1bmN0aW9uKHgpe3JldHVybiJfbm9kZS9fbG9jYWwvX25vZGVzIiE9eD93aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KHgpOnh9LGY9dGhpcyxnPShmLmRhdGEsZi5DZmcpLGg9Zi5sYW5nLGk9JC5EZWZlcnJlZCgpLGo9JC5leHRlbmQoITAse21ldGhvZDoiR0VUIixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn0sY2FjaGU6IWR9LGIoeCk/eDpjKHgpP3t1cmw6eH06e3VybDp4KyIifSksaz1tKGoudXJsLGYuQmFzZSk7cmV0dXJuIGE/azooa3x8bCg0MDAsaC5FUlJfUkVRX0lOVkFMSURDQUxMKSxmLl9jb21waWxlZCYmIS9cL19zZXNzaW9uJC8udGVzdChrKSYmayE9Zi5CYXNlJiZnLnJvbGVzLmxlbmd0aCYmLTE9PWN3Lm1lKCJyb2xlcyIpLmluZGV4T2YoIl9hZG1pbiIpJiYwPT1jdy5tZSgicm9sZXMiKS5pbnRlcnNlY3QoZy5yb2xlcykubGVuZ3RoPyhjdy5tZSgpP2woNDAzLGguRVJSX1JFUV9ST0xFUkVRLHtvazohMSxyZWFzb246ImNvbmZpZyJ9KTpsKDQwMSxoLkVSUl9SRVFfQVVUSFJFUSx7b2s6ITEscmVhc29uOiJjb25maWcifSksaS5wcm9taXNlKCkpOihqLnVybD1rLCQuYWpheChqKS50aGVuKGZ1bmN0aW9uKHgsYSxiKXtpLnJlc29sdmUoeCxiKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXt2YXIgYjt0cnl7Yj1KU09OLnBhcnNlKHgucmVzcG9uc2VUZXh0KX1jYXRjaCh4KXt9T2JqZWN0LmlzT2JqZWN0KGIpfHwoYj17cmVzcG9uc2U6eC5yZXNwb25zZVRleHR9KSxiLm9rPSExO3ZhciBjPXguc3RhdHVzO2woYyxiLnJlYXNvbnx8Yi5tZXNzYWdlfHwiIixiKSxmLl9jb21waWxlZCYmY3cubWUoIm5hbWUiKSYmKDQwMT09Y3x8NDAzPT1jKSYmZi5TZXNzaW9uKCl9KSxpLnByb21pc2UoKSkpO2Z1bmN0aW9uIGwoeCxhLGIpe3ZhciBjPWlzTmFOKHgpPzUwMDoreCxkPWlzTmFOKHgpJiYhYT94OmE7ZHx8KGQ9aC5FUlJfUkVRW2NdfHxoLkVSUl9SRVFbOTk5XSksZCs9IiIsaS5yZWplY3QoYyxkLGIpfWZ1bmN0aW9uIG0oeCxhKXt2YXIgYj1bXSxjPXt9LGQ9W10sZj0iIixnPWE/KGErIiIpLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyI6IiIsaD17c3RhcnRrZXk6MSxlbmRrZXk6MSxzdGFydF9rZXk6MSxlbmRfa2V5OjEsa2V5OjF9LGk9L15fZGVzaWduXC8vO3JldHVybiJzdHJpbmciPT10eXBlb2YgeD9mPS9eaHR0cFtzXT86Ly50ZXN0KHgpP3g6Zyt4LnJlcGxhY2UoL15cLysvLCIiKTpPYmplY3QuaXNBcnJheSh4KSYmKHguZm9yRWFjaChmdW5jdGlvbih4LGEpe2lmKCIiIT09eCYmbnVsbCE9eClpZihPYmplY3QuaXNPYmplY3QoeCkpJC5leHRlbmQoITAsYyx4KTtlbHNlIGlmKGkudGVzdCh4KyIiKSl7dmFyIGQ9KHgrIiIpLnNwbGl0KCIvIik7Yi5hZGQoW2RbMF0sZC5mcm9tKDEpLmpvaW4oIi8iKV0pfWVsc2UgYi5wdXNoKGUoeCsiIikpfSksZD1PYmplY3Qua2V5cyhjKS5tYXAoZnVuY3Rpb24oeCl7dmFyIGE9Y1t4XTtyZXR1cm4oaFt4XXx8InN0cmluZyIhPXR5cGVvZiBhKSYmKGE9SlNPTi5zdHJpbmdpZnkoYSkpLGUoeCkrIj0iK2UoYSl9KSxmPWcrYi5qb2luKCIvIikrKGQubGVuZ3RoPyI/IitkLmpvaW4oIiYiKToiIikpLGZ9fSxTd2l0Y2g6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1zLGU9Yy5kYXRhLGY9Yy5UYWJzLmZpbmRJbmRleChmdW5jdGlvbih4KXtyZXR1cm4geC5hY3RpdmV9KXx8MCxnPU9iamVjdC5pc1N0cmluZyh4KT94LnJlcGxhY2UoL14jLywiIikuc3BsaXQoIi8iKS5jb21wYWN0KCEwKTpPYmplY3QuaXNBcnJheSh4KT94LnNsaWNlKDApLmNvbXBhY3QoITApOltdO2cubGVuZ3RoPjImJmcuam9pbigiLyIpLnN0YXJ0c1dpdGgoIl9ub2RlL19sb2NhbC9fbm9kZXMiKSYmKChnPWcuZnJvbSgyKSlbMF09Il9ub2RlL19sb2NhbC9fbm9kZXMiKSxbMSwyLDNdLmZvckVhY2goZnVuY3Rpb24oeCl7L15fKGRlc2lnbnxsb2NhbCkkLy50ZXN0KGdbeF0pJiYoZ1t4KzFdJiYoZ1t4KzFdPWdbeF0rIi8iK2dbeCsxXSksZy5yZW1vdmVBdCh4KSl9KTt2YXIgaCxpPWcuam9pbigiXGZmZmQiKSxqPVtdO2lmKGMuVGFicy5mb3JFYWNoKHg9PngucGF0aC5qb2luKCJcZmZmZCIpPT1pP2oucHVzaCh4KTowKSxqLmxlbmd0aD4xJiZhJiYoalswXT1qLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHguaWQ9PWF9KXx8alswXSksKGg9alswXSkmJmguYWN0aXZlJiZoLnJ1bilyZXR1cm4hMTt2YXIgayxsPS9eKF9ub2RlXC9fbG9jYWxcL19ub2Rlc3xfdXNlcnN8X3JlcGxpY2F0b3J8X2Ric3xfbm9kZXN8X2dsb2JhbF9jaGFuZ2VzKSQvLnRlc3QoZ1swXSl8fC9eW2EtekEtWjAtOSRcKFwpXCtcLV1bYS16QS1aMC05JFwoXClcK1wtXC9fXC5dKiQvLnRlc3QoZ1swXSksbT0iZXJyb3IiLG49IkVycm9yIixvPWMuVHlwZXMucmVkdWNlKGZ1bmN0aW9uKHgsYSl7aWYoeC5va3x8IWNbYV0ubWF0Y2gpcmV0dXJuIHg7dmFyIGI9Y1thXS5tYXRjaC5jYWxsKGMsZy5zbGljZSgwKSxsKTtyZXR1cm4gYiYmJC5leHRlbmQoeCx7b2s6ITAsdHlwZTphLnN1YnN0cigxKX0sYikseH0se29rOiExLHRpdGxlOiJFcnJvciIsdHlwZToiZXJyb3IiLHBhdGg6Z30pO2lmKG09by50eXBlLG49by50aXRsZSxrPW8uYXBwRGF0YSxnPW8ucGF0aCwiZXJyb3IiPT1tJiYoaz17ZXJyb3I6IlVucmVjb2duaXplZCBjb21tYW5kIn0pLCFoKXtpZihjLlRhYnMubGVuZ3RoPj1jLkNmZy5tYXhUYWJzJiZnLmxlbmd0aCl7dmFyIHA9Yy5UYWJzLm1hcChmdW5jdGlvbih4LGEpe3JldHVybiB4LnRzPXgudHN8fCIwMDAwMDAiKyg5OS1hKS50b1N0cmluZygzNikseH0pLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4heC5lcnJvciYmIXguYWN0aXZlJiZ4Lmhhc2gwPT14Lmhhc2gxfSkuc29ydEJ5KCJ0cyIpWzBdO2lmKCFwKXJldHVybiBjdy5saWIubm90ZShjLmxhbmcuRkFJTF9UT09fTUFOWV9UQUJTLmFzc2lnbihjLkNmZy5tYXhUYWJzKyIiKSwiZXJyb3IiKSwhMTtjLkNsb3NlKHt0YWJpZDpwLmlkLHNpbGVudDohMH0pfSEwLGg9e2lkOmN3LmxpYi5zZGJtKERhdGUubm93KCkrZyksdHlwZTptLGhhc2gwOiIiLGhhc2gxOiIiLGFjdGl2ZTohMCxuYW1lOm4scGF0aDpnLnNsaWNlKDApLGVycm9yOiJlcnJvciI9PW0scnVuOiExLHRzOkRhdGUubm93KCkudG9TdHJpbmcoMzYpfSwvXihkYnN8Y29uZmlnfGFib3V0fHN0YXRzfGxvZykkLy50ZXN0KG0pP2MuVGFicy5pbnNlcnQoaCxjLlRhYnMubGVuZ3RoJiYhYy5UYWJzWzBdLnBhdGgubGVuZ3RoPzE6MCk6MT09Zy5sZW5ndGgmJmMuVGFic1tmXS5wYXRoWzBdPT1nWzBdP2MuVGFicy5pbnNlcnQoaCxmKTpjLlRhYnMuaW5zZXJ0KGgsZisxKX1pZihjLlRhYnMuZm9yRWFjaCh4PT54IT09aD94LmFjdGl2ZT0hMTowKSxoLmFjdGl2ZT0hMCxoLnRzPURhdGUubm93KCkudG9TdHJpbmcoMzYpLGMuSGlzdG9yeS5yZW1vdmUoaC5pZCksYy5IaXN0b3J5LnB1c2goaC5pZCksYy5fY29tcGlsZWQpe3ZhciBxPWgucGF0aC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX0pLmpvaW4oIi8iKTtsb2NhdGlvbi5oYXNoLnJlcGxhY2UoL14jLywiIikhPXEmJihsb2NhdGlvbi5oYXNoPSIjIitxKX1jLlNldFRpdGxlKGgubmFtZSksZCgpLGMubXkucmVzdHlsZSgpO3ZhciByPXQobSxnLGguaWQsayk7ZnVuY3Rpb24gcygpe2MubXkucmVjYWxjKCIjbC1hcHB0YWJzIiksZS5wYXRoPU9iamVjdC5jbG9uZShnLCEwKX1mdW5jdGlvbiB0KHgsYSxkLGUpe3ZhciBmLGc9Y1siJCIreF0saD1jLm15LmZpbmQoIiNsLWFwcHM+I2FwcC0iK2QpO3JldHVybiFoLmxlbmd0aHx8IWguaXMoIi5teS1mb3JtIikmJiJlcnJvciI9PXg/KGgubGVuZ3RofHwoaD0kKCc8ZGl2IGNsYXNzPSJsLWFwcCIgaWQ9ImFwcC0nK2QrJyI+PC9kaXY+JyksYy5teS5maW5kKCIjbC1hcHBzIikuYXBwZW5kKGgpKSxjLm15LmZpbmQoIiNsLWFwcHM+LmwtYXBwIikuYWRkQ2xhc3MoImhpZGUiKSxoLnJlbW92ZUNsYXNzKCJoaWRlIiksZj1oLm15KGcsJC5leHRlbmQoe3BhdGg6YSx0YWJpZDpkfSxlfHx7fSwiZXJyb3IiPT14P3t9OmJ8fHt9KSkpOmMubXkuZmluZCgiI2wtYXBwcz4ubC1hcHAiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4LmlzKGgpP3gucmVtb3ZlQ2xhc3MoImhpZGUiKTp4LmFkZENsYXNzKCJoaWRlIil9KSxmfHxofXIudGhlbiYmci50aGVuKGZ1bmN0aW9uKCl7dmFyIHg9ITE7aC5ydW49ITAsaC5oYXNoMD1oLmhhc2gxPXIubXkoIm1hbmlmZXN0IikuaGFzaCgpLGgubmFtZT1yLm15KCJtYW5pZmVzdCIpLnRpdGxlKCksYy5TZXRUaXRsZShoLm5hbWUpLHIub24oImNoYW5nZS5teSIsZnVuY3Rpb24oKXtoLmhhc2gxPXIubXkoIm1hbmlmZXN0IikuaGFzaCgpO3ZhciBhPXIubXkoIm1hbmlmZXN0IikudGl0bGUoKTtoLmhhc2gwIT1oLmhhc2gxfHxhIT1oLm5hbWU/KGgubmFtZT1hLHg9ITAsZCgpKTp4JiZkKCksaC5hY3RpdmUmJmMuU2V0VGl0bGUoaC5uYW1lKX0uZGVib3VuY2UoNTAwKSksci5vbigicmVzZXR0YWJoYXNoLm15IixmdW5jdGlvbigpe2guaGFzaDA9aC5oYXNoMT1yLm15KCJtYW5pZmVzdCIpLmhhc2goKSxoLm5hbWU9ci5teSgibWFuaWZlc3QiKS50aXRsZSgpLGQoKX0uZGVib3VuY2UoMTAwKSksZCgpfSkuZmFpbChmdW5jdGlvbih4LGIpe2MuUGhvKCJDb3VjaCIpLnZlcj49IjAwMy4iJiZjdy5tZSgpJiYhZy5sZW5ndGh8fGN3LmxpYi5ub3RlKGMubGFuZy5GQUlMX1RBQl9BUFAsImVycm9yIiksYy5teS5maW5kKCIjbC1hcHBzPiNhcHAtIithKS5yZW1vdmUoKSxoLmVycm9yPSEwLGNvbnNvbGUubG9nKHgsYiksaC5oYXNoMT1oLmhhc2gwPSJlcnJvciIsdCgiZXJyb3IiLGcsaC5pZCx7ZXJyb3I6T2JqZWN0LmlzU3RyaW5nKHgpJiZPYmplY3QuaXNTdHJpbmcoYik/eCsiICIrYjp4fSl9LmRlYm91bmNlKDEwKSl9LENsb3NlOmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPSExO2lmKE9iamVjdC5pc09iamVjdCh4KT8oYT14LnRhYmlkfHwiIix4LmVuZm9yY2V8fCExLGM9eC5zaWxlbnR8fCExKTphPXgrIiIsIShiLlRhYnMubGVuZ3RoPDIpJiZhKXt2YXIgZD1iLlRhYnMuZmluZCh4PT54LmlkPT1hKTtpZihkKXt2YXIgZT1iLm15LmZpbmQoIiNsLWFwcHM+I2FwcC0iK2EpO2UubGVuZ3RoJiZlLmlzKCIubXktZm9ybSIpPyhkLmhhc2gxPWUubXkoIm1hbmlmZXN0IikuaGFzaCgpLGQuaGFzaDE9PWQuaGFzaDA/ZihlLGQpOiQubXkubW9kYWwoe21hbmlmZXN0OmIuQ29uZmlybSxkYXRhOnt5ZXM6IkNsb3NlIHRhYiZuYnNwOyIsbm86IkNhbmNlbCBjbG9zZSIsY2FuY2VsOiIiLHRleHQ6Yi5sYW5nLkRMR19VTlNBVkVELHVzZUJ1dHRvbnM6ITB9LHdpZHRoOjMwMCxjbG9zZTohMCxlc2M6ITAsZW50ZXI6ITEsY3NzOiJsaDE3MCB4Z3JheSBwMjAgcGIyNSIsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oeCl7InllcyI9PXguY21kJiZmKGUsZCl9KSk6ZyghZC5hY3RpdmUpfX1mdW5jdGlvbiBmKHgsYSl7eC5teSgicmVtb3ZlIikseC5yZW1vdmUoKSxnKCFhLmFjdGl2ZSl9ZnVuY3Rpb24gZyh4KXtpZihiLkhpc3RvcnkucmVtb3ZlKGEpLGIuVGFicy5yZW1vdmUoZCkseCljfHxiLm15LnJlY2FsYygiI2wtYXBwdGFicyIpO2Vsc2UgaWYoYi5IaXN0b3J5Lmxlbmd0aCl7Zm9yKHZhciBlLGY7Yi5IaXN0b3J5Lmxlbmd0aCYmIWU7KWY9Yi5IaXN0b3J5LnBvcCgpLGU9Yi5UYWJzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHguaWQ9PWZ9KTtlfHwoZT1iLlRhYnNbMF0pLGIuU3dpdGNoKGUucGF0aCxlLmlkKX1lbHNlIGIubXkucmVjYWxjKCIjbC1hcHB0YWJzIiksYi5fY29tcGlsZWQmJndpbmRvdy5oaXN0b3J5LmJhY2soKTtjfHxiLm15LnJlc3R5bGUoKX19LEdldExpc3Q6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9KHguZGF0YSwkLkRlZmVycmVkKCkpLGI9ZW5jb2RlVVJJQ29tcG9uZW50LGM9IiIsZD1bXSxlPSJfbm9kZS9fbG9jYWwvX25vZGVzIixmPVt4LlJlcShbIl9hbGxfZGJzIl0pLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGM9T2JqZWN0LmtleXMoeC5BbGwpLGQ9YS5zbGljZSgwKTtjLnN1YnRyYWN0KGQpLmZvckVhY2goZnVuY3Rpb24oYSl7YSE9ZSYmZGVsZXRlIHguQWxsW2FdfSksZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKCF4LkFsbFthXSl7dmFyIGM9YS5lc2NhcGVIVE1MKCksZD1nKGEpLGU9YyxmPWEubGVuZ3RoLGg9MDtmPjE1JiYoaD1mLSgxNStmJTMpLGU9YS50byhmLWgpK2EuZnJvbShmLWgpLnJlcGxhY2UoLyguezN9KS9nLCIkMTx3YnI+IikpO3ZhciBpPSQuZXh0ZW5kKCEwLHtuYW1lOmEsbmFtZXNhZmU6YyxobmFtZTplLHRvb2x0aXA6ZCxocmVmOmIoYSl9LHguZGJUeXBlKTt4LkFsbFthXT0kLmV4dGVuZCghMCxpLHguQWxsW2FdfHx7fSl9fSkseC5Hcm91cERCcygpfSkudGhlbihmdW5jdGlvbigpe3guUGhvKCJDb3VjaCIpLnZlcjwiMDAzLiJ8fCFjdy5tZSgicm9sZXMiKS5maW5kKCJfYWRtaW4iKXx8KHguQWxsW2VdPXguQWxsW2VdfHwkLmV4dGVuZCghMCx7bmFtZTplLG5hbWVzYWZlOmUsaG5hbWU6ZSx0b29sdGlwOmUsaHJlZjpiKGUpfSx4LmRiVHlwZSkpfSkuZmFpbChmdW5jdGlvbih4LGIsYyl7Y29uc29sZS5sb2coeCxiLGMpLGEucmVqZWN0KHgsYixjKX0pXTtyZXR1cm4gZi5wdXNoKGgoKSksUS5hbGxTZXR0bGVkKGYpLnRoZW4oZnVuY3Rpb24oKXt4LkFsbFtjXT94LlJlcGxpY2F0b3JEQj1jOnguUmVwbGljYXRvckRCPXguUmVwbGljYXRvckRCfHwiX3JlcGxpY2F0b3IiLGEucmVzb2x2ZSh4LkFsbCl9KSxhLnByb21pc2UoKTtmdW5jdGlvbiBnKHgpe2lmKCEvXnVzZXJkYi0oWzAtOWEtaF17Mn0pezEsfSQvLnRlc3QoeCkpcmV0dXJuIHgubGVuZ3RoPjIwP3g6IiI7dmFyIGE9eC5mcm9tKDcpLGI9IiI7dHJ5e2I9ZGVjb2RlVVJJQ29tcG9uZW50KGEucmVwbGFjZSgvKC4uKS9nLCIlJDEiKSl9Y2F0Y2goeCl7fXJldHVybiBiPyJVc2VyIERCIGZvciAiK2I6eC5sZW5ndGg+MjA/eDoiIn1mdW5jdGlvbiBoKCl7dmFyIGE9W107cmV0dXJuIHguQ291Y2gudmVyc2lvbnx8KGEucHVzaCh4LlJlcSh7dXJsOltdLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oYSl7eC5Db3VjaC52ZXJzaW9ufHwkLmV4dGVuZCh4LkNvdWNoLGEpLGwoKX0pKSx4LlBobygiX2NvbXBpbGVkIikmJiF3aW5kb3cuRERPQy5fZGImJmEucHVzaCh4LlJlcSh7dXJsOlsiX2Ricm9vdCJdLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oYSl7JC5leHRlbmQoeC5Db3VjaCxhKSxsKCl9KS5mYWlsKHg9PmNvbnNvbGUubG9nKCJUaGlzIDQwMCBpcyBub3JtYWwiKSkpKSxRLmFsbFNldHRsZWQoYSkudGhlbihpKX1mdW5jdGlvbiBpKCl7dmFyIGE9W107cmV0dXJuIHguQ291Y2gudmVyPCIwMDIuIj8oYS5wdXNoKHguUmVxKFsiX2NvbmZpZyIsInJlcGxpY2F0b3IiLCJkYiJdKS50aGVuKGZ1bmN0aW9uKHgpeyJzdHJpbmciPT10eXBlb2YgeCYmKGM9eCl9KS5mYWlsKGZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIlRoaXMgNDB4IGlzIG5vcm1hbCIpfSkseC5SZXEoWyJfY29uZmlnIiwiaHR0cGQiLCJwb3J0Il0pLnRoZW4oZnVuY3Rpb24oYSl7InN0cmluZyI9PXR5cGVvZiBhJiYoeC5Db3VjaC5wb3J0PWEpfSkpLHguQ291Y2gubWF4QmF0Y2g9MCk6YS5wdXNoKHguR2V0TWVtYmVyc2hpcCgpLnRoZW4oZnVuY3Rpb24oeCl7ZD14fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBrKCl9KSxqKCkseC5SZXEoWyJfbm9kZSIsIl9sb2NhbCIsIl9jb25maWciLCJjaHR0cGQiLCJwb3J0Il0pLnRoZW4oZnVuY3Rpb24oYSl7InN0cmluZyI9PXR5cGVvZiBhJiYoeC5Db3VjaC5wb3J0PWEpfSkpLFEuYWxsU2V0dGxlZChhKX1mdW5jdGlvbiBqKCl7aWYoIXguUGhvKCJDb3VjaCIpLnEpcmV0dXJuIHguUmVxKFsiX25vZGUiLCJfbG9jYWwiLCJfY29uZmlnIiwiY2x1c3RlciJdKS50aGVuKGZ1bmN0aW9uKGEpe2EmJiJvYmplY3QiPT10eXBlb2YgYSYmKHguQ291Y2gucT0rKGEucXx8MCkseC5Db3VjaC5uPSsoYS5ufHwwKSl9KS5mYWlsKGZ1bmN0aW9uKCl7eC5Db3VjaC5xPTAsY29uc29sZS5sb2coIlRoaXMgNDB4IGlzIG5vcm1hbCIpfSl9ZnVuY3Rpb24gaygpe3JldHVybiFkLmxlbmd0aHx8eC5Db3VjaC52ZXI8IjAwMi4wMDIuInx8eC5Db3VjaC5tYXhCYXRjaD4wPyh4LkNvdWNoLm1heEJhdGNoPXguQ291Y2gubWF4QmF0Y2h8fDAsdm9pZCAwKTp4LlJlcShbIl9ub2RlIiwiX2xvY2FsIiwiX2NvbmZpZyIsImNodHRwZCIsIm1heF9kYl9udW1iZXJfZm9yX2Ric19pbmZvX3JlcSJdKS50aGVuKGZ1bmN0aW9uKGEpe3guQ291Y2gubWF4QmF0Y2g9InN0cmluZyI9PXR5cGVvZiBhPythOjB9KS5mYWlsKGZ1bmN0aW9uKCl7eC5Db3VjaC5tYXhCYXRjaD14LkNvdWNoLnZlcj4iMDAzLjAwMS4iPzEwMDowLGNvbnNvbGUubG9nKCJUaGlzIDQweCBpcyBub3JtYWwiKX0pfWZ1bmN0aW9uIGwoKXt4LkNvdWNoLnZlcj14LkNvdWNoLnZlcnNpb24uc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuKCIwMCIrKCt4fHxwYXJzZUludCh4KXx8MCkudG9TdHJpbmcoKSkuc3Vic3RyKC0zKX0pLmpvaW4oIi4iKX19LEdldE1lbWJlcnNoaXA6ZnVuY3Rpb24oKXt2YXIgeCxhPXRoaXM7cmV0dXJuIE9iamVjdC5zaXplKHg9YS5QaG8oIk1lbWJlcnNoaXAiKSk/Yih4KTphLlJlcShbIl9tZW1iZXJzaGlwIl0pLnRoZW4oYik7ZnVuY3Rpb24gYih4KXt2YXIgYj1bXTtyZXR1cm4gT2JqZWN0LmlzT2JqZWN0KHgpJiZPYmplY3QuaXNBcnJheSh4LmFsbF9ub2RlcykmJk9iamVjdC5pc0FycmF5KHguY2x1c3Rlcl9ub2RlcykmJigkLmV4dGVuZCghMCxhLlBobygiTWVtYmVyc2hpcCIpLHgpLGI9eC5jbHVzdGVyX25vZGVzLnNsaWNlKDApLmludGVyc2VjdCh4LmFsbF9ub2RlcykpLGJ9fSxHZXRVc2VyczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0kLkRlZmVycmVkKCksYj14LlVzZXJzO3JldHVybihiLl9zZXE/eC5SZXEoe3VybDpbIl91c2VycyIsIl9jaGFuZ2VzIix7c2luY2U6Yi5fc2VxfV0sZGF0YVR5cGU6Impzb24ifSk6eC5SZXEoe3VybDpbIl91c2VycyIsIl9hbGxfZG9jcyIse3VwZGF0ZV9zZXE6ITB9XSxkYXRhVHlwZToianNvbiJ9KSkudGhlbihmdW5jdGlvbih4KXtiLl9zZXE9eC5sYXN0X3NlcXx8eC51cGRhdGVfc2VxLCh4LnJvd3N8fHgucmVzdWx0c3x8W10pLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoIm9yZy5jb3VjaGRiLnVzZXI6Ij09eC5pZC50bygxNykpe3ZhciBhPXguaWQuZnJvbSgxNyk7eC5kZWxldGVkP2RlbGV0ZSBiW2FdOmJbYV09ITB9fSl9KS5hbHdheXMoZnVuY3Rpb24oKXthLnJlc29sdmUoT2JqZWN0LmtleXMoYikuc29ydCgpLnJlbW92ZSgvXl8vKSl9KSxhLnByb21pc2UoKX0sR3JvdXBEQnM6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5BbGwsZD1iLlBobygiQ2ZnIikuZ3JvdXBpbmcsZT0oeD14fHxPYmplY3Qua2V5cyhjKSxhPWF8fE9iamVjdC5rZXlzKGIuTHMoIkRCcy5TdGFycyIpfHx7fSksY3cubGliLmEybyhhKSksZj1kLmZpbmQoInRpbnkiKT8xMDpkLmZpbmQoInNtYWxsIik/MzA6ZC5maW5kKCJsYXJnZSIpPzI1MDoxMDAsZz1mLzN8MCxoPXguZmlsdGVyKHg9PiFlW3hdKS5zb3J0KCk7aWYoeC5sZW5ndGg8MipnfHxkKyIiPT0iIilyZXR1cm4gT2JqZWN0LmtleXMoYykuZm9yRWFjaCh4PT5jW3hdLmdyb3VwPSIiKSxiLkdyb3Vwcz17fTtpZihkLmZpbmQoImF1dG8iKSl7aWYoZC5maW5kKCJhdXRvIikpe2w9eyIiOjB9O3ZhciBpPXt9O2g9KGg9aC5tYXAoZnVuY3Rpb24oeCxhKXt2YXIgYj0oeC5tYXRjaCgvXlthLXowLTlcJF0rW1wvXC1fXCtdLyl8fFtdKVswXTtyZXR1cm4gYj8obFtiXXx8KGlbYl09YSxsW2JdPTApLGxbYl0rPTEse2RiOngsZ3JvdXA6Yn0pOihsWyIiXSs9MSx7ZGI6eCxncm91cDoiIn0pfSkpLm1hcChmdW5jdGlvbih4KXt2YXIgYT14Lmdyb3VwO3JldHVybiBhPyhsW2FdP2xbYV08ZyYmKGxbIiJdKz1sW2FdLGRlbGV0ZSBsW2FdLHguZ3JvdXA9IiIpOnguZ3JvdXA9IiIseCk6eH0pO3ZhciBqPVtdLGs9bnVsbDttPTA7aC5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7aWYoIl8iIT14LmRiWzBdKXtpZih4Lmdyb3VwKXJldHVybiBrPW51bGw7a3x8ai5wdXNoKHtpMDphLHNpemU6MCxwZjp7fX0pO3ZhciBiPWoubGFzdCgpLGM9eC5kYlswXTtiLnBmW2NdfHwoYi5wZltjXT17aTA6YSxzaXplOjB9KSxiLnBmW2NdLnNpemUrPTEsYi5zaXplKz0xLGs9eH19KSwoaj1qLmZpbHRlcih4PT54LnNpemU+PWYpKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPXgucGY7T2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYj1hW3hdLGM9Yi5zaXplPGYtZz8iIjp4O2MmJihpW2NdPWIuaTAsbFtjXT1iLnNpemUsbFsiIl0tPWIuc2l6ZSk7Zm9yKHZhciBkPTA7ZDxiLnNpemU7ZCsrKWhbYi5pMCtkXS5ncm91cD1jfSl9KSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2lmKHgmJiEobFt4XTxmK2cpKXt2YXIgYT1sW3hdLGI9YS9mO2IhPT0oMHxiKSYmKGI9TWF0aC5jZWlsKGIpKTtmb3IodmFyIGM9TWF0aC5jZWlsKGEvYikuY2xhbXAoLjkqZnwwLGYpLGQ9aVt4XSxlPTE7ZTxiO2UrKylmb3IodmFyIGo9MCxrPTA7azxjO2srKykoaj1lKmMrayk8YSYmKGhbZCtqXS5ncm91cCs9IjoiK2UpfX0pfX1lbHNle3ZhciBsPXsiIjowfSxtPTA7aD1oLm1hcChmdW5jdGlvbih4LGEpe2lmKCJfIj09eFswXSlyZXR1cm57ZGI6eCxncm91cDoiIn07dmFyIGI9IjoiK207cmV0dXJuIGxbYl18fChsW2JdPTApLGxbYl0rPTEsbFtiXT49ZiYmKG0rPTEpLHtkYjp4LGdyb3VwOmJ9fSl9bD17IiI6e3NpemU6MCxzdGFydDoiIixlbmQ6IiJ9fSxrPW51bGw7cmV0dXJuIGguZm9yRWFjaChmdW5jdGlvbih4LGEpe3ZhciBiPXguZ3JvdXA7Y1t4LmRiXS5ncm91cD1iLGImJiFsW2JdJiYobFtiXT17aWQ6YixoZWFkOmIuc3BsaXQoIjoiKVswXSxzdGFydDp4LmRiLGVuZDoiIixzaXplOjAsaTA6YX0pLCFifHxoW2ErMV0mJmhbYSsxXS5ncm91cD09Ynx8KGxbYl0uZW5kPXguZGIpLGxbYl0uc2l6ZSs9MX0pLGIuR3JvdXBzPWx9LFVwZGF0ZXI6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3guTHM7aWYoeC5fY29tcGlsZWQmJmN3Lm1lKCkmJiJyZW1pbmQiPT14LkNmZy51cGRhdGUpe3ZhciBhPXguTHMoIkxhc3RVcGRhdGUiKXx8e30sYj13aW5kb3cuRERPQyxjPURhdGUubm93KCksZD0iIixlPTI2Nzg0ZTUsZj0wO2lmKCEoYS5yZW1pbmRlciYmYy1hLnJlbWluZGVyPGUqKE1hdGgucmFuZG9tKCkvMisuNSkpKXtpZihhLnN0YW1wKXtpZigoZj0oYy1hLnN0YW1wKS9lKTwxLjEpcmV0dXJuO2Q9eC5sYW5nLlVQRF9NT05USC5hc3NpZ24oMHxmLGY+MT8icyI6IiIpfWVsc2V7aWYoKGY9KGMtYi5zdGFtcCkvZSk8MS4xKXJldHVybjtkPXgubGFuZy5VUERfT0xELmFzc2lnbigwfGYsZj4xPyJzIjoiIil9ZCYmKGQrPXgubGFuZy5VUERfVEFJTCxjdy5saWIubm90ZShkLCJ4eHgiLDZlMyksYS5yZW1pbmRlcj1jLHguTHMoIkxhc3RVcGRhdGUiLGEpKX19fSxMczpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9d2luZG93LmxvY2FsU3RvcmFnZSxjPWYsZD14fHxhLmlkfHwiWCIsZT1PYmplY3QuaXNTdHJpbmc7aWYoYS5fY29tcGlsZWQpdHJ5e2guZGVsYXkoM2UzKX1jYXRjaCh4KXt9cmV0dXJuIGM7ZnVuY3Rpb24gZih4LGEpe3ZhciBjLGY9ZCsiLiIreDtyZXR1cm4gbnVsbD09PWE/Yi5yZW1vdmVJdGVtKGYpOnZvaWQgMCE9PWE/Yi5zZXRJdGVtKGYsSlNPTi5zdHJpbmdpZnkoYSkpOihjPWIuZ2V0SXRlbShmKSxlKGMpP2coYyk6bnVsbCl9ZnVuY3Rpb24gZyh4KXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoeCl9Y2F0Y2goeCl7fXJldHVybiBudWxsfWZ1bmN0aW9uIGgoKXt2YXIgeD1EYXRlLm5vdygpO2lmKCEoSlNPTi5zdHJpbmdpZnkoYikubGVuZ3RoPDFlNikpT2JqZWN0LmtleXMoYikuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiB4LnN0YXJ0c1dpdGgoImN3LlN5cy5KU09OLnZpZXdzdGF0ZSIpfSkucmVkdWNlKGZ1bmN0aW9uKGEsYyl7dmFyIGQ9Yi5nZXRJdGVtKGMpO2lmKCFlKGQpKXJldHVybiBhO3ZhciBmPWcoZCk7cmV0dXJuIGYmJmYuc3RhbXAmJmYuc3RhbXA+eC0zMTUzNmU2JiZhLnB1c2goW2MsZl0pLGF9LFtdKS5zb3J0QnkoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMV0uc3RhbXB9KS50bygtMWUzKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2IucmVtb3ZlSXRlbSh4WzBdKX0pfX0sQ3JlYXRlREJzOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIubGFuZyxkPWIuUGhvKCJDZmciKS5iYXRjaENyZWF0ZURlbGF5LGU9Yi5QaG8oIkNvdWNoIiksZj1lLnZlcixnPWUucTtyZXR1cm4gUS5hbGxTZXR0bGVkKHgubWFwKGgpKS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIseC5tYXAoeD0+eC5uYW1lKSl9LmRlbGF5KDUwKSxhfSk7ZnVuY3Rpb24gaCh4LGUpe3ZhciBoPSQuZXh0ZW5kKCEwLHtuYW1lOiIiLHNlY3VyaXR5Om51bGwscTowLG46MCxwYXJ0aXRpb25lZDohMSxjcmVhdGU6ITB9LHgpO2guc2VjdXJpdHk9JC5leHRlbmQoITAse2FkbWluczp7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6e25hbWVzOltdLHJvbGVzOltdfX0seC5zZWN1cml0eXx8e30pO3ZhciBqPWgubmFtZSxrPXt9LGw9JC5EZWZlcnJlZCgpO3JldHVybiBmPiIwMDIuIiYmK2c+MCYmK2gucT4wJiYkLmV4dGVuZChrLHtxOitoLnF8fDIsbjoraC5ufHwxfSksZj4iMDAzLiImJmgucGFydGl0aW9uZWQmJitoLnE+MSYmKGsucGFydGl0aW9uZWQ9ITApLGZ1bmN0aW9uKCl7KGguY3JlYXRlP2IuUmVxKHt1cmw6W2osa10sbWV0aG9kOiJQVVQiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIn0pLnRoZW4obSk6bSgpKS50aGVuKGZ1bmN0aW9uKCl7bC5yZXNvbHZlKGgpfSkuZmFpbChmdW5jdGlvbih4LGMsZCl7bC5yZWplY3QoeCxjLGQsaCksYXx8Y3cubGliLm5vdGUoYi5sYW5nLk1TR19ORVdEQl9GQUlMLmFzc2lnbihqLHgsaShjKSksImVycm9yIiwxZTQpfSl9LmRlbGF5KGUqZHx8MCksbC5wcm9taXNlKCk7ZnVuY3Rpb24gbSgpe3ZhciBkPSQuRGVmZXJyZWQoKTtyZXR1cm4gbnVsbCE9eC5zZWN1cml0eXx8aC5jcmVhdGUmJmY+IjAwMy4iP2IuUmVxKHt1cmw6W2osIl9zZWN1cml0eSJdLG1ldGhvZDoiUFVUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShPYmplY3Quc2VsZWN0KGguc2VjdXJpdHksWyJhZG1pbnMiLCJtZW1iZXJzIl0pKX0pLnRoZW4oZnVuY3Rpb24oKXthfHxlKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYixkKXthfHxjdy5saWIubm90ZShjW2guY3JlYXRlPyJNU0dfTkVXREJfTk9BQ0wiOiJNU0dfU0VDREJfRkFJTCJdLmFzc2lnbihqLHgsaShiKSksIndhcm5pbmciLDZlMyl9KS5hbHdheXMoZnVuY3Rpb24oKXtkLnJlc29sdmUoaCl9KTooIWEmJmguY3JlYXRlJiZlKCksZC5yZXNvbHZlKGgpKSxkLnByb21pc2UoKTtmdW5jdGlvbiBlKCl7Y3cubGliLm5vdGUoaC5jcmVhdGU/Yy5NU0dfTkVXREJfT0suYXNzaWduKGopOmMuTVNHX1NFQ0RCX09LLmFzc2lnbihqKSl9fX1mdW5jdGlvbiBpKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9fSxDb21waWxlVDpmdW5jdGlvbih4KXtmb3IodmFyIGEsYixjLGQ9L1x7W2EtejAtOV9dW2EtejAtOV9dezAsMTl9XC4/W2EtejAtOV9dezAsMjB9XH0vZ2ksZT1bXSxmPTAsZz0wLGg9MDtudWxsIT09KGE9ZC5leGVjKHgpKTspYz0oYj1hWzBdKS5sZW5ndGgsZz1kLmxhc3RJbmRleCxlLnB1c2goeC5zdWJzdHJpbmcoZixnLWMpKSxmPWcsZS5wdXNoKFtiXS5jb25jYXQoYi5zdWJzdHIoMSxjLTIpLnNwbGl0KCIuIikpKSxoKz0yO3JldHVybiBlLnB1c2goeC5zdWJzdHIoZikpLGQ9bnVsbCx7c3RhbXA6RGF0ZS5ub3coKSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB4fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LGFzc2lnbjpmdW5jdGlvbihhKXt2YXIgYj0iIixjPSJvYmplY3QiO2lmKHR5cGVvZiBhIT09YylyZXR1cm4geDtmb3IodmFyIGQsZixnPTAsaT0xO2c8aDtnKz0yKXtiKz1lW2ddLGQ9ZVtnKzFdLGk9MSxmPWE7ZG97Zj1mW2RbaSsrXV19d2hpbGUodHlwZW9mIGY9PT1jJiZpPGQubGVuZ3RoKTtiKz12b2lkIDAhPT1mP2Y6ZFswXX1yZXR1cm4gYitlW2hdfX19fSxFZDp7anNvbnRyZWU6e2lkOiJjdy5TeXMuSlNPTiIscGFyYW1zOnt9LHVpOnsiI2J0bi1zYXZlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2J0bi1zYXZlIiwic2F2ZWRvYy5teSIpfX19LExpYjp7aXNTeXN0ZW06ZnVuY3Rpb24oeCl7cmV0dXJuIXRoaXMubXkucm9vdCgpLnBhcmVudHMoIi5sLWFwcCIpLmVxKDApLm15KCJkYXRhIikuaXNOZXcmJiEhKDE9PXgubGV2ZWwmJi9eXyhpZHxyZXZ8cmV2c19pbmZvfGxvY2FsX3NlcSkkLy50ZXN0KHgua2V5KSYmeC52YWx1ZXx8eC5sZXZlbD4yJiYiX3JldnNfaW5mbyI9PXgucGF0aFsxXXx8Il9jb25mbGljdHMiPT14LnBhdGhbMV0pfX0sc3R5bGU6eyIgIjoiIiwiIC5pcm9vdC5pc2VkaXRvciI6InBhZGRpbmctbGVmdDowIWltcG9ydGFudDsiLCIgLmlyb290LmlzZWRpdG9yPi5pa2V5IjoiZGlzcGxheTpub25lIiwiIC5pcm9vdD4uaWVkaXRvciI6InBhZGRpbmctdG9wOjRweDsiLCIgLmlyb290Pi5pZWRpdG9yIC5Db2RlTWlycm9yLXNjcm9sbCI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QaG8oIlBhbmVsSGVpZ2h0IiktMzI7cmV0dXJuIm1pbi1oZWlnaHQ6ezF9cHg7bWF4LWhlaWdodDp7MX1weDtoZWlnaHQ6ezF9cHg7b3ZlcmZsb3c6c2Nyb2xsOyIuYXNzaWduKGEpfX0sTHM6ZnVuY3Rpb24oKXt2YXIgeD13aW5kb3cubG9jYWxTdG9yYWdlO3JldHVybiBmdW5jdGlvbihhLGIpe3ZhciBjPSJjdy5TeXMuSlNPTi4iK2E7aWYoYilyZXR1cm4geC5zZXRJdGVtKGMsSlNPTi5zdHJpbmdpZnkoYikpO2lmKG51bGw9PT1ifHwhMT09PWIpcmV0dXJuIHgucmVtb3ZlSXRlbShjKTt2YXIgZD14LmdldEl0ZW0oYyk7cmV0dXJuIE9iamVjdC5pc1N0cmluZyhkKT9KU09OLnBhcnNlKGQpOm51bGx9fSxNYWtlTGlzdDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPVtdLGU9eC52YWx1ZSxmPWN3LmxpYi5zZGJtLGc9d2luZG93LmF0b2IsaD1jLmRhdGEudmlld3N0YXRlfHx7fSxpPWMuZGF0YS5mb3VuZHx8e30saj14LmxldmVsKzEsaz1jLmRhdGEuc2VhcmNoLmxlbmd0aD4yLGw9L15kYXRhOmltYWdlXC8oanBlZ3xwbmd8Z2lmfHN2Z1wreG1sKTtiYXNlNjQsLyxtPU9iamVjdC5rZXlzKGUpO3JldHVybiJfYXR0YWNobWVudHMiPT14LmtleSYmMT09eC5wYXRoLmxlbmd0aCYmIlJvb3QiPT14LnBhdGhbMF0mJihtPW0uc29ydEJ5KGZ1bmN0aW9uKHgpe3ZhciBhPXguaW5kZXhPZigiLyIpPi0xO3JldHVybi9eaW5kZXhcLmh0bS8udGVzdCh4KT8iMCIreDphPyIyIit4OiIxIit4fSkpLG0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgZyxtLG89ZVthXSxwPSQudHlwZShvKSxxPSJvYmplY3QiPT1wfHwiYXJyYXkiPT1wPyJtdWx0aSI6cCxyPXgucGF0aC5zbGljZSgwKS5hZGQoeC5rZXkpLHM9Yy5QYXRoU2lnKHIsYSk7ayYmIWlbc118fCgibXVsdGkiPT1xJiYoIlJvb3QiIT14LmtleXx8eC5wYXRoLmxlbmd0aHx8Il9hdHRhY2htZW50cyIhPWE/Il9hdHRhY2htZW50cyI9PXgua2V5JiYxPT14LnBhdGgubGVuZ3RoJiYiUm9vdCI9PXgucGF0aFswXSYmKHE9ImZpbGUiKTpxPSJmaWxlcyIpLCJzdHJpbmciPT1wJiYoayYmOHxpW3NdP3E9ImZvdW5kIjpvLmxlbmd0aD4xMSYmKC9eW1xzXHJcblx0XSpmdW5jdGlvbi8udGVzdChvLnN1YnN0cigwLDIwKSkmJi9cfVtcclxuXHRcc10qJC8udGVzdChvLnN1YnN0cigtMTApKXx8L15bXHNcclxuXHRdKlwoW1xzXHJcblx0XSpmdW5jdGlvbi8udGVzdChvLnRvKDIwKSkmJi9cfVtcclxuXHRcc10qXClbXHJcblx0XHNdKiQvLnRlc3Qoby5zdWJzdHIoLTEwKSkpP3E9ImZ1bmN0aW9uIjpvLmxlbmd0aD4xNjAmJm8ubGVuZ3RoPDE1ZTQmJi9eW2EtekEtWjAtOVwrXC9dKyQvLnRlc3Qoby5zdWJzdHIoMCwxNTgpKSYmL15bYS16QS1aMC05XCtcL10rPXswLDJ9JC8udGVzdChvKT8ic3RyaW5nIj09dHlwZW9mKG09bihvKSkmJihxPSJiYXNlNjQiKTpvLmxlbmd0aD4xNjAmJm8ubGVuZ3RoPDE1ZTQmJmwudGVzdChvKSYmInN0cmluZyI9PXR5cGVvZihtPW4oby5yZXBsYWNlKGwsIiIpKSkmJihxPSJiYXNlNjQiKSksZ3x8KGc9ZihbYSxvXSkpLGsmJiFpW3NdfHxkLnB1c2goe3N0YXRlOmJ8fChrP2lbc106aFtzXXx8MSksbGV2ZWw6aixtYW5pZmVzdDoiJCIrcSxwYXRoOnIsdHlwZTpwLGtleTphLGlkOmEsdmFsdWU6ImZ1bmN0aW9uIj09dHlwZW9mIGVbYV0/ZVthXSsiIjplW2FdLGJpbjptLGhhc2g6Z30pKX0pLGQ7ZnVuY3Rpb24gbih4KXt2YXIgYTt0cnl7YT1nKHgpfWNhdGNoKHgpe31yZXR1cm4gYX19LCRmaWxlczp7aWQ6IlN5cy5KU09OLkZpbGVzIixkYXRhOnt9LExpc3Q6W10sQ006InRleHQvamF2YXNjcmlwdCIsVHh0OntvYmplY3Q6WyJGaWxlcyB7IiwifSJdLGFycmF5OlsiQXJyYXkgWyIsIl0iXX0saW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1hLmRhdGE7eC5hZGRDbGFzcygiZWQtbm9kZS0iK2IuUGF0aFNpZyhjLnBhdGgsYy5rZXkpKSx4Lmh0bWwoYi5IVE1MKSxjLnN0YXRlPjEmJihiLkxpc3Q9Yi5NYWtlTGlzdChjKSkseC5maW5kKCIuaWxpc3Q6ZXEoMCkiKS5vbigiY2hhbmdlLm15IixmdW5jdGlvbigpe2IuUlQoIlJlam9pbiIpKGMsYi5MaXN0KX0uZGVib3VuY2UoMzAwKSkseC5vbigiY2xpY2subXkiLCIuaWxpc3Q6ZXEoMCkgLmJ0bi1kZWwiLGZ1bmN0aW9uKGMpe2Muc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKS5wYXJlbnRzKCIubXktZm9ybSIpLmVxKDApLGU9ZC5wYXJlbnQoKS5kYXRhKCJteSIpLmRhdGEsZj0kLnR5cGUoZS52YWx1ZSksZz1kLm15KCJkYXRhIikua2V5LGg9T2JqZWN0LmNsb25lKGUudmFsdWVbZ10sITApOyJvYmplY3QiPT1mP2RlbGV0ZSBlLnZhbHVlW2ddOiJhcnJheSI9PWYmJmUudmFsdWUucmVtb3ZlQXQoZyksYi5Ob2RlVXBkYXRlZChlLnBhdGguY29uY2F0KGUua2V5LGcpLGgsdm9pZCAwKSxiLlJUKCJMaWIiKS5yZWxpc3QoeCxiLGEpfSl9LHVpOnsiLml2YWx1ZSI6e2Nzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLkxpc3QubGVuZ3RofSxub2NvbXA6ZnVuY3Rpb24oeCl7dmFyIGE9MCxiPTA7cmV0dXJuIE9iamVjdC5rZXlzKHgudmFsdWUpLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGQsZT0wOyhkPXgudmFsdWVbY10pJiYoZT0oZC5kYXRhP2QuZGF0YS5sZW5ndGgvNCozfDA6MCl8fCtkLmxlbmd0aHx8K2Quc2l6ZXx8MCxhKz1lLGIrPSsoeC52YWx1ZVtjXS5lbmNvZGVkX2xlbmd0aHx8ZSkpfSksYT09Yn19LHdhdGNoOlsiLmlkZXNjIl19LCIuaWxpc3QiOntkZWxheTowLGNoZWNrOiExLGJpbmQ6InRoaXMuTGlzdCIsbGlzdDonPGRpdiBjbGFzcz0iaXJvdyI+PC9kaXY+JyxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5pZH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4geC5oYXNofSxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5SVCh4Lm1hbmlmZXN0KXx8dGhpcy5SVCgiJHN0cmluZyIpfSx3YXRjaDpbIi5pZGVzYyJdfSwiLmlrZXkiOnt9LCIuYnRuLWpzb24iOnt9LCIjYnRuLXVwbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXM7Yi5kYXRhKCJtb2RhbCIpPyhiLm1vZGFsKCEwKSxkKCkpOihiLnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGMubXkubW9kYWwoIiNidG4tdXBsb2FkIix7bWFuaWZlc3Q6Yy5BZGQsZGF0YTp7fSx3aWR0aDo1MDAsYWxpZ246InRvcDoxMDMlLCByaWdodDotMzhweDsiLG5vc2U6InRvcCJ9KS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBiPU9iamVjdC5jbG9uZSh4LnZhbHVlLCEwKTthLmZpbGVzLmZvckVhY2goZnVuY3Rpb24oYSl7eC52YWx1ZVthLm5hbWVdPU9iamVjdC5zZWxlY3QoYSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSl9KSxjLk5vZGVVcGRhdGVkKHgucGF0aC5jb25jYXQoeC5rZXkpLGIsT2JqZWN0LmNsb25lKHgudmFsdWUsITApKSx4LnN0YXRlPTIsYy5MaXN0PWMuTWFrZUxpc3QoeCksYy5teS5yZWRyYXcoKX0pLmFsd2F5cyhmdW5jdGlvbigpe2QoKX0pKX1mdW5jdGlvbiBkKCl7Yi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKX19fSwiI2J0bi1iNjQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLlJUKCJHZXRBdHRzIikoKS50aGVuKGZ1bmN0aW9uKCl7Yi5teS5yZWRyYXcoKX0pfX19LCIuaWRlc2MiOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9KHRoaXMuTGlzdCxjLlR4dFt4LnR5cGVdKSxlPU9iamVjdC5zaXplKHgudmFsdWUpLGY9IiI7MT09eC5zdGF0ZSYmYy5TaG93SXRlbXM/Zj1jLlNob3dJdGVtczooZj1kWzBdK2UrZFsxXSsiICIsMj09eC5zdGF0ZSYmKGY9JzxzcGFuIGNsYXNzPSJvNDAiPicrZisiPC9zcGFuPiIpKTt2YXIgZz0wLGg9MDtyZXR1cm4gT2JqZWN0LmtleXMoeC52YWx1ZSkuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYixjPTA7KGI9eC52YWx1ZVthXSkmJihjPShiLmRhdGE/Yi5kYXRhLmxlbmd0aC80KjN8MDowKXx8K2IubGVuZ3RofHwrYi5zaXplfHwwLGcrPWMsaCs9Kyh4LnZhbHVlW2FdLmVuY29kZWRfbGVuZ3RofHxjKSl9KSxnJiYoZj1bJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXI1IiBzdHlsZT0id2lkdGg6ezR9OyI+ezF9PC9kaXY+JywnPGRpdiBjbGFzcz0iZGliIHZhdCB3OTAgdGFyIG85MCI+ezJ9PC9kaXY+JywnPGRpdiBjbGFzcz0iZGliIHZhdCB3OTAgcGw1IHRhbCBvNjAgZnM5NSI+ezN9PC9kaXY+J10uam9pbigiIikuYXNzaWduKGYsaShnKSxnIT1oP2koaCk6IiIsMj09eC5zdGF0ZT8yNzItYy5sYWJlbFdpZHRoKyJweCI6ImF1dG8iKSksZjtmdW5jdGlvbiBpKHgpe3JldHVybiB4LmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYiIpLnJlcGxhY2UoL14oWzAtOVwuXSspKFthLXpdKykkL2ksJyQxPGRpdiBjbGFzcz0idzM1IGRpYiB0YWwgcGwyIj4kMjwvZGl2PicpfX0sd2F0Y2g6WyIuaWtleSIsIi5idG4tanNvbiJdfX0sc3R5bGU6eyI+Lml2YWx1ZT4uaWxpc3Q+Lmlyb3ciOmZ1bmN0aW9uKCl7dmFyIHg9MjUwLGE9eC0yNztyZXR1cm57IiAuaW5hdiI6InBhZGRpbmctbGVmdDoiK2ErInB4OyIsIiAuaW5hdj4uaWtleSI6Im1hcmdpbi1sZWZ0Oi0iK2ErInB4O3dpZHRoOiIrYSsicHg7IiwiPi5pbmF2IjoicGFkZGluZy1sZWZ0OiIreCsicHg7IiwiPi5pbmF2Pi5pa2V5IjoibWFyZ2luLWxlZnQ6LSIreCsicHg7d2lkdGg6Iit4KyJweDsiLCIgLmlrZXkiOiJjdXJzb3I6bm9ybWFsOyIsIiAuaWFjdCAuYnV0dG9uIjoicGFkZGluZzogMC4xNWVtIDAgMC4wNWVtIDA7IiwiIC5pZGVzYz5kaXYiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyJ9fSwiIC5pdmFsdWUgLmluYXYiOiJtYXJnaW46MDsiLCIgLm5vY29tcCAuc2l6ZWNvbXAiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9LEhUTUw6JzxkaXYgY2xhc3M9ImluYXYiPjxkaXYgY2xhc3M9ImlrZXkgaWtleXRyZWUiPjwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIGNwIj7igJM8L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUgaW11bHRpIGhpZGUiPjxkaXYgY2xhc3M9ImlsaXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gaWQ9ImJ0bi1iNjQiIGNsYXNzPSJidXR0b24iIHRpdGxlPSJGZXRjaCBhdHRhY2htZW50c+KAmSBiYXNlNjQiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLWFyY2hpdmUiPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGJ1dHRvbiBoaWRlIiB0aXRsZT0iRWRpdCBhcyBKU09OIj48c3BhbiBjbGFzcz0iYm9sZCBkaWIgdmF0IG10LTEgbWIxIj57JiM4MjAyO308L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXVwbG9hZCIgY2xhc3M9ImJ1dHRvbiIgdGl0bGU9IkFkZCBhdHRhY2htZW50Ij48c3BhbiBjbGFzcz0iZmktcGFwZXJjbGlwIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIiAgdGl0bGU9IkRlbCBhbGwgYXR0YWNobWVudHMiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXRyYXNoIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48L2Rpdj4nLE5vZGVVcGRhdGVkOmZ1bmN0aW9uKCl7fSxBZGQ6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MKX0sZGF0YTp7ZmlsZXM6W119LHVpOnsiI2ZsaXN0Ijp7YmluZDoiZmlsZXMiLGxpc3Q6Ij5kaXYiLG1lcmdlOiExLGlkOlsibmFtZSJdLGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4Lm5hbWUseC5jb250ZW50X3R5cGUseC5kYXRhLmxlbmd0aCx4LmRhdGEudG8oMTAwKV0pfSxtYW5pZmVzdDp7dWk6eyIjZm5hbWUiOiJuYW1lIiwiI2ZzaXplIjpmdW5jdGlvbih4LGEpe3JldHVybih4LmRhdGEubGVuZ3RoLzQqM3wwKS5ieXRlcygxKS5yZXBsYWNlKC9eKFswLTlcLl0rKShbYS16XSspJC9pLCckMTxkaXYgY2xhc3M9InczNSBkaWIgdGFsIHBsMiI+JDI8L2Rpdj4nKX0sIiNmdHlwZSI6ImNvbnRlbnRfdHlwZSIsIiNidG4tZmRlbCI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnJlbW92ZSgpfSxldmVudHM6ImNsaWNrLm15In19fX0sIiNidG4tYXR0YWRkIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZmlsZXMubGVuZ3RofX0sd2F0Y2g6IiNmbGlzdCJ9LCIjYnRuLWF0dGNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfSwiI211cGxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hJiZhKXtmb3IodmFyIGM9dGhpcyxkPWJbMF0uZmlsZXMsZT1bXSxmPXguZmlsZXMucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYS5uYW1lXT1hLHh9LHt9KSxnPVtdLGg9MDtoPGQubGVuZ3RoO2grKyllLnB1c2goZFtoXSk7ZS5mb3JFYWNoKGZ1bmN0aW9uKHgsYSl7aWYoeCl7dmFyIGIsYyxkPXtuYW1lOngubmFtZSxjb250ZW50X3R5cGU6eC50eXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn0sZT0kLkRlZmVycmVkKCksaD1uZXcgRmlsZVJlYWRlcixpPVtdO2gub25sb2FkPWZ1bmN0aW9uKGEpe2M9bmV3IFVpbnQ4QXJyYXkoYS50YXJnZXQucmVzdWx0KTtmb3IodmFyIGc9MDtnPGMubGVuZ3RoO2crKylpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShjW2ddKSk7Yj13aW5kb3cuYnRvYShpLmpvaW4oIiIpKSxkLmRhdGE9YixmW3gubmFtZV09ZCxlLnJlc29sdmUoKX0saC5yZWFkQXNBcnJheUJ1ZmZlcih4KSxnLnB1c2goZS5wcm9taXNlKCkpfX0pLFEuYWxsU2V0dGxlZChnKS50aGVuKGZ1bmN0aW9uKCl7eC5maWxlcz1PYmplY3QudmFsdWVzKGYpLGIud3JhcCgiPGZvcm0+IikuY2xvc2VzdCgiZm9ybSIpLmdldCgwKS5yZXNldCgpLGIudW53cmFwKCJmb3JtIiksYy5teS5yZWNhbGMoIiNmbGlzdCIpfS5kZWJvdW5jZSgwKSkudGhlbihmdW5jdGlvbigpe2MubXkuZmluZCgiI2J0bi1hdHRhZGQiKS5mb2N1cygpfS5kZWJvdW5jZSgxMDApKX19fX0sSFRNTDonPGRpdiBjbGFzcz0iZnMxMzAgbGgxNjAgYm9sZGVyIj5BZGQgZmlsZXM8L2Rpdj48ZGl2IGlkPSJmbGlzdCIgY2xhc3M9ImZzOTUiPjxkaXYgY2xhc3M9ImZyb3cgIG1iNiI+PGRpdiBpZD0iYnRuLWZkZWwiIGNsYXNzPSJyZWQyIHcyMCBkaWIgdmF0IHB0MyBjcCI+4pyVPC9kaXY+PGRpdiBjbGFzcz0idzIyMCBkaWIgdmF0Ij48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9IncxMDBwIiBpZD0iZm5hbWUiIHBsYWNlaG9sZGVyPSJGaWxlIHBhdGgvbmFtZS5leHQiPjwvZGl2PjxkaXYgaWQ9ImZzaXplIiBjbGFzcz0idzkwIGRpYiB2YXQgcHQzIGdyYXkgdGFyIj48L2Rpdj48ZGl2IGlkPSJmdHlwZSIgY2xhc3M9IncxNTAgZGliIHZhdCBwdDMgZ3JheSBudyBlbGwiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im10MTAiPjxpbnB1dCBpZD0ibXVwbG9hZCIgdHlwZT0iZmlsZSIgbXVsdGlwbGUgY2xhc3M9ImgzMCB3MTAwcCBjcCIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTtvcGFjaXR5OjA7Ij48ZGl2IGNsYXNzPSJoMzAgcHNldWRvbGluayB0ZG4iPlNlbGVjdCBmaWxlcyB0byBhdHRhY2guLi48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtdDUgcHQxMCBidGQiPjxidXR0b24gaWQ9ImJ0bi1hdHRhZGQiIGNsYXNzPSJtYXJrZm9jdXMgZ3JlZW4gbXIyIj5BdHRhY2ggZmlsZXM8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tYXR0Y2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj5DYW5jZWw8L2J1dHRvbj48L2Rpdj4nfX0sJGZpbGU6e2lkOiJTeXMuSlNPTi5GaWxlIixkYXRhOnt9LHBhcmFtczp7ZGVsYXk6MH0sTGlzdDpbXSxDTToidGV4dC9qYXZhc2NyaXB0IixyZXY6IiIsaW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGE7eC5hZGRDbGFzcygiZWQtbm9kZS0iK2IuUGF0aFNpZyhjLnBhdGgsYy5rZXkpKSx4Lmh0bWwoYi5IVE1MLmFzc2lnbih7aWRlc2M6Yi5pZGVzYyhjKX0pKSxiLnJldj1iLlJUKCJNUm9vdCIpKCkubXkoImRhdGEiKS5yZXZ9LFNob3dJdGVtczpudWxsLGlkZXNjOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LnZhbHVlLGM9e3NpemU6ZCgoYi5kYXRhP2IuZGF0YS5sZW5ndGgvNCozfDA6MCl8fCtiLmxlbmd0aHx8K2Iuc2l6ZXx8MCksc2l6ZXg6Yi5lbmNvZGVkX2xlbmd0aD9kKCtiLmVuY29kZWRfbGVuZ3RoKToiIixtaW1lOihiLmNvbnRlbnRfdHlwZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpLmVzY2FwZUhUTUwoKSxyZXZwb3M6Yi5kaWdlc3QmJm51bGwhPWIucmV2cG9zPyJyOiAgIitiLnJldnBvczphLkhUTUxuZXd9O3JldHVybiBhLkhUTUxyb3cuYXNzaWduKGMpO2Z1bmN0aW9uIGQoeCl7cmV0dXJuIHguYnl0ZXMoMSkucmVwbGFjZSgvXihbMC05XC5dKykoW2Etel0rKSQvaSwnJDE8ZGl2IGNsYXNzPSJ3MzUgZGliIHRhbCBwbDIiPiQyPC9kaXY+Jyl9fSx1aTp7Ii5pa2V5Ijp7ZGVsYXk6MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSl7dmFyIGI9dGhpcyxjPWVuY29kZVVSSUNvbXBvbmVudCxkPSgvXih8XHMrKSQvLnRlc3QoeC5rZXkpPyciJyt4LmtleSsnIic6eC5rZXkudHJ1bmNhdGUoNTAsL1wvLy50ZXN0KHgua2V5KT8ibGVmdCI6Im1pZGRsZSIsIuKApiIpKS5yZXBsYWNlKC9cLy9nLCLigIkv4oCJIikuZXNjYXBlSFRNTCgpO2lmKG51bGw9PXgudmFsdWUucmV2cG9zKXJldHVybiBkO3ZhciBlPWIuUlQoImRhdGEiKSxmPShbZS5iYXNldXJsLnJlcGxhY2UoL1wvJC8sIiIpLGMoZS5kYm5hbWUpLGMoZS5kb2MuX2lkKSx4LmtleV0uam9pbigiLyIpKyh0aGlzLnJldj8iP3Jldj0iK3RoaXMucmV2OiIiKSkuZXNjYXBlSFRNTCgpO3JldHVybic8YSBocmVmPSJ7MX0iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGRuIj57Mn08L2E+Jy5hc3NpZ24oZixkKX19fSwiI2J0bi1kb3dubG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPXgudmFsdWUucmV2cG9zKXt2YXIgYz10aGlzLlJUKCJkYXRhIiksZD1lbmNvZGVVUklDb21wb25lbnQ7Yi5hdHRyKCJkb3dubG9hZCIseC5rZXkuc3BsaXQoIi8iKS5sYXN0KCkpLGIuYXR0cigiaHJlZiIsW2MuYmFzZXVybC5yZXBsYWNlKC9cLyQvLCIiKSxkKGMuZGJuYW1lKSxkKGMuZG9jLl9pZCkseC5rZXldLmpvaW4oIi8iKSsodGhpcy5yZXY/Ij9yZXY9Iit0aGlzLnJldjoiIikpfX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT14LnZhbHVlLnJldnBvc319fSwiI2J0bi1maWxlZGl0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9eC52YWx1ZS5yZXZwb3Mpe3ZhciBjPXRoaXMuUlQoImRhdGEiKSxkPWVuY29kZVVSSUNvbXBvbmVudDtiLmF0dHIoImhyZWYiLFsiIyIrZChjLmRibmFtZSksZChjLmRvYy5faWQpLGQoeC5rZXkpXS5qb2luKCIvIikpfX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3ZhciBiPXgudmFsdWUuY29udGVudF90eXBlO3JldHVybiBudWxsPT14LnZhbHVlLnJldnBvc3x8dGhpcy5yZXZ8fCEoL150ZXh0XC8uKi8udGVzdChiKXx8L1wvKGpzb258amF2YXNjcmlwdHx4bWx8c3ZnKS8udGVzdChiKSl9fX19LEhUTUxyb3c6JzxkaXYgY2xhc3M9Inc5MCB0YXIgbzkwIHNpemVmdWxsIj57c2l6ZX08L2Rpdj48ZGl2IGNsYXNzPSJ3OTAgcGw1IHRhbCBvNjAgZnM5NSBzaXplY29tcCI+e3NpemV4fTwvZGl2PjxkaXYgY2xhc3M9IncyMDAgcHIxMCBudyBlbGwgbzYwIGZzOTUiPnttaW1lfTwvZGl2PjxkaXYgY2xhc3M9Im82MCBwdDIgZnM5NSI+e3JldnBvc308L2Rpdj4nLEhUTUxuZXc6JzxzcGFuIGNsYXNzPSJmaS1idXJzdC1uZXcgb3JhbmdlIG1sLTMiPiBOZXc8L3NwYW4+JyxIVE1MOic8ZGl2IGNsYXNzPSJpbmF2Ij48ZGl2IGNsYXNzPSJpa2V5IHhncmF5IGZzMTAwIj57aWtleX08L2Rpdj48ZGl2IGNsYXNzPSJpZGVzYyB3NDUwIj57aWRlc2N9PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaWFjdCBidXR0b25zIj48YnV0dG9uIGNsYXNzPSJidG4tdGFrZW91dCBidXR0b24iIHRpdGxlPSJWaWV3IGFzIEpTT04iPjxzcGFuIGNsYXNzPSJmaS1zaG9wcGluZy1iYWcgZnM5NSI+PC9zcGFuPjwvYnV0dG9uPjxhIGlkPSJidG4tZmlsZWRpdCIgY2xhc3M9ImJ1dHRvbiBmczkwIHZhdCBwdDMgcGIwIGhpZGUiIHRpdGxlPSJFZGl0IGF0dGFjaG1lbnQiPjxzcGFuIGNsYXNzPSJmaS1wZW5jaWwiPjwvc3Bhbj48L2E+PGEgaWQ9ImJ0bi1kb3dubG9hZCIgY2xhc3M9ImJ1dHRvbiBmczkwIHZhdCIgdGl0bGU9IkRvd25sb2FkIGZpbGUiIGRvd25sb2FkPSIgIj48c3BhbiBjbGFzcz0iZmktZG93bmxvYWQiPjwvc3Bhbj48L2E+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIHZhdCIgIHRpdGxlPSJEZWwgbm9kZSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PC9kaXY+J319LGpzb250ZXh0Ont9fSwkYWJvdXQ6e2lkOiJjdy5QaG90b24uJGFib3V0IixwYXJhbXM6e3Jlc3R5bGU6MjAsc3RyaWN0OiEwfSxpbmhlcml0OlsiU2V0VGhlbWUiXSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuImFib3V0In0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iQWJvdXQgdGhpcyBub2RlIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYXx8MSE9eC5sZW5ndGh8fCJfYWJvdXQiIT14WzBdP251bGw6e3RpdGxlOiJBYm91dCJ9fSxsYW5nOnt9LEpTT046ITEsQmxvYjohMSxVcmw6ITEsZGF0YTp7cGhvdG9uOnt9LHNlcnZpY2U6e2NvdWNoZGI6Ik5vIG1lc3NhZ2UiLHZlcnNpb246Ij8/Iix2ZW5kb3I6e25hbWU6InVua25vd24iLHZlcnNpb246IiIsdmFyaWFudDoiIn0sZmVhdHVyZXM6W119LGRkb2M6e30sY2ZnOnttYXhXaWR0aDoiMjAwMCIsc2Nyb2xsU3BlZWQ6IjMiLGxpc3RDb2xzOltdLHJvb3RSZXBvOiIiLHVwZGF0ZToicmVtaW5kIixmb250OiJhdXRvIixmb250V2VpZ2h0OiIzMDAiLGZvbnRDb2RlOiJhdXRvIixpY29uOiIiLG1heFRhYnM6MTUsbG9vcEFjdGl2ZVRhc2tzOjUscGluZ1Nlc3Npb246MCxncm91cGluZzpbXSx0aGVtZToiIn19LExpbms6JzxhIGhyZWY9InsxfSIgdGFyZ2V0PSJfYmxhbmsiIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlciIgY2xhc3M9InRkbiBudyBtbDQiPnsyfTwvYT4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSQuRGVmZXJyZWQoKTtyZXR1cm4gYS5Vcmw9YS5QaG8oKS5Eb3dubG9hZFVSTCwkLmV4dGVuZCghMCxhLmRhdGEuY2ZnLGEuUGhvKCJDZmciKSksWyIvL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2Nkbi5jbG91ZHdhbGwubWUvcGhvdG9uLyJdLmluZGV4T2YoYS5kYXRhLmNmZy5yb290UmVwbyk+LTEmJihhLmRhdGEuY2ZnLnJvb3RSZXBvPSJodHRwczovL2Nkbi5jbG91ZHdhbGwubWUvcGhvdG9uLyIpLGEucmVsb2FkREJMaXN0PWEucmVsb2FkREJMaXN0LmRlYm91bmNlKDUwMCksYS5SZXEoe3VybDpbXSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YVR5cGU6Impzb24ifSkudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZCghMCxhLmRhdGEuc2VydmljZSx4KX0pLmFsd2F5cyhmdW5jdGlvbigpe3guaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKSksYS5uaWNlU2Nyb2xsKHguZmluZCgiI2FhbGwiKSksYi5yZXNvbHZlKCl9KSxiLnByb21pc2UoKX0sdWk6eyIjYXBobyI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5QaG8oIlZlcnNpb24iKS5yZXBsYWNlKC9bXjAtOVwuXS9nLCIiKX0sIiNhcGhvYnVpbGQiOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJidWlsZCIpLGI9RGF0ZS5jcmVhdGUoeC5QaG8oInN0YW1wIil8fERhdGUubm93KCkpLmZvcm1hdCgie3l5eXl9LXtNTX0te2RkfSIpO3JldHVybiBhPyc8c3BhbiBjbGFzcz0iZ3JheSI+QnVpbGQgJythKyIsICIrYisiPC9zcGFuPiI6IiJ9LCIjYXBob2FkZCI6ZnVuY3Rpb24oKXt2YXIgeD0od2luZG93LkRET0N8fHthcHBzOntlZDp7aWQ6ImN3LlN5cy5KU09OIn19fSkuYXBwcyxhPVtdO3JldHVybiBPYmplY3Qua2V5cyh4KS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPXhbYl07Yy5pZCYmIWMuaWQuc3RhcnRzV2l0aCgiY3cuUGhvdG9uIikmJmEucHVzaChbKGMubmFtZXx8Yy5pZCkrIsKgIixjLlZlcnNpb258fGMudmVyc2lvbnx8bnVsbCxjLmJ1aWxkPyIuIitjLmJ1aWxkOm51bGxdLmNvbXBhY3QoKS5qb2luKCIiKSl9KSxhLmpvaW4oIjxicj4iKX0sIiNhcGhvbGlicyI6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5QaG8oIkxpYnNVc2VkIik7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYVtiXT94LkxpbmsuYXNzaWduKGFbYl0sYik6JzxzcGFuIGNsYXNzPSJ0ZG4gbncgbWw0Ij4nK2IrIjwvc3Bhbj4ifSkuam9pbigiLCAiKX0sIiNidG4tc2hvd2xpYnMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtudWxsIT1hJiYoYi5hZGRDbGFzcygiaGlkZSIpLGIubmV4dCgpLnJlbW92ZUNsYXNzKCJoaWRlIikpfSxldmVudHM6ImNsaWNrLm15In0sIiNhcGhvZm9udHMiOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJGb250c1VzZWQiKTtyZXR1cm4gT2JqZWN0LmtleXMoYSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBhW2JdP3guTGluay5hc3NpZ24oYVtiXSxiKTonPHNwYW4gY2xhc3M9InRkbiBudyBtbDQiPicrYisiPC9zcGFuPiJ9KS5qb2luKCIsICIpfSwiI2F2ZXIiOiJzZXJ2aWNlLnZlcnNpb24iLCIjYXZlbmRvciI6ZnVuY3Rpb24oeCl7dmFyIGE9eC5zZXJ2aWNlLnZlbmRvcjtyZXR1cm4oYS5uYW1lKyIgIithLnZlcnNpb24rKGEudmFyaWFudD8iICgiK2EudmFyaWFudCsiKSI6IiIpKS5lc2NhcGVIVE1MKCl9LCIjYW5vZGUiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMuUGhvKCJCYXNlIik7cmV0dXJuJzxhIGhyZWY9InsxfSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iPnsyfSB7M308L2E+Jy5hc3NpZ24oYSwnPHNwYW4gY2xhc3M9ImZzOTAgJysoL15odHRwczovLnRlc3QoYSk/ImZpLWxvY2sgYmx1ZTIiOiJmaS11bmxvY2sgcmVkMiIpKyciPjwvc3Bhbj4nLGEucmVwbGFjZSgvXmh0dHBbc10/OlwvXC98XC8vZywiIikuZXNjYXBlSFRNTCgpKX0sIiNhd2VsY29tZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguc2VydmljZS5jb3VjaGRiLmVzY2FwZUhUTUwoKX0sIiNhZmVhdHVyZXMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz14LnNlcnZpY2UuZmVhdHVyZXM7cmV0dXJuIE9iamVjdC5pc0FycmF5KGMpJiZjLmxlbmd0aD8oYi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaGlkZSIpLHguc2VydmljZS5mZWF0dXJlcy5qb2luKCIsICIpLmVzY2FwZUhUTUwoKSk6KGIucGFyZW50KCkuYWRkQ2xhc3MoImhpZGUiKSwi4oCUIil9fSwiI2FjbHVzdGVyIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcy5QaG8oIk1lbWJlcnNoaXAiKS5jbHVzdGVyX25vZGVzfHxbXTtyZXR1cm4gYi5wYXJlbnQoKS50b2dnbGVDbGFzcygiaGlkZSIsYy5sZW5ndGg8MiksYy5sZW5ndGg/dGhpcy5sYW5nLlRYVF9DTFVTVEVSKGMubGVuZ3RoKToi4oCUIn19LCIjYXBlcmZ0ZXN0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbD09YSYmYi5hdHRyKCJocmVmIix3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdLnJlcGxhY2UoL2luZGV4Lmh0bWwkLywiIikucmVwbGFjZSgvXC8kLywiIikrIi9wZXJmdGVzdC5odG1sIil9LGNzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLlBobygiX2NvbXBpbGVkIil8fC0xPT0oY3cubWUoInJvbGVzIil8fFtdKS5pbmRleE9mKCJfYWRtaW4iKX19fSwiI2hpZGVjb3VjaGFwcCI6e2Nzczp7aGlkZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLlBobygiX2NvbXBpbGVkIil8fC0xPT0oY3cubWUoInJvbGVzIil8fFtdKS5pbmRleE9mKCJfYWRtaW4iKX19fSwiI2J0bi1hZGwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpczskLm15Lm1vZGFsKHttYW5pZmVzdDokLmV4dGVuZCghMCx7bGFuZzpiLmxhbmcsUGhvOmIuUGhvLFJlcTpiLlJlcX0sYi5Eb3dubG9hZCksZGF0YTp7fSxnbG9iYWw6ITAsc2NyZWVuOiEwLGVzYzohMCxlbnRlcjohMCxjc3M6InAyNSB0YWMiLHdpZHRoOjMwMH0pfX0sZXZlbnRzOiJjbGljay5teSJ9LCIjc2ZvbnQiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuc2VsZWN0Mih4LHtkYXRhOlt7aWQ6ImF1dG8iLHRleHQ6IkF1dG8ifSx7aWQ6IictYXBwbGUtc3lzdGVtJywnQmxpbmtNYWNTeXN0ZW1Gb250JyIsdGV4dDoiQXBwbGUgc3lzdGVtIGZvbnQifSx7aWQ6IidTZWdvZSBVSSciLHRleHQ6IlNlZ29lIFVJIn0se2lkOiInSGVsdmV0aWNhIE5ldWUnLEhlbHZldGljYSIsdGV4dDoiSGVsdmV0aWNhIn0se2lkOiJVYnVudHUiLHRleHQ6IlVidW50dSJ9LHtpZDoiVGFob21hIix0ZXh0OiJUYWhvbWEifSx7aWQ6IkNvdXNpbmUiLHRleHQ6IkNvdXNpbmUgKG1vbm9zcGFjZWQpIn1dLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImNmZy5mb250In0sIiNzdGhlbWUiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX1RIRU1FKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP1t4LmNmZy50aGVtZSsiIl06KHguY2ZnLnRoZW1lIT1hKyIiJiYoeC5jZmcudGhlbWU9YSsiIix0aGlzLlNldFRoZW1lLmRlbGF5KDUsYSsiIikpLGEpfX0sIiNzZndlaWdodCI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfRldFSUdIVCl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT9beC5jZmcuZm9udFdlaWdodCsiIl06KHguY2ZnLmZvbnRXZWlnaHQ9YSsiIixhKX19LCIjc2Nmb250Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7ZGF0YTpbe2lkOiJhdXRvIix0ZXh0OiJBdXRvIn0se2lkOiJDb3VzaW5lIix0ZXh0OiJDb3VzaW5lIn0se2lkOiJNb25hY28iLHRleHQ6Ik1vbmFjbyJ9LHtpZDoiQ29uc29sYXMiLHRleHQ6IkNvbnNvbGFzIn1dLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImNmZy5mb250Q29kZSJ9LCIjc2NvbHMiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh7dGFnczp0aGlzLmxhbmcuVEFHX0NPTFN9KX0sYmluZDoiY2ZnLmxpc3RDb2xzIixjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIWN3Lm1lKCl9fX0sIiNzZ3JvdXAiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX0dST1VQKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiZhKyIiIT14LmNmZy5ncm91cGluZysiIiYmKHguY2ZnLmdyb3VwaW5nPWEsdGhpcy5yZWxvYWREQkxpc3QoKSkseC5jZmcuZ3JvdXBpbmd9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hY3cubWUoKX19fSwiI3NzY3JvbGwiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncygkLmV4dGVuZCh7dGFnc2hpbToiIixncm91cHNoaW06IiJ9LHRoaXMubGFuZy5UQUdfU0NST0xMKSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnNjcm9sbFNwZWVkPWErIiJ8fCIyIiksW3guY2ZnLnNjcm9sbFNwZWVkKyIiXX0sY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuUGhvKCJfY29tcGlsZWQiKXx8dGhpcy5QaG8oImlPUyIpfHx0aGlzLlBobygiaXNNYWMiKXx8dGhpcy5QaG8oImlzV2ViS2l0Iil9fX0sIiNzcGluZyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKCQuZXh0ZW5kKHt0YWdzaGltOiIiLGdyb3Vwc2hpbToiIn0sdGhpcy5sYW5nLlRBR19QSU5HKSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnBpbmdTZXNzaW9uPSsoYSsiIil8fDApLFt4LmNmZy5waW5nU2Vzc2lvbisiIl19fSwiI3Nwb2xsIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcubG9vcEFjdGl2ZVRhc2tzPWlzTmFOKGEpPzU6KDB8K2EpLmNsYW1wKDEsMzYwMCkpLHguY2ZnLmxvb3BBY3RpdmVUYXNrcysiIn0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiFjdy5tZSgpfX19LCIjc3RhdHNwb2xsIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5jZmcuc3RhdHNSZWZyZXNoPWlzTmFOKGEpPzEwOigwfCthKS5jbGFtcCg1LDEyMCkpLHguY2ZnLnN0YXRzUmVmcmVzaCsiIn0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiFjdy5tZSgpfX19LCIjc3JlcG8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmNmZy5yb290UmVwbz1hLnJlcGxhY2UoL1xzL2csIiIpKSx4LmNmZy5yb290UmVwb30sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLlBobygiX2NvbXBpbGVkIil8fCEoIXdpbmRvdy5ERE9DfHwhd2luZG93LkRET0Muc2V0dGluZ3Mucm9vdFJlcG8pfHwhY3cubWUoKX19fSwiI3N1cGQiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncygkLmV4dGVuZCghMCx7fSx0aGlzLmxhbmcuVEFHX1VQRCx7dGFnc2hpbToiIixncm91cHNoaW06IiJ9KSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHguY2ZnLnVwZGF0ZT1hKyIifHwicmVtaW5kIiksW3guY2ZnLnVwZGF0ZSsiIl19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hY3cubWUoKX19fSwiI3NpY29uIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiB4LmNmZy5pY29uP3guY2ZnLmljb246dGhpcy5QaG8oImZpbGVzIilbImZhdmljb24ucG5nIl0udXJsfSx3YXRjaDpbIiNidG4tcmVzZXRpY29uIl19LCIjYnRuLXNldGljb24iOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLm15Lm1vZGFsKCIjYnRuLXNldGljb24iLHttYW5pZmVzdDpiLkNyb3BwZXIsZ2xvYmFsOiEwLGNzczoicDI1IixzY3JlZW46ITB9KS50aGVuKGZ1bmN0aW9uKGEpe3guY2ZnLmljb249YS5kYXRhLGIubXkuY2hlY2soIiNzaWNvbiIpfSl9fSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hKHRoaXMuUGhvKCJfY29tcGlsZWQiKSYmKCF3aW5kb3cuRERPQ3x8IXdpbmRvdy5ERE9DLnNldHRpbmdzLmljb24pJiZjdy5tZSgpJiYheC5jZmcudGhlbWUpfX0sd2F0Y2g6WyIjc3RoZW1lIl19LCIjYnRuLXJlc2V0aWNvbiI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5jZmcuaWNvbj0iIil9LGV2ZW50czoiY2xpY2subXkiLHdhdGNoOlsiI3N0aGVtZSJdLGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiEodGhpcy5QaG8oIl9jb21waWxlZCIpJiYoIXdpbmRvdy5ERE9DfHwhd2luZG93LkRET0Muc2V0dGluZ3MuaWNvbikmJmN3Lm1lKCkmJiF4LmNmZy50aGVtZSl9fX0sIiNzcHJveHkiOntkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpe3ZhciBiPXRoaXM7JC5leHRlbmQoYi5QaG8oIkNmZyIpLHguY2ZnKSxiLlBobygiX2NvbXBpbGVkIikmJihiLlBobygiTHMiKSgiQ2ZnIix4LmNmZyksJC5uaWNlc2Nyb2xsLm9wdGlvbnMubW91c2VzY3JvbGxzdGVwPTI1KnguY2ZnLnNjcm9sbFNwZWVkLTUsJCgnbGlua1tyZWw9Imljb24iXScpLmF0dHIoImhyZWYiLHguY2ZnLmljb258fGIuUGhvKCJmaWxlcyIpWyJmYXZpY29uLnBuZyJdLnVybCkpLCQod2luZG93KS50cmlnZ2VyKCJyZXNpemUiKSwkLm15LnJhZGlvKCJwaG90b25fY2ZnX2NoYW5nZSIsT2JqZWN0LmNsb25lKHguY2ZnLCEwKSl9fSx3YXRjaDpbIiNzcmVwbyIsIiNzdXBkIiwiI3N0aGVtZSIsIiNzZm9udCIsIiNzY2ZvbnQiLCIjc2Z3ZWlnaHQiLCIjc3dpZHRoIiwiI3Nwb2xsIiwiI3N0YXRzcG9sbCIsIiNzaWNvbiIsIiNidG4tcmVzZXRpY29uIiwiI3Njb2xzIiwiI3Nncm91cCIsIiNzc2Nyb2xsIiwiI3NiYXIiLCIjc3BpbmciXSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX19fSwiI2F1cGQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGIsYyxkLGU9dGhpcyxmPWUuUGhvKCJDZmciKS5yb290UmVwbyxnPWUubGFuZyxoPSIiO2Q9L19kZXNpZ25cL3Bob3RvbiQvLnRlc3QoZik/e3ZlcnNpb246ZixwaG90b246ZisiP2F0dGFjaG1lbnRzPXRydWUifTp7dmVyc2lvbjpmKyJ2ZXJzaW9uLmpzb24iLHBob3RvbjpmKyJwaG90b24uanNvbiJ9LCQuYWpheCh7dXJsOmQudmVyc2lvbixkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2Z1bmN0aW9uIGEoeCl7dmFyIGE9eC5zcGxpdCgiLiIpO3JldHVybiAxZTEyKmFbMF0rMWU2KmFbMV0rKGlzTmFOKGFbMl0pPzk5OTk5OTorYVsyXSl9Yj1lLlBobygiVmVyc2lvbiIpKyIuIitlLlBobygiYnVpbGQiKSxjPXgudmVyc2lvbnx8IjAuMC4wIjt2YXIgZj1hKGIpLGo9YShjKTtyZXR1cm4gZj49aj8oZS5QaG8oIkxzIikoIkxhc3RVcGRhdGUiLHtyZW1pbmRlcjpEYXRlLm5vdygpfSksY3cubGliLm5vdGUoZy5NU0dfVVBEX05PTkVFRCkpOih4LnZlcnNpb25zJiYoaD14LnZlcnNpb25zLnNwbGl0KCIjIyIpLmNvbXBhY3QoITApLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50cmltKCl9KS5yZWR1Y2UoZnVuY3Rpb24oeCxiKXt2YXIgYz1iLnNwbGl0KC9cblxuLyk7cmV0dXJuIGEoY1swXSk+ZiYmeC5wdXNoKGMuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybic8bGkgY2xhc3M9Im1sMTciPnsxfTwvbGk+Jy5hc3NpZ24oeC5lc2NhcGVIVE1MKCkpfSkuam9pbigiXG4iKSkseH0sW10pLmpvaW4oIlxuIikpLmxlbmd0aCYmKGg9Zy5UWFRfVVBEX0ZFQVRVUkVTLmFzc2lnbihoKSksJC5hamF4KHt1cmw6ZC5waG90b24sZGF0YVR5cGU6Impzb24ifSkudGhlbihpKSl9KS5mYWlsKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZy5FUlJfVVBEQVRFX0NIRUNLLCJlcnJvciIpfSl9ZnVuY3Rpb24gaSh4KXskLm15Lm1vZGFsKHttYW5pZmVzdDplLlBobygiQ29uZmlybSIpLGRhdGE6e3RleHQ6Zy5UWFRfVVBELmFzc2lnbihiLGMsaCkseWVzOmcuQlROX1VQREFURSxubzpnLkJUTl9DQU5DRUwsY2FuY2VsOiIiLHVzZUJ1dHRvbnM6ITB9LHdpZHRoOjQ1MCxjc3M6InAyMCB4Z3JheSBsaDE3MCBwYjI1Iixmb2N1czoiI2J0bi15ZXMifSkudGhlbihmdW5jdGlvbihhKXtpZigieWVzIiE9YS5jbWR8fCF3aW5kb3cuRERPQylyZXR1cm4gZS5QaG8oIkxzIikoIkxhc3RVcGRhdGUiLHtyZW1pbmRlcjpEYXRlLm5vdygpfSksdm9pZCAwO3guX3Jldj1lLmRhdGEuZGRvYy5fcmV2fHx3aW5kb3cuRERPQy5fcmV2LHdpbmRvdy5ERE9DJiZ3aW5kb3cuRERPQy5zZXR0aW5ncyYmKHguc2V0dGluZ3M9d2luZG93LkRET0Muc2V0dGluZ3MpO3ZhciBiPXt9O09iamVjdC5rZXlzKHguX2F0dGFjaG1lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2JbYV09T2JqZWN0LnNlbGVjdCh4Ll9hdHRhY2htZW50c1thXSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSl9KSx4Ll9hdHRhY2htZW50cz1iLGUuUmVxKHt1cmw6W0RET0MuX2RifHwiX3Bob3RvbiIseC5faWRdLG1ldGhvZDoiUFVUIixkYXRhOkpTT04uc3RyaW5naWZ5KHgpLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToidGV4dCJ9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZy5NU0dfVVBEQVRFX09LLCIiLDZlMyksZS5QaG8oIkxzIikoIkxhc3RVcGRhdGUiLHtzdGFtcDpEYXRlLm5vdygpfSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjdy5saWIubm90ZShnLkVSUl9VUERBVEUuYXNzaWduKHgsYSksImVycm9yIil9KX0pfX0sZXZlbnRzOiJjbGljay5teSJ9fSxyZWxvYWREQkxpc3Q6ZnVuY3Rpb24oKXskLm15LnJhZGlvKCJkYmxpc3QiLE9iamVjdC5rZXlzKHRoaXMuUGhvKCJBbGwiKSkpfSxzdHlsZTp7IiBjb2RlIjoiZm9udC1zaXplOjEwMyU7IiwiICNzaWNvbiI6ZnVuY3Rpb24oeCl7dmFyIGE9d2luZG93LmRldmljZVBpeGVsUmF0aW98fC45OTk7cmV0dXJuIGE9PU1hdGgucm91bmQoYSk/ImltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWQ7IjoiIn19LEFjdGlvbnM6e2NsZWFuTFM6ZnVuY3Rpb24oKXtmb3IodmFyIHgsYSxiPWxvY2FsU3RvcmFnZSxjPVtdLGQ9MDtkPGIubGVuZ3RoO2QrKyl4PWIua2V5KGQpLGE9Yi5nZXRJdGVtKHgpLHguc3RhcnRzV2l0aCgiY3cuUGhvdG9uLlZpZXdTdGF0ZS4iKSYmKGEuaGFzKCdbIi52YWx1ZSInKXx8YS5oYXMoJ1siLmRvYyJdJykpJiZjLnB1c2goYi5rZXkoZCkpO2MuZm9yRWFjaCh4PT5iLnJlbW92ZUl0ZW0oeCkpfX0sSFRNTDpbJzxkaXYgY2xhc3M9InhncmF5IGFwcGhlaWdodCIgaWQ9ImFhbGwiIHN0eWxlPSJtYXJnaW46MCBhdXRvIDAgYXV0bzsgcGFkZGluZzo1MnB4IGNhbGMoNTAlIC0gNDI1cHgpIDIwcHggY2FsYyg1MCUgLSA0MjVweCk7Ij4nLCc8ZGl2IGNsYXNzPSJ3NDUwIGRpYiB2YXQiPicse3JvdzoiNDUwcHgiLGxhYmVsOiIxMjBweCIscm93Q3NzOiJteS1yb3cgcGIyIixsYWJlbENzczoibXktbGFiZWwgZnM5MCJ9LCc8ZGl2IGlkPSJhdGl0bGUiPicsJzxzcGFuIGNsYXNzPSJkaWIgZnMxNTAgbGgxNjAgcHIyMCIgc3R5bGU9Im1pbi13aWR0aDoxMjBweDsiPicsJ0NvdWNoREIgPHNwYW4gaWQ9ImF2ZXIiPjwvc3Bhbj4nLCI8L3NwYW4+IiwiPC9kaXY+IixbIntMX1VSTH0iLCJzcG4jYW5vZGUiXSxbIntMX0NMVVNURVJ9Iiwic3BuI2FjbHVzdGVyIl0sWyJ7TF9WRU5ET1J9Iiwic3BuI2F2ZW5kb3IiXSxbIntMX0NPVUNIfSIsInNwbiNhd2VsY29tZSJdLFsie0xfRkVBVH0iLCJzcG4jYWZlYXR1cmVzIl0sWyJ7TF9QRVJGfSIsJzxhIGlkPSJhcGVyZnRlc3QiIGNsYXNzPSJ0ZG4iIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiPicsJzxzcGFuIGNsYXNzPSJmaS1ncmFwaC1ob3Jpem9udGFsIGJsdWUyIGZzOTAiPjwvc3Bhbj4nLCImbmJzcDt7TF9QRVJGVEVTVH0iLCI8L2E+Il0sJzxkaXYgaWQ9ImF0aXRsZSIgY2xhc3M9Im10MjAiPicsJzxzcGFuIGNsYXNzPSJkaWIgZnMxNTAgbGgxNjAgcHI2IG1iMiIgc3R5bGU9Im1pbi13aWR0aDoxMjBweDsiPicsJ1Bob3RvbsKgPHNwYW4gaWQ9ImFwaG8iPjwvc3Bhbj4nLCI8L3NwYW4+IiwnPHNwYW4gaWQ9ImFwaG9idWlsZCI+PC9zcGFuPicsIjwvZGl2PiIse3Jvd0NzczoibXktcm93IHBiNiJ9LFsie0xfUEhPQUREfSIsInNwbiNhcGhvYWRkIl0sWyJ7TF9QSE9MSUJTfSIsInNwbiNidG4tc2hvd2xpYnMucHNldWRvbGluay50ZG4iLHt0eHQ6IlNob3cgbGlzdC4uLiJ9LCJzcG4jYXBob2xpYnMuZGliLnZhdC5tbC00LmhpZGUiXSxbIntMX1BIT0ZPTlRTfSIsInNwbiNhcGhvZm9udHMuZGliLnZhdC5tbC00Il0se3Jvd0NzczoibXktcm93IG10MTUgbWIyMCAifSwnPGRpdiBpZD0iaGlkZWNvdWNoYXBwIiBjbGFzcz0iaGlkZSI+JyxbIiAiLCc8YnV0dG9uIGlkPSJhdXBkIiBjbGFzcz0iZnMxMDAiPjxzcGFuIGNsYXNzPSJmaS1jbG91ZCBvNDAiPjwvc3Bhbj4ge0xfQ0hFQ0tfVVBEQVRFU33CoDwvYnV0dG9uPiddLHtyb3dDc3M6Im15LXJvdyBtdDIifSxbIiAiLCc8c3BhbiBjbGFzcz0iYmx1ZSBvNTAgZmktZG93bmxvYWQgZnM5NSBtcjIgZnM5MCI+PC9zcGFuPiA8c3BhbiBpZD0iYnRuLWFkbCIgY2xhc3M9InBzZXVkb2xpbmsgdGRuIj57TF9ETH08L3NwYW4+J10sWyIgIiwnPHNwYW4gY2xhc3M9ImJsdWUgbzYwIGZpLXNvY2lhbC1naXRodWIgbXIyIj48L3NwYW4+ICcsJzxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9lcm1vdXRoL2NvdWNoLXBob3RvbiIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiI+e0xfR0lUSFVCfTwvYT4nXSxbIiAiLCc8c3BhbiBjbGFzcz0iYmx1ZSBvNTAgZmktbGlnaHRidWxiIG1yMiI+PC9zcGFuPiAnLCc8YSBocmVmPSJodHRwczovL2Nsb3Vkd2FsbC5tZS9fZGVtby8jY3cvTWFuaWZlc3QvIVd5SmxaR2wwSWl3aVkzY3RVR2h2ZEc5dUxURmpZMlFpWFEtLSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIiByZWw9Im5vZm9sbG93IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiI+e0xfU09VUkNFU308L2E+J10sIjwvZGl2PiIse3Jvd0NzczoibXktcm93IG10MjAifSxbIiAiLCc8c3BhbiBjbGFzcz0iZ3JheSBmczkwIj4oYykgMjAyMiBlcm1vdXRoLiBQaG90b24gaXMgTUlUIGxpY2Vuc2VkLjwvc3Bhbj4nXSwiPC9kaXY+IiwnPGRpdiBjbGFzcz0idzM3MCBkaWIgdmF0IG1sMzAiPicse3JvdzoiMzcwcHgiLGxhYmVsOiIxMzBweCIscm93Q3NzOiJteS1yb3cgcGI5IixsYWJlbENzczoibXktbGFiZWwgZnM5MCB2YXQgcHQ5In0sJzxkaXYgaWQ9ImF0aXRsZSIgY2xhc3M9ImZzMTUwIGxoMTYwIHBiNiI+e1NfVElUTEV9PC9kaXY+JyxbIntTX1JFUE99IiwiaW5wI3NyZXBvLncxMDBwIl0sWyJ7U19VUER9IiwiZGl2I3N1cGQuZGliLnZhdC53MTAwcC5saDE4MC5wYjIubnciXSxbIntTX1RIRU1FfSIsImRpdiNzdGhlbWUuZGliLnZhdC53MTAwcC5saDE4MC5wYjEiXSxbIntTX0ZDRkFNSUxZfSIsImlucCNzY2ZvbnQudzEwMHAuZnMxMTAiXSxbIntTX0ZGQU1JTFl9IiwiaW5wI3Nmb250LncxMDBwLmZzMTEwIl0sWyJ7U19GV0VJR0hUfSIsImRpdiNzZndlaWdodC5kaWIudmF0LncxMDBwLmxoMTgwLnBiMSJdLFsie1NfU0NST0xMfSIsImRpdiNzc2Nyb2xsLmRpYi52YXQudzEwMHAubGgxODAucGIxIl0sWyJ7U19DT0xTfSIsImRpdiNzY29scy5kaWIudmF0LncxMDBwLmxoMTgwLnBiMSJdLFsie1NfR1JPVVB9IiwiZGl2I3Nncm91cC5kaWIudmF0LncxMDBwLmxoMTgwLnBiMS5udyJdLFsie1NfUElOR30iLCJkaXYjc3BpbmcuZGliLnZhdC53MTAwcC5saDE4MC5wYjMiXSxbIntTX1BPTEx9IiwibnVtI3Nwb2xsLnc2NSIse21pbjoiMSIsbWF4OiIzNjAwIixzdGVwOiIxIn0sIjxzcGFuPiBzPC9zcGFuPiJdLFsie1NfU1RBVFNfUE9MTH0iLCJudW0jc3RhdHNwb2xsLnc2NSIse21pbjoiNSIsbWF4OiIxMjAiLHN0ZXA6IjUifSwiPHNwYW4+IHM8L3NwYW4+Il0se2xhYmVsQ3NzOiJteS1sYWJlbCBmczkwIHB0OCJ9LFsie1NfSUNPTn0iLCc8aW1nIHN0eWxlPSJ3aWR0aDo2NHB4O2hlaWdodDo2NHB4OyIgY2xhc3M9ImRpYiB2YXQgYnIyIiBpZD0ic2ljb24iPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgcHQzIHBsMTAiPicsJzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiIgaWQ9ImJ0bi1zZXRpY29uIj57QlROX0lDT059PC9zcGFuPiA8YnI+JywnPHNwYW4gY2xhc3M9InBzZXVkb2xpbmsgdGRuIGhpZGUiIGlkPSJidG4tcmVzZXRpY29uIj57QlROX0lDT05fUkVTRVR9PC9zcGFuPiddLCc8ZGl2IGlkPSJzcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLCI8L2Rpdj4iXSxDcm9wcGVyOntwYXJhbXM6e3dpZHRoOjY4Nn0sZGF0YTp7ZmlsZW5hbWU6IiIsZGF0YToiIixjcm9wcGVkOiExLHNpemU6NjR9LGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0kLm15LmZvcm1nZW4oWyc8ZGl2IGNsYXNzPSJmbCBtcjIwIHRhYyB2YXQgYmctbGdyYXkiIHN0eWxlPSJ3aWR0aDo2MDBweDtoZWlnaHQ6NDUwcHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjQ1MHB4OyIgaWQ9ImNyb3AtZnJhbWUiPicsJzxpbWcgaWQ9InNvdXJjZSIgY2xhc3M9InZhbSIgc3R5bGU9Im1heC13aWR0aDo2MDBweDsgbWF4LWhlaWdodDo0NTBweDsgYmFja2dyb3VuZDp3aGl0ZSIgc3JjPSIiIC8+JywnPGRpdiBjbGFzcz0idzYwMCAgZGliIiBzdHlsZT0iaGVpZ2h0OjQ1MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MCI+JywnPHNwYW4gY2xhc3M9ImRpYiB2YW0gZnMxMTAgYnV0dG9uIj4nLCc8c3BhbiBjbGFzcz0iZmktcGhvdG8iPjxzcGFuIGNsYXNzPSJmczExMCI+ICZuYnNwO1NlbGVjdCBJbWFnZTwvc3Bhbj48L3NwYW4+JywiPC9zcGFuPiIsJzxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZSIgY2xhc3M9Inc2MDAgZGliIiBhY2NlcHQ9ImltYWdlL2pwZWcsaW1hZ2UvcG5nIiBzdHlsZT0iaGVpZ2h0OjQ1MHB4O2N1cnNvcjpwb2ludGVyO29wYWNpdHk6MDsgcG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowIj4nLCI8L2Rpdj4iLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3NjUgZGliIHZhdCIgaWQ9InhwcmV2aWV3Ij4nLCc8aW1nIGlkPSJpcHJldmlldyIgc3R5bGU9IndpZHRoOjY0cHg7aGVpZ2h0OjY0cHg7Ym9yZGVyOm5vbmU7IiBjbGFzcz0iYmctZ3JheTciPicse3JvdzoiNjVweCIscm93Q3NzOiJtdDUgZnM5MCB0YWMifSxbIiIsImJ0biNidG4tYXBwbHkudzY1LmdyZWVuIix7dmFsOiJTZXQifV0sIjwvZGl2PiIsJzxkaXYgY2xhc3M9Inc2NSBkaWIgdmF0IiBpZD0ieHdhcm4iPicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9ImhpZGUiPicsJzxjYW52YXMgaWQ9IngyIiB3aWR0aD0nKzIqYS5kYXRhLnNpemUrIiBoZWlnaHQ9IisyKmEuZGF0YS5zaXplKyI+PC9jYW52YXM+IiwnPGNhbnZhcyBpZD0icHJldmlldyIgY2xhc3M9ImJnLWxncmF5IiBzdHlsZT0id2lkdGg6NjRweDtoZWlnaHQ6NjRweCIgd2lkdGg9JythLmRhdGEuc2l6ZSsiIGhlaWdodD0iK2EuZGF0YS5zaXplKycgc3R5bGU9Im92ZXJmbG93OmhpZGRlbjsiPjwvY2FudmFzPicsIjwvZGl2PiIsJzxpbWcgaWQ9Im1hc2sxIiBjbGFzcz0iaGlkZSIgc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqWTBJaUJvWldsbmFIUTlJalkwSWlCMmFXVjNRbTk0UFNJd0xEQXNOalFzTmpRaVBnb2dJRHh3WVhSb0lHUTlJazB3TERNeUlFTXdMREFnTUN3d0lETXlMREFnUXpZMExEQWdOalFzTUNBMk5Dd3pNaUJETmpRc05qUWdOalFzTmpRZ016SXNOalFnUXpBc05qUWdNQ3cyTkNBd0xETXlJaUJtYVd4c1BTSWpSakJHTUVZd0lpOCtDand2YzNablBnbz0iPiddKTt4Lmh0bWwoYil9LHN0eWxlOnsiIC5qY3JvcC1ob2xkZXIiOiJkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUifSx1aTp7IiNmaWxlIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLGU9Yi5teSgpLnJvb3QsZj1lLmZpbmQoIiNwcmV2aWV3IiksZz1lLmZpbmQoIiNzb3VyY2UiKSxoPWUuZmluZCgiI3gyIiksaT1lLmZpbmQoIiNtYXNrMSIpLGo9e2s6MX0saz0iIjtmdW5jdGlvbiBsKGEpe2lmKHBhcnNlSW50KGEudyk+MCl7dmFyIGIsYyxlLGs9Z1swXSxsPWouayxtPWEudypsfDA7KGI9ZlswXS5nZXRDb250ZXh0KCIyZCIpKS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLGIuZmlsbFN0eWxlPSJ0cmFuc3BhcmVudCIsYi5maWxsUmVjdCgwLDAseC5zaXplLHguc2l6ZSksYi5kcmF3SW1hZ2UoaVswXSwwLDAseC5zaXplLHguc2l6ZSwwLDAseC5zaXplLHguc2l6ZSksYi5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsbT4yKnguc2l6ZT8oKGU9KGM9aFswXSkuZ2V0Q29udGV4dCgiMmQiKSkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJjb3B5IixlLmZpbGxTdHlsZT0idHJhbnNwYXJlbnQiLGUuZmlsbFJlY3QoMCwwLDIqeC5zaXplLDIqeC5zaXplKSxlLmRyYXdJbWFnZShrLGEueCpsfDAsYS55Kmx8MCxtLG0sMCwwLDIqeC5zaXplLDIqeC5zaXplKSxiLmRyYXdJbWFnZShjLDAsMCwyKnguc2l6ZSwyKnguc2l6ZSwwLDAseC5zaXplLHguc2l6ZSkpOmIuZHJhd0ltYWdlKGssYS54Kmx8MCxhLnkqbHwwLG0sbSwwLDAseC5zaXplLHguc2l6ZSkseC5kYXRhPWN3LmxpYi5pbWFnZShmKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuKCgyNTUqeHwwKT4+Mjw8MikvMjU1fSkuc2hhcnBlbigxLjYpLmJyaWdodG5lc3MoMS4xKS5wbmcoKSxkLm15LmZpbmQoIiNpcHJldmlldyIpLmF0dHIoInNyYyIseC5kYXRhKSx4LmNyb3BwZWQ9ITAsZC5teS5jaGVjaygiI2J0bi1hcHBseSIpfX1udWxsIT1hJiZhJiYoYz1iWzBdLmZpbGVzWzBdKSYmZnVuY3Rpb24oKXt4LmZpbGVuYW1lPWMubmFtZTt2YXIgYSxkPW5ldyBGaWxlUmVhZGVyLGU9W107ZC5vbmxvYWQ9ZnVuY3Rpb24oeCl7YT1uZXcgVWludDhBcnJheSh4LnRhcmdldC5yZXN1bHQpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGFbYl0pKTtrPXdpbmRvdy5idG9hKGUuam9pbigiIikpfSxkLm9ubG9hZGVuZD1mdW5jdGlvbigpe2cubG9hZChmdW5jdGlvbigpe2ouaz1nWzBdLm5hdHVyYWxXaWR0aC9nLndpZHRoKCl9KSxnLnJlbW92ZUNsYXNzKCJoaWRlIikuYXR0cigic3JjIiwiZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwiK2spLGouaz1nWzBdLm5hdHVyYWxXaWR0aC9nLndpZHRoKCksZy5KY3JvcCh7b25DaGFuZ2U6bCxvblNlbGVjdDpsLmRlYm91bmNlKDIwKSxhc3BlY3RSYXRpbzoxLG1pblNpemU6WzY0LDY0XSxhbGxvd01vdmU6ITB9LGZ1bmN0aW9uKCl7dGhpcy5hbmltYXRlVG8oWzEwMCwxMDAsMzAwLDMwMF0pfSksaz0iIixiLnBhcmVudCgpLmFkZENsYXNzKCJoaWRlIil9LGQucmVhZEFzQXJyYXlCdWZmZXIoYyl9KCl9fSwiI2J0bi1hcHBseSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ4LmNyb3BwZWQmJnRoaXMubXkuY29tbWl0KCl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5jcm9wcGVkfX19fX0sRG93bmxvYWQ6e2RhdGE6e2NmZzp7fX0sSlNPTjohMSxCbG9iOiExLFVybDohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5Vcmw9YS5QaG8oKS5Eb3dubG9hZFVSTCwkLmV4dGVuZCghMCxhLmRhdGEuY2ZnLGEuUGhvKCJDZmciKSkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSx4LnRoZW4oZnVuY3Rpb24oKXthLnJlYWRQaG90b24oKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjb25zb2xlLmxvZyh4LGEpfSl9LHVpOnsiI2FkbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD1jLlVybCxlPXdpbmRvdy5ERE9DO3JldHVybiBjLlBobygiX2NvbXBpbGVkIikmJmUmJiIiIT09ZD8hMT09PWQ/JzxzcGFuIGNsYXNzPSJ4Z3JheSI+JytjLmxhbmcuTF9ETFBSRVArIjwvc3Bhbj4iOihiLmF0dHIoImhyZWYiLGQpLGIuYXR0cigiZG93bmxvYWQiLCJwaG90b24tIitjLlBobygiVmVyc2lvbiIpLnJlcGxhY2UoL1teMC05XC5dL2csIiIpKyIuIitjLlBobygiYnVpbGQiKSsiLmpzb24iKSxjLmxhbmcuTF9ETF9MSU5LKToiTm8gYXBwIGNvZGUsIHNvcnJ5In19fSxIVE1MOlt7cm93Q3NzOiJteS1yb3cifSxbIiAiLCc8c3BhbiBjbGFzcz0iYmx1ZSBvNTAgZmktZG93bmxvYWQgZnM5NSBtcjIiPjwvc3Bhbj4gPGEgaHJlZj0iIiBpZD0iYWRsIiBjbGFzcz0idGRuIiBkb3dubG9hZD0icGhvdG9uLmpzb24iPjwvYT4nXV0scmVhZFBob3RvbjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT13aW5kb3cuRERPQztpZigheC5QaG8oIl9jb21waWxlZCIpfHwhYSlyZXR1cm4iIjt4LlVybHx8eC5SZXEoe3VybDpbYS5fZGJ8fCJfcGhvdG9uIixhLl9pZCx7YXR0YWNobWVudHM6ITB9XX0pLnRoZW4oZnVuY3Rpb24oYSl7eC5kYXRhLmRkb2M9YTt2YXIgYj0kLmV4dGVuZCghMCx7X2lkOiIiLG5hbWU6IiIsdmVyc2lvbjp4LlBobygiVmVyc2lvbiIpKyIuIit4LlBobygiYnVpbGQiKX0sT2JqZWN0LnJlamVjdChhLFsiX3JldiIsIl9hdHRhY2htZW50cyJdKSk7Yi5fYXR0YWNobWVudHM9e30sT2JqZWN0LmtleXMoYS5fYXR0YWNobWVudHMpLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9YS5fYXR0YWNobWVudHNbeF07Yi5fYXR0YWNobWVudHNbeF09e2NvbnRlbnRfdHlwZTpjLmNvbnRlbnRfdHlwZSxkYXRhOmMuZGF0YX19KSx4LkpTT049Yjtjdy5saWIuYmFzZTY0MmJsb2IoY3cubGliLmJhc2U2NChKU09OLnN0cmluZ2lmeShiLG51bGwsIiAgIikpLGZ1bmN0aW9uKGEpe3guQmxvYj1hLHguVXJsPVVSTC5jcmVhdGVPYmplY3RVUkwoYSkseC5QaG8oKS5Eb3dubG9hZFVSTD14LlVybCx4Lm15LmNoZWNrKCIjYWRsIil9LCJhcHBsaWNhdGlvbi9qc29uIil9KS5mYWlsKGZ1bmN0aW9uKCl7eC5Vcmw9IiIseC5teS5jaGVjaygiI2FkbCIpfSl9LHN0eWxlOnsiIjoiZm9udC1zaXplOjE4cHg7In19fSwkZXJyb3I6e2lkOiJjdy5QaG90b24uJGVycm9yIixsYW5nOnt9LGRhdGE6e2Vycm9yOiIiLHBhdGg6W10sbWVzc2FnZToiIn0saGFzaDpmdW5jdGlvbigpe3JldHVybiJlcnJvciJ9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIkVycm9yIHN3aXRjaGluZyAjIit0aGlzLmRhdGEucGF0aC5qb2luKCIvIil9LERCMmdvOiIiLERCbGlzdDpbXSxpc0NvdWNoM2FuZEFsbERCczohMSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5pc0NvdWNoM2FuZEFsbERCcz1hLlBobygiQ291Y2giKS52ZXI+PSIwMDMuIiYmY3cubWUoKSYmIWIucGF0aC5sZW5ndGgseC5odG1sKGEuSFRNTCksYS5pc0NvdWNoM2FuZEFsbERCcyYmeC50aGVuKGZ1bmN0aW9uKCl7eC5maW5kKCIjZS1kYm5hbWUiKS5vbigia2V5dXAubXkiLGZ1bmN0aW9uKGEpe3ZhciBiPWEua2V5Q29kZTsxMyE9YiYmMTAhPWJ8fGZ1bmN0aW9uKCl7eC5maW5kKCIjYnRuLWdvIikudHJpZ2dlcigiY2xpY2siKX0uZGVib3VuY2UoNTApKCl9KX0pfSx1aTp7IiNlLWxvZ28iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGhvKCJTVkciKS5sb2dvfSwiI2UtbXNnIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiLGM9dGhpcyxkPXguZXJyb3I7dHJ5e2I9T2JqZWN0LmlzU3RyaW5nKGQpP2QrIiI6SlNPTi5zdHJpbmdpZnkoZCl9Y2F0Y2goeCl7fXJldHVybiBifHwoYj1kKyIifHwiVW5kZWZpbmVkIGVycm9yIiksYj1iLnNwbGl0KCJ0byBpbml0aWFsaXplOiIpLmxhc3QoKS5jb21wYWN0KCkseC5tZXNzYWdlPWIsYy5pc0NvdWNoM2FuZEFsbERCcz9jLmxhbmcuVFhUX0MzX0FMTF9EQlNfNDAxOmMubGFuZy5UWFRfRVJSLmFzc2lnbigiIyIreC5wYXRoLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCksYil9LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmKGEubmFtZXx8dGhpcy5pc0NvdWNoM2FuZEFsbERCcykmJi9cczQwWzMxXVxzLy50ZXN0KHguZXJyb3IpJiYkLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9fX0sIiNlLWNkYm5hbWUiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXRoaXMuaXNDb3VjaDNhbmRBbGxEQnN9fX0sIiNlLWRibmFtZSI6e2RlbGF5OjIwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7dGhpcy5pc0NvdWNoM2FuZEFsbERCcyYmKHguYXR0cigicGxhY2Vob2xkZXIiLHRoaXMubGFuZy5QTENfREJOQU1FKSxhLkRCbGlzdD0oYS5QaG8oIkxzIikoIlRhYkNsb3NlSGlzdG9yeSIpfHxbXSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnRhYnN9KS5mbGF0dGVuKCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnBhdGh9KS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIHgubGVuZ3RoJiYiXyIhPXhbMF1bMF19KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF19KS51bmlxdWUoKS5zb3J0KCksYS5EQmxpc3QubGVuZ3RoJiZ4LmF1dG9jb21wbGV0ZSh7ZGVsYXk6MCxzb3VyY2U6YS5EQmxpc3QsY2xvc2U6ZnVuY3Rpb24oeCxiKXthLm15LmNoZWNrKCIjYnRuLWRibmFtZSIpfS5kZWJvdW5jZSgxMCksc2VsZWN0OmZ1bmN0aW9uKHgsYil7YS5teS5jaGVjaygiI2UtZGJuYW1lIiksYS5Td2l0Y2guZGVib3VuY2UoNjApKCl9LmRlYm91bmNlKDEwKSxhcHBlbmRUbzphLm15LnJvb3QoKSxtaW5MZW5ndGg6MH0pKX0sYmluZDoidGhpcy5EQjJnbyJ9LCIjYnRuLWRibmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5teS5maW5kKCIjZS1kYm5hbWUiKSxkPSEhYi5EQmxpc3QubGVuZ3RoJiZjLmF1dG9jb21wbGV0ZSgid2lkZ2V0IikuaXMoIjp2aXNpYmxlIik7cmV0dXJuIG51bGwhPWEmJihkP2MuYXV0b2NvbXBsZXRlKCJjbG9zZSIpOmMuYXV0b2NvbXBsZXRlKCJzZWFyY2giLCIiKSxkPSFkKSwiPGRpdj57MX08L2Rpdj4iLmFzc2lnbihkPyLilrIiOiLilrwiKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF0aGlzLkRCbGlzdC5sZW5ndGh9fSx3YXRjaDpbIiNlLWRibmFtZSJdfSwiI2J0bi1nbyI6e2RlbGF5OjI1LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIG51bGwhPWEmJmMuU3dpdGNoKCksYy5sYW5nLkJUTl9HT30sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiEvXlthLXowLTlfJFwoXClcK1wtXC9dKyQvLnRlc3QodGhpcy5EQjJnbyl9fSx3YXRjaDpbIiNlLWRibmFtZSJdfSwiI2UtY3JlbG9hZCI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pc0NvdWNoM2FuZEFsbERCc319fSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9IjQwMSI9PXgubWVzc2FnZS50bygzKSYmIWN3Lm1lKCk7aWYobnVsbD09YSlyZXR1cm4gdGhpcy5sYW5nW2I/IkJUTl9BVVRIIjoiQlROX1JFVFJZIl07Yj8kKCIjYnRuLWF1dGgtcG9wdXAiKS50cmlnZ2VyKCJjbGljayIpOiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX19fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5pc0NvdWNoM2FuZEFsbERCcyYmdGhpcy5EQmxpc3QubGVuZ3RoJiZ4LmZpbmQoIiNlLWRibmFtZSIpLmF1dG9jb21wbGV0ZSgiZGVzdHJveSIpfSxTd2l0Y2g6ZnVuY3Rpb24oKXt2YXIgeD10aGlzO3dpbmRvdy5sb2NhdGlvbi5oYXNoPXguREIyZ28seC5teS5maW5kKCIjZS1kYm5hbWUiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsInNvdXJjZSIseC5EQmxpc3Q9eC5EQmxpc3QuYWRkKHguREIyZ28pLnVuaXF1ZSgpKX0sSFRNTDonPGRpdiBjbGFzcz0icDEwMCB0YWMiPjxkaXYgY2xhc3M9Inc1MHAgbXQyNSB0YWwgZGliIHZhdCBtYjE1Ij48ZGl2IGlkPSJlLWxvZ28iPjwvZGl2PjxkaXYgaWQ9ImUtdGl0bGUiIGNsYXNzPSJkaWIgdmF0Ij5QaG90b248L2Rpdj48L2Rpdj48ZGl2IGlkPSJlLW1zZyIgY2xhc3M9IiI+PC9kaXY+PGZvcm0gaWQ9ImUtY2RibmFtZSIgY2xhc3M9Im10MjUgZnM5NSBoaWRlIj48ZGl2IGNsYXNzPSJ3NTBwIHRhbCBkaWIgdmF0IHBsNzAiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZS1kYm5hbWUiIHN0eWxlPSJ3aWR0aDogY2FsYygxMDAlIC0gMTIycHgpOyBtYXgtd2lkdGg6NjAwcHg7IiBjbGFzcz0ibXIyIj48c3BhbiBzdHlsZT0iIiBjbGFzcz0icHNldWRvbGluayB0ZG4gYmZvbGQgZGliIHZhdCIgdHh0PSIiIGlkPSJidG4tZGJuYW1lIj48ZGl2PuKWvDwvZGl2Pjwvc3Bhbj48ZGl2IGNsYXNzPSJ3MTIwIGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1nbyIgY2xhc3M9IncxMjAgcHIxNSI+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9mb3JtPjxkaXYgaWQ9ImUtY3JlbG9hZCIgY2xhc3M9Im10MjUgZnM5NSBoaWRlIj48ZGl2IGNsYXNzPSJ3NTBwIHRhbCBkaWIgdmF0IHBsNzAiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3MTIwIHByMTUiPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZGl2Picsc3R5bGU6eyIgI2UtbG9nbyI6eyIiOlsid2lkdGg6NTVweDsgaGVpZ2h0OjU1cHg7IGJvcmRlcjoycHggc29saWQgI2EwYjBjMDsgYm9yZGVyLXJhZGl1czo2MHB4OyIsImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1hcmdpbi1yaWdodDoxM3B4OyBwYWRkaW5nOjE0cHggNXB4OyJdLCIgc3ZnIjoid2lkdGg6MzlweDsgaGVpZ2h0OjIwcHg7In0sIiAjZS10aXRsZSI6ImZvbnQtc2l6ZTo2MHB4OyBsaW5lLWhlaWdodDowLjllbTsgY29sb3I6Izk1YTViNTsgZm9udC13ZWlnaHQ6MjAwOyIsIiAudWktd2lkZ2V0IjoiZm9udC1zaXplOjEwMCUiLCIgLnVpLWF1dG9jb21wbGV0ZSI6ImxpbmUtaGVpZ2h0OjEuM2VtOyBtYXgtaGVpZ2h0OjE5dmg7IG92ZXJmbG93LXk6YXV0bzsgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC5iZm9sZCI6eyIiOlsid2lkdGg6MjBweCFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7ICIsImJvcmRlci10b3AtbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyIsIm1hcmdpbi1sZWZ0Oi0yMXB4OyB6LWluZGV4OisxOyJdLCIgZGl2IjoiZm9udC1zaXplOjYwJTsgb3BhY2l0eTowLjU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDozLjJlbTsgd2lkdGg6MTAwJTsifSwiIHVsIjp7Ii51aS1hdXRvY29tcGxldGUiOiJtYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTE1cHgpOyJ9fSxwYXJhbXM6e3N0cmljdDohMH19LCRkb2M6e2lkOiJjdy5QaG90b24uJGRvYyIsbGFuZzp7fSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGN3LmxpYi5jcmMyKHRoaXMuZGF0YS5kb2MpfSxwYXJhbXM6e3Jlc3R5bGU6MjUsc3RyaWN0OiEwfSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1hLnBhdGgsYz1hLmRvYy5faWQ7cmV0dXJuW3gudHJ1bmMoYlswXSwxMCksIuKAiS/igIkiLCJfZGVzaWduLyI9PWMudG8oOCk/Il9kIitjLmZyb20oNyk6Il91c2VycyI9PWJbMF0/Yy5mcm9tKDE3KTpjLGEucmV2PyLigIlA4oCJIithLnJldjoiIl0uam9pbigiIil9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7aWYoYSlyZXR1cm4iX25ldyI9PXhbMV0/e3RpdGxlOiJOZXcgZG9jIixhcHBEYXRhOntpc05ldzohMCxkb2M6Il91c2VycyI9PXhbMF0/e19pZDoib3JnLmNvdWNoZGIudXNlcjpfdXNlcm5hbWVfIix0eXBlOiJ1c2VyIixuYW1lOiJfdXNlcm5hbWVfIixwYXNzd29yZDoiX3Bhc3N3b3JkXyIscm9sZXM6W119OnhbMF09PXRoaXMuUmVwbGljYXRvckRCP3tfaWQ6IiIsc291cmNlOiIiLHRhcmdldDoiIixjcmVhdGVfdGFyZ2V0OiExLGNvbnRpbnVvdXM6ITEsZG9jX2lkczpbXSxmaWx0ZXI6IiIsdXNlcl9jdHg6e25hbWU6IiIscm9sZXM6W119LHF1ZXJ5Ont9fTp7fX19OjIhPXgubGVuZ3RofHwiXyI9PXhbMV1bMF0mJiEvXl8oZGVzaWdufGxvY2FsKVwvLy50ZXN0KHhbMV0pPzMhPXgubGVuZ3RofHwiXyI9PXhbMV1bMF0mJiEvXl9kZXNpZ25cLy8udGVzdCh4WzFdKXx8Il8iIT14WzJdWzBdP3ZvaWQgMDp7dGl0bGU6dGhpcy50cnVuYyh4WzBdLDEwKSsi4oCJL+KAiSIreFsxXSx0eXBlOiJkb2MiLGFwcERhdGE6e3Jldjp4WzJdLnJlcGxhY2UoL15cRCsvLCIiKX19Ont0aXRsZTp0aGlzLnRydW5jKHhbMF0sMTApKyLigIkv4oCJIit4WzFdLHR5cGU6ImRvYyJ9fSxkYXRhOntpc05ldzohMSxwYXRoOltdLHJldjoiIixyZXZsYXN0OiIiLHJldnN0YXJ0OiIiLHNlYXJjaDoiIixkb2M6e19pZDoiIn0sY29uZmxpY3RzOltdLHJldnM6W10sYXR0czohMX0sRG9jOltdLFJUOmZ1bmN0aW9uKHgpe3JldHVybiBudWxsPT14P3RoaXM6T2JqZWN0LmlzQXJyYXkoeCk/Y3cubGliLmdldHJlZih0aGlzLHgpOnRoaXNbeF19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtyZXR1cm4geC5hZGRDbGFzcygibnciKSxiLnBhdGgubGVuZ3RoPigiX2Rlc2lnbiI9PWIucGF0aFsxXT8zOjIpJiYoYi5yZXY9Yi5wYXRoLmxhc3QoKS5yZXBsYWNlKC9eXEQrLywiIikpLGIucmV2c3RhcnQ9Yi5yZXYsYS5IVE1MLkhpc3RvcnlSb3c9YS5QaG8oIkNvbXBpbGVUIikoYS5IVE1MLkhpc3RvcnlSb3cpLGEuSGlzdG9yeS5pbml0KGEseCksYS5HZXREb2MoKS50aGVuKGZ1bmN0aW9uKCl7eC5odG1sKGEuSFRNTC5BcHAuYXNzaWduKGEubGFuZykpfSkudGhlbihmdW5jdGlvbigpe2EuQnVzeSghMSl9LmRlYm91bmNlKDEwMCkpfSx1aTp7IiNhcHAtdGl0bGUiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLnAydSxjPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjezF9IiB0aXRsZT0iezN9Ij57Mn08L2E+Jy5hc3NpZ24oYih4LnBhdGhbMF0pLGEudHJ1bmMoeC5wYXRoWzBdLDE1KS5lc2NhcGVIVE1MKCkseC5wYXRoWzBdLmVzY2FwZUhUTUwoKSksZD14LmRvYy5faWR8fHgucGF0aFsxXSsoIl9kZXNpZ24iPT14LnBhdGhbMV0/Ii8iK3gucGF0aFsyXToiIiksZT0nPGEgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iIGhyZWY9InsxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKFsiIixiKHgucGF0aFswXSksYihkKV0uam9pbigiLyIpLmVzY2FwZUhUTUwoKSsoeC5yZXY/Ij9yZXY9Iit4LnJldjoiIiksZC5lc2NhcGVIVE1MKCksZC5sZW5ndGg+MTU/ZC5lc2NhcGVIVE1MKCk6IiIpO3JldHVyblsnPHNwYW4gY2xhc3M9ImZzMTUwIGxoMTMwIHhncmF5IG10LTEgbzgwIj4nLCc8c3BhbiBjbGFzcz0ibzgwIj57Mn08L3NwYW4+4oCJL+KAiTxzcGFuIGNsYXNzPSIiPnsxfTwvc3Bhbj4nLCI8L3NwYW4+Il0uam9pbigiIikuYXNzaWduKGUsYyl9LHdhdGNoOlsiI2FwcC1yZXYiLCIjanNlZGl0b3IiXX0sIiNhcHAtcmV2Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlJldnNMaXN0KCIjYXBwLXJldiIpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJldiE9YSYmKHguYXR0cz0hMSkseC5yZXY9YSkseC5yZXZ9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuL15fbG9jYWxcLy8udGVzdCh4LmRvYy5faWQpfX19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT94LnNlYXJjaDooeC5zZWFyY2g9YS5sZW5ndGg8Mz8iIjphLHRoaXMuRG9jWzBdJiZ0aGlzLkRvY1swXS5zZWFyY2ghPXguc2VhcmNoJiZ0aGlzLm15LmZpbmQoIiNqc29uLXNlYXJjaCIpLnZhbCh4LnNlYXJjaCkudHJpZ2dlcigiY2hlY2siKSxhKX0sY3NzOnsibXktc2VhcmNoIjovXi57Myx9JC99fSwiI2pzZWRpdG9yIjp7ZGVsYXk6MTAwLGNoZWNrOiExLGxpc3Q6IjxkaXY+PC9kaXY+IixtZXJnZTohMSxpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZG9jLl9pZH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oeC5kb2MpfSxtYW5pZmVzdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLnBhdGg7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuUGhvKCJFZCIpLmpzb250cmVlLGEuRXh0RWQse01Sb290OmZ1bmN0aW9uKCl7cmV0dXJuIGEubXkucm9vdCgpfSxHZXRBdHRzOmEuR2V0QXR0cyxkYXRhOntsYWJlbFdpZHRoOiJfcmVwbGljYXRvciI9PWJbMF0/MTc1OiJfZCI9PWJbMV0udG8oMik/MTYwOjE1MH19KX0sYmluZDoidGhpcy5Eb2MifSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLkdldERvYyghMCwhMCkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5CdXN5KCExKX0uZGVib3VuY2UoNTApKX19LGxpc3Rlbjp7ZmlsZXVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKCF4LnJldiYmT2JqZWN0LmlzT2JqZWN0KGEpJiZhLmRiPT14LnBhdGhbMF0mJmEuZG9jPT14LmRvYy5faWQmJmEucmV2PT14LmRvYy5fcmV2KXt2YXIgYj10aGlzO2IuR2V0RG9jKCEwLCEwKS5hbHdheXMoZnVuY3Rpb24oKXtiLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpfX19fSwiI2J0bi1kb2Mtc2F2ZWFzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiLGM9dGhpcztmdW5jdGlvbiBkKCl7Yy5CdXN5KCEwKSxjLlNhdmVBbGwoKS5hbHdheXMoZnVuY3Rpb24oKXtjLkJ1c3koITEpfS5kZWJvdW5jZSg1MCkpfWZ1bmN0aW9uIGUoKXt4LmRvYy5faWQ9Yi5kb2MuX2lkLHgucGF0aFswXT1iLnBhdGhbMF0seC5wYXRoWzFdPWIuZG9jLl9pZCxPYmplY3Qua2V5cyh4LmRvYykuZm9yRWFjaChmdW5jdGlvbihhKXsiXyI9PWFbMF0mJiJfaWQiIT1hJiYiX2F0dGFjaG1lbnRzIiE9YSYmZGVsZXRlIHguZG9jW2FdfSkseC5yZXY9IiIseC5yZXZsYXN0PSIiLHgucmV2cz1bXSx4LmlzTmV3PSEwfWZ1bmN0aW9uIGYoKXtjLkRvYz1be2RibmFtZTp4LnBhdGhbMF0scmV2aXNpb246IiIsYmFzZXVybDpjLlBobygiQmFzZSIpLGRvYzp4LmRvY31dLGMubXkucmVkcmF3KCl9bnVsbCE9YSYmYy5teS5tb2RhbCgiI2J0bi1kb2Mtc2F2ZWFzIix7cm9vdDpjLm15LnJvb3QoKSxzY3JlZW46ITAsZ2xvYmFsOiEwLGVzYzohMCxlbnRlcjohMSxjbG9zZTohMSx3aWR0aDo0MDAsejoxOTk1LGNzczoicDIwIHB0MTUiLG1hbmlmZXN0OiQuZXh0ZW5kKCEwLHtQaG86Yy5QaG8sUlQ6Yy5SVH0sYy5OZXdEb2NUZ3QpLGRhdGE6T2JqZWN0LmNsb25lKGMuZGF0YSwhMCl9KS50aGVuKGZ1bmN0aW9uKHgpe2I9eH0pLnRoZW4oYy5BcHBseUVkcykudGhlbihmdW5jdGlvbigpe2MuQnVzeSghMCksYi5kb2MuX2F0dGFjaG1lbnRzJiZPYmplY3Quc2l6ZShiLmRvYy5fYXR0YWNobWVudHMpJiZPYmplY3QudmFsdWVzKGIuZG9jLl9hdHRhY2htZW50cykuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiF4LmRhdGF9KS5sZW5ndGg/Yy5HZXRBdHRzKCEwKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBiPWEuX2F0dGFjaG1lbnRzO2lmKGIpe3guZG9jLl9hdHRhY2htZW50c3x8KHguZG9jLl9hdHRhY2htZW50cz17fSk7dmFyIGM9eC5kb2MuX2F0dGFjaG1lbnRzO09iamVjdC5rZXlzKGIpLmZvckVhY2goZnVuY3Rpb24oeCl7Y1t4XSYmIWNbeF0uZGF0YSYmKGNbeF09T2JqZWN0LnNlbGVjdChiW3hdLFsiY29udGVudF90eXBlIiwiZGF0YSJdKSl9KX1lbHNlIGM9eC5kb2MuX2F0dGFjaG1lbnRzfHx7fTtPYmplY3Qua2V5cyhjKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2NbeF0uZGF0YXx8ZGVsZXRlIGNbeF19KX0pLnRoZW4oZSkudGhlbihmKS50aGVuKGQpOihlKCksZCgpKX0pfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlzTmV3fX19LCIjYnRuLWRvYy1zYXZlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuY21kU2F2ZSgpfX0sIiNidG4tZG9jLWRlbCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO251bGwhPWEmJihiLkJ1c3koITApLGIuRGVsRG9jKCkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5CdXN5KCExKX0uZGVib3VuY2UoNTApKSl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXt2YXIgYj14LmNvbmZsaWN0c3x8W10sYz14LnJldnMmJngucmV2c1swXSYmeC5yZXZzWzBdPT14LmRvYy5fcmV2O3JldHVybiBiLmxlbmd0aD8hYyYmLTE9PWIuaW5kZXhPZih4LmRvYy5fcmV2fHwiIik6ISgvXl9sb2NhbFwvLy50ZXN0KHguZG9jLl9pZCl8fHguZG9jLl9yZXYmJmMpfX0sd2F0Y2g6WyIjYXBwLXJldiJdfSwiI2J0bi1kb2MtZGlmZiI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMucDJ1O2IuYXR0cigiaHJlZiIsIiN7MX0vX2RpZmYvezJ9L3szfS97NH0iLmFzc2lnbihjKHgucGF0aFswXSksYyh4LnBhdGhbMV0pLCJfIisoeC5yZXZ8fCIiKSwiXyIpKX0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4geC5jb25mbGljdHMubGVuZ3RoK3gucmV2cy5sZW5ndGg8Mnx8L15fbG9jYWxcLy8udGVzdCh4LmRvYy5faWQpfX0sd2F0Y2g6WyIjYXBwLXJldiJdfSwiI3N0YXRlLXByb3h5Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpe3ZhciBiPXRoaXM7eC5yZXY/eC5wYXRoLmxhc3QoKSE9eC5kb2MuX2lkP3gucGF0aFt4LnBhdGgubGVuZ3RoLTFdPSJfIit4LnJldjp4LnBhdGgucHVzaCgiXyIreC5yZXYpOngucGF0aC5sYXN0KCkhPXguZG9jLl9pZCYmKHgucGF0aC5sZW5ndGg9KHgucGF0aC5sZW5ndGgtMSkuY2xhbXAoMiw2KSkseC5yZXYhPXgucmV2bGFzdCYmKCQubXkucmFkaW8oInBhdGhjaGFuZ2UiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRoLHRpdGxlOmIudGl0bGUoKX0pLHgucmV2bGFzdDI9eC5yZXZsYXN0LHgucmV2bGFzdD14LnJldixiLkdldERvYyghMCwhMCkudGhlbihmdW5jdGlvbigpe3gucmV2bGFzdDI9bnVsbH0pLmFsd2F5cyhmdW5jdGlvbigpe2IuQnVzeSghMSl9LmRlYm91bmNlKDUwKSkpfX0sd2F0Y2g6IiNhcHAtcmV2IixsaXN0ZW46e2RiZGVsZXRlZDpmdW5jdGlvbih4LGEpe2lmKGE9PXgucGF0aFswXSl7dmFyIGI9dGhpczsoZnVuY3Rpb24oKXtiLm15LnJvb3QoKS50cmlnZ2VyKCJ0YWJjbG9zZSIse3RhYmlkOngudGFiaWQsZW5mb3JjZTohMH0pfSkuZGVib3VuY2UoTnVtYmVyLnJhbmRvbSgxMCw1MCkpKCl9fX19LCIjZG9jLWhpc3RvcnkiOntkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhLE9iamVjdC5pc0FycmF5LE9iamVjdC5pc09iamVjdDthLm5pY2VTY3JvbGwoeCkseC5saXN0KHtkYXRhOmEuSGlzdG9yeS5zdGVwcyxkZWxheTowLGNodW5rOjUwLHNvcnRCeTpudWxsLGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlkfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiB4LmlkK3guaGFzaH0sdGVtcGxhdGU6ZnVuY3Rpb24oeCxiKXtyZXR1cm4gYS5IVE1MLkhpc3RvcnlSb3cuYXNzaWduKHtwYXRoOnguc3BhdGgsaWNvOiJpbnMiPT14Lm9wPyJwbHVzIjoiZGVsIj09eC5vcD8ibWludXMiOiJjaGVjayIsaGFzaDp4Lmhhc2gsc3ZhbDp4LnN2YWwsb3A6eC5vcCx0aXA6WyJDbGljayB0byB1bmRvICIrKCJpbnMiPT14Lm9wPyJpbnNlcnRpb24uIjoiZGVsIj09eC5vcD8iZGVsZXRpb24uIjoiZWRpdHMuIiksImlucyIhPXgub3A/IlJlc3RvcmVkIHZhbHVlOiAiK3gudmFsLnRydW5jYXRlKDE1MCkuZXNjYXBlSFRNTCgpOm51bGxdLmNvbXBhY3QoKS5qb2luKCJcbiIpfSl9fSkseC5vbigiY2xpY2subXkiLCIuaC1yb3ciLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5pbmRleCgpO2EuSGlzdG9yeS51bmRvKGIpfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJihiLmxpc3QoImRhdGEiLHRoaXMuSGlzdG9yeS5zdGVwcyksYlswXS5zY3JvbGxUb3A9MWU2KX0sd2F0Y2g6WyIjYnRuLWhpc3RvcnktY2xlYXIiXX0sIiNzdHlsZS1oaXN0b3J5Ijp7ZGVsYXk6MTAwLGJpbmQ6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9Ii5teS1mb3JtLSIreC5teS5yb290KCkubXkoKS5jaWQrJyAuaC1yb3dbZGF0YS1wYXRoPSJ7MX0iXTpob3Zlcn4uaC1yb3dbZGF0YS1wYXRofD0iezF9Il17YmFja2dyb3VuZC1jb2xvcjogI2VmZjZmZjsgb3BhY2l0eTowLjU7fScsYj17fTtyZXR1cm4geC5IaXN0b3J5LnN0ZXBzLmZvckVhY2goZnVuY3Rpb24oeCl7Ylt4Lmhhc2hdPTF9KSxPYmplY3Qua2V5cyhiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIGEuYXNzaWduKHgpfSkuam9pbigiXG4iKX0sd2F0Y2g6WyIjZG9jLWhpc3RvcnkiLCIjYnRuLWhpc3RvcnktY2xlYXIiXX0sIiNlbXB0eS1oaXN0b3J5Ijp7ZGVsYXk6MjAsY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RofX0sd2F0Y2g6WyIjZG9jLWhpc3RvcnkiXX0sIiNidG4taGlzdG9yeS1jbGVhciI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLkhpc3RvcnkuY2xlYXIoITApfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGh9fSx3YXRjaDpbIiNkb2MtaGlzdG9yeSJdfSwiI2J0bi1oaXN0b3J5LXVuZG8iOntkZWxheToxMCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5jbWRVbmRvKCl9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5IaXN0b3J5LnN0ZXBzLmxlbmd0aH19LHdhdGNoOlsiI2RvYy1oaXN0b3J5Il19fSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjanNlZGl0b3IiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LGNtZFVuZG86ZnVuY3Rpb24oKXt0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RoJiZ0aGlzLkhpc3RvcnkudW5kbyh0aGlzLkhpc3Rvcnkuc3RlcHMubGVuZ3RoLTEpfSxjbWRTYXZlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpczt4LkFwcGx5RWRzKCkudGhlbihmdW5jdGlvbigpe3guU2F2ZUFsbCgpLmFsd2F5cyhmdW5jdGlvbigpe3guQnVzeSghMSl9LmRlYm91bmNlKDUwKSl9KX0sSFRNTDp7QXBwOic8ZGl2IGlkPSJjb2wtZWQiIGNsYXNzPSJkaWIgdmF0IHduIj48ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzE1NSBmczk1Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIGJsdWUgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXBwLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXI4IiB0aXRsZT0ie1BMQ19SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgaWQ9ImFwcC10aXRsZSIgY2xhc3M9ImRpYiB2YXQgZWxsIG1yMTAgbnciPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgdzIwMCBtcjEwIj48aW5wdXQgaWQ9ImFwcC1yZXYiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQiPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1kb2Mtc2F2ZSIgY2xhc3M9ImdyZWVuIG1yMiI+e0JUTl9TQVZFfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kb2Mtc2F2ZWFzIiBjbGFzcz0idGVhbCBtcjIiPntCVE5fU0FWRUFTfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kb2MtZGVsIiBjbGFzcz0icmVkIG1yMiI+e0JUTl9ERUx9PC9idXR0b24+PGEgaHJlZj0iIiBpZD0iYnRuLWRvYy1kaWZmIiBjbGFzcz0iaGlkZSBidXR0b24gdGRuIHZhdCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuNGVtOyI+e0JUTl9ESUZGfTwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJqc2VkaXRvciIgY2xhc3M9InBhbmVsaGVpZ2h0IHBsMjAgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJjb2wtaGlzdG9yeSIgY2xhc3M9ImRpYiB2YXQgeGdyYXkgd24iPjxkaXYgaWQ9ImgtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LXVuZG8iIGNsYXNzPSJsaDE0MCBtcjIiPntCVE5fSElTVF9VTkRPfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LWNsZWFyIiBjbGFzcz0ibGgxNDAiPntCVE5fSElTVF9DTEVBUn08L2J1dHRvbj48L2Rpdj48c3BhbiBjbGFzcz0iZnMxNTAgZGliIHZhdCBwbDUgbzkwIHB0MyI+e1RYVF9ISVNUX1RJVExFfTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJlbXB0eS1oaXN0b3J5IiBjbGFzcz0iaGlkZSBwYWJjIHBsNSBwdDggZ3JheSIgc3R5bGU9InRvcDowOyBsZWZ0OjA7Ij57VFhUX0hJU1RfRU1QVFl9PC9kaXY+PGRpdiBpZD0iZG9jLWhpc3RvcnkiIGNsYXNzPSJwYW5lbGhlaWdodCBwcjIwIHB0MTAgcGIxNiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjwvZGl2PjwvZGl2PjxzdHlsZSBpZD0ic3R5bGUtaGlzdG9yeSIgY2xhc3M9ImhpZGUiPjwvc3R5bGU+PGRpdiBpZD0ic2Nyb2xsLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdGUtcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLEhpc3RvcnlSb3c6JzxkaXYgY2xhc3M9Imgtcm93IHcxMDBwIGNwIG9wLXtvcH0iIHRpdGxlPSJ7dGlwfSIgZGF0YS1wYXRoPSJ7aGFzaH0iPjxkaXYgY2xhc3M9ImgtdWJ0biBwYWJjIHBsNCBwdDMgZnM5NSBibHVlMiIgc3R5bGU9InRvcDowOyByaWdodDowOyB0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpOyI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2giPjwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idzE1IGRpYiB2YXQgbWwtMTUgbzQwIGZzODUgbXQxIGZpLXtpY299Ij48L3NwYW4+PGRpdiBjbGFzcz0ibXcxMDBwIHRkbiBkaWIgbncgb2ggZWxsIHBzZXVkb2xpbmsiPntwYXRofSA8L2Rpdj48ZGl2IGNsYXNzPSJ0ZGkgbXcxMDBwIGZzOTAgbGgxMzAgbzcwIGRpYiB2YWwgbncgb2ggZWxsIj57c3ZhbH08L2Rpdj48L2Rpdj4nfSxIaXN0b3J5Ontpbml0OmZ1bmN0aW9uKHgpe09iamVjdC5rZXlzKHguSGlzdG9yeSkuZm9yRWFjaChmdW5jdGlvbihhKXsiZnVuY3Rpb24iPT10eXBlb2YgeC5IaXN0b3J5W2FdJiYoeC5IaXN0b3J5W2FdPXguSGlzdG9yeVthXS5iaW5kKHgpKX0pLHguSGlzdG9yeS5jbGVhcigpfSxlbWl0OmZ1bmN0aW9uKHgsYSxiLGMpe3ZhciBkPXRoaXMsZT1kLkhpc3RvcnksZj1kLkRvY1swXS5kb2MsZz0hMCxoPXguZmxhdCgpLGk9W10saj1PYmplY3QuaXNPYmplY3Qsaz1PYmplY3QuaXNBcnJheSxsPShlLmhhc2gsZS5yYW5kKTtpZihqKGEpJiZqKGIpKXt2YXIgbT1bYSxiXS5yZWR1Y2UoZnVuY3Rpb24oeCxhLGIpe3JldHVybiBPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3hbY118fCh4W2NdPVt2b2lkIDAsdm9pZCAwXSkseFtjXVtiXT1jdy5saWIuc2RibShhW2NdKX0pLHh9LHt9KTtPYmplY3QudmFsdWVzKG0pLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geFswXSE9eFsxXX0pLmxlbmd0aDwxMCYmKE9iamVjdC5rZXlzKG0pLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9bVt4XTtpZihjWzBdIT1jWzFdKXt2YXIgZD1udWxsPT1jWzBdPyJpbnMiOnZvaWQgMD09PWNbMV0/ImRlbCI6InVwZCI7aS5wdXNoKFtoLmNvbmNhdCh4KSxkLHZvaWQgMD09PWNbMF0/Ylt4XTphW3hdLCJkZWwiPT1kP251bGw6Ylt4XV0pfX0pLGc9ITEpfWlmKGcpe3ZhciBuPXZvaWQgMD09PWE/ImlucyI6dm9pZCAwPT09Yj8iZGVsIjoidXBkIjtpLnB1c2goW2gsbiwiaW5zIj09bj9iOmEsImRlbCI9PW4/bnVsbDpiXSl9ZnVuY3Rpb24gbyh4LGEsYixkKXt2YXIgZz1jdy5saWIuZ2V0cmVmKGYseC5zbGljZSgxKS50bygtMSkpLGg9ayhnKSxpPSJkZWwiPT1hJiZoPysrZS5kZWxzOjAsaj14Lmxlbmd0aCxtPUpTT04uc3RyaW5naWZ5KGIsbnVsbCwiICIpLG49bnVsbDtpZighaCl7dmFyIG89T2JqZWN0LmtleXMoZykscD1vLmluZGV4T2YoeC5sYXN0KCkpOyJkZWwiIT1hP249W3A+MD9vW3AtMV06bnVsbCxwPT1vLmxlbmd0aC0xP251bGw6cD4tMT9vW3ArMV06bnVsbF06YyYmKG49Yyl9dmFyIHE9ZS5yZWhhc2goe2lkOmwoKSx0czpEYXRlLm5vdygpLHBhdGg6eCxjdHg6bixoYXNoOiIiLG9wOmEsdmFsOm0sZGVsOmkscm93Omgsc3BhdGg6IiIsc3ZhbDooImRlbCI9PWE/IsKgd2FzICIrbS50bygxMDApLnJlcGxhY2UoL1xuXHMrL2csIiIpOiLCoD3CoCAiK0pTT04uc3RyaW5naWZ5KGQpLnRvKDEwMCkpLnJlcGxhY2UoL1xcbi9nLCLCtiIpLmVzY2FwZUhUTUwoKS5yZXBsYWNlKC/Cti9nLCc8c3BhbiBjbGFzcz0iZ3JheTIgcGwxIHByMSI+wrY8L3NwYW4+Jyl9KTtpZigiZGVsIj09YSYmaCl7dmFyIHI9ZS5oYXNoKHgudG8oLTEpLDApKyItIixzPSt4Lmxhc3QoKTtlLnN0ZXBzLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoeC5oYXNoLnN0YXJ0c1dpdGgocikpe3ZhciBhPSt4LnBhdGhbai0xXTthIT1zfHx4LmRlbD9hPnMmJih4LnBhdGhbai0xXT0oYS0xKS5jbGFtcCgwLDFlNikrIiIsZS5yZWhhc2goeCkpOih4LmRlbD1pLGUucmVoYXNoKHgpKX19KX1pZigiaW5zIj09YSYmaCl7cj1lLmhhc2goeC50bygtMSksMCkrIi0iLHM9K3gubGFzdCgpO2Uuc3RlcHMuZm9yRWFjaChmdW5jdGlvbih4KXtpZih4Lmhhc2guc3RhcnRzV2l0aChyKSl7dmFyIGE9K3gucGF0aFtqLTFdO2E+PXMmJih4LnBhdGhbai0xXT0oYSsxKS5jbGFtcCgwLDFlNikrIiIsZS5yZWhhc2goeCkpfX0pfWUuc3RlcHMucHVzaChxKX1pLmZvckVhY2goZnVuY3Rpb24oeCl7byh4WzBdLHhbMV0seFsyXSx4WzNdKX0pLGQubXkuY2hlY2soIiNkb2MtaGlzdG9yeSIpfSx1bmRvOmZ1bmN0aW9uKHgpe2Zvcih2YXIgYT10aGlzLGI9KGEuZGF0YSxhLkhpc3RvcnkpLGM9Yi5zdGVwcyxkPWNbeF0sZT1kLmhhc2gsZj1iLmhhc2goZC5wYXRoLnRvKC0xKSwwKSsiLSIsZz1kLnBhdGguc2xpY2UoMSksaD1nLmxlbmd0aCxpPUpTT04ucGFyc2UoZC52YWwpLGo9ZC5vcCxrPTAsbD1hLkRvY1swXS5kb2MsbT0oT2JqZWN0LmlzT2JqZWN0LE9iamVjdC5pc0FycmF5KSxuPShiLmhhc2gsMCksbz1sO248Zy5sZW5ndGgtMSYmbyYmIm9iamVjdCI9PXR5cGVvZiBvO24rKylvPSJvYmplY3QiPT10eXBlb2Ygb1tnW25dXSYmbnVsbCE9b1tnW25dXT9vW2dbbl1dOm51bGw7aWYoIW8pcmV0dXJuIHIoIk5vZGUgdG8gbW9kaWZ5IGRvZXNu4oCZdCBleGlzdCIpO2Z1bmN0aW9uIHAoeCl7aWYoeClmb3IodmFyIGE9K2cubGFzdCgpLGQ9ZixlPTA7ZTxjLmxlbmd0aDtlKyspY1tlXS5oYXNoLnN0YXJ0c1dpdGgoZCkmJitjW2VdLnBhdGhbaF0+PWEmJihjW2VdLnBhdGhbaF09IiIrKCtjW2VdLnBhdGhbaF0reCkuY2xhbXAoMCwxZTYpLGIucmVoYXNoKGNbZV0pKX1mdW5jdGlvbiBxKCl7dmFyIHg9ImRlbCI9PWo/ImlucyI6ImlucyI9PWo/ImRlbCI6InVwZCIsYj1hLm15LmZpbmQoIiNqc2VkaXRvcj5kaXYiKS5teSgibWFuaWZlc3QiKS5NdXRhdGUoe3BhdGg6ZyxjdHg6ZC5jdHgsdmFsOiJkZWwiIT14P2k6dm9pZCAwLG9wOngsZXhwYW5kOiEwLGJsaW5rOiJiZy1ibHVlNyJ9KTtiLmVycm9yP3IoYi5lcnJvcik6YS5teS5jaGVjaygiI2RvYy1oaXN0b3J5Iil9ZnVuY3Rpb24gcih4KXtjdy5saWIubm90ZSh4LCJlcnJvciIsNGUzKSxhLm15LmNoZWNrKCIjZG9jLWhpc3RvcnkiKX0iZGVsIiE9aiYmZC5yb3cmJmMuZmlsdGVyKGZ1bmN0aW9uKGEsYil7cmV0dXJuIShiPD0reCkmJihhLnJvdyYmImRlbCI9PWEub3AmJmEuZGVsPT1kLmRlbCYmYS5wYXRoLmxlbmd0aD09aCsxJiZhLmhhc2guc3RhcnRzV2l0aChmKSl9KS5sZW5ndGgmJihqPSJpbnMiPT1qPyJub29wIjoidXBkIj09aj8iZGVsIjpqKSwiZGVsIj09aj9oP20obykmJi9eXGQrJC8udGVzdChnLmxhc3QoKSkmJnAoMStrKTpsPWk6InVwZCI9PWp8fCJpbnMiPT1qJiZoJiZtKG8pJiYvXlxkKyQvLnRlc3QoZy5sYXN0KCkpJiZwKC0xK2spLGIuc3RlcHM9Yy5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09eHx8Yj54JiZhLmhhc2guc3RhcnRzV2l0aChlKT9udWxsOmF9KS5jb21wYWN0KCkscSgpfSxjbGVhcjpmdW5jdGlvbih4KXt0aGlzLkhpc3Rvcnkuc3RlcHM9W10sdGhpcy5IaXN0b3J5LmRlbHM9MCx4JiZ0aGlzLm15LmNoZWNrKCIjZG9jLWhpc3RvcnkiKX0saGFzaDpmdW5jdGlvbih4LGEpe3ZhciBiPXguZmxhdCgpLGM9Yi5sZW5ndGgtMTtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oeCxiKXtyZXR1cm4gY3cubGliLnNkYm0oYiE9Y3x8MD09YT94Olt4LGFdKX0pLmpvaW4oIi0iKX0scmVoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiB4Lmhhc2g9dGhpcy5IaXN0b3J5Lmhhc2goeC5wYXRoLHguZGVsKSx4LnNwYXRoPXgucGF0aC5sZW5ndGg8Mj8iRG9jIHJvb3QiOngucGF0aC5zbGljZSgxKS5qb2luKCLigIku4oCJIikudHJ1bmNhdGUoMzIsIm1pZGRsZSIsIi4uLiIpLmVzY2FwZUhUTUwoKSx4fSxyYW5kOmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5yYW5kb20oMCwyMTc2NzgyMzM1KS50b1N0cmluZygzNikucGFkTGVmdCg2LCIwIil9LHN0ZXBzOltdLGRlbHM6MH0sc3R5bGU6eyIgIjpmdW5jdGlvbih4KXt2YXIgYT0wfHgud2lkdGgoKSxiPTB8KGEvNC41KS5jbGFtcCgyODAsNDUwKSxjPWEtYixkPSJ3aWR0aDp7MX1weCI7cmV0dXJueyIgI2NvbC1lZCI6ZC5hc3NpZ24oYyksIiAjY29sLWhpc3RvcnkiOmQuYXNzaWduKGIpfX0sIiAjanNlZGl0b3IiOnsiPmRpdiI6Im1pbi1oZWlnaHQ6OTkuOSU7IiwiPi5teS1mb3JtPnNlY3Rpb24+I2VkaXRvcj4jZG9jPi5pYWN0LmJ1dHRvbnMiOiJwYWRkaW5nLXJpZ2h0OjNweDsiLCIgLmlhY3QgLmJ1dHRvbiI6IiAgaGVpZ2h0OiAxLjdlbTtsaW5lLWhlaWdodDogMS4xZW07In0sIiAubXktbW9kYWwtZm9ybSI6eyIgLkNvZGVNaXJyb3IgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4OyIsIiAuQ29kZU1pcnJvci1zY3JvbGwiOiJtaW4taGVpZ2h0OjE1MHB4O21heC1oZWlnaHQ6Y2FsYygxOCAqIDE3cHggKyA2cHgpOyIsIiAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6InRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zczsiLCIuZWQtZXJyb3IgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7IiwiIC5Db2RlTWlycm9yIjoibWluLWhlaWdodDoxNTBweDsgaGVpZ2h0OmF1dG87IiwiIC5idXR0b25zIGJ1dHRvbiI6Im1hcmdpbi1yaWdodDogMnB4O3BhZGRpbmc6IDAuNGVtIDAuN2VtIDAuNGVtIDAuN2VtO2ZvbnQtc2l6ZTogOTAlOyJ9LCIgI2FwcC10aXRsZSI6Im1heC13aWR0aDogY2FsYygxMDAlIC0gNDMwcHggLSAxNi4zZW0pOyIsIiAjZG9jLWhpc3RvcnkiOnsiIC5oLXJvdyI6eyIiOiJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyBib3JkZXItcmFkaXVzOjFweDsgbWFyZ2luLWJvdHRvbToxcHg7IHBhZGRpbmc6MnB4IDE1cHggMXB4IDIwcHg7dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzOyBsaW5lLWhlaWdodDoxLjNlbTsiLCIgLnRkaSI6InRleHQtZGVjb3JhdGlvbjppbmhlcml0OyIsIi5vcC1kZWwiOiJ0ZXh0LWRlY29yYXRpb246cmdiYSgwLDAsMCwwLjQpIHNvbGlkIGxpbmUtdGhyb3VnaCFpbXBvcnRhbnQ7IiwiIC5oLXVidG4iOiJvcGFjaXR5OjA7IHRyYW5zaXRpb246IG9wYWNpdHkgMC41czsiLCI6aG92ZXIiOnsiIjoiYmFja2dyb3VuZC1jb2xvcjogI2UyZjBmZjsiLCIgLmgtdWJ0biI6Im9wYWNpdHk6MTsifX19LCIgLmVkLW5vZGUtMTN0NmQ2YzUiOnsiIC5pYWN0IjoidG9wOjJweCIsIiAuaWRlc2MiOnsiIjoicGFkZGluZy10b3A6MXB4OyIsIiAuZnM5NSI6InBhZGRpbmctdG9wOjFweDsifX19LEV4dEVkOntIVE1MOntJdGVtUm9vdDonPGRpdiBjbGFzcz0iaW5hdiBpcm9vdCI+PGRpdiBjbGFzcz0iaWtleSI+PC9kaXY+PGRpdiBjbGFzcz0iaWRlc2MgY3AiPuKAkzwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IgcGFuZWxoZWlnaHQtMzIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Iml2YWx1ZSBpbXVsdGkgaGlkZSI+PGRpdiBjbGFzcz0iaWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWFkZCBidXR0b24gZ3JlZW4iIHRpdGxlPSJBZGQgbmV3IHByb3BlcnR5Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS1wbHVzIj48L3NwYW4+JnRoaW5zcDs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tdGFrZW91dCBidXR0b24iIHRpdGxlPSJDb3B5IC8gcGFzdGUgLyBlZGl0IGFzIEpTT04iPjxzcGFuIGNsYXNzPSJmaS1zaG9wcGluZy1iYWciPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4tZGVsIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1hdHRhY2giIGNsYXNzPSJidXR0b24iIHRpdGxlPSJBZGQgYXR0YWNobWVudCIgc3R5bGU9IndpZHRoOjc0cHgiPjxzcGFuIGNsYXNzPSJmaS1wYXBlcmNsaXAiPjwvc3Bhbj48c3BhbiBjbGFzcz0iZnM5MCBkaWIgdmF0Ij4gQXR0YWNo4oCmPC9zcGFuPjwvYnV0dG9uPjwvZGl2Pid9LHVpOnsiI2RvYyI6e21hbmlmZXN0OmZ1bmN0aW9uKHgpe2lmKCF0aGlzLkhUTUwuSXRlbVJvb3QpcmV0dXJuIHRoaXMuJG11bHRpO3ZhciBhPXRoaXMsYj1hLiRmaWxlcy5BZGQ7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuJG11bHRpLHtIVE1MOmEuSFRNTC5JdGVtUm9vdCx1aTp7IiNidG4tYXR0YWNoIjp7YmluZDpmdW5jdGlvbih4LGEsYyl7aWYobnVsbCE9YSl7dmFyIGQ9dGhpcztpZihjLmRhdGEoIm1vZGFsIikpcmV0dXJuIGMubW9kYWwoITApLGUoKSx2b2lkIDA7Yy5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxkLm15Lm1vZGFsKCIjYnRuLWF0dGFjaCIse21hbmlmZXN0OmIsZGF0YTp7fSx3aWR0aDo1MDAsYWxpZ246InRvcDoxMDMlLCByaWdodDowcHg7Iixub3NlOiJ0b3AifSkudGhlbihmdW5jdGlvbihhKXtpZihhLmZpbGVzLmxlbmd0aCl7eC52YWx1ZS5fYXR0YWNobWVudHN8fCh4LnZhbHVlLl9hdHRhY2htZW50cz17fSk7dmFyIGI9JC5leHRlbmQoITAse30seC52YWx1ZS5fYXR0YWNobWVudHMpO2EuZmlsZXMuZm9yRWFjaChmdW5jdGlvbihhKXt4LnZhbHVlLl9hdHRhY2htZW50c1thLm5hbWVdPU9iamVjdC5zZWxlY3QoYSxbImNvbnRlbnRfdHlwZSIsImRhdGEiXSl9KSxkLlJUKCJkYXRhIikudmlld3N0YXRlfHwoZC5SVCgiZGF0YSIpLnZpZXdzdGF0ZT17fSksZC5SVCgiZGF0YSIpLnZpZXdzdGF0ZVtjdy5saWIuc2RibSgiUm9vdOKdgF9hdHRhY2htZW50cyIpXT0yLGQuTGlzdD1kLk1ha2VMaXN0KHgpLGQuTm9kZVVwZGF0ZWQoWyJSb290IiwiX2F0dGFjaG1lbnRzIl0sYix4LnZhbHVlLl9hdHRhY2htZW50cyksZC5teS5yZWRyYXcoKX19LmRlYm91bmNlKDIwKSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZSgpfSl9ZnVuY3Rpb24gZSgpe2MucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIil9fX19fSl9fX0sTm9kZVVwZGF0ZWQ6ZnVuY3Rpb24oeCxhLGIsYyl7dGhpcy5teS5wYXJlbnQoKS5IaXN0b3J5LmVtaXQoeCxhLGIsY3x8bnVsbCl9LEVkaXRvckludm9rZWQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9YS5teS5yb290KCksZD1jLmhlaWdodCgpLGU9Yy5wYXJlbnRzKCIjanNlZGl0b3IiKS5lcSgwKSxmPWVbMF0uc2Nyb2xsVG9wLGc9ZS5vZmZzZXQoKS50b3AsaD1jLm9mZnNldCgpLnRvcC1nLGk9Yi5QaG8oIm15Iikucm9vdCgpLmhlaWdodCgpLTYyO2g+aS1kLTMwJiZlLmFuaW1hdGUoe3Njcm9sbFRvcDooaCtkK2YtaSs0MCkuY2xhbXAoMCwxZTYpKyJweCJ9LDEwMCl9fSxTYXZlQWxsOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPU9iamVjdC5jbG9uZShjdy5saWIuZHJ5KGMuZG9jKSwhMCksZT0kLkRlZmVycmVkKCksZj1iLmxhbmcsZz0iUE9TVCIsaD1bYy5wYXRoWzBdXSxpPXsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQuX2lkP2MuaXNOZXd8fCFkLl9yZXZ8fC9cLy8udGVzdChkLl9pZCl8fChnPSJQVVQiLGgucHVzaChkLl9pZCkpOmRlbGV0ZSBkLl9pZCxudWxsPT1kLl9pZCYmZGVsZXRlIGQuX3JldixqKGQpLmZhaWwoZnVuY3Rpb24oZyxoLGkpezQwOSE9Zz8oYXx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRS5hc3NpZ24oZysiOiAiK2woaS5yZWFzb258fGgpKSwiZXJyb3IiKSxlLnJlamVjdChnLGgsaSkpOmIuUmVxKHttZXRob2Q6IkdFVCIsdXJsOltjLnBhdGhbMF0sZC5faWRdfSkudGhlbihmdW5jdGlvbihnKXskLm15Lm1vZGFsKHttYW5pZmVzdDpiLlBobygiQ29uZmlybSIpLHdpZHRoOjUwMCxkYXRhOnt0ZXh0OmYuTVNHX0NPTkZMSUNULmFzc2lnbihtKGQuX2lkLDQwKSxtKGQuX3JldiwyNSksbShnLl9yZXYsMjUpKSx5ZXM6Zi5CVE5fQ09ORkxJQ1RfWUVTLG5vOmYuQlROX0NPTkZMSUNUX05PLGNhbmNlbDoiIix1c2VCdXR0b25zOiEwfSxjc3M6InhncmF5IGxoMTcwIHAyMCBwYjI1Iixlc2M6ITEsZW50ZXI6ITEsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oZCl7InllcyI9PWQuY21kPyhjLmRvYy5fcmV2PWcuX3JldixiLlNhdmVBbGwoeCxhKS50aGVuKGZ1bmN0aW9uKHgpe28oITApfSkuZmFpbChmdW5jdGlvbih4LGEsYil7ZS5yZWplY3QoeCxhLGIpfSkpOmsoKX0pLmZhaWwoayl9KS5mYWlsKGZ1bmN0aW9uKHgsYixjKXtjb25zb2xlLmxvZyh4LGIsYyksYXx8Y3cubGliLm5vdGUoZi5NU0dfQ09ORkxJQ1RfTE9BREZBSUwpLGUucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIGJ5IHVzZXIiLGYuTVNHX0NPTkZMSUNUX0xPQURGQUlMKX0pfSksZS5wcm9taXNlKCk7ZnVuY3Rpb24gaihhKXtyZXR1cm4gYi5SZXEoe3VybDpoLG1ldGhvZDpnLGhlYWRlcnM6aSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShhKSxkYXRhVHlwZToiUFVUIj09Zz8idGV4dCI6Impzb24ifSkudGhlbihmdW5jdGlvbihiKXt2YXIgZD1iO3RyeXtkPU9iamVjdC5pc1N0cmluZyhiKT9KU09OLnBhcnNlKGIpOmJ9Y2F0Y2goeCl7fWlmKHgpcmV0dXJuIG4oKSxlLnJlc29sdmUoJC5leHRlbmQoYSx7X2lkOmQuaWQsX3JldjpkLnJldn0pKTtjLmRvYy5fY29uZmxpY3RzJiZjLmRvYy5fY29uZmxpY3RzLmluZGV4T2YoYy5kb2MuX3Jldik+LTEmJmMucmV2P28uZGVib3VuY2UoMjApKGQucmV2KTpvLmRlYm91bmNlKDIwKSghMCl9KX1mdW5jdGlvbiBrKCl7YXx8Y3cubGliLm5vdGUoZi5NU0dfQ09ORkxJQ1RfQ0FOQ0VMTEVEKSxlLnJlamVjdCg5OTksIkNhbmNlbGxlZCBieSB1c2VyIixmLk1TR19DT05GTElDVF9DQU5DRUxMRUQpfWZ1bmN0aW9uIGwoeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX1mdW5jdGlvbiBtKHgsYSl7cmV0dXJuIGwoKHgrIiIpLnRydW5jYXRlKGF8fDE1LCJyaWdodCIsIuKApiIpKX1mdW5jdGlvbiBuKCl7JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpjLnBhdGhbMF0sY21kOiJ3cml0ZSIsZG9jczpbYy5kb2MuX2lkXX0pLGMucGF0aFswXT09Yi5QaG8oIlJlcGxpY2F0b3JEQiIpJiZjLmRvYy5jcmVhdGVfdGFyZ2V0PygvKGxvY2FsaG9zdHwxMjdcLjBcLjBcLjEpLy50ZXN0KGMuZG9jLnRhcmdldCsiIil8fC0xPT0oYy5kb2MudGFyZ2V0KyIiKS5pbmRleE9mKCIvIikpJiZmdW5jdGlvbigpeyQubXkucmFkaW8oImRibGlzdCIsWyJfcmVwbGljYXRvciIsKGMuZG9jLnRhcmdldCsiIikuc3BsaXQoIi8iKS5sYXN0KCldLmNvbXBhY3QoInRydWUiKSl9LmRlYm91bmNlKDMwMCkoKTokLm15LnJhZGlvKCJkYmxpc3QiLFtjLnBhdGhbMF1dKSxhfHxjdy5saWIubm90ZShmLk1TR19TQVZFLmFzc2lnbihtKGMuZG9jLl9pZCksbShjLnJldnx8Yy5kb2MuX3Jldnx8IiIpKSwib2siKX1mdW5jdGlvbiBvKHgpeyEwPT09eD8oYy5wYXRoWzFdPWMuZG9jLl9pZCxjLnBhdGgubGVuZ3RoPTIsYy5yZXY9IiIsYy5pc05ldyYmKGMuaXNOZXc9ITEsJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOmMudGFiaWQscGF0aDpjLnBhdGgsdGl0bGU6Yi50aXRsZSgpfSkpLGIuR2V0RG9jKCEwLCEwKS50aGVuKGZ1bmN0aW9uKCl7bigpLGUucmVzb2x2ZShjLmRvYyl9KS5mYWlsKGZ1bmN0aW9uKHgsYixjKXtyZXR1cm4gYXx8Y3cubGliLm5vdGUoZi5FUlJfU0FWRUxPQUQuYXNzaWduKHgrIjogIitsKGIpKSwiZXJyb3IiKSxlLnJlamVjdCh4LGYuRVJSX1NBVkVMT0FELmFzc2lnbihiKSxjKX0pKTpjLnJldiYmInN0cmluZyI9PXR5cGVvZiB4JiYoYy5yZXY9eCxjLnBhdGhbYy5wYXRoLmxlbmd0aC0xXT0iXyIreCxiLm15LnJlY2FsYygiI3N0YXRlLXByb3h5IiksbigpLGUucmVzb2x2ZShjLmRvYykpfX0sR2V0RG9jOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYyxkPXRoaXMsZT1kLmRhdGEsZj17Y29uZmxpY3RzOiEwLGxvY2FsX3NlcTohMCxyZXZzX2luZm86ITAsYXR0X2VuY29kaW5nX2luZm86ITB9O2lmKGQuQnVzeS5kZWJvdW5jZSgyMCkoITApLGUuaXNOZXcpe3ZhciBnPSQuRGVmZXJyZWQoKTtyZXR1cm4gZC5SZXEoWyJfdXVpZHMiLHtjb3VudDo1fV0pLnRoZW4oZnVuY3Rpb24oeCl7ZS5kb2MuX2lkPWUuZG9jLl9pZHx8KHgudXVpZHN8fFsiIl0pLnNhbXBsZSgpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZS5kb2MuX2lkfHwoZS5kb2MuX2lkPU51bWJlci5yYW5kb20oNzgzNjQxNjQwOTYsMjgyMTEwOTkwNzQ1NSkudG9TdHJpbmcoMzYpKSxkLkRvYz1be2RibmFtZTplLnBhdGhbMF0scmV2aXNpb246IiIsYmFzZXVybDpkLlBobygiQmFzZSIpLGRvYzpkLmRhdGEuZG9jfV0sZC5CdXN5LmRlYm91bmNlKDUwKSghMSksZy5yZXNvbHZlKCl9KSxnLnByb21pc2UoKX1yZXR1cm4gZS5wYXRoLmxlbmd0aD4oIl9kZXNpZ24iPT1lLnBhdGhbMV0/MzoyKT8oYz1lLnBhdGgubGFzdCgpLnJlcGxhY2UoL15cRCsvLCIiKSxiPWUucGF0aC50bygtMSkpOmI9ZS5wYXRoLnNsaWNlKDApLGUuYXR0cyYmYi5wdXNoKHthdHRhY2htZW50czohMCxhdHRfZW5jb2RpbmdfaW5mbzohMH0pLGc9JC5EZWZlcnJlZCgpLGM/ZC5SZXEoYi5jb25jYXQoWyQuZXh0ZW5kKCEwLHt9LGYse3JldjpjfSldKSkudGhlbihmdW5jdGlvbih4KXtlLmRvYz1qKHgpLGQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7ZS5kb2M9JC5leHRlbmQoZS5kb2MsT2JqZWN0LnNlbGVjdCh4LFsiX2NvbmZsaWN0cyIsIl9yZXZzX2luZm8iLCJfbG9jYWxfc2VxIl0pKSxrKGUuZG9jKX0pLmZhaWwoZnVuY3Rpb24oKXtlLnJldnM9W2NdLGUuY29uZmlsY3RzPVtdfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Zy5yZXNvbHZlKCl9KX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2cucmVqZWN0KHgsYSxiKX0pOmQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7aSh4KSxnLnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oKXtiPVtiWzBdLCJfYWxsX2RvY3MiLHtrZXk6ZS5wYXRoLmZyb20oMSkuam9pbigiLyIpLGluY2x1ZGVfZG9jczohMH1dLGQuUmVxKGIuY29uY2F0KFtmXSkpLnRoZW4oZnVuY3Rpb24oeCl7eC5yb3dzJiZ4LnJvd3NbMF0mJngucm93c1swXS5kb2M/KGkoeC5yb3dzWzBdLmRvYyksZy5yZXNvbHZlKCkpOmcucmVqZWN0KDQwNCwiTm90IGZvdW5kIil9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtnLnJlamVjdCh4LGEsYil9KX0pLGcuYWx3YXlzKGZ1bmN0aW9uKCl7aCgpLGQuQnVzeS5kZWJvdW5jZSg1MCkoITEpfSksZztmdW5jdGlvbiBoKCl7YSYmZC5SZXZzTGlzdCgiI2FwcC1yZXYiKSxkLkRvYz1be2RibmFtZTplLnBhdGhbMF0scmV2aXNpb246ZS5yZXYsYmFzZXVybDpkLlBobygiQmFzZSIpLGRvYzpkLmRhdGEuZG9jfV0sZC5IaXN0b3J5LmNsZWFyKCEwKSxkLm15LnRyaWdnZXIoIiNzdGF0ZS1wcm94eSIsInJlc2V0dGFiaGFzaC5teSIpLHgmJmQubXkucmVkcmF3KCl9ZnVuY3Rpb24gaSh4KXtlLmRvYz1qKHgpLGsoZS5kb2MpfWZ1bmN0aW9uIGooeCl7cmV0dXJuICQuZXh0ZW5kKHguX2F0dGFjaG1lbnRzP3tfaWQ6IiIsX3JldjoiIixfYXR0YWNobWVudHM6e319OntfaWQ6IiIsX3JldjoiIn0seCl9ZnVuY3Rpb24gayh4KXtPYmplY3QuaXNBcnJheSh4Ll9yZXZzX2luZm8pJiYoeC5fcmV2c19pbmZvPXguX3JldnNfaW5mby5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuImF2YWlsYWJsZSI9PXguc3RhdHVzfSkpLGUuY29uZmxpY3RzPXguX2NvbmZsaWN0c3x8W10sZS5yZXZzPSh4Ll9yZXZzX2luZm98fFtdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmV2fSl9fSxHZXRBdHRzOmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPWIuZGF0YSxkPVtdO3JldHVybiBjLnBhdGgubGVuZ3RoPigiX2Rlc2lnbiI9PWMucGF0aFsxXT8zOjIpPyhhPWMucGF0aC5sYXN0KCkucmVwbGFjZSgvXlxEKy8sIiIpLGQ9Yy5wYXRoLnRvKC0xKSk6ZD1jLnBhdGgsYSYmZC5wdXNoKHtyZXY6YX0pLGQucHVzaCh7YXR0YWNobWVudHM6ITAsYXR0X2VuY29kaW5nX2luZm86ITB9KSx4fHxiLkJ1c3kuZGVib3VuY2UoMTApKCEwKSxjLmF0dHM9ITAsYi5SZXEoZCkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4geD9hOihhLl9hdHRhY2htZW50cyYmKGMuZG9jLl9hdHRhY2htZW50cz1hLl9hdHRhY2htZW50cyksYi5Eb2M9W3tkYm5hbWU6Yy5wYXRoWzBdLHJldmlzaW9uOmMucmV2LGJhc2V1cmw6Yi5QaG8oIkJhc2UiKSxkb2M6Yi5kYXRhLmRvY31dLGIubXkudHJpZ2dlcigiI3N0YXRlLXByb3h5IiwicmVzZXR0YWJoYXNoLm15IiksYi5teS5yZWRyYXcoKSxhKX0pLmZhaWwoZnVuY3Rpb24oKXt9KS5hbHdheXMoZnVuY3Rpb24oKXt4fHxiLkJ1c3koITEpfS5kZWJvdW5jZSgyMCkpfSxEZWxEb2M6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9T2JqZWN0LmNsb25lKGN3LmxpYi5kcnkoYS5kb2MpLCEwKSxjPWEucmV2c1swXSYmYS5yZXZzWzBdPT1hLmRvYy5fcmV2LGQ9LTEhPWEuY29uZmxpY3RzLmluZGV4T2YoYS5kb2MuX3Jldnx8IiIpLGU9eC5sYW5nLGY9ZnVuY3Rpb24oeCl7cmV0dXJuKHgrIiIpLmVzY2FwZUhUTUwoKX0sZz1mdW5jdGlvbih4LGEpe3JldHVybiBmKCh4KyIiKS50cnVuY2F0ZShhfHwxNSwicmlnaHQiLCLigKYiKSl9LGg9JC5EZWZlcnJlZCgpLGk9W2EucGF0aFswXSxiLl9pZCx7cmV2OmIuX3Jldn1dLGo9JzxkaXYgY2xhc3M9Im1iMTAiPnsxfTwvZGl2Pic7cmV0dXJuICQubXkubW9kYWwoe3dpZHRoOjM1MCxtYW5pZmVzdDokLmV4dGVuZCghMCx7fSx4LlBobygiQ29uZmlybSIpLHt1aTp7J2lucHV0W25hbWU9InJldGFpbiJdJzoicmV0YWluIn0sc3R5bGU6eyIgbGFiZWwiOiJtYXJnaW46MDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOmluaGVyaXQ7In19KSxkYXRhOntyZXRhaW46Im5vIix0ZXh0OltkPyIiOic8ZGl2IGNsYXNzPSJmczEzMCByZWQgbWI1Ij4nK2UuVFhUX0RFTF9USVRMRSsiPC9kaXY+IixkPyc8ZGl2IGNsYXNzPSJmczEzMCBvcmFuZ2UgbWI1Ij4nK2UuVFhUX0RFTF9USVRMRV9DT05GTElDVCsiPC9kaXY+IjoiIixqLmFzc2lnbihlLlRYVF9ERUxfV0FSTi5hc3NpZ24oZyhiLl9pZCwyNSksZyhhLnBhdGhbMF0sMjUpKSksai5hc3NpZ24oWyc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9Im5vIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfQUxMKyI8L2xhYmVsPiIsJzxsYWJlbCBjbGFzcz0ieGdyYXkiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmV0YWluIiB2YWx1ZT0icmV0YWluIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfUkVUQUlOKyI8L2xhYmVsPiJdLmNvbmNhdCh4LlBobygiQ291Y2giKS52ZXI+PSIwMDIuMDAzLiI/Wyc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9InB1cmdlIiBjbGFzcz0ibXI2Ij4gJytlLkxCTF9ERUxfUFVSR0UrIjwvbGFiZWw+Il06W10pLmpvaW4oIiIpKSxhLmNvbmZsaWN0cy5sZW5ndGgmJmM/ai5hc3NpZ24oZS5UWFRfREVMX05PREVMKToiIixkP2ouYXNzaWduKGUuVFhUX0RFTF9DT05GTElDVCk6IiJdLmNvbXBhY3QoITApLmpvaW4oIiIpLHllc2NzczpkPyJvcmFuZ2UiOiJyZWQiLHllczplLkJUTl9ERUxfU1RBUlQsbm86ZS5CVE5fQ0FOQ0VMLGNhbmNlbDoiIn0sY3NzOiJsaDE2MCB4Z3JheSBwMjAgcGIyNSJ9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKCJ5ZXMiIT14LmNtZClyZXR1cm4gaC5yZWplY3QoOTk5LCJDYW5jZWxsZWQiLCJDYW5jZWxsZWQiKTtrKHgucmV0YWluKyIiKX0pLmZhaWwoZnVuY3Rpb24oKXtoLnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpfSksaC5wcm9taXNlKCk7ZnVuY3Rpb24gayhjKXt2YXIgZCxqLGssbT17bm86e3VybDppLG1ldGhvZDoiREVMRVRFIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifX0scmV0YWluOnt1cmw6W2EucGF0aFswXSwiX2J1bGtfZG9jcyJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoe2RvY3M6W09iamVjdC5tZXJnZSh7X2RlbGV0ZWQ6ITB9LGIpXX0pfSxwdXJnZTp7dXJsOlthLnBhdGhbMF0sIl9wdXJnZSJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGE6SlNPTi5zdHJpbmdpZnkoKGQ9Yi5faWQsaj1iLl9yZXYsaz17fSxrW2RdPVtqXSxrKSl9fVtjXTtyZXR1cm4geC5SZXEobSkudGhlbihmdW5jdGlvbihkKXtjdy5saWIubm90ZShlLk1TR19ERUxfT0suYXNzaWduKGcoYi5faWQpLGcoYS5wYXRoWzBdKSksIm9rIik7dHJ5eyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6YS5wYXRoWzBdLGNtZDoiZGVsZXRlIixkb2NzOltiLl9pZF19KSwkLm15LnJhZGlvKCJkYmxpc3QiLFthLnBhdGhbMF1dKX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX0icHVyZ2UiIT1jJiZhLmNvbmZsaWN0cy5sZW5ndGg/bCghMCk6KGZ1bmN0aW9uKCl7eC5teS5yb290KCkudHJpZ2dlcigidGFiY2xvc2UiLHt0YWJpZDphLnRhYmlkLGVuZm9yY2U6ITB9KX0uZGVib3VuY2UoMTAwKSgpLGgucmVzb2x2ZShkKSl9KS5mYWlsKGZ1bmN0aW9uKHgsYyxkKXtyZXR1cm4gY3cubGliLm5vdGUoZS5NU0dfREVMX0ZBSUwuYXNzaWduKGcoYi5faWQpLHgsZihjKSksImVycm9yIiksJC5teS5yYWRpbygiZGJ1cGRhdGUiLGEucGF0aFswXSksaC5yZWplY3QoeCxjLGQpfSl9ZnVuY3Rpb24gbChjKXthLnBhdGhbMV09Yi5faWQsYS5wYXRoLmxlbmd0aD0yO3ZhciBkPWEucmV2O2EucmV2PSIiLGQmJiQubXkucmFkaW8oInBhdGhjaGFuZ2UiLHtpZDphLnRhYmlkLHBhdGg6YS5wYXRoLHRpdGxlOngudGl0bGUoKX0pLHguR2V0RG9jKCEwKS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZS5NU0dfREVMX1JFTE9BRCwiIiw0ZTMpLHguUmV2c0xpc3QoIiNhcHAtcmV2IiksaC5yZXNvbHZlKGEuZG9jKX0pLmZhaWwoZnVuY3Rpb24oYixjLGQpe2N3LmxpYi5ub3RlKGUuTVNHX0RFTF9SRUxPQURfRkFJTC5hc3NpZ24oZyhhLmRvYy5faWQpLGIsZihjKSksImVycm9yIiksaC5yZWplY3QoYixjLGQpLHgubXkudHJpZ2dlcigiI2J0bi1kZWwtZG9jIiwidGFiY2xvc2UiLHt0YWJpZDphLnRhYmlkLGVuZm9yY2U6ITB9KX0pfX0sUmV2c0xpc3Q6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9W3tpZDoiIix0ZXh0OmF8fGIubGFuZy5UWFRfUkVWfV07ZnVuY3Rpb24gZSh4KXt2YXIgYT14LnRleHQucmVwbGFjZSgiLSIsIuKAkyIpLnRydW5jYXRlKDE3LCJtaWRkbGUiLCc8c3BhbiBjbGFzcz0ib3JhbmdlIj7igKY8L3NwYW4+Jyk7cmV0dXJuIngiPT1hWzBdJiYoYT0nPHNwYW4gY2xhc3M9InJlZDEgYm9sZGVyIj7igKA8L3NwYW4+4oCJJythLmZyb20oMSkpLCI8bm9icj4iK2ErIjwvbm9icj4ifWMuY29uZmxpY3RzLmZvckVhY2goZnVuY3Rpb24oeCl7ZC5wdXNoKHtpZDp4LHRleHQ6IngiK3h9KX0pLGMucmV2cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe2QucHVzaCh7aWQ6eCx0ZXh0Onh9KX0pLGIuc2VsZWN0MihiLm15LmZpbmQoeCkse2RhdGE6ZCxmb3JtYXRSZXN1bHQ6ZSxmb3JtYXRTZWxlY3Rpb246ZSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDozfSl9LEFwcGx5RWRzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSh4LmRhdGEsJC5EZWZlcnJlZCgpKSxiPXgubXkuZmluZCgiI2pzZWRpdG9yIGJ1dHRvbiNidG4tY2hhbmdlOnZpc2libGUiKSxjPWIubGVuZ3RoO3JldHVybiBjP3gubXkubW9kYWwoIiNidG4tZG9jLXNhdmUiLHttYW5pZmVzdDp4LlBobygiQ29uZmlybSIpLGRhdGE6e3RleHQ6eC5sYW5nLk1TR19FRFMseWVzOngubGFuZy5CVE5fRURTX1lFUyxubzp4LmxhbmcuQlROX0VEU19OTyx1c2VCdXR0b25zOiEwfSx3aWR0aDo0NTAsejoxOTk1LHNjcmVlbjohMCxnbG9iYWw6ITAsZm9jdXM6IiNidG4teWVzIn0pLnRoZW4oZnVuY3Rpb24oeCl7aWYoInllcyIhPXguY21kKXJldHVybiBhLnJlc29sdmUoKSx2b2lkIDA7Yi5lYWNoKGZ1bmN0aW9uKHgsYil7JChiKS50cmlnZ2VyKCJjbGljayIpLHg9PWMtMSYmYS5yZXNvbHZlLmRlbGF5KDQwMCl9LmxhenkoMjApKX0pLmZhaWwoZnVuY3Rpb24oKXthLnJlamVjdCgpfSk6YS5yZXNvbHZlKCksYS5wcm9taXNlKCl9LE5ld0RvY1RndDp7aWQ6ImN3LlBob3Rvbi4kZG9jLk5ld0RvY1RndCIsaW5oZXJpdDpbIlBobyJdLGRhdGE6e30sbmV3X2RiOiIiLG5ld19pZDoiIixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5uZXdfZGI9Yi5wYXRoWzBdLGEubmV3X2lkPWIuZG9jLl9pZCx4Lmh0bWwoJC5teS5mb3JtZ2VuKGEuSFRNTCkuYXNzaWduKGEubGFuZykpfSx1aTp7IiN0Z3QtZGIiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5zZWxlY3QyKHtkYXRhOk9iamVjdC5rZXlzKGEuUGhvKCJBbGwiKSkuc29ydCgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbXVsdGlwbGU6ITF9KX0sYmluZDoidGhpcy5uZXdfZGIifSwiI3RndC1pZCI6e2JpbmQ6InRoaXMubmV3X2lkIixjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMubGFuZztyZXR1cm4gYT9hPT14LmRvYy5faWQmJnRoaXMubmV3X2RiPT14LnBhdGhbMF0/Yi5FUlJfSURfRVE6YSYmIS9eX2Rlc2lnblwvLiskLy50ZXN0KGEpJiYiXyI9PWFbMF0/Yi5FUlJfSURfVVNDOnZvaWQgMDpiLkVSUl9JRF9SRVF9LHdhdGNoOlsiI3RndC1kYiJdfSwiI2J0bi1hcHBseSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5wYXRoWzBdPXRoaXMubmV3X2RiLHguZG9jLl9pZD10aGlzLm5ld19pZCx0aGlzLm15LmNvbW1pdCgpKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiF0aGlzLm15LnZhbGlkKCl9fSx3YXRjaDpbIiN0Z3QtZGIiLCIjdGd0LWlkIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sSFRNTDpbJzxkaXYgY2xhc3M9ImZzMTUwIGxoMTQwIGZ3NTAwIG1iOCI+e1RYVF9USVRMRX08L2Rpdj4nLHtyb3c6IjQwMHB4IixsYWJlbDoiMTAwcHgiLHJvd0NzczoibXktcm93IHBiOCIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAifSxbIntMQkxfREJ9IiwiaW5wI3RndC1kYi53MTAwcC5mczExNSJdLFsie0xCTF9JRH0iLCJpbnAjdGd0LWlkLncxMDBwLmZzMTAwIix7cGxjOiJOb24tZW1wdHkgc3RyaW5nIn0sIm1zZyJdLCc8ZGl2IGNsYXNzPSJwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLWFwcGx5IiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9BUFBMWX08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iXSxsYW5nOntlbjp7VFhUX1RJVExFOiJOZXcgZG9jIGxvY2F0aW9uIixMQkxfREI6IlRhcmdldCBEQiIsTEJMX0lEOiJOZXcgZG9jIF9pZCIsQlROX0FQUExZOiJTYXZlIG5ldyBkb2MiLEJUTl9DQU5DRUw6IkNhbmNlbCIsRVJSX0lEX0VROiJOZXcgX2lkIG11c3QgYmUgZGlmZmVyZW50LCBvciBjaGFuZ2UgREIiLEVSUl9JRF9SRVE6Ik5vbi1lbXB0eSBzdHJpbmcgcmVxdWlyZWQiLEVSUl9JRF9VU0M6IkRvYyBfaWQgY2Fu4oCZdCBzdGFydCB3aXRoIF8gc3ltYm9sIn19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjIycHg7In19fSwkZmlsZTp7aWQ6ImN3LlBob3Rvbi4kZmlsZSIsbGFuZzp7fSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGN3LmxpYi5jcmMyKHt0ZXh0OnRoaXMuZGF0YS50ZXh0LnJlcGxhY2UoL1xyXG4vZywiXG4iKX0pfSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1hLnBhdGgsYz1hLmRvYy5faWQ7cmV0dXJuW3gudHJ1bmMoIl9kZXNpZ24vIj09Yy50byg4KT8iX2QiK2MuZnJvbSg3KToiX3VzZXJzIj09YlswXT9jLmZyb20oMTcpOmMsOCksIuKAiS/igIkiLGEuZm5hbWVdLmpvaW4oIiIpfSxtYXRjaDpmdW5jdGlvbih4LGEpe2lmKGEpe3ZhciBiPXhbMV0sYz14WzJdO3JldHVybiB4Lmxlbmd0aD4yJiYiXyIhPWNbMF0mJigiXyIhPWJbMF18fC9eX2Rlc2lnblwvLy50ZXN0KGIpKT97dHlwZToiZmlsZSIsdGl0bGU6W3RoaXMudHJ1bmMoYiw4KSx4LnNsaWNlKDIpLmpvaW4oIi8iKV0uam9pbigi4oCJL+KAiSIpLGFwcERhdGE6e2ZuYW1lOnguc2xpY2UoMikuam9pbigiLyIpLGRvYzp7X2lkOmJ9fX06dm9pZCAwfX0sc2VhcmNoUmU6bnVsbCxkYXRhOntwYXRoOltdLHNlYXJjaDoiIixmbmFtZToiIixmbmFtZTA6IiIsdGV4dDoiIixzcmM6IiIsbWltZToidGV4dC9wbGFpbiIsZG9jOntfaWQ6IiJ9fSxwYXJhbXM6e3Jlc3R5bGU6MjAsc3RyaWN0OiEwfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuIGIuZm5hbWUwPWIuZm5hbWUsYS5HZXRGaWxlKCkudGhlbihmdW5jdGlvbigpe3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpfSl9LHVpOnsiI2FwcC10aXRsZSI6e2RlbGF5OjUwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5wMnUsYj0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKGEoeC5wYXRoWzBdKSx0aGlzLnRydW5jKHgucGF0aFswXSwxNSkuZXNjYXBlSFRNTCgpLHgucGF0aFswXS5lc2NhcGVIVE1MKCkpLGM9eC5kb2MuX2lkfHx4LnBhdGhbMV0rKCJfZGVzaWduIj09eC5wYXRoWzFdPyIvIit4LnBhdGhbMl06IiIpLGQ9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9InsxfSIgdGl0bGU9InszfSI+ezJ9PC9hPicuYXNzaWduKFsiIyIsYSh4LnBhdGhbMF0pLGEoYyldLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCksYy5lc2NhcGVIVE1MKCksYy5sZW5ndGg+MTU/Yy5lc2NhcGVIVE1MKCk6IiIpO3JldHVyblsnPHNwYW4gY2xhc3M9ImZzMTQwIGxoMTMwIHhncmF5IG84MCI+JywnPHNwYW4gY2xhc3M9Im84MCI+ezJ9PC9zcGFuPuKAiS/igIk8c3BhbiBjbGFzcz0iIj57MX08L3NwYW4+4oCJL+KAiTxzcGFuIGNsYXNzPSIiPnszfTwvc3Bhbj4nLCI8L3NwYW4+Il0uam9pbigiIikuYXNzaWduKGQsYix4LmZuYW1lLmVzY2FwZUhUTUwoKSl9LHdhdGNoOlsiI2FwcC1yZXYiLCIjdHh0ZWRpdG9yIl19LCIjYXBwLXNlYXJjaCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiBudWxsIT1hJiYoeC5zZWFyY2g9YSkseC5zZWFyY2gubGVuZ3RoPDI/Yi5zZWFyY2hSZT1udWxsOmIuc2VhcmNoUmU9bmV3IFJlZ0V4cCgiKCIrUmVnRXhwLmVzY2FwZSh4LnNlYXJjaCkrIikiLCJpIikseC5zZWFyY2h9LGNzczp7Im15LXNlYXJjaCI6L14uezIsfSQvfX0sIiNmb3VuZCI6e2RlbGF5OjEzMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5vbigiY2xpY2subXkiLCIucHNldWRvbGluayIsZnVuY3Rpb24oKXt2YXIgeD0rJCh0aGlzKS50ZXh0KCksYj1hLm15LmZpbmQoIiN0eHRlZGl0b3IiKS5uZXh0KClbMF0uQ29kZU1pcnJvcjtiLnNjcm9sbEludG9WaWV3KHtsaW5lOngsY2hhcjoxfSw0OCk7dmFyIGM9ZnVuY3Rpb24oKXtiLmFkZExpbmVDbGFzcyh4LTEsImJhY2tncm91bmQiLCJiZy15ZWxsb3c0IiksZnVuY3Rpb24oKXtiLnJlbW92ZUxpbmVDbGFzcyh4LTEsImJhY2tncm91bmQiLCJiZy15ZWxsb3c0Iil9LmRlYm91bmNlKDEwMCkoKX07Yy5kZWJvdW5jZSgxMDApKCksYy5kZWJvdW5jZSgzMDApKCl9KX0sYmluZDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLnNlYXJjaFJlLGI9W107cmV0dXJuIGEmJih4LnRleHQubGluZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKHgsYyl7Yi5sZW5ndGg8MTAwJiZhLnRlc3QoeCkmJmIucHVzaChjKzEpfSksYi5sZW5ndGgpP1snPGRpdiBjbGFzcz0iYnIyIHllbGxvdy0xIGJnLXllbGxvdzQgcGw3IHByNyBwdDIgcGIyIGZzOTAgbGgxMzAiPicsIiBGb3VuZCBAICIsYi5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuJzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiI+Jyt4KyI8L3NwYW4+In0pLmpvaW4oIiwgIiksIjwvZGl2PiJdLmpvaW4oIiIpOiIifSxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zZWFyY2hSZX19LHdhdGNoOiIjYXBwLXNlYXJjaCJ9LCIjdHh0ZWRpdG9yIjp7ZGVsYXk6MTAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6Yi5taW1lfHwidGV4dC9wbGFpbiIsbGluZU51bWJlcnM6ITAsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOihudWxsLCJuYXRpdmUiKSxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLGluZGVudFdpdGhUYWJzOiExLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seTohMSxleHRyYUtleXM6eyJDdHJsLVMiOmZ1bmN0aW9uKCl7YS5TYXZlRmlsZSgpfSwiQ21kLVMiOmZ1bmN0aW9uKCl7YS5TYXZlRmlsZSgpfSwiQ3RybC1GIjpjLCJDbWQtRiI6Y30sc3R5bGVTZWxlY3RlZFRleHQ6ITAsaGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlczp7bWluQ2hhcnM6M319KTt4WzBdLm5leHRTaWJsaW5nLkNvZGVNaXJyb3I7ZnVuY3Rpb24gYygpe3ZhciBjPXhbMF0ubmV4dFNpYmxpbmcuQ29kZU1pcnJvci5nZXRTZWxlY3Rpb24oKTtjLmxlbmd0aD4yJiYoYi5zZWFyY2g9Yi5zZWFyY2g9PWM/IiI6YyxhLm15LnJlY2FsYygiI2FwcC1zZWFyY2giKSxhLm15LmNoZWNrKCIjYXBwLXNlYXJjaCIpKX19LGJpbmQ6InRleHQifSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5HZXRGaWxlKCl9fSwiI2J0bi1maWxlLXNhdmUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5jbWRTYXZlKCl9fX0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI2VkY29udGFpbmVyIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxjbWRTYXZlOmZ1bmN0aW9uKCl7dGhpcy5TYXZlRmlsZSgpfSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzE1NSBmczk1Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIGJsdWUgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXBwLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXI4IiB0aXRsZT0ie1BMQ19SRUxPQUR9Ij48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgaWQ9ImFwcC10aXRsZSIgY2xhc3M9ImRpYiB2YXQgZWxsIG1yMjAgbnciPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1maWxlLXNhdmUiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fU0FWRX08L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBwbDIwIHByMjAgcHQxNiBwYjE2Ij48ZGl2IGlkID0gImVkY29udGFpbmVyIiBjbGFzcz0icGFuZWxoZWlnaHQtMzIgYmFzIG9oIGJyMiIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjx0ZXh0YXJlYSBpZD0idHh0ZWRpdG9yIiBjbGFzcz0idzEwMHAgcGFuZWxoZWlnaHQtMzIiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBpZD0iZm91bmQiIGNsYXNzPSJoaWRlIHcxNDUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OiszO3RvcDoyMXB4O3JpZ2h0OjI0cHg7Ij48L2Rpdj48L2Rpdj48ZGl2IGlkPSJzdGF0ZS1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2Picsc3R5bGU6eyIgLkNvZGVNaXJyb3IiOiJmb250LXNpemU6ODclIWltcG9ydGFudDtoZWlnaHQ6MTAwJTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjpmdW5jdGlvbih4KXtyZXR1cm4ibWluLWhlaWdodDoiKyh0aGlzLlBobygiUGFuZWxIZWlnaHQiKS0zNCkrInB4OyJ9LCIgLm15LW1vZGFsLWZvcm0iOnsiIC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OmNhbGMoMTggKiAxN3B4ICsgNnB4KTsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiLmVkLWVycm9yIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAuQ29kZU1pcnJvciI6Im1pbi1oZWlnaHQ6MTUwcHg7IGhlaWdodDphdXRvOyIsIiAuYnV0dG9ucyBidXR0b24iOiJtYXJnaW4tcmlnaHQ6IDJweDtwYWRkaW5nOiAwLjRlbSAwLjdlbSAwLjRlbSAwLjdlbTtmb250LXNpemU6IDkwJTsifSwiICNhcHAtdGl0bGUiOiJtYXgtd2lkdGg6Y2FsYygxMDAlIC0gMzMwcHgpOyJ9LEdldEZpbGU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9e3VybDphLnBhdGguc2xpY2UoMCksZGF0YVR5cGU6InRleHQiLHRpbWVvdXQ6M2U0LGNhaGNlOiExLGhlYWRlcnM6e0FjY2VwdDoiKi8qIn19O3JldHVybiB4LkJ1c3kuZGVib3VuY2UoMTApKCEwKSx4LlJlcShiKS50aGVuKGZ1bmN0aW9uKGIsYyl7YS5zcmM9YS50ZXh0PWIsYS5taW1lPWMuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpKyIiLHgubXkudHJpZ2dlcigiI2VkY29udGFpbmVyIiwicmVzZXR0YWJoYXNoLm15IikseC5teS5yZWRyYXcoKX0pLmZhaWwoZnVuY3Rpb24oKXt9KS5hbHdheXMoZnVuY3Rpb24oKXt4LkJ1c3koITEpfS5kZWJvdW5jZSgxNSkpfSxTYXZlRmlsZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9Yi5wYXRoLnRvKCJfZGVzaWduIj09Yi5wYXRoWzFdPzM6MiksZD17dXJsOmMuc2xpY2UoMCksbWV0aG9kOiJwdXQiLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxkYXRhOiIifSxlPSQuRGVmZXJyZWQoKSxmPWEubGFuZyxnPSIiO3JldHVybiBhLkJ1c3kuZGVib3VuY2UoMTApKCEwKSxhLlJlcShjKS50aGVuKGZ1bmN0aW9uKHgpe3guX2F0dGFjaG1lbnRzfHwoeC5fYXR0YWNobWVudHM9e30pLHguX2F0dGFjaG1lbnRzW2IuZm5hbWVdPXtjb250ZW50X3R5cGU6Yi5taW1lLGRhdGE6Y3cubGliLmJhc2U2NChiLnRleHQpfSxnPXguX3JldixkLmRhdGE9SlNPTi5zdHJpbmdpZnkoeCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuUmVxKGQpfSkudGhlbihmdW5jdGlvbigpe3h8fGN3LmxpYi5ub3RlKGYuTVNHX1NBVkUuYXNzaWduKGkoYi5mbmFtZSw0MCksaShiLmRvYy5faWQsMjApKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmIucGF0aFswXSxjbWQ6IndyaXRlIixkb2NzOltiLmRvYy5faWRdfSksJC5teS5yYWRpbygiZGJsaXN0IixbYi5wYXRoWzBdXSksJC5teS5yYWRpbygiZmlsZXVwZGF0ZSIse2RiOmIucGF0aFswXSxkb2M6Yi5kb2MuX2lkLHJldjpnLGZpbGU6Yi5mbmFtZX0pLGEubXkudHJpZ2dlcigiI2VkY29udGFpbmVyIiwicmVzZXR0YWJoYXNoLm15IiksZS5yZXNvbHZlKCl9KS5mYWlsKGZ1bmN0aW9uKGEsYyxkKXt4fHxjdy5saWIubm90ZShmLkVSUl9TQVZFLmFzc2lnbihpKGIuZm5hbWUsNDApLGErIjogIitoKGQucmVhc29ufHxjKSksImVycm9yIiksZS5yZWplY3QoYSxjLGQpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7YS5CdXN5KCExKX0uZGVib3VuY2UoMTUpKSxlLnByb21pc2UoKTtmdW5jdGlvbiBoKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9ZnVuY3Rpb24gaSh4LGEpe3JldHVybiBoKCh4KyIiKS50cnVuY2F0ZShhfHwxNSwicmlnaHQiLCLigKYiKSl9fX0sJGNvbmZpZzp7aWQ6ImN3LlBob3Rvbi4kY29uZmlnIixsYW5nOnt9LHBhcmFtczp7cmVzdHlsZToyNSxzdHJpY3Q6ITB9LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4gY3cubGliLmNyYzIoKHRoaXMuRG9jWzBdfHx7fSkuZG9jfHx7fSl9LHRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIkNvdWNoREIgY29uZmlnIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYXx8MSE9eC5sZW5ndGh8fCJfY29uZmlnIiE9eFswXT9udWxsOnt0aXRsZToiQ291Y2hEQiBjb25maWcifX0sZGF0YTp7cGF0aDpbXSxub2RlOiIiLGRvYzp7fSxzdGFtcDowfSxEb2M6W10sT2xkOnt9LE5vZGVzOltdLE1lbWJlcnNDaGVja2VkOiExLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7eC5hZGRDbGFzcygibnciKSxhLkhUTUwuSGlzdG9yeVJvdz1hLlBobygiQ29tcGlsZVQiKShhLkhUTUwuSGlzdG9yeVJvdyksYS5IaXN0b3J5LmluaXQoYSx4KTt2YXIgYj1hLmxhbmcuSEVMUDtyZXR1cm4gJC5leHRlbmQoYi5jaHR0cGRfYXV0aCxPYmplY3QucmVqZWN0KGIuY291Y2hfaHR0cGRfYXV0aCxbIl9fIiwiIl0pKSwkLmV4dGVuZChiLmNodHRwZCxPYmplY3QucmVqZWN0KGIuaHR0cGQsWyJfXyIsIiJdKSksYS5HZXQoITEsITApLnRoZW4oZnVuY3Rpb24oYil7eC5odG1sKGEuSFRNTC5BcHAuYXNzaWduKGEubGFuZykuYXNzaWduKHtUSVRMRV9IVE1MOmEuSFRNTC5UaXRsZUhUTUxbYS5QaG8oImlzQ2x1c3RlciIpPzE6MF19KSl9KX0sdWk6eyIjYXBwLXRpdGxlIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuTm9kZXMubGVuZ3RoPjEmJmEuc2VsZWN0Mih4LHtkYXRhOmEuTm9kZXMubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LHRleHQ6eH19KSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztyZXR1cm4gYi5Ob2Rlcy5sZW5ndGg8Mj93aW5kb3cubG9jYXRpb24uaG9zdDoobnVsbCE9YSYmeC5ub2RlIT1hJiYoeC5ub2RlPWEsZnVuY3Rpb24oKXtiLkdldCghMCkudGhlbihmdW5jdGlvbigpe2IuSGlzdG9yeS5jbGVhcighMCl9KX0uZGVsYXkoMjApKSx4Lm5vZGUpfX0sIiNhcHAtc2VhcmNoIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP3guc2VhcmNoOih4LnNlYXJjaD1hLmxlbmd0aDwzPyIiOmEsdGhpcy5Eb2NbMF0mJnRoaXMuRG9jWzBdLnNlYXJjaCE9eC5zZWFyY2gmJnRoaXMubXkuZmluZCgiI2pzb24tc2VhcmNoIikudmFsKHguc2VhcmNoKS50cmlnZ2VyKCJjaGVjayIpLGEpfSxjc3M6eyJteS1zZWFyY2giOi9eLnszLH0kL319LCIjanNlZGl0b3IiOntkZWxheToxMDAsY2hlY2s6ITEsbGlzdDoiPGRpdj48L2Rpdj4iLG1lcmdlOiExLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLm5pY2VTY3JvbGwoeCx7Ym91bmNlc2Nyb2xsOiEwLGN1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4wNyxjdXJzb3JvcGFjaXR5bWF4Oi40fSkseC5vbigiY2xpY2subXkiLCIuYnRuLWhlbHAiLGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKSxiPXgucGFyZW50KCkucGFyZW50KCksYz1iLm15KCJkYXRhIiksZD1jLnBhdGguc2xpY2UoMSkuY29uY2F0KFtjLmtleV0pO2lmKHguZGF0YSgibW9kYWwiKSlyZXR1cm4gJCh0aGlzKS5tb2RhbCghMCk7ZFsxXXx8KGRbMV09IiIpO3ZhciBlPWIubXkoIm1hbmlmZXN0IikuSGVscChkKTt4LnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGIuYWRkQ2xhc3MoImhvdmVyIiksJCh0aGlzKS5tb2RhbCh7bWFuaWZlc3Q6e2luaXQ6Wyc8ZGl2IGlkPSJpbmZvLXRpdGxlIiBjbGFzcz0iZnMxMTAgYm9sZGVyIG10MyBtYjciPjwvZGl2PicsJzxkaXYgaWQ9ImluZm8taGVscCIgc3R5bGU9IndvcmQtYnJlYWs6bm9ybWFsOyI+PC9kaXY+JywnPGRpdiBpZD0iaW5mby11cmwiIGNsYXNzPSJtdDciPjwvZGl2PiddLHVpOnsiI2luZm8taGVscCI6InRpcCIsIiNpbmZvLXRpdGxlIjoidGl0bGUiLCIjaW5mby11cmwiOntiaW5kOiJ1cmwiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4heC51cmx9fX19fSxkYXRhOnt0aXRsZTpkLmpvaW4oIuKAiS/igIkiKSx0aXA6KGUudGlwfHxhLmxhbmcuTVNHX1VOS05PV05fS0VZKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgvYChbXmBdKylgL2csJzxjb2RlIGNsYXNzPSJkaWIgdmF0Ij4kMTwvY29kZT4nKSx1cmw6ZS51cmx9LHdpZHRoOjM1MCxhbGlnbjoidG9wOjEwMyU7cmlnaHQ6LTM4cHg7Iixub3NlOiJ0b3AifSkuYWx3YXlzKGZ1bmN0aW9uKCl7eC5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKSxiLnJlbW92ZUNsYXNzKCJob3ZlciIpfSl9KX0saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGF0YS5zdGFtcH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLmNyYzIoeC5kb2MpfSxtYW5pZmVzdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuUGhvKCJDb3VjaCIpLnZlcixjPVsiaHR0cGRfZ2xvYmFsX2hhbmRsZXJzIiwibmF0aXZlX3F1ZXJ5X3NlcnZlcnMiLCJodHRwZF9kZXNpZ25faGFuZGxlcnMiLCJkYWVtb25zIiwicXVlcnlfc2VydmVycyIsImh0dHBkX2RiX2hhbmRsZXJzIiwiZXh0ZXJuYWwiLCJvc19kYWVtb25zIl07aWYoYj49IjAwMS4wMDcuMDAwIiYmYjwiMDAyLiJ8fGI+PSIwMDIuMDAxLjAwMSIpe2lmKGMuaW5kZXhPZih4LnBhdGhbMV0pPi0xfHxjLmluZGV4T2YoeC5rZXkpPi0xKXJldHVybiBhLmxhbmcuQkFOX0hUVFA7aWYoYj49IjAwMi4iJiYoImNsdXN0ZXIiPT14LnBhdGhbMV18fCJjbHVzdGVyIj09eC5rZXkpKXJldHVybiBhLmxhbmcuQkFOX0NMVVNURVJ9cmV0dXJuITF9LmJpbmQodGhpcyk7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuUGhvKCJFZCIpLmpzb250cmVlLGEuRXh0RWQse2RhdGE6e2xhYmVsV2lkdGg6MjUwfX0se2xhbmc6e0hFTFA6YS5sYW5nLkhFTFB9LE1FZGl0OntkYXRhOntjb21taXRUeXBlS2V5czp7YXV0bzpbIkVudGVyIl19fX0sTVJvb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gYS5teS5yb290KCl9fSx7TGliOntpc1N5c3RlbTpifX0pfSxiaW5kOiJ0aGlzLkRvYyJ9LCIjYnRuLWNmZy1zYXZlIjp7ZGVsYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMuY21kU2F2ZSgpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMuSGlzdG9yeS5zdGVwcy5sZW5ndGh9fSx3YXRjaDpbIiNjZmctd2FybiIsIiNkb2MtaGlzdG9yeSJdfSwiI2J0bi1yZWxvYWQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLkdldCghMCkudGhlbihmdW5jdGlvbigpe2IuSGlzdG9yeS5jbGVhcighMCl9KX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmKGEubmFtZXx8JC5teS5yYWRpbygicmVsb2FkIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aH0pKX0scmV2ZXJ0X2NvbmZpZzpmdW5jdGlvbigpe3RoaXMuR2V0LmRlYm91bmNlKDE1MCkoITApfX19fSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjanNlZGl0b3IiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LGNtZFNhdmU6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9eC5sYW5nO3guTm9kZXMubGVuZ3RoPjE/eC5teS5tb2RhbCgiI2J0bi1jZmctc2F2ZSIse21hbmlmZXN0OnguUGhvKCJDb25maXJtIiksd2lkdGg6NTUwLGRhdGE6e3RleHQ6Yi5NU0dfQ0xVU1RFUix5ZXM6Yi5CVE5fU0FWRUNMVVNURVIseWVzY3NzOiJvcmFuZ2UiLG5vOmIuQlROX1NBVkVOT0RFLmFzc2lnbih4LnRydW5jKGEubm9kZSwyMikuZXNjYXBlSFRNTCgpKSxub2NzczoiZ3JlZW4iLHVzZUJ1dHRvbnM6ITB9LGdsb2JhbDohMCxzY3JlZW46ITAsejoxOTkyLGZvY3VzOiIjYnRuLXllcyJ9KS50aGVuKGZ1bmN0aW9uKGIpeyJubyI9PWIuY21kP3guU2F2ZShbYS5ub2RlXSk6eC5TYXZlKCl9KTp4LlNhdmUoKX0sc3R5bGU6eyIgI2pzZWRpdG9yPmRpdiI6ImZvbnQtc2l6ZToxNC41cHghaW1wb3J0YW50O21pbi1oZWlnaHQ6NTUwcHg7IiwiICNqc2VkaXRvciAuaW5hdiI6Im1hcmdpbjoxcHggMCFpbXBvcnRhbnQ7IiwiIC5pYWN0IC5idXR0b24iOiJwYWRkaW5nOiAwLjA1ZW0gMCAwLjFlbSAwIWltcG9ydGFudDsiLCIgI2pzZWRpdG9yPi5teS1mb3JtPnNlY3Rpb24+I2VkaXRvcj4jZG9jPi5pYWN0LmJ1dHRvbnMiOiJwYWRkaW5nLXJpZ2h0OjNweDsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlciI6IndoaXRlLXNwYWNlOm5vd3JhcDsiLCIgLm15LW1vZGFsLWZvcm0iOnsiIC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDttYXgtaGVpZ2h0OmNhbGMoMTggKiAxN3B4ICsgNnB4KTsiLCIgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiLmVkLWVycm9yIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAuQ29kZU1pcnJvciAuY20tcHJvcGVydHkiOiJjb2xvcjojNDM0ZTVkOyIsIiAuQ29kZU1pcnJvciAuY20tdmFyaWFibGUiOiJjb2xvcjojMzNiZmFkOyIsIiAuQ29kZU1pcnJvciAuY20ta2V5d29yZCI6ImNvbG9yOiM5MDI1OWU7IiwiIC5Db2RlTWlycm9yIjoibWluLWhlaWdodDoxNTBweDsgaGVpZ2h0OmF1dG87IiwiIC5idXR0b25zIGJ1dHRvbiI6Im1hcmdpbi1yaWdodDogMnB4O3BhZGRpbmc6IDAuNGVtIDAuN2VtIDAuNGVtIDAuN2VtO2ZvbnQtc2l6ZTogOTAlOyIsIiBjb2RlIjoiYmFja2dyb3VuZC1jb2xvcjogI2ViZjBmMyFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czogMnB4O2ZvbnQtc2l6ZTogODUlOyBwYWRkaW5nOiAwLjFlbSAwLjNlbSJ9fSxFeHRFZDp7SFRNTDp7SXRlbVJvb3Q6JzxkaXYgY2xhc3M9ImluYXYgaXJvb3QiPjxkaXYgY2xhc3M9ImlrZXkiPjwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIGNwIj7igJM8L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIHBhbmVsaGVpZ2h0LTMyIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUgaW11bHRpIGhpZGUiPjxkaXYgY2xhc3M9ImlsaXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1hZGQgYnV0dG9uIGdyZWVuIiB0aXRsZT0iQWRkIG5ldyBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktcGx1cyI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLXRha2VvdXQgYnV0dG9uIiB0aXRsZT0iQ29weSAvIHBhc3RlIC8gZWRpdCBhcyBKU09OIj48c3BhbiBjbGFzcz0iZmktc2hvcHBpbmctYmFnIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWpzb24gaGlkZSI+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXJldmVydCIgY2xhc3M9ImJ1dHRvbiIgIHRpdGxlPSJSZXZlcnQgdG8gc2F2ZWQiPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2giPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2PicsSXRlbVNpbXBsZTonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSBpa2V5c2ltcGxlIj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUiPjwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWhlbHAgYnV0dG9uIHRlYWwiIHRpdGxlPSJDb25maWcga2V5IGluZm8iPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLWluZm8iPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1kZWwgYnV0dG9uIHJlZCIgdGl0bGU9IkRlbCBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktdHJhc2giPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2PicsSXRlbUNvbXBsZXg6JzxkaXYgY2xhc3M9ImluYXYiPjxkaXYgY2xhc3M9ImlrZXkgaWtleXRyZWUiPjwvZGl2PjxkaXYgY2xhc3M9ImlkZXNjIGNwIj7igJM8L2Rpdj48ZGl2IGNsYXNzPSJpZWRpdG9yIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUgaW11bHRpIGhpZGUiPjxkaXYgY2xhc3M9ImlsaXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1hZGQgYnV0dG9uIGdyZWVuIiB0aXRsZT0iQWRkIG5ldyBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktcGx1cyI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWhlbHAgYnV0dG9uIHRlYWwiIHRpdGxlPSJDb25maWcga2V5IGluZm8iPiZ0aGluc3A7PHNwYW4gY2xhc3M9ImZpLWluZm8iPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1qc29uIGhpZGUiPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0bi1kZWwgYnV0dG9uIHJlZCIgIHRpdGxlPSJEZWwgbm9kZSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktdHJhc2giPjwvc3Bhbj4mdGhpbnNwOzwvYnV0dG9uPjwvZGl2Pid9LHVpOnsiI2RvYyI6e21hbmlmZXN0OmZ1bmN0aW9uKHgpe2lmKCF0aGlzLkhUTUwuSXRlbVJvb3QpcmV0dXJuIHRoaXMuJG11bHRpO3ZhciBhPXRoaXM7cmV0dXJuICQuZXh0ZW5kKCEwLHt9LGEuJG11bHRpLHtIVE1MOmEuSFRNTC5JdGVtUm9vdCx1aTp7IiNidG4tcmV2ZXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmJC5teS5yYWRpbygicmV2ZXJ0X2NvbmZpZyIsITApfX19fSl9fX0sSGVscDpmdW5jdGlvbih4KXt4LnNsaWNlKDApO3ZhciBhPXRoaXMubGFuZy5IRUxQLGI9bnVsbCxjPSIiLGQ9IiIsZT0iIixmPU9iamVjdC5pc0FycmF5O2lmKGEpe251bGw9PXhbMV0mJih4WzFdPSIiKTt2YXIgZz1hW3hbMF1dfHx7fTtnJiYoYz0oYj1nW3hbMV1dfHxnWyIqIl18fCIiKT9mKGIpP2JbMF0rIi4iOmIrIi4iOiIiLGU9ZihiKT9iWzFdOmcuX18sYyYmZSYmKGQ9ZS5hc3NpZ24oJC5leHRlbmQoe2tleTp4LmNvbXBhY3QoITApLmpvaW4oIi8iKX0sYS5PQkpfUEFUSFMpKSkpLGQ/ZD0nPGEgaHJlZj0iezF9IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InRkbiBwbDIgcHI1IiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXIiIHJlbD0ibm9mb2xsb3ciPjxzcGFuIGNsYXNzPSJmaS1wYWdlIGZzOTAgbzcwIj48L3NwYW4+Jm5ic3A7ezJ9PC9hPicuYXNzaWduKGQsYS5UWFRfRE9DUyk6YyYmKGQ9JzxzcGFuIGNsYXNzPSJmczkwIG83MCI+ezF9PC9zcGFuPicuYXNzaWduKGEuVFhUX05PRE9DUykpfXJldHVybnt0aXA6Yyx1cmw6ZH19fSxHZXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9JC5EZWZlcnJlZCgpLGU9W10sZj1iLlBobygiTWVtYmVyc2hpcCIpfHx7fTtyZXR1cm4hYi5QaG8oImlzQ2x1c3RlciIpJiZiLk1lbWJlcnNDaGVja2VkfHwoYi5NZW1iZXJzQ2hlY2tlZD0hMCxPYmplY3QuaXNBcnJheShmLmFsbF9ub2RlcykmJk9iamVjdC5pc0FycmF5KGYuY2x1c3Rlcl9ub2Rlcyk/KChlPWYuY2x1c3Rlcl9ub2Rlcy5zbGljZSgwKS5pbnRlcnNlY3QoZi5hbGxfbm9kZXMpKS5sZW5ndGg8MiYmKGIuUGhvKCkuaXNDbHVzdGVyPSExKSxiLk5vZGVzPWUsLTE9PWUuaW5kZXhPZihjLm5vZGUpJiYoYy5ub2RlPWVbMF0pKTpiLlBobygpLmlzQ2x1c3Rlcj0hMSksZygpLGQucHJvbWlzZSgpO2Z1bmN0aW9uIGcoKXt2YXIgZT1bIl9jb25maWciXTtiLk5vZGVzLmxlbmd0aCYmKDEhPWIuTm9kZXMubGVuZ3RoJiZjLm5vZGU/ZS51bnNoaWZ0KCJfbm9kZSIsYy5ub2RlKTplLnVuc2hpZnQoIl9ub2RlIixiLk5vZGVzWzBdKSksYi5SZXEoZSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT17fTtyZXR1cm4gT2JqZWN0LmtleXMoeCkuc29ydCgpLmZvckVhY2goZnVuY3Rpb24oYil7T2JqZWN0LmlzT2JqZWN0KHhbYl0pP2FbYl09T2JqZWN0LmtleXMoeFtiXSkuc29ydCgpLnJlZHVjZShmdW5jdGlvbihhLGMpe3JldHVybiBhW2NdPWgoeFtiXVtjXSksYX0se30pOmFbYl09eFtiXX0pLGMuZG9jPWEsYi5Eb2M9W3tsYWJlbFdpZHRoOjI1MCxkb2M6Yi5kYXRhLmRvYyxfaWQ6Il9jb25maWcifV0sYi5PbGQ9T2JqZWN0LmNsb25lKGMuZG9jLCEwKSxhLmNodHRwZCYmdm9pZCAwIT09YS5jaHR0cGQubWF4X2RiX251bWJlcl9mb3JfZGJzX2luZm9fcmVxJiYoYi5QaG8oIkNvdWNoIikubWF4QmF0Y2g9K2EuY2h0dHBkLm1heF9kYl9udW1iZXJfZm9yX2Ric19pbmZvX3JlcXx8MCkseH0pLnRoZW4oZnVuY3Rpb24oYSl7Yy5zdGFtcD1EYXRlLm5vdygpLHgmJmIubXkucmVjYWxjKCIjanNlZGl0b3IiKSxiLm15LnRyaWdnZXIoIiNjZmctcHJveHkiLCJyZXNldHRhYmhhc2gubXkiKSxkLnJlc29sdmUoYSl9KS5mYWlsKGZ1bmN0aW9uKHgsYyxlKXthfHxjdy5saWIubm90ZShiLmxhbmcuRVJSX1JFTE9BRC5hc3NpZ24oeCxjLnRydW5jYXRlKDQ1LCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKSksImVycm9yIiksZC5yZWplY3QoeCxjLGUpfSl9ZnVuY3Rpb24gaCh4KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHg/eDoidHJ1ZSI9PXh8fCJmYWxzZSIhPXgmJigvXlxkezEsMTV9JC8udGVzdCh4KT8reDp4KX19LFNhdmU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLlBobygiX2NvbXBpbGVkIiksYS5sYW5nKSxjPVtdLGQ9e30sZT0oeHx8YS5Ob2Rlcykuc2xpY2UoMCksZj1hLkRvY1swXS5kb2M7Yz1PYmplY3QudmFsdWVzKGEuSGlzdG9yeS5zdGVwcy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXt2YXIgYj1hLm9wO2lmKGEucGF0aC5sZW5ndGg+Mil7dmFyIGM9YS5wYXRoLnNsaWNlKDEpLmpvaW4oIuKAgyIpO3hbY109e2tleTpjLHZhbHVlOiJkZWwiIT1iP2N3LmxpYi5nZXRyZWYoZixhLnBhdGguc2xpY2UoMSkpKyIiOm51bGx9fWVsc2V7dmFyIGQ9YS5wYXRoWzFdLGU9Y3cubGliLmdldHJlZihmLGQpO09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGM9W2QsYV0sZT1jLmpvaW4oIuKAgyIpO3hbZV09e2tleTplLHZhbHVlOiJkZWwiIT1iP2N3LmxpYi5nZXRyZWYoZixjKSsiIjpudWxsfX0pfXJldHVybiB4fSx7fSkpLGUubGVuZ3RoJiYoYz1jLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24oYil7eC5wdXNoKHt1cmw6WyJfbm9kZSIsYiwiX2NvbmZpZyJdLGtleTphLmtleSx2YWx1ZTphLnZhbHVlfSl9KSx4fSxbXSkpO3ZhciBnPWMubGVuZ3RoO2Z1bmN0aW9uIGgoKXtPYmplY3Quc2l6ZShkKT8oY3cubGliLm5vdGUoYi5NU0dfU0FWRV9GQUlMLCJlcnJvciIpLGNvbnNvbGUubG9nKCJFcnJvcnMgZHVyaW5nIGNvbmZpZyB1cGRhdGU6IiksY29uc29sZS5sb2coZCkpOihjdy5saWIubm90ZShiLk1TR19TQVZFX09LLCJvayIpLGEuR2V0KCEwKS50aGVuKGZ1bmN0aW9uKCl7YS5IaXN0b3J5LmNsZWFyKCEwKX0pKX1jLmZvckVhY2goZnVuY3Rpb24oeCxiKXthLlJlcSh7dXJsOih4LnVybHx8WyJfY29uZmlnIl0pLmNvbmNhdCh4LmtleS5zcGxpdCgi4oCDIikpLG1ldGhvZDpudWxsIT09eC52YWx1ZT8iUFVUIjoiREVMRVRFIixjb250ZW50VHlwZTpudWxsIT09eC52YWx1ZT8iYXBwbGljYXRpb24vanNvbiI6bnVsbCxkYXRhOm51bGwhPT14LnZhbHVlP0pTT04uc3RyaW5naWZ5KHgudmFsdWUpOnZvaWQgMH0pLnRoZW4oZnVuY3Rpb24oKXsicmVwbGljYXRvcuKAg2RiIj09eC5rZXkmJihhLlBobygpLlJlcGxpY2F0b3JEQj14LnZhbHVlKX0pLmZhaWwoZnVuY3Rpb24oYSxiLGMpe2RbeC5rZXldPXtjb2RlOmEsZXJyb3I6YixyZWFzb246Y319KS5hbHdheXMoZnVuY3Rpb24oKXsoZy09MSl8fGgoKX0pfS5sYXp5KGEuUGhvKCJDZmciKS5iYXRjaFVwZGF0ZUNmZ3x8MTAwKSl9LEhUTUw6e0FwcDonPGRpdiBpZD0iY29sLWVkIiBjbGFzcz0iZGliIHZhdCB3biI+PGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIHcxNTUgZnM5NSI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyBibHVlIG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj57VElUTEVfSFRNTH08ZGl2IGNsYXNzPSJudyBtcjEwIGRpYiB2YXQgdGFjIHc0MHAiID48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yMiIgdGl0bGU9IntCVE5fUkVWRVJUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2giPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tY2ZnLXNhdmUiIGNsYXNzPSJncmVlbiBtcjIiIGRpc2FibGVkPntCVE5fU0FWRX08L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwYW5lbGhlaWdodCBmZWF0aGVyIj48ZGl2IGlkPSJqc2VkaXRvciIgY2xhc3M9InBhbmVsaGVpZ2h0IHBsMjAgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJjb2wtaGlzdG9yeSIgY2xhc3M9ImRpYiB2YXQgeGdyYXkgd24iPjxkaXYgaWQ9ImgtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi1oaXN0b3J5LXVuZG8iIGNsYXNzPSJsaDE0MCI+e0JUTl9ISVNUX1VORE99PC9idXR0b24+PC9kaXY+PHNwYW4gY2xhc3M9ImZzMTUwIGRpYiB2YXQgcGw1IG85MCBwdDMiPntUWFRfSElTVF9USVRMRX08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0icGFuZWxoZWlnaHQgZmVhdGhlciI+PGRpdiBpZD0iZW1wdHktaGlzdG9yeSIgY2xhc3M9ImhpZGUgcGFiYyBwbDUgcHQ4IGdyYXkiIHN0eWxlPSJ0b3A6MDsgbGVmdDowOyI+e1RYVF9ISVNUX0VNUFRZfTwvZGl2PjxkaXYgaWQ9ImRvYy1oaXN0b3J5IiBjbGFzcz0icGFuZWxoZWlnaHQgcHIyMCBwdDEwIHBiMTYiIHN0eWxlPSJvdXRsaW5lOm5vbmU7Ij48L2Rpdj48L2Rpdj48c3R5bGUgaWQ9InN0eWxlLWhpc3RvcnkiIGNsYXNzPSJoaWRlIj48L3N0eWxlPjxkaXYgaWQ9InNjcm9sbC1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImNmZy1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PicsVGl0bGVIVE1MOlsnPGRpdiBpZD0iYXBwLXRpdGxlIiBjbGFzcz0iZGliIHZhdCBmczE2MCBsaDEyMCBlbGwgbXIyMCIgc3R5bGU9Im1heC13aWR0aDo0MCUiPjwvZGl2PicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgZnMxMTUgbXIyMCB3NDBwIj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFwcC10aXRsZSIgY2xhc3M9IncxMDBwIGJvbGRlciI+PC9kaXY+J119fSwkdmlldzp7aWQ6ImN3LlBob3Rvbi4kdmlldyIsbGFuZzp7fSxwYXJhbXM6e3Jlc3R5bGU6MjAsc3RyaWN0OiEwfSxpbmhlcml0OlsiQnl0ZXMiLCJNZXRyaWMiXSxTdGVwczpbMSwxMCwyMCw1MCwxMDAsMjAwLDUwMCwxZTNdLE1vZGFsczp7fSxSZXN1bHQ6W10sUm93czpbXSxFcnJvcjoiIixmUm93czpudWxsLGdSb3dzOm51bGwsRGRvY3M6e30sVmlld3M6W10sVmk6e30sVmlFZHM6e30sUGVuZGluZzp7fSxMaXN0OltdLEZpZWxkczpbXSxDb2x1bW5zOltdLEVkaXRvcjpbXSxoYXNTZWxlY3Rpb246ITEsUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0sSW5kZXg6ZnVuY3Rpb24oeCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHgsbnVsbCwiICAiKX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuc3Rhc2hWaWV3U3RhdGUoKSxbIiN2aWV3LXJlc3VsdHMiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXguZmluZChhKTsiZnVuY3Rpb24iPT10eXBlb2YgYi5nZXROaWNlU2Nyb2xsJiZiLmdldE5pY2VTY3JvbGwoKS5yZW1vdmUoKSxiLmxpc3QoInJlbW92ZSIpfSk7dHJ5e3guZmluZCgiI3ZpZXctbmFtZSIpLmRhdGEoKS5zZWxlY3QyLmRyb3Bkb3duLmZpbmQoIi5zZWxlY3QyLXJlc3VsdHMiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiB4JiZ4KCkucmVtb3ZlKCl9KX1jYXRjaCh4KXt9fSxzMnA6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9W2EucGF0aFswXV07aWYoIWEuc3RhcnQmJiFhLnZpZXcpcmV0dXJuW2EucGF0aFswXV07dmFyIGM9eC5WaVthLnZpZXddLGQ9YS52aWV3LnNwbGl0KCLvv70iKTtyZXR1cm4iX2ZpbmQiPT1hLnZpZXcudG8oNSk/KGIucHVzaCgiX2ZpbmQiKSxiLnB1c2goZFsxXXx8IkRlZmF1bHQgcXVlcnkiKSk6Il9pZHgiPT1hLnZpZXcudG8oNCk/KGIucHVzaCgiX2luZGV4IiksIl9pZHgv77+9IiE9YS52aWV3LnRvKDYpP2IucHVzaChkWzBdLnNwbGl0KCIvIilbMV0sZFsxXSk6Yi5wdXNoKCJEZWZhdWx0IGluZGV4IikpOmM/Yi5wdXNoKCJfdmlldyIsYy5wYXRoWzJdLGMucGF0aFs0XSk6L14oX2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfF9jaGFuZ2VzKSQvLnRlc3QoYS52aWV3KT9iLnB1c2goYS52aWV3KTpiLnB1c2goIl9hbGxfZG9jcyIpLGEuc3RhcnQ/KGIucHVzaChhLnN0YXJ0LChhLnJldmVyc2U/Ii0iOiIiKSsgK2EubGltaXQpLGIpOmJ9LGhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4idmlldyJ9LHRpdGxlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhLGE9eC5wYXRoLGI9Il9maW5kIj09eC52aWV3LnRvKDUpLGM9L15fKGNoYW5nZXN8ZGVzaWduX2RvY3N8bG9jYWxfZG9jcykkLy50ZXN0KHgudmlldyksZD14LnZpZXc/Il9kZXNpZ25fZG9jcyI9PXgudmlldz8iX2Rlc2lnbi8qIjoiX2xvY2FsX2RvY3MiPT14LnZpZXc/Il9sb2NhbC8qIjoiX2NoYW5nZXMiPT14LnZpZXc/Il9jaGFuZ2VzIjp4LnZpZXcuc3BsaXQoIu+/vSIpLnRvKDIpLm1hcChmdW5jdGlvbih4LGEpe3JldHVybigoYT94Onguc3BsaXQoIi8iKVsxXSl8fHh8fCIiKS50cnVuY2F0ZShhPzMwOjEwLCJtaWRkbGUiLCIuLi4iKX0pLmpvaW4oIuKAii/igIoiKToiIixlPWI/IuKKtiI6Yz8iw5ciOiLDtyI7cmV0dXJuKGQ/YVswXS50cnVuY2F0ZSgxNSwibWlkZGxlIiwiLi4uIik6YVswXSkrKGQ/IuKAiSIrZSsi4oCJIitkOiIiKX0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtpZihhJiYoMT09eC5sZW5ndGh8fC9eXyh2aWV3fGFsbF9kb2NzfGxvY2FsX2RvY3N8ZGVzaWduX2RvY3N8ZmluZHxpbmRleHxjaGFuZ2VzKSQvLnRlc3QoeFsxXSkpKXt2YXIgYj14Lmxlbmd0aCxjPXhbMV18fCJfYWxsX2RvY3MiLGQ9e3RpdGxlOnhbMF0sdHlwZToidmlldyIsYXBwRGF0YTp7fX0sZT0vXl8oZGVzaWdufGxvY2FsKV9kb2NzJC8udGVzdChjKTtpZigvXl8oYWxsfGRlc2lnbnxsb2NhbClfZG9jcyQvLnRlc3QoYykpND09Ynx8ZT9kLmFwcERhdGE9e3N0YXJ0OnhbMl0sbGltaXQ6IisiKyh0aGlzLiR2aWV3LlN0ZXBzLmZpbmQoTWF0aC5hYnMoK3hbM10pKXx8IjEwMCIpLHJldmVyc2U6Ii0iPT0oeFszXSsiIilbMF19OngubGVuZ3RoPTEsZSYmKGQudGl0bGUrPSLigIkv4oCJIitjLnJlcGxhY2UoL19kb2NzJC8sIiIpLGQuYXBwRGF0YS52aWV3PWMpO2Vsc2UgaWYoIl9jaGFuZ2VzIj09YylkLnRpdGxlKz0i4oCJL+KAiSIrYyxkLmFwcERhdGE9e3ZpZXc6YyxzdGFydDp4WzJdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCt4WzNdKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KHhbM10rIiIpWzBdfTtlbHNlIGlmKCJfZmluZCI9PWMpYj41P3gubGVuZ3RoPTU6ZC5hcHBEYXRhPXtzdGFydDp4WzNdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCt4WzRdKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KHhbNF0rIiIpWzBdfTtlbHNlIGlmKCJfaW5kZXgiPT1jKWlmKGI+Nil4Lmxlbmd0aD02O2Vsc2V7dmFyIGY9IkRlZmF1bHQgaW5kZXgiPT14WzJdJiYoMz09Ynx8NT09Yik7ZC5hcHBEYXRhPXtzdGFydDpmP3hbM106eFs0XSxsaW1pdDoiKyIrKHRoaXMuJHZpZXcuU3RlcHMuZmluZChNYXRoLmFicygrKGY/eFs0XTp4WzVdKSkpfHwiMTAwIikscmV2ZXJzZToiLSI9PSgoZj94WzRdOnhbNV0pKyIiKVswXX19ZWxzZXtpZigiX3ZpZXciIT1jKXJldHVybjs2IT1iP3gubGVuZ3RoPTQ6ZC5hcHBEYXRhPXtzdGFydDp4WzRdLGxpbWl0OiIrIisodGhpcy4kdmlldy5TdGVwcy5maW5kKE1hdGguYWJzKCt4WzVdKSl8fCIxMDAiKSxyZXZlcnNlOiItIj09KHhbNV0rIiIpWzBdfX1yZXR1cm4gZC5wYXRoPXgsZH19LGpzZXZhbDpmdW5jdGlvbihzKXt2YXIgcjt0cnl7cj1ldmFsKCIoIitzKyIpIil9Y2F0Y2goeCl7fXJldHVybiByfSxkYXRhOntwYXRoOltdLHNlYXJjaDoiIix2aWV3OiIiLHN0YXJ0OiIiLGxpbWl0OiIrMTAwIixyZXZlcnNlOiExLHJlZHVjZTpbXSxpbmNsOltdLHN0YXRlOiIiLHNlbGVjdGlvbjpbXSxsaW5rOiIiLGR1cjowLHNpemU6MCxncmlkOiExLGNvbHVtbnM6WyIudmFsdWUiXSx0b3RhbF9yb3dzOjAsb2Zmc2V0OjAsc2VxOiIiLHhrZXk6IjAiLGVkaXRvcjohMSxtYW5nbzp7YWN0aXZlOiJEZWZhdWx0IHF1ZXJ5Iixtb2RlOlsiamF2YXNjcmlwdCJdLHF1ZXJ5Olt7bmFtZToiRGVmYXVsdCBxdWVyeSIsdGV4dDoiKHt9KSIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6MH1dfX0sRGVmYXVsdE1hbmdvUXJ5OntuYW1lOiJEZWZhdWx0IHF1ZXJ5Iix0eXBlOiJtYW5nbyIsdGV4dDoiKHtcbiAgLy8gTWF0Y2hpbmcgZG9jcyBzZWxlY3RvclxuICBzZWxlY3Rvcjoge1xuICAgIF9pZDogeyRndDogJyd9XG4gIH0sXG4gIFxuICAvLyBEb2MgZmllbGRzIHRvIHJldHVybiwgXG4gIC8vIGNvbW1lbnQgb3V0IHRvIGdldCB3aG9sZSBkb2NzXG4gIGZpZWxkczogWydfaWQnLCAnX3JldicsIC8qJ3gueScqL10sXG4gIFxuICAvLyBTb3J0IG9yZGVyLCBsaWtlOlxuICAvLyBzb3J0OiBbe19pZDonYXNjJ30sIHtuYW1lOiAnZGVzYyd9XVxuICBcbiAgLy8gV2hlbiBlZGl0LCB1c2UgQ21kLVIgdG8gcnVuIHF1ZXJ5XG59KSIsanNvbjp7c2VsZWN0b3I6e19pZDp7JGd0OiIifX0sZmllbGRzOlsiX2lkIiwiX3JldiJdfSxlcnJvcnM6W10sc3RhbXA6MH0sRGVmYXVsdE1hbmdvSWR4OntuYW1lOiJEZWZhdWx0IGluZGV4IixkZG9jOiIiLHR5cGU6ImluZGV4Iix0ZXh0OiIoe1xuICBpbmRleDoge1xuXHRcdGZpZWxkczogW3tfaWQ6ICdhc2MnfV1cblx0fSxcblx0Ly8gcGFydGlhbF9maWx0ZXJfc2VsZWN0b3I6e1xuXHQvLyBcdCdmb28uYmFyJzp7JGd0OjB9XG5cdC8vIH1cbn0pIixqc29uOntpbmRleDp7ZmllbGRzOlt7X2lkOiJhc2MifV19fSxlcnJvcnM6W10sc3RhbXA6MH0sdWk6eyIjYnRuLXJvb3QiOntkZWxheToxMDAsYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIiwiIyIreC5wYXRoWzBdKSxiLmF0dHIoInRpdGxlIix0aGlzLmxhbmcuVElQX1VQLmFzc2lnbih4LnBhdGhbMF0pKX19LCIjeC1idG4tcm9vdCI6e2Nzczp7dzA6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudmlld30sdzQyOmZ1bmN0aW9uKHgpe3JldHVybiEheC52aWV3fX0sd2F0Y2g6WyIjdmlldy1uYW1lIl19LCIjdmlldy1uYW1lIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLnNlbGVjdDIoeCx7ZGF0YTp0aGlzLlZpZXdzLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyLGZvcm1hdFNlbGVjdGlvbjphLmZvcm1hdFNlbDJ9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4geC52aWV3O2lmKHgudmlldyE9YSl7dmFyIGM9Yi5yZXN0b3JlVmlld1N0YXRlKGEsITEpO2Iuc3Rhc2hWaWV3U3RhdGUoKSx4LnN0YXJ0PSIiLHgucmVkdWNlPSIiLHguZ3JpZD0hMSxiLlJvd3M9W10sYi5mUm93cz1udWxsLGIuQ29sdW1ucz1bXSxiLkZpZWxkcz1bXSxiLkVycm9yPSIiLGIuRWRpdG9yPVtdLHgudmlldz1hLGIucmVzdG9yZVZpZXdTdGF0ZSh2b2lkIDAsITEpLGIuYnVpbGRHcmlkQ29sdW1ucygpLHZvaWQgMD09PWMuZWRpdG9yJiYoIl9maW5kIj09YS50byg1KXx8Il9pZHgiPT1hLnRvKDQpP3guZWRpdG9yPSEwOmF8fCh4LmVkaXRvcj0hMSkpfXJldHVybiB4LnZpZXd9fSwiI3ZpZXctbGltaXQiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz0oTWF0aC5hYnMoK2IubGltaXQpfHwxMDApLmNsYW1wKDEsMWU0KTthLnNlbGVjdDIoeCx7ZGF0YTp0aGlzLlN0ZXBzLmNvbmNhdChbY10pLnVuaXF1ZSgpLnNvcnRCeSgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6IisiK3gsdGV4dDp4PDFlMz94KyIiOngvMWUzKyJLIn19KSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxZTR9KX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsPT1hP3gubGltaXQ6KHgubGltaXQ9YSx4LmxpbWl0KX19LCIjdmlldy1zdGFydGtleSI6e2RlbGF5OjAsYmluZDoic3RhcnQiLGV2ZW50czoiaW5wdXQubXkiLHdhdGNoOlsiI2J0bi1jbGVhci1zdGFydGtleSIsIiNidG4tdmlldy1wbHVzIiwiI2J0bi12aWV3LW1pbnVzIiwiI3ZpZXctbmFtZSJdLGNzczp7Im15LXNlYXJjaCI6L14uezEsfSQvfX0sIiNidG4tdmlldy1taW51cyI6e2RlbGF5OjEsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz14LnN0YXJ0LGQ9K3gudG90YWxfcm93cyxlPSt4LmxpbWl0LGY9Yi5WaVt4LnZpZXddJiZiLlZpW3gudmlld10ucmVkdWNlJiZ4LnJlZHVjZSsiIixnPSJfZmluZCI9PXgudmlldy50byg1KSxoPSJfbG9jYWxfZG9jcyI9PXgudmlldzt4LnN0YXJ0Py9eX1xkKyQvLnRlc3QoeC5zdGFydCkmJihjPSJfIisoKCt4LnN0YXJ0LnN1YnN0cigxKXx8MCktZSkuY2xhbXAoMCxmfHxnfHxoPzFlMTI6ZCkpOihkPmV8fGZ8fGd8fGgpJiYoYz0iXyIrKGQtZSkuY2xhbXAoMCwxZTEyKSksIl8wIj09YyYmKGM9IiIpLHguc3RhcnQ9Y319LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiB4LnN0YXJ0JiYhL15fXGQrJC8udGVzdCh4LnN0YXJ0KXx8IXguc3RhcnQmJmIuUm93cy5sZW5ndGg8PSt4LmxpbWl0fHwiX2NoYW5nZXMiPT14LnZpZXd9fSx3YXRjaDpbIiN2aWV3LXN0YXJ0a2V5IiwiI3ZpZXctbGltaXQiLCIjc3RhdGUtcHJveHkiXX0sIiNidG4tdmlldy1wbHVzIjp7ZGVsYXk6MSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcyxjPXguc3RhcnQsZD0reC50b3RhbF9yb3dzLGU9K3gubGltaXQsZj1iLlZpW3gudmlld10mJmIuVmlbeC52aWV3XS5yZWR1Y2UmJngucmVkdWNlKyIiLGc9Il9maW5kIj09eC52aWV3LnRvKDUpLGg9Il9sb2NhbF9kb2NzIj09eC52aWV3O2lmKCJfY2hhbmdlcyI9PXgudmlldyYmeC5yZXZlcnNlKWM9Yi5SZXN1bHRbMF0ucmVzdWx0c1tlXT9iLlJlc3VsdFswXS5yZXN1bHRzW2UtMV0uc2VxKyIiOiIiO2Vsc2UgaWYoeC5zdGFydClpZigvXl9cZCskLy50ZXN0KHguc3RhcnQpKXt2YXIgaT0oK3guc3RhcnQuc3Vic3RyKDEpfHwwKStlO2M9Il8iKyhpPj1kJiYhZiYmIWcmJiFoPzA6aSl9ZWxzZSBjPWIuUm93cy5sZW5ndGg8PWU/IiI6SlNPTi5zdHJpbmdpZnkoYi5Sb3dzW2VdLmtleSkucmVwbGFjZSgvXiJ8IiQvZywiIik7ZWxzZShkPmV8fGZ8fGd8fGgpJiYoYz0iXyIrZSk7Il8wIj09YyYmKGM9IiIpLHguc3RhcnQ9Y319LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO3JldHVybiF4LnN0YXJ0JiZiLlJvd3MubGVuZ3RoPD0reC5saW1pdHx8Il9jaGFuZ2VzIj09eC52aWV3JiYheC5yZXZlcnNlfX0sd2F0Y2g6WyIjdmlldy1saW1pdCIsIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctZ3JpZCI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHt0YWdzOlt7JzxzcGFuIGNsYXNzPSJmaS10aHVtYm5haWxzIGZzMTE1IGxoMTMwIiB0aXRsZT0iR3JpZCB2aWV3Ij48L3NwYW4+JzoiZ3JpZCJ9XSxlbXB0eTp7JzxzcGFuIGNsYXNzPSJmaS1saXN0LXRodW1ibmFpbHMgZnMxMTUgbGgxMzAiIHRpdGxlPSJMaW5lIHZpZXciPjwvc3Bhbj4nOiIifSx0YWdjc3M6InRhZyBidG4gdzMyIGRpYiBjcCIsdGFnc2hpbToiIixncm91cHNoaW06IiJ9KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIG51bGwhPWEmJih4LmdyaWQ9ISEoYSsiIikseC5ncmlkPyh4LnZpZXd8fCh4LmluY2w9WyJkb2NzIl0pLGIuUmVzdWx0Lmxlbmd0aCYmKGIuRmllbGRzLmxlbmd0aHx8Yi5idWlsZEZpZWxkc0xpc3QoKSx4LmNvbHVtbnMubGVuZ3RoPDImJigheC5jb2x1bW5zWzBdfHwiLnZhbHVlIj09eC5jb2x1bW5zWzBdfHwiLmRvYyI9PXguY29sdW1uc1swXSkmJih4LmNvbHVtbnM9Yi5kZXJpdmVHcmlkQ29sdW1ucygpKSksYi5idWlsZEdyaWRDb2x1bW5zKCksYi5teS5yZXN0eWxlKCkpOmIuY2xvc2VBdXRvY29tcGxldGVzKCksYi5zdGFzaFZpZXdTdGF0ZSgpLGIubXkucmVjYWxjKCIjdmlldy1ncmlkLWNvbHMiKSxiLm15LmNoZWNrKCIjdmlldy1ncmlkLWNvbHMiKSkseC5ncmlkP1siZ3JpZCJdOltdfSx3YXRjaDpbIiN2aWV3LW5hbWUiXX0sIiNhcHAtc2VhcmNoIjp7ZGVsYXk6MTUwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbD09YT94LnNlYXJjaDphLmxlbmd0aDwzPyh0aGlzLmZTZWFyY2g9dGhpcy5jbVNlYXJjaD1udWxsLHguc2VhcmNoPSIiLGEpOih4LnNlYXJjaD1hLHRoaXMuZlNlYXJjaD1uZXcgUmVnRXhwKCIoIitSZWdFeHAuZXNjYXBlKGEpKyIpIiwiaSIpLHRoaXMuY21TZWFyY2g9bmV3IFJlZ0V4cCgiXiIrUmVnRXhwLmVzY2FwZShhKSwiaSIpLGEpfSxjc3M6eyJteS1zZWFyY2giOi9eLnszLH0kL30sd2F0Y2g6WyIjc3RhdGUtcHJveHkiXX0sIiN2aWV3LXBhbmVscyI6e3dhdGNoOlsiI3ZpZXctbmFtZSIsIiNidG4tdmlld2NvZGUiXSxjc3M6eyJ2aWV3LWVkaXRvciI6ZnVuY3Rpb24oeCl7cmV0dXJuIS9eKF9jaGFuZ2VzfF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdCh4LnZpZXcpJiYhIXguZWRpdG9yfSwidmlldy1tYW5nbyI6ZnVuY3Rpb24oeCl7cmV0dXJuIl9maW5kIj09eC52aWV3LnRvKDUpfSwidmlldy1pbmRleCI6ZnVuY3Rpb24oeCl7cmV0dXJuIl9pZHgiPT14LnZpZXcudG8oNCl9LCJ2aWV3LWNoYW5nZXMiOmZ1bmN0aW9uKHgpe3JldHVybiJfY2hhbmdlcyI9PXgudmlldy50byg4KX0sIm1vZGUtZ3JpZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZ3JpZH0sIm1vZGUtanNvbiI6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZ3JpZH0sImRiLXVzZXJzIjpmdW5jdGlvbih4KXtyZXR1cm4iX3VzZXJzIj09eC5wYXRoWzBdfX19LCIjYnRuLXJlbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj1bXTt4LnNlbGVjdGlvbi5sZW5ndGgmJi9eKHxfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3MpJC8udGVzdCh4LnZpZXcpJiYoYj14LnNlbGVjdGlvbi5zb3J0KCkudW5pcXVlKCkpLHRoaXMuR2V0VmlldyghMCxiKSxiLmxlbmd0aHx8L15fKGRlc2lnbnxsb2NhbClfZG9jcyQvLnRlc3QoeC52aWV3KXx8Il9pZHgv77+9Ij09eC52aWV3LnRvKDYpfHx0aGlzLkdldFZpZXdzKCEwKX19LGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe09iamVjdC5pc09iamVjdChhKSYmIWEubmFtZSYmL15fKHVzZXJzfHJlcGxpY2F0b3IpJC8udGVzdCh4LnBhdGhbMF0pJiYkLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSl9LGRidXBkYXRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczshT2JqZWN0LmlzT2JqZWN0KGEpfHwid3JpdGUiIT1hLmNtZCYmImRlbGV0ZSIhPWEuY21kfHxhLmRiPT14LnBhdGhbMF0mJi0xIT0oYS5kb2NzfHxbXSkuaW5kZXhPZih4LnZpZXcuc3BsaXQoIu+/vSIpWzBdKSYmYi5HZXRWaWV3cyghMCl9fX0sIiNidG4tdmlldy1jb21wYWN0Ijp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcyxkPXgucGF0aCxlPXt9LGY9T2JqZWN0LnNpemUoYy5WaSk/e2Rkb2NzOk9iamVjdC5rZXlzKGMuVmkpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5zcGxpdCgi77+9IilbMF0uc3BsaXQoIi8iKVsxXX0pLnVuaXF1ZSgpLnNvcnQoKX06e307Yi5kYXRhKCJtb2RhbCIpP2MubXkubW9kYWwoIiNidG4tdmlldy1jb21wYWN0IiwhMCk6KGMuTW9kYWxzLmhlYWQmJmMuTW9kYWxzLmhlYWQubW9kYWwoITApLGMuTW9kYWxzLmhlYWQ9YiwiX2Rlc2lnbl9kb2NzIj09eC52aWV3JiYoZT17ZHNlbGVjdGlvbjooZi5kZG9jc3x8W10pLmludGVyc2VjdCh4LnNlbGVjdGlvbi5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3BsaXQoIi8iKVsxXX0pKS5zbGljZSgwKSxvcHM6WyJ2aWV3cyIsImRkb2NzIl19KSxjLm15Lm1vZGFsKCIjYnRuLXZpZXctY29tcGFjdCIse21hbmlmZXN0OiQuZXh0ZW5kKCEwLHt9LGMuUGhvKCJDb21wYWN0Iikse0NCOntkZG9jczpmdW5jdGlvbih4KXtjLkdldFZpZXcoITApfX19KSx3aWR0aDozNzAsZGF0YTokLmV4dGVuZCh7c2VsZWN0aW9uOlt4LnBhdGhbMF1dLG9wczpbImRvY3MiLCJ2aWV3cyJdfSxmLCJfdmlldyI9PWRbMV0/e29wczpbImRkb2NzIl0sZHNlbGVjdGlvbjpbZFsyXV19Ont9LGUpLGFsaWduOiJ0b3A6MTAyJTsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixlc2M6ITAsYm91bmQ6MjAsZm9jdXM6IiNidG4tc3RhcnQifSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yy5Nb2RhbHMuaGVhZD1udWxsfSkpfX19LCIjYnRuLXZpZXctYWNsIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi12aWV3LWFjbCIsITApOmMuUmVxKFt4LnBhdGhbMF0sIl9zZWN1cml0eSJdKS50aGVuKGZ1bmN0aW9uKGEpe2MuTW9kYWxzLmhlYWQmJmMuTW9kYWxzLmhlYWQubW9kYWwoITApLGMuTW9kYWxzLmhlYWQ9YixjLm15Lm1vZGFsKCIjYnRuLXZpZXctYWNsIix7bWFuaWZlc3Q6Yy5QaG8oIlNlY09iaiIpLHdpZHRoOjM4MCxkYXRhOiQuZXh0ZW5kKCEwLHt9LHtkYnM6W3gucGF0aFswXV0sYWRtaW5zOmEuYWRtaW5zfHx7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6YS5tZW1iZXJzfHx7bmFtZXM6W10scm9sZXM6W119fSksYWxpZ246InRvcDoxMDIlOyIsbm9zZToidG9wIixjc3M6InhncmF5IixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGVzYzohMCxib3VuZDoyMCxmb2N1czoiI2J0bi1zdGFydCJ9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KX0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2N3LmxpYi5ub3RlKGMubGFuZy5FUlJfR0VUQUNMLCJlcnJvciIpfSl9fSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiEheC52aWV3fX0sd2F0Y2g6WyIjdmlldy1uYW1lIl19LCIjYnRuLXZpZXctbmV3ZG9jIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzOyJfdXNlcnMiPT1hLmRhdGEucGF0aFswXSYmKHgub24oImNsaWNrLm15IixmdW5jdGlvbihiKXtyZXR1cm4geC5kYXRhKCJtb2RhbCIpPyhhLm15Lm1vZGFsKCIjYnRuLXZpZXctbmV3ZG9jIiwhMCksITEpOihhLk1vZGFscy5oZWFkJiZhLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxhLk1vZGFscy5oZWFkPXgsYS5teS5tb2RhbCgiI2J0bi12aWV3LW5ld2RvYyIse21hbmlmZXN0OmEuUGhvKCJVc2VyRG9jIiksd2lkdGg6MzgwLGRhdGE6e30sYWxpZ246InRvcDoxMDIlO2xlZnQ6LTE0N3B4OyIsbm9zZToidG9wIixjc3M6InhncmF5IixzY3JlZW46ITEsZXNjOiEwLGZvY3VzOiEwLGJvdW5kOjIwfSkuYWx3YXlzKGZ1bmN0aW9uKCl7YS5Nb2RhbHMuaGVhZD1udWxsfSksITEpfSkseC5odG1sKCc8c3BhbiBjbGFzcz0ibGgxNDAiPicrYS5sYW5nLkJUTl9ORVdVU0VSX0RMRysiPC9zcGFuPiIpKX0sYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIiwiIyIrZW5jb2RlVVJJQ29tcG9uZW50KHgucGF0aFswXSkrIi9fbmV3Iil9LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnZpZXcmJnguc2VsZWN0aW9uLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctYWN0aW9ucyJdfSwiI3ZpZXctYWN0aW9ucyI6e2RlbGF5OjEwLGNzczp7aGFzU2VsZWN0aW9uOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmhhc1NlbGVjdGlvbj0hKCIiIT14LnJlZHVjZXx8Il9maW5kIj09eC52aWV3LnRvKDUpfHwheC5zZWxlY3Rpb24uaW50ZXJzZWN0KHRoaXMuUm93cy50bygreC5saW1pdCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LmlkfSkpLmxlbmd0aCksdGhpcy5oYXNTZWxlY3Rpb259LGlzRGRvY3M6ZnVuY3Rpb24oeCl7cmV0dXJuIl9kZXNpZ25fZG9jcyI9PXgudmlld319LHdhdGNoOlsiI3ZpZXctbmFtZSIsIiNidG4tc2VsZWN0Il19LCIjYnRuLXZpZXctZGVsZG9jcyI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEpe2IuQnVzeSghMCk7dmFyIGM9Yi5teS5maW5kKCIjYnRuLXZpZXctY29weWRvY3MiKTtjLmRhdGEoIm1vZGFsIikmJmMubW9kYWwoITApLGIuRGVsRG9jcygpLmFsd2F5cyhmdW5jdGlvbigpe2IuQnVzeSghMSl9LmRlYm91bmNlKDEwKSl9dmFyIGQ9Yi5sYW5nW3guc2VsZWN0aW9uLmxlbmd0aD4xPyJCVE5fREVMRE9DUyI6IkJUTl9ERUwxRE9DIl07cmV0dXJuIl9kZXNpZ25fZG9jcyI9PXgudmlldz9kOmQuc3RyaXBUYWdzKCl9LHdhdGNoOlsiI3ZpZXctYWN0aW9ucyJdfSwiI2J0bi12aWV3LWNvcHlkb2NzIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLm15LmZpbmQoIiNidG4tdmlldy1jb3B5ZG9jcyIpO2lmKGMuZGF0YSgibW9kYWwiKSlyZXR1cm4gYy5tb2RhbCghMCksdm9pZCAwO2MubW9kYWwoe3Jvb3Q6Yi5teS5yb290KCksbWFuaWZlc3Q6JC5leHRlbmQoITAse30sYi5QaG8oIlN5bmNUYXNrIikse3BhcmFtczp7d2lkdGg6NTAwfX0pLGRhdGE6e3Rhc2s6IkNvcHkiLHNyYzp7dXJsOngucGF0aFswXSxmaWx0ZXI6WyJpZHMiXSxpZHM6eC5zZWxlY3Rpb24uc2xpY2UoMCl9fSxmb2N1czoiI3J0YXJnZXQiLG5vc2U6InRvcCIsYWxpZ246InRvcDoxMDMlIixkcmFnOiIuY20iLGNzczoieGdyYXkiLGVzYzohMCxib3VuZDowfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfSwic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4iX2xvY2FsX2RvY3MiPT14LnZpZXd9fSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXt0aGlzLm15LmNoZWNrKCIjYnRuLXZpZXctY29weWRvY3MiKX19LHdhdGNoOlsiI3ZpZXctbmFtZSJdfSwiI2J0bi12aWV3Y29kZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIG51bGwhPWEmJngudmlldyYmKGMuY2xvc2VBdXRvY29tcGxldGVzKCksYy5FZFN3aXRjaCgpLHguZWRpdG9yPSEwLGMuc3Rhc2hWaWV3U3RhdGUoKSksYy5sYW5nWyJfZmluZCI9PXgudmlldy50byg1KSYmeC5ncmlkPyJCVE5fVklFV0NPREVfR00iOiJCVE5fVklFV0NPREUiXX0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5lZGl0b3J8fC9eKF9jaGFuZ2VzfF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdCh4LnZpZXcpfX0sZXZlbnRzOiJjbGljay5teSIsd2F0Y2g6WyIjdmlldy1uYW1lIiwiI3ZpZXctZ3JpZCJdfSwiI2J0bi12aWV3LWRpciI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmV2ZXJzZT0heC5yZXZlcnNlKSx4LnJldmVyc2U/IuKWvCI6IuKWsiJ9LGV2ZW50czoiY2xpY2subXkifSwiI3ZpZXctY29scyI6e2RlbGF5OjMwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZigiX2ZpbmQiPT14LnZpZXcudG8oNSkmJnguZ3JpZClyZXR1cm4iIyI7dmFyIGIsYz0reC50b3RhbF9yb3dzLGQ9eC5zZWFyY2g7cmV0dXJuIHRoaXMubGFuZy5UWFRfTUFQVklFVyhNYXRoLm1pbih0aGlzLlJvd3MubGVuZ3RoLCt4LmxpbWl0KSwtMT09Yz8iPz8iOmM8OTk5OT9jOiJ+IitjLm1ldHJpYygxLDQpLGQubGVuZ3RoPjImJihiPXguZ3JpZD90aGlzLmdSb3dzOnRoaXMuZlJvd3MpP2IubGVuZ3RoOm51bGwpfSx3YXRjaDpbIiN2aWV3LXJlc3VsdHMtanNvbiIsIiNzdGF0ZS1wcm94eSIsIiN2aWV3LWdyaWQiXX0sIiN2aWV3LWxpbmtzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0nPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfSI+ezJ9PC9hPicsZD14LnBhdGgsZT14LnZpZXcuc3BsaXQoIu+/vSIpLGY9Yi5wMnUoZFswXSksZz1iLnRydW5jKGRbMF0sMjUpLmVzY2FwZUhUTUwoKTtyZXR1cm4geC52aWV3Py9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jcykkLy50ZXN0KHgudmlldyk/W2MuYXNzaWduKGYsZyksIi8iLCc8c3BhbiBjbGFzcz0ieGdyYXkiPicreC52aWV3KyI8L3NwYW4+IHwgIl0uam9pbigi4oCJIik6Il9maW5kIj09eC52aWV3LnRvKDUpP1tjLmFzc2lnbihmLGcpLCIvIiwnPHNwYW4gY2xhc3M9InhncmF5Ij5fZmluZDwvc3Bhbj4nXS5qb2luKCLigIkiKToiX2lkeC/vv70iPT14LnZpZXcudG8oNik/W2MuYXNzaWduKGYsZyksIi8iLCJfYWxsX2RvY3MgfCAiXS5qb2luKCLigIkiKToiX2lkeCI9PXgudmlldy50byg0KT9bYy5hc3NpZ24oZixnKSwiLyIsYy5hc3NpZ24oZisiL19kZXNpZ24iK2VbMF0uZnJvbSg0KSwoIl9kZXNpZ24iK2VbMF0uZnJvbSg0KSkuZXNjYXBlSFRNTCgpKV0uam9pbigi4oCJIikrIiB8ICI6W2MuYXNzaWduKGYsZyksIi8iLGMuYXNzaWduKGYrIi8iK2VbMF0sZVswXS5lc2NhcGVIVE1MKCkpXS5qb2luKCLigIkiKSsiIHwgIjpbZywiLyIsJzxzcGFuIGNsYXNzPSJ4Z3JheSI+X2FsbF9kb2NzPC9zcGFuPiddLmpvaW4oIuKAiSIpKyIgfCAifSx3YXRjaDpbIiN2aWV3LXJlc3VsdHMtanNvbiIsIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctZGRzdGF0cyI6e2JpbmQ6ZnVuY3Rpb24oeCl7aWYoIl9kZXNpZ25fZG9jcyIhPXgudmlldylyZXR1cm4iIjt2YXIgYT0wLGI9MDtyZXR1cm4gdGhpcy5Sb3dzLmZvckVhY2goZnVuY3Rpb24oeCl7eC52YWx1ZSYmeC52YWx1ZS5zaXplcyYmKGErPXgudmFsdWUuc2l6ZXMuYWN0aXZlLGIrPXgudmFsdWUuc2l6ZXMuZmlsZSl9KSxhJiZiP3RoaXMubGFuZy5UWFRfRERTVEFUUy5hc3NpZ24odGhpcy5CeXRlcyhiKSx0aGlzLkJ5dGVzKGEpKToiIn0sY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiJfZGVzaWduX2RvY3MiIT14LnZpZXd9fSx3YXRjaDpbIiN2aWV3LXJlc3VsdHMtanNvbiIsIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctd2l0aGRvY3MiOntkZWxheToxMCxpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmcuVEFHX1dJVEhET0NTKX0sYmluZDoiaW5jbCIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC52aWV3fX0sd2F0Y2g6WyIjdmlldy1uYW1lIiwiI3ZpZXctZ3JpZCJdfSwiI3ZpZXctcmVkdWNlIjp7ZGVsYXk6MTAsaW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19SRURVQ0UpfSxiaW5kOiJyZWR1Y2UiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5WaVt4LnZpZXddfHwhdGhpcy5WaVt4LnZpZXddLnJlZHVjZX19LHdhdGNoOiIjdmlldy1uYW1lIn0sIiNidG4tYW5jaG9yIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7Yi5hdHRyKCJocmVmIikhPXgubGluayYmYi5hdHRyKCJocmVmIix4LmxpbmspfSx3YXRjaDoiI3N0YXRlLXByb3h5Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIl9maW5kIj09eC52aWV3LnRvKDUpfX19LCIjdmlldy1wbmF2LWpzb24iOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LmdyaWR9fSx3YXRjaDpbIiN2aWV3LWdyaWQiXX0sIiNidG4tc2VsZWN0Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKCIiIT14LnJlZHVjZXx8Il9maW5kIj09eC52aWV3LnRvKDUpKXJldHVybiIiO3ZhciBiPXRoaXMsYz0oKHguZ3JpZD9iLmdSb3dzOmIuZlJvd3MpfHxiLlJvd3MpLnRvKCt4LmxpbWl0KS5tYXAoeD0+eC5pZCkudW5pcXVlKCksZD14LnNlbGVjdGlvbi5pbnRlcnNlY3QoYyksZT1kLmxlbmd0aCxmPXguc2VsZWN0aW9uLmxlbmd0aCxnPWIubGFuZztyZXR1cm4gbnVsbCE9YSYmKHguc2VsZWN0aW9uPWU/eC5zZWxlY3Rpb24uc3VidHJhY3QoYykudW5pcXVlKCk6Zj9bXTp4LnNlbGVjdGlvbi5jb25jYXQoYykudW5pcXVlKCksZT0oZD14LnNlbGVjdGlvbi5pbnRlcnNlY3QoYykpLmxlbmd0aCksZSYmZT09Zj9nLlRYVF9VTlNFTEVDVC5hc3NpZ24oZT09Yy5sZW5ndGg/Zy5UWFRfU0VMRUNUX0FMTDplKTohZSYmZj9nLlRYVF9VTlNFTEVDVC5hc3NpZ24oZik6ZSYmZSE9Zj9nLlRYVF9VTlNFTEVDVF9PRi5hc3NpZ24oZSxmKTpnLlRYVF9TRUxFQ1QuYXNzaWduKHguc2VhcmNoLmxlbmd0aD4yP2cuVFhUX1NFTEVDVF9GSUxURVI6Zy5UWFRfU0VMRUNUX0FMTCl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiEodGhpcy5mUm93c3x8dGhpcy5Sb3dzKS5sZW5ndGh8fCIiIT14LnJlZHVjZXx8Il9maW5kIj09eC52aWV3LnRvKDUpfX0sd2F0Y2g6WyIjdmlldy1hY3Rpb25zIiwiI3N0YXRlLXByb3h5IiwiI2FwcC1zZWFyY2giXX0sIiNidG4tZ3JpZC1hZGRjb2wiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpczsxPT14LmNvbHVtbnMubGVuZ3RoJiYiLnZhbHVlIj09eC5jb2x1bW5zWzBdP3guY29sdW1ucz1iLmRlcml2ZUdyaWRDb2x1bW5zKCk6eC5jb2x1bW5zLnB1c2goIiIpLGIuYnVpbGRHcmlkQ29sdW1ucygpLGIubXkucmVzdHlsZSgpfX0sZXZlbnRzOiJjbGljay5teSIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LmdyaWR8fHRoaXMuQ29sdW1ucy5sZW5ndGg+N319LHdhdGNoOlsiI3ZpZXctZ3JpZCIsIiNncmlkLXByb3h5Il19LCIjdmlldy1wbmF2LWdyaWQiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZ3JpZH19LHdhdGNoOlsiI3ZpZXctZ3JpZCJdfSwiI3ZpZXctZ3JpZC1jb2xzIjp7Y2hlY2s6ITAsZGVsYXk6MjAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTt4LnNvcnRhYmxlKHtheGlzOiJ4IixkaXN0YW5jZTo1LGhhbmRsZToiLnZpZXctZ3JpZC1jb2xzLXNvcnQifSksYS5idWlsZEdyaWRDb2x1bW5zKCl9LG1lcmdlOiExLGJpbmQ6InRoaXMuQ29sdW1ucyIsbGlzdDonPGRpdiBjbGFzcz0idmlldy1ncmlkLWNvbHVtbiBkaWIgdmF0Ij48ZGl2IGNsYXNzPSJ2aWV3LWdyaWQtY29scy1zb3J0IiB0aXRsZT0iRHJhZyBoZXJlIHRvIHNvcnQgY29sdW1ucyI+PC9kaXY+PGRpdiBjbGFzcz0idzEwMHAgZGliIHZhdCI+PGlucHV0IGNsYXNzPSJncmlkLWNvbHVtbi1wdHIgYm9sZGVyIiB0eXBlPSJ0ZXh0IiBzcGVsbGNoZWNrPSJmYWxzZSI+PHNwYW4gaWQ9ImJ0bi1mb2xkIiBjbGFzcz0icHNldWRvbGluayB0ZG4gYmZvbGQgZGliIHZhdCI+PGRpdj7ilrw8L2Rpdj48L3NwYW4+PC9kaXY+PC9kaXY+JyxpZDpbImlkIl0sbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuR3JpZENvbHVtbigpfSx3YXRjaDpbIiNidG4tZ3JpZC1hZGRjb2wiLCIjdmlldy1ncmlkIl19LCIjZ3JpZC1wcm94eSI6e2RlbGF5OjUxLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKHguZ3JpZCYmKGIuQ29sdW1uc3x8W10pLmxlbmd0aCl7dmFyIGM9eC5jb2x1bW5zLmxlbmd0aDt4LmNvbHVtbnM9Yi5Db2x1bW5zLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5jb2xzfSksYi5zdGFzaFZpZXdTdGF0ZSgpLGMhPShiLkNvbHVtbnN8fFtdKS5sZW5ndGgmJnRoaXMubXkucmVzdHlsZSgpfX0sd2F0Y2g6WyIjdmlldy1ncmlkLWNvbHMiXX0sIiNyZXEtZHVyIjp7ZGVsYXk6MTAwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGE9eC5kdXIsYj14LnNpemU7cmV0dXJuIGEmJmI/dGhpcy5CeXRlcyhiKSsiIMK3ICIrYSsibXMiOiIifSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZHVyfHwheC5zaXplfX0sd2F0Y2g6WyIjc3RhdGUtcHJveHkiXX0sIiNzdGF0ZS1wcm94eSI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXt2YXIgYj10aGlzO3gucGF0aC5zbGljZSgwKTt4LnBhdGg9Yi5zMnAoKTt2YXIgYz1jdy5saWIuc2RibShbeC52aWV3LHguc3RhcnQseC5saW1pdCx4LnJldmVyc2UseC5yZWR1Y2UrIiIseC52aWV3PyIiOnguaW5jbCsiIl0pO3guc3RhdGUhPWMmJihiLnN0YXNoVmlld1N0YXRlKCksJC5teS5yYWRpbygicGF0aGNoYW5nZSIse2lkOngudGFiaWQscGF0aDp4LnBhdGgsdGl0bGU6Yi50aXRsZSgpfSkseC5zdGF0ZT1jLC9eKHxfZGVzaWduX2RvY3N8X2xvY2FsX2RvY3N8X2NoYW5nZXMpJC8udGVzdCh4LnZpZXcpJiYoeC5lZGl0b3I9ITEpLHguZWRpdG9yP2IuRWRTd2l0Y2goKTpiLkVkaXRvci5sZW5ndGg9MCxiLkdldFZpZXcoITApLGIubXkucmVjYWxjKCIjdmlldy1lZC1jb250YWluZXIiKSx4LmVkaXRvcnx8Yi5teS5yZXN0eWxlKCkpfX0sd2F0Y2g6WyIjdmlldy1ncmlkIiwiI3ZpZXctc3RhcnRrZXkiLCIjdmlldy1uYW1lIiwiI3ZpZXctbGltaXQiLCIjYnRuLXZpZXctZGlyIiwiI3ZpZXctcmVkdWNlIiwiI3ZpZXctd2l0aGRvY3MiXSxsaXN0ZW46e2RidXBkYXRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpczsoT2JqZWN0LmlzT2JqZWN0KGEpP2EuZGI6YSsiIik9PXgucGF0aFswXSYmKChhLmRvY3N8fFtdKS5maW5kKC9eX2Rlc2lnbi8pJiYoYS5kb2NzLmZvckVhY2goZnVuY3Rpb24oeCl7Yi5EZG9jc1t4XSYmZGVsZXRlIGIuRGRvY3NbeF19KSxiLkdldFZpZXdzKCEwKSksYi5HZXRWaWV3KCEwKSl9LGRiZGVsZXRlZDpmdW5jdGlvbih4LGEpe2lmKGE9PXgucGF0aFswXSl7dmFyIGI9dGhpczsoZnVuY3Rpb24oKXtiLm15LnJvb3QoKS50cmlnZ2VyKCJ0YWJjbG9zZSIse3RhYmlkOngudGFiaWQsZW5mb3JjZTohMH0pfSkuZGVib3VuY2UoTnVtYmVyLnJhbmRvbSgxMCw1MCkpKCl9fX19LCIjdmlldy1yZXEtZXJyb3IiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLkVycm9yLmVzY2FwZUhUTUwoKX0sY3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuRXJyb3J9fSx3YXRjaDpbIiNzdGF0ZS1wcm94eSJdfSwiI3ZpZXctZWQtY29udGFpbmVyIjp7ZGVsYXk6MTAwLGluaXQ6ZnVuY3Rpb24oeCl7fSxiaW5kOiJ0aGlzLkVkaXRvciIsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7dmFyIGE9eC50eXBlO3JldHVybiB0aGlzLlBobygidmlldyI9PWE/IlZpZXdFZCI6ImluZGV4Ij09YT8iSW5kZXhFZCI6Ik1hbmdvRWQiKX0sbGlzdDonPGRpdj48ZGl2IGNsYXNzPSJ3MTAwcCB0YWMgcHQ1MCBsaDIwMCI+PGRpdiBjbGFzcz0iY3ctYnVzeSB3MTAwIGgzIj48L2Rpdj48L2Rpdj48L2Rpdj4nLGlkOlsibmFtZSIsInR5cGUiLCJkZG9jIiwicmV2Il0sd2F0Y2g6WyIjYnRuLXZpZXdjb2RlIl19LCIjdmlldy1yZXN1bHRzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGNzczp7fX0sIiN2aWV3LXJlc3VsdHMtanNvbiI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuVERvY3MsYz1hLlRNYXAsZD1hLlRNYW5nbyxlPWEuZGF0YTt4Lmxpc3Qoe2RhdGE6YS5Sb3dzLnRvKCtlLmxpbWl0KSxkZWxheTowLGNodW5rOjUwLHNvcnRCeTpudWxsLGlkOng9PnguX2lkeCxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbZS52aWV3LGUuc2VxfHwiIixhLlJvd3MubGVuZ3RoLGUudmlldz8iIjplLmluY2wsbnVsbD09eC5kb2MseC5fY2hlY2tlZCxlLnNlYXJjaC5sZW5ndGg+MT9lLnNlYXJjaDoiICIsIl9kZXNpZ25fZG9jcyI9PWUudmlld3x8Il9jaGFuZ2VzIj09ZS52aWV3P1t4LnZhbHVlLHgudmlld19pbmRleF06IiAiXSl9LHRlbXBsYXRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIl9sb2NhbF9kb2NzIj09ZS52aWV3fHwhZS52aWV3JiYhZS5pbmNsLmxlbmd0aD9iKHgsYSk6Il9maW5kIj09ZS52aWV3LnRvKDUpP2QoeCxhKTpjKHgsYSl9fSkseC5vbigiY2xpY2subXkiLCIuY29sLXZhbHMiLGZ1bmN0aW9uKHgpe3ZhciBiLGMsZCxlPSQoeC5jdXJyZW50VGFyZ2V0KSxmPWUucGFyZW50KCkuZGF0YSgia2V5IiksZz1PYmplY3QuaXNTdHJpbmcoZik/ZjpKU09OLnN0cmluZ2lmeShmKTtpZighZS5pcygiLmNvbC1qc29uIikpe2lmKCEoYj0oYS5Sb3dzfHxbXSkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5faWR4PT1nfSkpKXJldHVybiExO2IuX2luZGV4LGUuYWRkQ2xhc3MoImNvbC1qc29uIiksZS5maW5kKCI+LmNvbC1lZC1jbG9zZSIpLmxlbmd0aHx8KGQ9Yi5fa2pzb24rYi5fdmpzb24sZS5hcHBlbmQoYz0kKCc8ZGl2IGNsYXNzPSJjb2wtZWQgcHJlIGZzODUgbGgxMjAgcGw0Ij48L2Rpdj4nKSksZS5hcHBlbmQoJzxkaXYgY2xhc3M9ImNvbC1lZC1jbG9zZSBmczEzMCBsaDEzMCIgdGl0bGU9InsxfSI+4pyVPC9kaXY+Jy5hc3NpZ24oYS5SVCgibGFuZyIpLlRJUF9DTE9TRUpTT04pKSxDb2RlTWlycm9yKGNbMF0se21vZGU6ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiExLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6ITB9KS5zZXRWYWx1ZShkKSxhLmZTZWFyY2gmJmNbMF0uY2hpbGRyZW5bMF0uQ29kZU1pcnJvci5hZGRPdmVybGF5KHt0b2tlbjpmdW5jdGlvbih4LGIpe2lmKHgubWF0Y2goYS5jbVNlYXJjaCkpcmV0dXJuIHguZWF0KGEuY21TZWFyY2gpLCJmb3VuZCI7Zm9yKDtudWxsIT14Lm5leHQoKSYmIXgubWF0Y2goYS5jbVNlYXJjaCwhMSk7KTtyZXR1cm4gbnVsbH19KSl9fSkseC5vbigiY2xpY2subXkiLCIuY29sLWVkLWNsb3NlIixmdW5jdGlvbih4KXtyZXR1cm4gJCh4LmN1cnJlbnRUYXJnZXQpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJjb2wtanNvbiIpLCExfSl9LGRlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGw9PWEpe3ZhciBjLGQ9dGhpcyxlPSIiPT14LnJlZHVjZSYmIl9maW5kIiE9eC52aWV3LnRvKDUpO2lmKCF4LmdyaWQpe2lmKC9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdCh4LnZpZXcpfHxlKXt2YXIgZj1jdy5saWIuYTJvKHguc2VsZWN0aW9uKTtkLlJvd3MuZm9yRWFjaCh4PT54Ll9jaGVja2VkPWZbZT94LmlkOngua2V5XT8iY2hlY2tlZCI6IiIpfXguc2VhcmNoLmxlbmd0aD4yJiYoYz1kLmZTZWFyY2gpPyhkLmZSb3dzPWQuUm93cy50bygreC5saW1pdCkuZmlsdGVyKHg9PmMudGVzdCh4Ll9ranNvbil8fGMudGVzdCh4Ll92anNvbikpLGIubGlzdCgiZGF0YSIsZC5mUm93cykpOihkLmZSb3dzPW51bGwsYi5saXN0KCJkYXRhIixkLlJvd3MudG8oK3gubGltaXQpKSl9fX0sd2F0Y2g6WyIjc3RhdGUtcHJveHkiLCIjdmlldy1hY3Rpb25zIiwiI2J0bi1zZWxlY3QiLCIjYXBwLXNlYXJjaCJdfSwiI3ZpZXctcmVzdWx0cy1ncmlkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9KGEuVERvY3MsYS5UTWFwLGEuVE1hbmdvLGEuVEdyaWRNYXApLGM9YS5kYXRhO3RyeXt4Lmxpc3Qoe2RhdGE6KGEuZ1Jvd3N8fFtdKS50bygrYy5saW1pdCksZGVsYXk6MCxjaHVuazo1MCxzb3J0Qnk6bnVsbCxpZDp4PT54Ll9pZHgsaGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW2MudmlldyxjLnNlcXx8IiIsYS5Sb3dzLmxlbmd0aCx4Ll9jaGVja2VkLGMuY29sdW1ucyxudWxsPT14LmRvYyxjLnNlYXJjaC5sZW5ndGg+MT9jLnNlYXJjaDoiICIsIl9kZXNpZ25fZG9jcyI9PWMudmlld3x8Il9jaGFuZ2VzIj09Yy52aWV3P1t4LnZhbHVlLHgudmlld19pbmRleF06IiAiXSl9LHRlbXBsYXRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGIoeCxhKX19KX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX14Lm9uKCJjbGljay5teSIsInRkLmdyaWQtY29sdW1uIixmdW5jdGlvbih4KXt2YXIgYixjLGQsZT0kKHguY3VycmVudFRhcmdldCksZj1lLnBhcmVudCgpLmRhdGEoImtleSIpLGc9T2JqZWN0LmlzU3RyaW5nKGYpP2Y6SlNPTi5zdHJpbmdpZnkoZik7aWYoIWUuaXMoIi5jb2wtanNvbiIpKXtpZighKGI9KGEuZ1Jvd3N8fFtdKS5maW5kKHg9PnguX2lkeD09ZykpKXJldHVybiExO3ZhciBoPSQoJzx0ZCBjbGFzcz0iZ3JpZC1jb2x1bW4gY29sLWpzb24gcHJlbCIgY29sc3Bhbj0iezF9Ij48L3RkPicuYXNzaWduKGEuQ29sdW1ucy5sZW5ndGgpKTtoPWguaW5zZXJ0QWZ0ZXIoZS5wYXJlbnQoKS5jaGlsZHJlbigpWzBdKSxiLl9pbmRleCxkPWIuX2tqc29uK2IuX3Zqc29uLGguYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtZWQgcHJlIGZzODUgbGgxMjAiPjwvZGl2PicpLGguYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtZWQtY2xvc2UgZnMxMzAgbGgxMzAiIHRpdGxlPSJ7MX0iPuKclTwvZGl2PicuYXNzaWduKGEuUlQoImxhbmciKS5USVBfQ0xPU0VKU09OKSksYz1oLmZpbmQoIi5jb2wtZWQiKSxDb2RlTWlycm9yKGNbMF0se21vZGU6ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiExLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6ITB9KS5zZXRWYWx1ZShkKSxhLmZTZWFyY2gmJmNbMF0uY2hpbGRyZW5bMF0uQ29kZU1pcnJvci5hZGRPdmVybGF5KHt0b2tlbjpmdW5jdGlvbih4LGIpe2lmKHgubWF0Y2goYS5jbVNlYXJjaCkpcmV0dXJuIHguZWF0KGEuY21TZWFyY2gpLCJmb3VuZCI7Zm9yKDtudWxsIT14Lm5leHQoKSYmIXgubWF0Y2goYS5jbVNlYXJjaCwhMSk7KTtyZXR1cm4gbnVsbH19KX19KSx4Lm9uKCJjbGljay5teSIsIi5jb2wtZWQtY2xvc2UiLGZ1bmN0aW9uKHgpe3JldHVybiAkKHguY3VycmVudFRhcmdldCkucGFyZW50KCkucmVtb3ZlKCksITF9KX0sZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbD09YSYmeC5ncmlkKXt2YXIgYz10aGlzLGQ9Yy5GLmdldFJlZlN0YXIsZT0iIj09eC5yZWR1Y2UmJiJfZmluZCIhPXgudmlldy50byg1KSxmPWMuQ29sdW1ucy5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtpZih4Lmxhc3QoKSYmeC5sYXN0KCkuY29scz09YS5jb2xzKXJldHVybiB4Lmxhc3QoKS5zcGFuKz0xLHg7dmFyIGI9KGEuY2FzdD9hLmNvbHMudG8oYS5jb2xzLmxlbmd0aC1hLmNhc3QubGVuZ3RoLTIpOmEuY29scykuc3BsaXQoIi4iKTtyZXR1cm4iIiE9PWJbMF0/Yi51bnNoaWZ0KCJ2YWx1ZSIpOmIuc2hpZnQoKSx4LnB1c2goe3NlbDpiLHNwYW46MSxjb2xzOmEuY29scyxjYXN0OmEuY2FzdH0pLHh9LFtdKSxnPWN3LmxpYi5hMm8oeC5zZWxlY3Rpb24pO2MuUm93cy5mb3JFYWNoKHg9PnguX2NoZWNrZWQ9Z1tlP3guaWQ6eC5rZXldPyJjaGVja2VkIjoiIiksYy5nUm93cz1jLlJvd3MudG8oK3gubGltaXQpO3ZhciBoPXguc2VhcmNoLmxlbmd0aD4yJiZjLmZTZWFyY2g/Yy5mU2VhcmNoOm51bGw7aCYmKGMuZ1Jvd3M9Yy5nUm93cy5maWx0ZXIoeD0+aC50ZXN0KHguX2tqc29uKXx8aC50ZXN0KHguX3Zqc29uKSkpLGMuZ1Jvd3MuZm9yRWFjaChmdW5jdGlvbih4LGEpe3guY29scz1mLm1hcChmdW5jdGlvbihhKXt2YXIgYj1hLnNlbC5sZW5ndGg/ZCh4LGEuc2VsKTp2b2lkIDAsYz0ic3RyaW5nIj09dHlwZW9mIGIsZT1udWxsIT1oJiZoLnRlc3QoYz9iOkpTT04uc3RyaW5naWZ5KGIpKTtyZXR1cm57dmFsOmIsc3BhbjphLnNwYW4sY3NzOmU/ImNlbGwtZm91bmQiOiIiLGNhc3Q6YS5jYXN0fX0pfSksYi5saXN0KCJkYXRhIixjLmdSb3dzKX19LHdhdGNoOlsiI3ZpZXctbmFtZSIsIiN2aWV3LWdyaWQiLCIjZ3JpZC1wcm94eSIsIiNzdGF0ZS1wcm94eSIsIiN2aWV3LWFjdGlvbnMiLCIjYnRuLXNlbGVjdCIsIiNhcHAtc2VhcmNoIl19fSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgdzEwcCBmczk1IHppMiI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyB4Z3JheSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJ7UExDX1NFQVJDSH0iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykuYmx1cigpIj48L3NwYW4+PC9kaXY+PGRpdiBpZD0ieC1idG4tcm9vdCIgY2xhc3M9ImRpYiB2YXQgb2gge191cHdpZHRofSB0dzEwMCI+PGEgaWQ9ImJ0bi1yb290IiBjbGFzcz0idzQwIGJ1dHRvbiBtcjIgdGRuIGRpYiB2YXQgcGwwIHByMCBmdzYwMCIgdGl0bGU9IkRCIGRvYyBsaXN0Ij4uLi88L2E+PC9kaXY+PGRpdiBjbGFzcz0ibncgZGliIHZhdCIgc3R5bGU9IndpZHRoOmNhbGMoMzUlICsgMjMwcHgpOyI+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZCIgY2xhc3M9Inc0MCBtcjIiIHRpdGxlPSJ7VElQX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PGRpdiBjbGFzcz0iZGliIHZhdCBtcjIgYm9sZGVyIiBzdHlsZT0id2lkdGg6Y2FsYygoMTAwJSAtIDIwNHB4KSAvIDIgKyAxNnB4KTsiPjxpbnB1dCBpZD0idmlldy1uYW1lIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iIHcxMDBwIGZzMTEwIHZhdCI+PC9kaXY+PGRpdiBjbGFzcz0iZnM5NSBkaWIgdmF0IiBzdHlsZT0id2lkdGg6Y2FsYygoMTAwJSAtIDIwNHB4KSAvIDIgLSA1cHgpOyI+PGRpdiBjbGFzcz0iZmktZmlsdGVyIHhncmF5IG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogNnB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgaWQ9InZpZXctc3RhcnRrZXkiIHR5cGU9InRleHQiIGNsYXNzPSJ2YXQgdWktc2VhcmNoIHcxMDBwIiBwbGFjZWhvbGRlcj0ie1BMQ19TVEFSVEtFWX0iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxN3B4IWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MTlweCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoycHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHcxNSBwbDIgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE1cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLnRyaWdnZXIoXCdpbnB1dFwnKSI+PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJidXR0b25zIG1sMiI+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWludXMiIGNsYXNzPSJ3MmVtIG1yMiBwbDAgcHIwIiB0aXRsZT0ie1RJUF9TSElGVF9NSU5VU30iPjxzcGFuIGNsYXNzPSJmaS1hcnJvdy1sZWZ0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LXBsdXMiIGNsYXNzPSJ3MmVtIG1yMiBwbDAgcHIwIiB0aXRsZT0ie1RJUF9TSElGVF9QTFVTfSI+PHNwYW4gY2xhc3M9ImZpLWFycm93LXJpZ2h0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjwvc3Bhbj48ZGl2IGNsYXNzPSJkaWIgdmF0IHc3MCI+PGlucHV0IGlkPSJ2aWV3LWxpbWl0IiB0eXBlPSJ0ZXh0IiBjbGFzcz0iIHcxMDBwIGZzMTEwIHZhdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCBwcjcgYnV0dG9ucyIgaWQ9InZpZXctZ3JpZCI+PC9kaXY+PGRpdiBpZD0idmlldy1hY3Rpb25zIiBjbGFzcz0ibncgcGw1IGRpYiB2YXQiIHN0eWxlPSJ3aWR0aDpjYWxjKDUzJSAtIDI3MHB4KTsiPjxhIGhyZWY9IiIgaWQ9ImJ0bi12aWV3LW5ld2RvYyIgY2xhc3M9ImJ1dHRvbiBmczEwMCB0ZG4gZGliIGdyZWVuIHZhdCBtcjIgbm90NGRkb2Nzc2VsIj48c3BhbiBjbGFzcz0ibGgxNDAiPntCVE5fTkVXRE9DfTwvc3Bhbj48L2E+PGJ1dHRvbiBpZD0iYnRuLXZpZXctZGVsZG9jcyIgY2xhc3M9Im9rNHNlbCBtcjIgcmVkIj57QlROX0RFTERPQ1N9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctY29weWRvY3MiIGNsYXNzPSJvazRzZWwgbXIyIiB4ZGlzYWJsZWQ+e0JUTl9DT1BZRE9DU308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1jb21wYWN0IiBjbGFzcz0ibm90NHNlbCBvazRkZG9jcyBtcjIiPntCVE5fQ09NUEFDVH08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1hY2wiIGNsYXNzPSJub3Q0c2VsIj57QlROX0FDTH08L2J1dHRvbj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1wYW5lbHMiIGNsYXNzPSJ3MTAwcCBwdDE2IHBsMjAgcHIyMCI+PHNlY3Rpb24gaWQ9InZpZXctZWQtY29udGFpbmVyIiBjbGFzcz0idmF0IHBhbmVsaGVpZ2h0LTMyIGJyMiBtcjIwIGJ4dG9wLTMxIiBzdHlsZT0ib3V0bGluZTpub25lOyI+PC9zZWN0aW9uPjxkaXYgaWQ9InZpZXctcGFuZWwiIGNsYXNzPSJkaWIgdmF0IHBhbmVsaGVpZ2h0LTMyIGJyMiI+PGRpdiBjbGFzcz0iYmctcGdyYXkgYmJzIGxoMTYwIG53IG9oIGVsbCB2aWV3LXJlc3VsdHMtaGVhZCB4cGFuZWwgYmFzIj48ZGl2IGNsYXNzPSJoY29sdzEgZGliIHZhdCBwdDEgbncgb2ggZWxsIHByMiI+PHNwYW4gaWQ9ImJ0bi12aWV3LWRpciIgY2xhc3M9ImRpYiBwbDggcHI2IG1yMiB2YXQgY3AgbzUwIGZzODAgcHQyIHBzZXVkb2xpbmsgdGRuIGgzMCI+PC9zcGFuPjxkaXYgaWQ9InZpZXctY29scyIgY2xhc3M9ImRpYiB2YXQgbncgeGdyYXkgbXI4Ij48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWJ0bnMtYm94IGRpYiB2YXQiPjxkaXYgaWQ9ImJ0bi1zZWxlY3QiIGNsYXNzPSJidXR0b24geGJ1dHRvbiBwdDIgaDI1IG10MSBmczkwIGxoMTMwIHRkbiBkaWIgdmF0IG1sMyBoaWRlIj48L2Rpdj48ZGl2IGlkPSJidG4tdmlld2NvZGUiIGNsYXNzPSJidXR0b24geGJ1dHRvbiBwdDIgaDI1IG10MSBmczkwIGxoMTMwIHRkbiBkaWIgdmF0IG1sMyBoaWRlIiB0aXRsZT0ie1RJUF9WSUVXQ09ERX0iPntCVE5fVklFV0NPREV9PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0idmlldy1wbmF2LWpzb24iIGNsYXNzPSJoY29sdzIgZGliIHB0MSBncmF5IGZzOTAiPjxzcGFuIGNsYXNzPSJ2aWV3LWVkaXRvci1oaWRlIGdyYXkgZnIgcHI4IHczNXAgZWxsIHRhciI+PHNwYW4gaWQ9InZpZXctbGlua3MiPjwvc3Bhbj48YSBocmVmPSIiIGlkPSJidG4tYW5jaG9yIiBjbGFzcz0idGRuIG83MCBkaWIgdmF0IG10MSBtYi0xIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IntUSVBfQU5DSE9SfSI+PHNwYW4gY2xhc3M9ImZpLWFuY2hvciI+PC9zcGFuPjwvYT48L3NwYW4+PHNwYW4gaWQ9InZpZXctcmVkdWNlIiBjbGFzcz0ibXQxIHBsNyBoaWRlIj48L3NwYW4+PHNwYW4gaWQ9InZpZXctd2l0aGRvY3MiIGNsYXNzPSJtdDEgaGlkZSI+PC9zcGFuPjxzcGFuIGlkPSJ2aWV3LWRkc3RhdHMiIGNsYXNzPSJtdDEgcGw3IHhncmF5IGhpZGUiPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ2aWV3LXBuYXYtZ3JpZCIgY2xhc3M9Imhjb2x3MiBkaWIgdmF0IGZzOTUgZ3JheSBoaWRlIj48ZGl2IGlkPSJ2aWV3LWdyaWQtY29scyI+PC9kaXY+PGRpdiBpZD0iYnRuLWdyaWQtYWRkY29sIiBjbGFzcz0iYnV0dG9uIHAwIGxoMTYwIGZzMTEwIHRkbiBkaWIgdmF0IGJscyBib2xkZXIgdGFjIiB0aXRsZT0ie1RJUF9BRERDT0x9Ij4rPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0idmlldy1yZXEtZXJyb3IiIGNsYXNzPSJ3MTAwcCBoaWRlIHJlZDEgdGFjIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjUwcHg7bGVmdDowOyI+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctcmVzdWx0cyIgY2xhc3M9InBhbmVsaGVpZ2h0LTYzIGdyYXktMSBsaDE3MCBieHRvcCIgc3R5bGU9Im91dGxpbmU6bm9uZTsiPjxzZWN0aW9uIGlkPSJ2aWV3LXJlc3VsdHMtanNvbiIgY2xhc3M9IncxMDBwIiBzdHlsZT0ib3V0bGluZTpub25lOyI+PC9zZWN0aW9uPjx0YWJsZSBjbGFzcz0iZ3JpZC10YWJsZSIgY2VsbHNwYWNpbmc9IjAiPjx0Ym9keSBpZD0idmlldy1yZXN1bHRzLWdyaWQiIGNsYXNzPSJteS1jb250YWluZXIiPjwvdGJvZHk+PC90YWJsZT48L3NlY3Rpb24+PC9kaXY+PC9zZWN0aW9uPjxkaXYgaWQ9InN0YXRlLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PGRpdiBpZD0iZ3JpZC1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjxkaXYgaWQ9InJlcS1kdXIiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHN0eWxlOnsiICN2aWV3LWFjdGlvbnMiOnsiIC5ub3Q0c2VsIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5vazRzZWwiOiJkaXNwbGF5Om5vbmU7IiwiLmhhc1NlbGVjdGlvbiI6eyIgLm5vdDRzZWwiOiJkaXNwbGF5Om5vbmU7IiwiIC5vazRzZWwiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIuaXNEZG9jcyI6eyIgLm9rNGRkb2NzIjoiZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50OyIsIiAubm90NGRkb2Nzc2VsIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsifX19LCIgI3JlcS1kdXIiOiJwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi0wLjc1ZW07IHJpZ2h0OjMlO2ZvbnQtc2l6ZTo4MCU7IGxpbmUtaGVpZ2h0OjEuMjVlbTsgY29sb3I6IzhhOTA5YTsgYm9yZGVyOjFweCBzb2xpZCAjY2JkM2RiO2JhY2tncm91bmQ6d2hpdGU7IGJvcmRlci1yYWRpdXM6MTBweDsgcGFkZGluZzowcHggNXB4IDFweCA1cHg7IiwiICN2aWV3LXBhbmVscyI6eyIiOnsiICN2aWV3LXBhbmVsIjoid2lkdGg6MTAwJTsiLCIgI3ZpZXctZWQtY29udGFpbmVyIjoiZGlzcGxheTpub25lO3dpZHRoOjM1JTsiLCIgLmhjb2x3MSI6IndpZHRoOjM4JTsgdHJhbnNpdGlvbjp3aWR0aCAwLjFzOyIsIiAuaGNvbHcyIjoid2lkdGg6NjIlOyB0cmFuc2l0aW9uOndpZHRoIDAuMXM7In0sIi52aWV3LWVkaXRvciI6eyIgI3ZpZXctcGFuZWwiOiJ3aWR0aDpjYWxjKDYwJSAtIDIwcHgpOyIsIiAjdmlldy1lZC1jb250YWluZXIiOiJ3aWR0aDo0MCU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyAiLCIgLmhjb2x3MSI6IndpZHRoOjM4JTsiLCIgLmhjb2x3MiI6IndpZHRoOjYyJTsiLCIgLnZpZXctZWRpdG9yLWhpZGUiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9LCIudmlldy1lZGl0b3Iudmlldy1tYW5nbyI6eyIgI3ZpZXctcGFuZWwiOiJ3aWR0aDpjYWxjKDY1JSAtIDIwcHgpOyIsIiAjdmlldy1lZC1jb250YWluZXIiOiJ3aWR0aDozNSU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyJ9LCIudmlldy1tYW5nbyI6eyIgI3ZpZXctcmVzdWx0cyI6eyIgLmNvbC1pZHMiOiJ3aWR0aDo3JTtwYWRkaW5nOjNweCAycHggM3B4IDdweDsiLCIgLmNvbC12YWxzIjoid2lkdGg6OTMlOyBwYWRkaW5nLWxlZnQ6NXB4OyJ9LCIgI2J0bi12aWV3LWRpciI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiICN2aWV3LWNvbHMiOiJwYWRkaW5nLWxlZnQ6NnB4OyIsIi5tb2RlLWdyaWQiOnsiIC5oY29sdzEiOiJ3aWR0aDo2NXB4IWltcG9ydGFudDsiLCIgLmhjb2x3MiI6IndpZHRoOmNhbGMoMTAwJSAtIDY1cHgpIWltcG9ydGFudDsiLCIgdGFibGUuZ3JpZC10YWJsZSI6eyIgdGQuZ2NvbHcwIjoid2lkdGg6NjVweCFpbXBvcnRhbnQ7In19fSwiLnZpZXctZWRpdG9yLnZpZXctaW5kZXgiOnsiICN2aWV3LXBhbmVsIjoid2lkdGg6Y2FsYyg2NSUgLSAyMHB4KTsiLCIgI3ZpZXctZWQtY29udGFpbmVyIjoid2lkdGg6MzUlOyBkaXNwbGF5OmlubGluZS1ibG9jazsifSwiLnZpZXctaW5kZXgiOnsiIC52aWV3LXRvZmlsdGVyIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsifSwiLnZpZXctY2hhbmdlcyI6eyIgLnZpZXctdG9maWx0ZXIiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyJ9LCIubW9kZS1qc29uIjp7IiAuZ3JpZC10YWJsZSI6ImRpc3BsYXk6bm9uZTsifSwiLm1vZGUtZ3JpZCI6eyIgLmhjb2x3MSI6IndpZHRoOjMzMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlM2U5ZWM7IG1pbi1oZWlnaHQ6IDI5cHg7IiwiIC5oY29sdzIiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMzBweCk7IiwiIC52aWV3LWJ0bnMtYm94IjoiZmxvYXQ6cmlnaHQiLCIudmlldy1lZGl0b3IiOnsiIC5oY29sdzEiOiJ3aWR0aDoyODBweDsiLCIgLmhjb2x3MiI6IndpZHRoOmNhbGMoMTAwJSAtIDI4MHB4KTsiLCIgdGFibGUuZ3JpZC10YWJsZSI6eyIgdGQuZ2NvbHcwIjoid2lkdGg6MjgwcHg7In19LCIgI3ZpZXctZ3JpZC1jb2xzIjp7IiI6IndpZHRoOmNhbGMoMTAwJSAtIDMwcHgpOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyIsIiBpbnB1dCI6ImJvcmRlci1sZWZ0LWNvbG9yOiNlM2U5ZWM7In0sIiAjYnRuLWdyaWQtYWRkY29sIjp7IiI6ImJvcmRlcjpub25lOyBib3JkZXItbGVmdDoxcHggc29saWQgI2UzZTllYyFpbXBvcnRhbnQ7IHdpZHRoOjMwcHg7IGhlaWdodDoyOXB4OyBib3JkZXItcmFkaXVzOiAwcHg7IGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZjghaW1wb3J0YW50OyIsIjpob3ZlciI6ImJhY2tncm91bmQtY29sb3I6d2hpdGUhaW1wb3J0YW50OyJ9LCIgLnZpZXctcmVzdWx0cy1oZWFkIjoiYmFja2dyb3VuZC1jb2xvcjojZjBmOGZmIWltcG9ydGFudCIsIiB0YWJsZS5ncmlkLXRhYmxlIjp7IiI6ImJvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTsgdGFibGUtbGF5b3V0OmZpeGVkOyB3aWR0aDoxMDAlOyIsIiB0ciI6IndpZHRoOjEwMCUiLCIgdHI6bGFzdC1jaGlsZCB0ZCI6ImJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlZmYzOyIsIiB0ZCI6eyIiOiJwYWRkaW5nOjA7IHZlcnRpY2FsLWFsaWduOnRvcDsgdHJhbnNpdGlvbjp3aWR0aCAwLjFzOyBtaW4taGVpZ2h0OiAyZW07IiwiLmdjb2x2IjoiYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDAsMTQsMzUsMC4wNyk7IiwiLmdjb2x2PmRpdiI6InBhZGRpbmc6IDVweCA1cHggNnB4IDdweDsgbWluLWhlaWdodDoyZW07IiwiLmdjb2x3MCI6IndpZHRoOjMzMHB4OyAiLCIgPmRpdiI6IndpZHRoOjEwMCU7IHdvcmQtYnJlYWs6YnJlYWstd29yZDsiLCIgPmRpdi53MTAwcC0zMCI6IndpZHRoOmNhbGMoMTAwJSAtIDMwcHgpOyB3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7IHBhZGRpbmc6IDZweCA3cHggNnB4IDA7IiwiLmNvbC1qc29uIjp7IiB+dGQiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiI6InBhZGRpbmc6MCFpbXBvcnRhbnQ7In19fSwiICN2aWV3LXJlc3VsdHMtanNvbiI6ImRpc3BsYXk6bm9uZTsiLCIgIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9KGEuQ29sdW1uc3x8W10pLmxlbmd0aHx8MSxjPWEubXkuZmluZCgiI3ZpZXctcmVzdWx0cyIpLGQ9Il9maW5kIj09YS5kYXRhLnZpZXcudG8oNSksZT0oKGMubGVuZ3RoP2Mud2lkdGgoKToxMDI0KS0oZD82NTphLmRhdGEuZWRpdG9yPzI4MDozMzApKS9iO3JldHVybiBhLmNsb3NlQXV0b2NvbXBsZXRlcyYmYS5jbG9zZUF1dG9jb21wbGV0ZXMoKSxbMSwyLDMsNCw1LDYsNyw4XS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFsiIC5nY29sdyIrYV09IndpZHRoOiIrYSplKyJweDsiLHh9LHsiIC52aWV3LWdyaWQtY29sdW1uIjoid2lkdGg6Y2FsYygoMTAwJSArIDMwcHgpLyAiK2IrIik7IiwiIC52aWV3LWdyaWQtY29sdW1uOmxhc3QtY2hpbGQiOiJ3aWR0aDpjYWxjKCgoMTAwJSArIDMwcHgpLyAiK2IrIikgLSAzMHB4KTsifSl9fSwiIC52aWV3LWhvdmVyYnRuLnZpZXctZWRpdHVzZXIiOiJkaXNwbGF5Om5vbmUiLCIuZGItdXNlcnMgLnZpZXctaG92ZXJidG4udmlldy1lZGl0dXNlciI6ImRpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDsifSwiICN2aWV3LWdyaWQtY29scyI6eyIgLnZpZXctZ3JpZC1jb2x1bW4iOnsiLnVpLXNvcnRhYmxlLWhlbHBlciI6eyIiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KTsiLCIgLnZpZXctZ3JpZC1jb2xzLXNvcnQiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTIwLDE2OCwyMjIsMC41KTsifX0sIiBpbnB1dCI6eyIiOiJib3JkZXItcmFkaXVzOiAwOyBib3JkZXItdG9wOm5vbmU7IGJvcmRlci1ib3R0b206bm9uZTsgYm9yZGVyLXJpZ2h0Om5vbmU7IHBhZGRpbmctcmlnaHQ6MjBweDt3aWR0aDogY2FsYygxMDAlICsgMXB4KTsgaGVpZ2h0OjI5cHg7IGxpbmUtaGVpZ2h0OjI5cHg7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7ICIsIjpmb2N1cyI6ImJhY2tncm91bmQ6cmdiYSgwLDE1NSwyNTUsMC4xMik7In0sIiAudmlldy1ncmlkLWNvbHMtc29ydCI6eyIiOiJjdXJzb3I6bW92ZTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDozcHg7IHotaW5kZXg6MTsgd2lkdGg6MTAwJTsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuM3M7IiwiOmhvdmVyIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEyMCwxNjgsMjIyLDAuNSk7In19LCIgI3ZpZXctcmVzdWx0cyI6eyIiOiJsaW5lLWhlaWdodDoxLjRlbTsiLCIgLnZpZXctcm93IjoibWluLWhlaWdodDoyZW07IiwiIC52aWV3LXJvdzpudGgtY2hpbGQoMm4rMCkiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjA2LDIxNCwyMjYsMC4yKTsiLCIgLnZpZXctaG92ZXJidG4iOiJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMHB4O2xpbmUtaGVpZ2h0OjEuMmVtO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMC41czt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcjsiLCIgLnZpZXctcm93OmhvdmVyIC52aWV3LWhvdmVyYnRuIjoib3BhY2l0eTowLjU7IiwiIC52aWV3LXJvdzpob3ZlciAudmlldy1ob3ZlcmJ0bjpob3ZlciI6Im9wYWNpdHk6MC44OyIsIiAudmlldy1ob3ZlcmJ0bi5ob3ZlciI6Im9wYWNpdHk6MC43OyIsIiAudmlldy1yb3c+ZGl2IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO3dvcmQtd3JhcDogYnJlYWstd29yZDsiLCIgLmNvbC1pZHMiOiJ3aWR0aDozOCU7IHBhZGRpbmc6NHB4IDIwcHggNXB4IDhweDsiLCIgLmNvbC1pZHMudzM1cC0zMCI6IndpZHRoOmNhbGMoMzglIC0gMzBweCk7IiwiIC5jb2wtdmFscyI6eyIiOiJ3aWR0aDo2MiU7IHBhZGRpbmctbGVmdDoxMHB4OyIsIiAuY29sLXRyaW0iOiJjdXJzb3I6cG9pbnRlciIsIiAuY29sLWVkIjoiZGlzcGxheTpub25lOyIsIiAuY29sLWVkLWNsb3NlIjoiZGlzcGxheTpub25lOyJ9LCIgLnc0MHAtMzAiOiJ3aWR0aDpjYWxjKDQwJSAtIDMwcHgpOyIsIiAudzM4cC0zMCI6IndpZHRoOmNhbGMoMzglIC0gMzBweCk7IiwiIC53NjJwIjoid2lkdGg6NjIlOyJ9LCIgLmJicyI6ImJvcmRlci1ib3R0b20tY29sb3I6I2UzZTllYzsiLCIgLmJhcyI6ImJvcmRlci1jb2xvcjojZTNlOWVjOyIsIiAuYnJzIjoiYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZTNlOWVjOyIsIiAudmlldy1mb3VuZCI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjMyLDEyMSwwLjc1KTsgYm9yZGVyLXJhZGl1czoycHg7IiwiIC5jZWxsLWZvdW5kIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMzIsMTIxLDAuNCk7IiwiIC5teS1tb2RhbC1mb3JtIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MTUwcHg7bWF4LWhlaWdodDpjYWxjKDIwICogMTZweCArIDZweCk7IiwiIC5teS1tb2RhbC1mb3JtIC5Db2RlTWlycm9yIjp7IiI6Im1pbi1oZWlnaHQ6MTUwcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjEzcHghaW1wb3J0YW50IiwiIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweCFpbXBvcnRhbnQ7IiwiIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsifSwiIC51aS13aWRnZXQiOiJmb250LXNpemU6MTAwJSIsIiAudWktYXV0b2NvbXBsZXRlIjoiZm9udC1zaXplOjAuOWVtOyBsaW5lLWhlaWdodDoxLjI1ZW07IG1heC1oZWlnaHQ6NTB2aDsgei1pbmRleDoxODAwO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDsiLCIgLmJmb2xkIjp7IiI6WyJ3aWR0aDoyMHB4IWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgIiwiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IiwibWFyZ2luLWxlZnQ6LTIxcHg7IHotaW5kZXg6KzE7Il0sIiBkaXYiOiJmb250LXNpemU6NjAlOyBvcGFjaXR5OjAuNTt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDozLjRlbTt3aWR0aDoxMDAlOyJ9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1hLmxhbmc7eC5odG1sKCc8ZGl2IGNsYXNzPSJncmF5MSBmczEwNSBwdDEwMCBwYjEwMCB0YWMiPnsxfTwvZGl2PicuYXNzaWduKGMuTVNHX0xPQURJTkcpKSxhLkxzPWEuUGhvKCJMcyIpLE9iamVjdC5rZXlzKGEuRikuZm9yRWFjaChmdW5jdGlvbih4KXsiZnVuY3Rpb24iPT10eXBlb2YgYS5GW3hdJiYoYVt4XT1hLkZbeF0uYmluZChhKSl9KSxPYmplY3Qua2V5cyhhLlQpLmZvckVhY2goZnVuY3Rpb24oeCl7YS5UW3hdPWEuUGhvKCJDb21waWxlVCIpKGEuVFt4XSl9KSxhLlZpZXdzPWEuRGVmYXVsdFZpZXdzKCksYS5UTWFwPWEuVE1hcCgpLGEuVERvY3M9YS5URG9jcygpLGEuVE1hbmdvPWEuVE1hbmdvKCksYS5UR3JpZE1hcD1hLlRHcmlkTWFwKCk7dmFyIGQ9YS5QaG8oIkxzIikoIk1hbmdvLiIrYi5wYXRoWzBdKTtyZXR1cm4gT2JqZWN0LmlzT2JqZWN0KGQpJiZkLnF1ZXJ5JiYkLmV4dGVuZChiLm1hbmdvLGQpLHgub24oImNsaWNrLm15IiwiLnZpZXctdG9maWx0ZXIiLGZ1bmN0aW9uKHgpe3ZhciBkPSQoeC5jdXJyZW50VGFyZ2V0KS5kYXRhKCJmaWx0ZXIiKTtiLnN0YXJ0PU9iamVjdC5pc1N0cmluZyhkKT8vXiJcZCsiJC8udGVzdChkKT9kOmQucmVwbGFjZSgvXiJ8IiQvZywiIik6SlNPTi5zdHJpbmdpZnkoZCksY3cubGliLm5vdGUoYy5NU0dfU1RBUlRfQ0hBTkdFLmFzc2lnbihiLnN0YXJ0KSksYS5teS5yZWNhbGMoIiN2aWV3LXN0YXJ0a2V5IiksYS5teS5jaGVjaygiI3ZpZXctc3RhcnRrZXkiKX0uZGVib3VuY2UoNDApKSx4Lm9uKCJjbGljay5teSIsIi5idG4tb3Blbi1kb2MiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5kYXRhKCJ1cmwiKTthLlBobygiU3dpdGNoIikoYi5zcGxpdCgiLyIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHgpfSkpfSkseC5vbigiY2xpY2subXkiLCIudmlldy1lZGl0dXNlciIsZnVuY3Rpb24oYil7dmFyIGQ9JChiLmN1cnJlbnRUYXJnZXQpLGU9JChiLmN1cnJlbnRUYXJnZXQpLmRhdGEoInVzZXIiKTtpZignIic9PWVbMF0mJihlPUpTT04ucGFyc2UoZSkpLCFlLnN0YXJ0c1dpdGgoIm9yZy5jb3VjaGRiLnVzZXI6IikpcmV0dXJuIGN3LmxpYi5ub3RlKGMuRVJSX05PVEFVU0VSLCJlcnJvciIpLCExO2QuYWRkQ2xhc3MoImhvdmVyIiksYS5SZXEoWyJfdXNlcnMiLGVdKS50aGVuKGZ1bmN0aW9uKGIpe3JldHVybiBkLm1vZGFsKHtyb290OngsbWFuaWZlc3Q6YS5QaG8oIlVzZXJEb2MiKSxkYXRhOmIsd2lkdGg6MzgwLGJvdW5kOjAsbm9zZToibGVmdCIsY3NzOiJ4Z3JheSIsYWxpZ246ImxlZnQ6MTAwJTt0b3A6LTU3cHg7IixzY3JlZW46InJnYmEoMjU1LDI1NSwyNTUsMCkiLGVzYzohMH0pfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5yZW1vdmVDbGFzcygiaG92ZXIiKX0pfS5kZWJvdW5jZSg1KSkseC5vbigiY2xpY2subXkiLCdpbnB1dFtuYW1lPSJkb2NzLXNlbGVjdGlvbiJdJyxmdW5jdGlvbigpe3ZhciB4PSQodGhpcykudmFsKCk7JCh0aGlzKS5pcygiOmNoZWNrZWQiKT9iLnNlbGVjdGlvbj1iLnNlbGVjdGlvbi5hZGQoeCkudW5pcXVlKCk6Yi5zZWxlY3Rpb24ucmVtb3ZlKHgpLGEubXkuY2hlY2soIiN2aWV3LWFjdGlvbnMiKX0pLCJfdXNlcnMiPT1iLnBhdGhbMF0mJmEuUGhvKCJDZmciKS5saXN0Q29scy5pbmRleE9mKCJzZWN1cml0eSIpPi0xJiZ4LnRoZW4oZnVuY3Rpb24oKXthLkdldFNlYygpfSkseC50aGVuKGZ1bmN0aW9uKCl7YS5uaWNlU2Nyb2xsKHguZmluZCgiI3ZpZXctbmFtZSIpLmRhdGEoKS5zZWxlY3QyLmRyb3Bkb3duLmZpbmQoIi5zZWxlY3QyLXJlc3VsdHMiKSx7Ym91bmNlc2Nyb2xsOiEwLGN1cnNvcmNvbG9yOiIjMjM0IixjdXJzb3JvcGFjaXR5bWluOi4xLGN1cnNvcm9wYWNpdHltYXg6LjQscmFpbHBhZGRpbmc6e3JpZ2h0OjF9fSl9KSxhLkJ1c3koITApLGEuUGhvKCJQb2tlQnVja2V0IikoYi5wYXRoWzBdKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuR2V0Vmlld3MoITEsITApLnRoZW4oZnVuY3Rpb24oKXt2YXIgeD1iLnBhdGhbMl0sYz1iLnBhdGhbM107aWYoIl9maW5kIj09Yi5wYXRoWzFdKXt2YXIgZD14KyIiO2IubWFuZ28ucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT1kfSl8fChkPSJEZWZhdWx0IHF1ZXJ5IiksYi52aWV3PSJfZmluZO+/vSIrZCxiLmVkaXRvcj0hMH1lbHNlIGlmKCJfaW5kZXgiPT1iLnBhdGhbMV0pIkRlZmF1bHQgaW5kZXgiIT1iLnBhdGhbMl18fGIucGF0aFszXT9iLnZpZXc9Il9pZHgvezF977+9ezJ9Ii5hc3NpZ24oYi5wYXRoWzJdLGIucGF0aFszXSk6Yi52aWV3PSJfaWR4L++/vURlZmF1bHQgaW5kZXgiLGIuZWRpdG9yPSEwO2Vsc2UgaWYoL14oX2Rlc2lnbl9kb2NzfF9sb2NhbF9kb2NzfF9jaGFuZ2VzKSQvLnRlc3QoYi5wYXRoWzFdKSliLnZpZXc9Yi5wYXRoWzFdO2Vsc2UgaWYoeCYmYyl7dmFyIGU9Il9kZXNpZ24vIit4KyLvv70iK2M7Yi52aWV3PWEuVmlbZV0/ZToiIn19KX0pLnRoZW4oZnVuY3Rpb24oKXthLnJlc3RvcmVWaWV3U3RhdGUoKSx4Lmh0bWwoYS5IVE1MLmFzc2lnbihjKS5hc3NpZ24oe191cHdpZHRoOmIudmlldz8idzQyIjoidzAifSkpfSkuZmFpbChmdW5jdGlvbigpe2EuQnVzeSghMSl9KX0sRjp7RGVmYXVsdFZpZXdzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXgubGFuZyxiPXguUGhvKFsiQ291Y2giLCJ2ZXIiXSksYz1be2lkOiIiLHRleHQ6YS5PUFRfQUxMRE9DUyxvcmRlcjoiX18xIn0se2lkOiJfZGVzaWduX2RvY3MiLHRleHQ6YS5PUFRfRERPQ1Msb3JkZXI6Il9fMiJ9LHtpZDoiX2NoYW5nZXMiLHRleHQ6YS5PUFRfQ0hBTkdFUyxvcmRlcjoiX18zIn1dO2lmKGI+PSIwMDIuMDAwIiYmKGI+PSIwMDIuMDAxLjAwMiImJmMucHVzaCh7aWQ6Il9sb2NhbF9kb2NzIix0ZXh0OmEuT1BUX0xPQ0FMLG9yZGVyOiJfXzQifSksIl9ub2RlL19sb2NhbC9fbm9kZXMiIT14LmRhdGEucGF0aFswXSkpe3ZhciBkPXt0ZXh0OmEuT1BUX01RUklFUyxjaGlsZHJlbjpbXSxvcmRlcjoifjIifTt4LmRhdGEubWFuZ28ucXVlcnkuZm9yRWFjaChmdW5jdGlvbih4KXtkLmNoaWxkcmVuLnB1c2goe2lkOiJfZmluZO+/vSIreC5uYW1lLHRleHQ6IsKgwqAiK3gubmFtZSxvcmRlcjooIkRlZmF1bHQgcXVlcnkiPT14Lm5hbWU/Il8xICI6Il8yICIpK3gubmFtZX0pfSksZC5jaGlsZHJlbj1kLmNoaWxkcmVuLnNvcnRCeSgib3JkZXIiKSxjLnB1c2goZCk7dmFyIGU9e3RleHQ6YS5PUFRfTUlORElDRVMsY2hpbGRyZW46W3tpZDoiX2lkeC/vv70iK3guRGVmYXVsdE1hbmdvSWR4Lm5hbWUsdGV4dDoiwqDCoCIreC5EZWZhdWx0TWFuZ29JZHgubmFtZSxvcmRlcjoiXzAifV0sb3JkZXI6In4zIn07Yy5wdXNoKGUpfXJldHVybiBjfSxUTWFwOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXguUGhvKCJqMmgiKSxjPXguVC5kZXNpZ25fZG9jcyxkPXguVC52aWV3LGU9eC5ULnZpZXdfbm9pZCxmPXguVC52aWV3X2ZpbHRlcixnPXguVC52aWV3X2ZpbHRlcl9ub2lkO3JldHVybiBmdW5jdGlvbihsLG0pe3ZhciBuLG89eC5Sb3dzLmxlbmd0aCxwPSJfaWR4Ij09YS52aWV3LnRvKDQpLHE9IiI9PXguZGF0YS5yZWR1Y2Uscj0iX2Rlc2lnbl9kb2NzIj09YS52aWV3LHM9Il9jaGFuZ2VzIj09YS52aWV3LHQ9bzwxMjA/aDpvPDI1MD9pOmosdT1vPDQwPzJlMzpvPDYwPzUwMDpvPDEyMD8zMDA6MjAwLHY9bzw0MD81Om88NjA/NDpvPDEyMD8zOm88MjUwPzM6Mix3PSFhLnZpZXcmJmEuaW5jbC5sZW5ndGg/bC5kb2M6cD9sLmtleTpsLnZhbHVlLHk9Yih3LHUsWyJfaWQiLCJpZCIsIm5hbWUiXSx2KTtyZXR1cm4gMT09eS5sZW5ndGgmJiJzaG9ydCI9PXlbMF1bMF0mJigieyI9PXlbMF1bMV1bMF0/eVswXVsxXT0iT2JqZWN0ICIreVswXVsxXToiWyI9PXlbMF1bMV1bMF0mJih5WzBdWzFdPSJBcnJheSAiK3lbMF1bMV0pKSxuPXkubWFwKHQpLmpvaW4oIiIpLHguZlNlYXJjaCYmYS5zZWFyY2gubGVuZ3RoPjI/KHE/ZjpnKS5hc3NpZ24oe19pZHg6bC5faWR4LF9pZHhzYWZlOmwuX2lkeHNhZmUsY2hlY2tlZDpsLl9jaGVja2VkLGlkOmwua2V5LGlkc2FmZWZpbHRlcjoocD9sLmlkOmsobC5rZXkpKS5yZXBsYWNlKHguZlNlYXJjaCwi77+xJDHvv7AiKS5lc2NhcGVIVE1MKCkucmVwbGFjZSgi77+xIiwnPHNwYW4gY2xhc3M9InZpZXctZm91bmQiPicpLnJlcGxhY2UoIu+/sCIsIjwvc3Bhbj4iKSxpZHNhZmU6KHA/bC5pZDprKGwua2V5KSkuZXNjYXBlSFRNTCgpLGRvY2lkc2FmZTpudWxsIT1sLmlkPyhsLmlkKyIiKS5lc2NhcGVIVE1MKCk6IiIsaHJlZjpsLmlkP3gucDJ1KFthLnBhdGhbMF0sbC5pZF0pLmpvaW4oIi8iKS5lc2NhcGVIVE1MKCk6IiIsbm9kb2M6bC5pZD8iIjoiaGlkZSIsa2V5Omwua2V5LGh0bWw6bixjc3M6bi5sZW5ndGg+MjUwPyJmczk1IGxoMTQwIHB0MyBwYjMiOiJsaDE0MCBwdDIgcGIyIn0pOihyfHxzP2M6cT9kOmUpLmFzc2lnbih7X2lkeDpsLl9pZHgsX2lkeHNhZmU6bC5faWR4c2FmZSxfZGVsOmwuX2RlbCxjaGVja2VkOmwuX2NoZWNrZWQsaWQ6bC5rZXksaWRzYWZlOihyfHxzP2wua2V5OnA/bC5pZDprKGwua2V5KSkuZXNjYXBlSFRNTCgpLGRvY2lkc2FmZTpudWxsIT1sLmlkPyhsLmlkKyIiKS5lc2NhcGVIVE1MKCk6IiIsaHJlZjpsLmlkP3gucDJ1KGwuX2RlbD9bYS5wYXRoWzBdLGwuaWQsIl8iK2wuX2RlbF06W2EucGF0aFswXSxsLmlkXSkuam9pbigiLyIpLmVzY2FwZUhUTUwoKToiIixub2RvYzpsLmlkPyIiOiJoaWRlIixrZXk6bC5rZXksaHRtbDpuLGNzczpuLmxlbmd0aD4yNTA/ImZzOTUgbGgxNDAgcHQzIHBiMyI6ImxoMTQwIHB0MiBwYjIifSl9O2Z1bmN0aW9uIGgoeCl7cmV0dXJuIHhbMF0/JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4iOnhbMV19ZnVuY3Rpb24gaSh4KXtyZXR1cm4iYnJhY2tldCIhPXhbMF0mJiJrZXkiIT14WzBdP3hbMV06JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4ifWZ1bmN0aW9uIGooeCl7cmV0dXJuIHhbMV19ZnVuY3Rpb24gayh4KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeCxudWxsLDEpLnJlcGxhY2UoL15ccysvZ20sIiAiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC97XHMvZywieyIpLnJlcGxhY2UoL1xzfS9nLCJ9IikucmVwbGFjZSgvXFtccy9nLCJbIikucmVwbGFjZSgvXHNcXS9nLCJdIil9fSxURG9jczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlQuZG9jcyxjPXguVC51c2VyX2RvY3M7cmV0dXJuIl91c2VycyIhPWEucGF0aFswXT9mdW5jdGlvbih4LGEpe3JldHVybiBiLmFzc2lnbihkKHgsYSkpfTpmdW5jdGlvbih4LGEpe3ZhciBlPWQoeCxhKTtyZXR1cm4ib3JnLmNvdWNoZGIudXNlcjoiIT14LmtleS5zdWJzdHIoMCwxNyk/Yi5hc3NpZ24oZSk6Yy5hc3NpZ24oZSl9O2Z1bmN0aW9uIGQoYixjKXtyZXR1cm57aWQ6Yi5rZXksaWRzYWZlOihiLmtleSsiIikuZXNjYXBlSFRNTCgpLGNoZWNrZWQ6Yi5fY2hlY2tlZCxocmVmOmIuaWQ/eC5wMnUoYi5fZGVsP1thLnBhdGhbMF0sYi5pZCwiXyIrYi5fZGVsXTpbYS5wYXRoWzBdLGIuaWRdKS5qb2luKCIvIikuZXNjYXBlSFRNTCgpOiIiLHJldjooKGIudmFsdWV8fHt9KS5yZXYrIiIpLmVzY2FwZUhUTUwoKX19fSxUTWFuZ286ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9KHguZGF0YSx4LlBobygiajJoIikpLGI9eC5ULm1hbmdvO3guVC52aWV3X2ZpbHRlcjtyZXR1cm4gZnVuY3Rpb24oZixnKXt2YXIgaCxpPXguUm93cy5sZW5ndGgsaj1pPDEyMD9jOmk8MjUwP2Q6ZSxrPWk8NDA/MmUzOmk8NjA/NTAwOmk8MTIwPzMwMDoyMDAsbD1pPDQwPzU6aTw2MD80Omk8MTIwPzM6aTwyNTA/MzoyLG09Zi52YWx1ZSxuPWEobSxrLFsiX2lkIiwiaWQiLCJuYW1lIl0sbCk7cmV0dXJuIDE9PW4ubGVuZ3RoJiYic2hvcnQiPT1uWzBdWzBdJiYoInsiPT1uWzBdWzFdWzBdP25bMF1bMV09Ik9iamVjdCAiK25bMF1bMV06IlsiPT1uWzBdWzFdWzBdJiYoblswXVsxXT0iQXJyYXkgIituWzBdWzFdKSksaD1uLm1hcChqKS5qb2luKCIiKSxiLmFzc2lnbih7X2lkeDpmLl9pZHgsX2lkeHNhZmU6Zi5faWR4c2FmZSxpZDpmLmtleSsiIixpZHNhZmU6Zi5rZXkrIiIsaHJlZjoiIixub2RvYzoiIixrZXk6ZysiIixodG1sOmgsY3NzOmgubGVuZ3RoPjI1MD8iZnM5NSBsaDE0MCBwdDMgcGIzIjoibGgxNDAgcHQyIHBiMiJ9KX07ZnVuY3Rpb24gYyh4KXtyZXR1cm4geFswXT8nPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiI6eFsxXX1mdW5jdGlvbiBkKHgpe3JldHVybiJicmFja2V0IiE9eFswXSYmImtleSIhPXhbMF0/eFsxXTonPHNwYW4gY2xhc3M9Imp2YWwtJyt4WzBdKyciPicreFsxXSsiPC9zcGFuPiJ9ZnVuY3Rpb24gZSh4KXtyZXR1cm4geFsxXX19LGdldFJlZlN0YXI6ZnVuY3Rpb24geChhLGIpe3ZhciBjLGQsZT0ic3RyaW5nIj09dHlwZW9mIGI/Yi5zcGxpdCgiLiIpOk9iamVjdC5pc0FycmF5KGIpP2I6W10sZj1hLGc9MDtmb3IoZz0wO2c8ZS5sZW5ndGgmJm51bGw9PWQmJm51bGwhPWY7ZysrKSIqIj09KGM9ZVtnXSkmJk9iamVjdC5pc0FycmF5KGYpPyhkPWUuc2xpY2UoZysxKSxmPWYucmVkdWNlKGZ1bmN0aW9uKGEsYil7aWYobnVsbD09YilyZXR1cm4gYTt2YXIgYz14KGIsZCk7cmV0dXJuIG51bGwhPWMmJmEucHVzaChjKSxhfSxbXSkpOmY9ZltjXTtyZXR1cm4gZn0sZm9ybWF0U2VsMjpmdW5jdGlvbih4KXtpZih4LmlkKXt2YXIgYT14LmlkLnNwbGl0KCLvv70iKTtyZXR1cm4gYVsxXT8oYVswXS5zcGxpdCgiLyIpLmxhc3QoKS50cnVuY2F0ZSgoMzAtYVsxXS5sZW5ndGgpLmNsYW1wKDEwLDMwKSwibWlkZGxlIiwiLi4uIikrIuKAiS/igIkiK2FbMV0pLmVzY2FwZUhUTUwoKTp4LnRleHR9cmV0dXJuIHgudGV4dH0sYnVpbGRHcmlkQ29sdW1uczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGE7YS5ncmlkP3guQ29sdW1ucz1hLmNvbHVtbnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDoieCIrTnVtYmVyLnJhbmRvbSgwLDFlNiksY29sczp4fX0pOnguQ29sdW1ucz1bXX0sZGVyaXZlR3JpZENvbHVtbnM6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSh4PSgreHx8NSkuY2xhbXAoMSw4KSxjdy5saWIuYTJvKCJpZCBrZXkgcmV2IC5pZCAua2V5IC5yZXYgLmRvYyAuX2lkIC5fcmV2IC52YWx1ZSAuZG9jLl9pZCAuZG9jLl9yZXYg4oCMIi5zcGxpdCgiICIpKSksYz1hLkZpZWxkcy5zb3J0QnkoZnVuY3Rpb24oeCl7dmFyIGE9eC52YWx1ZSxiPXguY3RyO3JldHVybiJ0aXRsZSIhPWEmJiJuYW1lIiE9YXx8KGIqPTEuNSksInR5cGUiPT1hJiYoYio9MS4yKSxifSwhMCkuZmlsdGVyKHg9PiFiW3gudmFsdWVdKS50byh4KS5tYXAoeD0+eC52YWx1ZSk7cmV0dXJuIGMubGVuZ3RofHwoYz1bIi52YWx1ZSJdKSxjfSxzdGFzaFZpZXdTdGF0ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj1jdy5saWIuc2RibShbYS5wYXRoWzBdLGEudmlld10pLGM9e3JlZHVjZTphLnJlZHVjZSxncmlkOmEuZ3JpZCxjb2x1bW5zOmEuY29sdW1ucy5zbGljZSgwKSxlZGl0b3I6YS5lZGl0b3IsaW5jbDphLmluY2x9O3JldHVybiB4LkxzKCJWaWV3U3RhdGUuIitiLGMpLHtrZXk6YixzdGF0ZTpjfX0scmVzdG9yZVZpZXdTdGF0ZTpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD14fHxjLnZpZXcsZT1jdy5saWIuc2RibShbYy5wYXRoWzBdLGRdKSxmPWIuTHMoIlZpZXdTdGF0ZS4iK2UpfHx7fTtpZighZi5jb2x1bW5zfHwhZi5jb2x1bW5zLmxlbmd0aHx8Zi5jb2x1bW5zKyIiPT0iLnZhbHVlIil7dmFyIGc9Il9maW5kIj09ZC50byg1KSxoPSJfaWR4Ij09ZC50byg0KSxpPSJfZGVzaWduX2RvY3MiPT1kLGo9Il9jaGFuZ2VzIj09ZDtmLmNvbHVtbnM9ZD9pP1sidmlld3MgL2tleXMiLCJmaWx0ZXJzIC9rZXlzIiwibGlzdHMgL2tleXMiLCJzaXplcy5maWxlIC9ieXRlcyJdOmo/WyJyZXYiLCJkZWxldGVkIl06aD9bIi5rZXkiXTooZyxbIi52YWx1ZSJdKTpmLmluY2wrIiI/WyIuZG9jIl06WyJyZXYiXX1yZXR1cm4geHx8JC5leHRlbmQoYyxPYmplY3Quc2VsZWN0KGYsWyJyZWR1Y2UiLCJncmlkIiwiY29sdW1ucyIsImVkaXRvciIsImluY2wiXSkpLGEmJmIubXkucmVkcmF3KCksZn0sY2xvc2VBdXRvY29tcGxldGVzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5teSYmYS5teS5maW5kKCIudWktYXV0b2NvbXBsZXRlLWlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcyk7YS5pcyh4KXx8KGEuYXV0b2NvbXBsZXRlKCJjbG9zZSIpLGEubmV4dCgpLnRyaWdnZXIoImNoZWNrLm15IikpfSl9LGJ1aWxkRmllbGRzTGlzdDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj14LlJlc3VsdFswXXx8e3Jvd3M6W119LGM9KE9iamVjdC5pc0FycmF5LE9iamVjdC5pc09iamVjdCksZD17fTtpZih4LkZpZWxkcy5sZW5ndGgpcmV0dXJuIHguRmllbGRzO2IuZG9jcz9iLmRvY3MubWFwKHg9Pih7dmFsdWU6eH0pKS5mb3JFYWNoKGYuZmlsbCgwLCIiKSk6Yi5yZXN1bHRzP2IucmVzdWx0cy5tYXAoeD0+KHt2YWx1ZTp4fSkpLmZvckVhY2goZi5maWxsKDAsIiIpKTooYi5yb3dzfHxbXSkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBPYmplY3Quc2VsZWN0KHgsYS52aWV3JiYiX2Rlc2lnbl9kb2NzIiE9YS52aWV3P1siaWQiLCJrZXkiLCJ2YWx1ZSJdOlsiaWQiLCJ2YWx1ZSIsImRvYyJdKX0pLmZvckVhY2goZi5maWxsKDAsIiIpKTt2YXIgZT1PYmplY3Qua2V5cyhkKTtyZXR1cm4gZS5sZW5ndGg+MTAwJiYoZT1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geC5zcGxpdCgiLiIpLmxlbmd0aDwoIi4iPT14WzBdPzU6NCl9KSksZS5sZW5ndGg+MTAwJiYoZT1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4geC5zcGxpdCgiLiIpLmxlbmd0aDwoIi4iPT14WzBdPzQ6Myl9KSkseC5GaWVsZHM9W3tsYWJlbDoiw5cgRGVsZXRlIGNvbHVtbiIsdmFsdWU6IuKAjCIsY3RyOjB9XS5jb25jYXQoZS5zb3J0KGZ1bmN0aW9uKHgsYSl7cmV0dXJuIi4iIT1hWzBdJiYiLiIhPXhbMF18fGFbMF09PXhbMF0/YT54Py0xOmE8eD8xOjA6Ii4iPT1hWzBdPy0xOjF9KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2xhYmVsOngudHJ1bmNhdGUoNTAsIm1pZGRsZSIsIsKg4oCmwqAiKSx2YWx1ZTp4LGN0cjpkW3hdfX0pKTtmdW5jdGlvbiBmKHgsYSxiKXt4PjN8fGMoYikmJk9iamVjdC5rZXlzKGIpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoYy5sZW5ndGgmJiJfYXR0YWNobWVudHMiIT1jKXt2YXIgZT1iW2NdLGc9JC50eXBlKGUpLGg9KCIudmFsdWUiPT1hPyIiOmErIi4iKStjO2RbaF09KGRbaF18fDApKyh4PjE/LjE6MSksIm9iamVjdCI9PWc/Zih4KzEsaCxlKToiYXJyYXkiPT1nJiZlLmxlbmd0aCYmZih4KzEsYSsiLiIrYysiLjAiLGVbMF0pfX0pfX0sVEdyaWRNYXA6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9eC5QaG8oImoyaCIpLGM9eC5ULmdyaWRfdmlldyxkPXguVC5ncmlkX2RvYyxlPXguVC5ncmlkX21hbmdvLGY9eC5ULmdyaWRfY29sdW1uO3JldHVybiBmdW5jdGlvbihrLGwpe3ZhciBtPXguUm93cy5sZW5ndGgsbj0iX2lkeCI9PWEudmlldy50byg0KSxvPSJfZmluZCI9PWEudmlldy50byg1KSxwPSFvJiYiIj09eC5kYXRhLnJlZHVjZSxxPSJfZGVzaWduX2RvY3MiPT1hLnZpZXcscj0iX2NoYW5nZXMiPT1hLnZpZXcscz1oLHQ9bTw0MD8yZTM6bTw2MD8xNTAwOm08MTIwPzFlMzo3MDAsdT1tPDEyMD82OjUsdj14LkYuR3JpZENhc3Qsdz0hYS52aWV3fHxxfHxyfHxvP2sua2V5Om4/ay5pZDppKGsua2V5KTtyZXR1cm4oIWEudmlld3x8cXx8cj9kOnA/YzplKS5hc3NpZ24oe19pZHg6ay5faWR4LF9pZHhzYWZlOmsuX2lkeHNhZmUsY2hlY2tlZDprLl9jaGVja2VkLGlkOmsua2V5LGlkc2FmZTp3LmVzY2FwZUhUTUwoKSxpZHNhZmVmaWx0ZXI6eC5mU2VhcmNoP3cucmVwbGFjZSh4LmZTZWFyY2gsIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJ2aWV3LWZvdW5kIj4nKS5yZXBsYWNlKCLvv7AiLCI8L3NwYW4+Iik6dy5lc2NhcGVIVE1MKCksZG9jaWRzYWZlOm51bGwhPWsuaWQ/KGsuaWQrIiIpLmVzY2FwZUhUTUwoKToiIixocmVmOmsuaWQ/eC5wMnUoay5fZGVsP1thLnBhdGhbMF0say5pZCwiXyIray5fZGVsXTpbYS5wYXRoWzBdLGsuaWRdKS5qb2luKCIvIikuZXNjYXBlSFRNTCgpOiIiLG5vZG9jOmsuaWQ/IiI6ImhpZGUiLGtleTprLmtleSxjb2x1bW5zOmsuY29scy5tYXAoZnVuY3Rpb24oeCxhKXt2YXIgYz0iIixkPXgudmFsLGU9dHlwZW9mIHgudmFsO3JldHVybiB2W3guY2FzdF0mJihlPXR5cGVvZihkPXZbeC5jYXN0XShkLGUpKSksYz0ib2JqZWN0Ij09ZT9qKGkoZCkpOiJudW1iZXIiPT1lP2coZCk6InN0cmluZyI9PWU/ZD9qKGQpLnJlcGxhY2UoL15bXHJcbl0rLywiIikucmVwbGFjZSgvW1xyXG5dKy9nLCI8YnI+Iik6JyIiJzpiKGQsdCxbXSx1KS5tYXAocykuam9pbigiIiksZi5hc3NpZ24oe2lkeDpsKyJfIithLHZhbDpjLGNzczpbYy5sZW5ndGg+MTAwPyJmczk1IGxoMTQwIHB0MSAiOiIiLCJvYmplY3QiPT1lPyJhc2pzb24gIjoiIiwiZ2NvbHYgZ2NvbHciK3guc3BhbisiICIseC5jc3N8fCIiXS5qb2luKCIiKX0pfSkuam9pbigiIil9KX07ZnVuY3Rpb24gZyh4KXtyZXR1cm4nPHNwYW4gY2xhc3M9Imp2YWwtbnVtYmVyJysoL1xkezEwfS8udGVzdCh4KT8iIGZzOTUiOiIiKSsnIj4nK3grIjwvc3Bhbj4ifWZ1bmN0aW9uIGgoeCl7cmV0dXJuIHhbMF0/JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4iOnhbMV19ZnVuY3Rpb24gaSh4KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeCxudWxsLDEpLnJlcGxhY2UoL15ccysvZ20sIiAiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC97XHMvZywieyIpLnJlcGxhY2UoL1xzfS9nLCJ9IikucmVwbGFjZSgvXFtccy9nLCJbIikucmVwbGFjZSgvXHNcXS9nLCJdIil9ZnVuY3Rpb24gaihhKXt2YXIgYj0yNTYrNzY4LygoeC5Db2x1bW5zfHxbXSkubGVuZ3RofHwxKXwwO3JldHVybiBhLmxlbmd0aD4xLjEqYj9hLnRvKGIpLmVzY2FwZUhUTUwoKSsnPHNwYW4gY2xhc3M9InJlZDEgcGwzIGJvbGQiPuKApjwvc3Bhbj4nOmEuZXNjYXBlSFRNTCgpfX0sR3JpZENhc3Q6e2R0OmZ1bmN0aW9uKHgsYSl7aWYoIXh8fCEvXihudW1iZXJ8c3RyaW5nKSQvLnRlc3QoYSkpcmV0dXJuIHg7dmFyIGI9RGF0ZS5jcmVhdGUoK3h8fHgpO3JldHVybiBiLmlzVmFsaWQoKT9iLmZvcm1hdCgie2R9IHtNb259IHt5eXl5fSwge0h9OnttbX06e3NzfSIpOnh9LGJ5dGVzOmZ1bmN0aW9uKHgpe3JldHVybiJudW1iZXIiIT10eXBlb2YgeD94OnguYnl0ZXMoMikucmVwbGFjZSgvKFxEXEQ/KSQvLCLigIrigIokMSIpfSxoZXg6ZnVuY3Rpb24oeCxhKXtpZigibnVtYmVyIj09YSYmTWF0aC5mbG9vcih4KT09PXgpe3ZhciBiPXgudG9TdHJpbmcoMTYpLGM9Ii0iPT1iWzBdPyItIjoiIixkPWIuc3Vic3RyKGM/MTowKS50b1VwcGVyQ2FzZSgpLGU9ZC5sZW5ndGg7cmV0dXJuIGMrKGQ9ZC5wYWRMZWZ0KGU8PTQ/NDplPDg/ODowLCIwIikpfXJldHVybiJzdHJpbmciPT1hP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh4KSkuY29kZXMoKS5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4oeDwxNj8iMCI6IiIpK3gudG9TdHJpbmcoMTYpKyhhJTQ9PTM/IiAiOiLCoCIpfSkuam9pbigiIik6eH0sbGlzdDpmdW5jdGlvbih4LGEpe3JldHVybiJvYmplY3QiIT1hP3g6T2JqZWN0LnZhbHVlcyh4KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiB4Pyh4KyIiKS5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKTpKU09OLnN0cmluZ2lmeSh4KX0pLmpvaW4oIlxuIil9LGtleXM6ZnVuY3Rpb24oeCxhKXtyZXR1cm4ib2JqZWN0IiE9YT94Ok9iamVjdC5rZXlzKHgpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKX0pLmpvaW4oIlxuIil9LGt2OmZ1bmN0aW9uKHgsYSl7cmV0dXJuIm9iamVjdCIhPWE/eDpPYmplY3Qua2V5cyh4KS5tYXAoZnVuY3Rpb24oYSl7dmFyIGI9eFthXTtyZXR1cm4gYS5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKSsiOsKgIisoIm9iamVjdCIhPXR5cGVvZiBiPyhiKyIiKS5yZXBsYWNlKC9bXHJcbl0rL2csIiAiKTpKU09OLnN0cmluZ2lmeShiKSl9KS5qb2luKCJcbiIpfX0sR2V0U2VjOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguUGhvKCJBbGwiKSxiPU9iamVjdC5rZXlzKGEpLGM9W10sZD1EYXRlLm5vdygpO3JldHVybiBiLmZvckVhY2goZnVuY3Rpb24oeCl7KCFhW3hdLnNlY3VyaXR5fHxhW3hdLnNlY3VyaXR5LnN0YW1wKzM2ZTU8ZCkmJmMucHVzaCh4KX0pLGM9Yy50bygxMDApLHguUGhvKCIkZGJzIikuQmF0Y2hJbmZvLmNhbGwoe1Bobzp4LlBobyxSZXE6eC5SZXEsQmF0Y2g6e30sQWxsOmEsUmVsaXN0OmZ1bmN0aW9uKCl7fSxSZWxpc3ROb3c6ZnVuY3Rpb24oKXt9fSxjLHguUGhvKCJDZmciKS5iYXRjaERiSW5mb0RlbGF5LFsic2VjdXJpdHkiXSl9LERlbERvY3M6ZnVuY3Rpb24oKXt2YXIgeD0kLkRlZmVycmVkKCksYT10aGlzLGI9YS5kYXRhLGM9Yi5zZWxlY3Rpb24uc2xpY2UoMCkudW5pcXVlKCksZD1jLmxlbmd0aCxlPShhLmZSb3dzfHxhLlJvd3MpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5pZH0pLnVuaXF1ZSgpLmludGVyc2VjdChjKS5sZW5ndGgsZj1hLmxhbmcsZz1hLlBobygiQ291Y2giKS52ZXIsaD1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfSxpPWZ1bmN0aW9uKHgsYSl7cmV0dXJuIGgoKHgrIiIpLnRydW5jYXRlKGF8fDE1LCJyaWdodCIsIuKApiIpKX0saj0nPGRpdiBjbGFzcz0ibWIxMCI+ezF9PC9kaXY+JyxrPSc8bGFiZWwgY2xhc3M9InhncmF5Ij48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJldGFpbiIgdmFsdWU9InsxfSIgY2xhc3M9Im1yNiI+IHsyfTwvbGFiZWw+JztyZXR1cm4gJC5teS5tb2RhbCh7d2lkdGg6MzgwLG1hbmlmZXN0OiQuZXh0ZW5kKCEwLHt9LGEuUGhvKCJDb25maXJtIikse3VpOnsnaW5wdXRbbmFtZT0icmV0YWluIl0nOiJyZXRhaW4ifSxzdHlsZTp7IiBsYWJlbCI6Im1hcmdpbjowO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDsifX0pLGRhdGE6e3JldGFpbjoibm8iLHRleHQ6Wyc8ZGl2IGNsYXNzPSJmczEzMCByZWQgbWI1Ij4nK2YuVFhUX0RFTF9USVRMRSsiPC9kaXY+IixqLmFzc2lnbihmLlRYVF9ERUxfV0FSTihkLGkoYi5wYXRoWzBdLDI1KSkpLGUhPWQ/ai5hc3NpZ24oZi5UWFRfREVMX1dBUk5fSElEREVOKGQsZSkpOiIiLGouYXNzaWduKGsuYXNzaWduKCJubyIsZi5MQkxfREVMX0FMTCkray5hc3NpZ24oInJldGFpbiIsZi5MQkxfREVMX1JFVEFJTikrKGc+PSIwMDIuMDAzLiI/ay5hc3NpZ24oInB1cmdlIixmLkxCTF9ERUxfUFVSR0UpOiIiKSldLmpvaW4oIiIpLHllc2NzczoicmVkIix5ZXM6Zi5CVE5fREVMX1NUQVJULG5vOmYuQlROX0NBTkNFTCxjYW5jZWw6IiJ9LGNzczoibGgxNjAgeGdyYXkgcDIwIHBiMjUiLGZvY3VzOiIjYnRuLW5vIixlc2M6ITAsZW50ZXI6ITF9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKCJ5ZXMiIT1hLmNtZClyZXR1cm4geC5yZWplY3QoOTk5LCJDYW5jZWxsZWQiLCJDYW5jZWxsZWQiKTtsKGEucmV0YWluKyIiKX0pLmZhaWwoZnVuY3Rpb24oKXt4LnJlamVjdCg5OTksIkNhbmNlbGxlZCIsIkNhbmNlbGxlZCIpfSkseC5wcm9taXNlKCk7ZnVuY3Rpb24gbChkKXt2YXIgZT1jLnVuaXF1ZSgpLnNvcnQoKSxnPXt1cmw6W2IucGF0aFswXSwiX2J1bGtfZG9jcyJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6IltdIn07aWYoIm5vIj09ZHx8InJldGFpbiI9PWQpZy5oZWFkZXJzPXsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifTtlbHNle2lmKCJwdXJnZSIhPWQpcmV0dXJuIHgucmVqZWN0KDk5OSwiVW5rbm93biBtb2RlIiwiQ2FuY2VsbGVkIiksdm9pZCAwO2cudXJsWzFdPSJfcHVyZ2UifXJldHVybiBqKGUsInJldGFpbiIhPWQpLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIGcuZGF0YT1KU09OLnN0cmluZ2lmeSgicHVyZ2UiIT1kP3tkb2NzOnh9OngucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYS5faWRdPVthLl9yZXZdLHh9LHt9KSksYS5SZXEoZykudGhlbihmdW5jdGlvbih4KXtyZXR1cm4gayh4LGUpfSkuZmFpbChsKX0pO2Z1bmN0aW9uIGooeCxjKXt2YXIgZD17dXJsOltiLnBhdGhbMF0sIl9hbGxfZG9jcyIse2luY2x1ZGVfZG9jczohY31dLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoe2tleXM6eH0pfTtyZXR1cm4gYS5SZXEoZCkudGhlbihmdW5jdGlvbih4KXtyZXR1cm4geC5yb3dzLm1hcChmdW5jdGlvbih4KXt2YXIgYT1jP3tfaWQ6eC5pZCxfcmV2OngudmFsdWUucmV2fTp4LmRvYztyZXR1cm4gYS5fZGVsZXRlZD0hMCxhfSl9KX1mdW5jdGlvbiBrKGMsZSl7dmFyIGcsaD1lLmxlbmd0aDtnPSJwdXJnZSIhPWQ/Yy5jb3VudChmdW5jdGlvbih4KXtyZXR1cm4heC5lcnJvcn0pOk9iamVjdC5zaXplKGMucHVyZ2VkKSxjdy5saWIubm90ZShmLk1TR19ERUxfT0soaCxnLGkoYi5wYXRoWzBdKSxkKSxoPT1nPyJvayI6ImVycm9yIiw1ZTMpLGg+ZyYmY29uc29sZS5sb2coYyksJC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpiLnBhdGhbMF0sY21kOiJkZWxldGUiLGRvY3M6ZX0pLCQubXkucmFkaW8oImRibGlzdCIsW2IucGF0aFswXV0pLGIuc2VsZWN0aW9uLmxlbmd0aD0wLGUuZm9yRWFjaChmdW5jdGlvbih4KXsiXyI9PXhbMF0mJmEuRGRvY3NbeF0mJmRlbGV0ZSBhLkRkb2NzW3hdfSkseC5yZXNvbHZlKGMpfWZ1bmN0aW9uIGwoYSxiLGMpe3JldHVybiBjdy5saWIubm90ZShmLk1TR19ERUxfRkFJTC5hc3NpZ24oYSxoKGIpKSwiZXJyb3IiKSx4LnJlamVjdChhLGIsYyl9fX0sRWRTd2l0Y2g6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhO2lmKC9eKF9kZXNpZ25fZG9jc3xfbG9jYWxfZG9jc3wpJC8udGVzdChhLnZpZXcpKXJldHVybiB4LkVkaXRvci5sZW5ndGg9MCx2b2lkIDA7aWYoIl9kIj09YS52aWV3LnRvKDIpKXt2YXIgYj14LlZpW2Eudmlld107aWYoIShmPXguVmlFZHMpW2Eudmlld118fGZbYS52aWV3XS5yZXYhPWIucmV2KXt2YXIgYz1hLnZpZXcuc3BsaXQoIu+/vSIpO2ZbYS52aWV3XT17ZGRvYzpjWzBdLG5hbWU6Y1sxXSxyZXY6Yi5yZXYsdHlwZToidmlldyIsbW9kZTpbIm1hcCJdLGxhbmd1YWdlOiJqcyI9PWIudHlwZT8iamF2YXNjcmlwdCI6Yi50eXBlLG1hcDpiLnZpZXcubWFwfHwiIixyZWR1Y2U6Yi52aWV3LnJlZHVjZXx8IiIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6RGF0ZS5ub3coKX19eC5FZGl0b3JbMF0hPWZbYS52aWV3XSYmKHguRWRpdG9yWzBdPWZbYS52aWV3XSl9ZWxzZSBpZigiX2ZpbmQiPT1hLnZpZXcudG8oNSkpe3ZhciBkPWEubWFuZ28sZT1hLnZpZXcuc3BsaXQoIu+/vSIpWzFdKyIiOyhiPWQucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lPT1lfSkpfHwoZT0iRGVmYXVsdCBxdWVyeSIsYj1kLnF1ZXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09ZX0pKSxkLmFjdGl2ZT1lLGIuc3RhbXB8fChiLnN0YW1wPURhdGUubm93KCksYi50ZXh0PXguRGVmYXVsdE1hbmdvUXJ5LnRleHQpLHguRWRpdG9yWzBdIT1iJiYoeC5FZGl0b3I9W2JdLGIuanNvbj14LmpzZXZhbChiLnRleHQpLE9iamVjdC5pc09iamVjdChiLmpzb24pfHwoYi5qc29uPXt9KSl9ZWxzZSBpZigiX2lkeCI9PWEudmlldy50byg0KSl7dmFyIGY7Yj14LlZpW2Eudmlld118fE9iamVjdC5jbG9uZSh4LkRlZmF1bHRNYW5nb0lkeCwhMCk7aWYoIShmPXguVmlFZHMpW2Eudmlld118fGZbYS52aWV3XS5yZXYhPWIucmV2KXtjPWEudmlldy5zcGxpdCgi77+9Iik7ZlthLnZpZXddPXtkZG9jOiJfZGVzaWduLyIrY1swXS5zcGxpdCgiLyIpWzFdLG5hbWU6Y1sxXSxyZXY6Yi5yZXYsdHlwZToiaW5kZXgiLG1vZGU6WyJqYXZhc2NyaXB0Il0sdGV4dDpiLnZpZXc/Yi52aWV3LnNvdXJjZTpiLnRleHQsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6RGF0ZS5ub3coKX19eC5FZGl0b3JbMF0hPWZbYS52aWV3XSYmKHguRWRpdG9yWzBdPWZbYS52aWV3XSl9cmV0dXJuIGEuZ3JpZCYmeC5teS5yZXN0eWxlKCkseC5FZGl0b3JbMF19LEdldERkb2NzSW5mbzpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0oYi5kYXRhLGF8fFtdKSxkPXgubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBPYmplY3QuaXNPYmplY3QoeCk/JC5leHRlbmQoITAse30sT2JqZWN0LnJlamVjdCh4LFsiaW5jbHVkZV9kb2NzIl0pKTp4fSksZT17fSxmPSQuRGVmZXJyZWQoKTtyZXR1cm4gYi5SZXEoe3VybDpkLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOmMubGVuZ3RoPyJwb3N0IjoiZ2V0IixkYXRhOmMubGVuZ3RoP0pTT04uc3RyaW5naWZ5KHtrZXlzOmN9KTpudWxsfSkudGhlbihmdW5jdGlvbihhKXt2YXIgYz1bXTsoYS5yb3dzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihhKXtjLnB1c2goYi5SZXEoe3VybDpbeFswXSxhLmlkLCJfaW5mbyJdLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn19KSl9KSxRLmFsbFNldHRsZWQoYykudGhlbihmdW5jdGlvbih4KXsoeHx8W10pLmZvckVhY2goZnVuY3Rpb24oeCl7aWYoImZ1bGZpbGxlZCI9PXguc3RhdGUpe3ZhciBhPXgudmFsdWUudmlld19pbmRleCxiPU9iamVjdC5zZWxlY3QoYS5zaXplc3x8e2FjdGl2ZTphLmRhdGFfc2l6ZXx8MCxmaWxlOmEuZGlza19zaXplfHwwfSxbImFjdGl2ZSIsImZpbGUiXSk7ZVsiX2Rlc2lnbi8iK3gudmFsdWUubmFtZV09e3ZhbHVlOntzaXplczpifSx2aWV3X2luZGV4OmF9fX0pLGYucmVzb2x2ZShlKX0pfSksZi5wcm9taXNlKCl9fSxHZXRWaWV3czpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPWMuZGF0YSxlPU9iamVjdC5pc1N0cmluZyxmPU9iamVjdC5pc09iamVjdCxnPU9iamVjdC5pc0FycmF5LGg9KE9iamVjdC5pc0Z1bmN0aW9uLGQucGF0aFswXSksaT1baCwiX2FsbF9kb2NzIix7c3RhcnRrZXk6Il9kZXNpZ24iLGVuZGtleToiX2Rlc2lnbjAiLGluY2x1ZGVfZG9jczohMH1dLGo9Yy5EZWZhdWx0Vmlld3MoKSxrPWMubGFuZy5PUFRfTUlORElDRVMsbD1qLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgudGV4dD09a30pLG09e30sbj0kLkRlZmVycmVkKCk7cmV0dXJuIGI/KGoucmVtb3ZlKGwpLGMuVmlld3MuZm9yRWFjaChmdW5jdGlvbih4KXsheC5jaGlsZHJlbnx8Il8iIT14LnRleHRbMF0mJiJNYW5nbyIhPXgudGV4dC50byg1KXx8ai5wdXNoKHgpfSksYy5WaWV3cz1qLnNvcnRCeShmdW5jdGlvbih4KXtyZXR1cm4oeC5vcmRlcnx8IiIpK3gudGV4dH0pLHgmJihjLnNlbGVjdDIoYy5teS5maW5kKCIjdmlldy1uYW1lIikse2RhdGE6aixtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMixmb3JtYXRTZWxlY3Rpb246Yy5mb3JtYXRTZWwyfSksYy5teS5yZWNhbGMoIiN2aWV3LW5hbWUiKSksbi5yZXNvbHZlKCksaik6KGMuUmVxKGkpLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGE9eC5yb3dzfHxbXTtpZighYS5sZW5ndGgmJiJfZmluZCIhPWQudmlldy50byg1KSlyZXR1cm4gZC52aWV3PSIiLHZvaWQgMDthLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5kb2M7aWYoYSl7dmFyIGI9YS52aWV3c3x8e30sZD1hLl9yZXYsaT1PYmplY3Qua2V5cyhiKSxrPXt0ZXh0OnguaWQsY2hpbGRyZW46W119LG49ZShhLmxhbmd1YWdlKT9hLmxhbmd1YWdlOiJqYXZhc2NyaXB0IjtjLkRkb2NzW2EuX2lkXSYmYy5EZG9jc1thLl9pZF0uX3Jldj09YS5fcmV2fHwoYy5EZG9jc1thLl9pZF09JC5leHRlbmQoITAse30sYSkpLGkubGVuZ3RoJiYoaS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBjPWJbYV07aWYoInF1ZXJ5IiE9bil7aWYoIWYoYyl8fCFlKGMubWFwKXx8IWMubWFwKXJldHVybjt2YXIgaT17aWQ6cj14LmlkKyLvv70iK2EsdGV4dDoiwqDCoCIrYX0saj17cGF0aDpbaCwiX2Rlc2lnbiIseC5pZC5zcGxpdCgiLyIpWzFdLCJfdmlldyIsYV0scmV2OmQscmVkdWNlOiExLHR5cGU6ImpzIn07ImphdmFzY3JpcHQiIT1uJiYoai50eXBlPW4saS50ZXh0Kz0iwqAoIituLnRpdGxlaXplKCkrIikiKSxqLnZpZXc9T2JqZWN0LmNsb25lKGMsITApO3ZhciBvPWMucmVkdWNlLHA9IiIscT0iIjtlKG8pJiZvJiYoIl8iPT1vWzBdJiYocD1vLmZyb20oMSkpLChxPSJzdW0iPT1wPyLOoyI6ImNvdW50Ij09cD8iIyI6Im1pbiI9PXA/IuKKuyI6Im1heCI9PXA/IuKKvCI6InN0YXRzIj09cD8iPSI6InN1bXNxciI9PXA/Is6jwrIiOiJyZWR1Y2UiKSYmKGkudGV4dCs9IuKAieKHkuKAiSIrcSxqLnJlZHVjZT0hMCkpLGsuY2hpbGRyZW4ucHVzaChpKSxtW3JdPWp9ZWxzZSBpZihsJiYicXVlcnkiPT1uKXtpZighKGYoYykmJmYoYy5tYXApJiZmKGMubWFwLmZpZWxkcykmJmYoYy5vcHRpb25zKSYmZihjLm9wdGlvbnMuZGVmKSYmZyhjLm9wdGlvbnMuZGVmLmZpZWxkcykpKXJldHVybjt2YXIgcixzPXguaWQuc3BsaXQoIi8iKVsxXTtpPXtpZDpyPSJfaWR4LyIrcysi77+9IithLHRleHQ6IsKgwqAiK2ErIsKgaW7CoF9kLyIrcyxvcmRlcjoiXzEifTsoaj17cGF0aDpbaCwiX2Rlc2lnbiIseC5pZC5zcGxpdCgiLyIpWzFdLCJfdmlldyIsYV0scmV2OmQscmVkdWNlOiExLHR5cGU6IiJ9KS52aWV3PU9iamVjdC5jbG9uZShjLCEwKTt2YXIgdD1jLm9wdGlvbnMuZGVmO2oudmlldy5zb3VyY2U9WyIoeyIsIlxuXHRpbmRleDogeyIsIlxuXHRcdGZpZWxkczogW3sxfV0iLHQucGFydGlhbF9maWx0ZXJfc2VsZWN0b3I/Iixcblx0XHRwYXJ0aWFsX2ZpbHRlcl9zZWxlY3RvcjogIitKU09OLnN0cmluZ2lmeSh0LnBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yLG51bGwsIlx0IikubGluZXMoKS5tYXAoZnVuY3Rpb24oeCxhKXtyZXR1cm4oYT8iXHRcdCI6IiIpK3h9KS5qb2luKCJcbiIpOiIiLCdcblx0fSxcblx0bmFtZTogezJ9LFxuXHRkZG9jOiB7M30sXG5cdHR5cGU6ICJqc29uIicsIlxufSkiXS5qb2luKCIiKS5hc3NpZ24odC5maWVsZHMubWFwKEpTT04uc3RyaW5naWZ5KS5qb2luKCIsICIpLEpTT04uc3RyaW5naWZ5KGEpLEpTT04uc3RyaW5naWZ5KHguaWQuc3BsaXQoIi8iKS5mcm9tKDEpLmpvaW4oIi8iKSkpLG1bcl09aixsLmNoaWxkcmVuLnB1c2goaSl9fSksay5jaGlsZHJlbi5sZW5ndGgmJihrLmNoaWxkcmVuPWsuY2hpbGRyZW4uc29ydEJ5KCJ0ZXh0Iiksai5wdXNoKGspKSl9fSksaj1qLnNvcnRCeShmdW5jdGlvbih4KXtyZXR1cm4oeC5vcmRlcnx8IiIpK3gudGV4dH0pLGwmJihsLmNoaWxkcmVuPWwuY2hpbGRyZW4uc29ydEJ5KGZ1bmN0aW9uKHgpe3JldHVybih4Lm9yZGVyfHwiIikreC50ZXh0fSkpfSkuZmFpbChmdW5jdGlvbih4LGIsZCl7YXx8Y3cubGliLm5vdGUoYy5sYW5nLkVSUl9HRVRWSUVXUy5hc3NpZ24oaCksImVycm9yIil9KS5hbHdheXMoZnVuY3Rpb24oKXtjLlZpZXdzPWosYy5WaT1tLCFkLnZpZXd8fG1bZC52aWV3XXx8Il9maW5kIj09ZC52aWV3LnRvKDUpfHwvXl8oZGVzaWduX2RvY3N8bG9jYWxfZG9jc3xjaGFuZ2VzKSQvLnRlc3QoZC52aWV3KXx8KGQudmlldz0iIikseCYmKGMuc2VsZWN0MihjLm15LmZpbmQoIiN2aWV3LW5hbWUiKSx7ZGF0YTpqLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyLGZvcm1hdFNlbGVjdGlvbjpjLmZvcm1hdFNlbDJ9KSxjLm15LnJlY2FsYygiI3ZpZXctbmFtZSIpKSxuLnJlc29sdmUoail9KSxuLnByb21pc2UoKSl9LEdldFZpZXc6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPU9iamVjdC5pc0FycmF5LGQ9T2JqZWN0LmlzT2JqZWN0LGU9SlNPTi5zdHJpbmdpZnksZj10aGlzLGc9Zi5kYXRhLGg9Zy5wYXRoWzBdLGk9e2xpbWl0OjEwMCx1cGRhdGVfc2VxOiEwfSxqPWcudmlldyxrPWYuVmlbZy52aWV3XT9mLlZpW2cudmlld10ucGF0aC5zbGljZSgwKTpbaCxnLnZpZXcrIiJ8fCJfYWxsX2RvY3MiXSxsPSJnZXQiLG09e30sbj0iX2ZpbmQiPT1qLnRvKDUpLG89Il9pZHgiPT1qLnRvKDQpLHA9Il9kZXNpZ25fZG9jcyI9PWoscT0iX2NoYW5nZXMiPT1qLHI9YyhhKSYmIW4/YS5zbGljZSgwKTpbXSxzPSEhci5sZW5ndGgsdD1udWxsLHU9KCQuRGVmZXJyZWQoKSxbXSksdj17fSx3PXt9LHk9ITEsej0oZi5JbmRleCwiIiksQT0wLEI9MCxDPVsiI2dyaWQtcHJveHkiLCIjc3RhdGUtcHJveHkiLCIjdmlldy1yZXN1bHRzLWdyaWQiLCIjdmlldy1ncmlkLWNvbHMiXSxEPSJjaGVjayIsRT1rO2lmKHAmJihmLlBobyhbIkNvdWNoIiwidmVyIl0pPCIwMDIuMDAwIiYmKGtbMV09Il9hbGxfZG9jcyIsaVtnLnJldmVyc2U/ImVuZGtleSI6InN0YXJ0a2V5Il09Il9kZXNpZ24vIixpW2cucmV2ZXJzZT8ic3RhcnRrZXkiOiJlbmRrZXkiXT0iX2Rlc2lnbjAiKSxpLmluY2x1ZGVfZG9jcz0hMCksbilzPSExLGtbMV09Il9maW5kIixsPSJwb3N0IixtPWYuRWRpdG9yWzBdfHxnLm1hbmdvLnF1ZXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09ai5mcm9tKDYpfSl8fGcubWFuZ28ucXVlcnkuZmluZChmdW5jdGlvbih4KXtyZXR1cm4iRGVmYXVsdCBxdWVyeSI9PXgubmFtZX0pLHQ9ZSgkLmV4dGVuZCghMCx7fSx7bGltaXQ6TWF0aC5hYnMoK2cubGltaXQpKzEsc2tpcDovXl9cZCskLy50ZXN0KGcuc3RhcnQpPytnLnN0YXJ0LmZyb20oMSk6MH0sbS5qc29uKSksaT17fTtlbHNle2lmKGcucmV2ZXJzZV5xJiYhcyYmKGkuZGVzY2VuZGluZz0hMCksaS5saW1pdD1NYXRoLmFicygrZy5saW1pdCkrMSxnLnN0YXJ0KWlmKC9eX1xkKyQvLnRlc3QoZy5zdGFydCkpaS5za2lwPStnLnN0YXJ0LnN1YnN0cigxKXx8MDtlbHNle3RyeXtiPUpTT04ucGFyc2UoZy5zdGFydCl9Y2F0Y2goeCl7fWkuc3RhcnRrZXk9dm9pZCAwIT09Yj9iOmcuc3RhcnR9IWomJihnLmluY2x8fFtdKS5pbmRleE9mKCJkb2NzIik+LTEmJihpLmluY2x1ZGVfZG9jcz0hMCkscSYmKGkuc3R5bGU9ImFsbF9kb2NzIixkZWxldGUgaS51cGRhdGVfc2VxLGkuc3RhcnRrZXkmJihpLnNpbmNlPWkuc3RhcnRrZXksZGVsZXRlIGkuc3RhcnRrZXkpKSwhbyYmZi5WaVtqXSYmZi5WaVtqXS5yZWR1Y2U/KHo9Zy5yZWR1Y2UrIiIpPyIwIj09ej9pLmdyb3VwPSExOiI5OSI9PXo/aS5ncm91cD0hMDppLmdyb3VwX2xldmVsPSt6OmkucmVkdWNlPSExOm8mJihpLnJlZHVjZT0hMSwiX2lkeC/vv70iPT1qLnRvKDYpJiYoa1sxXT0iX2FsbF9kb2NzIikpLGkucmVkdWNlJiYocz0hMSkscyYmKGw9InBvc3QiLHQ9ZSh7a2V5czpyLnNvcnQoKS51bmlxdWUoKX0pLGRlbGV0ZSBpLnN0YXJ0a2V5LGRlbGV0ZSBpLmVuZGtleSxkZWxldGUgaS5za2lwKX12YXIgRj1FLmNvbmNhdChbaV0pLEc9ZShGKTtyZXR1cm4gZy5ncmlkJiZmLmNsb3NlQXV0b2NvbXBsZXRlcygpLGYuUGVuZGluZ1tHXXx8KE0uZGVib3VuY2UoMTApKCEwKSxnLmR1cj0wLGcuc2l6ZT0wLEE9RGF0ZS5ub3coKSx1LnB1c2goZi5SZXEoe3VybDpGLGhlYWRlcnM6eyJDb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sbWV0aG9kOmwsZGF0YTp0LGRhdGFUeXBlOiJ0ZXh0In0pLnRoZW4oZnVuY3Rpb24oeCl7Qj11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoeCkpLmxlbmd0aCx3PUpTT04ucGFyc2UoeCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXt3PXtjb2RlOngsZXJyOmEsbXNnOmJ9fSkpLHAmJnUucHVzaChmLkdldERkb2NzSW5mbyhGLHM/cjpudWxsKS50aGVuKGZ1bmN0aW9uKHgpe3Y9eH0pKSxmLlBlbmRpbmdbR109US5hbGxTZXR0bGVkKHUpLnRoZW4oZnVuY3Rpb24oYSl7aWYoZi5QZW5kaW5nW0ddPW51bGwsZy5kdXI9RGF0ZS5ub3coKS1BLGcuc2l6ZT1CLCJmdWxmaWxsZWQiIT1hWzBdLnN0YXRlKXJldHVybiBmLlJlc3VsdFswXT17dXJsOkcsY29kZTp3LmNvZGUsc3RhbXA6RGF0ZS5ub3coKSsiIixvazohMSxlcnJvcjp3LmVycixtc2c6dy5tc2d9LGYuUm93cz1bXSxmLkVycm9yPSJFcnJvciAiK3cuY29kZSsiOiAiK3cuZXJyLHgmJkgoKSxmLlJlc3VsdFswXTtmLkVycm9yPSIiLGYuRmllbGRzPVtdLGYuUmVzdWx0WzBdPU9iamVjdC5jbG9uZSh3LCEwKSxuP0wodyk6bz9LKHcpOnE/Sih3KTpJKHcpLHgmJihmLm15Lm1vZGFsKCIjYnRuLXZpZXdjb2RlIiwhMCksSCgpKX0uZGVib3VuY2UoMCkpLnRoZW4oZnVuY3Rpb24oKXtNLmRlYm91bmNlKDUwKSghMSl9KSksZi5QZW5kaW5nW0ddO2Z1bmN0aW9uIEgoKXtbQ10uZmxhdHRlbigpLmZvckVhY2goeD0+Zi5teVtEXSh4KSl9ZnVuY3Rpb24gSSh4KXt4LnN0YW1wPURhdGUubm93KCkrIiIseC51cmw9RSsiIixnLnRvdGFsX3Jvd3M9eC50b3RhbF9yb3dzfHwtMSxnLm9mZnNldD14Lm9mZnNldHx8LTEsZy5zZXE9KHgudXBkYXRlX3NlcXx8RGF0ZS5ub3coKSkrIiI7dmFyIGE9WyJmaWx0ZXJzIiwidmlld3MiLCJsaXN0cyIsInNob3dzIiwiYXBpIiwiaG9va3MiLCJyZXdyaXRlcyIsInNpemVzIl07aWYoeC5yb3dzLmZvckVhY2goZnVuY3Rpb24oeCxhKXtwJiZqKHgpLHguX3Zqc29uPWUoT2JqZWN0LnJlamVjdCh4LHA/WyJrZXkiLCJkb2MiXTpbImtleSJdKSxudWxsLCIgICIpLmZyb20oMikseC5fa2pzb249J3tcbiAgImtleSI6ICcrZSh4LmtleSkrIixcbiIseC5faWR4PWUoW3gua2V5LHguaWQsYV0pLHguX2lkeHNhZmU9eC5faWR4LmVzY2FwZUhUTUwoKX0pLGYuUm93cz1zP2koeC5yb3dzfHxbXSxmLlJvd3MpOih4LnJvd3N8fFtdKS5zbGljZSgwKSxnLmxpbms9Zi5SZXEoRiwhMCksZy5ncmlkKXtmLmJ1aWxkRmllbGRzTGlzdCgpO3ZhciBiPWcuY29sdW1ucysiIjsiLnZhbHVlIiE9YiYmKGcudmlld3x8InJldiIhPWImJiIuZG9jIiE9Yil8fChnLmNvbHVtbnM9Zi5kZXJpdmVHcmlkQ29sdW1ucygpKX1yZXR1cm4geDtmdW5jdGlvbiBoKHgpe3JldHVybiJ7MX0gTE9DLCB7Mn0gY2hhcnMiLmFzc2lnbih4LmxpbmVzKCkubGVuZ3RoLHgubGVuZ3RoKX1mdW5jdGlvbiBpKHgsYSl7dmFyIGI9eC5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFtlKGEua2V5KSsiXG4iK2UoYS5pZCldPWEseH0se30pO3JldHVybiBhLm1hcChmdW5jdGlvbih4KXt2YXIgYT1iW2UoeC5rZXkpKyJcbiIrZSh4LmlkKV07cmV0dXJuIHZvaWQgMCE9PWE/YTp4fSl9ZnVuY3Rpb24gaih4KXt2YXIgYj14LnZhbHVlLnJldjt4LmRlc2M9Ikxpc3Qgb2YgZGRvYyBmdW5jdGlvbnMiLHgubGFuZ3VhZ2U9eC5kb2MubGFuZ3VhZ2V8fCJqYXZhc2NyaXB0Iix4LnZhbHVlPSQuZXh0ZW5kKHtyZXY6Yn0sT2JqZWN0LnNlbGVjdCh4LmRvYyxhKSksYS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXgudmFsdWVbYV07InN0cmluZyI9PXR5cGVvZiBiP3gudmFsdWVbYV09aChiKTpjKGIpP3gudmFsdWVbYV09IkFycmF5W3sxfV0iLmFzc2lnbihiLmxlbmd0aCk6ZChiKSYmInZpZXdzIj09YT94LnZhbHVlW2FdPU9iamVjdC5rZXlzKHgudmFsdWVbYV0pLnJlZHVjZShmdW5jdGlvbihiLGMpe3ZhciBlPXgudmFsdWVbYV1bY10sZj1lLm1hcCxnPWUucmVkdWNlO3JldHVybiJzdHJpbmciPT10eXBlb2YgZj8oYltjXT0iTWFwOiAiK2goZiksInN0cmluZyI9PXR5cGVvZiBnJiYoYltjXSs9IjsgUmVkdWNlOiAiKygiXyI9PWdbMF0/ZzpoKGcpKSkpOiJxdWVyeSI9PXgubGFuZ3VhZ2UmJmQoZikmJihiW2NdPSJNYW5nbyBpbmRleCIsZChmLmZpZWxkcykmJihiW2NdKz0iLCBmaWVsZHM6ICIrT2JqZWN0LmtleXMoZi5maWVsZHMpLmpvaW4oIiwgIikpKSxifSx7fSk6ZChiKSYmKHgudmFsdWVbYV09T2JqZWN0LmtleXMoeC52YWx1ZVthXSkucmVkdWNlKGZ1bmN0aW9uKGIsYyl7dmFyIGQ9eC52YWx1ZVthXVtjXTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQmJihiW2NdPWgoZCkpLGJ9LHt9KSl9KSwkLmV4dGVuZCghMCx4LHZbeC5pZF18fHt9KX19ZnVuY3Rpb24gSih4KXt4LnN0YW1wPURhdGUubm93KCkrIiIseC51cmw9RSsiIixnLnRvdGFsX3Jvd3M9LTEsZy5vZmZzZXQ9eC5vZmZzZXR8fC0xLGcuc2VxPXgubGFzdF9zZXErIiI7dmFyIGE9eC5yZXN1bHRzLm1hcChmdW5jdGlvbih4LGEpe3JldHVybntpZDp4LmlkLGtleTp4LmlkLHZhbHVlOiQuZXh0ZW5kKHguZGVsZXRlZD97ZGVsZXRlZDohMH06e30se3NlcTooeC5zZXErIiIpLnNwbGl0KCItIilbMF0scmV2OnguY2hhbmdlc1swXS5yZXZ9KSxfdmpzb246ZSh4LG51bGwsIiAgIikuZnJvbSgxKSxfa2pzb246InsiLF9pZHg6ZSh4LmlkKSxfaWR4c2FmZTplKHguaWQpLmVzY2FwZUhUTUwoKSxfZGVsOnguZGVsZXRlZD94LmNoYW5nZXNbMF0ucmV2OiIifX0pO3JldHVybiBmLlJvd3M9KGF8fFtdKS5zbGljZSgwKSxnLmxpbms9Zi5SZXEoRiwhMCkseH1mdW5jdGlvbiBLKHgpe3JldHVybiB4LnN0YW1wPURhdGUubm93KCkrIiIseC51cmw9RSsiIixnLnRvdGFsX3Jvd3M9eC50b3RhbF9yb3dzfHwtMSxnLm9mZnNldD14Lm9mZnNldHx8LTEsZy5zZXE9KHgudXBkYXRlX3NlcXx8RGF0ZS5ub3coKSkrIiIseC5yb3dzLmZvckVhY2goZnVuY3Rpb24oeCxhKXt4Ll92anNvbj1lKHgsbnVsbCwiICAiKS5mcm9tKDIpLHguX2tqc29uPSJ7XG4iLHguX2lkeD1lKFt4LmtleSx4LmlkLGFdKSx4Ll9pZHhzYWZlPXguX2lkeC5lc2NhcGVIVE1MKCl9KSxmLlJvd3M9KHgucm93c3x8W10pLnNsaWNlKDApLGcubGluaz1mLlJlcShGLCEwKSx4fWZ1bmN0aW9uIEwoeCl7eC5zdGFtcD1EYXRlLm5vdygpKyIiLHgudXJsPUUrIiIsZy50b3RhbF9yb3dzPS0xLGcub2Zmc2V0PW0uc2tpcHx8LTEsZy5zZXE9KHgudXBkYXRlX3NlcXx8RGF0ZS5ub3coKSkrIiI7dmFyIGE9L15fXGQrJC8udGVzdChnLnN0YXJ0KT8rZy5zdGFydC5mcm9tKDEpOjAsYj14LmRvY3MubWFwKGZ1bmN0aW9uKHgsYil7cmV0dXJue2lkOmErYisiIixrZXk6YStiKyIiLHZhbHVlOngsX3Zqc29uOmUoeCxudWxsLCIgICIpLmZyb20oMSksX2tqc29uOiJ7IixfaWR4OmUoW2ErYl0pLF9pZHhzYWZlOmUoW2ErYl0pLmVzY2FwZUhUTUwoKX19KTtyZXR1cm4gZi5Sb3dzPShifHxbXSkuc2xpY2UoMCksZy5saW5rPWYuUmVxKEYsITApLHh9ZnVuY3Rpb24gTSh4KXsoeCYmIXl8fCF4KSYmKGYubXkmJmYubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJhcHAtYnVzeSIseCksJC5teS5yYWRpbygiYXBwYnVzeSIse2lkOmcudGFiaWQsYnVzeTp4fSkpLHk9ITB9fSxHcmlkQ29sdW1uOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcztyZXR1cm57UlQ6eC5SVCxpZDoiY3cuUGhvdG9uLiR2aWV3LkdyaWRDb2x1bW4iLGRhdGE6e3JhdzoiIixjb2xzOiIuaWQiLGNhc3Q6IiJ9LHVpOnsiLmdyaWQtY29sdW1uLXB0ciI6e2RlbGF5OjEwLGluaXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztmdW5jdGlvbiBjKGEsYil7eC5teS5maW5kKCIuZ3JpZC1jb2x1bW4tcHRyIikudHJpZ2dlcigiYmx1ciIpfWZ1bmN0aW9uIGQoYSxjKXtpZighYS50ZXJtKXJldHVybiBjKGIuRmllbGRzKCkpO3ZhciBkPWIuRmllbGRzKCk7aWYoL1xzXC9bYS16MC05XXswLDZ9JC8udGVzdChhLnRlcm0pKXt2YXIgZT1hLnRlcm0ucmVwbGFjZSgvXHNcL1thLXowLTldezAsNn0kLywiIiksZj14LlJUKCkuRi5HcmlkQ2FzdDtjKFtkWzBdXS5jb25jYXQoT2JqZWN0LmtleXMoZikubWFwKGZ1bmN0aW9uKHgpe3JldHVybntsYWJlbDoiLyIreCx2YWx1ZTplKyIgLyIreH19KSkpfWVsc2V7dmFyIGc9bmV3IFJlZ0V4cChSZWdFeHAuZXNjYXBlKGEudGVybSksImkiKTtjKFtkWzBdXS5jb25jYXQoZC5zbGljZSgxKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGcudGVzdCh4LnZhbHVlKX0pKSl9fWEuYXV0b2NvbXBsZXRlKHtkZWxheTowLHNvdXJjZTp0aGlzLkZpZWxkcygpLHNvdXJjZTpkLHNlbGVjdDpjLmRlYm91bmNlKDIwKSxhcHBlbmRUbzp4Lm15LnJvb3QoKSxtaW5MZW5ndGg6MH0pLGEub24oImtleXVwLm15IixmdW5jdGlvbih4KXt2YXIgYj14LmtleUNvZGU7MTMhPWImJjEwIT1ifHxhLmJsdXIoKX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO3JldHVybiBudWxsIT1hJiYoL1xzXC9bYS16XVthLXowLTldezAsNX0kLy50ZXN0KGEpP3guY2FzdD1hLm1hdGNoKC9cc1wvW2Etel1bYS16MC05XXswLDV9JC8pWzBdLnN1YnN0cigyKTp4LmNhc3Q9IiIseC5jb2xzPWEsYi5hdHRyKCJ0aXRsZSIseC5jb2xzLmxlbmd0aD44P3guY29sczoiIikpLCLigIwiPT14LmNvbHMmJmZ1bmN0aW9uKCl7Yy5teS5yZW1vdmUoKX0uZGVsYXkoMTApLHguY29sc319LCIjYnRuLWZvbGQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIubXkuZmluZCgiLmdyaWQtY29sdW1uLXB0ciIpLGQ9Yy5hdXRvY29tcGxldGUoIndpZGdldCIpLmlzKCI6dmlzaWJsZSIpO3JldHVybiBudWxsIT1hJiYoZD9jLmF1dG9jb21wbGV0ZSgiY2xvc2UiKTooYy5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGIuUlQoImNsb3NlQXV0b2NvbXBsZXRlcyIpKGMpKSxkPSFkKSwiPGRpdj57MX08L2Rpdj4iLmFzc2lnbihkPyLilrIiOiLilrwiKX0sZXZlbnRzOiJjbGljay5teSIsd2F0Y2g6WyIuZ3JpZC1jb2x1bW4tcHRyIl19fSxGaWVsZHM6ZnVuY3Rpb24oKXt2YXIgYT14LmJ1aWxkRmllbGRzTGlzdCgpO3JldHVybiB4LkNvbHVtbnMubGVuZ3RoPDImJihhPWEuc2xpY2UoMSkpLGF9LGRpZTpmdW5jdGlvbih4KXt4LmZpbmQoIi5ncmlkLWNvbHVtbi1wdHIiKS5hdXRvY29tcGxldGUoImRlc3Ryb3kiKX19fSxUOnt2aWV3X25vaWQ6JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyI+e2lkc2FmZX08ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctaG92ZXJidG4ge25vZG9jfSBwc2V1ZG9saW5rIj48c3BhbiBjbGFzcz0iZmktcGFnZS1maWxsZWQgYnRuLW9wZW4tZG9jIiBkYXRhLXVybD0ie2hyZWZ9Ij48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLHZpZXc6JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHZhdCB0YWMgbWw0IG1yMSBtdDgiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7ZG9jaWRzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyB3MzVwLTMwIHBsMCI+e2lkc2FmZX08ZGl2IGNsYXNzPSJ2aWV3LXRvZmlsdGVyIHBzZXVkb2xpbmsgdmlldy1ob3ZlcmJ0biBtbDUiIGRhdGEtZmlsdGVyPSJ7aWRzYWZlfSI+PHNwYW4gY2xhc3M9ImZpLWZpbHRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InZpZXctaG92ZXJidG4ge25vZG9jfSBwc2V1ZG9saW5rIj48c3BhbiBjbGFzcz0iZmktcGFnZS1maWxsZWQgYnRuLW9wZW4tZG9jIiBkYXRhLXVybD0ie2hyZWZ9Ij48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIHBzZXVkb2xpbmsiIGRhdGEtdXNlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS10b3JzbyBmczExMCI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+Jyx2aWV3X2ZpbHRlcl9ub2lkOic8ZGl2IGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMiPntpZHNhZmVmaWx0ZXJ9PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciBwc2V1ZG9saW5rIHZpZXctaG92ZXJidG4gbWw1IiBkYXRhLWZpbHRlcj0ie2lkc2FmZX0iPjxzcGFuIGNsYXNzPSJmaS1maWx0ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ2aWV3LWhvdmVyYnRuIHtub2RvY30gcHNldWRvbGluayI+PHNwYW4gY2xhc3M9ImZpLXBhZ2UtZmlsbGVkIGJ0bi1vcGVuLWRvYyIgZGF0YS11cmw9IntocmVmfSI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbC12YWxzIHtjc3N9Ij48ZGl2IGNsYXNzPSJjb2wtdHJpbSI+e2h0bWx9PC9kaXY+PC9kaXY+PC9kaXY+Jyx2aWV3X2ZpbHRlcjonPGRpdiBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48aW5wdXQgY2xhc3M9IncyMyBkaWIgdmF0IHRhYyBtbDQgbXIxIG10OCIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9Intkb2NpZHNhZmV9Ij48ZGl2IGNsYXNzPSJjb2wtaWRzIHczNXAtMzAgcGwwIj57aWRzYWZlZmlsdGVyfTxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1ob3ZlcmJ0biB7bm9kb2N9IHBzZXVkb2xpbmsiPjxzcGFuIGNsYXNzPSJmaS1wYWdlLWZpbGxlZCBidG4tb3Blbi1kb2MiIGRhdGEtdXJsPSJ7aHJlZn0iPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2PicsbWFuZ286JzxkaXYgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PGRpdiBjbGFzcz0iY29sLWlkcyI+e2lkc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdmFscyB7Y3NzfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0iPntodG1sfTwvZGl2PjwvZGl2PjwvZGl2PicsZG9jczonPGRpdiBjbGFzcz0idzEwMHAgdmlldy1yb3ciPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB0YWMgbWw0IG1yMSBtdDgiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7aWRzYWZlfSI+PGRpdiBjbGFzcz0idzM4cC0zMCBwcjEyIHB0MyI+PHNwYW4gY2xhc3M9ImJ0bi1vcGVuLWRvYyBwc2V1ZG9saW5rIHRkbiIgZGF0YS11cmw9IntocmVmfSI+e2lkc2FmZX08L3NwYW4+PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIG81MCBibHVlIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIiBkYXRhLXVzZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktdG9yc28gbzUwIGZzMTEwIGJsdWUiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ3NjJwIHByMTAgcGwzIHB0MyI+e3Jldn08L2Rpdj48L2Rpdj4nLGRlc2lnbl9kb2NzOic8ZGl2IGNsYXNzPSJ3MTAwcCB2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjxpbnB1dCBjbGFzcz0idzIzIGRpYiB2YXQgdGFjIG1sNCBtcjEgbXQ4IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2lkc2FmZX0iPjxkaXYgY2xhc3M9ImNvbC1pZHMgdzM1cC0zMCBwcjIwIHBsMCI+PHNwYW4gY2xhc3M9ImJ0bi1vcGVuLWRvYyBwc2V1ZG9saW5rIHRkbiIgZGF0YS11cmw9IntocmVmfSI+e2lkc2FmZX08L3NwYW4+PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIG81MCBibHVlIj48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXZhbHMge2Nzc30iPjxkaXYgY2xhc3M9ImNvbC10cmltIj57aHRtbH08L2Rpdj48L2Rpdj48L2Rpdj4nLHVzZXJfZG9jczonPGRpdiBjbGFzcz0idzEwMHAgdmlldy1yb3cgcHQzIj48aW5wdXQgY2xhc3M9IncyMyBkaWIgdGFjIG1sNCBtcjEgcHQyIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9jcy1zZWxlY3Rpb24iIHtjaGVja2VkfSB2YWx1ZT0ie2lkc2FmZX0iPjxkaXYgY2xhc3M9InczOHAtMzAgcHIyMCI+PHNwYW4gY2xhc3M9ImJ0bi1vcGVuLWRvYyBwc2V1ZG9saW5rIHRkbiIgZGF0YS11cmw9IntocmVmfSI+e2lkc2FmZX08L3NwYW4+PGRpdiBjbGFzcz0idmlldy10b2ZpbHRlciB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIG81MCBibHVlIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIiBkYXRhLXVzZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktdG9yc28gbzUwIGZzMTEwIGJsdWUiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ3NjJwIHByMTAiPntyZXZ9PC9kaXY+PC9kaXY+JyxncmlkX3ZpZXc6Jzx0ciBjbGFzcz0idmlldy1yb3ciIGRhdGEta2V5PSJ7X2lkeHNhZmV9Ij48dGQgY2xhc3M9Imdjb2x3MCI+PGlucHV0IGNsYXNzPSJ3MjMgZGliIHZhdCB0YWMgbWw0IG1yMSBtdDkiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkb2NzLXNlbGVjdGlvbiIge2NoZWNrZWR9IHZhbHVlPSJ7ZG9jaWRzYWZlfSI+PGRpdiBjbGFzcz0idzEwMHAtMzAgZGliIj57aWRzYWZlZmlsdGVyfTxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1ob3ZlcmJ0biB7bm9kb2N9IHBzZXVkb2xpbmsiPjxzcGFuIGNsYXNzPSJmaS1wYWdlLWZpbGxlZCBidG4tb3Blbi1kb2MiIGRhdGEtdXJsPSJ7aHJlZn0iPjwvc3Bhbj48L2Rpdj48L2Rpdj48L3RkPntjb2x1bW5zfTwvdHI+JyxncmlkX2RvYzonPHRyIGNsYXNzPSJ2aWV3LXJvdyIgZGF0YS1rZXk9IntfaWR4c2FmZX0iPjx0ZCBjbGFzcz0iZ2NvbHcwIj48aW5wdXQgY2xhc3M9IncyMyBkaWIgdmF0IHRhYyBtbDQgbXIxIG10OSIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRvY3Mtc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9Intkb2NpZHNhZmV9Ij48ZGl2IGNsYXNzPSJ3MTAwcC0zMCBkaWIiPjxzcGFuIGNsYXNzPSJidG4tb3Blbi1kb2MgcHNldWRvbGluayB0ZG4iIGRhdGEtdXJsPSJ7aHJlZn0iPntpZHNhZmVmaWx0ZXJ9PC9zcGFuPjxkaXYgY2xhc3M9InZpZXctdG9maWx0ZXIgcHNldWRvbGluayB2aWV3LWhvdmVyYnRuIG1sNSIgZGF0YS1maWx0ZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktZmlsdGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idmlldy1lZGl0dXNlciB2aWV3LWhvdmVyYnRuIiBkYXRhLXVzZXI9IntpZHNhZmV9Ij48c3BhbiBjbGFzcz0iZmktdG9yc28gbzUwIGZzMTEwIGJsdWUiPjwvc3Bhbj48L2Rpdj48L2Rpdj48L3RkPntjb2x1bW5zfTwvdHI+JyxncmlkX21hbmdvOic8dHIgY2xhc3M9InZpZXctcm93IiBkYXRhLWtleT0ie19pZHhzYWZlfSI+PHRkIGNsYXNzPSJnY29sdzAiPjxkaXYgY2xhc3M9IncxMDBwIGRpYiBwbDcgcHQ0Ij57aWRzYWZlZmlsdGVyfTwvZGl2PjwvdGQ+e2NvbHVtbnN9PC90cj4nLGdyaWRfY29sdW1uOic8dGQgY2xhc3M9ImdyaWQtY29sdW1uIGNwIHtjc3N9IiBkYXRhLWlkeD0ie2lkeH0iPjxkaXY+e3ZhbH08L2Rpdj48L3RkPid9fSwkZGJzOntpZDoiY3cuUGhvdG9uLiRkYnMiLGxhbmc6e30saGFzaDpmdW5jdGlvbigpe3JldHVybiJsaXN0In0sdGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4iREIgbGlzdCBhbmQgdGFza3MifSxtYXRjaDpmdW5jdGlvbih4LGEpe3JldHVybiB4Lmxlbmd0aD9udWxsOnt0aXRsZToiREIgbGlzdCBhbmQgdGFza3MifX0saW5oZXJpdDpbIkJ5dGVzIiwiTWV0cmljIl0sZGF0YTp7cmV2ZXJzZTohMSxzZWFyY2g6IiIsc2VsZWN0aW9uOltdLG9zZWw6e30sc3RhcnM6e30sZ3JvdXBzOnt9LHRhc2s6e3NlYXJjaDoiIixmaWx0ZXI6WyIiXSxsaXN0OltdLHNlbGVjdGlvbjpbXSxmb2xkOnt9LHNlcTowfSxzZXJ2aWNlOnt2ZXJzaW9uOiIifX0sQWxsOnt9LEdyb3Vwczp7fSxMaXN0OltdLEJhdGNoOnt9LFRhc2tzOltdLEFsbFRhc2tzOnt9LE1vZGFsczp7fSxUYXNrTG9vcDohMSxUYXNrTG9vcEludGVydmFsOiExLExhc3RTeW5jOntzcmM6e30sdGd0Ont9fSx1aTp7IiNkYi1zZWFyY2giOntkZWxheToxNTAsYmluZDoic2VhcmNoIixjc3M6eyJteS1zZWFyY2giOi9eLnsyLH0kL319LCIjYnRuLXJlbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoeC5zZWxlY3Rpb24ubGVuZ3RoP3RoaXMuQmF0Y2hJbmZvKHguc2VsZWN0aW9uLHRoaXMuUGhvKCJDZmciKS5iYXRjaERiSW5mb0RlbGF5KTp0aGlzLkdldExpc3QoITApKX19LCIjYnRuLXZpZXctZGlyIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZXZlcnNlPSF4LnJldmVyc2UpLHgucmV2ZXJzZT8i4pa8Ijoi4payIn0sZXZlbnRzOiJjbGljay5teSJ9LCIjYnRuLXNlbGVjdCI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYixjPXRoaXMsZD1PYmplY3Qua2V5cyhjLkFsbCksZT1jLkxpc3QuZmlsdGVyKHg9PiF4LnR5cGUpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSksZj14LnNlbGVjdGlvbixnPWYuaW50ZXJzZWN0KGUpLGg9Zy5sZW5ndGgsaT1jLmxhbmc7cmV0dXJuIGI9aD9pLlRYVF9VTlNFTEVDVC5hc3NpZ24oZy5sZW5ndGg9PWQubGVuZ3RoP2kuVFhUX1NFTEVDVF9BTEw6Zi5sZW5ndGgpOmkuVFhUX1NFTEVDVC5hc3NpZ24oZS5sZW5ndGg9PWQubGVuZ3RoP2kuVFhUX1NFTEVDVF9BTEw6ZS5sZW5ndGgpLG51bGwhPWEmJih4LnNlbGVjdGlvbj1oP1tdOmYuY29uY2F0KGUpLnVuaXF1ZSgpLHgub3NlbD1jdy5saWIuYTJvKHguc2VsZWN0aW9uKSksYn0sZXZlbnRzOiJjbGljay5teSIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiF0aGlzLkxpc3QubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1oYXNzZWxlY3Rpb24iLCIjZGItcHJveHkiXX0sIiN2aWV3LWNvbHMiOntkZWxlYXk6MjAsYmluZDpmdW5jdGlvbih4LGEpe2Zvcih2YXIgYixjPXRoaXMuTGlzdCxkPTAsZT0oeD0wLDApO2U8Yy5sZW5ndGg7ZSsrKWQrPShiPSJncm91cCI9PWNbZV0udHlwZSk/MDoxLHgrPWI/MDpjW2VdLmRpc2tfc2l6ZXx8MDtyZXR1cm4gdGhpcy5sYW5nLlRYVF9EQlNWSUVXKGQsT2JqZWN0LnNpemUodGhpcy5BbGwpLHg/JzxzcGFuIGNsYXNzPSJmczg1IG83MCBwbDYiPicrdGhpcy5CeXRlcyh4KSsiPC9zcGFuPiI6MCl9LHdhdGNoOlsiI2RiLXByb3h5Il19LCIjdmlldy1saW5rcyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLlBobygiQmFzZSIpO3JldHVyblsnPGEgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJ0ZG4iIGhyZWY9InsxfSI+ezJ9PC9hPicuYXNzaWduKGIsYi5yZXBsYWNlKC9eaHR0cFtzXT86XC9cL3xcLy9nLCIiKS5lc2NhcGVIVE1MKCkpXS5qb2luKCLigIkiKX19LCIjZGItbGlzdCI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuUm93LGM9YS5Sb3dHcm91cCxkPWEuTm9ybURCLGU9YS5kYXRhLGY9YS5sYW5nO2Z1bmN0aW9uIGcoeCl7cmV0dXJuIHgucGFyZW50KCkucGFyZW50KCkuZmluZCgiPmlucHV0IikuYXR0cigidmFsdWUiKX14Lmxpc3Qoe2RhdGE6W10sZGVsYXk6MCxjaHVuazoxMDAsc29ydEJ5Om51bGwsaWQ6ZnVuY3Rpb24oeCl7cmV0dXJuImdyb3VwIj09eC50eXBlP3guaWQ6eC5uYW1lfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiJncm91cCI9PXgudHlwZT9jdy5saWIuc2RibShbeC5oZWFkLHguc3RhcnQseC5lbmQseC5mb2xkLHguZGlza10pOmN3LmxpYi5zZGJtKFt4Lm5hbWUseC5zdGFtcCx4LnVwZGF0ZV9zZXErIngiLGUub3NlbFt4Lm5hbWVdPyJ4IjoiIix4LnN0YXIseC5zaXpldGlwLHguc2VjdXJpdHkuc3RhbXAseC50YXNrcy5zdGFtcCx4LnN5bmNzLnN0YW1wXSl9LHRlbXBsYXRlOmZ1bmN0aW9uKHgpe3JldHVybiJncm91cCI9PXgudHlwZT9jLmFzc2lnbih4KTpiLmFzc2lnbihkKHgpKX19KSxhLm5pY2VTY3JvbGwoeCkseC5vbigiY2xpY2subXkiLCIuYnRuLWRiYWNsIixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCksYz1nKGIpO2EuUmVxKFtjLCJfc2VjdXJpdHkiXSkudGhlbihmdW5jdGlvbih4KXtiLm1vZGFsKHtyb290OmEubXkucm9vdCgpLG1hbmlmZXN0OmEuUGhvKCJTZWNPYmoiKSxkYXRhOntkYnM6W2NdLGFkbWluczp4LmFkbWluc3x8e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOngubWVtYmVyc3x8e25hbWVzOltdLHJvbGVzOltdfX0sd2lkdGg6NDgwLGJvdW5kOjAsbm9zZToibGVmdCIsY3NzOiJ4Z3JheSIsYWxpZ246ImxlZnQ6NzAlO3RvcDotMzZweDsiLHNjcmVlbjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsZXNjOiEwfSl9KX0pLHgub24oImNsaWNrLm15IiwiLmJ0bi1kYnN0YXIiLGZ1bmN0aW9uKHgpe3ZhciBiPWcoJCh4LmN1cnJlbnRUYXJnZXQpKSxjPWUuc3RhcnNbYl09IWUuc3RhcnNbYl07YS5BbGxbYl0uc3Rhcj1jPyJyb3ctc3RhciI6IiIsYS5McygiREJzLlN0YXJzIixPYmplY3Qua2V5cyhlLnN0YXJzKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gZS5zdGFyc1thXSYmKHhbYV09ITApLHh9LHt9KSksYyYmKGEuQWxsW2JdLmdyb3VwPSIiKSxhLlBobygiR3JvdXBEQnMiKSgpLGEuUmVsaXN0Tm93KCksYS5CYXRjaEluZm8oW2JdKX0pLHgub24oImNsaWNrLm15IiwiLmJ0bi1kYmluZm8iLGZ1bmN0aW9uKHgpeyQoeC5jdXJyZW50VGFyZ2V0KS5wYXJlbnQoKS5wYXJlbnQoKS5maW5kKCIudGFwLWRiaW5mbyIpLnRyaWdnZXIoImNsaWNrIil9KSx4Lm9uKCJjbGljay5teSIsIi50YXAtZGJpbmZvIixmdW5jdGlvbih4KXt2YXIgYixjLGQ9JCh4LmN1cnJlbnRUYXJnZXQpLGU9ZC5wYXJlbnQoKSxnPWUuZmluZCgiPmlucHV0IikuYXR0cigidmFsdWUiKTtpZighYS5BbGxbZ118fGQuaXMoIi5jb2wtanNvbiIpKXJldHVybiExO2QuYWRkQ2xhc3MoImNvbC1qc29uIiksZS5hZGRDbGFzcygiaGFzLWNvbC1qc29uIiksZC5maW5kKCI+LmNvbC1lZC1jbG9zZSIpLmxlbmd0aD8oYj1kLmZpbmQoIj4uY29sLWVkPi5Db2RlTWlycm9yIiksYz1iWzBdLkNvZGVNaXJyb3IpOihkLmFwcGVuZChiPSQoJzxkaXYgY2xhc3M9ImNvbC1lZCBwcmUgZnM4NSBsaDEyMCBwbDQgaGlkZSI+PC9kaXY+JykpLGQuYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtZWQtY2xvc2UgZnMxMzAgbGgxMzAgaGlkZSIgdGl0bGU9InsxfSI+4pyVPC9kaXY+Jy5hc3NpZ24oZi5USVBfQ0xPU0VKU09OKSksYz1Db2RlTWlycm9yKGJbMF0se21vZGU6ImphdmFzY3JpcHQiLGxpbmVOdW1iZXJzOiExLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6ITB9KSksYy5zZXRWYWx1ZShmLlRYVF9EQklORk9fTE9BRCk7dmFyIGg9e2luZm86IkZhaWwgdG8gbG9hZCIsc2VjdXJpdHk6IkZhaWwgdG8gbG9hZCJ9O1EuYWxsU2V0dGxlZChbYS5SZXEoe3VybDpbZ119KS50aGVuKGZ1bmN0aW9uKHgpe2guaW5mbz14fSksYS5SZXEoe3VybDpbZywiX3NlY3VyaXR5Il19KS50aGVuKGZ1bmN0aW9uKHgpe2guc2VjdXJpdHk9eH0pXSkudGhlbihmdW5jdGlvbigpe2Muc2V0VmFsdWUoSlNPTi5zdHJpbmdpZnkoaCxudWxsLCIgIikpfSkuZmFpbChmdW5jdGlvbigpe2N3LmxpYi5ub3RlKGYuRVJSX0RCSU5GTywiZXJyb3IiKSxkLnJlbW92ZUNsYXNzKCJjb2wtanNvbiIpfSl9KSx4Lm9uKCJjbGljay5teSIsIi5jb2wtZWQtY2xvc2UiLGZ1bmN0aW9uKHgpe3ZhciBiPSQoeC5jdXJyZW50VGFyZ2V0KS5wYXJlbnQoKSxjPWIucGFyZW50KCkuZmluZCgiPmlucHV0IikuYXR0cigidmFsdWUiKTtyZXR1cm4gYi5yZW1vdmVDbGFzcygiY29sLWpzb24iKSxiLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJoYXMtY29sLWpzb24iKSxhLkJhdGNoSW5mbyhbY10sMCxbImluZm8iLCJzZWN1cml0eSJdKSwhMX0pLHgub24oImNsaWNrLm15IiwiLmRiLWdyb3VwIixmdW5jdGlvbih4KXt2YXIgYj0kKHguY3VycmVudFRhcmdldCkuZGF0YSgiZ3JvdXAiKSxjPWUuZ3JvdXBzW2JdPSFlLmdyb3Vwc1tiXTthLkxzKCJEQnMuR3JvdXBzIixPYmplY3Qua2V5cyhlLmdyb3VwcykucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGUuZ3JvdXBzW2FdJiYoeFthXT0xKSx4fSx7fSkpLGMmJmEuQmF0Y2hJbmZvKE9iamVjdC5rZXlzKGEuQWxsKS5maWx0ZXIoeD0+YS5BbGxbeF0uZ3JvdXA9PWIpLG51bGwsWyJpbmZvIiwic2VjdXJpdHkiXSksYS5teS5jaGVjaygiI2RiLXByb3h5IiksYS5teS5jaGVjaygiI3ZpZXctaGFzc2VsZWN0aW9uIil9KX0sYmluZDpmdW5jdGlvbih4LGEsYil7bnVsbD09YSYmYi5saXN0KCJkYXRhIix0aGlzLkxpc3QpfSx3YXRjaDpbIiNkYi1wcm94eSIsIiN2aWV3LWhhc3NlbGVjdGlvbiJdfSwiI2RiLXByb3h5Ijp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0oYi5Sb3csYi5BbGwpLGQ9eC5yZXZlcnNlPy0xOjEsZT0tZDtpZihiLkxpc3Q9T2JqZWN0LnZhbHVlcyhjKS5zb3J0KGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguc3Rhcj5hLnN0YXI/LTFlMzp4LnN0YXI8YS5zdGFyPzFlMzp4Lm5hbWU+YS5uYW1lP2Q6ZX0pLHguc2VhcmNoLmxlbmd0aD4xKXt2YXIgZj1uZXcgUmVnRXhwKHguc2VhcmNoLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAiKS5jb21wYWN0KCEwKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZXNjYXBlUmVnRXhwKCl9KS5qb2luKCJ8IikpO2IuTGlzdD1iLkxpc3QuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiBmLnRlc3QoeC5uYW1lLnRvTG93ZXJDYXNlKCkpfHwhIXgudG9vbHRpcCYmZi50ZXN0KHgudG9vbHRpcC50b0xvd2VyQ2FzZSgpKX0pfWVsc2V7dmFyIGc9IiIsaD17fTtiLkxpc3QuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT14Lmdyb3VwO2lmKGEpe2hbYV18fChoW2FdPVswLDBdKTt2YXIgYj0reC5kaXNrX3NpemV8fDA7YiYmKGhbYV1bMF0rPWIsaFthXVsxXSs9MSl9fSksYi5MaXN0PWIuTGlzdC5yZWR1Y2UoZnVuY3Rpb24oYSxjKXt2YXIgZD1jLmdyb3VwLGU9Yi5QaG8oIkdyb3VwcyIpW2RdO3JldHVybiBkJiZkIT1nJiZhLnB1c2goJC5leHRlbmQoITAse3R5cGU6Imdyb3VwIixmb2xkOnguZ3JvdXBzW2RdPyJhZG93biI6ImFyaWdodCIsZGlzazohaFtkXXx8aFtkXVsxXTxlLnNpemU/IiI6Yi5CeXRlcyhoW2RdWzBdKX0sZSkpLGQmJiF4Lmdyb3Vwc1tkXXx8YS5wdXNoKGMpLGc9ZCxhfSxbXSl9fSxsaXN0ZW46e3VzZXJDdHg6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2EmJihhLm5hbWU/KGIuR2V0TGlzdCghMCksYi5SZXN0YXJ0UG9sbCgpKTokLm15LnJhZGlvKCJyZWxvYWQiLHtpZDp4LnRhYmlkLHBhdGg6eC5wYXRofSkpfSxkYmxpc3Q6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNBcnJheShhKSYmdGhpcy5HZXRMaXN0KCEwLGEpfX0sd2F0Y2g6WyIjYnRuLXZpZXctZGlyIiwiI2RiLXNlYXJjaCIsIiNidG4tc2VsZWN0Il19LCIjdmlldy1oYXNzZWxlY3Rpb24iOntjc3M6e30sd2F0Y2g6WyIjZGItc2VhcmNoIiwiI2J0bi1zZWxlY3QiXX0sIiNidG4tbG9ncyI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5QaG8oIkNvdWNoIikudmVyPj0iMDAyLiJ9fX0sIiNidG4tbmV3ZGIiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzLGQ9Yy5teS5maW5kKCIjZGItbGlzdCIpLndpZHRoKCktMzEwKzE1MC0zMTtiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi1uZXdkYiIsITApOihjLk1vZGFscy5oZWFkJiZjLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxjLk1vZGFscy5oZWFkPWIsYy5teS5tb2RhbCgiI2J0bi1uZXdkYiIse21hbmlmZXN0OmMuUGhvKCJOZXdEQiIpLHdpZHRoOmQ8NTUwP2QrODA6ZCxkYXRhOmMuUGhvKCJDb3VjaCIpLnZlcjwiMDAzLiI/e306e2FkbWluczp7cm9sZXM6WyJfYWRtaW4iXX0sbWVtYmVyczp7cm9sZXM6WyJfYWRtaW4iXX19LGFsaWduOiJ0b3A6MTAyJTtsZWZ0Oi00MnB4OyIsbm9zZToidG9wIixjc3M6InhncmF5IixkcmFnOiIuY20iLHNjcmVlbjohMSxlc2M6ITAsZm9jdXM6J2lucHV0W3R5cGU9InRleHQiXTplcSgwKSd9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dGhpcy5teS5jaGVjaygiI2J0bi1uZXdkYiIpfX19LCIjYnRuLWNvbXBhY3QiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzO2IuZGF0YSgibW9kYWwiKT9jLm15Lm1vZGFsKCIjYnRuLWNvbXBhY3QiLCEwKTooYy5Nb2RhbHMuaGVhZCYmYy5Nb2RhbHMuaGVhZC5tb2RhbCghMCksYy5Nb2RhbHMuaGVhZD1iLGMubXkubW9kYWwoIiNidG4tY29tcGFjdCIse21hbmlmZXN0OmMuUGhvKCJDb21wYWN0Iiksd2lkdGg6MzgwLGRhdGE6e3NlbGVjdGlvbjp4LnNlbGVjdGlvbi5zbGljZSgwKX0sYWxpZ246InRvcDoxMDIlO2xlZnQ6MDsiLG5vc2U6InRvcCIsY3NzOiJ4Z3JheSIsc2NyZWVuOiExLGVzYzohMCxmb2N1czoiI2J0bi1zdGFydCJ9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy5oZWFkPW51bGx9KSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiFjdy5tZSgpfHwheC5zZWxlY3Rpb24ubGVuZ3RofHwhdGhpcy5MaXN0Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkuaW50ZXJzZWN0KHguc2VsZWN0aW9uKS5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LWhhc3NlbGVjdGlvbiJdLGxpc3Rlbjp7dXNlckN0eDpmdW5jdGlvbih4LGEpe3RoaXMubXkuY2hlY2soIiNidG4tY29tcGFjdCIpfX19LCIjYnRuLWRlbGRiIjp7YmluZDpmdW5jdGlvbih4LGEsYil7aWYobnVsbCE9YSl7dmFyIGM9dGhpcztiLmRhdGEoIm1vZGFsIik/Yy5teS5tb2RhbCgiI2J0bi1kZWxkYiIsITApOihjLk1vZGFscy5oZWFkJiZjLk1vZGFscy5oZWFkLm1vZGFsKCEwKSxjLk1vZGFscy5oZWFkPWIsJC5teS5tb2RhbCh7bWFuaWZlc3Q6Yy5QaG8oIkRlbERCIiksd2lkdGg6MzgwLGRhdGE6e2Riczp4LnNlbGVjdGlvbi5zbGljZSgwKX0sZm9jdXM6IiNidG4tY2FuY2VsIixjc3M6InhncmF5IHAyMCIsZXNjOiEwLGVudGVyOiExfSkudGhlbihmdW5jdGlvbigpe3guc2VsZWN0aW9uLmxlbmd0aD0wLHgub3NlbD17fX0pLmFsd2F5cyhmdW5jdGlvbigpe2MuTW9kYWxzLmhlYWQ9bnVsbH0pKX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIWN3Lm1lKCl8fCF4LnNlbGVjdGlvbi5sZW5ndGh8fCF0aGlzLkxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWV9KS5pbnRlcnNlY3QoeC5zZWxlY3Rpb24pLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctaGFzc2VsZWN0aW9uIl0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dGhpcy5teS5jaGVjaygiI2J0bi1kZWxkYiIpfX19LCIjdGFzay1maWx0ZXIiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncygkLmV4dGVuZCghMCx7fSx0aGlzLmxhbmcuVEFHU19UQVNLX1RZUEUse3RhZ3NoaW06IuKAiSIsZ3JvdXBzaGltOiLigIkifSkpfSxiaW5kOiJ0YXNrLmZpbHRlciJ9LCIjdGFzay1jb2xzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7cmV0dXJuIGIubGFuZy5UWFRfVEFTS1ZJRVcoYi5UYXNrcy5sZW5ndGg/eC50YXNrLmxpc3QuZmlsdGVyKGIuTm9Hcm91cCkubGVuZ3RoOjAsYi5UYXNrcy5maWx0ZXIoYi5Ob0dyb3VwKS5sZW5ndGgpfSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLWxpc3QiLCIjdGFzay1zZWFyY2giXX0sIiN0YXNrLXNlYXJjaCI6e2RlbGF5OjEwMCxiaW5kOiJ0YXNrLnNlYXJjaCIsY3NzOnsibXktc2VhcmNoIjovXi57Mix9JC99fSwiI3Rhc2stbGlzdCI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuVFRhc2ssYz1hLmRhdGE7ZnVuY3Rpb24gZCgpe2EubXkucmVjYWxjKCIjdGFzay1saXN0IiksYS5teS5jaGVjaygiI3Rhc2stbGlzdCIpfWZ1bmN0aW9uIGUoeCl7cmV0dXJuIE9iamVjdC5rZXlzKHgpLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybiB4W2JdJiYoYVtiXT0hMCksYX0se30pfXgubGlzdCh7ZGF0YTphLlRhc2tzLGRlbGF5OjAsY2h1bms6MTAwLHNvcnRCeTpudWxsLGlkOmZ1bmN0aW9uKHgpe3JldHVybiB4LnBpZCt4LmRvY19pZH0saGFzaDpmdW5jdGlvbih4KXtyZXR1cm4gY3cubGliLnNkYm0oW3gucGlkLHguX2dyb3VwfHwifiIseC5fdHlwZXx8In4iLHguX3NlbGVjdGVkPyJzZWwiOiJ1bnNlbCIseC5fZm9sZD8iZm9sZCI6InVuZm9sZCIseC50eXBlLHguX3Byb2dyZXNzLHguX3N0YXJ0ZWQseC5fZGVzYyx4LmZpbHRlcl0pfSx0ZW1wbGF0ZTpmdW5jdGlvbih4KXtyZXR1cm4gYih4KX19KSxhLm5pY2VTY3JvbGwoeCkseC5vbigiY2xpY2subXkiLCdpbnB1dFtuYW1lPSJ0YXNrLXNlbGVjdGlvbiJdJyxmdW5jdGlvbihiKXt2YXIgZT1bXSxmPXguZmluZCgnaW5wdXRbbmFtZT0idGFzay1zZWxlY3Rpb24iXScpLGc9JChiLnRhcmdldCkudmFsKCk7Zi5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4LmlzKCI6Y2hlY2tlZCIpJiZlLnB1c2goeC52YWwoKSl9KTt2YXIgaCxpPWEuVGFza3MuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsaWNhdGlvbl9pZD09Zy5lc2NhcGVIVE1MKCl9KSxqPXt9LGs9IiI7aSYmKGg9aS5fc2VsZWN0ZWQ9ZS5pbmRleE9mKGcpPi0xLCJncm91cCI9PWkuX3R5cGU/KGs9Zy5mcm9tKDIpLGkuX2ZvbGQ9IWgmJmkuX2ZvbGQsaCYmKGMudGFzay5mb2xkW2tdPSExKSxhLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5yZXBsaWNhdGlvbl9pZCE9ZyYmeC5fZ3JvdXA9PWsmJigoeC5fc2VsZWN0ZWQ9aCk/ZS5wdXNoKHgucmVwbGljYXRpb25faWQpOmUucmVtb3ZlKHgucmVwbGljYXRpb25faWQpKX0pKTooaz1pLl9ncm91cCkmJihqPWEuVGFza3MuZmluZChmdW5jdGlvbih4KXtyZXR1cm4iZ3JvdXAiPT14Ll90eXBlJiZ4LnBob3Rvbl90YXNrPT1rfSkpJiYoai5fc2VsZWN0ZWQ9aS5fc2VsZWN0ZWQmJmouX3NlbGVjdGVkKSksYy50YXNrLnNlbGVjdGlvbj1lLnVuaXF1ZSgpLGQoKX0pLHgub24oImNsaWNrLm15IiwiLnRhc2tsYWJlbCIsZnVuY3Rpb24oKXskKHRoaXMpLnBhcmVudCgpLmZpbmQoImlucHV0IikudHJpZ2dlcigiY2xpY2siKX0pLHgub24oImNsaWNrLm15IiwiLnRhc2stZ3JvdXAiLGZ1bmN0aW9uKCl7Yy50YXNrLnNlYXJjaD0kKHRoaXMpLmF0dHIoInRpdGxlIil8fCQodGhpcykudGV4dCgpLGEubXkucmVjYWxjKCIjdGFzay1zZWFyY2giKX0pLHgub24oImNsaWNrLm15IiwiLnRhc2stZm9sZGdyb3VwIixmdW5jdGlvbigpe3ZhciB4PSQodGhpcykuZGF0YSgiZ3JvdXAiKS5yZXBsYWNlKC9eX18vLCIiKSxiPWMudGFzay5mb2xkW3hdPSFjLnRhc2suZm9sZFt4XSxmPSJfXyIreCxnPWEuVGFza3MuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsaWNhdGlvbl9pZD09Znx8YS5fZ3JvdXA9PXh9KTtnLl9mb2xkPWIsZy5fc2VsZWN0ZWQ9Zy5fc2VsZWN0ZWQmJiFiLGImJmMudGFzay5zZWxlY3Rpb24ucmVtb3ZlKCJfXyIreCksYS5McygiVGFza3MuRm9sZCIsZShjLnRhc2suZm9sZCkpLGEuVGFza3MuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgZD1hLl9zZWxlY3RlZDthLl9ncm91cD09eCYmKGEuX3NlbGVjdGVkPWEuX3NlbGVjdGVkJiYhYixkJiYhYS5fc2VsZWN0ZWQmJmMudGFzay5zZWxlY3Rpb24ucmVtb3ZlKGEucmVwbGljYXRpb25faWQpKX0pLGQoKX0uZGVib3VuY2UoMTApKSx4Lm9uKCJjbGljay5teSIsIi5idG4tZG9uZS1yZXN0YXJ0IixmdW5jdGlvbigpe3ZhciB4PSQodGhpcykuZGF0YSgiaWQiKTthLlJlc3RhcnRUYXNrcyghMSxbeF0pfSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGw9PWEpe2lmKHgudGFzay5zZWFyY2guZnJvbSgxKXx8IiIhPXgudGFzay5maWx0ZXIpe3ZhciBjPXRoaXMuVGFza3Muc2xpY2UoMCksZD14LnRhc2suZmlsdGVyLmV4Y2x1ZGUoImFjdGl2ZSIpKyIiO2lmKHgudGFzay5maWx0ZXIuZmluZCgiYWN0aXZlIikmJihjPWMuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiJFcnJvciIhPXgucGlkJiYiRG9uZSIhPXgucGlkfSkpLCJjb21wYWN0aW9uIj09ZCl4LnRhc2subGlzdD1jLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4vY29tcGFjdGlvbiQvLnRlc3QoeC50eXBlKX0pO2Vsc2V7dmFyIGU9ZD9jLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hKCgicmVwbGljYXRpb24iIT1kfHwiZ3JvdXAiIT14Ll90eXBlKSYmLTE9PSh4LnR5cGUrIiIpLmluZGV4T2YoZCkpfSk6YztpZih4LnRhc2suc2VhcmNoLmxlbmd0aD4xKXt2YXIgZj1uZXcgUmVnRXhwKHgudGFzay5zZWFyY2gudG9Mb3dlckNhc2UoKS5zcGxpdCgifCIpLmNvbXBhY3QoITApLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5lc2NhcGVSZWdFeHAoKX0pLmpvaW4oInwiKSk7ZT1lLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZi50ZXN0KHguX2luZGV4KX0pfXgudGFzay5saXN0PWgoZS5maWx0ZXIoZykpfX1lbHNlIHgudGFzay5saXN0PXRoaXMuVGFza3MuZmlsdGVyKGcpO3RoaXMubXkuZmluZCgiI3Rhc2stbGlzdCIpLmxpc3QoImRhdGEiLHgudGFzay5saXN0KX1mdW5jdGlvbiBnKGEpe3JldHVybiJncm91cCI9PWEuX3R5cGV8fCFhLl9ncm91cHx8IXgudGFzay5mb2xkW2EuX2dyb3VwXX1mdW5jdGlvbiBoKHgpe3ZhciBhPXt9O3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7Imdyb3VwIiE9eC5fdHlwZSYmeC5fZ3JvdXAmJihhW3guX2dyb3VwXT0oYVt4Ll9ncm91cF18fDApKzEpfSkseC5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuISEoImdyb3VwIiE9eC5fdHlwZXx8YVt4Ll9ncm91cF18fHguX2ZvbGQmJnguX3J1bil9KX19LHdhdGNoOlsiI3Rhc2stZmlsdGVyIiwiI3Rhc2stc2VhcmNoIiwiI2J0bi1zZWxlY3QtdGFza3MiXX0sIiNidG4tc2VsZWN0LXRhc2tzIjp7ZGVsYXk6MCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuVGFza3Muc2xpY2UoMCkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkuY29tcGFjdCgpLGQ9eC50YXNrLmxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkuY29tcGFjdCgpLGU9eC50YXNrLnNlbGVjdGlvbi5pbnRlcnNlY3QoZCkuZmlsdGVyKGIuTm9Hcm91cCksZj1lLmZpbHRlcihiLk5vR3JvdXApLmxlbmd0aCxnPWIubGFuZztyZXR1cm4gbnVsbCE9YSYmKHgudGFzay5zZWxlY3Rpb249Zj94LnRhc2suc2VsZWN0aW9uLnN1YnRyYWN0KGQpLnVuaXF1ZSgpOngudGFzay5zZWxlY3Rpb24uY29uY2F0KGQpLnVuaXF1ZSgpLGU9eC50YXNrLnNlbGVjdGlvbixiLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5yZXBsaWNhdGlvbl9pZCYmIXguX2ZvbGQmJih4Ll9zZWxlY3RlZD1lLmluZGV4T2YoeC5yZXBsaWNhdGlvbl9pZCk+LTEpfSkpLChmPShlPXgudGFzay5zZWxlY3Rpb24uaW50ZXJzZWN0KGQpKS5maWx0ZXIoYi5Ob0dyb3VwKS5sZW5ndGgpP2cuVFhUX1RfVU5TRUxFQ1QuYXNzaWduKGUubGVuZ3RoPT1jLmxlbmd0aD9nLlRYVF9UX1NFTEVDVF9BTEw6Zik6Zy5UWFRfVF9TRUxFQ1QuYXNzaWduKGQubGVuZ3RoPT1jLmxlbmd0aD9nLlRYVF9UX1NFTEVDVF9BTEw6Zy5UWFRfVF9TRUxFQ1RfRklMVEVSKX0sZXZlbnRzOiJjbGljay5teSIsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LnRhc2subGlzdC5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkJiYiZ3JvdXAiIT14Ll90eXBlfSl9fSx3YXRjaDpbIiN0YXNrLWxpc3QiLCIjdGFzay1maWx0ZXIiLCIjdGFzay1zZWFyY2giXX0sIiNidG4tcmVsb2Fkc3luYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLlJlc3RhcnRQb2xsLmRlYm91bmNlKDUwMCkoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiFjdy5tZSgpfX0sd2F0Y2g6WyIjdGFzay1saXN0Il0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztPYmplY3QuaXNPYmplY3QoYSkmJihhLm5hbWU/Yi5teS5jaGVjaygiI2J0bi1yZWxvYWRzeW5jIik6KGIuVGFza3MubGVuZ3RoPTAseC50YXNrLnNlbGVjdGlvbi5sZW5ndGg9MCxiLm15LnJlY2FsYygiI3Rhc2stbGlzdCIpLGIubXkuY2hlY2soIiN0YXNrLWNvbHMiKSxiLm15LmNoZWNrKCIjdGFzay1saXN0IikpKX19fSwiI2J0bi1yZXN5bmMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtpZihudWxsIT1hKXt2YXIgYz10aGlzO2lmKGIuZGF0YSgibW9kYWwiKSlyZXR1cm4gYi5tb2RhbCghMCksdm9pZCAwO2MuTW9kYWxzLnRhc2tzJiZjLk1vZGFscy50YXNrcy5tb2RhbCghMCksYy5SZXN0YXJ0VGFza3MoKS50aGVuKGZ1bmN0aW9uKCl7eC50YXNrLnNlbGVjdGlvbi5sZW5ndGg9MCxjLm15LmNoZWNrKCIjdGFzay1saXN0IiksYy5SZXN0YXJ0UG9sbC5kZWJvdW5jZSgzMDApKCksYy5SZXN0YXJ0UG9sbC5kZWJvdW5jZSgyNTAwKSgpfSl9fSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe2lmKCF4LnRhc2suc2VsZWN0aW9uLmxlbmd0aClyZXR1cm4hMDt2YXIgYT14LnRhc2suc2VsZWN0aW9uLmZpbHRlcih0aGlzLk5vR3JvdXApLmludGVyc2VjdCh4LnRhc2subGlzdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGljYXRpb25faWR9KSk7aWYoIWEubGVuZ3RoKXJldHVybiEwO3ZhciBiPWN3LmxpYi5hMm8oYSksYz0hMDtyZXR1cm4gdGhpcy5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpeyF4LmRvY19pZCYmYlt4LnJlcGxpY2F0aW9uX2lkXSYmKGM9ITEpfSksIWN9fSx3YXRjaDpbIiN0YXNrLWZpbHRlciIsIiN0YXNrLWxpc3QiXX0sIiNidG4tc3RvcHN5bmMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLlJlc3RhcnRUYXNrcyghMCkudGhlbihmdW5jdGlvbigpe3gudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYi5teS5jaGVjaygiI3Rhc2stbGlzdCIpLGIuUmVzdGFydFBvbGwuZGVib3VuY2UoMzAwKSgpLGIuUmVzdGFydFBvbGwuZGVib3VuY2UoMjUwMCkoKX0pfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4heC50YXNrLnNlbGVjdGlvbi5sZW5ndGh8fCgheC50YXNrLnNlbGVjdGlvbi5maWx0ZXIodGhpcy5Ob0dyb3VwKS5pbnRlcnNlY3QoeC50YXNrLmxpc3QubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnJlcGxpY2F0aW9uX2lkfSkpLmxlbmd0aHx8dm9pZCAwKX19LHdhdGNoOlsiI3Rhc2stZmlsdGVyIiwiI3Rhc2stbGlzdCJdfSwiI2J0bi1uZXdzeW5jIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLGU9eC5zZWxlY3Rpb24ubGVuZ3RoPjE/Ik11bHRpIjoiU3luYyIsZj17dXJsOiIiLGRiczpbXX0sZz17dGFzazplLHNyYzpmfSxoPTQyO2lmKG51bGwhPWEpe2lmKGIuZGF0YSgibW9kYWwiKSlyZXR1cm4gYi5tb2RhbCghMCksdm9pZCAwO2QuTW9kYWxzLnRhc2tzJiZkLk1vZGFscy50YXNrcy5tb2RhbCghMCksMT09eC5zZWxlY3Rpb24ubGVuZ3RoP2YudXJsPXguc2VsZWN0aW9uWzBdOnguc2VsZWN0aW9uLmxlbmd0aD4xJiYoZi5kYnM9eC5zZWxlY3Rpb24uc2xpY2UoMCkpLGQuTW9kYWxzLnRhc2tzPWIsZC5MYXN0U3luYy50YXNrPT1lJiZKU09OLnN0cmluZ2lmeShmKT09SlNPTi5zdHJpbmdpZnkoT2JqZWN0LnNlbGVjdChkLkxhc3RTeW5jLnNyYyxbInVybCIsImRicyJdKSk/Zz1kLkxhc3RTeW5jOmQuTGFzdFN5bmM9ZywoYz1kLm15LmZpbmQoIiNycGFuZWwiKS53aWR0aCgpLTMyKTw0NjA/KGMrPTE4MyxoKz0xODMpOmM8NTYwJiYoYys9MTAyLGgrPTEwMiksYi5tb2RhbCh7cm9vdDpkLm15LmZpbmQoIiNycGFuZWwiKSxtYW5pZmVzdDokLmV4dGVuZCghMCx7fSxkLlBobygiU3luY1Rhc2siKSx7UmVzdGFydFBvbGw6ZC5SZXN0YXJ0UG9sbCxwYXJhbXM6e3dpZHRoOmN9fSksZGF0YTpnLG5vc2U6InRvcCIsYWxpZ246InRvcDoxMDMlOyBsZWZ0Oi17MX1weDsiLmFzc2lnbihoKSxkcmFnOiIuY20iLGNzczoieGdyYXkiLGVzYzohMCxmb2N1czpkLkxhc3RTeW5jLnNyYy51cmw/IiNydGFyZ2V0IjoiI3Jzb3VyY2UifSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5Nb2RhbHMudGFza3M9bnVsbH0pfXJldHVybiB0aGlzLmxhbmdbeC5zZWxlY3Rpb24ubGVuZ3RoPDI/IkJUTl9UQVNLX05FV1NZTkMiOiJCVE5fVEFTS19CQUNLVVAiXX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiFjdy5tZSgpfX0sbGlzdGVuOnt1c2VyQ3R4OmZ1bmN0aW9uKHgsYSl7dGhpcy5teS5jaGVjaygiI2J0bi1uZXdzeW5jIil9fSx3YXRjaDpbIiN0YXNrLWxpc3QiLCIjdmlldy1oYXNzZWxlY3Rpb24iXX19LGRpZTpmdW5jdGlvbih4KXt0aGlzLlRhc2tMb29wJiZ0aGlzLlRhc2tMb29wLmNhbmNlbCgpLFsiI2RiLWxpc3QiLCIjdGFzay1saXN0Il0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj14LmZpbmQoYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGIuZ2V0TmljZVNjcm9sbCYmYi5nZXROaWNlU2Nyb2xsKCkucmVtb3ZlKCksYi5saXN0KCJyZW1vdmUiKX0pfSxSVDpmdW5jdGlvbih4KXtyZXR1cm4gbnVsbD09eD90aGlzOk9iamVjdC5pc0FycmF5KHgpP2N3LmxpYi5nZXRyZWYodGhpcyx4KTp0aGlzW3hdfSxSZWxpc3Q6ZnVuY3Rpb24oKXt0aGlzLm15LmNoZWNrKCIjZGItcHJveHkiKX0sR2V0TGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGE7cmV0dXJuIGIuUGhvKCJHZXRMaXN0IikoKS50aGVuKGZ1bmN0aW9uKCl7Yi5BbGw9Yi5QaG8oIkFsbCIpLE9iamVjdC5rZXlzKGIuQWxsKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2IuQWxsW3hdLnN0YXI9Yy5zdGFyc1t4XT8icm93LXN0YXIiOiIifSkseCYmYi5SZWxpc3QoKSxiLkJhdGNoSW5mbyhhfHxPYmplY3Qua2V5cyhiLkFsbCksYi5QaG8oIkNmZyIpLmJhdGNoRGJJbmZvRGVsYXkpfSl9LE5vcm1EQjpmdW5jdGlvbih4LGEpe3ZhciBiLGMsZD10aGlzLGU9YXx8ZC5kYXRhLm9zZWw7cmV0dXJuKGM9eC5kaXNrX3NpemUpJiYoYj14LmRhdGFfc2l6ZSkmJih4LnNpemVzYWZlPSc8c3BhbiBjbGFzcz0iezF9Ij57Mn08L3NwYW4+Jy5hc3NpZ24oYi9jPC4xPyJyZWQgbzcwIjpiL2M8LjU/Im9yYW5nZSBvOTAiOiJ4Z3JheSIsZC5CeXRlcyhjKSkseC5zaXpldGlwPWQubGFuZy5USVBfREJTSVpFLmFzc2lnbihkLkJ5dGVzKGIpLGQuQnl0ZXMoYykpKSx4Lmdyb3VwX3g9eC5ncm91cD8ieCI6IiIseC5kb2NfY291bnRfc2FmZT0iIiE9PXguZG9jX2NvdW50P2QuTWV0cmljKHguZG9jX2NvdW50LDYpOiIiLHguZG9jX2RlbF9jb3VudF9zYWZlPSIiIT09eC5kb2NfZGVsX2NvdW50P2QuTWV0cmljKHguZG9jX2RlbF9jb3VudCw2KToiIix4LnVwZGF0ZV9zZXFfc2FmZT0iIiE9PXgudXBkYXRlX3NlcT9kLk1ldHJpYygoeC51cGRhdGVfc2VxKyIiKS5zcGxpdCgiLSIpWzBdLDcpOiIiLHguY2hlY2tlZD1lW3gubmFtZV0/ImNoZWNrZWQiOiIiLHh9LE5vR3JvdXA6ZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB4PyJfXyIhPXgudG8oMik6Imdyb3VwIiE9eC5fdHlwZX0sc3R5bGU6eyIgLnZpZXctcm93Ijp7IiI6IndpZHRoOjEwMCU7IG1pbi1oZWlnaHQ6MmVtOyBwYWRkaW5nOjAuMzVlbSAwOyBsaW5lLWhlaWdodDoxLjJlbTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsiLCI6bnRoLWNoaWxkKDJuKzApIjoiYmFja2dyb3VuZC1jb2xvcjojZjVmN2Y5OyIsIiBzdmciOiJtYXJnaW4tYm90dG9tOjFweDsiLCIucm93LXN0YXIrLnZpZXctcm93IjoiYm9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCIucm93LXN0YXIrLnZpZXctcm93LnJvdy1zdGFyIjoiYm9yZGVyLXRvcDpub25lOyIsIiAuYnRuLWRic3RhciI6ImNvbG9yOiNkMGQ2ZGQ7IiwiIC5idG4tZGJzdGFyLnJvdy1zdGFyICI6ImNvbG9yOiNmZmI0MmE7In0sIiAudGFycm93IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MzFweDtwYWRkaW5nLXJpZ2h0OjFweDt0ZXh0LWFsaWduOmNlbnRlcjsiLCIgLnJvdy1zZWwiOiJ3aWR0aDoyM3B4OyBtYXJnaW46IDAgMnB4IDJweCAzcHg7IHRleHQtYWxpZ246Y2VudGVyOyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246bWlkZGxlOyIsIiAjZGItbGlzdCI6eyIiOiJvdXRsaW5lOm5vbmU7IiwiIC5jb2wtODAiOiJ3aWR0aDo4MHB4OyBwYWRkaW5nOjFweCA2cHggMCAwOyB0ZXh0LWFsaWduOnJpZ2h0OyIsIiAuY29sLTcwIjoid2lkdGg6NzBweDsgZm9udC1zaXplOjAuOWVtOyBsaW5lLWhlaWdodDoxLjJlbTsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjNweCAwIDAgNnB4OyIsIiAudmlldy1yb3ciOiJ3aGl0ZS1zcGFjZTogbm93cmFwOyIsIiAuZGItYnRucyI6eyIiOid3aWR0aDo1NXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LWZhbWlseTogImZvdW5kYXRpb24taWNvbnMiOyBmb250LXdlaWdodDo0MDA7JywiPnNwYW4iOiJvcGFjaXR5OjAuNjtmb250LXNpemU6MC45ZW07IGN1cnNvcjpwb2ludGVyOyBwYWRkaW5nOiAwIDNweCAwIDJweDsifSwiIC52aWV3LXJvdz5kaXYiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyB3b3JkLXdyYXA6YnJlYWstd29yZDsgd2hpdGUtc3BhY2U6YnJlYWstc3BhY2VzOyIsIiAudmlldy1hdXg+ZGl2IjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgbWluLWhlaWdodDoxLjNlbTsiLCIgLmRiLWdlbmVyYWwiOiJ3aWR0aDpjYWxjKDEwMCUgLSAgMzM4cHggLSA1NXB4KTsiLCIgLmRiLWdyb3VwLW5hbWUiOiJ3aWR0aDpjYWxjKDEwMCUgLSAzMzhweCArIDE1MHB4KTsiLCIgLm1oMTllbSI6Im1pbi1oZWlnaHQ6MS45ZW07IiwiIC5taDEzZW0iOiJtaW4taGVpZ2h0OjEuM2VtOyIsIiAueHc0NXAiOiJtYXgtd2lkdGg6NDUlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyIsIiAuY29sLWlkcyI6IndpZHRoOjMwJTtwYWRkaW5nOjAgMjBweCAwIDhweDsiLCIgLmNvbC12YWxzIjoid2lkdGg6NzAlOyBwYWRkaW5nLWxlZnQ6MTBweDsiLCIgLmNvbC1qc29uIjp7IiI6IndpZHRoOjM3MHB4IWltcG9ydGFudDsgei1pbmRleDo0OyBiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7IG1pbi1oZWlnaHQ6MmVtO21hcmdpbjotMC4zNWVtIDAgLTAuMzVlbSAtNjBweDsgcGFkZGluZzogMC4yNWVtIDAhaW1wb3J0YW50OyJ9LCIgLnZpZXctdG9maWx0ZXIiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLWxlZnQ6NXB4O3dpZHRoOjIwcHg7bGluZS1oZWlnaHQ6MS4yZW07b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjVzOyIsIiAudmlldy1yb3c6aG92ZXIgLnZpZXctdG9maWx0ZXIiOiJvcGFjaXR5OjAuNTtjdXJzb3I6cG9pbnRlcjsiLCIgLmRiLWdyb3VwIjp7IiI6InotaW5kZXg6Mjtib3JkZXItdG9wOjFweCBzb2xpZCAjZTFlNWU4OyIsIisuZGItZ3JvdXAuenphcmlnaHQiOiJib3JkZXItdG9wOm5vbmU7IiwiLnp6YXJpZ2h0Ky56Z3JwIjoiYm9yZGVyLXRvcDoxcHggc29saWQgI2UxZTVlODsiLCI6bGFzdC1jaGlsZCI6ImJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMWU1ZTg7In0sIiAuemdycHgrLnpncnAiOiJib3JkZXItdG9wOjFweCBzb2xpZCAjZTFlNWU4OyIsIiAudmlldy1yb3c6bGFzdC1jaGlsZC56Z3JweCI6ImJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMWU1ZTg7In0sIiAjdGFzay1wYW5lbCI6eyIiOiJvdXRsaW5lOm5vbmU7In0sIiAudGFwLWRiaW5mbyI6ImN1cnNvcjpwb2ludGVyOyIsIiAuY2ItdGFzay1yb3ciOiJ3aWR0aDoyN3B4OyBtYXJnaW4tbGVmdDotMjdweDsiLCIgI2RiLXBhbmVsIjp7IjpiZWZvcmUiOidjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MHB4O3otaW5kZXg6MTtoZWlnaHQ6MTAwJTtyaWdodDoyMzBweDt3aWR0aDo4MHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDE3OCwxODQsMTkwLDAuMik7Ym9yZGVyLXJpZ2h0OjFweCBkb3R0ZWQgcmdiYSgxNzgsMTg0LDE5MCwwLjQpO3BvaW50ZXItZXZlbnRzOm5vbmU7JywiOmFmdGVyIjonY29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDt6LWluZGV4OjM7aGVpZ2h0OjEwMCU7cmlnaHQ6ODBweDt3aWR0aDo4MHB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDE3OCwxODQsMTkwLDAuMik7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDE3OCwxODQsMTkwLDAuMik7cG9pbnRlci1ldmVudHM6bm9uZTsnfSwiIC5iYnMiOiJib3JkZXItYm90dG9tLWNvbG9yOiNlM2U5ZWM7IiwiIC5iYXMiOiJib3JkZXItY29sb3I6I2UzZTllYzsiLCIgLmJycyI6ImJvcmRlci1yaWdodDoxcHggc29saWQgI2UzZTllYzsiLCIgLmJyc2wiOiJib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjExLDIxNywyMjIsMC4zKTsiLCIgLmJjZWxsMCI6ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDExNSwxMjEsMTI4LDAuMSk7IiwiIC5iY2VsbDEiOiJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxMTUsMTIxLDEyOCwwLjA3KTsiLCIgLncxMDBwLTMzOCI6IndpZHRoOmNhbGMoMTAwJSAtIDMzOHB4KTsiLCIgLncxMDBwLTMxMCI6IndpZHRoOmNhbGMoMTAwJSAtIDMxMXB4KTsiLCIgLnRhc2stcm93LXRpcCI6Im1pbi13aWR0aDozMCU7IHRleHQtYWxpZ246Y2VudGVyOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJvcmRlci1yYWRpdXM6MnB4OyBwYWRkaW5nOiAwIDJweCAxcHggMnB4OyIsIiAuYnRuLWRvbmUtcmVzdGFydCI6eyIiOiJvcGFjaXR5OjAuNDt0cmFuc2l0aW9uOm9wYWNpdHkgMC41czsiLCI6aG92ZXIiOiJvcGFjaXR5OjE7In19LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtyZXR1cm4gYS5Mcz1hLlBobygiTHMiKSxhLlJvdz1hLlJvdy5hc3NpZ24oYS5sYW5nKSxhLlBobygiaXNJRSIpfHxbIlJvdyJdLmZvckVhY2goZnVuY3Rpb24oeCl7YVt4XT1hLlBobygiQ29tcGlsZVQiKShhW3hdKX0pLCQuZXh0ZW5kKGIudGFzay5mb2xkLGEuTHMoIlRhc2tzLkZvbGQiKXx8e30pLCQuZXh0ZW5kKGIuc3RhcnMsYS5McygiREJzLlN0YXJzIil8fHt9KSwkLmV4dGVuZChiLmdyb3VwcyxhLkxzKCJEQnMuR3JvdXBzIil8fHt9KSxhLlJlbGlzdE5vdz1hLlJlbGlzdC5kZWJvdW5jZSgxMCksYS5SZWxpc3Q9YS5SZWxpc3QudGhyb3R0bGUoNTAwKSxhLkFycm93cz1hLkFycm93cy5zcGxpdCgiXG5cbiIpLHguaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpLHgub24oImNsaWNrLm15IiwnaW5wdXRbbmFtZT0iZGItc2VsZWN0aW9uIl0nLGZ1bmN0aW9uKCl7dmFyIGM9W107eC5maW5kKCdpbnB1dFtuYW1lPSJkYi1zZWxlY3Rpb24iXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgeD0kKHRoaXMpO3guaXMoIjpjaGVja2VkIikmJmMucHVzaCh4LnZhbCgpKX0pLGIuc2VsZWN0aW9uPWMsYi5vc2VsPWN3LmxpYi5hMm8oYi5zZWxlY3Rpb24pLGEubXkuY2hlY2soIiN2aWV3LWhhc3NlbGVjdGlvbiIpfSkseC50aGVuKGZ1bmN0aW9uKCl7JC5leHRlbmQoITAsYS5kYXRhLnNlcnZpY2UsYS5QaG8oIkNvdWNoIikpfS5kZWJvdW5jZSgxMDApKSxhLkdldExpc3QoITApLnRoZW4oZnVuY3Rpb24oKXthLlRhc2tMb29wSW50ZXJ2YWw9YS5QaG8oIkNmZyIpLmxvb3BBY3RpdmVUYXNrcyxhLkdldFRhc2tzKCEwKSxhLlJlc3RhcnRQb2xsKCl9KX0sSFRNTDonPGRpdiBjbGFzcz0idzU1cCBkaWIgdmF0Ij48ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIyMCBsaDE2MCI+PGRpdiBjbGFzcz0iZnIgZnM5NSB6aTIiIHN0eWxlPSJtYXgtd2lkdGg6MTgwcHg7d2lkdGg6Y2FsYygxMDAlIC0gNDQ1cHgpOyI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyBibHVlIG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImRiLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQgdzc1cCBwcjEwIj48YnV0dG9uIGlkPSJidG4tcmVsb2FkIiBjbGFzcz0idzQwIG1yMiIgdGl0bGU9IntUSVBfUkVMT0FEfSI+PHNwYW4gY2xhc3M9ImZpLWxvb3AiPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tbmV3ZGIiIGNsYXNzPSJncmVlbiBtcjIiPntCVE5fTkVXREJ9PC9idXR0b24+PHNwYW4gaWQ9InZpZXctaGFzc2VsZWN0aW9uIj48YnV0dG9uIGlkPSJidG4tY29tcGFjdCIgY2xhc3M9Im1yMiIgZGlzYWJsZWQ+e0JUTl9DT01QQUNUfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1kZWxkYiIgY2xhc3M9Im1yMiByZWQiIGRpc2FibGVkPntCVE5fREVMREJ9PC9idXR0b24+PC9zcGFuPjxzcGFuIGNsYXNzPSJwbHNoaW0gZGliIHZhdCI+PHNwYW4gaWQ9ImJ0bi1zdGF0cyIgY2xhc3M9Im1yMiI+PGEgaHJlZj0iI19zdGF0cyIgY2xhc3M9InRkbiBsaDE0MGkgYnV0dG9uIj57QlROX1NUQVRTfTwvYT48L3NwYW4+PHNwYW4gaWQ9ImJ0bi1sb2dzIiBjbGFzcz0iaGlkZSI+PGEgaHJlZj0iI19sb2ciIGNsYXNzPSJ0ZG4gbGgxNDBpIGJ1dHRvbiI+e0JUTl9MT0dTfTwvYT48L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImRiLXBhbmVsIiBjbGFzcz0icGFuZWxoZWlnaHQtMzIgYnIyIG10MTYgbWwyMCBtcjIwIj48ZGl2IGNsYXNzPSJiZy1wZ3JheSBiYnMgbGgxNjAgcHQyIG53IG9oIGVsbCB4cGFuZWwiPjxkaXYgY2xhc3M9IncxMDBwLTMxMCBkaWIgdmF0IG53IG9oIGVsbCI+PHNwYW4gaWQ9ImJ0bi12aWV3LWRpciIgY2xhc3M9ImRpYiBwbDggcHI2IG1yMiB2YXQgY3AgbzUwIGZzODAgcHQxIHBzZXVkb2xpbmsgdGRuIGgzMCI+PC9zcGFuPjxzcGFuIGlkPSJ2aWV3LWxpbmtzIiBjbGFzcz0iZ3JheSBoaWRlIj48L3NwYW4+PGRpdiBpZD0idmlldy1jb2xzIiBjbGFzcz0iZGliIHZhdCBwcjEyIG53IHhncmF5Ij48L2Rpdj48ZGl2IGlkPSJidG4tc2VsZWN0IiBjbGFzcz0iYnV0dG9uIHhidXR0b24gcHQyIGgyNSBtdDEgZnM5MCBsaDEzMCB0ZG4gZnIgbXIzIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ3MzEwIGRpYiBncmF5IGZzOTAiPjxkaXYgY2xhc3M9Inc4MCBkaWIgdGFyIHByNiI+e0hfRE9DU308L2Rpdj48ZGl2IGNsYXNzPSJ3NzAgZGliIHBsNyI+e0hfREVMRE9DU308L2Rpdj48ZGl2IGNsYXNzPSJ3ODAgZGliIHRhciBwcjciPntIX1NFUX08L2Rpdj48ZGl2IGNsYXNzPSJ3ODAgZGliIHRhciBwcjciPntIX1NJWkV9PC9kaXY+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9ImRiLWxpc3QiIGNsYXNzPSJwYW5lbGhlaWdodC02MyB4Z3JheSBsaDE3MCBieHRvcCBveGgiPjwvc2VjdGlvbj48L2Rpdj48ZGl2IGlkPSJkYi1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InJwYW5lbCIgY2xhc3M9Inc0NXAgZGliIHZhdCBwcjIwIj48ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IG1iMTYgdGFsIj48ZGl2IGNsYXNzPSJmciBmczk1IHRhbCIgc3R5bGU9Im1heC13aWR0aDoxODBweDt3aWR0aDpjYWxjKDEwMCUgLSAzNDBweCk7Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIGJsdWUgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGFzay1zZWFyY2giIGNsYXNzPSJ1aS1zZWFyY2ggdzEwMHAgbWwwIG1yMCBtdDAgcHIxMCIgcGxhY2Vob2xkZXI9IntQTENfU0VBUkNIfSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjE5cHghaW1wb3J0YW50OyI+PHNwYW4gY2xhc3M9ImZpLXggZnM4MCBkaWIgdmF0IHB0MiBibHVlIHVpLXNlYXJjaC1jbGVhciIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi0xOXB4IWltcG9ydGFudDsib25jbGljaz0iJCh0aGlzKS5zaWJsaW5ncyhcJ2lucHV0OmVxKDApXCcpLnZhbChcJ1wnKS5ibHVyKCkiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ3NzBwIGRpYiI+PGJ1dHRvbiBpZD0iYnRuLXJlbG9hZHN5bmMiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0ie1RJUF9UQVNLX1JFTE9BRH0iPjxzcGFuIGNsYXNzPSJmaS1sb29wIj48L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLW5ld3N5bmMiIGNsYXNzPSJtcjIgdzExMCBwbDQgcHIyIj57QlROX1RBU0tfTkVXU1lOQ308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tcmVzeW5jIiBjbGFzcz0ib3JhbmdlIG1yMiIgZGlzYWJsZWQ+e0JUTl9UQVNLX1JFU1lOQ308L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tc3RvcHN5bmMiIGNsYXNzPSJyZWQiIGRpc2FibGVkPntCVE5fVEFTS19TVE9QfTwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InRhc2stcGFuZWwiIGNsYXNzPSJwYW5lbGhlaWdodC0zMiBicjIgbXQxNiI+PGRpdj48ZGl2IGNsYXNzPSJiZy1wZ3JheSBsaDE3MCB4cGFuZWwgcHQxIj48ZGl2IGNsYXNzPSJmciBwcjQgdGFyIj48c3BhbiBpZD0idGFzay1maWx0ZXIiIGNsYXNzPSJocGFuZWwgZnM5MCBwbDQiPjwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ0YXNrLWNvbHMiIGNsYXNzPSJkaWIgdmF0IHBsOCBudyB4Z3JheSBwdDEgcHIxMiI+PC9kaXY+PGRpdiBpZD0iYnRuLXNlbGVjdC10YXNrcyIgY2xhc3M9ImJ1dHRvbiB4YnV0dG9uIHB0MiBoMjUgbXQyIGZzOTAgbGgxMzAgdGRuIGRpYiB2YXQgaGlkZSI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InRhc2stbGlzdCIgY2xhc3M9InBhbmVsaGVpZ2h0LTYzIHhncmF5IGxoMTcwIGJ4dG9wIj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PGRpdiBpZD0ic3RhdHVzLXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+PC9kaXY+JyxSb3c6JzxkaXYgY2xhc3M9InZpZXctcm93IGRiLWJ1Y2tldCB7c3Rhcn0gemdycHtncm91cF94fSI+PGlucHV0IGNsYXNzPSJjcCByb3ctc2VsIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZGItc2VsZWN0aW9uIiB7Y2hlY2tlZH0gdmFsdWU9IntuYW1lc2FmZX0iPjxkaXYgY2xhc3M9ImRiLWdlbmVyYWwgbWgxM2VtIHByMiI+PGEgaHJlZj0iI3tocmVmfSIgY2xhc3M9InRkbiBtcjIwIHZpZXctZGItbmFtZSIgdGl0bGU9Int0b29sdGlwfSI+e2huYW1lfTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJkYi1idG5zIj48c3BhbiBjbGFzcz0iYnRuLWRiYWNsIHtwcm90ZWN0ZWR9IHByNSIgdGl0bGU9IntUSVBfQlROX0FDTH0iPjwvc3Bhbj48c3BhbiBjbGFzcz0iYnRuLWRiaW5mbyBsZ3JheSIgdGl0bGU9IntUSVBfQlROX0lORk99Ij7vhZ48L3NwYW4+PHNwYW4gY2xhc3M9ImJ0bi1kYnN0YXIge3N0YXJ9IHByNSIgdGl0bGU9IntUSVBfQlROX1NUQVJ9Ij7vh648L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idzMxMCB2aWV3LWF1eCBmczk1IHRhcC1kYmluZm8iIHRpdGxlPSJ7VElQX0RPQ19JTkZPfSI+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIiB0aXRsZT0ie2RvY19jb3VudH0iPntkb2NfY291bnRfc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdHJpbSBjb2wtNzAgZ3JheSI+e2RvY19kZWxfY291bnRfc2FmZX08L2Rpdj48ZGl2IGNsYXNzPSJjb2wtdHJpbSBjb2wtODAiIHRpdGxlPSJ7dXBkYXRlX3NlcX0iPnt1cGRhdGVfc2VxX3NhZmV9PC9kaXY+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIHByOCIgdGl0bGU9IntzaXpldGlwfSI+e3NpemVzYWZlfTwvZGl2PjwvZGl2PjwvZGl2PicsUm93R3JvdXA6JzxkaXYgY2xhc3M9InZpZXctcm93IGRiLWdyb3VwIGNwIHp6e2ZvbGR9IiBkYXRhLWdyb3VwPSJ7aWR9Ij48ZGl2IGNsYXNzPSJ3MjMgbWw1IHBsMSBmczExMCI+PHNwYW4gY2xhc3M9Intmb2xkfSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImRiLWdyb3VwLW5hbWUgbWgxM2VtIHByMiI+PGRpdiBjbGFzcz0ieHc0NXAgZGliIHZhdCBudyBmdzUwMCBvOTAiPntzdGFydH08L2Rpdj48c3BhbiBjbGFzcz0iYmx1ZTEgZnc2MDAiPuKAicK3wrfCt+KAiTwvc3Bhbj48ZGl2IGNsYXNzPSJ4dzQ1cCBkaWIgdmF0IG53IGdyYXkxIj57ZW5kfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IncxNjAgdmlldy1hdXggZnM5NSI+PGRpdiBjbGFzcz0iY29sLXRyaW0gY29sLTgwIHRhciBncmF5MiI+e3NpemV9IERCczwvZGl2PjxkaXYgY2xhc3M9ImNvbC10cmltIGNvbC04MCB0YXIgcHI4IGdyYXkyIj57ZGlza308L2Rpdj48L2Rpdj48L2Rpdj4nLEFycm93czonPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMCwgLTApIj5cbiAgICA8cGF0aCBkPSJNMS41LDQuNSBMMTUuNSw0LjUgTTEyLjUsNy41IEwxNS41LDQuNSBMMTIuNSwxLjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2LjM3NSIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNi4zNzUsIDgiPlxuICA8ZyBpZD0iTGF5ZXJfMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4zNzUsIC0xMCkiPlxuICAgIDxwYXRoIGQ9Ik02Ljc1LDE0LjUgTDE1LjUsMTQuNSBNMTIuNSwxNy41IEwxNS41LDE0LjUgTDEyLjUsMTEuNSBNMS4xMjUsMTEuNjg3IEwzLDE0LjgxMyBMMywxNy41IEMzLDE3LjUgNSwxNy41IDUsMTcuNSBDNSwxNy41IDUsMTQuODEzIDUsMTQuODEzIEw2Ljg3NSwxMS42ODcgTDEuMTI1LDExLjY4NyB6IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSI4IiB2aWV3Qm94PSIwLCAwLCAxNiwgOCI+XG4gIDxnIGlkPSJMYXllcl8xIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMCwgLTIwKSI+XG4gICAgPHBhdGggZD0iTTQuNSwyMS41IEw1LjUsMjEuNSBMNS41LDI3LjUgTDQuNSwyNy41IE0yLjUsMjEuNSBMMS41LDIxLjUgTDEuNSwyNy41IEwyLjUsMjcuNSBNMTUuNSwyNC41IEw3LDI0LjUgTTEyLjUsMjcuNSBMMTUuNSwyNC41IEwxMi41LDIxLjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAsIDAsIDE2LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTApIj5cbiAgICA8cGF0aCBkPSJNMzEuNSw0LjUgTDE3LjUsNC41IE0yMC41LDEuNSBMMTcuNSw0LjUgTDIwLjUsNy41IiBmaWxsLW9wYWNpdHk9IjAiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPlxuICA8L2c+XG48L3N2Zz5cblxuPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNi4zNzUiIGhlaWdodD0iOCIgdmlld0JveD0iMCwgMCwgMTYuMzc1LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTEwKSI+XG4gICAgPHBhdGggZD0iTTI2LjI1LDE0LjUgTDE3LjUsMTQuNSBNMjAuNSwxNy41IEwxNy41LDE0LjUgTDIwLjUsMTEuNSBNMzEuODc1LDExLjY4NyBMMzAsMTQuODEzIEwzMCwxNy41IEMzMCwxNy41IDI4LDE3LjUgMjgsMTcuNSBDMjgsMTcuNSAyOCwxNC44MTMgMjgsMTQuODEzIEwyNi4xMjUsMTEuNjg3IEwzMS44NzUsMTEuNjg3IHoiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPlxuXG48c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAsIDAsIDE2LCA4Ij5cbiAgPGcgaWQ9IkxheWVyXzEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNiwgLTIwKSI+XG4gICAgPHBhdGggZD0iTTI4LjUsMjcuNSBMMjcuNSwyNy41IEwyNy41LDIxLjUgTDI4LjUsMjEuNSBNMzAuNSwyNy41IEwzMS41LDI3LjUgTDMxLjUsMjEuNSBMMzAuNSwyMS41IE0xNy41LDI0LjUgTDI2LDI0LjUgTTIwLjUsMjEuNSBMMTcuNSwyNC41IEwyMC41LDI3LjUiIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+XG4gIDwvZz5cbjwvc3ZnPicsQmF0Y2hJbmZvOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9Yy5BbGwsZT0oYT1udWxsIT1hP2E6Yy5QaG8oIkNmZyIpLmJhdGNoRGJJbmZvRGVsYXksW10pLGY9Ynx8Yy5QaG8oIkNmZyIpLmxpc3RDb2xzfHxbXSxnPWYuaW5kZXhPZigiaW5mbyIpPi0xLGg9Zi5pbmRleE9mKCJzZWN1cml0eSIpPi0xLGk9Yy5QaG8oIkNvdWNoIikubWF4QmF0Y2h8fDAsaj17fSxrPWMubXk/Yy5teS5maW5kKCIjZGItbGlzdCIpOm51bGwsbD14LmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWMuQWxsW3hdfSkuc29ydChmdW5jdGlvbih4LGEpe3ZhciBiPWRbeF0uc3RhcixjPWRbYV0uc3RhcjtyZXR1cm4gYj5jPy0xOmI9PWM/MDoxfSksbT1sLmxlbmd0aDtyZXR1cm4gaTwyfHxsLmxlbmd0aDwyP2wuZm9yRWFjaChmdW5jdGlvbih4LGIpe3ZhciBmPWRbeF07aWYoYy5CYXRjaFt4XSlyZXR1cm4gZS5wdXNoKGMuQmF0Y2hbeF0pOyEoZ3x8aHx8Zi5zdGFyKXx8Zi5ncm91cCYmYy5kYXRhJiYhYy5kYXRhLmdyb3Vwc1tmLmdyb3VwXXx8ZS5wdXNoKFEuZGVsYXkoNSthKmIpLnRoZW4obi5maWxsKHgpKSl9KTppPjEmJihsLmZvckVhY2goZnVuY3Rpb24oeCxiKXt2YXIgZj1kW3hdLGs9IWYuZ3JvdXB8fCFjLmRhdGF8fGMuZGF0YS5ncm91cHNbZi5ncm91cF07KGd8fGYuc3RhcikmJms/IWouX3x8altqLl9dLmxlbmd0aD49aT8oai5fPXgsalt4XT1beF0pOmpbai5fXS5wdXNoKHgpOmgmJmsmJmUucHVzaChRLmRlbGF5KDUrYSpiKS50aGVuKHEuZmlsbCh4KSkudGhlbihjLlJlbGlzdCkpfSksZT0oai5fP28oKTpbXSkuY29uY2F0KGUpKSxRLmFsbFNldHRsZWQoZSkudGhlbihmdW5jdGlvbigpezE9PWwubGVuZ3RoJiZrP2subGlzdCgicm93IixjLk5vcm1EQihjLkFsbFtsWzBdXSkpOmMuUmVsaXN0Tm93KCl9KSxlO2Z1bmN0aW9uIG4oeCl7dmFyIGEsYj1bXS5jb25jYXQoeCksZT1iLmpvaW4oIi8iKSxmPSEhZFtlXS5zdGFyO3JldHVybihnfHxofHxmKSYmKGE9Z3x8Zj9jLlJlcSh7dXJsOmJ9KS50aGVuKGZ1bmN0aW9uKHgpe2lmKGRbZV0pcmV0dXJuIHguc2l6ZXMmJih4LmRpc2tfc2l6ZT14LnNpemVzLmZpbGUseC5kYXRhX3NpemU9eC5zaXplcy5hY3RpdmUpLCQuZXh0ZW5kKGRbZV0seCx7c3RhbXA6RGF0ZS5ub3coKX0pLChofHxmKSYmZFtlXS5zZWN1cml0eS5zZXE8cGFyc2VJbnQoZFtlXS51cGRhdGVfc2VxKT9xKGUpOnZvaWQgMH0sZnVuY3Rpb24oeCl7NDA0PT14JiZkW2VdJiYiX25vZGUvX2xvY2FsL19ub2RlcyIhPWU/ZGVsZXRlIGMuQWxsW2VdOiQuZXh0ZW5kKGRbZV0sYy5QaG8oImRiVHlwZSIpLHtzdGFtcDpEYXRlLm5vdygpfSl9KTpxKGUpKT8oYy5CYXRjaFtlXT1RLmFsbFNldHRsZWQoW2FdKS50aGVuKGZ1bmN0aW9uKCl7KG0tPTEpP2MuUmVsaXN0KCk6Yy5SZWxpc3ROb3coKSxkZWxldGUgYy5CYXRjaFtlXX0pLGMuQmF0Y2hbZV0pOiQuRGVmZXJyZWQoKS5yZXNvbHZlKCl9ZnVuY3Rpb24gbygpe3ZhciB4PVtdO3JldHVybiBPYmplY3Qua2V5cyhqKS5mb3JFYWNoKGZ1bmN0aW9uKGIsYyl7aWYoIl8iIT1iKXt2YXIgZD1qW2JdO3gucHVzaChRLmRlbGF5KDErYSpjKigwfE1hdGgubG9nKGkpKSkudGhlbihwLmZpbGwoZCkpKX19KSxjLlBobygiQ291Y2giKS52ZXI+IjAwMy4iJiZ4LnB1c2gobigiX25vZGUvX2xvY2FsL19ub2RlcyIpKSx4fWZ1bmN0aW9uIHAoeCl7dmFyIGI9eC5zbGljZSgwKSxlPVtdLGY9W107cmV0dXJuIGMuUmVxKHt1cmw6WyJfZGJzX2luZm8iXSxtZXRob2Q6InBvc3QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KHtrZXlzOmJ9KX0pLnRoZW4oZnVuY3Rpb24oeCl7T2JqZWN0LmlzQXJyYXkoeCkmJih4LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9eC5rZXksYj0hIWRbYV0uc3RhcjtpZihkW2FdKXtpZih4LmVycm9yJiYiX25vZGUvX2xvY2FsL19ub2RlcyIhPWEpcmV0dXJuIGRlbGV0ZSBjLkFsbFthXSx2b2lkIDA7dmFyIGY9eC5pbmZvO2YmJihmLnNpemVzJiYoZi5kaXNrX3NpemU9Zi5zaXplcy5maWxlLGYuZGF0YV9zaXplPWYuc2l6ZXMuYWN0aXZlKSwkLmV4dGVuZChkW2FdLGYse3N0YW1wOkRhdGUubm93KCl9KSksKGh8fGIpJiZkW2FdLnNlY3VyaXR5LnNlcTxwYXJzZUludChkW2FdLnVwZGF0ZV9zZXEpJiZlLnB1c2goYSl9fSksYy5SZWxpc3QoKSxlLmxlbmd0aCYmKGUuZm9yRWFjaChmdW5jdGlvbih4LGIpe2YucHVzaChRLmRlbGF5KDErYSpiKS50aGVuKHEuZmlsbCh4KSkpfSksUS5hbGxTZXR0bGVkKGYpLnRoZW4oZnVuY3Rpb24oKXtjLlJlbGlzdCgpfSkpKX0pfWZ1bmN0aW9uIHEoeCl7cmV0dXJuIGMuUmVxKHt1cmw6W3gsIl9zZWN1cml0eSJdfSkudGhlbihmdW5jdGlvbihhKXtpZihkW3hdKXt2YXIgYj0kLmV4dGVuZCghMCx7c3RhbXA6RGF0ZS5ub3coKSxzZXE6cGFyc2VJbnQoZFt4XS51cGRhdGVfc2VxKSxhZG1pbnM6e25hbWVzOltdLHJvbGVzOltdfSxtZW1iZXJzOntuYW1lczpbXSxyb2xlczpbXX19LGEpOyJfIj09eFswXSYmYi5tZW1iZXJzLnJvbGVzLnB1c2goIl9hZG1pbiIpO3ZhciBjPSIiO2M9Yi5tZW1iZXJzLnJvbGVzLmxlbmd0aCtiLm1lbWJlcnMubmFtZXMubGVuZ3RoPT0wP2IuYWRtaW5zLnJvbGVzLmxlbmd0aCtiLmFkbWlucy5uYW1lcy5sZW5ndGghPTA/Im9yYW5nZTEgZmktdW5sb2NrIjoicmVkIGZpLXVubG9jayI6ImdyYXkzIGZpLWxvY2siLCQuZXh0ZW5kKGRbeF0se3NlY3VyaXR5OmIscHJvdGVjdGVkOmN9KX19KX19LEdldFRhc2tzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz0oYS5BbGwsYS5sYW5nLCI8bm9icj57MX08L25vYnI+IiksZD0nPG5vYnIgdGl0bGU9InsyfSI+ezF9PC9ub2JyPicsZT0nPHNwYW4gY2xhc3M9InsyfSI+ezF9PC9zcGFuPicsZj0kLkRlZmVycmVkKCksZz1hLkFycm93cyxoPWEuUGhvKCJDb3VjaCIpLnZlcixpPWEuUGhvKCJSZXBsaWNhdG9yREIiKTtyZXR1cm4hYS5teS5pbmRvbSgpfHxhLm15LnJvb3QoKS5oYXNDbGFzcygiaGlkZSIpfHx3aW5kb3cuZG9jdW1lbnQuaGlkZGVuP2YucmVzb2x2ZSgpLnByb21pc2UoKTpjdy5tZSgibmFtZSIpP2EuVGFza0xvb3BJbnRlcnZhbCE9YS5QaG8oIkNmZyIpLmxvb3BBY3RpdmVUYXNrcz8oYS5SZXN0YXJ0UG9sbC5kZWJvdW5jZSgxKSgpLGYucmVzb2x2ZSgpLnByb21pc2UoKSk6KGooKS50aGVuKGspLnRoZW4obCkuZmFpbChmdW5jdGlvbih4LGIsYyl7eD40MDAmJng8NjAwJiYhY3cubWUoIm5hbWUiKT9hLlRhc2tzPVtdOmNvbnNvbGUubG9nKHgsYixjKX0pLmFsd2F5cyhwLmRlYm91bmNlKDEpKSxmLnByb21pc2UoKSk6KGEuVGFza3M9W10scC5kZWJvdW5jZSgxKSgpLGYucHJvbWlzZSgpKTtmdW5jdGlvbiBqKCl7cmV0dXJuIGEuUmVxKHt1cmw6WyJfYWN0aXZlX3Rhc2tzIl19KS50aGVuKGZ1bmN0aW9uKGIpe3ZhciBjPWIuY29uY2F0KGEuVGFza01vY2t8fFtdKS5zb3J0QnkoInR5cGUiKTtjLmZvckVhY2gobSksYy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuX25ldz0hMCxhLmRvY19pZD94KCJkb2NfaWQiLGEsITApOmEucmVwbGljYXRpb25faWQ/eCgicmVwbGljYXRpb25faWQiLGEsITApOmEucGlkJiZ4KCJwaWQiLGEsITEpfSksYS5UYXNrcy5yZW1vdmUoZnVuY3Rpb24oeCl7cmV0dXJuIXguX25ldyYmIkVycm9yIiE9eC5waWQmJiJEb25lIiE9eC5waWR9KSxhLlRhc2tzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5fbmV3PSExfSl9KTtmdW5jdGlvbiB4KHgsYyxkKXt2YXIgZSxmO2NbeF0mJihkJiYoYy5fc2VsZWN0ZWQ9Yi50YXNrLnNlbGVjdGlvbi5pbmRleE9mKGMucmVwbGljYXRpb25faWQpPi0xKSwoZj1hLlRhc2tzLmZpbmRJbmRleChmdW5jdGlvbihhKXtyZXR1cm4gYVt4XT09Y1t4XX0pKT4tMT8oKGU9YS5UYXNrc1tmXSkuZmlsdGVyJiYoYy5maWx0ZXI9ZS5maWx0ZXIpLGUucGhvdG9uX3Rhc2smJihjLnBob3Rvbl90YXNrPWUucGhvdG9uX3Rhc2spLGUuX3R5cGUmJihjLl90eXBlPWUuX3R5cGUpLGEuVGFza3NbZl09Yyk6YS5UYXNrcy5wdXNoKGMpKX19ZnVuY3Rpb24gaygpe2lmKCEoaDwiMDAyLiIpKXt2YXIgeD0kLkRlZmVycmVkKCk7cmV0dXJuIGEuUmVxKHt1cmw6WyJfc2NoZWR1bGVyIiwiam9icyJdfSkudGhlbihmdW5jdGlvbih4KXsoKHh8fHt9KS5qb2JzfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYixjPXguaGlzdG9yeXx8W10sZD1jWzBdLGU9KGR8fHt9KS50eXBlOyF4LnBpZCYmeC5kb2NfaWQmJmMubGVuZ3RoJiYiY3Jhc2hlZCI9PWUmJigoYj1hLlRhc2tzLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuZG9jX2lkPT14LmRvY19pZH0pKSYmYS5UYXNrcy5yZW1vdmUoYiksYS5UYXNrcy5wdXNoKCQuZXh0ZW5kKG4oe19pZDp4LmRvY19pZCxzb3VyY2U6eC5zb3VyY2UsdGFyZ2V0OngudGFyZ2V0LGNvbnRpbnVvdXM6L2NvbnRpbnVvdXMkLy50ZXN0KHguaWQpLG93bmVyOngudXNlcnx8Ij8iLF9yZXBsaWNhdGlvbl9zdGF0ZToiZXJyb3IiLF9yZXBsaWNhdGlvbl9zdGF0ZV90aW1lOmQudGltZXN0YW1wLF9yZXBsaWNhdGlvbl9pZDp4LmlkLF9yZXBsaWNhdGlvbl9zdGF0ZV9yZWFzb246ZC5yZWFzb258fCJVbmtub3duIn0pLGImJmIucGhvdG9uX3Rhc2s/e3Bob3Rvbl90YXNrOmIucGhvdG9uX3Rhc2t9Ont9KSkpfSl9KS5hbHdheXMoZnVuY3Rpb24oKXt4LnJlc29sdmUoKX0pLHgucHJvbWlzZSgpfX1mdW5jdGlvbiBsKCl7aWYoIWEuUGhvKCJDZmciKS50YXNrc1JlYWRSZXBsaWNhdG9yfHxiLnRhc2suZmlsdGVyLmluZGV4T2YoImNvbXBhY3Rpb24iKT4tMSlyZXR1cm4gcCgpO3ZhciB4LGM9aTtyZXR1cm4oeD1iLnRhc2suc2VxP2EuUmVxKHt1cmw6W2MsIl9jaGFuZ2VzIix7aW5jbHVkZV9kb2NzOiEwLHNpbmNlOmIudGFzay5zZXF9XSxkYXRhVHlwZToianNvbiJ9KTphLlJlcSh7dXJsOltjLCJfYWxsX2RvY3MiLHtpbmNsdWRlX2RvY3M6ITAsdXBkYXRlX3NlcTohMH1dLGRhdGFUeXBlOiJqc29uIn0pKS50aGVuKGZ1bmN0aW9uKHgpe2IudGFzay5zZXE9eC5sYXN0X3NlcXx8eC51cGRhdGVfc2VxLCh4LnJvd3N8fHgucmVzdWx0cykuZm9yRWFjaChmdW5jdGlvbih4KXtpZih4LmRvYy5fZGVsZXRlZClyZXR1cm4gYS5UYXNrcy5yZW1vdmUoZnVuY3Rpb24oYSl7cmV0dXJuIGEuZG9jX2lkPT14LmRvYy5faWR9KSx2b2lkIDA7dmFyIGIsYz14LmRvYy5fcmVwbGljYXRpb25fc3RhdGU7ImVycm9yIj09YyYmKGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSksYS5UYXNrcy5wdXNoKG4oeC5kb2MpKSksImNvbXBsZXRlZCI9PWM/KGEuVGFza3MucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkseC5kb2MuX3JlcGxpY2F0aW9uX2lkfHwoeC5kb2MuX3JlcGxpY2F0aW9uX2lkPWN3LmxpYi5zZGJtKHguZG9jLl9pZCkpLGEuVGFza3MucHVzaChvKHguZG9jKSkpOiJjb21wbGV0ZWQiIT1jJiYoT2JqZWN0LmlzU3RyaW5nKHguZG9jLmZpbHRlcil8fE9iamVjdC5pc0FycmF5KHguZG9jLmRvY19pZHMpKSYmKGI9YS5UYXNrcy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkpJiYoYi5maWx0ZXI9eC5kb2MuZmlsdGVyfHx4LmRvYy5kb2NfaWRzKSx4LmRvYy5waG90b25fdGFzayYmKGI9YS5UYXNrcy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmRvY19pZD09eC5kb2MuX2lkfSkpJiYoYi5waG90b25fdGFzaz14LmRvYy5waG90b25fdGFzayl9KX0pLHh9ZnVuY3Rpb24gbSh4KXtpZigiZ3JvdXAiPT14Ll90eXBlKXJldHVybiB4O3ZhciBhPXgudHlwZSxiPW51bGw9PWE/IiI6YS5yZXBsYWNlKC9fL2csIiAiKS5yZXBsYWNlKC9kYXRhYmFzZS9naSwiREIiKS5yZXBsYWNlKC9jb21wYWN0aW9uL2dpLCJjb21wYWN0IikucmVwbGFjZSgvcmVwbGljYXRpb24vZ2ksIiIpO2I9KGI9Yi5jb21wYWN0KCkpP2IrIjoiOiIiLHguX3R5cGU9IiI7dmFyIGU9JzxkaXYgY2xhc3M9InRhcnJvdyI+ezF9PC9kaXY+JyxmPSc8c3BhbiBjbGFzcz0icmVkMSBmczk1Ij57MX08L3NwYW4+JyxoPSc8c3BhbiBjbGFzcz0iZ3JlZW4gZnM5NSI+ezF9PC9zcGFuPic7eC5faW5kZXg9SlNPTi5zdHJpbmdpZnkoT2JqZWN0LnJlamVjdCh4LC9eXy8pKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1siLFx7XH1cW1xdXS9nLCIgIikuY29tcGFjdCgpLnN0cmlwVGFncygpLCJFcnJvciI9PXgucGlkPyh4Ll9waWQ9Zi5hc3NpZ24oJzxzcGFuIGNsYXNzPSJmaS1hbGVydCByZWQxIGZzOTUiPjwvc3Bhbj4gRXJyb3InKSx4Ll9waWRzYWZlPXguX3JlYXNvbnx8IkVycm9yIixlPWYuYXNzaWduKGUpKToiRG9uZSI9PXgucGlkPyh4Ll9waWQ9aC5hc3NpZ24oIkRvbmUiKSx4Ll9waWRzYWZlPSJEb25lIixlPWguYXNzaWduKGUpKTooeC5fcGlkPSfigLk8c3BhbiBjbGFzcz0iZnM5NSI+Jyt4LnBpZC5yZXBsYWNlKC9bPD5dL2csIiIpKyI8L3NwYW4+4oC6Iix4Ll9waWRzYWZlPXMoeC5waWQpKSx4LmZpbHRlciYmT2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpJiYoeC5kb2NzPSEwKTt2YXIgaj14LnN0YXJ0ZWRfb247aWYoail7dmFyIGs9RGF0ZS5jcmVhdGUoMWUzKitqKTtrLmlzVGhpc1llYXIoKT9rLmlzVG9kYXkoKT94Ll9zdGFydD1rLmZvcm1hdCgie0h9OnttbX06e3NzfSIpOnguX3N0YXJ0PWsuZm9ybWF0KCJ7ZH0ge01vbn0sIHtIfTp7bW19Iik6eC5fc3RhcnQ9ay5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0iKX1lbHNlIHguX3N0YXJ0PSI/Pz8iO2lmKCJFcnJvciI9PXgucGlkP3guX3Byb2dyZXNzPSIiOiJEb25lIj09eC5waWQ/eC5fcHJvZ3Jlc3M9IjEwMCUiOnguX3Byb2dyZXNzPU9iamVjdC5pc051bWJlcih4LnByb2dyZXNzKT8oMHx4LnByb2dyZXNzLmNsYW1wKDAsMTAwKSkrIiUiOiIgIix4LnNvdXJjZSYmeC50YXJnZXQpe3ZhciBsPXguc291cmNlLG09eC50YXJnZXQsbj12KGwpLG89dihtKTt4LnBob3Rvbl90YXNrO3guX2dyb3VwPXIoeCk7dmFyIHA9eC5fZ3JvdXA/IjgtIit4Ll9ncm91cDoiIjtuLmVuZHNXaXRoKG8pP249bi50byhuLmxlbmd0aC1vLmxlbmd0aCkrIn4iOm8uZW5kc1dpdGgobikmJihvPW8udG8oby5sZW5ndGgtbi5sZW5ndGgpKyJ+IiksL1wvLy50ZXN0KG4pJiYhL1wvLy50ZXN0KG8pPyh4Ll9sZWZ0PXArKCJEb25lIj09eC5waWQ/IjctIjoiRXJyb3IiPT14LnBpZD8iMS0iOnguZG9jX2lkPyIyLSI6IjMtIikrbysiMi0iK24seC5fZGVzYz1kLmFzc2lnbih0KG8sMzApLHMobSkpK2UuYXNzaWduKHguZG9jcz9nWzVdOnguZmlsdGVyP2dbNF06Z1szXSkrZC5hc3NpZ24odChuLDMwKSxzKGwpKSk6KHguX2xlZnQ9cCsoIkRvbmUiPT14LnBpZD8iNy0iOiJFcnJvciI9PXgucGlkPyIxLSI6eC5kb2NfaWQ/IjItIjoiMy0iKStuKyIxLSIrbyx4Ll9kZXNjPWQuYXNzaWduKHQobiwzMCkscyhsKSkrZS5hc3NpZ24oeC5kb2NzP2dbMl06eC5maWx0ZXI/Z1sxXTpnWzBdKStkLmFzc2lnbih0KG8sMzApLHMobSkpKSx4LmRvY19pZCYmKHguX2Rlc2M9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiMnK2krIi8iK3MoeC5kb2NfaWQpKyciPicreC5fZGVzYysiPC9hPiIpfWVsc2UvY29tcGFjdGlvbi8udGVzdCh4LnR5cGUpPyh4Ll9kZXNjPWMuYXNzaWduKHUoeCw2MCkpLHguX2xlZnQ9IjktIit4LmRhdGFiYXNlLHguX2dyb3VwPXIoeCkpOiJpbmRleGVyIj09eC50eXBlPyh4Ll9kZXNjPWMuYXNzaWduKHUoeCwzMCkpLHguX2xlZnQ9IkktIit4Ll9kZXNjLHguX2dyb3VwPSLigI1JbmRleGVy4oCNIik6eC5fZGVzYz14Ll9waWQ7cmV0dXJuIHh9ZnVuY3Rpb24gbih4KXtyZXR1cm4gJC5leHRlbmQobyh4KSx7cGlkOiJFcnJvciIsX3JlYXNvbjpzKHguX3JlcGxpY2F0aW9uX3N0YXRlX3JlYXNvbnx8IkVycm9yIiksZG9jX2lkOnguX2lkLHByb2dyZXNzOjB9KX1mdW5jdGlvbiBvKHgpe3ZhciBhPURhdGUuY3JlYXRlKHguX3JlcGxpY2F0aW9uX3N0YXRlX3RpbWUpLnZhbHVlT2YoKS8xZTN8MDtyZXR1cm57cGlkOiJEb25lIixjb250aW51b3VzOnguY29udGludW91cyxyZXBsaWNhdGlvbl9pZDp4Ll9yZXBsaWNhdGlvbl9pZCxfc2VsZWN0ZWQ6Yi50YXNrLnNlbGVjdGlvbi5pbmRleE9mKHguX3JlcGxpY2F0aW9uX2lkKT4tMSxkb2NfaWQ6eC5faWQscHJvZ3Jlc3M6MTAwLHBob3Rvbl90YXNrOngucGhvdG9uX3Rhc2t8fCIiLHNvdXJjZTp4LnNvdXJjZSxmaWx0ZXI6eC5maWx0ZXJ8fHguZG9jX2lkc3x8bnVsbCx0YXJnZXQ6eC50YXJnZXQsc3RhcnRlZF9vbjphLHVwZGF0ZWRfb246YSx0eXBlOiJyZXBsaWNhdGlvbiJ9fWZ1bmN0aW9uIHAoKXt2YXIgYz1hLlRhc2tzLnNsaWNlKDApO2M9Yy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIG0oeCl9KS5zb3J0KGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguX2xlZnQ8YS5fbGVmdD8tMTp4Ll9sZWZ0PmEuX2xlZnQ/MTowfSk7dmFyIGQ9e307Yz0oYz1jLnJldmVyc2UoKSkucmVkdWNlKGZ1bmN0aW9uKHgsYSxlKXt4LnB1c2goYSk7dmFyIGYsZz1yKGEpLGg9Y1tlKzFdO2lmKCFnKXJldHVybiB4O2RbZ118fChkW2ddPXtydW46MCxkb25lOjAsZXJyOjAsc2VsOjB9KSwoZj1kW2ddKVsiRXJyb3IiPT1hLnBpZD8iZXJyIjoiRG9uZSI9PWEucGlkPyJkb25lIjoicnVuIl0rPTEsZi5zZWwrPWEuX3NlbGVjdGVkPzE6MDt2YXIgaT0iX18iK2N3LmxpYi5zZGJtKGcpO3JldHVybiBoJiZyKGgpPT1nfHx4LnB1c2goe3BpZDppLF9waWQ6IiIsY29udGludW91czohMSxyZXBsaWNhdGlvbl9pZDppLGRvY19pZDoiIixwaG90b25fdGFzazpnLHJlcGxpY2F0aW9uX2lkOi8oY29tcGFjdGlvbnxpbmRleGVyKSQvLnRlc3QoYS50eXBlKT8iIjoiX18iK2cuZXNjYXBlSFRNTCgpLGZpbHRlcjoiIix0YXJnZXQ6IiIsc3RhcnRlZF9vbjoiIix1cGRhdGVkX29uOiIiLF90eXBlOiJncm91cCIsX3NlbGVjdGVkOmYucnVuK2YuZG9uZStmLmVycj09Zi5zZWwsX3J1bjpmLnJ1bixfZ3JvdXA6ZyxfZm9sZDohIWIudGFzay5mb2xkW2ddLF9kZXNjOnMoZyksX3Byb2dyZXNzOnEoZil9KSx4fSxbXSksYS5UYXNrcy5sZW5ndGg9MCxjLnJldmVyc2UoKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe2EuVGFza3MucHVzaCh4KX0pLGIudGFzay5zZWxlY3Rpb24ubGVuZ3RoPTAsYS5UYXNrcy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guX3NlbGVjdGVkJiZiLnRhc2suc2VsZWN0aW9uLnB1c2goeC5yZXBsaWNhdGlvbl9pZCl9KSx4JiYoYS5teS5yZWNhbGMoIiN0YXNrLWxpc3QiKSxhLm15LmNoZWNrKCIjdGFzay1jb2xzIiksYS5teS5jaGVjaygiI3Rhc2stbGlzdCIpLGEubXkuY2hlY2soIiNidG4tc2VsZWN0LXRhc2tzIikpLGYucmVzb2x2ZShhLlRhc2tzKX1mdW5jdGlvbiBxKHgpe3ZhciBhPSIgdGFzay1yb3ctdGlwIjtyZXR1cm5beC5lcnI/ZS5hc3NpZ24oeC5lcnIsInJlZDEgYmctcmVkNiIrYSk6IiIseC5ydW4/ZS5hc3NpZ24oeC5ydW4sImdyYXkxIGJnLWdyYXk2IG84MCIrYSk6IiIseC5kb25lP2UuYXNzaWduKHguZG9uZSwiZ3JlZW4gYmctZ3JlZW42IithKToiIl0uY29tcGFjdCghMCkuam9pbigiICIpfWZ1bmN0aW9uIHIoeCl7cmV0dXJuL2NvbXBhY3Rpb24kLy50ZXN0KHgudHlwZSk/IuKAjURCIGNvbXBhY3Rpb27igI0iOiJpbmRleGVyIj09eC50eXBlPyLigI1JbmRleGVy4oCNIjp4LnBob3Rvbl90YXNrfHxhKHgudGFyZ2V0KXx8YSh4LnNvdXJjZSl8fCIiO2Z1bmN0aW9uIGEoeCl7aWYoIS9eaHR0cFtzXT86XC8vLnRlc3QoeCkpcmV0dXJuIiI7dmFyIGE9IiI7dHJ5eyJsb2NhbGhvc3QiIT0oYT1uZXcgVVJMKHgpLmhvc3RuYW1lKyIiKSYmIjEyNy4wLjAuMSIhPWF8fChhPSIiKX1jYXRjaCh4KXt9cmV0dXJuIGF9fWZ1bmN0aW9uIHMoeCl7cmV0dXJuKCgvXmh0dHBbc10/XDpcL1wvLy50ZXN0KHgpP3coeCk6eCkrIiIpLmVzY2FwZUhUTUwoKX1mdW5jdGlvbiB0KHgsYSl7dmFyIGI9YXx8MjA7aWYoIS9cLy8udGVzdCh4KSlyZXR1cm4gcygoeCsiIikudHJ1bmNhdGUoYiwibWlkZGxlIiwi4oCmIikpO3ZhciBjPXguc3BsaXQoIi8iKTtyZXR1cm4gY1swXS5sZW5ndGg+LjYqYj9zKGNbMF0udHJ1bmNhdGUoLjYqYnwwLCJtaWRkbGUiLCLigKYiKSkrIi8iK3MoYy5zbGljZSgxKS5qb2luKCIvIikpOnMoKHgrIiIpLnRydW5jYXRlKGIsIm1pZGRsZSIsIuKApiIpKX1mdW5jdGlvbiB1KHgsYSl7dmFyIGI9eC5kYXRhYmFzZXx8Ij8/IixjPXguZGVzaWduX2RvY3VtZW50fHwiIjtyZXR1cm4vc2hhcmRzXC9bMC05YS1mXXs4fS1bMC05YS1mXXs4fVwvLiskLy50ZXN0KGIpP3QoYi5zdWJzdHIoMjUpLnJlcGxhY2UoL1wuXGQrJC8sIiIpLGEpKyhjPyI6IF9kLyIrcyhjLnN1YnN0cig4KSk6IiIpK2QoYi5zdWJzdHIoNywxNykpOnQoYixhKSsoYz8iOiBfZC8iK3MoYy5zdWJzdHIoOCkpOiIiKTtmdW5jdGlvbiBkKHgpe3ZhciBhPXguc3BsaXQoIi0iKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHBhcnNlSW50KHgsMTYpfSksYj1NYXRoLnJvdW5kKGFbMV0tYVswXSsxKSxjPU1hdGgucm91bmQoYVswXS9iKzEpLGQ9TWF0aC5yb3VuZCg0Mjk0OTY3Mjk2L2IpO3JldHVybiBlLmFzc2lnbigiIFsiK2MrIi8iK2QrIl0iLCJmczk1IGdyYXkxIil9fWZ1bmN0aW9uIHYoeCl7aWYoIS9eaHR0cFtzXT86XC9cLy4rLy50ZXN0KHgpKXJldHVybiB4O3ZhciBhPW5ldyBVUkwoeCksYj0iMTI3LjAuMC4xIj09YS5ob3N0bmFtZXx8ImxvY2FsaG9zdCI9PWEuaG9zdG5hbWU/YS5wYXRobmFtZS5yZXBsYWNlKC9eXC98XC8kL2csIiIpOmEuaG9zdG5hbWUrYS5wYXRobmFtZS5yZXBsYWNlKC9cLyQvLCIiKTtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGIpfWZ1bmN0aW9uIHcoeCl7cmV0dXJuIHgucmVwbGFjZSgvXihodHRwW3NdP1w6XC9cL1teXDpAXC9dKzopW15AXSsoQC4rKSQvLCIkMeKAouKAouKAouKAouKAoiQyIil9fSxSZXN0YXJ0UG9sbDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5UYXNrTG9vcEludGVydmFsPXguUGhvKCJDZmciKS5sb29wQWN0aXZlVGFza3MseC5UYXNrTG9vcCYmKHguVGFza0xvb3AuY2FuY2VsKCkseC5HZXRUYXNrcyghMCkpLHguVGFza0xvb3A9eC5HZXRUYXNrcy5maWxsKCEwKS5ldmVyeSgxZTMqeC5UYXNrTG9vcEludGVydmFsKX0sUmVzdGFydFRhc2tzOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz10aGlzLGQ9Yy5kYXRhLGU9Yy5sYW5nLGY9JC5EZWZlcnJlZCgpLGc9KGF8fGMuZGF0YS50YXNrLnNlbGVjdGlvbikuZmlsdGVyKGMuTm9Hcm91cCkuc2xpY2UoMCksaD1jLlBobygiUmVwbGljYXRvckRCIiksaT1bXSxqPVtdLGs9Y3cubGliLmEybyhkLnRhc2subGlzdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmVwbGljYXRpb25faWR9KSk7Zz1nLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWtbeF19KTt2YXIgbD1jLlRhc2tzLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4gZy5pbmRleE9mKHgucmVwbGljYXRpb25faWQpPi0xJiZ4LmRvY19pZH0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5kb2NfaWR9KSxtPWMuVGFza3MuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiBnLmluZGV4T2YoeC5yZXBsaWNhdGlvbl9pZCk+LTEmJiF4LmRvY19pZH0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm57Y2FuY2VsOiEwLHJlcGxpY2F0aW9uX2lkOngucmVwbGljYXRpb25faWR9fSksbj17d2lkdGg6MzAwLG1hbmlmZXN0OmMuUGhvKCJDb25maXJtIiksZGF0YTp7dGV4dDpbJzxkaXYgY2xhc3M9ImZzMTMwICcrKHg/InJlZCI6Im9yYW5nZSIpKycgbWI1Ij4nLGVbeD8iVFhUX1RBU0tfU1RPUF9USVRMRSI6IlRYVF9UQVNLX1JFU1lOQ19USVRMRSJdLCI8L2Rpdj4iLGVbeD8iVFhUX1RBU0tfU1RPUF9XQVJOIjoiVFhUX1RBU0tfUkVTWU5DX1dBUk4iXShsLmxlbmd0aCxtLmxlbmd0aCxoKV0uam9pbigiIikseWVzY3NzOng/InJlZCI6Im9yYW5nZSIseWVzOmUuQlROX1RBU0tfUFJPQ0VFRCxubzplLkJUTl9DQU5DRUwsY2FuY2VsOiIiLHVzZUJ1dHRvbnM6ITB9LGNzczoibGgxNjAgeGdyYXkgcDIwIHBiMjUiLGVzYzohMCxlbnRlcjohMSxzY3JlZW46ITAsZ2xvYmFsOiEwfTtyZXR1cm4oYSYmYS5sZW5ndGgmJmwubGVuZ3RoPyQuRGVmZXJyZWQoKS5yZXNvbHZlKHtjbWQ6InllcyJ9KTp4PyQubXkubW9kYWwobik6KGI9Yy5Nb2RhbHMudGFza3M9Yy5teS5maW5kKCIjYnRuLXJlc3luYyIpKS5tb2RhbCgkLmV4dGVuZChuLHtyb290OmMubXkuZmluZCgiI3JwYW5lbCIpLHNjcmVlbjohMSxnbG9iYWw6ITEsY3NzOiJsaDE2MCB4Z3JheSBwMTUgcGIyMCIsYWxpZ246InRvcDoxMDIlO2xlZnQ6MDsiLG5vc2U6InRvcCIsZm9jdXM6IiNidG4teWVzIn0pKSkudGhlbihmdW5jdGlvbih4KXtpZigieWVzIiE9eC5jbWQpcmV0dXJuIGYucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIik7bygpfSkuZmFpbChmdW5jdGlvbigpe2YucmVqZWN0KDk5OSwiQ2FuY2VsbGVkIiwiQ2FuY2VsbGVkIil9KS5hbHdheXMoZnVuY3Rpb24oKXtjLk1vZGFscy50YXNrcz09YiYmKGMuTW9kYWxzLnRhc2tzPW51bGwpfSksZi5wcm9taXNlKCk7ZnVuY3Rpb24gbygpe3ZhciBhO2Z1bmN0aW9uIGIoeCl7cmV0dXJuIGMuUmVxKHt1cmw6W2gsIl9idWxrX2RvY3MiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7IlgtQ291Y2gtRnVsbC1Db21taXQiOiJ0cnVlIn0sZGF0YTpKU09OLnN0cmluZ2lmeSh7ZG9jczp4fSl9KX1sLmxlbmd0aCYmKGE9Yy5SZXEoe3VybDpbaCwiX2FsbF9kb2NzIix7aW5jbHVkZV9kb2NzOiEwLGF0dGFjaG1lbnRzOiEwfV0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh7a2V5czpsfSl9KS50aGVuKGZ1bmN0aW9uKHgpe3gucm93cy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPXguZG9jO2oucHVzaCh7X2lkOmEuX2lkLF9yZXY6YS5fcmV2LF9kZWxldGVkOiEwfSk7dmFyIGI9e19pZDphLl9pZH07YS5fYXR0YWNobWVudHMmJihiLl9hdHRhY2htZW50cz1hLl9hdHRhY2htZW50cyksJC5leHRlbmQoYixPYmplY3QucmVqZWN0KGEsL15fLykpLGkucHVzaChiKX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBiKGopfSkudGhlbihmdW5jdGlvbihhKXtpZih4KXJldHVybiBhO2N3LmxpYi5ub3RlKGMubGFuZy5NU0dfVEFTS19SRVNZTkMpO3ZhciBkPSQuRGVmZXJyZWQoKTtyZXR1cm4gZnVuY3Rpb24oKXtiKGkpLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGE9eC5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5vayYmIjEtIiE9KGEucmV2fHwiIikuc3Vic3RyKDAsMil8fHgucHVzaChhLmlkKSx4fSxbXSk7aWYoIWEubGVuZ3RoKXJldHVybiBkLnJlc29sdmUoeCk7dmFyIGM9Y3cubGliLmEybyhhKTtyZXR1cm4gYihpLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4hIWNbeC5faWRdfSkpLnRoZW4oZnVuY3Rpb24oeCl7ZC5yZXNvbHZlKHgpfSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtkLnJlamVjdCh4LGEsYil9KX0uZGVib3VuY2UoMWUzKSgpLGQucHJvbWlzZSgpfSkpLG0ubGVuZ3RoJiYobC5sZW5ndGg/YS50aGVuOmZ1bmN0aW9uKHgpe2E9eCgpfSkoZnVuY3Rpb24oKXt2YXIgeD0kLkRlZmVycmVkKCksYT1tLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gYy5SZXEoe3VybDpbIl9yZXBsaWNhdGUiXSxtZXRob2Q6IlBPU1QiLGRhdGFUeXBlOiJqc29uIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh4KX0pfSk7cmV0dXJuIFEuYWxsU2V0dGxlZChhKS50aGVuKGZ1bmN0aW9uKGEpe3gucmVzb2x2ZSgpfSxmdW5jdGlvbigpe3gucmVzb2x2ZSgpfSkseC5wcm9taXNlKCl9KSxhLnRoZW4oZnVuY3Rpb24oKXtjdy5saWIubm90ZShlW3g/Ik1TR19UQVNLX1NUT1AiOiJNU0dfVEFTS19SRVNZTkNfT0siXSwib2siKSwkLm15LnJhZGlvKCJkYmxpc3QiLFtoXSkseHx8JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpoLGNtZDoid3JpdGUiLGRvY3M6aS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguX2lkfSl9KSxmLnJlc29sdmUoaSl9KS5mYWlsKGZ1bmN0aW9uKGEsYixjKXtjdy5saWIubm90ZShlW3g/IkVSUl9UQVNLX1NUT1AiOiJFUlJfVEFTS19SRVNZTkMiXS5hc3NpZ24oYSsiOiAiK2IpLCJlcnJvciIpLGNvbnNvbGUubG9nKGEsYixjLCJVbnNhdmVkIHRhc2tzOiIsaSksZi5yZWplY3QoYSxiLGMpfSl9fSxUVGFzazpmdW5jdGlvbih4KXt2YXIgYT10aGlzLmRhdGEsYj0nPGRpdiBjbGFzcz0iY2ItdGFzay1yb3cgZGliIHZhdCBmczkwIj57MX08L2Rpdj4nO3JldHVybiBiPSgiRXJyb3IiIT14LnBpZHx8eC5kb2NfaWQpJiZ4LnJlcGxpY2F0aW9uX2lkP2IuYXNzaWduKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InRhc2stc2VsZWN0aW9uIiBjbGFzcz0iY3Agcm93LXNlbCBtbDIiIHZhbHVlPSJ7cmVwbGljYXRpb25faWR9IiAnKyh4Ll9zZWxlY3RlZD8iY2hlY2tlZD4iOiI+IikpOmIuYXNzaWduKCImbmJzcDsiKSwoImdyb3VwIiE9eC5fdHlwZT9bJzxkaXYgY2xhc3M9InZpZXctcm93IHBsMjcgcHI4Ij4nLGIsJzxkaXYgY2xhc3M9InRhc2tsYWJlbCBjcCBkaWIgdzIwcCBlbGwgZnM5NSBwdDEgZ3JheSB2YXQiIHRpdGxlPSJ7X3BpZHNhZmV9Ij57X3BpZH08L2Rpdj4nLCc8ZGl2IGNsYXNzPSJkaWIgdzcwcCBlbGwgcHIxMCB2YXQiPntfdHlwZX0ge19kZXNjfTwvZGl2PicsIkRvbmUiPT14LnBpZD9bJzxkaXYgY2xhc3M9ImRpYiB3MTBwIHZhdCB0YXIgZ3JheSBmczkwIj4nLCc8ZGl2IGNsYXNzPSJidG4tZG9uZS1yZXN0YXJ0IHAwIGRpYiB2YXQgdGFjIGJnLWdyYXk2IGdyYXkxIGJyMiBjcCIgJywnZGF0YS1pZD0ie3JlcGxpY2F0aW9uX2lkfSIgc3R5bGU9Im1pbi13aWR0aDo2MCUiIHRpdGxlPSJSZXN0YXJ0IHN5bmMiPicsJzxzcGFuIGNsYXNzPSJmaS1wbGF5Ij48L3NwYW4+JywiPC9kaXY+PC9kaXY+Il0uam9pbigiIik6Wyc8ZGl2IGNsYXNzPSJkaWIgdzEwcCB2YXQgdGFyIGdyYXkgcHQxIGZzOTAiPntfcHJvZ3Jlc3N9PC9kaXY+J10uam9pbigiIiksIjwvZGl2PiJdLmpvaW4oIiIpOlsnPGRpdiBjbGFzcz0idmlldy1yb3cgcGwyNyBwcjgiPicsYiwnPGRpdiBjbGFzcz0iZGliIHc4MHAgZWxsIHByMTAgdmF0IG84MCB0YXNrLWZvbGRncm91cCBjcCIgJywnZGF0YS1ncm91cD0ieycrKHgucmVwbGljYXRpb25faWQ/InJlcGxpY2F0aW9uX2lkIjoiX2dyb3VwIikrJ30iPicsJzxzcGFuIGNsYXNzPSJib2xkZXIiPntfZGVzY308L3NwYW4+JywnPHNwYW4gY2xhc3M9IicrKGEudGFzay5mb2xkW3gucGhvdG9uX3Rhc2tdPyJhcmlnaHQiOiJhZG93biIpKyciPjwvc3Bhbj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJkaWIgdzIwcCB2YXQgdGFyIGdyYXkgYm9sZGVyIGZzOTAiPntfcHJvZ3Jlc3N9PC9kaXY+JywiPC9kaXY+Il0uam9pbigiIikpLmFzc2lnbih4KX0scGFyYW1zOntzdHJpY3Q6ITB9fSwkbG9nOntpZDoiY3cuUGhvdG9uLiRsb2ciLGxhbmc6e30sZGF0YTp7c3JjOiJjb3VjaCIsc2VhcmNoOiIiLHNpemU6IjEwIixvZmZzZXQ6IjAiLGxpbmVzOiIiLGRpcjoicmV2ZXJzZSJ9LFByZXY6W10saGFzaDpmdW5jdGlvbigpe3JldHVybiJsb2cifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJMb2dzIn0sbWF0Y2g6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYXx8MSE9eC5sZW5ndGh8fCJfbG9nIiE9eFswXT9udWxsOnt0aXRsZToiTG9ncyJ9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7cmV0dXJuICQuZXh0ZW5kKGIsYS5QaG8oIkxzIikoIkxvZ3MiKXx8e30pLGEuUHJldj1bYi5zaXplLGIub2Zmc2V0XSxhLkdldCghMSwhMCkudGhlbihmdW5jdGlvbihiKXt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSxhLm5pY2VTY3JvbGwoeC5maW5kKCIjcmVwb3J0IikpfSl9LHVpOnsiI2xzaXplIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5zaXplPWlzTmFOKGEpfHwhYT8iMTAiOigwfCthKS5jbGFtcCgxLDUwMCkrIiIsdGhpcy5teS5maW5kKCIjbG9mZnNldCIpLmF0dHIoInN0ZXAiLHguc2l6ZSkpLHguc2l6ZX19LCIjbG9mZnNldCI6Im9mZnNldCIsIiNsb2ctc2VhcmNoIjp7ZGVsYXk6MTUwLGJpbmQ6InNlYXJjaCIsY3NzOnsibXktc2VhcmNoIjovXi57Mix9JC99fSwiI2xvZ2RpciI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfRElSKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5kaXI9YSsiIikseC5kaXJ9fSwiI2xvZy1wcm94eSI6e2RlbGF5OjMwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztbeC5zaXplLHgub2Zmc2V0LHguZGlyXSsiIiE9Yi5QcmV2KyIiJiZiLkdldCgpLnRoZW4oZnVuY3Rpb24oKXtiLm15LnJlY2FsYygiI2xvZ3MiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2IuUHJldj1beC5zaXplLHgub2Zmc2V0LHguZGlyXSxiLlBobygiTHMiKSgiTG9ncyIse3NpemU6eC5zaXplfSl9KX0sd2F0Y2g6WyIjbHNpemUiLCIjbG9mZnNldCIsIiNsb2dkaXIiXX0sIiNsb2dzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiO3JldHVybiB4LnNlYXJjaC5sZW5ndGg+MT8oYj1uZXcgUmVnRXhwKCIoIitSZWdFeHAuZXNjYXBlKHguc2VhcmNoKSsiKSIsImkiKSx4LmxpbmVzLmxpbmVzKCkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIlsiIT1hWzBdJiZ4Lmxlbmd0aD94W3gubGVuZ3RoLTFdKz0iXG4iK2E6eC5wdXNoKGEpLHh9LFtdKS5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIGIudGVzdCh4KX0pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXBsYWNlKGIsIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJsb2ctZm91bmQiPicpLnJlcGxhY2UoIu+/sCIsIjwvc3Bhbj4iKX0pLmpvaW4oIlxuIikpOngubGluZXMuZXNjYXBlSFRNTCgpfSx3YXRjaDpbIiNsb2ctc2VhcmNoIl19LCIjYnRuLXJlbG9hZCI6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2IuR2V0KCkudGhlbihmdW5jdGlvbigpe2IubXkucmVjYWxjKCIjbG9ncyIpfSl9fSwiI2J0bi1sb2ctbWludXMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHgub2Zmc2V0PSgreC5vZmZzZXQtK3guc2l6ZSkuY2xhbXAoMCwxZTEwKSsiIil9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuISt4Lm9mZnNldH19LHdhdGNoOiIjbG9mZnNldCIscmVjYWxjOiIjbG9mZnNldCJ9LCIjYnRuLWxvZy1wbHVzIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJih4Lm9mZnNldD0oK3gub2Zmc2V0KyAreC5zaXplKS5jbGFtcCgwLDFlMTApKyIiKX0sd2F0Y2g6IiNsb2Zmc2V0IixyZWNhbGM6IiNsb2Zmc2V0In19LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiNyZXBvcnQiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LEhUTUw6JzxkaXYgaWQ9ImEtaGVhZCIgY2xhc3M9ImFwcC1oZWFkIG53IHB0MTggcGwyMCBwcjIwIGxoMTYwIj48ZGl2IGNsYXNzPSJmciB3MTUwIGZzOTUiPjxkaXYgY2xhc3M9ImZpLW1hZ25pZnlpbmctZ2xhc3MgeGdyYXkgbzUwIGZzOTUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6ICsxOyBsZWZ0OiA4cHg7dG9wOiAwLjJlbTsiPjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibG9nLXNlYXJjaCIgY2xhc3M9InVpLXNlYXJjaCB3MTAwcCBtbDAgbXIwIG10MCBwcjEwIiBwbGFjZWhvbGRlcj0ie1BMQ19TRUFSQ0h9IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTpub25lO3BhZGRpbmctcmlnaHQ6MTlweCFpbXBvcnRhbnQ7Ij48c3BhbiBjbGFzcz0iZmkteCBmczgwIGRpYiB2YXQgcHQyIGJsdWUgdWktc2VhcmNoLWNsZWFyIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LTE5cHghaW1wb3J0YW50OyJvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im53IGRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi1yZWxvYWQiIGNsYXNzPSJ3NDAgbXI4IHZhdCIgdGl0bGU9IntQTENfUkVMT0FEfSI+PHNwYW4gY2xhc3M9ImZpLWxvb3AiPjwvc3Bhbj48L2J1dHRvbj48c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTUwIGxoMTMwIHhncmF5IG1yMzAgZGliIHZhdCI+e1RYVF9USVRMRX08L3NwYW4+IDxkaXYgY2xhc3M9ImRpYiB2YXQiPjxzcGFuPntUWFRfU0laRX08L3NwYW4+IDxpbnB1dCBpZD0ibHNpemUiIHR5cGU9Im51bWJlciIgY2xhc3M9Inc3MCIgbWluPSIxIiBtYXg9IjUwMCIgc3RlcD0iMSI+IDxzcGFuPntUWFRfS0J9LCB7VFhUX09GRlNFVH08L3NwYW4+IDxpbnB1dCBpZD0ibG9mZnNldCIgdHlwZT0ibnVtYmVyIiBjbGFzcz0idzEwMCIgbWluPSIwIiBtYXg9IjEwMDAwMDAiIHN0ZXA9IjEwIj4gPHNwYW4+e1RYVF9LQn08L3NwYW4+IDwvZGl2PjxzcGFuIGNsYXNzPSJidXR0b25zIG1sMTAiPjxidXR0b24gaWQ9ImJ0bi1sb2ctbWludXMiIGNsYXNzPSJ3NDAgbXIyIHBsMCBwcjAiPjxzcGFuIGNsYXNzPSJmaS1hcnJvdy1sZWZ0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi1sb2ctcGx1cyIgY2xhc3M9Inc0MCBtcjIgcGwwIHByMCI+PHNwYW4gY2xhc3M9ImZpLWFycm93LXJpZ2h0IG84MCI+PC9zcGFuPjwvYnV0dG9uPjwvc3Bhbj48c3BhbiBpZD0ibG9nZGlyIiBjbGFzcz0ibWwyMCI+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InBhbmVsaGVpZ2h0LTQgZmVhdGhlciBtdDQiPjxkaXYgaWQ9InJlcG9ydCIgY2xhc3M9InBsMjAgcHIyMCBwYW5lbGhlaWdodC00IHByZSI+PGRpdiBpZD0ibG9ncyIgY2xhc3M9ImZzOTAgbGgxNDAgcGIxMiBwdDgiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxvZy1wcm94eSIgY2xhc3M9ImhpZGUiPjwvZGl2Picsc3R5bGU6eyIgcHJlIjoid2hpdGUtc3BhY2U6IHByZS13cmFwOyIsIiAubG9nLWZvdW5kIjoiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyMzIsMTIxLDAuOTQpO2JvcmRlci1yYWRpdXM6MnB4OyJ9LEdldDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0xMDI0KnguZGF0YS5zaXplLGI9MTAyNCooeC5kYXRhLm9mZnNldHx8MCksYz1bIl9sb2ciLHtieXRlczphfSxiP3tvZmZzZXQ6Yn06bnVsbF0uY29tcGFjdCgpO3JldHVybiB4LlJlcSh7dXJsOmMsZGF0YVR5cGU6InRleHQifSkudGhlbihmdW5jdGlvbihhKXt2YXIgYj1hLmxpbmVzKCkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIlsiIT1hWzBdJiZ4Lmxlbmd0aD94W3gubGVuZ3RoLTFdKz0iXG4iK2E6eC5wdXNoKGEpLHh9LFtdKTsicmV2ZXJzZSI9PXguZGF0YS5kaXImJihiPWIucmV2ZXJzZSgpKSx4LmRhdGEubGluZXM9Yi5qb2luKCJcbiIpfSl9LHBhcmFtczp7c3RyaWN0OiEwfX0sJGRpZmY6e2lkOiJjdy5QaG90b24uJGRpZmYiLGxhbmc6e30scmVxdWlyZTpbeyJ3aW5kb3cuanNvbmRpZmZwYXRjaCI6ImxpYi9kaWZmLmpzIn1dLHBhcmFtczp7cmVzdHlsZToxMDAsc3RyaWN0OiEwfSxkYXRhOntpZDoiIixyZXY6WyIiLCIiXSxza2lwOlsiX3JldiIsImxvZyJdLGRvYzp7fSxjb25mbGljdHM6W10scmV2czpbXSxwYXJhbXM6W10sanNvbjpbe30se31dfSxoYXNoOmZ1bmN0aW9uKCl7cmV0dXJuImRpZmYifSx0aXRsZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMuZGF0YSxhPSJEaWZmICIrdGhpcy5kYXRhLmlkO3JldHVybiB4LnJldlswXSE9eC5yZXZbMV0mJihhKz0iLCB7MX1+ezJ9Ii5hc3NpZ24oeC5yZXZbMF0/eC5yZXZbMF0uc3BsaXQoIi0iKVswXToibGFzdCIseC5yZXZbMV0/eC5yZXZbMV0uc3BsaXQoIi0iKVswXToibGFzdCIpKSxhfSxtYXRjaDpmdW5jdGlvbih4LGEpe2lmKCEoeC5sZW5ndGg8MykmJmEmJiJfZGlmZiI9PXhbMV0pcmV0dXJuIl9kZXNpZ24iPT14WzJdJiZ4WzNdJiYoeFszXT14WzJdKyIvIit4WzNdLHgucmVtb3ZlQXQoMikpLHt0aXRsZToiRGlmZiAiK3RoaXMudHJ1bmMoeFsyXSwyMCksYXBwRGF0YTp7aWQ6eFsyXSxyZXY6Wyh4WzNdfHwiIikucmVwbGFjZSgvXlxEKy8sIiIpLCh4WzRdfHwiIikucmVwbGFjZSgvXlxEKy8sIiIpXSxwYXRoOnh9fX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3RyeXthLkRpZmY9anNvbmRpZmZwYXRjaC5jcmVhdGUoe29iamVjdEhhc2g6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNBcnJheSh4KSYmT2JqZWN0LmlzTnVtYmVyKHhbMF0pKXJldHVybiB4WzBdKyIiO2lmKE9iamVjdC5pc09iamVjdCh4KSl7aWYodm9pZCAwIT09eC5faWQpcmV0dXJuIHguX2lkKyIiO2lmKHZvaWQgMCE9PXguaWQpcmV0dXJuIHguaWQrIiI7aWYodm9pZCAwIT09eC5uYW1lKXJldHVybiB4Lm5hbWUrIiJ9cmV0dXJuIiQkaW5kZXg6IithfX0pfWNhdGNoKHgpe31yZXR1cm4gYi5wYXRoLmxlbmd0aD4zJiYoYi5yZXZbMF09KGIucGF0aFszXXx8IiIpLnJlcGxhY2UoL15cRCsvLCIiKSxiLnJldlsxXT0oYi5wYXRoWzRdfHwiIikucmVwbGFjZSgvXlxEKy8sIiIpKSx4LnRoZW4oZnVuY3Rpb24oYil7YS5uaWNlU2Nyb2xsKHguZmluZCgiI2RpZmYiKSl9KSxhLkdldERvYygpLnRoZW4oZnVuY3Rpb24oKXt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0pfSxSZXZzTGlzdDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5kYXRhO3guUGhvKCIkZG9jIikuUmV2c0xpc3QuY2FsbCh4LCIjZG9jLXJldjAiKSx4LlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoeCwiI2RvYy1yZXYxIil9LEdldFJldnM6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5kYXRhLGI9W107cmV0dXJuIGEucmV2WzBdP2EuanNvblswXS5fcmV2JiZhLnJldlswXT09YS5qc29uWzBdLl9yZXZ8fGIucHVzaCh4LlJlcSh7dXJsOlthLnBhdGhbMF0sYS5pZCx7cmV2OmEucmV2WzBdfV19KS50aGVuKGZ1bmN0aW9uKHgpe2EuanNvblswXT14fSkpOmEuanNvblswXT0kLmV4dGVuZCghMCx7fSxhLmRvYyksYS5yZXZbMV0/YS5qc29uWzFdLl9yZXYmJmEucmV2WzFdPT1hLmpzb25bMV0uX3Jldnx8Yi5wdXNoKHguUmVxKHt1cmw6W2EucGF0aFswXSxhLmlkLHtyZXY6YS5yZXZbMV19XX0pLnRoZW4oZnVuY3Rpb24oeCl7YS5qc29uWzFdPXh9KSk6YS5qc29uWzFdPSQuZXh0ZW5kKCEwLHt9LGEuZG9jKSxRLmFsbFNldHRsZWQoYil9LGRpZTpmdW5jdGlvbih4KXt2YXIgYT14LmZpbmQoIiNkaWZmIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSx1aTp7IiNkb2MtaWQiOntiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMucDJ1LGI9JzxhIGNsYXNzPSJ0ZG4iIGhyZWY9IiN7MX0iIHRpdGxlPSJ7M30iPnsyfTwvYT4nLmFzc2lnbihhKHgucGF0aFswXSksdGhpcy50cnVuYyh4LnBhdGhbMF0sMTUpLmVzY2FwZUhUTUwoKSx4LnBhdGhbMF0uZXNjYXBlSFRNTCgpKSxjPSc8YSBjbGFzcz0idGRuIiBocmVmPSIjezF9IiB0aXRsZT0iezN9Ij57Mn08L2E+Jy5hc3NpZ24oYSh4LnBhdGhbMF0pKyIvIithKHguaWQpKyh4LnJldlswXT8iL18iK3gucmV2WzBdOiIiKSx0aGlzLnRydW5jKHguaWQsMTUwKS5lc2NhcGVIVE1MKCkseC5pZC5lc2NhcGVIVE1MKCkpO3JldHVyblsnPHNwYW4gY2xhc3M9ImZzMTUwIGxoMTMwIHhncmF5IG10LTEgbzgwIj4nLCc8c3BhbiBjbGFzcz0ibzkwIj5EaWZmIDwvc3Bhbj4nLCc8c3BhbiBjbGFzcz0ibzgwIj57MX08L3NwYW4+4oCJL+KAiTxzcGFuIGNsYXNzPSIiPnsyfTwvc3Bhbj4nLCI8L3NwYW4+Il0uam9pbigiIikuYXNzaWduKGIsYyl9LHdhdGNoOlsiI2RvYy1yZXYwIl19LCIjcHJvcC1oaWRlIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2Euc2VsZWN0Mih4LHttdWx0aXBsZTohMCx0YWdzOlsiX3JldiIsImxvZyJdLHBsYWNlaG9sZGVyOmEubGFuZy5QTENfQkFOfSl9LGJpbmQ6InNraXAifSwiI2RvYy1yZXYwIjp7YmluZDoicmV2LjAiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoYSwiI2RvYy1yZXYwIil9fSwiI2RvYy1yZXYxIjp7YmluZDoicmV2LjEiLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLlBobygiJGRvYyIpLlJldnNMaXN0LmNhbGwoYSwiI2RvYy1yZXYxIil9fSwnaW5wdXRbbmFtZT0ic2V0dGluZ3MiXSc6InBhcmFtcyIsIiNkaWZmIjp7ZGVsYXk6MTAwLGJpbmQ6ZnVuY3Rpb24oeCl7dmFyIGEsYixjLGQ9dGhpcyxlPXguanNvbixmPXguc2tpcC5zbGljZSgwKS5jb25jYXQoWyJfY29uZmxpY3RzIiwiX3JldnNfaW5mbyJdKTtyZXR1cm4iIj09eC5yZXZbMF0mJiIiPT14LnJldlsxXXx8eC5yZXZbMF09PXgucmV2WzFdPyc8ZGl2IGNsYXNzPSJ0YWMgcDUwIGZzMTUwIG9yYW5nZSI+ezF9PC9kaXY+Jy5hc3NpZ24oZC5sYW5nLlRYVF9TRUxFQ1QpOihiPU9iamVjdC5yZWplY3QoZVswXSxmKSxjPU9iamVjdC5yZWplY3QoZVsxXSxmKSxudWxsPT0oYT1kLkRpZmYuZGlmZihiLGMpKT8nPGRpdiBjbGFzcz0idGFjIHA1MCBmczEyMCBncmVlbiI+ezF9PC9kaXY+Jy5hc3NpZ24oZC5sYW5nLlRYVF9OT0RJRkYpOigtMT09eC5wYXJhbXMuaW5kZXhPZigidW5jaGFuZ2VkIik/anNvbmRpZmZwYXRjaC5mb3JtYXR0ZXJzLmh0bWwuaGlkZVVuY2hhbmdlZCgpOmpzb25kaWZmcGF0Y2guZm9ybWF0dGVycy5odG1sLnNob3dVbmNoYW5nZWQoKSxqc29uZGlmZnBhdGNoLmZvcm1hdHRlcnMuaHRtbC5mb3JtYXQoYSxiKSkpfSx3YXRjaDpbJ2lucHV0W25hbWU9InNldHRpbmdzIl0nLCIjcHJvcC1oaWRlIl19LCIjZGlmZi1wcm94eSI6e2RlbGF5OjMwMCxiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7KCIiIT14LnJldlswXXx8IiIhPXgucmV2WzFdfHx4Lmpzb25bMF0uX3JldikmJmEuR2V0UmV2cygpLnRoZW4oZnVuY3Rpb24oKXthLm15LmNoZWNrKCIjZGlmZiIpfSk7eC5wYXRoLnNsaWNlKDApO3gucGF0aFszXT09Il8iK3gucmV2WzBdJiZ4LnBhdGhbNF09PSJfIit4LnJldlsxXXx8KHgucGF0aFszXT0iXyIreC5yZXZbMF0seC5wYXRoWzRdPSJfIit4LnJldlsxXSwkLm15LnJhZGlvKCJwYXRoY2hhbmdlIix7aWQ6eC50YWJpZCxwYXRoOngucGF0aCx0aXRsZTphLnRpdGxlKCl9KSl9LHdhdGNoOlsiI2RvYy1yZXYwIiwiI2RvYy1yZXYxIl19fSxIVE1MOic8ZGl2IGlkPSJhLWhlYWQiIGNsYXNzPSJhcHAtaGVhZCBudyBwdDE4IHBsMjAgcHIxMCBsaDE2MCI+PGRpdiBpZD0iZG9jLWlkIiBjbGFzcz0iZGliIHZhdCBudyBvaCBlbGwgbXIxMCI+PC9kaXY+PGRpdiBjbGFzcz0iZGliIHZhdCB3MTkwIG1yIj48aW5wdXQgaWQ9ImRvYy1yZXYwIiB0eXBlPSJ0ZXh0IiBjbGFzcz0idzEwMHAgZnMxMTAgdmF0Ij48L2Rpdj48ZGl2IGNsYXNzPSJkaWIgdmF0IG84MCB0YWMgdzMwIHB0MSI+dnM8L2Rpdj48ZGl2IGNsYXNzPSJkaWIgdmF0IHcxOTAiPjxpbnB1dCBpZD0iZG9jLXJldjEiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQiPjwvZGl2PjxkaXYgY2xhc3M9ImZyIj48ZGl2IGNsYXNzPSJkaWIgdmF0IHcyNTAgbWwxMCBtcjgiPjxkaXYgY2xhc3M9ImRpYiB2YXQgdzUwIHByNyB0YXIgcHQxIj57VFhUX0JBTn08L2Rpdj48ZGl2IGNsYXNzPSJ3MjAwIGRpYiB2YXQgZnM5MCI+PGlucHV0IGlkPSJwcm9wLWhpZGUiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQiPjwvZGl2PjwvZGl2PjxsYWJlbCBjbGFzcz0idzEyMCBkaWIgdmF0IHB0MSBsaDEyMCIgc3R5bGU9ImNvbG9yOmluaGVyaXQ7Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNldHRpbmdzIiB2YWx1ZT0idW5jaGFuZ2VkIiBjbGFzcz0iZnMxMDUiLz48c3BhbiBjbGFzcz0iZGliIHZhdCBwdDEgcGw3Ij57TEJMX1NSQ308L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1wYW5lbHMiIGNsYXNzPSJ3MTAwcCBwYW5lbGhlaWdodCBmZWF0aGVyIHBsMjAiPjxkaXYgaWQ9ImRpZmYiIGNsYXNzPSJqc29uZGlmZiB3MTAwcCBwYW5lbGhlaWdodCBwcjIwIHB0MTAgcGIxNiBsaDEzMCI+PC9kaXY+PC9zZWN0aW9uPjxkaXYgaWQ9ImRpZmYtcHJveHkiPjwvZGl2Picsc3R5bGU6eyIgI2RvYy1pZCI6Im1heC13aWR0aDpjYWxjKDEwMCUgLSA4MTBweCk7IG1pbi13aWR0aDoxNTBweDsiLCIgcHJlIjp7IiI6ImZvbnQtc2l6ZTppbmhlcml0OyBvdmVyZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBhdXRvOyB3b3JkLWJyZWFrOmF1dG87IiwiICI6ZnVuY3Rpb24oeCl7cmV0dXJuIm1heC13aWR0aDp7MX1weDsiLmFzc2lnbih4LndpZHRoKCktMjIwKX19LCIgLmpzb25kaWZmcGF0Y2gtZGVsdGEiOiJwYWRkaW5nLWxlZnQ6MDsgZm9udC1zaXplOmluaGVyaXQ7In0sR2V0RG9jOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYyxkPXRoaXMsZT1kLmRhdGEsZj17Y29uZmxpY3RzOiEwLHJldnNfaW5mbzohMH07cmV0dXJuIGQuQnVzeS5kZWJvdW5jZSgyMCkoITApLGI9W2UucGF0aFswXSxlLmlkLGZdLChjPWQuUmVxKGIpLnRoZW4oZnVuY3Rpb24oYil7ZS5kb2M9YixnKGUuZG9jKSxhJiZkLlJldnNMaXN0KCksZC5teS50cmlnZ2VyKCIjc3RhdGUtcHJveHkiLCJyZXNldHRhYmhhc2gubXkiKSx4JiZkLm15LnJlZHJhdygpfSkpLmFsd2F5cyhmdW5jdGlvbigpe2QuQnVzeSghMSl9LmRlYm91bmNlKDUwKSksYztmdW5jdGlvbiBnKHgpe09iamVjdC5pc0FycmF5KHguX3JldnNfaW5mbykmJih4Ll9yZXZzX2luZm89eC5fcmV2c19pbmZvLmZpbHRlcihmdW5jdGlvbih4KXtyZXR1cm4iYXZhaWxhYmxlIj09eC5zdGF0dXN9KSksZS5jb25mbGljdHM9eC5fY29uZmxpY3RzfHxbXSxlLnJldnM9KHguX3JldnNfaW5mb3x8W10pLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5yZXZ9KX19fSwkc3RhdHM6e2lkOiJjdy5Db3VjaC5Nb25pdG9yIixDb25maWc6e3N0YXRzTWF4VGltZWZyYW1lOjE4MDAsc2VyaWVNYXhMZW5ndGg6NGUzfSxkYXRhOntwcmVzZXRNb3VudGVkOiExLGRvYzp7bmFtZToiU3RhdHMifX0saGFzaDpmdW5jdGlvbigpe3JldHVybiJfc3RhdHMifSx0aXRsZTpmdW5jdGlvbigpe3JldHVybiJTdGF0cyJ9LG1hdGNoOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGF8fDEhPXgubGVuZ3RofHwiX3N0YXRzIiE9eFswXT9udWxsOnt0aXRsZToiU3RhdHMifX0sdWk6eyIjbm9kZXMiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0sbGlzdGVuOntwaG90b25fY2ZnX2NoYW5nZTpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5DZmcoKS5zdGF0c1JlZnJlc2ghPXguUGhvKCJDZmciKS5zdGF0c1JlZnJlc2gmJih4LkNmZygpLnN0YXRzUmVmcmVzaD14LlBobygiQ2ZnIikuc3RhdHNSZWZyZXNoLCQubXkucmFkaW8oImNvdWNoX21vbml0b3JfY2ZnX2NoYW5nZSIsT2JqZWN0LmNsb25lKHguQ2ZnKCkpKSl9LHVzZXJDdHg6ZnVuY3Rpb24oeCxhKXtPYmplY3QuaXNPYmplY3QoYSkmJiQubXkucmFkaW8oInJlbG9hZCIse2lkOngudGFiaWQscGF0aDp4LnBhdGh9KX19fSwiI2VuY3J5cHQiOntpbml0OmZ1bmN0aW9uKCl7fSxiaW5kOiJkdW1teSJ9LCIjbW5hbWUiOntiaW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ob3N0fSxjc3M6eyJib2xkZXIgZnMxODAiOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGZzMTcwOmZ1bmN0aW9uKCl7cmV0dXJuITB9fX19LGRpZTpmdW5jdGlvbih4KXt0aGlzLlRpbWVyLmNhbmNlbCgpO3ZhciBhPXguZmluZCgiI25vZGVzIikuZ2V0TmljZVNjcm9sbDsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYSgpLnJlbW92ZSgpfSxzdHlsZTp7IiAubm9jd21pbiI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiICNhcHAtc2VhcmNoIjoiZGlzcGxheTpub25lIWltcG9ydGFudDsiLCIgI25vZGUtdGlsZXMiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14LndpZHRoKCksYz0oYS5QaG8oIk1lbWJlcnNoaXAiKS5jbHVzdGVyX25vZGVzfHxbMV0pLmxlbmd0aCxkPSIiO3JldHVybiEhYS5kYXRhLnByZXNldE1vdW50ZWQmJih4LmZpbmQoImRpdiNwcmltZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnRyaWdnZXIoInJlY2FsYyIsITApfSkseC5maW5kKCJkaXYjeWF4aXMiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJyZWNhbGMiKX0pKSxhLkNmZygpLnN0YXRzU2NhbGVZPWM+KGI8PTE0MDA/Mjo0KT8xLjE6MS41LChjPjN8fGM+MSYmYj4xNDAwKSYmKGQ9eyIgLm5ub2RlIjoid2lkdGg6Y2FsYyg1MCUgLSAxNnB4KTsgZGlzcGxheTppbmxpbmUtYmxvY2s7In0pLGR9fSxBdXRvU2F2ZU5vZGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuTHMsYz0kLmV4dGVuZCghMCx7fSx4KSxkPWEuQ2ZnKCkuc2VyaWVNYXhMZW5ndGg7ZnVuY3Rpb24gZSh4KXtyZXR1cm4geC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIDA9PXg/IiI6eC50b1N0cmluZygzNil9KS5qb2luKCIgIil9YS5QaG8oIl9jb21waWxlZCIpJiYoWyJnYXVnZXMiLCJzZXJpZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBhPWNbeF07YSYmYS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3gucm93cz14LnJvd3MubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4LnRvKGQpfSkubWFwKGUpLHgudGltZT1lKHgudGltZS50byh4LnJvd3MubGVuZ3RoPjE/ZDoxMCkpfSl9KSxiKCJTdGF0cy5ub2RlLiIrYy5uYW1lLE9iamVjdC5yZWplY3QoYyxbInVybCIsImNvdWNoIiwibmFtZXMiLCJjb2xvcnMiLCJ1bml0cyJdKSkpfSxNb3VudDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9KHh8fGEubXkucm9vdCgpKS53aWR0aCgpLGQ9ISFiLnByZXNldE1vdW50ZWQsZT1hLlBobygiQ291Y2giKS52ZXIsZj1hLmRlZmF1bHROb2Rlc1tlPj0iMDAyLiI/IjIueCI6IjEueCJdO2lmKE1hdGgubG9nMTA9TWF0aC5sb2cxMHx8ZnVuY3Rpb24oeCl7cmV0dXJuIE1hdGgubG9nKHgpKk1hdGguTE9HMTBFfSwhZCl7aWYoYS5DZmcoKS5zdGF0c1JlZnJlc2g9YS5QaG8oIkNmZyIpLnN0YXRzUmVmcmVzaCxlPj0iMDAyLiIpe2IuZG9jLm5vZGVzPShhLlBobygiTWVtYmVyc2hpcCIpLmNsdXN0ZXJfbm9kZXN8fFtdKS5tYXAoZnVuY3Rpb24oeCl7dmFyIGE9T2JqZWN0LmNsb25lKGYsITApO3JldHVybiBhLm5hbWU9eCxhLnVybD0iL19ub2RlL3sxfS8iLmFzc2lnbihlbmNvZGVVUklDb21wb25lbnQoeCkpLGF9KTt2YXIgZz1iLmRvYy5ub2Rlcy5sZW5ndGg7YS5DZmcoKS5zdGF0c1NjYWxlWT1nPihjPD0xNDAwPzI6NCk/MS4xOjEuNX1lbHNlIGIuZG9jLm5vZGVzPVskLmV4dGVuZCghMCx7fSxmKV0sYS5DZmcoKS5zdGF0c1NjYWxlWT0xLjU7YS5Mcz1hLlBobygiTHMiKTt2YXIgaD1hLkNmZygpLnNlcmllTWF4TGVuZ3RoPTRlMy9iLmRvYy5ub2Rlcy5sZW5ndGh8MDthLlBobygiX2NvbXBpbGVkIikmJmIuZG9jLm5vZGVzLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9YS5McygiU3RhdHMubm9kZS4iK3gubmFtZSk7YiYmKFsiZ2F1Z2VzIiwic2VyaWVzIl0uZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT1iW3hdO2EmJmEuZm9yRWFjaChmdW5jdGlvbih4KXt4LnRpbWU9aSh4LnRpbWUpLnRvKGgpLHgucm93cz14LnJvd3MubWFwKGkpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50byhoKX0pfSl9KSwkLmV4dGVuZCghMCx4LGIpKX0pLGIucHJlc2V0TW91bnRlZD0hMH1yZXR1cm4gYi5kb2Mubm9kZXM7ZnVuY3Rpb24gaSh4KXtyZXR1cm4geC5zcGxpdCgiICIpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gcGFyc2VJbnQoeHx8IjAiLDM2KX0pfX0scGFyYW1zOntzdHJpY3Q6ITB9fSxUYWI6e2lkOiJjdy5QaG90b24uVGFiIixsYW5nOnt9LGRhdGE6e2lkOiIiLG5hbWU6IiIsdHlwZToiIixoYXNoMDoiIixoYXNoMToiIixhY3RpdmU6ITEscGF0aDpbXSxlcnJvcjohMSxydW46ITF9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sdWk6eyIjbC10YWJuYW1lIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcztyZXR1cm4gYy5teS5maW5kKCJhI2wtdGFibmFtZSIpLmF0dHIoImhyZWYiLCIjIitjLnAydSh4LnBhdGh8fFtdKS5qb2luKCIvIikpLmF0dHIoInRpdGxlIix4LnBhdGguam9pbigiLyIpKS50b2dnbGVDbGFzcygic3lzdGVtIiwheC5wYXRoWzBdfHwvXihfYWJvdXR8X3N0YXRzfF9jb25maWd8X2xvZykkLy50ZXN0KHgucGF0aFswXSkpLGMubXkucm9vdCgpLnRvZ2dsZUNsYXNzKCJhY3RpdmUiLCEheC5hY3RpdmUpLHgubmFtZS5lc2NhcGVIVE1MKCl9LGNzczp7c21hbGxlcjpmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lLmxlbmd0aD4yMH19LGV2ZW50czoiY2xpY2subXkifSwiI2wtdGFic3RhdGUiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguZXJyb3ImJnguaGFzaDA9PXguaGFzaDF9LHJlZDpmdW5jdGlvbih4KXtyZXR1cm4hIXguZXJyb3J9fSx3YXRjaDoiI2wtdGFibmFtZSJ9LCIjYnRuLXRhYmNsb3NlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkudHJpZ2dlcigiI2J0bi10YWJjbG9zZSIsInRhYmNsb3NlIix4LmlkKX0sZXZlbnRzOiJjbGljay5teSJ9LCIjdGFiLXByb3h5Ijp7YmluZDpmdW5jdGlvbigpe30sbGlzdGVuOnthcHBidXN5OmZ1bmN0aW9uKHgsYSl7T2JqZWN0LmlzT2JqZWN0KGEpJiZhLmlkPT14LmlkJiZ0aGlzLm15LnJvb3QoKS50b2dnbGVDbGFzcygidGFiLWJ1c3kiLCEhYS5idXN5KX0scGF0aGNoYW5nZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSl7dmFyIGI9dGhpcyxjPWEucGF0aC5zbGljZSgwKTtpZihhLmlkIT14LmlkKXtpZihjLmpvaW4oIu+/vSIpIT14LnBhdGguam9pbigi77+9IikpcmV0dXJuO3guaGFzaDA9PXguaGFzaDEmJmIuUGhvKCJDbG9zZSIpKHt0YWJpZDp4LmlkLGVuZm9yY2U6ITB9KX1lbHNlIHgucGF0aD1jLHgubmFtZT1hLnRpdGxlfHx4Lm5hbWUsYi5QaG8oIl9jb21waWxlZCIpJiZ4LmFjdGl2ZSYmd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoIiMiK2IucDJ1KGMpLmpvaW4oIi8iKSksYi5teS5jaGVjaygiI2wtdGFibmFtZSIpfX0scmVsb2FkOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpJiZhLmlkPT14LmlkKXt2YXIgYj10aGlzLGM9YS5wYXRoLnNsaWNlKDApLGQ9JCgiI2wtYXBwcz4jYXBwLSIrYS5pZCk7ZC5sZW5ndGgmJmQuaXMoIi5teS1mb3JtIikmJihkLm15KCJyZW1vdmUiKSxkLnJlbW92ZSgpLHgucnVuPSExLHguZXJyb3I9ITEseC5oYXNoMD14Lmhhc2gxPSIiLHguYWN0aXZlJiZiLlBobygiU3dpdGNoIikoYykpfX19fX0sSFRNTDonPGEgaHJlZj0iIiBpZD0ibC10YWJuYW1lIiBvbmF1eGNsaWNrPSIkKHRoaXMpLnBhcmVudCgpLmZpbmQoXCcjYnRuLXRhYmNsb3NlXCcpLmNsaWNrKCk7cmV0dXJuIGZhbHNlOyI+PC9hPjxkaXYgaWQ9ImwtdGFic3RhdGUiIGNsYXNzPSJsLXRhYm1hcmsiPuKAojwvZGl2PjxkaXYgaWQ9ImJ0bi10YWJjbG9zZSIgY2xhc3M9ImwtdGFibWFyayIgdGl0bGU9IntCVE5fQ0xPU0VUQUJ9Ij7inJU8L2Rpdj48ZGl2IGlkPSJ0YWItcHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLHBhcmFtczp7c3RyaWN0OiEwfX0sQ29uZmlybTp7aWQ6ImN3LlBob3Rvbi5Db25maXJtIixwYXJhbXM6e2RlbGF5OjUsc3RyaWN0OiEwfSxkYXRhOntjbWQ6IiIsdGV4dDoiIixjc3M6InhncmF5Iix5ZXM6IlllcyIsbm86Ik5vIixjYW5jZWw6IkNhbmNlbCIseWVzY3NzOiJncmVlbiIsbm9jc3M6IiIsdXNlQnV0dG9uczohMX0saW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMuZGF0YTt4LmZvcm1nZW4oWyc8ZGl2IGNsYXNzPSInK2IuY3NzKyciPicrYi50ZXh0KyI8L2Rpdj4iLHtsYWJlbDoiNzBweCIscm93OmEucGFyYW1zLndpZHRoKyJweCIscm93Q3NzOiJteS1yb3cgbXQxNSBwdDE1IG1iLTUgeGdyYXkgYnRkIn0sWyIiLCJzcG4jYnRuLXllcy5idXR0b24uIisoYi55ZXNjc3M/Yi55ZXNjc3MrIi4iOiIiKSsibXI1ICAiLHt0eHQ6Yi55ZXMrIiJ9LCJzcG4jYnRuLW5vLmJ1dHRvbi4iKyhiLm5vY3NzP2Iubm9jc3MrIi4iOiIiKSsibXI1LmhpZGUiLHt0eHQ6Yi5ubysiIn0sInNwbiNidG4tY2FuY2VsLmJ1dHRvbi5mci5oaWRlIix7dHh0OmIuY2FuY2VsKyIifV0ubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBiLnVzZUJ1dHRvbnMmJiJzdHJpbmciPT10eXBlb2YgeCYmeD94LnJlcGxhY2UoL15zcG4jKC4rKSQvLCJidXQjJDEubWFya2ZvY3VzIik6eH0pXSl9LHVpOnsiI2J0bi15ZXMiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtudWxsIT1hJiYoeC5jbWQ9InllcyIsYi50cmlnZ2VyKCJjb21taXQiKSl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgueWVzfX19LCIjYnRuLW5vIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHguY21kPSJubyIsYi50cmlnZ2VyKCJjb21taXQiKSl9LGV2ZW50czoiY2xpY2subXkiLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgubm99fX0sIiNidG4tY2FuY2VsIjp7YmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHguY21kPSJjYW5jZWwiLGIudHJpZ2dlcigiY2FuY2VsIikpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmNhbmNlbH19fX0sc3R5bGU6eyIiOiJmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MjJweDsifX0sSW5kZXhFZDp7aWQ6ImN3LlBob3Rvbi5JbmRleEVkIixpbmhlcml0OlsiUlQiXSxwYXJhbXM6e3Jlc3R5bGU6NTAsc3RyaWN0OiEwfSxsYW5nOnt9LHJlcXVpcmU6W3sid2luZG93LkNvZGVNaXJyb3IiOiJsaWIvY29kZW1pcnJvci5qcyJ9XSxIVE1MOic8ZGl2IGNsYXNzPSJiZy1wZ3JheSBsaDE2MCBwdDIgeGdyYXkgbncgb2ggZWxsIHhwYW5lbCI+PGRpdiBjbGFzcz0iZnM5MCBmciBwdDEgdGFyIj48c3BhbiBpZD0idmlldy1taS1tb2RlIiBjbGFzcz0ibXQwIj48L3NwYW4+PHNwYW4gaWQ9ImJ0bi12aWV3LW1pLWNsb3NlIiBjbGFzcz0icHI5IHBsOCBtbDYgcHNldWRvbGluayB0ZG4iIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpOyIgdGl0bGU9IntCVE5fUEFORUxfQ0xPU0V9Ij7inJU8L3NwYW4+PC9kaXY+PGRpdiBpZD0idmlldy1taS1uYW1lIiBjbGFzcz0iYm9sZGVyIHBsOCBvaCBudyBlbGwiPjwvZGl2PjwvZGl2PjxzZWN0aW9uIGlkPSJ2aWV3LW1pLXByb3h5IiBjbGFzcz0iYmJzIHBsMSBwcjEiPjx0ZXh0YXJlYSBpZD0idmlldy1taS1lZCIgY2xhc3M9IncxMDBwIj48L3RleHRhcmVhPjwvc2VjdGlvbj48c2VjdGlvbiBpZD0idmlldy1lZC1idXR0b25zIiBjbGFzcz0ibncgcDgiIHN0eWxlPSIiPjxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4tdmlldy1taS1yZXZlcnQiIGNsYXNzPSJvcmFuZ2UgaGlkZSIgdGl0bGU9IntUSVBfUkVWRVJUfSI+PHNwYW4gY2xhc3M9ImZpLXJlZnJlc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUkVWRVJUfcKgPC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWktZGVsIiBjbGFzcz0icmVkIGhpZGUgbWwyIiB0aXRsZT0ie1RJUF9ERUx9Ij48c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fREVMfTwvYnV0dG9uPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi12aWV3LW1pLXJ1biIgY2xhc3M9Im1yMiBncmVlbiIgZGlzYWJsZWQgdGl0bGU9IntUSVBfUlVOfSI+PHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUlVOfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1pLXNhdmVhcyIgY2xhc3M9Im1yMiIgdGl0bGU9IntUSVBfU0FWRUFTfSI+PHNwYW4gY2xhc3M9ImZpLXNhdmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fU0FWRUFTfTwvYnV0dG9uPjwvc2VjdGlvbj4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKX0sZGF0YTp7ZGRvYzoiIixuYW1lOiIiLHR5cGU6ImluZGV4Iixtb2RlOlsiamF2YXNjcmlwdCJdLHRleHQ6IiIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6MCxyZXY6IiJ9LHVpOnsiI3ZpZXctbWktZWQiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEubW9kZSsiIjtDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmIsbGluZU51bWJlcnM6ITEsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiEwLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Impzb24iPT1iLGV4dHJhS2V5czp7IkN0cmwtUiI6ZnVuY3Rpb24oKXthLlNhdmVJbmRleCgpfSwiQ21kLVIiOmZ1bmN0aW9uKCl7YS5TYXZlSW5kZXgoKX19fSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj14Lm1vZGUrIiI7cmV0dXJuIG51bGwhPWEmJiJqc29uIiE9YiYmKHgudGV4dD1hKSwianNvbiI9PWI/SlNPTi5zdHJpbmdpZnkoeC5qc29uLG51bGwsIlx0Iik6eC50ZXh0fX0sIiN2aWV3LW1pLXByb3h5Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGRlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPU9iamVjdC5pc09iamVjdCxkPU9iamVjdC5pc0FycmF5LGU9eC50ZXh0LGY9bnVsbDt4LmVycm9ycz1bXSxudWxsIT0oZj1iLlJUKCJqc2V2YWwiKSgiKCIrZSsiKSIpKSYmYyhmKT9jKGYuaW5kZXgpJiZkKGYuaW5kZXguZmllbGRzKT9mLnR5cGUmJiJqc29uIiE9PWYudHlwZSYmeC5lcnJvcnMucHVzaChiLmxhbmcuRVJSX05PX1RZUEUpOnguZXJyb3JzLnB1c2goYi5sYW5nLkVSUl9OT19JTkRFWCk6eC5lcnJvcnMucHVzaChiLmxhbmcuRVJSX05PX0pTT04pLHguanNvbj14LmVycm9ycy5sZW5ndGg/e306Zn0sd2F0Y2g6WyIjdmlldy1taS1lZCJdLGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH19fSwiI3ZpZXctbWktbW9kZSI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfTU9ERSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGw9PWEpcmV0dXJuIHgubW9kZTt4Lm1vZGU9YTt2YXIgYz1iLm15LmZpbmQoIiN2aWV3LW1pLWVkIikubmV4dCgpWzBdLkNvZGVNaXJyb3I7cmV0dXJuIGMuc2V0T3B0aW9uKCJtb2RlIixhKyIiKSxjLnNldE9wdGlvbigicmVhZE9ubHkiLCJqc29uIj09YSsiIiksYi5teS5yZWNhbGMoIiN2aWV3LW1pLWVkIiksYX19LCIjdmlldy1taS1uYW1lIjp7ZGVsYXk6NTAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlJUKCJkYXRhIik7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD94LmVycm9yc1swXS5lc2NhcGVIVE1MKCk6eC5kZG9jLnNwbGl0KCIvIilbMV0/Yi5sYW5nLlRYVF9USVRMRS5hc3NpZ24oeC5uYW1lLmVzY2FwZUhUTUwoKSwnPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfS97Mn0iPl9kL3szfTwvYT4nLmFzc2lnbihjLnBhdGhbMF0seC5kZG9jLHguZGRvYy5mcm9tKDgpLmVzY2FwZUhUTUwoKSkpOiJEZWZhdWx0IE1hbmdvIGluZGV4In0sY3NzOntyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfSxib2xkZXI6ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PXguZXJyb3JzLmxlbmd0aH19LHdhdGNoOlsiI3ZpZXctbWktcHJveHkiXX0sIiNidG4tdmlldy1taS1jbG9zZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzLlJUO2IoImRhdGEiKS5lZGl0b3I9ITEsYigic3Rhc2hWaWV3U3RhdGUiKSgpLGIoIm15IikuY2hlY2soIiNidG4tdmlld2NvZGUiKSxiKCJteSIpLnJlc3R5bGUuZGVsYXkoNTApfX19LCIjYnRuLXZpZXctbWktcnVuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz0iX2lkeC8iK3guZGRvYy5mcm9tKDgpKyLvv70iK3gubmFtZSxkPWIuUlQoWyJWaSIsYywidmlldyJdKXx8e3NvdXJjZTpiLlJUKCJEZWZhdWx0TWFuZ29JZHgiKS50ZXh0fSxlPWIubGFuZyxmPSc8c3BhbiBjbGFzcz0iZmktcGxheSBmczk1IG82MCI+PC9zcGFuPsKgJyxnPXgudGV4dCE9KGQuc291cmNlfHwiIik7cmV0dXJuIG51bGwhPWEmJmcmJiJfZGVzaWduLyIhPXguZGRvYyYmYi5TYXZlSW5kZXgoKSxmK2UuQlROX1JVTn0sZGVsYXk6NTAsY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigiX2Rlc2lnbi8iPT14LmRkb2N8fHguZXJyb3JzLmxlbmd0aHx8eC5qc29uLmRkb2MmJnguanNvbi5kZG9jIT14LmRkb2MuZnJvbSg4KXx8eC5qc29uLm5hbWUmJnguanNvbi5uYW1lIT14Lm5hbWUpcmV0dXJuITA7dmFyIGE9dGhpcyxiPSJfaWR4LyIreC5kZG9jLmZyb20oOCkrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7c291cmNlOmEuUlQoIkRlZmF1bHRNYW5nb0lkeCIpLnRleHR9O3JldHVybiB4LnRleHQ9PShjLnNvdXJjZXx8IiIpfX0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdfSwiI2J0bi12aWV3LW1pLXJldmVydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Il9pZHgvIit4LmRkb2MuZnJvbSg4KSsi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHtzb3VyY2U6Yi5SVCgiRGVmYXVsdE1hbmdvSWR4IikudGV4dH07bnVsbCE9YSYmKHgudGV4dD1kLnNvdXJjZSl9LGRlbGF5OjUwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPSJfaWR4LyIreC5kZG9jLmZyb20oOCkrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7c291cmNlOmEuUlQoIkRlZmF1bHRNYW5nb0lkeCIpLnRleHR9O3JldHVybiB4LnRleHQ9PWMuc291cmNlfX0scmVjYWxjOlsiI3ZpZXctbWktZWQiXSx3YXRjaDpbIiN2aWV3LW1pLXByb3h5Il19LCIjYnRuLXZpZXctbWktZGVsIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLmxhbmc7JC5teS5tb2RhbCh7ZGF0YTp7eWVzOmMuQlROX0RFTF9ZRVMseWVzY3NzOiJyZWQiLG5vOmMuQlROX0RFTF9OTyxjYW5jZWw6IiIsdGV4dDpjLk1TR19ERUxfVEVYVC5hc3NpZ24oeC5uYW1lLmVzY2FwZUhUTUwoKSx4LmRkb2MuZnJvbSg4KS5lc2NhcGVIVE1MKCkpfSxtYW5pZmVzdDpiLlBobygiQ29uZmlybSIpLGVzYzohMCxnbG9iYWw6ITAsc2NyZWVuOiEwfSkudGhlbihmdW5jdGlvbih4KXsieWVzIj09eC5jbWQmJmIuRGVsSW5kZXgoKX0pfX0sZGVsYXk6MjAsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtpZigheC5kZG9jLmZyb20oOCkpcmV0dXJuITB9fSx3YXRjaDpbIiN2aWV3LW1pLXByb3h5Il19LCIjYnRuLXZpZXctbWktc2F2ZWFzIjp7Y3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1taS1wcm94eSJdLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXM7aWYobnVsbCE9YSlyZXR1cm4gYi5kYXRhKCJtb2RhbCIpPyhiLm1vZGFsKCEwKSx2b2lkIDApOigkLm15Lm1vZGFsKHtkYXRhOiQuZXh0ZW5kKCEwLHt9LGMuUlQoWyJkYXRhIiwibWFuZ28iXSkpLG1hbmlmZXN0OntkYXRhOiQuZXh0ZW5kKCEwLHtfdmFsaWQ6ITAsZGRvYzoiIn0sIl9kZXNpZ24vIiE9eC5kZG9jP3g6T2JqZWN0LnJlamVjdCh4LFsiZGRvYyIsIm5hbWUiXSksT2JqZWN0LnNlbGVjdCh4Lmpzb24sWyJkZG9jIiwibmFtZSJdKSksTmFtZToiIixpbml0OmZ1bmN0aW9uKHgpe3RoaXMuZGF0YTt4Lmh0bWwoJC5teS5mb3JtZ2VuKFt7cm93OiIxMDAlIixsYWJlbDoiOTBweCIsbGFiZWxDc3M6Im15LWxhYmVsIGZzOTAgbzgwIixyb3dDc3M6Im15LXJvdyBwdDgifSwnPGRpdiBjbGFzcz0ibWI4Ij4nLCc8ZGl2IGlkPSJmdGl0bGUiIGNsYXNzPSJ4Z3JheSBtYi04Ij57VFhUX05FV308L2Rpdj4nLFsie0xCTF9ERE9DfSIsImlucCNtZGRvYy53MTAwcCIse3BsYzoie1BMQ19ERE9DfSJ9LCJtc2ciXSxbIntMQkxfTkVXfSIsImlucCNtdmlldy53MTAwcCIse3BsYzoie1BMQ19ORVd9In0sIm1zZyJdLCc8ZGl2IGlkPSJmd2FybiIgY2xhc3M9InhncmF5IHB0MTIgaGlkZSI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxNiBwdDcgYnRkIGZzOTUiPicsWyIiLCJidG4jYnRuLW5ldy1vay5ncmVlbi5tcjIiLHt2YWw6IntCVE5fTkVXX09LfSJ9LCJidG4jYnRuLW5ldy1jYW5jZWwiLHt2YWw6IntCVE5fTkVXX0NBTkNFTH0ifV0sIjwvZGl2PiJdKS5hc3NpZ24oYy5sYW5nKSl9LHVpOnsiI21kZG9jIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHguZGRvYzt4LmRkb2M9YX19LCIjbXZpZXciOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5uYW1lO3gubmFtZT1hfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhP2EuaW5kZXhPZigiLyIpPi0xP2MubGFuZy5FUlJfTkVXX1NMQVNIOnZvaWQgMDpjLmxhbmcuRVJSX05FV19SRVF9fSwiI2Z3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPSJfZGVzaWduLyIreC5kZG9jLnJlcGxhY2UoL15fZGVzaWduXC8vLCIiKTtyZXR1cm4gYy5SVChbIkRkb2NzIixiXSk/Yy5SVChbIkRkb2NzIixiLCJ2aWV3cyIseC5uYW1lXSk/Yy5sYW5nLkVYUF9FWElTVDpjLmxhbmcuRVhQX05WSUVXOmMubGFuZy5FWFBfTkRET0N9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe2lmKHguX3ZhbGlkPXRoaXMubXkudmFsaWQoKSwheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LW9rIjp7ZGVsYXk6MzAsYmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjJweDsifX0sY3NzOiJwMTUiLGdsb2JhbDohMCxzY3JlZW46ITAsd2lkdGg6NDAwLGVzYzohMCxmb2N1czoiI212aWV3IixlbnRlcjohMCxib3VuZDowfSkudGhlbihmdW5jdGlvbihhKXtpZighYS5fdmFsaWQpcmV0dXJuIGN3LmxpYi5ub3RlKGMubGFuZy5FUlJfTk9fTkFNRSwiZXJyb3IiKSx2b2lkIDA7dmFyIGI9eC5qc29uO2EuZGRvYyYmKGIuZGRvYz1hLmRkb2MucmVwbGFjZSgvXl9kZXNpZ25cLy8sIiIpKSxiLmRkb2N8fChiLmRkb2M9ImluZGV4XyIrTnVtYmVyLnJhbmRvbSg0NjY1NiwxNjc5NjE1KS50b1N0cmluZygzNikpLGEubmFtZSYmKGIubmFtZT1hLm5hbWUpLGMuU2F2ZUluZGV4KGIpfSksdm9pZCAwKX0sZXZlbnRzOiJjbGljay5teSJ9fSxzdHlsZTp7IiAuQ29kZU1pcnJvciI6ImZvbnQtc2l6ZTo4MCUhaW1wb3J0YW50O3BhZGRpbmc6MHB4O21pbi1oZWlnaHQ6MzAwcHg7IiwiIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1pbi1oZWlnaHQ6MzAwcHg7IiwiICN2aWV3LW1pLXByb3h5IjpmdW5jdGlvbih4KXtyZXR1cm4ibWF4LWhlaWdodDoiKyh4LnBhcmVudCgpLmhlaWdodCgpLTQ4LTMyKSsicHg7In0sIiAjdmlldy1taS1wcm94eS5yZWQgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjAwLCAyMDAsIDAuNzUpOyIsIiAjYnRuLXZpZXctbWktZGVsIjoiZGlzcGxheTpub25lOyIsIiAjYnRuLXZpZXctbWktcmV2ZXJ0LmhpZGUgKyAjYnRuLXZpZXctbWktZGVsIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7In0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI3ZpZXctbWktcHJveHkiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LFNhdmVJbmRleDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD0oYXx8Yy5uYW1lLGIuUlQoWyJkYXRhIiwicGF0aCJdKSk7Yi5SVChbImRhdGEiLCJ0YWJpZCJdKTtpZihjLmVycm9ycy5sZW5ndGgpcmV0dXJuIGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfRVJSRE9DLmFzc2lnbihjLmVycm9yc1swXSksImVycm9yIiksJC5EZWZlcnJlZCgpLnJlamVjdChjLmVycm9yc1swXSk7dmFyIGU9JC5leHRlbmQoITAse30seHx8Yy5qc29uKTtyZXR1cm4gZS5kZG9jfHwoZS5kZG9jPWMuZGRvYy5mcm9tKDgpKSxlLm5hbWV8fChlLm5hbWU9Yy5uYW1lKSxlLmRkb2M/KGIuUlQoIkJ1c3kiKSghMCksYi5SZXEoe3VybDpbZFswXSwiX2luZGV4Il0sbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShlKSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfU0FWRUQuYXNzaWduKGUuZGRvYysiLiIrZS5uYW1lKSwib2siKSwkLm15LnJhZGlvKCJkYnVwZGF0ZSIse2RiOmRbMF0sY21kOiJ3cml0ZSIsZG9jczpbYy5kZG9jXX0pLGMuZGRvYy5mcm9tKDgpPT1lLmRkb2MmJmMubmFtZT09ZS5uYW1lPyhiLm15LmNoZWNrKCIjYnRuLXZpZXctbWktcmV2ZXJ0IiksYi5teS5jaGVjaygiI2J0bi12aWV3LW1pLXJ1biIpKTooYi5SVCgiZGF0YSIpLnZpZXc9Il9pZHgvIitlLmRkb2MrIu+/vSIrZS5uYW1lLGIuUlQoIm15IikudHJpZ2dlcigiI2J0bi1yZWxvYWQiLCJjbGljay5teSIpKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0ZBSUwuYXNzaWduKGUuZGRvYysiLiIrZS5uYW1lLHgsYSksImVycm9yIil9KS5hbHdheXMoYi5SVCgiQnVzeSIpLmZpbGwoITEpKSk6KGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfTk9fTkFNRV9SVU4sImVycm9yIiksJC5EZWZlcnJlZCgpLnJlamVjdChiLmxhbmcuRVJSX05PX05BTUVfUlVOKSl9LERlbEluZGV4OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPXh8fGMuZGRvYyxlPWF8fGMubmFtZSxmPWIuUlQoWyJkYXRhIiwicGF0aCJdKTtiLlJUKFsiZGF0YSIsInRhYmlkIl0pO3JldHVybiBiLlJUKCJCdXN5IikoITApLGIuUmVxKHt1cmw6W2ZbMF0sIl9pbmRleCIsZCwianNvbiIsZV0sbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfREVMX09LLmFzc2lnbihkKyIuIitlKSwib2siKSxiLlJUKCJkYXRhIikudmlldz0iIixiLlJUKCJkYXRhIikuZWRpdG9yPSExLGIuUlQoKS5Sb3dzPVtdLGIuUlQoIm15IikucmVjYWxjKCIjdmlldy1uYW1lIiksYi5SVCgibXkiKS5jaGVjaygiI3ZpZXctbmFtZSIpLGZ1bmN0aW9uKCl7JC5teS5yYWRpbygiZGJ1cGRhdGUiLHtkYjpmWzBdLGNtZDoid3JpdGUiLGRvY3M6W2RdfSl9LmRlYm91bmNlKDEwMCkoKX0pLmZhaWwoZnVuY3Rpb24oeCxhKXtjdy5saWIubm90ZShiLmxhbmcuTVNHX0RFTF9GQUlMLmFzc2lnbihkKyIuIitlLHgsYSksImVycm9yIil9KS5hbHdheXMoYi5SVCgiQnVzeSIpLmZpbGwoITEpKX19LFZpZXdFZDp7aWQ6ImN3LlBob3Rvbi5WaWV3RWQiLGluaGVyaXQ6WyJSVCJdLHBhcmFtczp7cmVzdHlsZTo1MCxzdHJpY3Q6ITB9LGxhbmc6e30scmVxdWlyZTpbeyJ3aW5kb3cuQ29kZU1pcnJvciI6ImxpYi9jb2RlbWlycm9yLmpzIn1dLEhUTUw6JzxkaXYgY2xhc3M9ImJnLXBncmF5IGxoMTYwIHB0MiB4Z3JheSBudyBvaCBlbGwgeHBhbmVsIj48ZGl2IGNsYXNzPSJmczkwIGZyIHB0MSB0YXIiPjxzcGFuIGlkPSJ2aWV3LW1yLW1vZGUiIGNsYXNzPSJtdDAiPjwvc3Bhbj48c3BhbiBpZD0iYnRuLXZpZXctbXItY2xvc2UiIGNsYXNzPSJwcjkgcGw4IG1sNiBwc2V1ZG9saW5rIHRkbiIgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7IiB0aXRsZT0ie0JUTl9QQU5FTF9DTE9TRX0iPuKclTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ2aWV3LW1yLW5hbWUiIGNsYXNzPSJib2xkZXIgcGw4IG9oIG53IGVsbCI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gaWQ9InZpZXctbXItcHJveHkiIGNsYXNzPSJiYnMgcGwxIHByMSI+PHRleHRhcmVhIGlkPSJ2aWV3LW1yLWVkIiBjbGFzcz0idzEwMHAiPjwvdGV4dGFyZWE+PC9zZWN0aW9uPjxzZWN0aW9uIGlkPSJ2aWV3LWVkLWJ1dHRvbnMiIGNsYXNzPSJudyBwOCIgc3R5bGU9IiI+PGRpdiBjbGFzcz0iZnIiPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1yLXJldmVydCIgY2xhc3M9Im9yYW5nZSBoaWRlIiB0aXRsZT0ie1RJUF9SRVZFUlR9Ij48c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9SRVZFUlR9wqA8L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tci1kZWwiIGNsYXNzPSJyZWQgaGlkZSBtbDIiIHRpdGxlPSJ7VElQX0RFTH0iPjxzcGFuIGNsYXNzPSJmaS10cmFzaCBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9ERUx9PC9idXR0b24+PC9kaXY+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbXItcnVuIiBjbGFzcz0ibXIyIGdyZWVuIiBkaXNhYmxlZCB0aXRsZT0ie1RJUF9SVU59Ij48c3BhbiBjbGFzcz0iZmktcGxheSBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9SVU59PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbXItc2F2ZWFzIiBjbGFzcz0ibXIyIiB0aXRsZT0ie1RJUF9TQVZFQVN9Ij48c3BhbiBjbGFzcz0iZmktc2F2ZSBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9TQVZFQVN9PC9idXR0b24+PC9zZWN0aW9uPicsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpfSxkYXRhOntkZG9jOiIiLG5hbWU6IiIsdHlwZToidmlldyIsbW9kZTpbIm1hcCJdLG1hcDoiIixyZWR1Y2U6IiIsanNvbjp7fSxlcnJvcnM6W10sc3RhbXA6MCxyZXY6IiJ9LHVpOnsiI3ZpZXctbXItZWQiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1iLm1vZGUrIiI7Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoeFswXSx7bW9kZToianNvbiI9PWM/YzpiLmxhbmd1YWdlfHwiamF2YXNjcmlwdCIsbGluZU51bWJlcnM6ITAsdmlld3BvcnRNYXJnaW46MTAwLHNjcm9sbGJhclN0eWxlOm51bGwsbGluZVdyYXBwaW5nOiExLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Impzb24iPT1jLGV4dHJhS2V5czp7IkN0cmwtUiI6ZnVuY3Rpb24oKXthLlNhdmVEZG9jKCl9LCJDbWQtUiI6ZnVuY3Rpb24oKXthLlNhdmVEZG9jKCl9fX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9eC5tb2RlKyIiO3JldHVybiBudWxsIT1hJiYianNvbiIhPWImJih4W2JdPWEpLCJqc29uIj09Yj9KU09OLnN0cmluZ2lmeSh4Lmpzb24sbnVsbCwiXHQiKTp4W2JdfX0sIiN2aWV3LW1yLXByb3h5Ijp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLm5pY2VTY3JvbGwoeCl9LGRlbGF5OjIwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPU9iamVjdC5pc0Z1bmN0aW9uLGQ9T2JqZWN0LmlzU3RyaW5nKHgubGFuZ3VhZ2UpP3gubGFuZ3VhZ2U6ImphdmFzY3JpcHQiLGU9eC5tYXAsZj14LnJlZHVjZXx8IiIsZz1udWxsLGg9L14oJSVbXlxyXG5dKltcclxuXSspKltcclxuXHNcdF0qZnVuW1xyXG5cc1x0XSpcKFtcclxuXHNcdF0qXHs/LyxpPS9cLltcclxuXHNcdF0qJC8saj1bIl9zdW0iLCJfY291bnQiLCJfbWluIiwiX21heCIsIl9zdGF0cyIsIl9zdW1zcXIiXSxrPXguZXJyb3JzPVtdOyJqYXZhc2NyaXB0Ij09ZD8obnVsbCE9KGc9Yi5SVCgianNldmFsIikoIigiK2UrIikiKSkmJmMoZyl8fGsucHVzaChiLmxhbmcuRVJSX05PX01BUCksZiYmIl8iIT1mWzBdJiYoZz1udWxsLG51bGwhPShnPWIuUlQoImpzZXZhbCIpKCIoIitmKyIpIikpJiZjKGcpfHxrLnB1c2goYi5sYW5nLkVSUl9OT19SRURVQ0UpKSwiXyI9PWZbMF0mJi0xPT1qLmluZGV4T2YoZi50cmltKCkpJiZrLnB1c2goYi5sYW5nLkVSUl9GX0JVSUxUSU4pKToiZXJsYW5nIj09ZCYmKGgudGVzdChlKSYmaS50ZXN0KGUpfHxrLnB1c2goYi5sYW5nLkVSUl9OT19NQVApLCJfIj09ZlswXSYmLTE9PWouaW5kZXhPZihmLnRyaW0oKSk/ay5wdXNoKGIubGFuZy5FUlJfRl9CVUlMVElOKTohZnx8Il8iPT1mWzBdfHxoLnRlc3QoZikmJmkudGVzdChmKXx8ay5wdXNoKGIubGFuZy5FUlJfTk9fUkVEVUNFKSkseC5qc29uPXt9LHguZXJyb3JzLmxlbmd0aHx8KGUudHJpbSgpJiYoeC5qc29uLm1hcD1lKSxmLnRyaW0oKSYmKHguanNvbi5yZWR1Y2U9ZikpfSx3YXRjaDpbIiN2aWV3LW1yLWVkIl0sY3NzOntyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfX19LCIjdmlldy1tci1tb2RlIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19NT0RFKX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4geC5tb2RlO3gubW9kZT1hO3ZhciBjPWIubXkuZmluZCgiI3ZpZXctbXItZWQiKS5uZXh0KClbMF0uQ29kZU1pcnJvcjtyZXR1cm4gYy5zZXRPcHRpb24oIm1vZGUiLCJqc29uIj09YSsiIj8ianNvbiI6eC5sYW5ndWFnZSksYy5zZXRPcHRpb24oInJlYWRPbmx5IiwianNvbiI9PWErIiIpLGIubXkucmVjYWxjKCIjdmlldy1tci1lZCIpLGF9fSwiI3ZpZXctbXItbmFtZSI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuUlQoImRhdGEiKSxjPWEuZGF0YTt4Lm9uKCJjbGljay5teSIsImEiLGZ1bmN0aW9uKCl7dmFyIHg9YS5QaG8oIkVkIikuanNvbnRyZWUuTHMoKSxkPSJ2aWV3c3RhdGUuIitjdy5saWIuc2RibShiLnBhdGhbMF0rIi8iK2MuZGRvYyksZT0oeChkKXx8e3N0YXRlOltdfSkuc3RhdGV8fFtdO2U9ZS5jb25jYXQoW2N3LmxpYi5zZGJtKCJSb2904p2Admlld3MiKSxjdy5saWIuc2RibSgiUm9vdOKdgHZpZXdz4p2AIitjLm5hbWUpXSkudW5pcXVlKCkseChkLHtzdGFtcDpEYXRlLm5vdygpLHN0YXRlOmV9KX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuUlQoImRhdGEiKTtyZXR1cm4geC5lcnJvcnMubGVuZ3RoP3guZXJyb3JzWzBdLmVzY2FwZUhUTUwoKTpiLmxhbmcuVFhUX1RJVExFW3gubGFuZ3VhZ2VdLmFzc2lnbignPGEgY2xhc3M9InRkbiIgaHJlZj0iI3sxfS97Mn0iPl9kL3szfTwvYT4nLmFzc2lnbihjLnBhdGhbMF0seC5kZG9jLHguZGRvYy5mcm9tKDgpLmVzY2FwZUhUTUwoKSkseC5uYW1lLmVzY2FwZUhUTUwoKSl9LGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH0sYm9sZGVyOmZ1bmN0aW9uKHgpe3JldHVybiAwPT14LmVycm9ycy5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItY2xvc2UiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcy5SVDtiKCJkYXRhIikuZWRpdG9yPSExLGIoInN0YXNoVmlld1N0YXRlIikoKSxiKCJteSIpLmNoZWNrKCIjYnRuLXZpZXdjb2RlIiksYigibXkiKS5yZXN0eWxlLmRlbGF5KDUwKX19fSwiI2J0bi12aWV3LW1yLXJ1biI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9eC5kZG9jKyLvv70iK3gubmFtZSxkPWIuUlQoWyJWaSIsYywidmlldyJdKXx8e30sZT1iLmxhbmcsZj0nPHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoCcsZz14Lm1hcCE9KGQubWFwfHwiIil8fHgucmVkdWNlIT0oZC5yZWR1Y2V8fCIiKTtyZXR1cm4gbnVsbCE9YSYmZz9iLlNhdmVEZG9jKCk6bnVsbCE9YSYmYi5SVCgiR2V0VmlldyIpKCEwKSxmK2UuQlROX1NBVkV9LGRlbGF5OjUwLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7aWYoeC5lcnJvcnMubGVuZ3RoKXJldHVybiEwO3ZhciBhPXRoaXMsYj14LmRkb2MrIu+/vSIreC5uYW1lLGM9YS5SVChbIlZpIixiLCJ2aWV3Il0pfHx7fTthLmxhbmc7cmV0dXJuISh4Lm1hcCE9KGMubWFwfHwiIil8fHgucmVkdWNlIT0oYy5yZWR1Y2V8fCIiKSl9LCJzZWxmOmdyZWVuIjpmdW5jdGlvbih4KXtpZih4LmVycm9ycy5sZW5ndGgpcmV0dXJuITE7dmFyIGE9dGhpcyxiPXguZGRvYysi77+9Iit4Lm5hbWUsYz1hLlJUKFsiVmkiLGIsInZpZXciXSl8fHt9O3JldHVybiB4Lm1hcCE9KGMubWFwfHwiIil8fHgucmVkdWNlIT0oYy5yZWR1Y2V8fCIiKX19LHdhdGNoOlsiI3ZpZXctbXItcHJveHkiXX0sIiNidG4tdmlldy1tci1yZXZlcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPXguZGRvYysi77+9Iit4Lm5hbWUsZD1iLlJUKFsiVmkiLGMsInZpZXciXSl8fHt9O251bGwhPWEmJih4Lm1hcD1kLm1hcHx8IiIseC5yZWR1Y2U9ZC5yZWR1Y2V8fCIiKX0sZGVsYXk6NTAsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9eC5kZG9jKyLvv70iK3gubmFtZSxjPWEuUlQoWyJWaSIsYiwidmlldyJdKXx8e307cmV0dXJuIHgubWFwPT0oYy5tYXB8fCIiKSYmeC5yZWR1Y2U9PShjLnJlZHVjZXx8IiIpfX0scmVjYWxjOlsiI3ZpZXctbXItZWQiXSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItZGVsIjp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXMsYz1iLmxhbmc7JC5teS5tb2RhbCh7ZGF0YTp7eWVzOmMuQlROX0RFTF9ZRVMseWVzY3NzOiJyZWQiLG5vOmMuQlROX0RFTF9OTyxjYW5jZWw6IiIsdGV4dDpjLk1TR19ERUxfVEVYVC5hc3NpZ24oeC5uYW1lLmVzY2FwZUhUTUwoKSx4LmRkb2MuZXNjYXBlSFRNTCgpKX0sbWFuaWZlc3Q6Yi5QaG8oIkNvbmZpcm0iKSxlc2M6ITAsZ2xvYmFsOiEwLHNjcmVlbjohMH0pLnRoZW4oZnVuY3Rpb24oeCl7InllcyI9PXguY21kJiZiLkRlbFZpZXcoKX0pfX0sZGVsYXk6MjAsY3NzOnsic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtpZigheC5kZG9jLmZyb20oOCkpcmV0dXJuITB9fSx3YXRjaDpbIiN2aWV3LW1yLXByb3h5Il19LCIjYnRuLXZpZXctbXItc2F2ZWFzIjp7Y3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiEheC5lcnJvcnMubGVuZ3RofX0sd2F0Y2g6WyIjdmlldy1tci1wcm94eSJdLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPXRoaXMsZD14O2lmKG51bGwhPWEpcmV0dXJuIGIuZGF0YSgibW9kYWwiKT8oYi5tb2RhbCghMCksdm9pZCAwKTooJC5teS5tb2RhbCh7ZGF0YTokLmV4dGVuZCghMCx7fSxjLlJUKFsiZGF0YSIsIm1hbmdvIl0pKSxtYW5pZmVzdDp7ZGF0YTokLmV4dGVuZCghMCx7X3ZhbGlkOiEwfSx4KSxOYW1lOiIiLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5kYXRhO3guaHRtbCgkLm15LmZvcm1nZW4oW3tyb3c6IjEwMCUiLGxhYmVsOiI5MHB4IixsYWJlbENzczoibXktbGFiZWwgZnM5MCBvODAiLHJvd0NzczoibXktcm93IHB0OCJ9LCc8ZGl2IGNsYXNzPSJtYjgiPicsJzxkaXYgaWQ9ImZ0aXRsZSIgY2xhc3M9InhncmF5IG1iLTgiPntUWFRfTkVXfTwvZGl2PicsWyJ7TEJMX0RET0N9IiwiaW5wI21kZG9jLncxMDBwIix7cGxjOiJ7UExDX0RET0N9In0sIm1zZyJdLFsie0xCTF9ORVd9IiwiaW5wI212aWV3LncxMDBwIix7cGxjOiJ7UExDX05FV30ifSwibXNnIl0sJzxkaXYgaWQ9ImZ3YXJuIiBjbGFzcz0ieGdyYXkgcHQxMiBoaWRlIj48L2Rpdj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJtdDE2IHB0NyBidGQgZnM5NSI+JyxbIiIsImJ0biNidG4tbmV3LW9rLmdyZWVuLm1yMiIse3ZhbDoie0JUTl9ORVdfT0t9In0sImJ0biNidG4tbmV3LWNhbmNlbCIse3ZhbDoie0JUTl9ORVdfQ0FOQ0VMfSJ9XSwiPC9kaXY+Il0pLmFzc2lnbihjLmxhbmcpKX0sdWk6eyIjbWRkb2MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5kZG9jO3guZGRvYz1hfX0sIiNtdmlldyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB4Lm5hbWU7eC5uYW1lPWF9LGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIGE/YS5pbmRleE9mKCIvIik+LTE/Yy5sYW5nLkVSUl9ORVdfU0xBU0g6dm9pZCAwOmMubGFuZy5FUlJfTkVXX1JFUX19LCIjZndhcm4iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9Il9kZXNpZ24vIiE9eC5kZG9jLnRvKDgpPyJfZGVzaWduLyIreC5kZG9jOnguZGRvYztyZXR1cm4gYy5SVChbIkRkb2NzIixiXSk/Yy5SVChbIkRkb2NzIixiLCJ2aWV3cyIseC5uYW1lXSk/Yy5sYW5nLkVYUF9FWElTVDpjLmxhbmcuRVhQX05WSUVXOmMubGFuZy5FWFBfTkRET0N9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe2lmKHguX3ZhbGlkPXRoaXMubXkudmFsaWQoKSwheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LW9rIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY29tbWl0KCl9LHdhdGNoOlsiI21kZG9jIiwiI212aWV3Il0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtpZigheC5fdmFsaWQpcmV0dXJuITB9fX0sIiNidG4tbmV3LWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjJweDsifX0sY3NzOiJwMTUiLGdsb2JhbDohMCxzY3JlZW46ITAsd2lkdGg6NDAwLGVzYzohMCxmb2N1czoiI212aWV3IixlbnRlcjohMCxib3VuZDowfSkudGhlbihmdW5jdGlvbihhKXtpZighYS5fdmFsaWQpcmV0dXJuIGN3LmxpYi5ub3RlKGMubGFuZy5FUlJfTk9fTkFNRSwiZXJyb3IiKSx2b2lkIDA7YS5kZG9jPSJfZGVzaWduLyIhPWEuZGRvYy50byg4KT8iX2Rlc2lnbi8iK2EuZGRvYzphLmRkb2M7dmFyIGI9Yy5SVChbIkRkb2NzIixhLmRkb2NdKTtifHwoYj17X2lkOmEuZGRvYyxsYW5ndWFnZTp4Lmxhbmd1YWdlLHZpZXdzOnt9fSksYy5TYXZlRGRvYyhiLGEubmFtZSkudGhlbihmdW5jdGlvbigpe3ZhciB4O2MuUlQoImRhdGEiKS52aWV3PWEuZGRvYysi77+9IithLm5hbWUsZC5kZG9jPT1hLmRkb2MmJmQubmFtZT09YS5uYW1lfHwoeD1jLlJUKFsiVmkiLGQuZGRvYysi77+9IitkLm5hbWUsInZpZXciXSl8fHt9LGQubWFwPXgubWFwfHwiIixkLnJlZHVjZT14LnJlZHVjZXx8IiIpLGMuUlQoIm15IikudHJpZ2dlcigiI2J0bi1yZWxvYWQiLCJjbGljay5teSIpfSl9KSx2b2lkIDApfSxldmVudHM6ImNsaWNrLm15In19LHN0eWxlOnsiIC5Db2RlTWlycm9yIjoiZm9udC1zaXplOjgwJSFpbXBvcnRhbnQ7cGFkZGluZzowcHg7bWluLWhlaWdodDozMDBweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDozMDBweDsiLCIgI3ZpZXctbXItcHJveHkiOmZ1bmN0aW9uKHgpe3JldHVybiJtYXgtaGVpZ2h0OiIrKHgucGFyZW50KCkuaGVpZ2h0KCktNDgtMzEpKyJweDsifSwiICN2aWV3LW1yLXByb3h5LnJlZCAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7IiwiICNidG4tdmlldy1tci1kZWwiOiJkaXNwbGF5Om5vbmU7IiwiICNidG4tdmlldy1tci1yZXZlcnQuaGlkZSArICNidG4tdmlldy1tci1kZWwiOiJkaXNwbGF5OmlubGluZS1ibG9jazsifSxkaWU6ZnVuY3Rpb24oeCl7dmFyIGE9eC5maW5kKCIjdmlldy1tci1wcm94eSIpLmdldE5pY2VTY3JvbGw7ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEoKS5yZW1vdmUoKX0sU2F2ZURkb2M6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9YXx8Yy5uYW1lLGU9Yi5SVChbImRhdGEiLCJwYXRoIl0pO2IuUlQoWyJkYXRhIiwidGFiaWQiXSk7aWYoYy5lcnJvcnMubGVuZ3RoKXJldHVybiBjdy5saWIubm90ZShiLmxhbmcuRVJSX0VSUkRPQy5hc3NpZ24oYy5lcnJvcnNbMF0pLCJlcnJvciIpLCQuRGVmZXJyZWQoKS5yZWplY3QoYy5lcnJvcnNbMF0pO2IuUlQoIkJ1c3kiKSghMCk7dmFyIGY9JC5leHRlbmQoITAse30seHx8Yi5SVChbIkRkb2NzIixjLmRkb2NdKSk7cmV0dXJuIGMubWFwLnRyaW0oKT9jdy5saWIudW5tYXNrKGYsW2MubWFwXSxbWyJ2aWV3cyIsZCwibWFwIl1dKTpjdy5saWIuZ2V0cmVmKGYsWyJ2aWV3cyIsZCwibWFwIl0pJiYoZi52aWV3c1tkXS5tYXA9dm9pZCAwKSxjLnJlZHVjZS50cmltKCk/Y3cubGliLnVubWFzayhmLFtjLnJlZHVjZV0sW1sidmlld3MiLGQsInJlZHVjZSJdXSk6Y3cubGliLmdldHJlZihmLFsidmlld3MiLGQsInJlZHVjZSJdKSYmKGYudmlld3NbZF0ucmVkdWNlPXZvaWQgMCksYi5SZXEoe3VybDpbZVswXSxmLl9pZF0sbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIixkYXRhOkpTT04uc3RyaW5naWZ5KGYpLGRhdGFUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oeCl7Yy5yZXY9eC5yZXYsY3cubGliLm5vdGUoYi5sYW5nLk1TR19TQVZFRC5hc3NpZ24oZi5faWQpLCJvayIpLCQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6ZVswXSxjbWQ6IndyaXRlIixkb2NzOltmLl9pZF19KSxiLm15LmNoZWNrKCIjYnRuLXZpZXctbXItcmV2ZXJ0IiksYi5teS5jaGVjaygiI2J0bi12aWV3LW1yLXJ1biIpfSkuZmFpbChmdW5jdGlvbih4LGEpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfRkFJTC5hc3NpZ24oZi5faWQseCxhKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe2IuUlQoIkJ1c3kiKSghMSl9KX0sRGVsVmlldzpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLmRhdGEsZD1hfHxjLm5hbWUsZT1iLlJUKFsiZGF0YSIsInBhdGgiXSk7Yi5SVChbImRhdGEiLCJ0YWJpZCJdKTtpZihjLmVycm9ycy5sZW5ndGgpcmV0dXJuIGN3LmxpYi5ub3RlKGIubGFuZy5FUlJfRVJSRE9DLmFzc2lnbihjLmVycm9yc1swXSksImVycm9yIiksJC5EZWZlcnJlZCgpLnJlamVjdChjLmVycm9yc1swXSk7dmFyIGY9JC5leHRlbmQoITAse30seHx8Yi5SVChbIkRkb2NzIixjLmRkb2NdKSk7cmV0dXJuIGN3LmxpYi5nZXRyZWYoZixbInZpZXdzIixkXSkmJmRlbGV0ZSBmLnZpZXdzW2RdLGIuUmVxKHt1cmw6W2VbMF0sZi5faWRdLG1ldGhvZDoiUFVUIixoZWFkZXJzOnsiWC1Db3VjaC1GdWxsLUNvbW1pdCI6InRydWUifSxjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShmKSxkYXRhVHlwZToianNvbiJ9KS50aGVuKGZ1bmN0aW9uKHgpe2MucmV2PXgucmV2LGN3LmxpYi5ub3RlKGIubGFuZy5NU0dfREVMX09LLmFzc2lnbihmLl9pZCsiLiIrZCksIm9rIiksYi5SVCgiZGF0YSIpLnZpZXc9IiIsYi5SVCgiZGF0YSIpLmVkaXRvcj0hMSxiLlJUKCkuUm93cz1bXSxiLlJUKCJteSIpLnJlY2FsYygiI3ZpZXctbmFtZSIpLGIuUlQoIm15IikuY2hlY2soIiN2aWV3LW5hbWUiKSxmdW5jdGlvbigpeyQubXkucmFkaW8oImRidXBkYXRlIix7ZGI6ZVswXSxjbWQ6IndyaXRlIixkb2NzOltmLl9pZF19KX0uZGVib3VuY2UoMTAwKSgpfSkuZmFpbChmdW5jdGlvbih4LGEpe2N3LmxpYi5ub3RlKGIubGFuZy5NU0dfREVMX0ZBSUwuYXNzaWduKGYuX2lkKyIuIitkLHgsYSksImVycm9yIil9KS5hbHdheXMoYi5SVCgiQnVzeSIpLmZpbGwoITEpKX19LE1hbmdvRWQ6e2lkOiJjdy5QaG90b24uTWFuZ29FZCIsaW5oZXJpdDpbIlJUIl0scGFyYW1zOntyZXN0eWxlOjUwLHN0cmljdDohMH0sbGFuZzp7fSxyZXF1aXJlOlt7IndpbmRvdy5Db2RlTWlycm9yIjoibGliL2NvZGVtaXJyb3IuanMifV0sSFRNTDonPGRpdiBjbGFzcz0iYmctcGdyYXkgbGgxNjAgcHQyIHhncmF5IG53IG9oIGVsbCB4cGFuZWwiPjxkaXYgY2xhc3M9ImZzOTAgdGFyIGZyIHB0MSI+PHNwYW4gaWQ9InZpZXctbWFuZ28tbW9kZSIgY2xhc3M9Im10MCI+PC9zcGFuPjxzcGFuIGlkPSJidG4tdmlldy1tYW5nby1jbG9zZSIgY2xhc3M9InByOSBwbDggbWw2IHBzZXVkb2xpbmsgdGRuIiBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yKTsiIHRpdGxlPSJ7QlROX1BBTkVMX0NMT1NFfSI+4pyVPC9zcGFuPjwvZGl2PjxkaXYgaWQ9InZpZXctbWFuZ28tbmFtZSIgY2xhc3M9ImJvbGRlciBwbDggb2ggbncgZWxsIj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0idmlldy1tYW5nby1wcm94eSIgY2xhc3M9ImJicyBwbDEgcHIxIj48dGV4dGFyZWEgaWQ9InZpZXctbWFuZ28tZWQiIGNsYXNzPSJ3MTAwcCI+PC90ZXh0YXJlYT48L3NlY3Rpb24+PHNlY3Rpb24gaWQ9InZpZXctbWFuZ28tYnV0dG9ucyIgY2xhc3M9Im53IHA4IiBzdHlsZT0iIj48ZGl2IGNsYXNzPSJmciI+PGJ1dHRvbiBpZD0iYnRuLXZpZXctbWFuZ28tcmV2ZXJ0IiBjbGFzcz0iaGlkZSIgdGl0bGU9IntUSVBfUkVTRVR9Ij48c3BhbiBjbGFzcz0iZmktcmVmcmVzaCBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9SRVNFVH3CoDwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLWRlbCIgY2xhc3M9ImhpZGUgcmVkIiB0aXRsZT0ie1RJUF9ERUx9Ij48c3BhbiBjbGFzcz0iZmktdHJhc2ggZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fREVMfTwvYnV0dG9uPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLXJ1biIgY2xhc3M9Im1yMiBncmVlbiIgdGl0bGU9IntUSVBfUlVOfSI+PHNwYW4gY2xhc3M9ImZpLXBsYXkgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fUlVOfTwvYnV0dG9uPjxidXR0b24gaWQ9ImJ0bi12aWV3LW1hbmdvLXN0YXNoIiBjbGFzcz0ibXIyIiB0aXRsZT0ie1RJUF9TQVZFfSI+PHNwYW4gY2xhc3M9ImZpLXNhdmUgZnM5NSBvNjAiPjwvc3Bhbj7CoHtCVE5fU0FWRX08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tdmlldy1tYW5nby1leHBsYWluIiBjbGFzcz0ibXIyIiB0aXRsZT0ie1RJUF9FWFBMfSI+PHNwYW4gY2xhc3M9ImZpLW1lZ2FwaG9uZSBmczk1IG82MCI+PC9zcGFuPsKge0JUTl9FWFBMfTwvYnV0dG9uPjwvc2VjdGlvbj4nLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczt4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSxhLlRleHQ9YS5kYXRhLnRleHQsYS5WYWxpZGF0ZT1hLlZhbGlkYXRlKCksYS5NYW5nb0tleXM9Y3cubGliLmEybyhhLk1hbmdvS2V5cy5zcGxpdCgiICIpKX0sZGF0YTp7bmFtZToiVW50aXRsZWQgcXVlcnkiLHR5cGU6Im1hbmdvIix0ZXh0OiIoe1xuXHQvLyBXcml0ZSB5b3VyIG1hbmdvIHF1ZXJ5LCBKUyBzeW50YXggYWxsb3dlZFxufSkiLGpzb246e30sZXJyb3JzOltdLHN0YW1wOjB9LE1vZGU6WyJqYXZhc2NyaXB0Il0sVGV4dDoiIix1aTp7IiN2aWV3LW1hbmdvLWVkIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5Nb2RlKyIiO0NvZGVNaXJyb3IuZnJvbVRleHRBcmVhKHhbMF0se21vZGU6YixsaW5lTnVtYmVyczohMSx2aWV3cG9ydE1hcmdpbjoxMDAsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixyZWFkT25seToianNvbiI9PWIsZXh0cmFLZXlzOnsiQ3RybC1SIjpmdW5jdGlvbigpe2EuUlQoIkdldFZpZXciKSghMCl9LCJDbWQtUiI6ZnVuY3Rpb24oKXthLlJUKCJHZXRWaWV3IikoITApfX19KX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMuTW9kZSsiIjtyZXR1cm4gbnVsbCE9YSYmImpzb24iIT1iJiYoeC50ZXh0PWEpLCJqc29uIj09Yj9KU09OLnN0cmluZ2lmeSh4Lmpzb24sbnVsbCwiXHQiKTp4LnRleHR9fSwiI3ZpZXctbWFuZ28tcHJveHkiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMubmljZVNjcm9sbCh4KX0sZGVsYXk6MjAwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLlZhbGlkYXRlKHgudGV4dCk7T2JqZWN0LmlzT2JqZWN0KGIpP3guZXJyb3JzPVtdOnguZXJyb3JzPWIseC5qc29uPXguZXJyb3JzLmxlbmd0aD97fTpifSx3YXRjaDpbIiN2aWV3LW1hbmdvLWVkIl0sY3NzOntyZWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHguZXJyb3JzLmxlbmd0aD4wfX19LCIjYnRuLXZpZXctbWFuZ28tcnVuIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbCE9YSl7dmFyIGM9Yi5SVCxkPWMoImRhdGEiKS5ncmlkLGU9YygiZGF0YSIpLmNvbHVtbnMsZj1lLnNsaWNlKDApLGc9KGMoImpzZXZhbCIpKCIoIit4LnRleHQrIikiKXx8e2ZpZWxkczpbXX0pLmZpZWxkc3x8W10saD0oYygianNldmFsIikoIigiK2IuVGV4dCsiKSIpfHx7ZmllbGRzOltdfSkuZmllbGRzfHxbXSxpPWcuc3VidHJhY3QoaCkuc3VidHJhY3QoaC5zdWJ0cmFjdChmKSksaj1mKyIiPT0iLnZhbHVlIiYmZy5sZW5ndGg/Zy50byg4KTpmLmNvbmNhdChpLnN1YnRyYWN0KGYpKS50byg4KTtlKyIiIT1qKyIiJiYoYygiZGF0YSIpLmNvbHVtbnM9ai5zbGljZSgwKSxkJiZjKCJidWlsZEdyaWRDb2x1bW5zIikoKSksYi5UZXh0PXgudGV4dCxjKCJHZXRWaWV3IikoITApLnRoZW4oZnVuY3Rpb24oKXtkJiYoYygibXkiKS5yZWNhbGMoIiN2aWV3LWdyaWQtY29scyIpLGMoIm15IikuY2hlY2soIiN2aWV3LWdyaWQtY29scyIpKX0pfX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4geC5lcnJvcnMubGVuZ3RoPjB8fHRoaXMuVGV4dD09eC50ZXh0fX0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI2J0bi12aWV3LW1hbmdvLWV4cGxhaW4iOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO2lmKG51bGwhPWEpe3ZhciBkPWMubXkuZmluZCgiI3ZpZXctbWFuZ28tcHJveHkiKSxlPWQub3V0ZXJIZWlnaHQoKS0zLGY9ZC5vdXRlcldpZHRoKCktMzI7aWYoYi5kYXRhKCJtb2RhbCIpKXJldHVybiBiLm1vZGFsKCEwKSx2b2lkIDA7Yi5tb2RhbCh7Y3NzOiJwMTUgcHQwIixhbGlnbjoiYm90dG9tOjE0MCUiLG5vc2U6ImJvdHRvbSIsZGF0YTp7aGVpZ2h0OmUrInB4IixkcmFnOiEwLHJlcTp7dXJsOltjLlJUKCJkYXRhIikucGF0aFswXSwiX2V4cGxhaW4iXSxtZXRob2Q6InBvc3QiLGRhdGE6SlNPTi5zdHJpbmdpZnkoeC5qc29uKX19LHdpZHRoOmYsZHJhZzoiI2RyYWdnZXIiLGJvdW5kOiIwIixyb290OiIiLG1hbmlmZXN0OmMuUGhvKCJSZXFKU09OIil9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuITEseC5lcnJvcnMubGVuZ3RoPjB9fSx3YXRjaDpbIiN2aWV3LW1hbmdvLXByb3h5Il19LCIjdmlldy1tYW5nby1tb2RlIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19NT0RFKX0sYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYobnVsbD09YSlyZXR1cm4gYi5Nb2RlO2IuTW9kZT1hO3ZhciBjPWIubXkuZmluZCgiI3ZpZXctbWFuZ28tZWQiKS5uZXh0KClbMF0uQ29kZU1pcnJvcjtyZXR1cm4gYy5zZXRPcHRpb24oIm1vZGUiLGErIiIpLGMuc2V0T3B0aW9uKCJyZWFkT25seSIsImpzb24iPT1hKyIiKSxiLm15LnJlY2FsYygiI3ZpZXctbWFuZ28tZWQiKSxhfX0sIiN2aWV3LW1hbmdvLW5hbWUiOntkZWxheToyNTAsYmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLlJUKCJkYXRhIik7aWYoYi5QaG8oIkxzIikoIk1hbmdvLiIrYy5wYXRoWzBdLGMubWFuZ28pLCF4LmVycm9ycy5sZW5ndGgpe3ZhciBkPXgubmFtZSsiIjtyZXR1cm4iRGVmYXVsdCBxdWVyeSI9PWQ/Yi5sYW5nLlRYVF9USVRMRTA6Yi5sYW5nLlRYVF9USVRMRS5hc3NpZ24oZC5lc2NhcGVIVE1MKCkpfXJldHVybiB4LmVycm9yc1swXS5lc2NhcGVIVE1MKCl9LGNzczp7cmVkOmZ1bmN0aW9uKHgpe3JldHVybiB4LmVycm9ycy5sZW5ndGg+MH0sYm9sZGVyOmZ1bmN0aW9uKHgpe3JldHVybiAwPT14LmVycm9ycy5sZW5ndGh9fSx3YXRjaDpbIiN2aWV3LW1hbmdvLXByb3h5Il19LCIjYnRuLXZpZXctbWFuZ28tY2xvc2UiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcy5SVDtiKCJkYXRhIikuZWRpdG9yPSExLGIoInN0YXNoVmlld1N0YXRlIikoKSxiKCJteSIpLmNoZWNrKCIjYnRuLXZpZXdjb2RlIiksYigibXkiKS5yZXN0eWxlLmRlbGF5KDUwKX19fSwiI2J0bi12aWV3LW1hbmdvLWRlbCI6e2Nzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oKXtyZXR1cm4iRGVmYXVsdCBxdWVyeSI9PXRoaXMuUlQoWyJkYXRhIiwibWFuZ28iLCJhY3RpdmUiXSl9fSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcyxjPWIuUlQoWyJkYXRhIiwibWFuZ28iXSk7Yy5hY3RpdmU9IkRlZmF1bHQgcXVlcnkiLGMucXVlcnkucmVtb3ZlKGZ1bmN0aW9uKGEpe3JldHVybiBhLm5hbWU9PXgubmFtZX0pLGIuUlQoImRhdGEiKS52aWV3PSJfZmluZO+/vURlZmF1bHQgcXVlcnkiLGIuUlQoIkdldFZpZXdzIikoITAsITEsITApLGIuUlQoIm15IikucmVkcmF3LmRlYm91bmNlKDUwKSgpfX19LCIjYnRuLXZpZXctbWFuZ28tcmV2ZXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7bnVsbCE9YSYmKHgudGV4dD1iLlJUKCJEZWZhdWx0TWFuZ29RcnkiKS50ZXh0KX0sZGVsYXk6MTAwLGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCl7cmV0dXJuIkRlZmF1bHQgcXVlcnkiIT14Lm5hbWV9LCI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7cmV0dXJuIHgudGV4dD09YS5SVCgiRGVmYXVsdE1hbmdvUXJ5IikudGV4dH19LHJlY2FsYzpbIiN2aWV3LW1hbmdvLWVkIl0sd2F0Y2g6WyIjdmlldy1tYW5nby1wcm94eSJdfSwiI2J0bi12aWV3LW1hbmdvLXN0YXNoIjp7Y3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiJEZWZhdWx0IHF1ZXJ5IiE9eC5uYW1lP3RoaXMuVGV4dD09eC50ZXh0OngudGV4dD09dGhpcy5SVCgiRGVmYXVsdE1hbmdvUXJ5IikudGV4dH19LHdhdGNoOlsiI3ZpZXctbWFuZ28tcHJveHkiXSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9KGMuUlQoWyJkYXRhIiwibWFuZ28iLCJhY3RpdmUiXSksJzxzcGFuIGNsYXNzPSJmaS1zYXZlIGZzOTUgbzYwIj48L3NwYW4+wqAnK2MubGFuZy5CVE5fU0FWRSk7cmV0dXJuIG51bGw9PWE/ZDpiLmRhdGEoIm1vZGFsIik/KGIubW9kYWwoITApLGQpOihjLm15Lm1vZGFsKCIjYnRuLXZpZXctbWFuZ28tc3Rhc2giLHtkYXRhOiQuZXh0ZW5kKCEwLHtfbmV3Ont9fSxjLlJUKFsiZGF0YSIsIm1hbmdvIl0pKSxtYW5pZmVzdDp7ZGF0YTp7fSxOYW1lOiIiLFFyeTpbXSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7YS5Rcnk9T2JqZWN0LmNsb25lKGIucXVlcnksITApLHguaHRtbCgkLm15LmZvcm1nZW4oWyc8ZGl2IGNsYXNzPSJtYjgiPicsJzxkaXYgaWQ9ImZ0aXRsZSIgY2xhc3M9InhncmF5Ij57VFhUX1NUQVNIfTwvZGl2PicsWyIiLCJpbnAjbXRpdGxlLncxMDBwIix7cGxjOiJ7UExDX1NUQVNIfSJ9LCJtc2ciXSwiPC9kaXY+IiwnPGRpdiBjbGFzcz0ibXQxNSBwdDE1IGJ0ZCBmczk1Ij4nLFsiIiwiYnRuI2J0bi1zdGFzaC1vay5ncmVlbi5tcjIiLHt2YWw6IntCVE5fU1RBU0hfT0t9In1dLCI8L2Rpdj4iXSkuYXNzaWduKGMubGFuZykpfSx1aTp7IiNtdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsPT1hKXJldHVybiBiLk5hbWU7aWYoYi5OYW1lPWEuY29tcGFjdCgpLGIuTmFtZS5sZW5ndGg+MiYmYi5OYW1lLmxlbmd0aDwzMSl7dmFyIGM9T2JqZWN0LmNsb25lKHgucXVlcnkuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lPT14LmFjdGl2ZX0pLCEwKTtjLm5hbWU9Yi5OYW1lLGMuc3RhbXA9RGF0ZS5ub3coKSx4Ll9uZXc9Y31yZXR1cm4gYX0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5jb21wYWN0KCk/YS5jb21wYWN0KCkubGVuZ3RoPDN8fGEubGVuZ3RoPjMwP2MubGFuZy5FUlJfU1RBU0hfTEVOOnRoaXMuUXJ5LmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHgubmFtZT09YX0pP2MubGFuZy5FUlJfU1RBU0hfRVhJU1Q6dm9pZCAwOmMubGFuZy5FUlJfU1RBU0hfUkVRfX0sIiNidG4tc3Rhc2gtb2siOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jb21taXQoKX0sd2F0Y2g6WyIjbXRpdGxlIl0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbigpe3JldHVybiF0aGlzLm15LnZhbGlkKCl9fX19LHN0eWxlOnt9fSxjc3M6InAxNSIsZ2xvYmFsOiEwLHNjcmVlbjohMCx3aWR0aDo0MDAsZXNjOiEwLGVudGVyOiEwLGJvdW5kOjIwfSkudGhlbihmdW5jdGlvbih4KXt4LnF1ZXJ5LnB1c2goeC5fbmV3KSx4LmFjdGl2ZT14Ll9uZXcubmFtZSwkLmV4dGVuZChjLlJUKCJkYXRhIikubWFuZ28sT2JqZWN0LnJlamVjdCh4LCJfbmV3IikpLGMuUlQoImRhdGEiKS52aWV3PSJfZmluZO+/vSIreC5hY3RpdmUsYy5SVCgiR2V0Vmlld3MiKSghMCwhMSwhMCksYy5SVCgibXkiKS5yZWRyYXcoKX0pLGQpfSxldmVudHM6ImNsaWNrLm15In19LHN0eWxlOnsiIC5Db2RlTWlycm9yIjoiZm9udC1zaXplOjEzcHghaW1wb3J0YW50OyBwYWRkaW5nOjRweDsgbWluLWhlaWdodDozMDBweDsiLCIgI3ZpZXctbWFuZ28tcHJveHkiOmZ1bmN0aW9uKHgpe3JldHVybiJtYXgtaGVpZ2h0OiIrKHgucGFyZW50KCkuaGVpZ2h0KCktNDgtMzIpKyJweDsifSwiICN2aWV3LW1hbmdvLXByb3h5LnJlZCAuQ29kZU1pcnJvci1saW5lbnVtYmVycyI6ImJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7In0sZGllOmZ1bmN0aW9uKHgpe3ZhciBhPXguZmluZCgiI3ZpZXctbWFuZ28tcHJveHkiKS5nZXROaWNlU2Nyb2xsOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhKCkucmVtb3ZlKCl9LE1hbmdvS2V5czoic2VsZWN0b3IgbGltaXQgc2tpcCBzb3J0IGZpZWxkcyB1c2VfaW5kZXggY29uZmxpY3RzIHIgYm9va21hcmsgdXBkYXRlIHN0YWJsZSBzdGFsZSBleGVjdXRpb25fc3RhdHMiLFZhbGlkYXRlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSh4LmRhdGEseC5sYW5nKSxiPU9iamVjdC5pc0FycmF5LGM9T2JqZWN0LmlzT2JqZWN0LGQ9T2JqZWN0LmlzU3RyaW5nLGU9T2JqZWN0LnNpemUsZj1jdy5saWIuYTJvLGc9ZihbIiRhbGwiLCIkYWxsTWF0Y2giLCIkYW5kIiwiJGVsZW1NYXRjaCIsIiRleGlzdHMiLCIkaW4iLCIka2V5TWFwTWF0Y2giLCIkbW9kIiwiJG5pbiIsIiRub3IiLCIkbm90IiwiJG9yIiwiJHJlZ2V4IiwiJHNpemUiLCIkdHlwZSJdKSxoPWYoWyIkaW4iLCIkbmluIiwiJG1vZCIsIiRhbGwiXSksaT1mKFsiJGVxIiwiJG5lIiwiJGd0IiwiJGd0ZSIsIiRsdCIsIiRsdGUiXSksaj1mKFsibnVsbCIsImJvb2xlYW4iLCJudW1iZXIiLCJzdHJpbmciLCJhcnJheSIsIm9iamVjdCJdKTtyZXR1cm4gaztmdW5jdGlvbiBrKGQpe3ZhciBmPVtdLGc9eC5SVCgianNldmFsIikoIigiK2QrIikiKXx8bnVsbDtpZihudWxsIT1nJiZjKGcpKWlmKGMoZy5zZWxlY3RvcikmJmUoZy5zZWxlY3RvcikpaWYoYihnLmZpZWxkcykpaWYoZy5maWVsZHMubGVuZ3RoKXRyeXtsKGcuc2VsZWN0b3IsITApfWNhdGNoKHgpe2YucHVzaCh4Lm1lc3NhZ2UrIiIpfWVsc2UgZi5wdXNoKGEuRVJSX0VNUFRZX0ZJRUxEUyk7ZWxzZSBmLnB1c2goYS5FUlJfTk9fRklFTERTKTtlbHNlIGYucHVzaChhLkVSUl9OT19TRUxFQ1RPUik7ZWxzZSBmLnB1c2goYS5FUlJfTk9fSlNPTik7cmV0dXJuIWYubGVuZ3RoJiZlKGcpPjImJk9iamVjdC5rZXlzKGcpLmZvckVhY2goZnVuY3Rpb24oYil7eC5NYW5nb0tleXNbYl18fGYucHVzaChhLkVSUl9NQU5HT19LRVlTLmFzc2lnbigiLiIrYikpfSksZi5sZW5ndGg/ZjpnfWZ1bmN0aW9uIGwoeCxkKXtpZihiKHgpKWZvcih2YXIgZT0wO2U8eC5sZW5ndGg7ZSsrKWs9eFtlXSwoYihrKXx8YyhrKSkmJmwoayxkKTtlbHNle3ZhciBmPU9iamVjdC5rZXlzKHgpO2ZvcihlPTA7ZTxmLmxlbmd0aDtlKyspe3ZhciBqPWZbZV0saz14W2pdO2lmKCIkIj09alswXSYmIWdbal0mJiFoW2pdJiYhaVtqXSl0aHJvdyBuZXcgRXJyb3IoYS5FUlJfSU5WQUxJRF9PUEVSQVRPUi5hc3NpZ24oaikpO2dbal0mJm0oaixrLGQpLGlbal18fChoW2pdfHwoYihrKXx8YyhrKSkmJmwoayxkKSl9fX1mdW5jdGlvbiBtKHgsZSxmKXt2YXIgZz0iIjtpZihbIiRpbiIsIiRuaW4iLCIkb3IiLCIkYW5kIiwiJG1vZCIsIiRub3IiLCIkYWxsIl0uZmluZCh4KSYmKGIoZSl8fChnPWEuRVJSX1ZfQVJSLmFzc2lnbih4KSkpLFsiJG5vdCIsIiRlbGVtTWF0Y2giLCIkYWxsTWF0Y2giLCIka2V5TWFwTWF0Y2giXS5maW5kKHgpJiYoYyhlKXx8KGc9YS5FUlJfVl9PQkouYXNzaWduKHgpKSksIWcpe2lmKCIkbW9kIj09eCYmYihlKSlpZigyIT1lLmxlbmd0aClnPWEuRVJSX1ZfTU9EMTtlbHNle3ZhciBoPWVbMF0saT1lWzFdOzA9PT1oJiYoZz1hLkVSUl9WX01PRDApLCJudW1iZXIiPT10eXBlb2YgaCYmcGFyc2VJbnQoaCwxMCk9PT1ofHwoZz1hLkVSUl9WX01PREQpLHBhcnNlSW50KGksMTApIT1pJiYoZz1hLkVSUl9WX01PRFIpfSIkZXhpc3RzIj09eCYmImJvb2xlYW4iIT10eXBlb2YgZSYmKGc9YS5FUlJfVl9FWElTVCksIiR0eXBlIj09eCYmKGQoZSk/altlXXx8KGc9YS5FUlJfVl9UWVBFMSk6Zz1hLkVSUl9WX1RZUEUwKSwiJHNpemUiPT14JiZwYXJzZUludChlLDEwKSE9PWUmJihnPWEuRVJSX1ZfU0laRSksIiRyZWdleCI9PXgmJihkKGUpfHwoZz1hLkVSUl9WX1JFR0VYKSl9aWYoZyl0aHJvdyBuZXcgRXJyb3IoZyl9fX0sVXNlckRvYzp7aWQ6ImN3LlBob3Rvbi5Vc2VyRG9jIixsYW5nOnt9LGRhdGE6e19pZDoib3JnLmNvdWNoZGIudXNlcjoiLHR5cGU6InVzZXIiLG5hbWU6IiIscGFzc3dvcmQ6IiIscm9sZXM6W119LFJvbGVzOltdLFNlYzp7fSxVc2Vyczp7fSxJczp7YTp7fSxtOnt9fSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1hLlBobygiQWxsIiksZD1iLl9pZC5zcGxpdCgiOiIpWzFdO2EuU2VjPU9iamVjdC5rZXlzKGMpLnJlZHVjZShmdW5jdGlvbih4LGIpe3ZhciBlPWNbYl0uc2VjdXJpdHksZj0oZS5hZG1pbnN8fHt9KS5yb2xlc3x8W10sZz0oZS5tZW1iZXJzfHx7fSkucm9sZXN8fFtdLGg9KGUuYWRtaW5zfHx7fSkubmFtZXN8fFtdLGk9KGUubWVtYmVyc3x8e30pLm5hbWVzfHxbXTtyZXR1cm4gaC5pbmRleE9mKGQpPi0xJiYoYS5Jcy5hW2JdPSEwKSxpLmluZGV4T2YoZCk+LTEmJihhLklzLm1bYl09ITApLGYuZm9yRWFjaChmdW5jdGlvbihhKXt4W2FdfHwoeFthXT17YTp7fSxtOnt9fSkseFthXS5hW2JdPSEwfSksZy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3hbYV18fCh4W2FdPXthOnt9LG06e319KSx4W2FdLm1bYl09ITB9KSx4fSx7fSksYS5Sb2xlcz1PYmplY3Qua2V5cyhhLlNlYykucmVtb3ZlKC9eXy8pLnNvcnQoKSxiLl9yZXYmJihhLmxhbmcuVFhUX1RJVExFPWEubGFuZy5UWFRfVElUTEVfRUQsYS5sYW5nLlBMQ19QPWEubGFuZy5QTENfUF9FRCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSxhLlBobygiR2V0VXNlcnMiKSgpLnRoZW4oZnVuY3Rpb24oeCl7YS5Vc2Vycz1jdy5saWIuYTJvKHgpfSkseC50aGVuKGZ1bmN0aW9uKCl7YS5TZWwyU2Nyb2xsKHgsITApfSl9LHNhdmVVc2VyOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj14fHxhLmRhdGEsYz1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfTtyZXR1cm4gYS5SZXEoe3VybDpbIl91c2VycyIsYi5faWRdLG1ldGhvZDoiUFVUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShiKX0pLnRoZW4oZnVuY3Rpb24oKXtjdy5saWIubm90ZShhLmxhbmcuTVNHX09LLmFzc2lnbihjKGIubmFtZSkpLCJvayIpLCQubXkucmFkaW8oImRidXBkYXRlIiwiX3VzZXJzIil9KS5mYWlsKGZ1bmN0aW9uKHgsZCl7Y3cubGliLm5vdGUoYS5sYW5nLk1TR19GQUlMLmFzc2lnbihjKGIubmFtZSkseCxjKGQpKSwiZXJyb3IiKX0pfSx1aTp7IiN1bmFtZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgubmFtZT1hLHguX2lkPSJvcmcuY291Y2hkYi51c2VyOiIrYSkseC5uYW1lfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmhhcygiOiIpfHwvXl8vLnRlc3QoYSk/dGhpcy5sYW5nLkVSUl9OOnRoaXMuVXNlcnNbYV0mJiF4Ll9yZXY/dGhpcy5sYW5nLkVSUl9OWDp2b2lkIDB9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuISF4Ll9yZXZ9LCJzZWxmOnhncmF5IjpmdW5jdGlvbih4KXtyZXR1cm4hIXguX3Jldn19fSwiI3VwYXNzIjoicGFzc3dvcmQiLCIjdXJvbGVzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdXJvbGVzIix0aGlzLlJvbGVzLCJQTENfUiIpfSxiaW5kOiJyb2xlcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtpZihhLmZpbmQoL15fLykpcmV0dXJuIHRoaXMubGFuZy5FUlJfUn19LCIjdWFjY2VzcyI6e2RlbGF5OjUwLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuU2VjLGQ9e30sZT1bXSxmPXt9LGc9W10saD1bXSxpPSc8c3BhbiBjbGFzcz0iZnc1MDAiPnsxfSA8L3NwYW4+IHsyfSc7cmV0dXJuIHgucm9sZXMuZm9yRWFjaChmdW5jdGlvbih4KXtjW3hdJiYoJC5leHRlbmQoZCxjW3hdLmEpLCQuZXh0ZW5kKGYsY1t4XS5tKSl9KSwkLmV4dGVuZChkLGIuSXMuYSksJC5leHRlbmQoZixiLklzLm0pLGU9T2JqZWN0LmtleXMoZCkuc29ydCgpLGc9T2JqZWN0LmtleXMoZikuc3VidHJhY3QoZSkuc29ydCgpLGUubGVuZ3RoJiYoZS5sZW5ndGg+MjA/aC5wdXNoKGkuYXNzaWduKCJBZG1pbiIsIm9mICIrZS5sZW5ndGgrIiBEQnMiKSk6aC5wdXNoKGkuYXNzaWduKCJBZG1pbjoiLGUubWFwKHg9PngudHJ1bmNhdGUoMjAsIm1pZGRsZSIsIuKApiIpKS5qb2luKCIsICIpKSkpLGcubGVuZ3RoJiYoZy5sZW5ndGg+MjA/aC5wdXNoKGkuYXNzaWduKCJNZW1iZXIiLCJvZiAiK2cubGVuZ3RoKyIgREJzIikpOmgucHVzaChpLmFzc2lnbigiTWVtYmVyOiIsZy5tYXAoeD0+eC50cnVuY2F0ZSgyMCwibWlkZGxlIiwi4oCmIikpLmpvaW4oIiwgIikpKSksbnVsbD09YSYmYi5teS50cmlnZ2VyKCIjdWFjY2VzcyIsImxheW91dCIpLGguam9pbigiPGJyPiIpfSx3YXRjaDoiI3Vyb2xlcyIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LnJvbGVzLmxlbmd0aH19fSwiI2J0bi1zdGFydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsIT1hKXt2YXIgYj10aGlzO2lmKHguX3Jldil7dmFyIGM9Y3cubGliLmRyeShPYmplY3QuY2xvbmUoeCwhMCkpO2MucGFzc3dvcmQ/KGRlbGV0ZSBjLmRlcml2ZWRfa2V5LGRlbGV0ZSBjLml0ZXJhdGlvbnMsZGVsZXRlIGMucGFzc3dvcmRfc2NoZW1lKTpkZWxldGUgYy5wYXNzd29yZCxiLnNhdmVVc2VyKGMpLnRoZW4oZnVuY3Rpb24oKXtiLm15LmNhbmNlbCgpfSl9ZWxzZSBiLnNhdmVVc2VyKCkudGhlbihmdW5jdGlvbigpe2IubXkuY2FuY2VsKCl9KX19LHdhdGNoOlsiI3VuYW1lIiwiI3Vyb2xlcyIsIiN1cGFzcyJdLGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5teS52YWxpZCgpfHwheC5uYW1lfHwheC5wYXNzd29yZCYmIXguX3Jldn19fSwiI2J0bi1vdGhlcmRvYyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuISF4Ll9yZXZ8fCEheC5uYW1lfHwhIXgucGFzc3dvcmR8fHgucm9sZXMubGVuZ3RoPjB9fSx3YXRjaDpbIiN1bmFtZSIsIiN1cGFzcyIsIiN1cm9sZXMiXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxkaWU6ZnVuY3Rpb24oeCl7dGhpcy5TZWwyU2Nyb2xsKHgsITEpLFsiI3VhY2Nlc3MiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPXguZmluZChhKTsiZnVuY3Rpb24iPT10eXBlb2YgYi5nZXROaWNlU2Nyb2xsJiZiLmdldE5pY2VTY3JvbGwoKS5yZW1vdmUoKX0pfSxTMjpmdW5jdGlvbih4LGEsYil7dGhpcy5zZWxlY3QyKHRoaXMubXkuZmluZCh4KSx7dGFnczphLHBsYWNlaG9sZGVyOnRoaXMubGFuZ1tiXSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMix0b2tlblNlcGFyYXRvcnM6WyIgIiwiLCJdfSl9LEhUTUw6Wyc8ZGl2IGlkPSJjdGl0bGUiIGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIj57VFhUX1RJVExFfTwvZGl2Picse3JvdzoiMTAwJSIsbGFiZWw6Ijc1cHgiLHJvd0NzczoibXktcm93IHB0MyBwYjMiLGxhYmVsQ3NzOiJteS1sYWJlbCJ9LFsie0xCTF9OfSIsImlucCN1bmFtZS5mczExMCIse3BsYzoie1BMQ19OfSJ9LCJtc2ciXSxbIntMQkxfUH0iLCJpbnAjdXBhc3MuZnMxMTAiLHtwbGM6IntQTENfUH0ifSwibXNnIl0se3Jvd0NzczoibXktcm93IHB0NyBwYjMiLGxhYmVsQ3NzOiJteS1sYWJlbCB2YXQgcHQ2In0sWyJ7TEJMX1J9IiwiaW5wI3Vyb2xlcy5mczEwNSIsIm1zZyJdLCc8ZGl2IGlkPSJ1YWNjZXNzIiBjbGFzcz0iaGlkZSBlbGwgdzEwMHAgZnM5MCBncmF5IGxoMTMwIG10NCBtYi00IHBsNzUiPjwvZGl2PicsJzxkaXYgY2xhc3M9Im10MTIgcHQxNSBidGQiPicsJzxidXR0b24gaWQ9ImJ0bi1zdGFydCIgY2xhc3M9ImdyZWVuIG1yMiI+e0JUTl9TQVZFfTwvYnV0dG9uPicsJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPicsJzxkaXYgY2xhc3M9ImZyIj4nLCc8YSBocmVmPSIjX3VzZXJzL19uZXciIGlkPSJidG4tb3RoZXJkb2MiIGNsYXNzPSJidXR0b24gdGRuIGRpYiB2YXQiPicsJzxzcGFuIGNsYXNzPSIiPntCVE5fRE9DfTwvc3Bhbj4nLCI8L2E+IiwiPC9kaXY+IiwiPC9kaXY+Il0sc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjE2MHB4OyIsIiAjdWFjY2VzcyI6Im1heC1oZWlnaHQ6MzAwcHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxMb2dpbjp7aWQ6ImN3LlBob3Rvbi5Mb2dpbiIscGFyYW1zOntyZXN0eWxlOjM1MCxzdHJpY3Q6ITB9LGxhbmc6e30sZGF0YTp7bmFtZToiIixwYXNzd29yZDoiIn0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpLHguZmluZCgiI3Vwd2QiKS5vbigia2V5dXAubXkiLGZ1bmN0aW9uKGEpe3ZhciBiPWEua2V5Q29kZTsxMyE9YiYmMTAhPWJ8fHguZmluZCgiI2J0bi1zZW5kIikudHJpZ2dlcigiY2xpY2siKX0pLHguZmluZCgiI3VuYW1lIikub24oImtleXVwLm15IixmdW5jdGlvbihhKXt2YXIgYj1hLmtleUNvZGU7MTMhPWImJjEwIT1ifHx4LmZpbmQoIiN1cHdkIikuZm9jdXMoKX0pfSx1aTp7IiN1bmFtZSI6Im5hbWUiLCIjdXB3ZCI6InBhc3N3b3JkIiwiI2J0bi1zZW5kIjp7ZGVsYXk6MTAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGwhPWEpe3ZhciBiPXRoaXM7Yi5kb0xvZ2luKCkudGhlbihmdW5jdGlvbigpe2IubXkuY2FuY2VsKCl9KX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5uYW1lfHwheC5wYXNzd29yZH19LHdhdGNoOlsiI3VuYW1lIiwiI3Vwd2QiXX0sIiNidG4tY2FuY2VsIjpmdW5jdGlvbih4LGEpe251bGwhPWEmJnRoaXMubXkuY2FuY2VsKCl9fSxIVE1MOic8ZGl2IGNsYXNzPSJmczE1MCBsaDE0MCBmdzUwMCBtYjgiPntUWFRfTE9HSU59PC9kaXY+PGlucHV0IGNsYXNzPSJ3MTAwcCBmczEyMCBtYjE1IiBpZD0idW5hbWUiIHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJ7UExDX1VOQU1FfSIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIj48aW5wdXQgY2xhc3M9IncxMDBwIGZzMTIwIG1iMTUiIGlkPSJ1cHdkIiB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IntQTENfUFdEfSIgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+PGRpdiBjbGFzcz0icHQxNSBidGQiPjxidXR0b24gaWQ9ImJ0bi1zZW5kIiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9MT0dJTn08L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj48L2Rpdj4nLGRvTG9naW46ZnVuY3Rpb24oKXt2YXIgeD10aGlzLGE9eC5QaG8oIl9jb21waWxlZCIpLGI9JC5leHRlbmQoITAse30seC5kYXRhKSxjPXgubGFuZztyZXR1cm4geC5teS5yb290KCkucGFyZW50KCkuYWRkQ2xhc3MoIm1vZGFsLWJ1c3kiKSx4LlJlcSh7dXJsOlsiX3Nlc3Npb24iXSxtZXRob2Q6IlBPU1QiLGRhdGFUeXBlOiJqc29uIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeShiKX0pLnRoZW4oZnVuY3Rpb24oZCl7dmFyIGU9e25hbWU6ZC5uYW1lfHxiLm5hbWUscm9sZXM6ZC5yb2xlc30sZj0kLkRlZmVycmVkKCk7cmV0dXJuIGEmJiQuZXh0ZW5kKCEwLHdpbmRvdy5ERE9DLl9tZSxlKSx4LlBobygiR2V0TGlzdCIpKCkuYWx3YXlzKGZ1bmN0aW9uKCl7JC5teS5yYWRpbygidXNlckN0eCIsZSksY3cubGliLm5vdGUoYy5NU0dfQVVUSF9PSy5hc3NpZ24oKGIubmFtZXx8IiIpLmVzY2FwZUhUTUwoKSksIm9rIiksZi5yZXNvbHZlKCl9KSxmLnByb21pc2UoKX0pLmZhaWwoZnVuY3Rpb24oZCxlKXthJiYkLmV4dGVuZCh3aW5kb3cuRERPQy5fbWUse25hbWU6IiIscm9sZXM6W119KSwkLm15LnJhZGlvKCJ1c2VyQ3R4Iix7bmFtZTpudWxsLHJvbGVzOltdfSkseC5QaG8oIm15IikuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpLGN3LmxpYi5ub3RlKGMuTVNHX0FVVEhfRkFJTC5hc3NpZ24oKGIubmFtZXx8IiIpLmVzY2FwZUhUTUwoKSxkLGUuZXNjYXBlSFRNTCgpKSwiZXJyb3IiKX0pLmFsd2F5cyhmdW5jdGlvbigpe3gubXkucm9vdCgpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCJtb2RhbC1idXN5Iil9KX0sc3R5bGU6eyIiOiJmb250LXNpemU6MTdweDsgbGluZS1oZWlnaHQ6MS43ZW07In19LExvZ291dDp7aWQ6ImN3LlBob3Rvbi5Mb2dvdXQiLHBhcmFtczp7cmVzdHlsZTozNTAsc3RyaWN0OiEwfSxsYW5nOnt9LGRhdGE6e30saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO3guaHRtbChhLkhUTUwuYXNzaWduKGEubGFuZykpfSxIVE1MOic8ZGl2IGlkPSJsdGl0bGUiIGNsYXNzPSJtYjYgbGgxNDAiPjwvZGl2PjxkaXYgY2xhc3M9ImdyYXkgcGwxIj48ZGl2IGlkPSJ4cHJvZmlsZSI+PHNwYW4gY2xhc3M9ImZpLXRvcnNvIj48L3NwYW4+IDxhIGlkPSJidG4tcHJvZmlsZSIgaHJlZj0iIiBjbGFzcz0icHNldWRvbGluayB0ZG4iPntUWFRfUFJPRklMRX08L2E+PC9kaXY+PGRpdj48c3BhbiBjbGFzcz0iZmktcG93ZXIiPjwvc3Bhbj4gPHNwYW4gaWQ9ImJ0bi1sb2dvdXQiIGNsYXNzPSJwc2V1ZG9saW5rIHRkbiI+e1RYVF9MT0dPVVR9PC9zcGFuPjwvZGl2PjwvZGl2PicsdWk6eyIjbHRpdGxlIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPSc8ZGl2IGNsYXNzPSJmczEzMCB4Z3JheSBsaDEyMCB3MTAwcCBvaCBlbGwiPnsxfTwvZGl2PicuYXNzaWduKGN3Lm1lKCkuZXNjYXBlSFRNTCgpKSxjPWN3Lm1lKCJyb2xlcyIpfHxbXTtyZXR1cm4gYy5sZW5ndGgmJihiKz0nPGRpdiBjbGFzcz0iZ3JheSBmczkwIj57MX08L2Rpdj4nLmFzc2lnbihjLm1hcChmdW5jdGlvbih4KXtyZXR1cm4iPG5vYnI+Iit4LmVzY2FwZUhUTUwoKSsiPC9ub2JyPiJ9KS5qb2luKCIsICIpKSksYn19LCIjYnRuLXByb2ZpbGUiOntkZWxheTozMCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXtiLmF0dHIoImhyZWYiLCIjX3VzZXJzL29yZy5jb3VjaGRiLnVzZXI6Iitjdy5tZSgpKSxudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sIiNidG4tbG9nb3V0Ijp7ZGVsYXk6MzAsYmluZDpmdW5jdGlvbih4LGEsYil7bnVsbCE9YSYmKHRoaXMuZG9Mb2dvdXQoKSx0aGlzLm15LmNhbmNlbCgpKX19fSxkb0xvZ291dDpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmxhbmcsYj1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfTtjdy5saWIubm90ZShhLk1TR19MT0dPVVRfU1RBUlQsIiIsMWUzKSx4LlJlcSh7dXJsOlsiX3Nlc3Npb24iXSxtZXRob2Q6IlBPU1QiLGRhdGFUeXBlOiJqc29uIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiIsZGF0YTpKU09OLnN0cmluZ2lmeSh7bmFtZToiMCIscGFzc3dvcmQ6IjAifSl9KS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGEuTVNHX0xPR09VVF9GQUlMLmFzc2lnbig5OTksIlNlcnZlciByZXR1cm5lZCBpbnZhbGlkIHJlc3BvbnNlIiksImVycm9yIil9KS5mYWlsKGZ1bmN0aW9uKGMsZCxlKXs0MDEhPWMmJjQwMyE9Yz8oY3cubGliLm5vdGUoYS5NU0dfTE9HT1VUX0ZBSUwuYXNzaWduKGMsYihkKSksImVycm9yIikseC5QaG8oIm15IikuY2hlY2soIiNidG4tYXNpZGUtYXV0aCIpKTpjdy5saWIubm90ZShhLk1TR19MT0dPVVRfT0ssIm9rIil9KX19LENvbXBhY3Q6e2lkOiJjdy5QaG90b24uQ29tcGFjdCIsbGFuZzp7fSxkYXRhOntzZWxlY3Rpb246W10sb3BzOlsiZG9jcyJdLGRkb2NzOltdLGRzZWxlY3Rpb246W119LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtiLkFsbD1hLlBobygiQWxsIiksYi5hbGw9T2JqZWN0LmtleXMoYi5BbGwpLnNvcnQoKSx4Lmh0bWwoYS5IVE1MLmFzc2lnbihhLmxhbmcpKSx4LnRoZW4oZnVuY3Rpb24oKXthLlNlbDJTY3JvbGwoeCwhMCl9LmRlYm91bmNlKDE1KSl9LENCOntkb2NzOmZ1bmN0aW9uKCl7fSxkZG9jczpmdW5jdGlvbigpe30sdmlld3M6ZnVuY3Rpb24oKXt9fSx1aTp7IiNjdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiAxPT14LnNlbGVjdGlvbi5sZW5ndGg/dGhpcy5sYW5nLlRYVF9USVRMRTE6dGhpcy5sYW5nLlRYVF9USVRMRX0sd2F0Y2g6WyIjZGJzIl19LCIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7ZGF0YTp0aGlzLmRhdGEuYWxsLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbXVsdGlwbGU6ITAscGxhY2Vob2xkZXI6dGhpcy5sYW5nLlBMQ19EQlMsbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9LCEwKX0sYmluZDoic2VsZWN0aW9uIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aD8iIjp0aGlzLmxhbmcuRVJSX0RCU30sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4geC5kZG9jcy5sZW5ndGg+MH19fSwiI2Rib3BzIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3Moe3RhZ3M6dGhpcy5sYW5nLlRBR19PUC50byh0aGlzLmRhdGEuZGRvY3MubGVuZ3RoPzM6Mil9KX0sYmluZDoib3BzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aD8iIjp0aGlzLmxhbmcuRVJSX09QfX0sIiNkZG9jcyI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5zZWxlY3QyKHgse2RhdGE6dGhpcy5kYXRhLmRkb2NzLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0OiJfZGVzaWduLyIreH19KSxtdWx0aXBsZTohMCxwbGFjZWhvbGRlcjp0aGlzLmxhbmcuUExDX0RET0NTLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImRzZWxlY3Rpb24iLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIWEubGVuZ3RoJiZ4Lm9wcy5pbmRleE9mKCJkZG9jcyIpPi0xP3RoaXMubGFuZy5FUlJfRERPQ1M6IiJ9LGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybi0xPT14Lm9wcy5pbmRleE9mKCJkZG9jcyIpfHwxIT14LnNlbGVjdGlvbi5sZW5ndGh9fSx3YXRjaDpbIiNkYm9wcyIsIiNkYnMiXX0sIiNidG4tc3RhcnQiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dHJ5e3RoaXMuZG9Db21wYWN0KCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jYW5jZWwoKX19LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4heC5zZWxlY3Rpb24ubGVuZ3RofHwheC5vcHMubGVuZ3RofHwhdGhpcy5teS52YWxpZCgpfX0sd2F0Y2g6WyIjZGJzIiwiI2Rib3BzIiwiI2Rkb2NzIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfX0sZG9Db21wYWN0OmZ1bmN0aW9uKCl7dmFyIHgsYSxiPXRoaXMsYz0kLmV4dGVuZCghMCx7fSxiLmRhdGEpLGQ9KGIuUGhvKCJfY29tcGlsZWQiKSxiLmxhbmcpLGU9Yy5zZWxlY3Rpb24ubGVuZ3RoO2Z1bmN0aW9uIGYoKXsoZS09MSk+MHx8WzcwMCwyNTAwLDc1MDAsMTVlM10uZm9yRWFjaChmdW5jdGlvbih4KXtnLmRlYm91bmNlKHgpKCl9KX1mdW5jdGlvbiBnKCl7JC5teS5yYWRpbygiZGJsaXN0IixjLnNlbGVjdGlvbil9Yy5vcHMubGVuZ3RoJiZlJiZPYmplY3Qua2V5cyhjLkFsbCkuaW50ZXJzZWN0KGMuc2VsZWN0aW9uKS5sZW5ndGgmJmMuc2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGc9W107Yy5vcHMuZmluZCgiZG9jcyIpJiZnLnB1c2goYi5SZXEoe3VybDpbZSwiX2NvbXBhY3QiXSxtZXRob2Q6IlBPU1QiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uIn0pLmZhaWwoZnVuY3Rpb24oeCxhLGIpe2NvbnNvbGUubG9nKCJFcnJvciBzdGFydGluZyBkYXRhIGNvbXBhY3Rpb24gb2YgIitlLHgsYSxiKX0pKSxjLm9wcy5maW5kKCJ2aWV3cyIpJiZnLnB1c2goYi5SZXEoe3VybDpbZSwiX3ZpZXdfY2xlYW51cCJdLG1ldGhvZDoiUE9TVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24ifSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y29uc29sZS5sb2coIkVycm9yIHN0YXJ0aW5nIHB1cmdpbmcgb2xkIHZpZXdzIG9mICIrZSx4LGEsYil9KSksYy5vcHMuZmluZCgiZGRvY3MiKSYmKHg9Yy5kc2VsZWN0aW9uLmNvbXBhY3QoITApLGE9ZnVuY3Rpb24oKXtiLkNCLmRkb2NzKHgpfS5kZWJvdW5jZSg1KS5hZnRlcih4Lmxlbmd0aCkseC5mb3JFYWNoKGZ1bmN0aW9uKHgpe2cucHVzaChiLlJlcSh7dXJsOltlLCJfY29tcGFjdCIseF0sbWV0aG9kOiJQT1NUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbiJ9KS5mYWlsKGZ1bmN0aW9uKGEsYixjKXtjb25zb2xlLmxvZygiRXJyb3Igc3RhcnRpbmcgdmlldyBjb21wYWN0aW9uIG9mICIrZSsiL19kZXNpZ24vIit4LGEsYixjKX0pLmFsd2F5cyhmdW5jdGlvbigpe2EoKX0pKX0pKSxRLmFsbChnKS50aGVuKGZ1bmN0aW9uKHgpe2N3LmxpYi5ub3RlKGQuTVNHX0NPTVBBQ1RfU1RBUlQuYXNzaWduKGUpKSxmKCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtjdy5saWIubm90ZShkLk1TR19DT01QQUNUX0ZBSUxfU09NRSwiZXJyb3IiKSxmKCl9KX0ubGF6eShiLlBobygiQ2ZnIikuYmF0Y2hDb21wYWN0RGVsYXkpKX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKX0sSFRNTDonPGRpdiBpZD0iY3RpdGxlIiBjbGFzcz0iZnMxMzAgbWIxMCBib2xkZXIiPntUWFRfVElUTEV9PC9kaXY+PGRpdiBjbGFzcz0ibWIxMCBmczEwNSI+PGlucHV0IGlkPSJkYnMiIGNsYXNzPSJ3MTAwcCI+PC9kaXY+PGRpdiBjbGFzcz0ibWIxMCI+PHNwYW4gaWQ9ImRib3BzIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibWIxMCBmczEwNSBoaWRlIj48aW5wdXQgaWQ9ImRkb2NzIiBjbGFzcz0idzEwMHAiPjwvZGl2PjxkaXYgY2xhc3M9Im10MTAgcHQxMCBidGQiPjxidXR0b24gaWQ9ImJ0bi1zdGFydCIgY2xhc3M9Im1hcmtmb2N1cyBncmVlbiBtcjIiPntCVE5fU1RBUlR9PC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWNhbmNlbCIgY2xhc3M9Im1hcmtmb2N1cyI+e0JUTl9DQU5DRUx9PC9idXR0b24+PC9kaXY+JyxzdHlsZTp7IiBpbnB1dCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyIsIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6MjE0cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxOZXdEQjp7aWQ6ImN3LlBob3Rvbi5OZXdEQiIsbGFuZzp7fSxkYXRhOntkYnM6W10sYWxsOltdLGFsbG86e30sdXNlcnM6W10scm9sZXM6W10sYWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119LHE6MCxuOjAscGFydGl0aW9uZWQ6ITF9LFVzZXJzOltdLFMyOmZ1bmN0aW9uKHgsYSxiKXt0aGlzLnNlbGVjdDIodGhpcy5teS5maW5kKHgpLHt0YWdzOmEscGxhY2Vob2xkZXI6dGhpcy5sYW5nW2JdLHRva2VuU2VwYXJhdG9yczpbIiAiLCIsIl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpO2Z1bmN0aW9uIGQoKXt4LnBhcmVudCgpLmNzcygiaGVpZ2h0IiwiYXV0byIpfWIuYWxsPU9iamVjdC5rZXlzKGMpLGIuYWxsbz1jdy5saWIuYTJvKGIuYWxsKSx4Lmh0bWwoJC5teS5mb3JtZ2VuKGEuSFRNTCkuYXNzaWduKGEubGFuZykpLGIucm9sZXM9T2JqZWN0LmtleXMoT2JqZWN0LmtleXMoYykucmVkdWNlKGZ1bmN0aW9uKHgsYSl7dmFyIGI9Y1thXS5zZWN1cml0eTtyZXR1cm5bXS5hZGQoYi5hZG1pbnMucm9sZXMpLmFkZChiLm1lbWJlcnMucm9sZXMpLmZvckVhY2goZnVuY3Rpb24oYSl7eFthXT0hMH0pLHh9LHt9KSkuYWRkKCJfYWRtaW4iKS51bmlxdWUoKS5zb3J0KCksYi5xPWEuUGhvKCJDb3VjaCIpLnEsYi5uPWEuUGhvKCJDb3VjaCIpLm4seC5wYXJlbnQoKS5vbigiZHJhZ3N0b3AiLGQpLHgudGhlbihmdW5jdGlvbigpe2QoKX0pLFEuYWxsKFthLlBobygiR2V0VXNlcnMiKSgpLnRoZW4oZnVuY3Rpb24oeCl7Yi51c2Vycz14fSkseF0pLnRoZW4oZnVuY3Rpb24oKXthLlMyKCIjdWFkbSIsYS5kYXRhLnVzZXJzLCJQTENfVUFETSIpLGEuUzIoIiN1bWVtIixhLmRhdGEudXNlcnMsIlBMQ19VTUVNIiksYS5TZWwyU2Nyb2xsKHgsITApfSl9LHVpOnsiI2N0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PXguZGJzLmxlbmd0aD90aGlzLmxhbmcuVFhUX1RJVExFMTp0aGlzLmxhbmcuVFhUX1RJVExFfSx3YXRjaDpbIiNkYnMiXX0sIiNkYnMiOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuc2VsZWN0Mih4LHt0YWdzOltdLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLHRva2VuU2VwYXJhdG9yczpbIiAiLCIsIl0sbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9KX0sYmluZDoiZGJzIixjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPVtdLGM9W10sZD1bXTtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3guYWxsb1thXSYmYi5wdXNoKGEpLC9eW2EtejAtOV8kXChcKVwrXC1cL10rJC8udGVzdChhKXx8Yy5wdXNoKGEpLC9eW2Etel0vLnRlc3QoYSl8fGQucHVzaChhKX0pLGIubGVuZ3RoP3RoaXMubGFuZy5FUlJfREJfRVhJU1QuYXNzaWduKGIuam9pbigiLCAiKS5lc2NhcGVIVE1MKCkpOmMubGVuZ3RoP3RoaXMubGFuZy5FUlJfREJfTkFNRTpkLmxlbmd0aD90aGlzLmxhbmcuRVJSX0RCX1VORDp2b2lkIDB9fSwiI3VhZG0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiN1YWRtIix0aGlzLmRhdGEudXNlcnMsIlBMQ19VQURNIil9LGJpbmQ6ImFkbWlucy5uYW1lcyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gdGhpcy5pc1VuYW1lcyhhKX19LCIjZ2FkbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI2dhZG0iLHRoaXMuZGF0YS5yb2xlcywiUExDX0dBRE0iKX0sYmluZDoiYWRtaW5zLnJvbGVzIn0sIiN1bWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjdW1lbSIsdGhpcy5kYXRhLnVzZXJzLCJQTENfVU1FTSIpfSxiaW5kOiJtZW1iZXJzLm5hbWVzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLmlzVW5hbWVzKGEpfX0sIiNnbWVtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjZ21lbSIsdGhpcy5kYXRhLnJvbGVzLCJQTENfR01FTSIpfSxiaW5kOiJtZW1iZXJzLnJvbGVzIn0sIiNxc2hhcmRzIjoicSIsIiNxc2hhcmRzdHh0Ijp7YmluZDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sYW5nLlRYVF9TSEFSRFMoeC5xKX0sd2F0Y2g6WyIjcXNoYXJkcyJdfSwiI25jb3BpZXMiOiJuIiwiI25jb3BpZXN0eHQiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxhbmcuVFhUX0NPUElFUyh4Lm4pfSx3YXRjaDpbIiNuY29waWVzIl19LCdpbnB1dFtuYW1lPSJwYXJ0aXRpb25lZCJdJzp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5wYXJ0aXRpb25lZD1hLmxlbmd0aD4wKSx4LnBhcnRpdGlvbmVkP1sicGFydGl0aW9uZWQiXTpbXX0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLlBobygiQ291Y2giKS52ZXI8IjAwMy4ifHx4LnE8Mn19LHdhdGNoOlsiI3FzaGFyZHMiXX0sIiNjbHVzdGVyaW5nIjp7Y3NzOntoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGhvKCJDb3VjaCIpLnZlcjwiMDAyLiJ9fX0sIiNidG4tc3RhcnQiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4gdGhpcy5sYW5nWyJCVE5fU1RBUlQiKyh4Lm1lbWJlcnMubmFtZXMreC5tZW1iZXJzLnJvbGVzPyIiOiJfUFVCTElDIildO3RyeXt0aGlzLmRvQ3JlYXRlKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jYW5jZWwoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LmRicy5sZW5ndGh8fCF0aGlzLm15LnZhbGlkKCl9LCJzZWxmOm9yYW5nZSI6ZnVuY3Rpb24oeCl7cmV0dXJuISh4Lm1lbWJlcnMubmFtZXMreC5tZW1iZXJzLnJvbGVzKX0sInNlbGY6Z3JlZW4iOmZ1bmN0aW9uKHgpe3JldHVybiEhKHgubWVtYmVycy5uYW1lcyt4Lm1lbWJlcnMucm9sZXMpfX0sd2F0Y2g6WyIjZGJzIiwiI3VtZW0iLCIjZ21lbSJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LGRvQ3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPXguUGhvKCJDb3VjaCIpLGM9Yi52ZXIsZD17bmFtZToiIixzZWN1cml0eTpPYmplY3Quc2VsZWN0KGEsWyJhZG1pbnMiLCJtZW1iZXJzIl0pfTtjPiIwMDIuIiYmK2IucT4wJiYkLmV4dGVuZChkLHtxOithLnEsbjorYS5ufSksYz4iMDAzLiImJmEucGFydGl0aW9uZWQmJithLnE+MSYmKGQucGFydGl0aW9uZWQ9ITApO3ZhciBlPWEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gJC5leHRlbmQoITAse30sZCx7bmFtZTp4fSl9KTtyZXR1cm4geC5QaG8oIkNyZWF0ZURCcyIpKGUsITEpfSxpc1VuYW1lczpmdW5jdGlvbih4KXt2YXIgYT0iIixiPXRoaXM7cmV0dXJuIHguZm9yRWFjaChmdW5jdGlvbih4KXsiX2FkbWluIiE9eCYmKHguaGFzKCI6Iil8fC9eXy8udGVzdCh4KSkmJihhPWIubGFuZy5FUlJfVU5BTUUpfSksYX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKX0sSFRNTDpbJzxkaXYgY2xhc3M9ImZzMTMwIG1iMiBsaDE2MCBib2xkZXIgY20iPicsJzxzcGFuIGNsYXNzPSJmaS1saXN0IG80MCBmczg1IG1yMyI+PC9zcGFuPiAnLCc8c3BhbiBpZD0iY3RpdGxlIj57VFhUX1RJVExFfTwvc3Bhbj4nLCI8L2Rpdj4iLHtyb3c6IjEwMCUiLGxhYmVsOiI2MHB4Iixyb3dDc3M6Im15LXJvdyBwdDMgcGIzIixsYWJlbENzczoibXktbGFiZWwifSxbIntMQkxfREJTfSIsImlucCNkYnMuZnMxMDUubGgxNjAiLCJtc2ciXSwnPHNlY3Rpb24gaWQ9ImNsdXN0ZXJpbmciPicsWyJ7TEJMX0NMVVNURVJ9IiwnPHNwYW4gY2xhc3M9ImZzOTUiPicsIm51bSNxc2hhcmRzLnc1MC5tcjUiLHttaW46MSxtYXg6MzJ9LCJzcGFuI3FzaGFyZHN0eHQuZGliLnc3MCIsIm51bSNuY29waWVzLnc1MC5tcjUiLHttaW46MSxtYXg6MTZ9LCJzcGFuI25jb3BpZXN0eHQuZGliLnc5MCIsJzxzcGFuIGNsYXNzPSJoaWRlIj48bGFiZWwgY2xhc3M9ImRpYiB4Z3JheSBjcCI+JywnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJwYXJ0aXRpb25lZCIgY2xhc3M9ImZzMTEwIHZhbSBtcjMgY3AiIHZhbHVlPSJwYXJ0aXRpb25lZCI+IHtUWFRfUEFSVElUSU9OU30nLCI8L2xhYmVsPjwvc3Bhbj4iLCI8L3NwYW4+Il0sIjwvc2VjdGlvbj4iLCc8ZGl2IGNsYXNzPSJmczEyMCBtdDEwIG1iMiI+e1RYVF9BRE19PC9kaXY+JyxbIntMQkxfVUFETX0iLCJpbnAjdWFkbS5mczEwNS5saDE2MCIsIm1zZyJdLFsie0xCTF9HQURNfSIsImlucCNnYWRtLmZzMTA1LmxoMTYwIiwibXNnIl0sJzxkaXYgY2xhc3M9ImZzMTIwIG10MTAgbWIyIj57VFhUX01FTX08L2Rpdj4nLFsie0xCTF9VQURNfSIsImlucCN1bWVtLmZzMTA1LmxoMTYwIiwibXNnIl0sWyJ7TEJMX0dBRE19IiwiaW5wI2dtZW0uZnMxMDUubGgxNjAiLCJtc2ciXSwnPGRpdiBjbGFzcz0ibXQxMiBwdDE1IGJ0ZCI+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0ibWFya2ZvY3VzIGdyZWVuIG1yMiI+e0JUTl9TVEFSVH08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iXSxzdHlsZTp7IiBpbnB1dCI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyIsIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6NTZweDsifSxwYXJhbXM6e3N0cmljdDohMH19LERlbERCOntpZDoiY3cuUGhvdG9uLkRlbERCIixsYW5nOnt9LGRhdGE6e2RiczpbXSxhbGw6W10sYWxsbzp7fSxyZW5ldzohMSxyZW5ld2FjbDohMCxyZW5ld3FucDohMCxoYXNhY2w6ITAsaGFzcW5wOiEwLHJlc29yZTpbXX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpO2IuZGJzLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9Y1t4XTthLmNsdXN0ZXImJmEuY2x1c3Rlci5xfHwoYi5oYXNxbnA9ITEpLGEuc2VjdXJpdHkmJmEuc2VjdXJpdHkuc3RhbXB8fChiLmhhc2FjbD0hMSl9KSxiLmFsbD1iLmRicy5zbGljZSgwKSxiLmFsbG89Y3cubGliLmEybyhiLmFsbCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSx4LnRoZW4oZnVuY3Rpb24oKXthLlNlbDJTY3JvbGwoeCwhMCl9LmRlYm91bmNlKDE1KSl9LHVpOnsiI2N0aXRsZSI6e2JpbmQ6ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PXguZGJzLmxlbmd0aD90aGlzLmxhbmcuVFhUX1RJVExFMTp0aGlzLmxhbmcuVFhUX1RJVExFfSx3YXRjaDpbIiNkYnMiXX0sIiNkYnMiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMuZGF0YS5hbGw7dGhpcy5zZWxlY3QyKHgse2RhdGE6YS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOngsdGV4dDp4fX0pLG11bHRpcGxlOiEwLHBsYWNlaG9sZGVyOnRoaXMubGFuZy5QTENfREJTLHJlYWRPbmx5OjE9PWEubGVuZ3RoLG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOjEyfSl9LGJpbmQ6ImRicyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYS5sZW5ndGg/IiI6dGhpcy5sYW5nLkVSUl9EQlN9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PXguYWxsLmxlbmd0aH19fSwiI2RlbHdhcm4iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPXtzaXplOjAsY291bnQ6MCxkaXNrOjAsYmFzZToobmV3IFVSTChiLlBobygiQmFzZSIpKS5ob3N0bmFtZSsiIikudHJ1bmNhdGUoNDUsIm1pZGRsZSIpLmVzY2FwZUhUTUwoKX0sZD1iLlBobygiQWxsIik7cmV0dXJuIHguZGJzLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGE9ZFt4XTthJiYoYy5zaXplKz0rYS5kYXRhX3NpemV8fDAsYy5kaXNrKz0rYS5kaXNrX3NpemV8fDApfSksYy5jb3VudD14LmRicy5sZW5ndGgseC5kYnMubGVuZ3RoP2IubGFuZy5UWFRfV0FSTihjKToiIn0sd2F0Y2g6IiNkYnMifSwiI2RlbG5ldyI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgucmVuZXc9ISFhLmxlbmd0aCkseC5yZW5ldz9bIm9rIl06W119fSwiI2RlbG5ldzEiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnJlbmV3YWNsPSEhYS5sZW5ndGgpLHgucmVuZXdhY2w/WyJvayJdOltdfSx3YXRjaDpbIiNkZWxuZXciXSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXguaGFzYWNsfSwiOmRpc2FibGVkIG84MCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgucmVuZXd9fX0sIiNkZWxuZXcyIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYoeC5yZW5ld3FucD0hIWEubGVuZ3RoKSx4LnJlbmV3cW5wP1sib2siXTpbXX0sd2F0Y2g6WyIjZGVsbmV3Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4Lmhhc3FucHx8dGhpcy5QaG8oIkNvdWNoIikudmVyPCIwMDIuIn0sIjpkaXNhYmxlZCBvODAiOmZ1bmN0aW9uKHgpe3JldHVybiF4LnJlbmV3fX19LCIjYnRuLXN0YXJ0Ijp7YmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHRoaXMubGFuZy5CVE5fU1RBUlQoeC5kYnMubGVuZ3RoKTt0cnl7dGhpcy5kb0RlbGV0ZVooKX1jYXRjaCh4KXtjb25zb2xlLmxvZyh4KX10aGlzLm15LmNvbW1pdCgpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXguZGJzLmxlbmd0aHx8IXRoaXMubXkudmFsaWQoKX19LHdhdGNoOlsiI2RicyJdfSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmdGhpcy5teS5jYW5jZWwoKX19LGRvRGVsZXRlWjpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT0kLmV4dGVuZCghMCx7fSx4LmRhdGEpLGI9KHguUGhvKCJfY29tcGlsZWQiKSx4LlBobygiQ2ZnIikuYmF0Y2hDcmVhdGVEZWxheSksYz1mdW5jdGlvbih4KXtyZXR1cm4oeCsiIikuZXNjYXBlSFRNTCgpfSxkPXgubGFuZyxlPWEuZGJzLGY9ZS5sZW5ndGgsZz1bXSxoPVtdO2lmKGYpe3ZhciBpPXguUGhvKCJBbGwiKTthLnJlbmV3JiZlLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9aVt4XTtpZihiKXt2YXIgYz17Y3JlYXRlOiEwLG5hbWU6eCxzZWN1cml0eTpudWxsfTtiLnNlY3VyaXR5JiZiLnNlY3VyaXR5LnN0YW1wJiZhLnJlbmV3YWNsJiYoYy5zZWN1cml0eT0kLmV4dGVuZCghMCx7fSxPYmplY3Quc2VsZWN0KGIuc2VjdXJpdHksWyJhZG1pbnMiLCJtZW1iZXJzIl0pKSksYi5jbHVzdGVyJiZiLmNsdXN0ZXIucSYmYS5yZW5ld3FucCYmKGMucT1iLmNsdXN0ZXIucSxjLm49Yi5jbHVzdGVyLm4sYy5wYXJ0aXRpb25lZD0hIWIucHJvcHMmJiEhYi5wcm9wcy5wYXJ0aXRpb25lZCksZy5wdXNoKGMpfX0pLFEuYWxsU2V0dGxlZChlLm1hcChmdW5jdGlvbihlLGYpe3ZhciBnPSQuRGVmZXJyZWQoKTtyZXR1cm4gZnVuY3Rpb24oKXt4LlJlcSh7dXJsOltlXSxtZXRob2Q6IkRFTEVURSJ9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoZC5NU0dfT0suYXNzaWduKGUpLCJvayIpLGEucmVuZXd8fCQubXkucmFkaW8oImRiZGVsZXRlZCIsZSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxiKXtoLnB1c2goZSksY3cubGliLm5vdGUoZC5NU0dfRkFJTC5hc3NpZ24oZSx4LGMoYSkpLCJlcnJvciIpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Zy5yZXNvbHZlKCl9KX0uZGVsYXkoZipiKSxnLnByb21pc2UoKX0pKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuICQubXkucmFkaW8oImRibGlzdCIsW10pLGEucmVuZXc/eC5QaG8oIkNyZWF0ZURCcyIpKGcuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiFoLmZpbmQoeC5uYW1lKX0pLCExKS50aGVuKGZ1bmN0aW9uKCl7JC5teS5yYWRpbygiZGJsaXN0IixnLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkuc3VidHJhY3QoaCkpfSk6YS5kYnN9KX19LGRpZTpmdW5jdGlvbih4KXt0aGlzLlNlbDJTY3JvbGwoeCwhMSl9LEhUTUw6Wyc8ZGl2IGlkPSJjdGl0bGUiIGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIHJlZCI+e1RYVF9USVRMRX08L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtYjEwIGZzMTA1Ij48aW5wdXQgaWQ9ImRicyIgY2xhc3M9IncxMDBwIj48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJtYjEwIj48c3BhbiBpZD0iZGVsd2FybiI+PC9zcGFuPjwvZGl2PicsJzxkaXYgY2xhc3M9Im1iOCI+JywnPGxhYmVsIGNsYXNzPSJ4Z3JheSBsaDEzMCI+JywnPHNwYW4gY2xhc3M9IncyMCBkaWIiPjxpbnB1dCBpZD0iZGVsbmV3IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9Im9rIj4gPC9zcGFuPntMQkxfTkVXfScsIjwvbGFiZWw+IiwnPGRpdj48bGFiZWwgY2xhc3M9InhncmF5IGxoMTMwIHBsMjAiPjxpbnB1dCBpZD0iZGVsbmV3MSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJvayI+Jm5ic3A7IHtMQkxfTkVXX0FDTH08L2xhYmVsPjwvZGl2PicsJzxkaXY+PGxhYmVsIGNsYXNzPSJ4Z3JheSBsaDEzMCBwbDIwIj48aW5wdXQgaWQ9ImRlbG5ldzIiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ib2siPiZuYnNwOyB7TEJMX05FV19RTlB9PC9sYWJlbD48L2Rpdj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJtdDEyIHB0MTUgYnRkIj4nLCc8YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJyZWQgbWFya2ZvY3VzIG1yMiI+e0JUTl9TVEFSVH08L2J1dHRvbj4nLCc8YnV0dG9uIGlkPSJidG4tY2FuY2VsIiBjbGFzcz0ibWFya2ZvY3VzIj57QlROX0NBTkNFTH08L2J1dHRvbj4nLCI8L2Rpdj4iXSxzdHlsZTp7IiI6ImZvbnQtc2l6ZToxNnB4IiwiIC5zZWxlY3QyLWNvbnRhaW5lcj4uc2VsZWN0Mi1jaG9pY2VzIjoibWF4LWhlaWdodDoyMTRweDsifSxwYXJhbXM6e3N0cmljdDohMH19LFNlY09iajp7aWQ6ImN3LlBob3Rvbi5TZWNPYmoiLGxhbmc6e30sZGF0YTp7ZGJzOltdLGFsbDpbXSxhbGxvOnt9LHVzZXJzOltdLHJvbGVzOltdLGFkbWluczp7bmFtZXM6W10scm9sZXM6W119LG1lbWJlcnM6e25hbWVzOltdLHJvbGVzOltdfX0sVXNlcnM6W10sUzI6ZnVuY3Rpb24oeCxhLGIsYyl7dGhpcy5zZWxlY3QyKHRoaXMubXkuZmluZCh4KSx7dGFnczphLHBsYWNlaG9sZGVyOnRoaXMubGFuZ1tiXSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0sISFjKX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhLGM9YS5QaG8oIkFsbCIpO2IuYWxsPU9iamVjdC5rZXlzKGMpLnNvcnQoKSxiLmFsbG89Y3cubGliLmEybyhiLmFsbCkseC5odG1sKCQubXkuZm9ybWdlbihhLkhUTUwpLmFzc2lnbihhLmxhbmcpKSxiLnJvbGVzPU9iamVjdC5rZXlzKE9iamVjdC5rZXlzKGMpLnJlZHVjZShmdW5jdGlvbih4LGEpe3ZhciBiPWNbYV0uc2VjdXJpdHk7cmV0dXJuW10uYWRkKGIuYWRtaW5zLnJvbGVzKS5hZGQoYi5tZW1iZXJzLnJvbGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3hbYV09ITB9KSx4fSx7fSkpLmFkZCgiX2FkbWluIikudW5pcXVlKCkuc29ydCgpLFEuYWxsKFthLlBobygiR2V0VXNlcnMiKSgpLnRoZW4oZnVuY3Rpb24oeCl7Yi51c2Vycz14fSkseF0pLnRoZW4oZnVuY3Rpb24oKXthLlMyKCIjdWFkbSIsYS5kYXRhLnVzZXJzLCJQTENfVUFETSIpLGEuUzIoIiN1bWVtIixhLmRhdGEudXNlcnMsIlBMQ19VTUVNIikseC50cmlnZ2VyKCJsYXlvdXQiKSxhLlNlbDJTY3JvbGwoeCwhMCl9KX0sdWk6eyIjZGJzIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLnNlbGVjdDIoeCx7dGFnczp0aGlzLmRhdGEuYWxsLm1hcChmdW5jdGlvbih4KXtyZXR1cm57aWQ6eCx0ZXh0Onh9fSksbXVsdGlwbGU6ITAscGxhY2Vob2xkZXI6dGhpcy5sYW5nLlBMQ19EQlMsbWluaW11bVJlc3VsdHNGb3JTZWFyY2g6MTJ9LCEwKX0sYmluZDoiZGJzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aD8iIjp0aGlzLmxhbmcuRVJSX0RCU319LCIjdWFkbSI6e2luaXQ6ZnVuY3Rpb24oeCl7dGhpcy5TMigiI3VhZG0iLHRoaXMuZGF0YS51c2VycywiUExDX1VBRE0iLCEwKX0sYmluZDoiYWRtaW5zLm5hbWVzIixjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLmlzVW5hbWVzKGEpfX0sIiNnYWRtIjp7aW5pdDpmdW5jdGlvbih4KXt0aGlzLlMyKCIjZ2FkbSIsdGhpcy5kYXRhLnJvbGVzLCJQTENfR0FETSIpfSxiaW5kOiJhZG1pbnMucm9sZXMifSwiI3VtZW0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiN1bWVtIix0aGlzLmRhdGEudXNlcnMsIlBMQ19VTUVNIiwhMCl9LGJpbmQ6Im1lbWJlcnMubmFtZXMiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuaXNVbmFtZXMoYSl9fSwiI2dtZW0iOntpbml0OmZ1bmN0aW9uKHgpe3RoaXMuUzIoIiNnbWVtIix0aGlzLmRhdGEucm9sZXMsIlBMQ19HTUVNIil9LGJpbmQ6Im1lbWJlcnMucm9sZXMifSwiI2J0bi1zdGFydCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtpZihudWxsPT1hKXJldHVybiB0aGlzLmxhbmcuQlROX1NUQVJUO3RyeXt0aGlzLmRvU2VjVXBkYXRlKCl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9dGhpcy5teS5jYW5jZWwoKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4LGEpe3JldHVybiF4LmRicy5sZW5ndGh8fCF0aGlzLm15LnZhbGlkKCl9fSx3YXRjaDpbIiNkYnMiLCIjdW1lbSIsIiNnbWVtIl19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LmNhbmNlbCgpfSwiI2xheXByb3h5Ijp7ZGVsYXk6MTUwLHdhdGNoOlsiI2RicyIsIiN1YWRtIiwiI2dhZG0iLCIjdW1lbSIsIiNnbWVtIl0sYmluZDpmdW5jdGlvbigpe3RoaXMubXkudHJpZ2dlcigiI2xheXByb3h5IiwibGF5b3V0Iil9fX0saXNVbmFtZXM6ZnVuY3Rpb24oeCl7dmFyIGE9IiIsYj10aGlzO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7Il9hZG1pbiIhPXgmJih4LmhhcygiOiIpfHwvXl8vLnRlc3QoeCkpJiYoYT1iLmxhbmcuRVJSX1VOQU1FKX0pLGF9LGRvU2VjVXBkYXRlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPSQuZXh0ZW5kKCEwLHt9LHguZGF0YSksYj0oeC5QaG8oIl9jb21waWxlZCIpLGZ1bmN0aW9uKHgpe3JldHVybih4KyIiKS5lc2NhcGVIVE1MKCl9KSxjPXgubGFuZyxkPWEuZGJzLmxlbmd0aCxlPU9iamVjdC5zZWxlY3QoYSxbImFkbWlucyIsIm1lbWJlcnMiXSksZj0oZS5tZW1iZXJzLm5hbWVzLGUubWVtYmVycy5yb2xlcyxlLmFkbWlucy5uYW1lcyxlLmFkbWlucy5yb2xlcyxlLm1lbWJlcnMubmFtZXMsZS5tZW1iZXJzLnJvbGVzLGEuZGJzKTtkJiZmLmZvckVhY2goZnVuY3Rpb24oYSxnKXt4LlJlcSh7dXJsOlthLCJfc2VjdXJpdHkiXSxtZXRob2Q6IlBVVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGRhdGE6SlNPTi5zdHJpbmdpZnkoZSl9KS50aGVuKGZ1bmN0aW9uKCl7Y3cubGliLm5vdGUoYy5NU0dfT0suYXNzaWduKGEpLCJvayIpfSkuZmFpbChmdW5jdGlvbih4LGQsZSl7Y3cubGliLm5vdGUoYy5NU0dfRkFJTC5hc3NpZ24oYSx4LGIoZCkpLCJlcnJvciIpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Zz09ZC0xJiYkLm15LnJhZGlvKCJkYmxpc3QiLGYpfSl9LmxhenkoeC5QaG8oIkNmZyIpLmJhdGNoQ3JlYXRlRGVsYXkpKX0sZGllOmZ1bmN0aW9uKHgpe3RoaXMuU2VsMlNjcm9sbCh4LCExKX0sSFRNTDpbJzxkaXYgY2xhc3M9ImZzMTMwIG1iMiBsaDE2MCBib2xkZXIiPntUWFRfVElUTEV9PC9kaXY+Jyx7cm93OiIxMDAlIixsYWJlbDoiNjBweCIscm93Q3NzOiJteS1yb3cgcHQzIHBiMyIsbGFiZWxDc3M6Im15LWxhYmVsIn0sWyJ7TEJMX0RCU30iLCJpbnAjZGJzLmZzMTA1IiwibXNnIl0sJzxkaXYgY2xhc3M9ImZzMTIwIG10MTAgbWIyIj57VFhUX0FETX08L2Rpdj4nLFsie0xCTF9VQURNfSIsImlucCN1YWRtLmZzMTA1IiwibXNnIl0sWyJ7TEJMX0dBRE19IiwiaW5wI2dhZG0uZnMxMDUiLCJtc2ciXSwnPGRpdiBjbGFzcz0iZnMxMjAgbXQxMCBtYjIiPntUWFRfTUVNfTwvZGl2PicsWyJ7TEJMX1VBRE19IiwiaW5wI3VtZW0uZnMxMDUiLCJtc2ciXSxbIntMQkxfR0FETX0iLCJpbnAjZ21lbS5mczEwNSIsIm1zZyJdLCc8ZGl2IGNsYXNzPSJtdDEyIHB0MTUgYnRkIj4nLCc8YnV0dG9uIGlkPSJidG4tc3RhcnQiIGNsYXNzPSJtYXJrZm9jdXMgZ3JlZW4gbXIyIj57QlROX1NUQVJUfTwvYnV0dG9uPicsJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiIGNsYXNzPSJtYXJrZm9jdXMiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPicsIjwvZGl2PiIsJzxkaXYgaWQ9ImxheXByb3h5IiBjbGFzcz0iaGlkZSI+PC9kaXY+J10sc3R5bGU6eyIgaW5wdXQiOiJkaXNwbGF5OmlubGluZS1ibG9jazsiLCIgLnNlbGVjdDItY29udGFpbmVyPi5zZWxlY3QyLWNob2ljZXMiOiJtYXgtaGVpZ2h0OjU2cHg7In0scGFyYW1zOntzdHJpY3Q6ITB9fSxSZXFKU09OOntpZDoiY3cuUGhvdG9uLlJlcUpTT04iLHBhcmFtczp7cmVzdHlsZToxMDAsc3RyaWN0OiEwfSxkYXRhOnt0ZXh0OiJMb2FkaW5nLi4uIixkcmFnOiExLGhlaWdodDoibm9uZSIscmVxOnt1cmw6W10saGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6ImdldCJ9LGNtOnttb2RlOiJqYXZhc2NyaXB0IixsaW5lTnVtYmVyczohMSxzY3JvbGxiYXJTdHlsZTpudWxsLGxpbmVXcmFwcGluZzohMCx0YWJTaXplOjIsdGhlbWU6ImRlZmF1bHQiLHJlYWRPbmx5OiEwfX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2Z1bmN0aW9uIGMoeCl7Yi50ZXh0PUpTT04uc3RyaW5naWZ5KHgsbnVsbCwiICAiKSxhLm15LnJlY2FsYygiI3RyZXN1bHQiKX14Lmh0bWwoW2IuZHJhZz8nPGRpdiBpZD0iZHJhZ2dlciI+PC9kaXY+JzoiIiwnPHRleHRhcmVhIGlkPSJ0cmVzdWx0IiBjbGFzcz0idzEwMHAiPjwvdGV4dGFyZWE+J10uam9pbigiIikpLHgudGhlbihmdW5jdGlvbigpe2EuUmVxKGIucmVxKS50aGVuKGZ1bmN0aW9uKHgpe2MoeCl9LmRlYm91bmNlKDUwKSkuZmFpbChmdW5jdGlvbih4LGEsYil7YyhhKX0pLmFsd2F5cyhmdW5jdGlvbigpe3gudHJpZ2dlcigibGF5b3V0Iil9LmRlYm91bmNlKDUwKSl9KX0sdWk6eyIjdHJlc3VsdCI6e2JpbmQ6InRleHQiLGluaXQ6ZnVuY3Rpb24oeCl7Q29kZU1pcnJvci5mcm9tVGV4dEFyZWEoeFswXSx0aGlzLmRhdGEuY20pfX19LHN0eWxlOnsiICNkcmFnZ2VyIjoid2lkdGg6MTAwJTtoZWlnaHQ6MTVweDtjdXJzb3I6bW92ZTsiLCIgLkNvZGVNaXJyb3IiOmZ1bmN0aW9uKCl7cmV0dXJuInBhZGRpbmc6MHB4OyBoZWlnaHQ6Iit0aGlzLmRhdGEuaGVpZ2h0KyIhaW1wb3J0YW50OyJ9LCIgLkNvZGVNaXJyb3ItbGluZSI6ImZvbnQtc2l6ZToxM3B4OyAiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWF4LWhlaWdodDpub25lIWltcG9ydGFudDsifX0sZmlsZXM6eyJmYXZpY29uLnBuZyI6e2RpZ2VzdDoibWQ1LW9DM3FJSTBZS2ZYTDBnWlFsN1NtL2c9PSIsY29udGVudF90eXBlOiJpbWFnZS9wbmciLGRhdGE6ImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFEOEFBQUJBQ0FZQUFBQ3RLNi9MQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUQ1cEpSRUZVZU5yY1d3MTRWRlY2L3M2OWR5WXprOHhNUW42QWhFQVNDRCtXQnl4ZFZza3VLaUtpZG9rc3JWYTJXQzF0bi9xRHN1dUR1MHRiYmYzWjdkYjFXVnQzVVhaclFaRHFzMXBSMGE0cmlxS3VLTHBhUUFSYWtCOURRZ2lFWkNiSi9ONTdUci8zM3R3d2lVbElNTUhFNytGd1p5YjNudk8rNTN6bis3djNpaFUvdklkNkZDRklUNlhJTkRUU1RJMEkvendhUlZvdHFqdWc2SStxQkxVMEVlbTZvQlFwOHZBSmJhazA1ZmgxSWtuVTBpWW9KMGVSdExnckE3OUovbG1ScnBSUFNpMmJLTzBuOHNRMVRiWlpRaVEwRWp5QVJzcTBTT1BUVzFzRkJiTWx3ekFvSHBlVWxjVlg4UFZlUHMreUZBWHppRDdjcHFoNGdxQndqazR5TGUxeHBTSEpNQ1ZaWGkrUlVqM1NNMmdRaFhrd1FicUJzVjdGdEM3Z1k0RmdMQmFhTk52UE1ra1hHdWJaYml3bmxhRHRmUHdOWDcrT2oyMkRoVy9BeVd0Q0ZQSGhKN3hBTjNxOWxtaHRUVkFpZ1piaXlSRHAzTnhRVTA1MmRpSVVDcExYbDBXcFJKTGlzUmkxdHJYNW1wdWplVktxQXAvUCs4Yytudzl0RlNsTjhhU3Q1WWxaeWYwMkRFbnl2R2dMK2JEQm80dnNVNmVpdkRWYTFLaWlvdHFMTHFvS3pQakQ2WGxsNDBySjR6RThmRTVSYi8yazB5WWRQbEpESC8zUHpxWnQ3MzRRTzNyc1dIRTRHRndhekFrdTVRM0dHMGt0NGRPZUh4TGtlVVVXODM5cnJWUTZxNmJ1QkkwcXptKzQ5ayt1RHMyWjh3MmZiaGdsL2UyUEo0Z3FKNVNqNWYzWk5RdnpMTk9rTjk1NEo3SHA1VmVpTlRYMVJjWEZoYzk1dk42a0VPb3YrZlNuempsNTJCQmV3eklseGRzcEt6WG15T0hqTkdQNnBPWWZyTGd0WjNUeHlLS0JWRTJlUUxwczNzVSt0R04xeDgzSDFxeHYvV2puLythT0t4MzVwSkxlQnd5UG1zMTREcDg3OHBMK3RmSThjZnVlUGJWaTdOZ3hrVlVQLzhoZlBIcGtMZzJ5OE1RYWQvM0RuYmwxeDQ2bkh2cjVMK043OWg0ZFUzbGV5Y0dtcUhxWS8vemRmbXR0UDEyZExneHRSeUlSbjhxcjBMcnM5ci9KbmozckFpSGF6ZlM1Rk1VcjhQYnZ0cXRmclBwVmZIVHg2SURQNTkrdFRIayt1enFycjY1TzY0ZEZ5ek04V21OZGJkMVVuNUVWZVdUVmcxa1hWVjM0cFJCMzFrV2ppMmJQRW8rcytwa0hlSUFMK0lDeno1NnBUd01wbXFaN3RLUDdEaHdLejUxN1NlcSsrLzh1cHlBL3owTkRRSUFEZUlBTCtJQVRlQWVFdkJKaW5LRWI3MzJ5Ny84Q2YvR2RhODNyLy93YXcrdjE2RFNFQkhpQUMvaUFFM2lCKzh3R3J5ZXRWZmJHQ21oWjN0MTc5KzczMy9LM1M4MzVsMS9DTVl6UWFBaUtybXZhMWRYenllZkxNbGYvNm5IL2xDbVZ1NlVsUi9LZllqMXhORlJLOXRDWlRrS1hCdy9zUDV6em5jV0xVdk12djlqN1plM3Z2dHNCb1RGT0xkb1NUVDN6eklzNTQ4ZVhIbFNXTnNxeXJCN1VYampoV1RmdE40Mm5ta2ZPdW5CR2JOSENiM21HNklKM2F3aUJ0MnJXakRiZ0I0K2VPR3JDVGlveW1xTWpTMHd6ZmFVcHJjak5OeS8xR29ZdWFCZ0o4TjU4MDFKdm12R0RCL2lBVjFldVdxVGxPTG10T1ZwUHlyRDN6NXFEaDQ2b2YxeTVJc2Z2OHhrMERJV1RJczgvTVg3d0FCL0ZKanJTMGtEUjFoTWRyY3ZLQ3hpNmpVM05VYytDNnNzVFplVmpkUnJHQXZ6Z0FUNU1iQ1A0ZFZwNUdEWTBUYk4vQ0hIYStlMVlXeXl5WlBHMVB2b0tDSGlBanlhMGJ6djhOSEk1NjNralJ0T3BVeEZxT05GSWxSV1QvN3V4c2JGaThYVUxhZEtrQ1lNWHhMZ2hwNjFwR1o4SHhRVnlqcDN0b3c4Ly9OaklIMUgwOVIyN2RxMXZibzR5NTJZeVhEZmd5OHJ5S3lIbnh1S3B5THg1bDRiUGVyVFdWcUthR3FMang0a2FHb2hIY1g1TEpPd3lsdDFxYTRtcXE0a1dMQ0I2NlNXaVRadUlTa3JzMG8vZGZLeDBPVGxFSTBadzlzOUo0a2gyMTZXbHptOW5JY3pIdDM3RHN4RkYxbHp3VEtWU2Nkc3dYbmI1bFhaRVk1cm12ZlZIYTloTlhPVmgxZTk3ejU5K1NyUnZuM01FMGJZMklrNkdLSms4M1Rnbjc2aFRjWXBLUjQ0UXpaN3RYTi9VNUZ3Zmp6dm5RUlBzbkpuUFE5SE9iVWhTc3JPZENSay9ubWp5Wk9mWXAzS2FvSVZYWCtIWnV2VjNWUFhOaSs0MURPTk8rRHFqdnJhbVBVVE0rdDdKRTAxVXZXQitnSG92dFJEdDJrWDArOThUSFR2R0pqUkNGSTBTdGJRNDVEd2VCemhXRUo4QlhOTTZGZmJzODBIR0daZ29qM09SM0Z4SEsxeHh0UVFUQ2EzQnhHQnNUTXpPblVTaEVGR1lGWFQwYUtLdmZZMW8yalJudkI2a3V2ckt3SDg5czRrQzJkbmZTNldTZDlvcjcxaEFNWmxYWGg4L1lleEpqcE1MdWw1bzdkaEJXbUVoQ2FqbWd3OFNIVGpnckRBRTVEQm9RVUhuL1p6NVdYYUpJcnY3N3JZdUZWQzcvNHdVMnhaTUNMUU1rdyt0ZWY5OW9na1RpRmF1Sk1WYlNwNDRRZnI1NTNmcUtzdnJJZkNMSjlJRmJQUW1LNlgyYVo0c0R4bGU0Nlk0cTkxbGw4M0p6Z3p0NVR2dlVQcWVlMGd0VzBacTJ6Ym5EL3YzTzZzTTlVTUxCQnp5TG5oWGJYdkpvL3R0SE4zbWpvSHhNSzZMQVhpQUM2Y3pUdUFGYnVEUFJBRis0QW0rNEEzRFQ0Ym11U0VhYmFGdnpQcTZ2Mk9TV2MzTUgvK1k2TmxuN2RtMEd0b0xweE1uT25zUGhqS1Q3TG10Wkp5ZURPQUFIdUNDbGpKTzRBVnU0QWNQVjhBUFBNRVh2TFdjWUQ2cUlybCt2eithNWN0UU1WekU2bVB2S1c2Q2paUk5jZWJNN2xYM3l4SVhCK01DUHVCME1kdjRNOGlESDNpQ0wzaHIvS0Vrellha3ZLejAxT2YyRzFRTG5mUE15amZmSklIUGMrY1M5K0M0TDllQzk2WDFzeVRjNXdZY3dNTzRnQTg0YlUwQVZ1RFhPaWRrNEFtKzRLMUZJaWVtSnhKSnFxd2NIK3lsV2tEaTVFbXl0bTkzdm4vLyswN0hVQzlZYmxqaE16VjNtd2p4T1VEMmQvenVxbkZmK3NPNEdCODRnQWNxei9pQXM4T1RkQ1BnQ2I3Z3pmbVBtc2FXbmlyS3gvWmVmZVVnUTkxOU44a1hYeVN0ckl6b3JydUlmdnRib2s4K2NTeHZaclNXYWVrejl5Zk9nVCt2cXp1dHJqamlPd1FyaUhQZHlYQTFKbE56M0hGZzZCQXJYSEVGQi9GbEpOa2RBcDhkRFBVaTRQbjZHMjhUZUxORDlwU2tMVW41K2ZsNnIvdUtWVWtkUGt6eWpqdUlIbmpBbVlDYmJuSWlPUVFxN3NwMU5VcVpFd0ZTQ0hvMmJIQW1BWUxqeFJkekVMN0VjV3R1SDVuRU04bWpEL1NIMkFDUkgrQ3g2a3RlZllWSkJLNWU3QkY0Z2k5NEc0S3NvT0l2UG45blZaRmRMVGc2TEM4bnRYVXJ5ZHR1STFxNGtNUWxsemdBMmtGMGN3dXJlNWsweVFsOW9lS3dJWXNYTytyYlF6V3RSK0VBUzIzWlltdWp3cGFzcUhENjdDM1ZaWjdnQzk0SXhmS1VzbmpzUHNUTjZCZ1R3QkdXdVhzM2FTKzg0TVRrYm4zYzNjL3RyVlBaQzMvSDlXeUZOU1lyc0VKMjNsbEdpbFZXcmwzckJDMmNiWFdzTkYranVnWkI3amdJZEJEUWZQd3hpWFpjWnlJT0FVL3daY25yc1ZDaDlXU2hBUUN1andkWDJPOEljN3VxZThkSDFYbXZBakEzdVhjdkdmZmVTNElUR0JBM3NWZC8vV3RuRWpOdk5IVEYwRlg5MlVZSWhNVzRwcCt1VjJxYVpQS3lTUWlkWXJGV3lnMEgreDVrdUNGdGY5d1l6b1ZoMnJpUjFJd1pKSzY3anRUeno5dmZCWUlVWkhQOUNaak9JcG9FVC9EbGl5S0dJcjFGNkJvbDRzbnVPeC9vS0k2Tm1vQ2ZyYTkzaHVBanZ0dkdEcG94TUZYTTA3aTdTSng1Z3ErUTFNSXJuNjcxOEpmR3hsTldSVVdaM21sL3M4OVVVQzlqQU10NDZBdVpZTEo5c3ZtbzhCMWVJeU1hKzhLQ3Z0eTRJVVBBay9reVQ2dldzSlRZeGZrdEhUejBXZlBNbVRQeU13TWJEM3k1WVRoR2FDQ0Y0d0pSVmVWVVdxcXJTY1AyZ2Q4ZVNBRnBURUNYZ09jUTgyUysrVGJ2Y0xod0o2a0dUb28rYllFYnpLai9rT0k5T1ZnMWE5bSs2alJsQ2dsdWc1TC9kT051d2RQbnk4b0hiODdudFZvUEc2OURoMnM2VGIzaS9YZjB4aHNkZDJVTVF2VzZxeHNjYU9GVmg3Y3BmZnh4RWhtckQ1NkZoZmtvMXRZYXJTMk5xTncyYzU2Ym0rU1kxODNzOERqSVNYWS9TQmFHK20ycTdoMkJzdTFWOFdPUGNmN3VrQWMvNWhsaTRzM2diVWl5MkM1WTYwS2g0UEozM24wL2Z1bWMyWFpPcjdIYVovRStGTERPdlNRS1E1WTg0aERlVmxxR3ZRSS81dWszWlhxZGJYdlR5VFJXZGpYbnVjdGZlKzJOTnBjOFZOSEN4VzVrTnR5RTNhZUU2OHpZVXVESFBQMW15bHdOelRCczlWQnFuOWViWlgxNjRMT0NaQ3B0MTd1VW0xM0JZbXJhOENQZmp0dU5Nc0VML01hV2xWcXBWSEtmdmZLalNrcmQwdlZEQlcxdEt6WnRlamwyelo5V0J6Ulc5VkVyVjNKQW9BOVA4bXlyRkd1czFyNWx3YXVnY0VRZ2xKZjNrR0ViY0VIaTBua0wydDI2MXo5OTJ2UllUYzJ4eUJQclZvWDdWYnNmOHZPZzZQb2JibzJVbG80Tzc5eTFNK0RldE9pNFY1ZElKdU5DYVZ2OGZtLzQxVmRmVDlCWFNNREg3L2VGQmVsYndOUGxMRzVldHJ6RE5VZ3BRK0hjd2toZFRYMWt6WC84VzhqcjlRejc1VStsMG1ycFh5MlBGbzhaRlk1R0cxbWp0YWpydWpYY3EwT1QyQ05LUmxsRm5ndGtCOElibm5yNks3SDY0QUUrVXNubkhINlNYTTZvM3RMcGhrSUJMY3JMRGFWZjNMVFpkL2pRWjlad0pnNzg0QUUrVEd5UjQ5bE84OVhDd1pIa3R0elFLQkltM0xwY1dsRStUdHp6encrMnhoTUpjemdTQjI3Z0J3L3dFYnlNNFdBUmhYSUtPMXFYbGNkN0VMWmYzR0FZbnBjTlRROC8rdWlhbEdsYWFqZ1JCMTdnQm43d0FCL3c2c3BWYzU2MzY3WmRsVDhpOS9pNzczMFUyUGo4UzJtY1BEeGlla25BQzl6QUR4NDljVFNFdC9zQXhxN2VLbEV4b2JMcytKTlBiY3dKaFVMbS9IbEQ5eUhFZG84bFg5bjhwbVM4M2lsVEtsdE5TMVlRWHRUUXU0ZmM4OG83YVdkTUpsTlRwMHlhRUYvOXl6WEdDNXRla2J4L2hxUUtBQmZ3UGNJNGdSZTRnYjhqc2UrbW5YRVZoVkpIVE11OGNNcWtpYkgxVHo1dFBQR2Z6NWpzTzRlVUZ3QWU0QUsrUDVnOE1RYTh3SDNHaWxxZjFFblFMaXN0eDB5ZVVINW95NWF0NGIyNzkwWHUvTUh0Z2FIdzVQWEp4cWIwVC8vbDRWamQ4Zm93NDR1WUtWbXVkR3JxeTdWOTM3K0ttc3kwekM4dUtkNmRNSlBoVzI1ZGtYeHIyM3RLS2ZWbDdXL0MrTGZjZWtjYWVJQUwrSUN6cjMzb1ZkK2MwMnVwU1VQMHgwbU9rTGhuUmtyVHhhT3RNUzJ2ZUZSNDl1WlgzaEx2ZjdBak1uWHFaQzBZekRsbkR5emlOWlA3N3Y5WjYydXZ2dW1ycUJocnRNYjBoLzArN1dvbG5WczhlQnRONDJSR25hSHdlbGFXbSszOWQvZnZVUlhublZkeU5KMU9ocGZkL3ZmZSsrNy9hVE5lQUJwTTB1Z2Y0MkE4akl2eDkrK1JGY0J6TnYyZFZXVVNlWUdacHNNOGFDa0hFa3NtVm81N3JQRlVKSGY1SFhmYnI1WlZYem5mZmJYc2kxdnhqRmZMNnVzYThXcFpMbytYTkZQcHYrYnhONWpwczM5KzhRdWpZMVhiZ0FoS3ovSXNLaDlYc3Q2VVZ0SFR6NzVBLzc1dWd4cFZXRlJYVlRVejg2WENQbFNmTWw0cTNQWkJyUDVFUTNFNEorZ0xCb00rN3IvTkpHbS9WTWpqZnVHSkhiQ2FOSHVFalhobzJiSlUwWWdSb1ovazVZVnY1TXlwNUsyM3R0SG16YTkvN25WU2Z5RFEwK3VrSHAvUGk2ZW04emdIenlzckhhT0VVR3RqQ2ZsRFE2TUdSUU5uWUkxQnNNSjRiR3NwWTF3YUk1a2Q5QWV2RHdRQzM5SjAvUUpXa3dLMlNVVnAwNkpFVTRUYzJ3bzZSMkErdjUrS2NZOWVhQ2M1a3RxdUtmMmxGa28rRVZSNkcrNDh5RUh3S29QNkxMMUZDazhxcm1hU3ExVjdwSVdqTHNnbk5LUDlGWElqcmduWnhsRlRRblhjWWxIdTlZUHFOZjVmZ0FFQXY0TVhNRjYzNXdrQUFBQUFTVVZPUks1Q1lJST0ifX0sc3RhbXA6MTY1MDA2MjY1NTY0Mn0sImN3LlBob3Rvbi5TeW5jVGFzayI6e2lkOiJjdy5QaG90b24uU3luY1Rhc2siLGJ1aWxkOjI3LGxhbmc6e30sZGF0YTp7dGFzazoiTXVsdGkiLGRvYzoiIixtb2RlOlsib25jZSJdLHNyYzp7dXJsOiIiLGRiczpbXSx1c2VyOiIiLHB3ZDoiIix1Y3R4OltdLHVucHJlZml4OiIiLGZpbHRlcjpbXSxmbjoiIixpZHM6W10scXVlcnk6e30semlwOiExLG9wdHM6W119LHRndDp7dXJsOiIiLHVzZXI6IiIscHdkOiIiLHByZWZpeDoiIixjcmVhdGU6ITEscToiIixuOiIiLGFjbDohMSx6aXBmaWxlOiIiLG9wdHM6WyJjcmVhdGUiXX0sdGFza3M6W119LERCczpbXSxpc0NvdWNoMjohMSxjYW5aaXA6bnVsbCxjYW5TdHJlYW06ITAsaXNTdHJlYW1pbmc6ITEsVW56aXBUbzpbXSxVbnppcERCbWFwOm51bGwsZG9jc1RvU2F2ZTpbXSxVbnppcFN0cmVhbTp7fSxVbnppcE9wdHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLnRndC5vcHRzfSx1aTp7IiNydGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMubGFuZztpZih4Lm1vZGUrIiI9PSJ6aXAiKXtpZih4LnNyYy56aXApcmV0dXJuIGEuVFhUX1RJVExFX0RVTVB9ZWxzZSBpZih4LnNyYy51cmx8fHguc3JjLmRicy5sZW5ndGgpcmV0dXJuIGEuVFhUX1RJVExFX1NZTkM7cmV0dXJuIGEuVFhUX1RJVExFfSx3YXRjaDpbIiNybW9kZSIsIiNyemlwZHVtcCIsIiNyc291cmNlIiwiI3Jzb3VyY2VzIl19LCIjcm1vZGUiOntpbml0OmZ1bmN0aW9uKHgpe3gudGFncyh0aGlzLmxhbmdbIkNvcHkiPT10aGlzLmRhdGEudGFzaz8iVEFHX01PREVfQ09QWSI6IlRBR19NT0RFIl0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztpZihudWxsIT1hJiYoeC5tb2RlPWEubGVuZ3RoJiYiZG9jIiE9YT9hOlsib25jZSJdLmNvbmNhdChhKSkseC5tb2RlLmluZGV4T2YoInppcCIpPi0xKXt4Lm1vZGU7ITA9PT1iLmNhblppcD94Lm1vZGUubGVuZ3RoPjEmJih4Lm1vZGU9WyJ6aXAiXSk6ITE9PT1iLmNhblppcD9jKCk6bnVsbD09PWIuY2FuWmlwJiZkKCkudGhlbihmdW5jdGlvbih4KXtiLlBobygpLmNhblppcD14LGIuY2FuWmlwPXgseHx8KGMoKSxiLm15LnJlY2FsYygiI3Jtb2RlIikpfSl9cmV0dXJuInppcCI9PXgubW9kZVswXT8oeC50Z3QuemlwZmlsZT14LnRndC56aXBmaWxlfHwiZHVtcC0iK0RhdGUubm93KCkudG9TdHJpbmcoMzYpKyIuemlwIixiLm15LnJvb3QoKS5hZGRDbGFzcygiaGFzemlwIikpOmIubXkucm9vdCgpLnJlbW92ZUNsYXNzKCJoYXN6aXAiKSx4Lm1vZGU7ZnVuY3Rpb24gYygpe3gubW9kZT1bIm9uY2UiXSxjdy5saWIubm90ZShiLmxhbmcuRVJSX05PWklQLCJlcnJvciIpfWZ1bmN0aW9uIGQoKXt2YXIgeD0kLkRlZmVycmVkKCksYT1iLm15LmZpbmQoIiN6aXAtdGVzdGVyIik7cmV0dXJuIGEubXkoYi5aaXBUZXN0ZXIse30pLnRoZW4oZnVuY3Rpb24oYil7eC5yZXNvbHZlKCEwKSxmdW5jdGlvbigpe2EubXkoInJlbW92ZSIpfS5kZWxheSgyMDApfSkuZmFpbChmdW5jdGlvbihhKXt4LnJlc29sdmUoITEpfSkseC5wcm9taXNlKCl9fX0sIiN4c3NoaW0iOntjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hMX19fSwiI3Jkb2NpZCI6e2JpbmQ6ImRvYyIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtpZih4Lm1vZGUuZmluZCgiZG9jIikpcmV0dXJuIGE/Il8iPT1hWzBdP3RoaXMubGFuZy5FUlJfSURfVU5EOnZvaWQgMDp0aGlzLmxhbmcuRVJSX0lEfSxjc3M6e3NoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4Lm1vZGUuZmluZCgiZG9jIil9fSx3YXRjaDpbIiNybW9kZSJdfSwiI2J0bi1zdGFydCI6e2RlbGF5OjYwLGJpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2lmKG51bGwhPWEpaWYoInppcCI9PXgubW9kZSl7dmFyIGM9Yi5teS5yb290KCkucGFyZW50cygiI2wtYm9hcmQiKS5lcSgwKSxkPWMuZmluZCgiI2wtcGl2b3QtcmIiKTtpZihkLmRhdGEoIm1vZGFsIikpY3cubGliLm5vdGUoYi5sYW5nLk1TR19aSVBfUlVOTklORyk7ZWxzZSBpZih4LnNyYy56aXApe3RyeXtiLnJ1blVuZHVtcChkLGMpLmFsd2F5cyhmdW5jdGlvbigpe2IuY2xlYW5EYXRhKHgpfSl9Y2F0Y2goeCl7Y29uc29sZS5sb2coeCl9Yi5Eb250U3RvcFVuemlwPSEwLGIubXkuY2FuY2VsKCl9ZWxzZSBiLnJ1blppcChkLGMpLnRoZW4oZnVuY3Rpb24oKXtiLmNsZWFuRGF0YSh4KX0pLGIubXkuY2FuY2VsKCl9ZWxzZSBiLnJ1blRhc2tzKCkudGhlbihmdW5jdGlvbihhKXt2YXIgYz0hMDthLmZvckVhY2goZnVuY3Rpb24oeCl7InJlamVjdGVkIj09eC5zdGF0ZSYmKGM9ITEpfSksYyYmYi5jbGVhbkRhdGEoeCksT2JqZWN0LmlzRnVuY3Rpb24oYi5SZXN0YXJ0UG9sbCkmJmIuUmVzdGFydFBvbGwuZGVib3VuY2UoYi5pc0NvdWNoMj8xZTM6MTAwKSgpfSksYi5teS5jYW5jZWwoKTtyZXR1cm4gdGhpcy5sYW5nWyJ6aXAiPT14Lm1vZGUmJiJDb3B5IiE9eC50YXNrP3guc3JjLnppcD8iQlROX1NUQVJUX1VOWklQIjoiQlROX1NUQVJUX1pJUCI6eC5tb2RlLmZpbmQoImRvYyIpPyJCVE5fU1RBUlRfRE9DIjoiQlROX1NUQVJUIl0oKHguc3JjLmRicy5sZW5ndGh8fDEpKih4Lm1vZGUuZmluZCgiMndheSIpPzI6MSkseC5zcmMuaWRzLmxlbmd0aCx4Lm1vZGUpfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMubXkudmFsaWQoKXx8KCEoeC5zcmMudXJsfHx4LnNyYy5kYnMubGVuZ3RofHx4LnNyYy56aXApfHwoInppcCI9PXgubW9kZT94LnNyYy5maWx0ZXIuZmluZCgiaWRzIikmJiF4LnNyYy5pZHMubGVuZ3RofHwheC50Z3QuemlwZmlsZSYmIXguc3JjLnppcDoheC50Z3QudXJsKSl9fSx3YXRjaDpbIiNyZG9jaWQiLCIjcnNvdXJjZSIsIiNyc291cmNlcyIsIiNyc2xvZ2luIiwiI3JzcGFzcyIsIiNyZm4iLCIjcmRvY3MiLCIjcnF1ZXJ5IiwiI3J0YXJnZXQiLCIjcnRsb2dpbiIsIiNydHBhc3MiLCIjcnR6aXBmaWxlIiwiI3J0dW56aXBkYnMiXX0sIiNidG4tY2xlYXIiOntkZWxheTo2MCxiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHRoaXMuY2xlYW5EYXRhKHgpLHRoaXMubXkucmVkcmF3KCkpfSxjc3M6eyJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiJDb3B5Ij09eC50YXNrfX19LCIjYnRuLWNhbmNlbCI6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYodGhpcy5jbGVhbkRhdGEoeCksdGhpcy5teS5jYW5jZWwoKSl9LCIjeHNvdXJjZSI6e2Nzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iU3luYyIhPXgudGFza3x8InppcCI9PXgubW9kZSYmeC5zcmMuemlwfX0sd2F0Y2g6WyIjcnppcGR1bXAiXX0sIiNyc291cmNlIjp7ZGVsYXk6MjAsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2Z1bmN0aW9uIGIoYixjKXthLm15LmNoZWNrKCIjcnNvdXJjZSIpLGEuZml4SGVpZ2h0LmRlYm91bmNlKDEwMCkoeCl9IlN5bmMiPT1hLmRhdGEudGFzayYmeC5hdXRvY29tcGxldGUoe2RlbGF5OjAsc291cmNlOnRoaXMuREJzLGNsb3NlOmZ1bmN0aW9uKHgsYil7YS5teS5jaGVjaygiI2J0bi1mb2xkc3JjIil9LmRlYm91bmNlKDEwKSxzZWxlY3Q6Yi5kZWJvdW5jZSgxMCksYXBwZW5kVG86YS5teS5yb290KCksbWluTGVuZ3RoOjFlNH0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zcmMudXJsO3ZhciBiPWEucmVwbGFjZSgvW1xyXG5cdFxzXS9nLCIiKSxjPWIubWF0Y2goL1wvXC8oW15cLzpcc10rKTooW15cLzpAXHNdKylALisvKTtyZXR1cm4gYyYmMz09Yy5sZW5ndGg/KHguc3JjLnVzZXI9Y1sxXSx4LnNyYy5wd2Q9Y1syXSx4LnNyYy51cmw9Yi5yZXBsYWNlKGNbMV0rIjoiK2NbMl0rIkAiLCIiKSk6eC5zcmMudXJsPWIseC5zcmMudXJsfSxjaGVjazpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSl7dmFyIGM9dGhpcy5sYW5nO3JldHVybiBiLmlzVVJMKGEpJiYhYi5pc1ZhbGlkVVJMKGEpP2IubGFuZy5FUlJfRlJPTV9VUkw6IlN5bmMiIT14LnRhc2t8fGIuUGhvKFsiQWxsIixhXSl8fGIuaXNCdWNrZXRVUkwoYSk/dm9pZCAwOmMuRVJSX0ZST019fSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjcnNvdXJjZSIpfS5kZWJvdW5jZSgyMDApKCksITB9fX0sIiNyemlwZHVtcCI6e2RlbGF5OjIwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEmJmEpe3ZhciBjPXRoaXMsZD1iWzBdLmZpbGVzWzBdO2lmKGQmJiFjLmlzU3RyZWFtaW5nKXt2YXIgZT0hIWQuc3RyZWFtO3guc3JjLnppcD1kLm5hbWUuc3BsaXQoIi8iKS5sYXN0KCk7dHJ5eyhlP2Muc3RhcnRVbnppcFN0cmVhbShkKTpjLnN0YXJ0VW56aXBTeW5jKGQpKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBiPWEuaW5mbzskLmV4dGVuZChjLlVuemlwU3RyZWFtLE9iamVjdC5yZWplY3QoYSxbImluZm8iXSkpLGMuVW56aXBUbz1iLmRicyxjLm15LnJlY2FsYygiI3J0dW56aXBkYnMiKSxiLmRicy5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguc2VjdXJpdHk/MTowfSkuc3VtKCkmJmZ1bmN0aW9uKCl7eC50Z3Qub3B0cz14LnRndC5vcHRzLmFkZCgiYWNsIikuc2xpY2UoMCksYy5teS5yZWNhbGMoIiNydHVuemlwb3B0cyIpfS5kZWxheSg1MCl9KS5mYWlsKGZ1bmN0aW9uKHgsYSl7Y29uc29sZS5sb2coIkZhaWwgc3RhcnRpbmcgdW56aXAgc3RyZWFtIix4LGEpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZSYmKGIudmFsKG51bGwpLGIudHJpZ2dlcigiY2hlY2siKSl9KX1jYXRjaCh4KXtjdy5saWIubm90ZSgiRXJyb3IgdW56aXBwaW5nLCBzZWUgY29uc29sZSBmb3IgZGV0YWlscy4iLCJlcnJvciIpLGNvbnNvbGUubG9nKHgpfX19fSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHguc3JjLmRicy5sZW5ndGh8fHguc3JjLnVybC5sZW5ndGh8fHgubW9kZSsiIiE9InppcCJ8fCJNdWx0aSI9PXgudGFza319LHdhdGNoOlsiI3Jtb2RlIiwiI3Jzb3VyY2UiXX0sIiNyemlwZHVtcGluZm8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguc3JjLnppcD8nPHNwYW4gY2xhc3M9ImZpLWNoZWNrIGdyZWVuIGZzOTAgcHI1Ij48L3NwYW4+Jyt4LnNyYy56aXAudHJ1bmNhdGUoNjAsIm1pZGRsZSIsIi4uLiIpOnRoaXMubGFuZy5QTENfWklQRFVNUH0sd2F0Y2g6WyIjcnppcGR1bXAiXSxjc3M6eyJzZWxmOnRyYW5zIjpmdW5jdGlvbih4KXtyZXR1cm4heC5zcmMuemlwfX19LCIjYnRuLWZvbGRzcmMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5teS5maW5kKCIjcnNvdXJjZSIpLGM9IlN5bmMiPT14LnRhc2smJmIuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGM/Yi5hdXRvY29tcGxldGUoImNsb3NlIik6Yi5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGM9IWMpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGM/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaXNVUkwoeC5zcmMudXJsKX19LHdhdGNoOlsiI3Jzb3VyY2UiXX0sIiNyc291cmNlcyI6e2luaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczsiTXVsdGkiPT1hLmRhdGEudGFzayYmYS5zZWxlY3QyKHgse3RhZ3M6YS5EQnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybntpZDp4LHRleHQ6eH19KSxtdWx0aXBsZTohMCxwbGFjZWhvbGRlcjphLmxhbmcuUExDX0ZST00sdG9rZW5TZXBhcmF0b3JzOlsiICIsIiwiXSxtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDoxMn0sITApfSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiBhLmxlbmd0aHx8Ik11bHRpIiE9eC50YXNrPyIiOnRoaXMubGFuZy5FUlJfRlJPTX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBudWxsIT1hJiYic3RyaW5nIiE9dHlwZW9mIGEmJih4LnNyYy5kYnM9YSkseC5zcmMuZGJzfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfX19LCIjeHNjcmVkcyI6e2Nzczp7c2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuISF4LnNyYy56aXB8fCEoeC5tb2RlLmZpbmQoImRvYyIpfHx0aGlzLmlzVVJMKHguc3JjLnVybCl8fHgubW9kZS5maW5kKCJsaXZlIikmJnRoaXMuaXNDb3VjaDIpfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSJdfSwiI3JzbG9naW4iOntiaW5kOiJzcmMudXNlciIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5zcmMudWN0eC5sZW5ndGh9fSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiJfIj09KGF8fCIiKVswXT90aGlzLmxhbmcuRVJSX1VOT186IiJ9LHdhdGNoOlsnaW5wdXRbbmFtZT0icnVzZXJDdHgiXScsIiNybW9kZSIsIiNyc291cmNlIl19LCIjcnNwYXNzIjp7YmluZDoic3JjLnB3ZCIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiEheC5zcmMudWN0eC5sZW5ndGh9fSxjaGVjazpmdW5jdGlvbih4LGEpe3JldHVybiB4LnNyYy51c2VyJiYhYT90aGlzLmxhbmcuRVJSX05PUFdEOiIifSx3YXRjaDpbJ2lucHV0W25hbWU9InJ1c2VyQ3R4Il0nLCIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyc2xvZ2luIl19LCdpbnB1dFtuYW1lPSJydXNlckN0eCJdJzp7YmluZDoic3JjLnVjdHgiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pc0NvdWNoMnx8IXgubW9kZS5maW5kKCJkb2MiKXx8dGhpcy5pc1VSTCh4LnNyYy51cmwpfHx4LnNyYy51c2VyfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyc2xvZ2luIl19LCIjcnVucHJlZml4Ijp7YmluZDoic3JjLnVucHJlZml4Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfHwiemlwIj09eC5tb2RlfX0sd2F0Y2g6WyIjcm1vZGUiXX0sIiNyZmlsdGVyIjp7aW5pdDpmdW5jdGlvbih4KXt4LnRhZ3ModGhpcy5sYW5nLlRBR19GSUxURVIpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnNyYy5maWx0ZXI9YS5maW5kKC9eeC8pP2EuZmlsdGVyKC9eeC8pOmEpLHguc3JjLmZpbHRlcn0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJDb3B5Ij09eC50YXNrfHwiemlwIj09eC5tb2RlJiYheC5zcmMudXJsJiYiTXVsdGkiIT14LnRhc2t9fSx3YXRjaDpbIiNyemlwZHVtcCIsIiNyc291cmNlIl19LCIjcmRvY3MiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC5zcmMuaWRzLmxlbmd0aD9jdy5saWIuanNvbih4LnNyYy5pZHMsIiAgIik6IiI7aWYoIiI9PWEpcmV0dXJuIHguc3JjLmlkcz1bXSxhO3ZhciBiO3RyeXtiPUpTT04ucGFyc2UoYSl9Y2F0Y2goeCl7fXJldHVybiBPYmplY3QuaXNBcnJheShiKSYmYi5sZW5ndGgmJiFiLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4fSl8fChiPVtdKSx4LnNyYy5pZHM9YixhfSxjaGVjazpmdW5jdGlvbih4LGEpe2lmKGEpe3ZhciBiO3RyeXtiPUpTT04ucGFyc2UoYSl9Y2F0Y2goeCl7fXJldHVybiBPYmplY3QuaXNBcnJheShiKSYmYi5sZW5ndGgmJiFiLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB4fSk/dm9pZCAwOnRoaXMubGFuZy5FUlJfRE9DU319LGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iaWRzIiE9eC5zcmMuZmlsdGVyfX0sd2F0Y2g6WyIjcmZpbHRlciIsIiNybW9kZSJdfSwiI3JmbiI6e2JpbmQ6InNyYy5mbiIsY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiJmbiIhPXguc3JjLmZpbHRlcnx8InppcCI9PXgubW9kZX19LHdhdGNoOlsiI3JmaWx0ZXIiLCIjcm1vZGUiXX0sIiNycXVlcnkiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuImZuIiE9eC5zcmMuZmlsdGVyfHwheC5zcmMuZm58fCJ6aXAiPT14Lm1vZGV9fSx3YXRjaDpbIiNyZmlsdGVyIiwiI3JmbiIsIiNybW9kZSJdfSwiI3J6aXBvcHRzIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9T2JqZWN0LmNsb25lKGEubGFuZy5UQUdfWklQT1BULCEwKTthLlBobygiQ291Y2giKS52ZXI8IjAwMi4iJiZiLnRhZ3MucmVtb3ZlKGZ1bmN0aW9uKHgpe3JldHVybiJxbnAiPT14LnZhbHVlfSkseC50YWdzKGIpfSxiaW5kOiJzcmMub3B0cyIsY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuInppcCIhPXgubW9kZXx8IkNvcHkiPT14LnRhc2t8fHguc3JjLnppcHx8IXguc3JjLnVybCYmIXguc3JjLmRicy5sZW5ndGh9fSx3YXRjaDpbIiNybW9kZSIsIiNyc291cmNlcyIsIiNyc291cmNlIiwiI3J6aXBkdW1wIl19LCIjYnRuLXppcGR1bXAtY2xlYXIiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbCE9YSl7dmFyIGI9dGhpcztiLmNsZWFuVW56aXAoKSxiLm15LmNoZWNrKCIjcm1vZGUiKX19LGV2ZW50czpbImNsaWNrLm15Il0sY3NzOntoaWRlOmZ1bmN0aW9uKHgpe3JldHVybiF4LnNyYy56aXB8fCJ6aXAiIT14Lm1vZGV9fSx3YXRjaDpbIiNyemlwZHVtcCJdfSwiI3J0YXJnZXQiOntkZWxheToyMCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7ZnVuY3Rpb24gYyhiLGMpe2EubXkuY2hlY2soIiNydGFyZ2V0IiksYS5maXhIZWlnaHQuZGVib3VuY2UoMTAwKSh4KX0vXihTeW5jfENvcHkpJC8udGVzdChiLnRhc2spJiZ4LmF1dG9jb21wbGV0ZSh7ZGVsYXk6MCxzb3VyY2U6YS5EQnMsY2xvc2U6ZnVuY3Rpb24oeCxiKXthLm15LmNoZWNrKCIjYnRuLWZvbGR0Z3QiKX0uZGVib3VuY2UoMTApLHNlbGVjdDpjLmRlYm91bmNlKDEwKSxhcHBlbmRUbzphLm15LnJvb3QoKSxtaW5MZW5ndGg6MWU0fSl9LGJpbmQ6InRndC51cmwiLGNoZWNrOmZ1bmN0aW9uKHgsYSl7aWYoYSlpZih0aGlzLmlzVVJMKGEpKXtpZighdGhpcy5pc1ZhbGlkVVJMKGEpKXJldHVybiB0aGlzLmxhbmcuRVJSX1RPX1VSTDtpZigiTXVsdGkiIT14LnRhc2smJiF0aGlzLmlzQnVja2V0VVJMKGEpKXJldHVybiB0aGlzLmxhbmcuRVJSX1RPfWVsc2UgaWYoIXgudGd0LmNyZWF0ZSYmIXRoaXMuUGhvKFsiQWxsIixhXSkpcmV0dXJuIHRoaXMubGFuZy5FUlJfVE9fTUlTU30sd2F0Y2g6WydpbnB1dFtuYW1lPSJydGNyZWF0ZWRiIl0nXSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjcnRhcmdldCIpfS5kZWJvdW5jZSgyMDApKCksITB9fX0sIiNidG4tZm9sZHRndCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLm15LmZpbmQoIiNydGFyZ2V0IiksYz0iTXVsdGkiIT14LnRhc2smJmIuYXV0b2NvbXBsZXRlKCJ3aWRnZXQiKS5pcygiOnZpc2libGUiKTtyZXR1cm4gbnVsbCE9YSYmKGM/Yi5hdXRvY29tcGxldGUoImNsb3NlIik6Yi5hdXRvY29tcGxldGUoInNlYXJjaCIsIiIpLGM9IWMpLCI8ZGl2PnsxfTwvZGl2PiIuYXNzaWduKGM/IuKWsiI6IuKWvCIpfSxldmVudHM6ImNsaWNrLm15Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIS9eKFN5bmN8Q29weSkkLy50ZXN0KHgudGFzayl9fX0sIiN4dGNyZWRzIjp7Y3NzOntzaGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iTXVsdGkiIT14LnRhc2smJigiQ29weSI9PXgudGFzayYmIXRoaXMuaXNVUkwoeC50Z3QudXJsKXx8ISh4LnRndC5jcmVhdGUmJiF0aGlzLkRCcy5maW5kKHgudGd0LnVybCkmJih0aGlzLmlzQ291Y2gyfHx4Lm1vZGUuZmluZCgiZG9jIikpKSYmISh4Lm1vZGUuZmluZCgiZG9jIil8fHRoaXMuaXNVUkwoeC50Z3QudXJsKXx8eC5tb2RlLmZpbmQoImxpdmUiKSYmdGhpcy5pc0NvdWNoMikpfX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnRhcmdldCJdfSwiI3J0bG9naW4iOntiaW5kOiJ0Z3QudXNlciIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hYSYmeC50Z3QuY3JlYXRlJiYodGhpcy5pc1VSTCh4LnRndC51cmwpfHwhdGhpcy5EQnMuZmluZCh4LnRndC51cmwpJiYodGhpcy5pc0NvdWNoMiYmIXgubW9kZS5maW5kKCJvbmNlIil8fHgubW9kZS5maW5kKCJkb2MiKSkpP3RoaXMubGFuZy5FUlJfVVJFUV9DVDoiXyI9PShhfHwiIilbMF0/dGhpcy5sYW5nLkVSUl9VTk9fOiIifSx3YXRjaDpbIiNybW9kZSIsJ2lucHV0W25hbWU9InJ0Y3JlYXRlZGIiXScsIiNydGFyZ2V0Il19LCIjcnRwYXNzIjp7YmluZDoidGd0LnB3ZCIsY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC50Z3QudXNlciYmIWE/dGhpcy5sYW5nLkVSUl9OT1BXRDoiIn0sd2F0Y2g6WyIjcnRsb2dpbiJdfSwiI3JwcmVmaXgiOntiaW5kOiJ0Z3QucHJlZml4Iixjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIk11bHRpIiE9eC50YXNrfX19LCdpbnB1dFtuYW1lPSJydGNyZWF0ZWRiIl0nOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuKHgudGd0LmNyZWF0ZT1udWxsIT1hPyEhYS5sZW5ndGg6eC50Z3QuY3JlYXRlKT9bImNyZWF0ZSJdOltdfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudGd0LnVybHx8ISF0aGlzLkRCcy5maW5kKHgudGd0LnVybCl9fSx3YXRjaDpbIiNydGFyZ2V0Il19LCIjeHRub256aXAiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCxhKXtyZXR1cm4iemlwIj09eC5tb2RlfX0sd2F0Y2g6WyIjcm1vZGUiXX0sIiNydHppcGZpbGUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubW9kZSsiIiE9InppcCImJih4LnRndC56aXBmaWxlPSIiKSxudWxsPT1hP3gudGd0LnppcGZpbGU6KHgudGd0LnppcGZpbGU9YS5jb21wYWN0KCksYSl9LGNzczp7aGlkZTpmdW5jdGlvbih4LGEpe3JldHVybiJ6aXAiIT14Lm1vZGV8fCF4LnNyYy51cmwmJiF4LnNyYy5kYnMubGVuZ3RofHwhIXguc3JjLnppcH19LHdhdGNoOlsiI3Jtb2RlIiwiI3Jzb3VyY2UiLCIjcnppcGZpbGUiXX0sIiNydHVuemlwb3B0cyI6e2luaXQ6ZnVuY3Rpb24oeCl7eC50YWdzKHRoaXMubGFuZy5UQUdfVU5aSVBPUFQpfSxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSlyZXR1cm4geC50Z3Qub3B0czt2YXIgYj14LnRndC5vcHRzO3JldHVybiB4LnRndC5vcHRzPWEsYi5maW5kKCJjcmVhdGUiKSE9YS5maW5kKCJjcmVhdGUiKSYmKHRoaXMuVW56aXBUbz10aGlzLlVuemlwVG8uY2xvbmUoITApLHRoaXMubXkuZmluZCgiI3J0dW56aXBkYnMiKS5maW5kKCJpbnB1dCN1bnppcC10Z3QiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJibHVyIil9KSkseC50Z3Qub3B0c30sY3NzOntoaWRlOmZ1bmN0aW9uKHgsYSl7cmV0dXJuInppcCIhPXgubW9kZXx8IkNvcHkiPT14LnRhc2t8fCF4LnNyYy56aXB9fSx3YXRjaDpbIiNybW9kZSIsIiNyemlwZHVtcCJdfSwiI3J0dW56aXBkYnMiOntiaW5kOiJ0aGlzLlVuemlwVG8iLGluaXQ6ZnVuY3Rpb24oeCl7dGhpcy5uaWNlU2Nyb2xsKHgpfSxsaXN0Oic8ZGl2IGNsYXNzPSJ3MTAwcCBmczkwIG10MyBjYiI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5VbnppcERCUm93fSxjaGVjazohMCxtZXJnZTohMSxpZDpmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lKyIgIit0aGlzLmRhdGEudGd0Lm9wdHN9LGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5jcmMyKHgsdGhpcy5kYXRhLnRndC5vcHRzKX19LCIjeHJ0dW56aXBkYnMiOntjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuInppcCIhPXgubW9kZXx8IXRoaXMuVW56aXBUby5sZW5ndGh9fSx3YXRjaDpbIiNydHVuemlwZGJzIiwiI3Jtb2RlIl19LCIjcnR6aXB3YXJuIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9dGhpcyxkPWMubGFuZyxlPVtkLk1TR19aSVBfV0FSTl07cmV0dXJuInppcCIhPXgubW9kZT9iLnBhcmVudCgpLmFkZENsYXNzKCJoaWRlIik6Yi5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaGlkZSIpLGMuY2FuU3RyZWFtfHxlLnB1c2goZC5NU0dfWklQX0JMT0IpLGUubWFwKGZ1bmN0aW9uKHgpe3JldHVybic8ZGl2IGNsYXNzPSJtdDIgbWI0Ij4nK3grIjwvZGl2PiJ9KX0sd2F0Y2g6WyIjcm1vZGUiLCIjcnNvdXJjZSIsIiNyemlwZmlsZSJdfX0saXNCdWNrZXRVUkw6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gYT8vXmh0dHBbc10/OlwvXC9bXlwvOlxzXSs6W15cLzpAXHNdK0BbXlwvXHNdezIsfShcL1teXC9cc10rKStbXC9dPyQvLnRlc3QoeCk6L15odHRwW3NdPzpcL1wvW15cL1xzXXsyLH0oXC9bXlwvXHNdKykrW1wvXT8kLy50ZXN0KHgpfSxpc0xvY2FsREI6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5QaG8oIkNvdWNoIikucG9ydCxiPSIiO3JldHVybiB0aGlzLmlzVVJMKHgpPyh4LmluZGV4T2YoImxvY2FsaG9zdDoiK2ErIi8iKT4tMXx8eC5pbmRleE9mKCIxMjcuMC4wLjE6IithKyIvIik+LTEpJiYoYj14LnNwbGl0KCI/IilbMF0uc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCkpOmI9eCxifSxpc1VSTDpmdW5jdGlvbih4KXtyZXR1cm4vXmh0dHBbc10/OlwvXC8vLnRlc3QoeCl9LGlzVmFsaWRVUkw6ZnVuY3Rpb24oeCl7dmFyIGE9ITE7dHJ5e2E9bmV3IFVSTCh4KX1jYXRjaCh4KXt9cmV0dXJuIGF9LGZpeEhlaWdodDpmdW5jdGlvbih4KXt4LmhlaWdodCgwKS5oZWlnaHQoKHhbMF0uc2Nyb2xsSGVpZ2h0LTEwKS5jbGFtcCgxOCwxMDApKX0sY2xlYW5EYXRhOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7JC5leHRlbmQoeCx7ZG9jOiIiLG1vZGU6WyJvbmNlIl19KSwkLmV4dGVuZCh4LnNyYyx7dXJsOiIiLGRiczpbXSx1c2VyOiIiLHB3ZDoiIix1Y3R4OltdLGZpbHRlcjpbXSxmbjoiIixpZHM6W10scXVlcnk6e30sdW5wcmVmaXg6IiIsemlwOiExLG9wdHM6W119KSwkLmV4dGVuZCh4LnRndCx7dXJsOiIiLHVzZXI6IiIscHdkOiIiLGNyZWF0ZTohMSxwcmVmaXg6IiIscToiIixuOiIiLGFjbDohMSx6aXBmaWxlOiIiLG9wdHM6WyJjcmVhdGUiXX0pLGEubXkuZmluZCgiI3J0emlwZmlsZSIpLnZhbChudWxsKSxhLlVuemlwVG89W10sIWEuRG9udFN0b3BVbnppcCYmYS5VbnppcFN0cmVhbS5hYm9ydCYmKGEuVW56aXBTdHJlYW0uYWJvcnQoKSxhLlVuemlwU3RyZWFtPXt9KX0sY2xlYW5VbnppcDpmdW5jdGlvbigpe3ZhciB4PXRoaXM7eC5kYXRhLnNyYy56aXA9ITEseC5teS5maW5kKCIjcnR6aXBmaWxlIikudmFsKG51bGwpLHguVW56aXBUbz1bXSx4LlVuemlwREJtYXA9e30seC5VbnppcFN0cmVhbS5hYm9ydCgpLHguVW56aXBTdHJlYW09e319LGRpZTpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuU2VsMlNjcm9sbCh4LCEwKSwiU3luYyI9PWEuZGF0YS50YXNrJiZ4LmZpbmQoIiNyc291cmNlIikuYXV0b2NvbXBsZXRlKCJkZXN0cm95IiksIk11bHRpIiE9YS5kYXRhLnRhc2smJnguZmluZCgiI3J0YXJnZXQiKS5hdXRvY29tcGxldGUoImRlc3Ryb3kiKSwhYS5Eb250U3RvcFVuemlwJiZhLlVuemlwU3RyZWFtLmFib3J0JiZhLlVuemlwU3RyZWFtLmFib3J0KCl9LHN0eWxlOnsiIHRleHRhcmVhIjoicmVzaXplOm5vbmU7d29yZC13cmFwOmJyZWFrLXdvcmQ7IiwiIC5teS1lcnJvci10aXAiOiJwYWRkaW5nOjAuMWVtIDAgMC4yZW0gMDsiLCIgLnVpLXdpZGdldCI6ImZvbnQtc2l6ZToxMDAlIiwiIC51aS1hdXRvY29tcGxldGUiOiJsaW5lLWhlaWdodDoxLjNlbTsgbWF4LWhlaWdodDoxOXZoOyBvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7IiwiIC53MTAwcC0yMCI6IndpZHRoOmNhbGMoMTAwJSAtIDIwcHgpOyIsIiAuYmZvbGQiOnsiIjpbIndpZHRoOjIwcHghaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyAiLCJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsiLCJtYXJnaW4tbGVmdDotMjFweDsgei1pbmRleDorMTsiXSwiIGRpdiI6ImZvbnQtc2l6ZTo2MCU7IG9wYWNpdHk6MC41O3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjMuMmVtO3dpZHRoOjEwMCU7In0sIiAuc2VsZWN0Mi1jb250YWluZXI+LnNlbGVjdDItY2hvaWNlcyI6Im1heC1oZWlnaHQ6MTA5cHg7IiwiLmhhc3ppcCAubm96aXAiOiJkaXNwbGF5Om5vbmUhaW1wb3J0YW50OyIsIiAuemlwb25seSI6ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IiwiLmhhc3ppcCAuemlwb25seSI6ImRpc3BsYXk6aW5saW5lIWltcG9ydGFudDsiLCIgLm15LXJvdywgLm15LWdyb3VwIjoidHJhbnNpdGlvbjogaGVpZ2h0IDAuMXMsIG1pbi1oZWlnaHQgMC4xcywgcGFkZGluZyAwLjA1czsgbWluLWhlaWdodDogMTVweDsgaGVpZ2h0OmF1dG87IiwiIC5zaGlkZSI6Im92ZXJmbG93OmhpZGRlbjsgbWluLWhlaWdodDowOyBoZWlnaHQ6MHB4OyBwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudDsiLCIgdWwiOnsiLnVpLWF1dG9jb21wbGV0ZSI6Im1heC13aWR0aDpjYWxjKDEwMCUgLSAxMTVweCk7IiwiIGxpLnVpLW1lbnUtaXRlbSI6IndvcmQtYnJlYWs6IGJyZWFrLWFsbDsifX0sWmlwVGVzdGVyOntyZXF1aXJlOlt7IndpbmRvdy5Xcml0YWJsZVN0cmVhbSI6ImxpYi93ZWJzdHJlYW1zLmpzIn0seyJ3aW5kb3cuZmZsYXRlIjoibGliL2ZmbGF0ZS5qcyJ9XSxpbml0OlsnPGRpdiBpZD0ieC1kdW1teSI+PC9kaXY+J10sdWk6eyIjeC1kdW1teSI6ZnVuY3Rpb24oKXt9fX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO2Z1bmN0aW9uIGMoKXt4LnBhcmVudCgpLmNzcygiaGVpZ2h0IiwiYXV0byIpfWEubGFuZ1tiLnRhc2tdJiYkLmV4dGVuZChhLmxhbmcsYS5sYW5nW2IudGFza10pLGEuREJzPU9iamVjdC5rZXlzKGEuUGhvKCJBbGwiKSkuc29ydCgpLHguaHRtbCgkLm15LmZvcm1nZW4oYS5IVE1MKS5hc3NpZ24oYS5sYW5nKS5hc3NpZ24oe19yZXBsaWNhdG9yOmEuUGhvKCJSZXBsaWNhdG9yREIiKX0pKSxhLmlzQ291Y2gyPWEuUGhvKCJDb3VjaCIpLnZlcj49IjAwMi4iLGEuY2FuWmlwPW51bGwhPT1hLlBobygiY2FuWmlwIik/YS5QaG8oImNhblppcCIpOiJmZXRjaCJpbiB3aW5kb3cmJiJVaW50OEFycmF5ImluIHdpbmRvdyYmIkJsb2IiaW4gd2luZG93JiYiTWFwImluIHdpbmRvdyYmbnVsbCxhLmNhblN0cmVhbT0hd2luZG93LnNhZmFyaSYmInNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yLCJDb3B5IiE9Yi50YXNrJiZiLnNyYy5vcHRzLnB1c2goImFjbCIpLHguZmluZCgidGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHg9JCh0aGlzKTt4Lm9uKCJpbnB1dC5teSxrZXl1cC5teSIsZnVuY3Rpb24oKXthLmZpeEhlaWdodCh4KX0pfSkseC5wYXJlbnQoKS5vbigiZHJhZ3N0b3AiLGMpLHgudGhlbihmdW5jdGlvbigpe3guZmluZCgidGV4dGFyZWEiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS50cmlnZ2VyKCJpbnB1dCIpfSksYS5TZWwyU2Nyb2xsKHgsITApLCJTeW5jIj09Yi50YXNrJiZmdW5jdGlvbigpe3guZmluZCgiI3Jzb3VyY2UiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsIm1pbkxlbmd0aCIsMCl9LmRlYm91bmNlKDEwMCkoKSwvXihTeW5jfENvcHkpJC8udGVzdChiLnRhc2spJiZmdW5jdGlvbigpe3guZmluZCgiI3J0YXJnZXQiKS5hdXRvY29tcGxldGUoIm9wdGlvbiIsIm1pbkxlbmd0aCIsMCl9LmRlYm91bmNlKDEwMCkoKX0uZGVib3VuY2UoMjApKS50aGVuKGZ1bmN0aW9uKCl7eC5wYXJlbnQoKS50cmlnZ2VyKCJsYXlvdXQiKSxjKCl9LmRlYm91bmNlKDE1MCkpfSxIVE1MOlt7cm93OiIxMDAlIixyb3dDc3M6Im15LXJvdyBwdDMgcGIzIGZzMTAwIixsYWJlbDoiMTE1cHgiLGxhYmVsQ3NzOiJteS1sYWJlbCBkaWIgdmF0IG10OSJ9LCc8ZGl2IGNsYXNzPSJmczEzMCBtYjIgbGgxNjAgYm9sZGVyIGNtIj4nLCc8c3BhbiBjbGFzcz0iZmktbGlzdCBvNDAgZnM4NSBtcjMiPjwvc3Bhbj4gPHNwYW4gaWQ9InJ0aXRsZSI+e1RYVF9USVRMRX08L3NwYW4+JywiPC9kaXY+IiwnPGZvcm0gaWQ9InhyY3JlYXRlIiBhdXRvY29tcGxldGU9Im9mZiI+JyxbIntMQkxfTU9ERX0iLCJkaXYjcm1vZGUuZGliLnZhdC5mczEwNS5saDE4MCJdLFsie0xCTF9JRH0iLCJpbnAjcmRvY2lkLncxMDBwIix7cGxjOiJ7UExDX0lEfSJ9LCJtc2ciXSwnPGRpdiBpZD0ieHNvdXJjZSIgY2xhc3M9Im15LWdyb3VwIj4nLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9GUk9NfTwvc3Bhbj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHcxMDBwIj4nLCJ0eHQjcnNvdXJjZS53MTAwcC5mczEwMC5saDEzMCIse3BsYzoie1BMQ19GUk9NfSJ9LCJtc2ciLCI8L2Rpdj4iLCJzcG4jYnRuLWZvbGRzcmMucHNldWRvbGluay50ZG4uYmZvbGQuZGliLnZhdCIse3R4dDoiPGRpdj7ilrw8L2Rpdj4ifV0sIjwvZGl2PiIsJzxkaXYgaWQ9Inh6aXBkdW1wIj4nLFsnPHNwYW4gY2xhc3M9ImJvbGRlciBmczEwNSI+e0xCTF9aSVBEVU1QfTwvc3Bhbj4nLCc8aW5wdXQgaWQ9InJ6aXBkdW1wIiB0eXBlPSJmaWxlIiBhY2NlcHQ9Ii56aXAsIGFwcGxpY2F0aW9uL3ppcCIgY2xhc3M9IncxMDBwIGNwIG8wIiBzdHlsZT0iaGVpZ2h0OjIuMWVtOyIgcGxhY2Vob2xkZXI9IntQTENfWklQRFVNUH0iPicsJzxkaXYgaWQ9InJ6aXBkdW1waW5mbyIgY2xhc3M9ImRiIHcxMDBwIGJnLWdyYXk0IGJyMiBwbDUgcHQzIHRyYW5zIiBzdHlsZT0ibWFyZ2luLXRvcDotMi4xZW07IGhlaWdodDoyLjFlbTsiPntQTENfWklQRFVNUH08L2Rpdj4nLCc8ZGl2IGlkPSJidG4temlwZHVtcC1jbGVhciIgY2xhc3M9InBhYmMgbGgxMDAgcDcgY3AgbzUwIiBzdHlsZT0idG9wOjRweDtyaWdodDowOyI+4pyVPC9kaXY+J10sIjwvZGl2PiIsJzxkaXYgaWQ9Inhzc2hpbSIgY2xhc3M9ImhpZGUiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX0ZST019PC9zcGFuPicsImlucCNyc291cmNlcy53MTAwcC5mczExMC5saDE2MCIsIm1zZyJdLCc8ZGl2IGlkPSJ4c2NyZWRzIiBjbGFzcz0ibXktZ3JvdXAgc2hpZGUiPicsWyJ7TEJMX1NSQ19DUkVEU30iLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MHAgcHI2Ij4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IG1yLTIwIHppMSB0YWMgdzIwIHB0MyBwbDIgbzMwIj48c3BhbiBjbGFzcz0iZmktdG9yc28iPjwvc3Bhbj48L2Rpdj4nLCJpbnAjcnNsb2dpbi53MTAwcC5mczk1LmxoMTMwLnBsMjAiLHtwbGM6IntQTENfVU5BTUV9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIiwiPC9kaXY+IiwnPGRpdiBjbGFzcz0iZGliIHZhdCB3NTBwIj4nLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IG1yLTIwIHppMSB0YWMgdzIwIHB0MyBwbDIgbzQwIj48c3BhbiBjbGFzcz0iZmkta2V5Ij48L3NwYW4+PC9kaXY+JywicHdkI3JzcGFzcy53MTAwcC5mczk1LmxoMTMwLnBsMjAiLHtwbGM6IntQTENfVVBXRH0iLGF1dG9jb21wbGV0ZToibmV3LXBhc3N3b3JkIn0sIm1zZyIsIjwvZGl2PiIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzEwMHAiPjxsYWJlbCBjbGFzcz0iZGliIG10MyB2YXQgY3AgZ3JheTEgbGgxNTAgbWIzIHcxMDBwIGZzOTUiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icnVzZXJDdHgiIHZhbHVlPSJfYWRtaW4iIGNsYXNzPSJtcjYgZnMxMTAgbGgxMDAiPicsIntUWFRfVUNUWH0iLCI8L2xhYmVsPjwvZGl2PiJdLCI8L2Rpdj4iLFsie0xCTF9VTlBSRUZJWH0iLCJpbnAjcnVucHJlZml4Lnc3NXAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19VTlBSRUZJWH0iLHRpdGxlOiJ7VElQX1VOUFJFRklYfSJ9XSxbIntMQkxfRklMVEVSfSIsImRpdiNyZmlsdGVyLmRpYi52YXQubGgxNjAucHQyLnBiMiJdLFsie0xCTF9ET0NTfSIsInR4dCNyZG9jcy53MTAwcC5mczk1LmxoMTMwIix7cGxjOiJ7UExDX0RPQ1N9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIl0sWyJ7TEJMX0ZOfSIsImlucCNyZm4udzEwMHAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19GTn0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciXSxbIntMQkxfUVJZfSIsInR4dCNycXVlcnkudzEwMHAuZnM5NS5saDEzMCIse3BsYzoie1BMQ19RUll9IixhdXRvY29tcGxldGU6Im9mZiIsYXV0b2NvcnJlY3Q6Im9mZiIsYXV0b2NhcGl0YWxpemU6Im9mZiIsc3BlbGxjaGVjazoiZmFsc2UifSwibXNnIl0sJzxkaXYgY2xhc3M9IncxMDBwIGgxMCBtdDEwIG9oIGJ0ZCI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBpZD0ieHRub256aXAiIGNsYXNzPSJ3MTAwcCI+JyxbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfVE99PC9zcGFuPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzEwMHAiPicsInR4dCNydGFyZ2V0LncxMDBwLmZzMTAwLmxoMTMwIix7cGxjOiJ7UExDX1RPfSJ9LCJtc2ciLCI8L2Rpdj4iLCJzcG4jYnRuLWZvbGR0Z3QucHNldWRvbGluay50ZG4uYmZvbGQuZGliLnZhdCIse3R4dDoiPGRpdj7ilrw8L2Rpdj4ifV0sJzxkaXYgaWQ9Inh0Y3JlZHMiIGNsYXNzPSJteS1ncm91cCBzaGlkZSI+JyxbIntMQkxfVEdUX0NSRURTfSIsJzxkaXYgY2xhc3M9ImRpYiB2YXQgdzUwcCBwcjYiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvMzAiPjxzcGFuIGNsYXNzPSJmaS10b3JzbyI+PC9zcGFuPjwvZGl2PicsImlucCNydGxvZ2luLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VTkFNRX0iLGF1dG9jb21wbGV0ZToib2ZmIixhdXRvY29ycmVjdDoib2ZmIixhdXRvY2FwaXRhbGl6ZToib2ZmIixzcGVsbGNoZWNrOiJmYWxzZSJ9LCJtc2ciLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJkaWIgdmF0IHc1MHAiPicsJzxkaXYgY2xhc3M9ImRpYiB2YXQgbXItMjAgemkxIHRhYyB3MjAgcHQzIHBsMiBvNDAiPjxzcGFuIGNsYXNzPSJmaS1rZXkiPjwvc3Bhbj48L2Rpdj4nLCJwd2QjcnRwYXNzLncxMDBwLmZzOTUubGgxMzAucGwyMCIse3BsYzoie1BMQ19VUFdEfSIsYXV0b2NvbXBsZXRlOiJuZXctcGFzc3dvcmQifSwibXNnIiwiPC9kaXY+Il0sIjwvZGl2PiIsWyJ7TEJMX1BSRUZJWH0iLCJpbnAjcnByZWZpeC53NzVwLmZzOTUubGgxMzAiLHtwbGM6IntQTENfUFJFRklYfSJ9XSxbIiAiLCc8bGFiZWwgY2xhc3M9ImRpYiBjcCBncmF5MSBsaDEyMCBmczk1IHc1MHAiPicsJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icnRjcmVhdGVkYiIgdmFsdWU9ImNyZWF0ZSIgY2xhc3M9Im1yNiBmczExMCI+Jywie1RYVF9ORVdUR1R9IiwiPC9sYWJlbD4iXSwiPC9kaXY+IixbJzxzcGFuIGNsYXNzPSJib2xkZXIgZnMxMDUiPntMQkxfWklQRklMRX08L3NwYW4+JywiaW5wI3J0emlwZmlsZS53MTAwcC5mczEwMC5saDEzMCIse3BsYzoie1BMQ19aSVBGSUxFfSJ9XSxbIntMQkxfWklQT1BUfSIsImRpdiNyemlwb3B0cy5kaWIudmF0LmxoMTYwLnB0Mi5wYjIiXSwnPGRpdiBpZD0ieHJ0dW56aXBkYnMiIGNsYXNzPSJtdC01IGhpZGUiPicsWyc8c3BhbiBjbGFzcz0iYm9sZGVyIGZzMTA1Ij57TEJMX1VOWklQREJTfTwvc3Bhbj4nLCc8ZGl2IGlkPSJydHVuemlwZGJzImNsYXNzPSJkaWIgdmF0IHcxMDBwIHBiNSBtYi01IiBzdHlsZT0ibWF4LWhlaWdodDoyMGVtOyI+PC9kaXY+J10sWyJ7TEJMX1VOWklQT1BUfSIsImRpdiNydHVuemlwb3B0cy5kaWIudmF0LmxoMTYwLnB0NS5wYjIiXSwiPC9kaXY+IixbIiAiLCc8ZGl2IGlkPSJydHppcHdhcm4iIGNsYXNzPSJkaWIgdmF0IHcxMDBwIGZzODUgbGgxMzAgbzgwIj48L2Rpdj4nXSwiPC9mb3JtPiIsJzxkaXYgY2xhc3M9Im10MTAgcHQxMyBidGQiPicsJzxkaXYgY2xhc3M9ImZyIj48YnV0dG9uIGlkPSJidG4tY2xlYXIiPntCVE5fQ0xFQVJ9PC9idXR0b24+PC9kaXY+JywnPGJ1dHRvbiBpZD0iYnRuLXN0YXJ0IiBjbGFzcz0iZ3JlZW4gbXIyIj57QlROX1NUQVJUfTwvYnV0dG9uPicsJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiPntCVE5fQ0FOQ0VMfTwvYnV0dG9uPicsIjwvZGl2PiIsJzxkaXYgaWQ9InppcC10ZXN0ZXIiIGNsYXNzPSJoaWRlIj48L2Rpdj4nXSxVbnppcERCUm93OntpZDoiY3cuUGhvdG9uLlN5bmNUYXNrLlVuemlwREJSb3ciLGluaGVyaXQ6WyJEQnMiLCJQaG8iLCJVbnppcE9wdHMiXSxkYXRhOntuYW1lOiIiLHRhcmdldDoiIixkb2NfY291bnQ6MCxyYXdfc2l6ZTowLHNlY3VyaXR5Om51bGx9LGluaXQ6ZnVuY3Rpb24oeCl7eC5odG1sKHRoaXMuSFRNTCksdGhpcy5kYXRhLnRhcmdldD10aGlzLmRhdGEubmFtZSx0aGlzLkRCcz1jdy5saWIuYTJvKHRoaXMuREJzKX0sdWk6eyIjYnRuLXJlbW92ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiYoMT09dGhpcy5teS5wYXJlbnQoKS5VbnppcFRvLmxlbmd0aD90aGlzLm15LnBhcmVudCgpLm15LmZpbmQoIiNidG4tY2FuY2VsIikudHJpZ2dlcigiY2xpY2subXkiKTp0aGlzLm15LnJlbW92ZSgpKX0sZXZlbnRzOlsiY2xpY2subXkiXX0sIiN1bnppcC1zcmMiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5VbnppcE9wdHMoKS5maW5kKCJjcmVhdGUiKSxjPXRoaXMuUGhvKFsiQWxsIix4LnRhcmdldF0pO3JldHVybic8c3BhbiBjbGFzcz0iZnMxMTUgYm9sZGVyIj57MX08L3NwYW4+IDxzcGFuIGNsYXNzPSJvNDAgZmktYXJyb3ctcmlnaHQgcGwyIj48L3NwYW4+IHsyfScuYXNzaWduKHgubmFtZS50cnVuY2F0ZSg0MCwibWlkZGxlIiwiLi4uIikuZXNjYXBlSFRNTCgpLGM/IiI6Yj8nPHNwYW4gY2xhc3M9InBsNCBwcjUgcHQxIHBiMiBiZy1ncmVlbjIgZnM5MCB3aGl0ZSBmdzYwMCBicjIiPk5ldzwvc3Bhbj4nOic8c3BhbiBjbGFzcz0icGw0IHByNSBwdDEgcGIyIGJnLXJlZDIgZnM5MCB3aGl0ZSBmdzYwMCBicjIiPk5vIERCPC9zcGFuPicpfSx3YXRjaDpbIiN1bnppcC10Z3QiXX0sIiN1bnppcC10Z3QiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LnRhcmdldD1hKSx4LnRhcmdldH0sY2hlY2s6ZnVuY3Rpb24oeCxhKXtyZXR1cm4vXlthLXowLTlfJFwoXClcK1wtXC9dKyQvLnRlc3QoYSk/L15bYS16XS8udGVzdChhKT90aGlzLlVuemlwT3B0cygpLmZpbmQoImNyZWF0ZSIpfHx0aGlzLlBobyhbIkFsbCIsYV0pP3ZvaWQgMDoiREIgZG9lc27igJl0IGV4aXN0IjoiTXVzdCBzdGFydCB3aXRoIGEteiI6Ik9ubHkgbG93ZXJjYXNlIGEteiwgMC05IGFuZCAgXyQoKSstIGFsbG93ZWQifSxsaXN0ZW46e2RibGlzdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7aWYoYSlyZXR1cm4gZnVuY3Rpb24oKXtiLm15LmNoZWNrKCIjdW56aXAtdGd0Iil9LmRlYm91bmNlKDIwMCkoKSwhMH19fSwiI3VuemlwLWluZm8iOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9T2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpP3guZmlsdGVyOltdLGM9Yi5sZW5ndGg/Yi5sZW5ndGg6eC5kb2NfY291bnQrKHguZG9jX2RlbF9jb3VudHx8MCksZD0iIixlPSIiO2lmKGQ9Yi5sZW5ndGg/IlBhcnRpYWwgZHVtcDogezF9IGRvY3syfSIuYXNzaWduKGIubGVuZ3RoLGIubGVuZ3RoPjE/InMiOiIiKToiezF9IGRvY3syfSwgezN9IHJhdyIuYXNzaWduKGM+MWUzP2MuYWJicigxKS5yZXBsYWNlKCJtIiwiTSIpOmMsYz4xPyJzIjoiIix4LnJhd19zaXplLmJ5dGVzKDIpLnJlcGxhY2UoL0IkLywiYiIpKSxudWxsIT14LnNlY3VyaXR5KXt2YXIgZj0kLmV4dGVuZCghMCx7YWRtaW5zOntuYW1lczpbXSxyb2xlczpbXX0sbWVtYmVyczp7bmFtZXM6W10scm9sZXM6W119fSx4LnNlY3VyaXR5KSxnPVtmLmFkbWlucy5uYW1lcyxmLmFkbWlucy5yb2xlcyxmLm1lbWJlcnMubmFtZXMsZi5tZW1iZXJzLnJvbGVzXS5mbGF0dGVuKCkubGVuZ3RoO2U9JzxzcGFuIGNsYXNzPSJ7MX0iPjwvc3Bhbj4gezJ9IEFDTC4gJy5hc3NpZ24oZz8iZmktbG9jayBncmVlbjEiOiJmaS11bmxvY2sgb3JhbmdlMSIsZz8iSGFzIjoiRW1wdHkiKX1yZXR1cm4gZStkfX19LEhUTUw6JzxkaXYgaWQ9ImJ0bi1yZW1vdmUiIGNsYXNzPSJmciBwNSBjcCByZWQxIGxoMTAwIiB0aXRsZT0iRG8gbm90IHJlc3RvcmUgdGhpcyBEQiI+4pyVPC9kaXY+PGRpdiBjbGFzcz0idzQwcCBmciI+PGlucHV0IGlkPSJ1bnppcC10Z3QiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBtdDMiIHBsYWNlaG9sZGVyPSJUYXJnZXQgREIgbmFtZSI+PC9kaXY+PGRpdiBpZD0idW56aXAtc3JjIiBjbGFzcz0idzU1cCBsaDEzMCBwdDMgbWIzIHdiYSI+PC9kaXY+PGRpdiBpZD0idW56aXAtaW5mbyIgY2xhc3M9IncxMDBwIG1iMiBmczkwIGxoMTIwIG83MCI+PC9kaXY+J30scnVuWmlwOmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YSxkPSJNdWx0aSI9PWMudGFzayxlPWIuRHVtcFppcCxmPShjLnRndC56aXBmaWxlLHtkYnM6KGQ/Yy5zcmMuZGJzLnVuaXF1ZSgpOltjLnNyYy51cmxdKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue3VybDp4LGRyb3A6T2JqZWN0LnNlbGVjdChjLnNyYyxbImZpbHRlciIsImZuIiwiaWRzIiwicXVlcnkiXSl9fSksbmFtZTpjLnRndC56aXBmaWxlLnJlcGxhY2UoL1wuemlwJC9pLCIiKXx8ImR1bXAiLG9wdHM6Yy5zcmMub3B0c30pO3JldHVybiB4Lm1vZGFsKHtyb290OmEsZGF0YTpmLG1hbmlmZXN0OmUsZ2xvYmFsOiExLGNsb3NlOiExLGVzYzohMSxhbGlnbjoiYm90dG9tOjEycHg7cmlnaHQ6MjBweDsiLGNzczoicDEwIHhncmF5IixkcmFnOiIuY20iLHdpZHRoOjQ1MH0pLnRoZW4oZnVuY3Rpb24oKXt9KS5mYWlsKGZ1bmN0aW9uKHgpe2NvbnNvbGUubG9nKHgpLGN3LmxpYi5ub3RlKCJGYWlsZWQgdG8gc3RhcnQgc3RyZWFtaW5nIGpvYi4gU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMuIiwiZXJyb3IiKX0pfSxydW5VbmR1bXA6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhLGQ9Ik11bHRpIj09Yy50YXNrLGU9JC5leHRlbmQoITAse30sYi5VbmR1bXApO2MudGd0LnppcGZpbGUsZD9jLnNyYy5kYnMudW5pcXVlKCk6Yy5zcmMudXJsO2IuVW56aXBEQm1hcD17fSxiLlVuemlwVG8uZm9yRWFjaChmdW5jdGlvbih4KXtiLlVuemlwREJtYXBbeC5uYW1lXT14LnRhcmdldH0pLCQuZXh0ZW5kKGUsT2JqZWN0LnNlbGVjdChiLFsiVW56aXBTdHJlYW0iLCJVbnppcERCbWFwIl0pKTt2YXIgZj17ZG9jc1RvU2F2ZTpiLmRvY3NUb1NhdmUsZGJzOmIuVW56aXBUby5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue3NyYzp4Lm5hbWUsbmFtZTp4LnRhcmdldCxmaWx0ZXI6eC5maWx0ZXIsdG90YWxTaXplOngucmF3X3NpemUsdG90YWxEb2NzOnguZG9jX2NvdW50Kyh4LmRvY19kZWxfY291bnR8fDApLHNlY3VyaXR5Onguc2VjdXJpdHksY2x1c3Rlcjp4LmNsdXN0ZXJ8fG51bGwscHJvcHM6eC5wcm9wc3x8bnVsbCxkb25lRG9jczowfX0pLG9wdHM6Yy50Z3Qub3B0c307cmV0dXJuIHgubW9kYWwoe3Jvb3Q6YSxkYXRhOmYsbWFuaWZlc3Q6ZSxnbG9iYWw6ITEsY2xvc2U6ITEsZXNjOiExLGFsaWduOiJib3R0b206MTJweDtyaWdodDoyMHB4OyIsY3NzOiJwMTAgeGdyYXkiLGRyYWc6Ii5jbSIsd2lkdGg6NDUwfSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT14LnN0YXR1cztyZXR1cm4iYWJvcnRlZCI9PWE/Y3cubGliLm5vdGUoYi5sYW5nLkVSUl9VTlpJUF9BQlJULCJlcnJvciIsOGUzKToiZG9uZSI9PWE/Y3cubGliLm5vdGUoYi5sYW5nLk1TR19VTlpJUF9PSywib2siLDhlMyk6dm9pZCAwfSkuZmFpbChmdW5jdGlvbih4KXtiLlVuemlwU3RyZWFtLmFib3J0KCksY29uc29sZS5sb2coeCxmKSxjdy5saWIubm90ZShiLmxhbmcuRVJSX1VOWklQX0ZBSUwsImVycm9yIiw1ZTMpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7Yi5kb2NzVG9TYXZlPVtdfSl9LHN0YXJ0VW56aXBTdHJlYW06ZnVuY3Rpb24oeCl7dmFyIGEsYj10aGlzLGM9Yi5kYXRhLGQ9JC5EZWZlcnJlZCgpLGU9ITEsZj0hMSxnPSExLGg9ITEsaT1bXSxqPW5ldyBVaW50OEFycmF5KCd7Im5ld19lZGl0cyI6ZmFsc2UsImRvY3MiOlsnLmNvZGVzKCkpLGs9bmV3IFVpbnQ4QXJyYXkoJ3sibmV3X2VkaXRzIjpmYWxzZSwiZG9jcyI6Jy5jb2RlcygpKSxsPW5ldyBVaW50OEFycmF5KCJdfSIuY29kZXMoKSksbT1uZXcgVWludDhBcnJheSgifSIuY29kZXMoKSksbj1uZXcgZmZsYXRlLlVuemlwKEUpO24ucmVnaXN0ZXIoZmZsYXRlLkFzeW5jVW56aXBJbmZsYXRlKTt2YXIgbz14LnN0cmVhbSgpLHA9W10scT1vLmdldFJlYWRlcigpLHI9Yi5kb2NzVG9TYXZlLHM9MSx0PTAsdT0wLHY9ITE7Yi5pc1N0cmVhbWluZz0hMCxjLnNyYy56aXA9eC5uYW1lO3ZhciB3PSExLHk9c2V0SW50ZXJ2YWwoQywxNyksej1zZXRJbnRlcnZhbChBLDMpO3JldHVybiBkLnByb21pc2UoKTtmdW5jdGlvbiBBKCl7IWYmJnAubGVuZ3RoJiZwLnNoaWZ0KCkuc3RhcnQoKX1mdW5jdGlvbiBCKCl7dHJ5e2NsZWFySW50ZXJ2YWwoeil9Y2F0Y2goeCl7fX1mdW5jdGlvbiBDKCl7Znx8ZXx8d3x8KHc9ITAscS5yZWFkKCkudGhlbihGKSl9ZnVuY3Rpb24gRCgpe3RyeXtjbGVhckludGVydmFsKHkpfWNhdGNoKHgpe319ZnVuY3Rpb24gRSh4KXtpZihmKXJldHVybiB4LnRlcm1pbmF0ZSgpO3ZhciBjPXgubmFtZSxuPS9cL19jb25mbGljdHNcLy8udGVzdChjKSxvPUwoYy5zcGxpdCgiLyIpWzBdKSxxPShiLlVuemlwREJtYXB8fHt9KVtvXSx3PVtdLHk9Il9pbmZvLmpzb24iPT1jO2lmKHl8fGMhPW8mJihudWxsPT09Yi5VbnppcERCbWFwfHxxKSYmL15bYS16MC05XyRcKFwpXCtcLVwvXStcLy4rXC5qc29uJC8udGVzdChMKGMpKSl7dy5wdXNoKG4/azpqKTt2YXIgej17bmFtZTpjLHNyY2RiOm8sZGVzdGRiOnEsc2l6ZTowLHJlYWR5OiExLHNhdmVkOiExLGVycm9yczpbXSxyZXE6bnVsbH07cys9MSx5fHwodCs9MSkseC5vbmRhdGE9ZnVuY3Rpb24oYSxiLGMpe2lmKGYpcmV0dXJuIHgudGVybWluYXRlKCk7YT9JKCJGYWlsZWQgdW56aXBwaW5nOiAiKygoYXx8InVua25vd24gZXJyb3IiKSsiIikudHJ1bmNhdGUoMTAwKSk6KGImJih3LnB1c2goYiksei5zaXplKz1iLmxlbmd0aCksYyYmQSgpKX0scC5wdXNoKHgpfWVsc2UgeC5vbmRhdGE9ZnVuY3Rpb24oYSxiLGMpe2lmKGYpcmV0dXJuIHgudGVybWluYXRlKCl9LHAucHVzaCh4KSx1Kz0xO2Z1bmN0aW9uIEEoKXtyZXR1cm4gZj94LnRlcm1pbmF0ZSgpOihzLT0xLHoucmVhZHk9ITAsdy5wdXNoKG4/bTpsKSx5JiYhdj8oSigpLHY9ITAsYT17aW5mbzpKU09OLnBhcnNlKEcodykpLmRvY3NbMF0scGF1c2U6SixhYm9ydDpJLGNvbnRpbnVlOkssbm90aWZ5OmZ1bmN0aW9uKHgpe2kucHVzaCh4KX0sZ2V0U3RhdHM6ZnVuY3Rpb24oKXtyZXR1cm57aXNaaXBSZWFkOmgsZmlsZXM6dCxkcm9wOnV9fSxpc1BhdXNlZDpmdW5jdGlvbigpe3JldHVybiBlfSxpc0Fib3J0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnx8Z30saXNEb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGlzQWxsUmVhZDpmdW5jdGlvbigpe3JldHVybiBofX0sdz12b2lkIDAsZC5yZXNvbHZlKGEpKTooei5yZXE9e3VybDoiIixwcm9jZXNzRGF0YTohMSxtZXRob2Q6InBvc3QiLGRhdGE6bmV3IEJsb2IodyksaGVhZGVyczp7IkNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSxyLnB1c2goeiksSCgiZG9jIix6LnNpemUpLDA9PXMmJihiLmlzU3RyZWFtaW5nPSExLGc9ITAsRCgpLEIoKSxyLnB1c2gobnVsbCksSCgiZW5kZWQiKSxkLnJlamVjdCgpKSx2b2lkIDApKX19ZnVuY3Rpb24gRih4KXt2YXIgYT14LmRvbmUsYj14LnZhbHVlO2E/KG4ucHVzaChifHxuZXcgVWludDhBcnJheSwhMCkscy09MSxoPSEwLEQoKSxjb25zb2xlLmxvZygiWmlwIGZpbGUgZW5kZWQsIHsxfSBmaWxlcyBwaXBlZCwgezJ9IGZpbGVzIGRyb3BwZWQiLmFzc2lnbih0LHUpKSk6bi5wdXNoKGIpLHc9ITF9ZnVuY3Rpb24gRyh4KXt2YXIgYT1uZXcgVWludDhBcnJheSh4Lm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5sZW5ndGh9KS5zdW0oKSksYj0wO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9eC5sZW5ndGg7YS5zZXQoeCxiKSxiKz1jfSksZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYSkpKX1mdW5jdGlvbiBIKHgsYil7YSYmaS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXRyeXthKHgsYil9Y2F0Y2goeCl7Y29uc29sZS5sb2coIkVycm9yIG5vdGlmeWluZyB1bnppcHBlZCBkb2MgcHVtcHMiLHgpfX0pfWZ1bmN0aW9uIEkoeCl7Zj0hMCxnPSEwLGIuaXNTdHJlYW1pbmc9ITEsYi5kb2NzVG9TYXZlLmxlbmd0aD0wLEQoKSxCKCkscS5jYW5jZWwoKS50aGVuKGZ1bmN0aW9uKCl7cS5yZWxlYXNlTG9jaygpO3RyeXtvLmNhbmNlbCgpfWNhdGNoKHgpe2NvbnNvbGUubG9nKHgpfX0pLGNvbnNvbGUubG9nKCJcblJlYWRlciBjYW5jZWxsZWRcbiIrKHh8fCIiKSkseCYmY3cubGliLm5vdGUoeCwiIiw2ZTMpfWZ1bmN0aW9uIEooKXtlPSEwLGNvbnNvbGUubG9nKCJcblJlYWRlciBwYXVzZWQsIHsxfSBmaWxlcyBpbiB0aGUgYnVmZmVyXG4iLmFzc2lnbihyLmxlbmd0aCkpfWZ1bmN0aW9uIEsoKXtlPSExLGNvbnNvbGUubG9nKCJcblJlYWRlciByZXN0YXJ0ZWRcbiIpfWZ1bmN0aW9uIEwoeCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh4KX19LHN0YXJ0VW56aXBTeW5jOmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPShiLmRhdGEsYi5kb2NzVG9TYXZlKSxkPSQuRGVmZXJyZWQoKSxlPVtdLGY9ITEsZz0hMSxoPSExO3JldHVybiB4LmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbih4KXtmZmxhdGUudW56aXAobmV3IFVpbnQ4QXJyYXkoeCksZnVuY3Rpb24oeCxqKXt4P2NvbnNvbGUubG9nKHgpOk9iamVjdC5rZXlzKGopLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGQ9aSh4LnNwbGl0KCIvIilbMF0pLGs9Il9pbmZvLmpzb24iPT14O2lmKGt8fGkoeCkhPWQmJi9eW2EtejAtOV8kXChcKVwrXC1cL10rXC8uK1wuanNvbiQvLnRlc3QoaSh4KSkpcmV0dXJuIGs/KGE9e2luZm86SlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxqW3hdKSkpKSxwYXVzZTpmdW5jdGlvbigpe30sYWJvcnQ6ZnVuY3Rpb24oKXtnPSEwLGg9ITAsYi5pc1N0cmVhbWluZz0hMSxiLmRvY3NUb1NhdmUubGVuZ3RoPTB9LGNvbnRpbnVlOmZ1bmN0aW9uKCl7fSxub3RpZnk6ZnVuY3Rpb24oeCl7ZS5wdXNoKHgpfSxnZXRTdGF0czpmdW5jdGlvbigpe3JldHVybntpc1ppcFJlYWQ6ITAsZmlsZXM6T2JqZWN0LnNpemUoaiksZHJvcDowfX0saXNQYXVzZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0saXNBYm9ydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGd8fGh9LGlzRG9uZTpmdW5jdGlvbigpe3JldHVybiBofSxpc0FsbFJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LHZvaWQgMCk6KGMucHVzaCh7bmFtZTp4LHNyY2RiOmQsZGVzdGRiOm51bGwsc2l6ZTpqW3hdLmxlbmd0aCxyZWFkeTohMSxzYXZlZDohMSxlcnJvcnM6W10scmVxOnt1cmw6IiIscHJvY2Vzc0RhdGE6ITEsbWV0aG9kOiJwb3N0IixkYXRhOi9cL19jb25mbGljdHNcLy8udGVzdCh4KT9uZXcgQmxvYihbJ3sibmV3X2VkaXRzIjpmYWxzZSwiZG9jcyI6JyxqW3hdLCJ9Il0pOm5ldyBCbG9iKFsneyJuZXdfZWRpdHMiOmZhbHNlLCJkb2NzIjpbJyxqW3hdLCJdfSJdKSxoZWFkZXJzOnsiQ29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19fSksdm9pZCAwKX0pLGMucHVzaChudWxsKSxhP2QucmVzb2x2ZShhKTpkLnJlamVjdCh4fHwiTm8gc3RyZWFtIil9KX0pLGQucHJvbWlzZSgpO2Z1bmN0aW9uIGkoeCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh4KX19LHJ1blRhc2tzOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPSJodHRwOi8vbG9jYWxob3N0OiIreC5QaG8oIkNvdWNoIikucG9ydCsiLyIsYz0iTXVsdGkiPT1hLnRhc2ssZD0hIWEubW9kZS5maW5kKCJkb2MiKSxlPShhLm1vZGUuZmluZCgiMndheSIpLCEhYS5tb2RlLmZpbmQoImxpdmUiKSksZj14LmlzQ291Y2gyJiYoZXx8ZCksZz0heC5pc0NvdWNoMiYmISFhLnNyYy51Y3R4Lmxlbmd0aCxoPVtdLGk9e30saj17ZG9jOiIiLG1vZGU6W10sc3JjOntkYjoiIix1cmw6IiIsdWN0eDpbXSxmaWx0ZXI6W10sZm46IiIscXVlcnk6e30saWRzOltdfSx0Z3Q6e3VybDoiIixjcmVhdGU6ITEsYWNsOiExfX07Yz9hLnNyYy5kYnMudW5pcXVlKCkuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYj0kLmV4dGVuZCghMCx7fSxqLE9iamVjdC5yZWplY3QoYSwidGFza3MiKSksYz1hLnRndC5wcmVmaXgrKHguc3RhcnRzV2l0aChhLnNyYy51bnByZWZpeCk/eC5yZXBsYWNlKGEuc3JjLnVucHJlZml4LCIiKTp4KTtiLnNyYy5kYj14LGIuc3JjLnVybD1mP2woeCxiLnNyYy51c2VyLGIuc3JjLnB3ZCk6eCxnJiYoYi51c2VyX2N0eD17bmFtZTpjdy5tZSgpLHJvbGVzOmEuc3JjLnVjdHguc2xpY2UoMCl9KSxiLnRndC51cmw9bChiLnRndC51cmwrKCIvIj09Yi50Z3QudXJsLnN1YnN0cigtMSk/IiI6Ii8iKSttKGMpLGIudGd0LnVzZXIsYi50Z3QucHdkKSxoLnB1c2goYil9KTooaT0kLmV4dGVuZCghMCx7fSxqLE9iamVjdC5yZWplY3QoYSwidGFza3MiKSksZyYmIXguaXNVUkwoYS5zcmMudXJsKSYmKGkudXNlcl9jdHg9e25hbWU6Y3cubWUoKSxyb2xlczphLnNyYy51Y3R4LnNsaWNlKDApfSksKGZ8fHguaXNVUkwoaS5zcmMudXJsKSkmJihpLnNyYy51cmw9bChpLnNyYy51cmwsaS5zcmMudXNlcixpLnNyYy5wd2QpKSwoZnx8eC5pc1VSTChpLnRndC51cmwpfHxpLnRndC51c2VyJiZpLnRndC5wd2QpJiYoaS50Z3QudXJsPWwoaS50Z3QudXJsLGkudGd0LnVzZXIsaS50Z3QucHdkKSksaD1baV0pLGMmJmN3LmxpYi5ub3RlKHgubGFuZy5NU0dfU1RBUlRJTkcpO3ZhciBrPVtdO3JldHVybiBoLmZvckVhY2goZnVuY3Rpb24oYSxiKXtrLnB1c2goUS5kZWxheSgxKzEwMCpiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHgucnVuVGFza0NoYWluKGEpfSkpfSksUS5hbGxTZXR0bGVkKGspO2Z1bmN0aW9uIGwoYSxjLGUpe3ZhciBmO2lmKHguaXNVUkwoYSkpZj1uZXcgVVJMKGEpO2Vsc2V7aWYoIShkfHxjfHx4LmlzQ291Y2gyKSlyZXR1cm4gYTtmPW5ldyBVUkwoYittKGEpKX1yZXR1cm4gYyYmKGYudXNlcm5hbWU9YyxmLnBhc3N3b3JkPWUpLGYrIiJ9ZnVuY3Rpb24gbSh4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfX0scnVuVGFza0NoYWluOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmxhbmcsYz1iLkVSUl9KT0IsZD1PYmplY3QsZT1hLlBobygiUmVwbGljYXRvckRCIiksZj1jdy5saWIubm90ZSxnPWQubWVyZ2Uoe2RvYzoiIixtb2RlOltdLHNyYzp7ZGI6IiIsdXJsOiIiLHVjdHg6W10sZmlsdGVyOltdLGZuOiIiLHF1ZXJ5Ont9LGlkczpbXX0sdGd0Ont1cmw6IiIsY3JlYXRlOiExLGFjbDohMX19LHgsITApLGg9YS5pc0xvY2FsREIoZy5zcmMudXJsKSxpPWgsaj0oYS5pc0xvY2FsREIoZy50Z3QudXJsKSwhIWcubW9kZS5maW5kKCJkb2MiKSksaz0hIWcubW9kZS5maW5kKCJsaXZlIiksbD0hIWcubW9kZS5maW5kKCIyd2F5IiksbT0iIixuPVtdLG89JC5EZWZlcnJlZCgpLHA9JC5EZWZlcnJlZCgpO3JldHVybiBvLnRoZW4ocSkudGhlbihyKS50aGVuKHMpLnRoZW4odCkudGhlbih1KS5mYWlsKGZ1bmN0aW9uKCl7ZihtLmVzY2FwZUhUTUwoKSwiZXJyb3IiLDVlMykscC5yZWplY3QoNDk5LG0pfSkuYWx3YXlzKGZ1bmN0aW9uKCl7cC5yZXNvbHZlKCl9KSxvLnJlc29sdmUuZGVib3VuY2UoMSkoKSxwLnByb21pc2UoKTtmdW5jdGlvbiBxKCl7aWYoaCl7dmFyIHg9JC5EZWZlcnJlZCgpO3JldHVybiBhLlJlcSh2KHt1cmw6W2ksIl9hbGxfZG9jcyIse3N0YXJ0a2V5OiJfZGVzaWduLyIsZW5ka2V5OiJfZGVzaWduMCJ9XSxtZXRob2Q6IkdFVCJ9KSkudGhlbihmdW5jdGlvbihhKXthLnJvd3MuZm9yRWFjaChmdW5jdGlvbih4KXtuLnB1c2goeC5pZCl9KSx4LnJlc29sdmUoKX0pLmZhaWwoZnVuY3Rpb24oYSxiKXttPWMuVC5hc3NpZ24oYy5HRVQsaSxhLGIpLHgucmVqZWN0KGEsbSl9KSx4LnByb21pc2UoKX19ZnVuY3Rpb24gcigpe2lmKGgmJmcuc3JjLmZpbHRlci5maW5kKC9eeChkZWx8ZGRvY3xjb25mbGljdCkkLykpe3ZhciB4PSQuRGVmZXJyZWQoKSxiPWQuY2xvbmUoYS5EZG9jLCEwKTtyZXR1cm4gbi5maW5kKGIuX2lkKT9hLlJlcSh2KHt1cmw6W2ksYi5faWRdLG1ldGhvZDoiR0VUIn0pKS50aGVuKGZ1bmN0aW9uKGEpe2EudmVyc2lvbj09Yi52ZXJzaW9uP3gucmVzb2x2ZSgpOihiLl9yZXY9YS5fcmV2LGUoKSl9KS5mYWlsKGYpOmUoKSx4LnByb21pc2UoKX1mdW5jdGlvbiBlKCl7YS5SZXEodih7dXJsOltpLGIuX2lkXSxtZXRob2Q6IlBVVCIsZGF0YTpjdy5saWIuanNvbigkLmV4dGVuZChiLHtzdGFtcDpEYXRlLm5vdygpfSkpLGRhdGFUeXBlOiJ0ZXh0In0pKS50aGVuKGZ1bmN0aW9uKCl7eC5yZXNvbHZlKCl9KS5mYWlsKGYpfWZ1bmN0aW9uIGYoYSxiKXttPWMuVC5hc3NpZ24oYy5VVElMUyxpLGEsYikseC5yZWplY3QoYSxtKX19ZnVuY3Rpb24gcygpe2lmKGcubW9kZS5maW5kKCIyd2F5IikmJmgmJmcuc3JjLmZpbHRlci5maW5kKC9eKGZufHhkZWx8eGRkb2N8eGNvbmZsaWN0KSQvKSl7dmFyIHg9YS5EZG9jLl9pZDtpZihnLnNyYy5maWx0ZXIuZmluZCgiZm4iKSl7aWYoIWcuc3JjLmZuKXJldHVybjt4PSJfZGVzaWduLyIrZy5zcmMuZm4uc3BsaXQoIi8iKVswXX12YXIgYj0kLkRlZmVycmVkKCk7cmV0dXJuIGEuUmVxKHYoe3VybDpbIl9yZXBsaWNhdGUiXSxtZXRob2Q6IlBPU1QiLHRpbWVvdXQ6NmU0LGRhdGFUeXBlOiJ0ZXh0IixkYXRhOkpTT04uc3RyaW5naWZ5KHtzb3VyY2U6Zy5zcmMudXJsLHRhcmdldDpnLnRndC51cmwsY29udGludW91czohMSxjcmVhdGVfdGFyZ2V0OiEhZy50Z3QuY3JlYXRlLGRvY19pZHM6W3hdfSl9KSkudGhlbihmdW5jdGlvbigpe2IucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbih4LGEpe2YoYy5ULmFzc2lnbihjLkZERE9DLGkseCxhKStjLkMsIndhcm5pbmciKSxiLnJlc29sdmUoKX0pLGIucHJvbWlzZSgpfX1mdW5jdGlvbiB0KCl7fWZ1bmN0aW9uIHUoKXt2YXIgeCxuPVtdLG89e3NvdXJjZTpnLnNyYy51cmwsdGFyZ2V0OmcudGd0LnVybCxjb250aW51b3VzOiEhZy5tb2RlLmZpbmQoImxpdmUiKSxjcmVhdGVfdGFyZ2V0OiEhZy50Z3QuY3JlYXRlfTtnLnNyYy5maWx0ZXIuZmluZCgiZm4iKSYmZy5zcmMuZm4/KG8uZmlsdGVyPWcuc3JjLmZuLGQuc2l6ZShnLnNyYy5xdWVyeSkmJihvLnF1ZXJ5X3BhcmFtcz1kLmNsb25lKGcuc3JjLnF1ZXJ5LCEwKSkpOmcuc3JjLmZpbHRlci5maW5kKCJpZHMiKT9vLmRvY19pZHM9ZC5jbG9uZShnLnNyYy5pZHMsITApOihuPWcuc3JjLmZpbHRlci5maW5kQWxsKC9eeChkZWx8ZGRvY3xjb25mbGljdCkkLykpLmxlbmd0aCYmKG8uZmlsdGVyPWEuRGRvYy5faWQuc3BsaXQoIi8iKVsxXSsiL2V4Y2x1ZGUiLG8ucXVlcnlfcGFyYW1zPW4ucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09IlQiLHh9LHt9KSksaiYmKG8uX2lkPWcuZG9jKyhoPyIsICIraSsiID0+IjpsPyIsIG91dGJvdW5kIjoiIiksby5vd25lcj1jdy5tZSgpLG8ucGhvdG9uX3Rhc2s9Zy5kb2MrIiIsZy51c2VyX2N0eCYmKG8udXNlcl9jdHg9T2JqZWN0LmNsb25lKGcudXNlcl9jdHgsITApKSk7dmFyIHA9Zy5zcmMudXJsLnNwbGl0KCIvIikuY29tcGFjdCghMCkubGFzdCgpLmVzY2FwZUhUTUwoKSxxPSQuRGVmZXJyZWQoKTtyZXR1cm4ganx8a3x8ZihiLk1TR19TVEFSVC5hc3NpZ24ocCkpLGwmJih4PSQuZXh0ZW5kKCEwLHt9LG8se3NvdXJjZTpnLnRndC51cmwsdGFyZ2V0Omcuc3JjLnVybCxjcmVhdGVfdGFyZ2V0OiExfSksaiYmKHguX2lkPWcuZG9jKyhoPyIsICIraSsiIDw9IjoiLCBpbmJvdW5kIikpKSxyKG8pLnRoZW4oZnVuY3Rpb24oKXt2YXIgeD1iW2o/Ik1TR19PS19ET0MiOms/Ik1TR19PS19MSVZFIjoiTVNHX09LX09OQ0UiXTtmKHguYXNzaWduKHApLCJvayIpLHQoZy50Z3QudXJsKSxsP1EuZGVsYXkoby5jcmVhdGVfdGFyZ2V0PzVlMzpqPzJlMzoxMDApLnRoZW4oZnVuY3Rpb24oKXtzKCkuYWx3YXlzKGZ1bmN0aW9uKCl7cS5yZXNvbHZlKCl9KX0pOnEucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbih4LGEpe209Yy5ULmFzc2lnbihjLlRPLGkseCxhKSxxLnJlamVjdCh4LG0pfSkscS5wcm9taXNlKCk7ZnVuY3Rpb24gcih4KXt2YXIgYj14Ll9pZCxjPXt1cmw6Yj9bZSxiXTpbIl9yZXBsaWNhdGUiXSxtZXRob2Q6Yj8iUFVUIjoiUE9TVCIsZGF0YVR5cGU6InRleHQiLGRhdGE6SlNPTi5zdHJpbmdpZnkoeCksdGltZW91dDpifHx4LmNvbnRpbnVvdXM/MWU0OjNlNX07cmV0dXJuIGEuUmVxKHYoYykpfWZ1bmN0aW9uIHMoKXtyZXR1cm4gcih4KS50aGVuKGZ1bmN0aW9uKCl7dmFyIHg9Ylsoaj8iTVNHX09LX0RPQyI6az8iTVNHX09LX0xJVkUiOiJNU0dfT0tfT05DRSIpKyJfQkFDSyJdO2YoeC5hc3NpZ24ocCksIm9rIiksdChnLnNyYy51cmwpfSkuZmFpbChmdW5jdGlvbih4LGEpe2YoYy5ULmFzc2lnbihjLkZST00saSx4LGEpK2MuQywid2FybmluZyIpfSl9ZnVuY3Rpb24gdCh4KXt2YXIgYj1hLmlzTG9jYWxEQih4KTshayYmYiYmJC5teS5yYWRpbygiZGJsaXN0IixbYl0pLGomJiQubXkucmFkaW8oImRibGlzdCIsW2VdKX19ZnVuY3Rpb24gdih4KXtyZXR1cm4gJC5leHRlbmQoITAse3VybDpbXSxtZXRob2Q6IiIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2pzb24iLGhlYWRlcnM6eyJYLUNvdWNoLUZ1bGwtQ29tbWl0IjoidHJ1ZSJ9LGRhdGFUeXBlOiJqc29uIix0aW1lb3V0OjFlNH0seCl9fSxEZG9jOntfaWQ6Il9kZXNpZ24vcGhvdG9uLXN5bmMiLGxhbmd1YWdlOiJqYXZhc2NyaXB0IixuYW1lOiJQaG90b24gc3luYyB1dGlscyIsdmVyc2lvbjoiMDEuMDEiLHN0YW1wOjAsb3B0aW9uczp7Y29uZmxpY3RzOiEwfSxmaWx0ZXJzOntleGNsdWRlOmZ1bmN0aW9uKHgsYSl7dmFyIGI9YS5xdWVyeXx8e30sYz14Ll9pZDtyZXR1cm4hKGIueGRlbCYmeC5fZGVsZXRlZHx8Yi54ZGRvYyYmIl9kZXNpZ24vIj09Yy5zdWJzdHIoMCw4KSl9fX0sRHVtcFppcDp7aWQ6ImN3LlBob3Rvbi5EdW1wWmlwIixwYXJhbXM6e3Jlc3R5bGU6MjAwfSxEYXRhVXJsczpbXSxyZXF1aXJlOlt7IndpbmRvdy5Xcml0YWJsZVN0cmVhbSI6ImxpYi93ZWJzdHJlYW1zLmpzIn0seyJ3aW5kb3cuc3RyZWFtU2F2ZXIiOiJsaWIvc3RyZWFtc2F2ZXIuanMiLCJ3aW5kb3cuZmZsYXRlIjoibGliL2ZmbGF0ZS5qcyJ9XSxkYXRhOntkYnM6W10sbmFtZToiZHVtcCIsemlwOm51bGwsdXJsOiIiLG9wdHM6W10sYnl0ZXM6MCx6Ynl0ZXM6MCxkb25lOiExLHN0YXR1czoicmVhZHkiLG1heFJlYWRTdHJlYW1zOjQsbWF4RmVlZENodW5rOjIwOTcxNTIsbWluRmVlZERvY3M6MTUsbWF4RmVlZERvY3M6MTAwLG1heFJlc3RhcnRzOjN9LERCczp7fSxTdGFtcDowLERvY0xpc3Q6W10sREJzUmVhZEN0cjowLFN0cmVhbTp7YWJvcnQ6ZnVuY3Rpb24oKXt9fSxJbmZvRG9jOnt9LGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTtyZXR1cm4geC5odG1sKGEuSFRNTCkseC50aGVuKGZ1bmN0aW9uKCl7YS5TdHJlYW09YS5TdHJlYW1Eb2NzKCksYi5zdGF0dXM9InN0cmVhbWluZyJ9LmRlYm91bmNlKDUwKSksYS5SZWFkREJzSW5mbygpLnRoZW4oZnVuY3Rpb24oKXthLlN0YW1wPURhdGUubm93KCl9KX0sdWk6eyIjZGItcm93cyI6e2JpbmQ6ImRicyIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLm5pY2VTY3JvbGwoeCl9LGxpc3Q6JzxkaXYgY2xhc3M9Im10NSBwdDUgcGI1IGJiZCI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5EQlJvd30saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHgudXJsfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbeC50b3RhbERvY3MrIiIseC50b3RhbFNpemUrIiJdKX19LCIjYnl0ZXMiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguYnl0ZXM/dGhpcy5CeXRlc1QuYXNzaWduKHguYnl0ZXMuYnl0ZXMoMSkucmVwbGFjZSgvQiQvLCJiIikseC5kb25lPyJmaS1jaGVjayBvNzAgZ3JlZW4gZnM4MCI6ImZpLWFycm93LXJpZ2h0IG81MCB4Z3JheSBmczgwIix4LnpieXRlcy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImIiKSk6IiJ9LCIjc3RyZWFtLXNwZWVkIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPShEYXRlLm5vdygpLXRoaXMuU3RhbXArMSkvMWUzLGM9KDgqeC5ieXRlcy9ifDApLmNsYW1wKDAsMWU5KTtyZXR1cm4gYz9jLmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYml0L3MiKToiIn0sd2F0Y2g6WyIjYnl0ZXMiXX0sIiNidG4tc3RvcCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLlN0cmVhbS5hYm9ydCgpfX19LHN0eWxlOnsiICI6ZnVuY3Rpb24oeCl7cmV0dXJuInN0cmVhbWluZyI9PXRoaXMuZGF0YS5zdGF0dXMmJngudHJpZ2dlcigibGF5b3V0IiksImZvbnQtc2l6ZToxNXB4OyBsaW5lLWhlaWdodDoxLjRlbTsifX0sSFRNTDonPGRpdiBjbGFzcz0iZnMxMzAgZnc0MDAgY20iPjxzcGFuIGNsYXNzPSJmaS1saXN0IG80MCBmczg1IG1yMyI+PC9zcGFuPiBEdW1wIHRvIHppcDwvZGl2PjxkaXYgaWQ9ImRiLXJvd3MiIGNsYXNzPSJtdDEwIGJ0ZCBtYjEwIiBzdHlsZT0ibWF4LWhlaWdodDo1MDBweDsiPjwvZGl2PjxkaXY+PGRpdiBpZD0ic3RyZWFtLXNwZWVkIiBjbGFzcz0idzI1cCBvNTAgZnIgdGFyIG10NSI+PC9kaXY+PGRpdiBpZD0iYnl0ZXMiIGNsYXNzPSJmciB3NDVwIG10NSBvNzAiPjwvZGl2PjxidXR0b24gaWQ9ImJ0bi1zdG9wIiBjbGFzcz0ibXI1Ij5BYm9ydCB6aXA8L2J1dHRvbj48L2Rpdj4nLEJ5dGVzVDonPHNwYW4gY2xhc3M9ImRpYiB3NDVwIHRhciI+ezF9PC9zcGFuPjxzcGFuIGNsYXNzPSJkaWIgdzEwcCB0YWMgezJ9Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImRpYiB3NDVwIHRhbCI+ezN9PC9zcGFuPicsZGllOmZ1bmN0aW9uKHgpe3RoaXMuRGF0YVVybHMuZm9yRWFjaChmdW5jdGlvbih4KXtVUkwucmV2b2tlT2JqZWN0VVJMKHgpfSl9LFJlYWREQnNJbmZvOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YSxiPWEub3B0c3x8W107cmV0dXJuIHguREJzUmVhZEN0cj1hLmRicy5sZW5ndGgsUS5hbGwoYS5kYnMubWFwKGZ1bmN0aW9uKGEpe3ZhciBkPS9eKGh0dHBbc10/OlwvXC98XC8pLy50ZXN0KGEudXJsKT9hLnVybC5zcGxpdCgiLyIpLmNvbXBhY3QoITApLmxhc3QoKTphLnVybCxlPWEuZHJvcC5maWx0ZXJ8fFtdLGY9ZS5maW5kKCJpZHMiKSYmYS5kcm9wLmlkc3x8W10sZz0vXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdChhLnVybCk/YS51cmw6Ii8iK2MoYS51cmwpLGg9ISFlLmZpbmQoInhkZWwiKTtyZXR1cm4geC5SZXEoZykudGhlbihmdW5jdGlvbihjKXt2YXIgZT0oYy5kb2NfY291bnR8fDApKyhoPzA6Yy5kb2NfZGVsX2NvdW50fHwwKSxnPShjLnNpemVzP2Muc2l6ZXMuYWN0aXZlOmMuZGF0YV9zaXplKXx8MDthLnRvdGFsU2l6ZT1nLGEudG90YWxEb2NzPWUsYS5tYXhTZXE9Yy51cGRhdGVfc2VxPysoYy51cGRhdGVfc2VxKyIiKS5zcGxpdCgiLSIpWzBdOi0xO3ZhciBpPVsiZG9jX2NvdW50Il07aHx8aS5wdXNoKCJkb2NfZGVsX2NvdW50IiksYi5maW5kKCJxbnAiKSYmaS5wdXNoKCJwcm9wcyIsImNsdXN0ZXIiKSx4LkluZm9Eb2NbZF09JC5leHRlbmQoITAse25hbWU6ZCxmaWx0ZXI6Zi5sZW5ndGg/ZjpudWxsLHN0YXJ0X3NlcTowLG1heF9zZXE6YS5tYXhTZXEsdHM6RGF0ZS5ub3coKSxzZWN1cml0eTpudWxsLHJhd19zaXplOmcsZG9jX2NvdW50OjAsZG9jX2RlbF9jb3VudDowfSxPYmplY3Quc2VsZWN0KGMsaSkpfSkudGhlbihmdW5jdGlvbigpe2lmKGIuZmluZCgiYWNsIikpe3ZhciBhPSQuRGVmZXJyZWQoKTtyZXR1cm4geC5SZXEoZysiL19zZWN1cml0eSIpLnRoZW4oZnVuY3Rpb24oYil7T2JqZWN0LmlzT2JqZWN0KGIpJiYoeC5JbmZvRG9jW2RdLnNlY3VyaXR5PWIpLGEucmVzb2x2ZSgpfSkuZmFpbChmdW5jdGlvbigpe2EucmVzb2x2ZSgpfSksYS5wcm9taXNlKCl9fSkuZmFpbChmdW5jdGlvbigpe2N3LmxpYi5ub3RlKCdGYWlsZWQgcmVhZGluZyA8c3BhbiBjbGFzcz0iZnc0MDAiPnsxfTwvc3Bhbj4gREIuIER1bXAgYWJvcnRlZC4nLmFzc2lnbihkKSwiZXJyb3IiKX0pfSkpO2Z1bmN0aW9uIGMoeCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh4KX19LFN0cmVhbURvY3M6ZnVuY3Rpb24oKXt2YXIgeCxhLGI9dGhpcyxjPWIuZGF0YSxkPXt9LGU9e30sZj1bXSxnPVtdLGg9Yy5tYXhSZWFkU3RyZWFtcyxpPWMubWF4UmVzdGFydHN8fDMsaj0hMCxrPSExLGw9QS50aHJvdHRsZSgyNTApLG09InsxfS97Mn0/cmV2PXszfSZhdHRhY2htZW50cz10cnVlIixuPSJ7MX0vezJ9P2F0dGFjaG1lbnRzPXRydWUiLG89InsxfS97Mn0/b3Blbl9yZXZzPXszfSZhdHRhY2htZW50cz10cnVlIjsiVGV4dEVuY29kZXIiaW4gd2luZG93Pyh4PW5ldyBUZXh0RW5jb2RlcixhPWZ1bmN0aW9uKGEpe3JldHVybiB4LmVuY29kZShhKX0pOmE9ZnVuY3Rpb24oeCl7cmV0dXJuIGZmbGF0ZS5zdHJUb1U4KHgpfTt2YXIgcCxxPW5ldyBmZmxhdGUuWmlwLHI9c3RyZWFtU2F2ZXIuY3JlYXRlV3JpdGVTdHJlYW0oYy5uYW1lKyIuemlwIix7cGF0aG5hbWU6Ii9fc3RyZWFtLyIrYy5uYW1lKyIuemlwIixzaWduYWw6c30pLmdldFdyaXRlcigpO3JldHVybiBxLm9uZGF0YT1mdW5jdGlvbih4LGEsYil7eD9DKCJGYWlsZWQgemlwcGluZzogIisoKHh8fCJ1bmtub3duIGVycm9yIikrIiIpLnRydW5jYXRlKDEwMCkpOihhJiZhLmxlbmd0aCYmKHIud3JpdGUoYSksYy56Ynl0ZXMrPWEubGVuZ3RoKSxiJiYoaz9DKCJBYm9ydGVkIik6QigpKSl9LHA9Yi5QaG8sdCgiX2luZm8uanNvbiIsYShKU09OLnN0cmluZ2lmeSh7dXNlcjpjdy5tZSgpLGRhdGU6KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQrLywiIikscGhvdG9uOnAoIlZlcnNpb24iKSsiLiIrcCgiYnVpbGQiKSxjb3VjaDpwKFsiQ291Y2giLCJ2ZXJzaW9uIl0pLGhvc3Q6Y3cubGliLmNyYzIod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSxkYnM6T2JqZWN0LnZhbHVlcyhiLkluZm9Eb2MpfSxudWxsLCIgICIpKSksYy5kYnMuZm9yRWFjaChmdW5jdGlvbih4KXtiLkRCc1t4LnVybF09eCxPYmplY3QuaXNBcnJheSh4LmRyb3AuaWRzKSYmeC5kcm9wLmlkcy5sZW5ndGg/KHguZHJvcC5pZHMuZm9yRWFjaChmdW5jdGlvbihhKXt1KHgudXJsLHtpZDphLGRvYzpudWxsLHJldnM6W119KX0pLGIuREJzUmVhZEN0ci09MSxnLnB1c2gobnVsbCkpOmIuUHJlcGFyZURvY0xpc3QoeCx1KS50aGVuKGZ1bmN0aW9uKGEpe0QoIkRCOiB7MX0sIGRvY3M6IHtkb2NzfSwgc2VxOiB7c2VxfSIuYXNzaWduKGEpLmFzc2lnbih4LnVybC5zcGxpdCgiLyIpLmxhc3QoKSkpLGIuREJzUmVhZEN0cnx8Zy5wdXNoKG51bGwpLHkoKX0pLmZhaWwoZnVuY3Rpb24oKXtDKCJGYWlsZWQgcmVhZGluZyBkb2MgbGlzdCIpfSl9KSx7YWJvcnQ6ZnVuY3Rpb24oeCl7az0hMCxDKHh8fCJUZXJtaW5hdGVkIGJ5IHVzZXIiKX19O2Z1bmN0aW9uIHMoeCl7InVzZXIgYWJvcnRlZCI9PXgmJkMoIlVzZXIgYWJvcnRlZCIpfWZ1bmN0aW9uIHQoeCxhKXt2YXIgYixjPWEuYnl0ZUxlbmd0aDtiPWM8NTEyP25ldyBmZmxhdGUuWmlwUGFzc1Rocm91Z2goeCk6YzwzMjc2OD9uZXcgZmZsYXRlLlppcERlZmxhdGUoeCk6bmV3IGZmbGF0ZS5Bc3luY1ppcERlZmxhdGUoeCkscS5hZGQoYiksYi5wdXNoKGEsITApfWZ1bmN0aW9uIHUoeCxhKXt2YXIgYj0vXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdCh4KSxjPWEuaWQsZD1hLnJldjtyZXR1cm4gYS5yZXZzLmxlbmd0aCYmZy5wdXNoKHtkYjp4LGlkOmMsbmFtZTpbdyhiP3guc3BsaXQoIi8iKS5jb21wYWN0KCEwKS5sYXN0KCk6eCkrIi8iLCJfY29uZmxpY3RzLyIsdyhjLCEwKSsiLmpzb24iXS5qb2luKCIiKSx1cmw6by5hc3NpZ24oYj94OiIvIit2KHgpLHYoYyksdihKU09OLnN0cmluZ2lmeShhLnJldnMpKSksb3B0czp7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19LGlzUmV2czohMH0pLGcucHVzaCh7ZGI6eCxpZDpjLG5hbWU6W3coYj94LnNwbGl0KCIvIikuY29tcGFjdCghMCkubGFzdCgpOngpKyIvIixhLmRlbD8iX2RlbGV0ZWQvIjoiIix3KGMsYS5kZWwpKyIuanNvbiJdLmpvaW4oIiIpLGRvYzphLmRvYyx1cmw6KGQ/bTpuKS5hc3NpZ24oYj94OiIvIit2KHgpLHYoYyksZCksb3B0czp7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19fSkseSgpLGt9ZnVuY3Rpb24gdih4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfWZ1bmN0aW9uIHcoeCxhKXt2YXIgYj0hYSYmL15fZGVzaWduXC8vLnRlc3QoeCk7cmV0dXJuKGI/Il9kZXNpZ24vIjoiIikrKGI/eC5zdWJzdHIoOCk6eCkucmVwbGFjZSgvWyJcLzolPD5cP1xcXHxdL2csdikucmVwbGFjZSgvXCovZywiJTJBIil9ZnVuY3Rpb24geSgpe2lmKCFrKWZvcih2YXIgeD17fTtPYmplY3Quc2l6ZShkKTxoJiZnLmxlbmd0aCYmbnVsbCE9PXg7KW51bGw9PT0oeD1nLnNoaWZ0KCkpPzA9PU9iamVjdC5zaXplKGQpP3EuZW5kKCk6Zy5wdXNoKG51bGwpOmRbeC5uYW1lXT16KHgpfWZ1bmN0aW9uIHooeCl7aWYoaylyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCgpO3ZhciBoPSQuRGVmZXJyZWQoKTtyZXR1cm4gbnVsbCE9eC5kb2M/bS5kZWxheSgwLHguZG9jKTpmZXRjaCh4LnVybCx4Lm9wdHMpLnRoZW4oZnVuY3Rpb24oYSl7aWYoYS5vaylyZXR1cm4geC5pc1JldnM/YS5qc29uKCk6YS5hcnJheUJ1ZmZlcigpOzQwND09YS5zdGF0dXM/KGIuREJzW3guZGJdLmRvbmVEb2NzKz0xLGYucHVzaCh4LnVybCksZnVuY3Rpb24oKXtoLnJlc29sdmUoKX0uZGVib3VuY2UoNTApKCkpOihlW3gudXJsXT0oZVt4LnVybF18fFtdKS5wdXNoKFthLnN0YXR1cyxEYXRlLm5vdygpXS5qb2luKCIgIikpLGVbeC51cmxdLmxlbmd0aDxpP251bGw9PT1nLmxhc3QoKT8oZy5wb3AoKSxnLnB1c2goeCxudWxsKSk6Zy5wdXNoKHgsbnVsbCk6aj9DKCJGYXRhbCBmYWlsdXJlIHJlYWRpbmcgIit4LnVybC5lc2NhcGVIVE1MKCkrIiwgZHVtcCBhYm9ydGVkLiIpOihiLkRCc1t4LmRiXS5kb25lRG9jcys9MSxmdW5jdGlvbigpe2gucmVzb2x2ZSgpfS5kZWJvdW5jZSg1MCkoKSkpfSkudGhlbihtKS5jYXRjaChmdW5jdGlvbigpe0QoIkZhaWxlZCByZWFkaW5nICIreC5pZCksaC5yZWplY3QoIkZhaWxlZCByZWFkaW5nICIreC5pZCl9KSxoLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBkW3gubmFtZV0seSgpfSksaC5wcm9taXNlKCk7ZnVuY3Rpb24gbShkKXt2YXIgZj0hMDtpZihkIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpYy5ieXRlcys9ZC5ieXRlTGVuZ3RoLHQoeC5uYW1lLG5ldyBVaW50OEFycmF5KGQpKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZCl7dmFyIGc9YShkKTtjLmJ5dGVzKz1nLmJ5dGVMZW5ndGgsdCh4Lm5hbWUsZyl9ZWxzZSBPYmplY3QuaXNBcnJheShkKSYmKGY9ITEsdCh4Lm5hbWUsYSgiW1xuIitkLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeC5vayl9KS5qb2luKCIsXG4iKSsiXG5dIikpKTtEKCJEb25lICIreC5kYisiLyIreC5uYW1lKSxoLnJlc29sdmUoKSxmJiYoYi5EQnNbeC5kYl0uZG9uZURvY3MrPTEpLGRlbGV0ZSBlW3gudXJsXSxsKCl9fWZ1bmN0aW9uIEEoKXtiLm15LmNoZWNrKCIjYnl0ZXMiKSwkLm15LnJhZGlvKCJkYlN0cmVhbVVwZGF0ZSIse30pfWZ1bmN0aW9uIEIoKXtEKCJEb25lIiksYy5kb25lPSEwLHIuY2xvc2UoKSxBKCksY3cubGliLm5vdGUoJzxzcGFuIGNsYXNzPSJmdzQwMCI+WklQIGR1bXAgd2FzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLjwvc3Bhbj4nLCJvayIsNWUzKSxmdW5jdGlvbigpe2IubXkuY29tbWl0KCl9LmRlbGF5KDNlMyl9ZnVuY3Rpb24gQyh4KXtpZihjLmRvbmUpcmV0dXJuIGIubXkuY29tbWl0KCk7az0hMCxjdy5saWIubm90ZSh4LCJlcnJvciIsNmUzKSxyLmFib3J0KCkscS50ZXJtaW5hdGUoKSxjLmVycm9yPXgsYi5teS5jb21taXQoKX1mdW5jdGlvbiBEKHgsYSxjKXtiLl9kZWJ1ZyYmY29uc29sZS5sb2coeCxhLGMpfX0sUHJlcGFyZURvY0xpc3Q6ZnVuY3Rpb24oeCxhKXt2YXIgYj0kLkRlZmVycmVkKCksYz10aGlzLGQ9Yy5kYXRhLGU9ZC5tYXhGZWVkQ2h1bmssZj14LnRvdGFsU2l6ZSYmeC50b3RhbERvY3M/eC50b3RhbFNpemUveC50b3RhbERvY3N8MDowLGc9IShmJiYhKGY+ZS9kLm1pbkZlZWREb2NzKSksaD0oZz9kLm1heEZlZWREb2NzOk1hdGguY2VpbChlL2YpKS5jbGFtcChkLm1pbkZlZWREb2NzLGQubWF4RmVlZERvY3MpLGk9ZC5tYXhSZXN0YXJ0c3x8MyxqPXguc2luY2V8fDAsaz0hISh4LmRyb3AuZmlsdGVyfHxbXSkuZmluZCgieGRkb2MiKSxsPSEhKHguZHJvcC5maWx0ZXJ8fFtdKS5maW5kKCJ4ZGVsIiksbT0hISh4LmRyb3AuZmlsdGVyfHxbXSkuZmluZCgieHJldnMiKSxuPVsvXihodHRwW3NdPzpcL1wvfFwvKS8udGVzdCh4LnVybCk/eC51cmw6Ii8iK3EoeC51cmwpLCIvX2NoYW5nZXM/c2luY2U9ezF9IixtPyIiOiImc3R5bGU9YWxsX2RvY3MiLGc/IiI6IiZpbmNsdWRlX2RvY3M9dHJ1ZSZhdHRhY2htZW50cz10cnVlIiwiJmxpbWl0PSIraF0uam9pbigiIiksbz1zLmRlYm91bmNlKDFlMykscD0wO3JldHVybiByKCksYi5wcm9taXNlKCk7ZnVuY3Rpb24gcSh4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfWZ1bmN0aW9uIHIoKXtjLlJlcShuLmFzc2lnbihqKSkudGhlbihmdW5jdGlvbihkKXtqPWQubGFzdF9zZXE7dmFyIGU9KGQucmVzdWx0c3x8W10pLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hdChhLnNlcSx4Lm1heFNlcSl9KSxmPSExO2lmKCFlLmxlbmd0aClyZXR1cm4gYy5EQnNSZWFkQ3RyLT0xLGIucmVzb2x2ZSh7ZG9jczpwLHNlcTpqfSk7Zm9yKHZhciBoPWUuZmlsdGVyKGZ1bmN0aW9uKHgpe3JldHVybiEobCYmeC5kZWxldGVkfHxrJiYvXl9kZXNpZ25cLy8udGVzdCh4LmlkKSl9KS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJue2lkOnguaWQscmV2OnguY2hhbmdlc1swXS5yZXYsZGVsOiEheC5kZWxldGVkLGRvYzpnfHwheC5kb2M/bnVsbDpKU09OLnN0cmluZ2lmeSh4LmRvYykscmV2czptP1tdOnguY2hhbmdlcy5zbGljZSgxKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHgucmV2fSl9fSksaT0wO2k8aC5sZW5ndGgmJiFmO2krKylmPWEoeC51cmwsaFtpXSkscCs9MTtmP2IucmVqZWN0KHtlcnJvcjoiYWJvcnRlZCIsZG9jczpwLHNlcTpqfSk6cigpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y29uc29sZS5sb2coeCxhLGIpLG8oKX0pfWZ1bmN0aW9uIHMoKXtpZigoaS09MSk8MSlyZXR1cm4gYi5yZWplY3QoIkF0dGVtcHRzIHRvIHJlYWQgZG9jcyBsaXN0IGZhaWxlZCIpO3IoKX1mdW5jdGlvbiB0KHgsYSl7aWYoLTE9PWEpcmV0dXJuITE7dmFyIGI9eCsiLSI7cmV0dXJuK2Iuc3Vic3RyKDAsYi5pbmRleE9mKCItIikpPmF9fSxEQlJvdzp7aWQ6ImN3LlBob3Rvbi5EdW1wWmlwLkRCUm93Iixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO3guaHRtbChhLkhUTUwpfSxkYXRhOnt1cmw6IiIsc2luY2U6MCxkcm9wOntmaWx0ZXI6W10sZm46IiIsaWRzOltdLHF1ZXJ5Ont9fSxtb2RlOiJqc29uIix0b3RhbFNpemU6MCx0b3RhbERvY3M6MCxkb25lRG9jczowLG1heFNlcTowfSx1aTp7IiNudW0tdG90YWwiOntiaW5kOmZ1bmN0aW9uKHgsYSl7aWYoIXgudG90YWxEb2NzKXJldHVybiIiO3ZhciBiPXguZHJvcC5pZHMubGVuZ3RofHx4LnRvdGFsRG9jcztyZXR1cm4gTWF0aC5mbG9vcih4LmRvbmVEb2NzL2IqMTAwKS5jbGFtcCgwLDEwMCkrIiUifSxsaXN0ZW46e2RiU3RyZWFtVXBkYXRlOmZ1bmN0aW9uKHgsYSl7aWYoT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybiBudWxsfX19LCIjbnVtLWJnIjp7YmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGM9eC5kcm9wLmlkcy5sZW5ndGh8fHgudG90YWxEb2NzO2M/Yi5jc3Moe2hlaWdodDooeC5kb25lRG9jcy9jKjIuNSkuY2xhbXAoMCwyLjUpKyJlbSJ9KTpiLmNzcyh7aGVpZ2h0OiIwcHgifSl9LGxpc3Rlbjp7ZGJTdHJlYW1VcGRhdGU6ZnVuY3Rpb24oeCxhKXtpZihPYmplY3QuaXNPYmplY3QoYSkpcmV0dXJuIG51bGx9fX0sIiNkYi1uYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoL15odHRwW3NdPzpcL1wvLy50ZXN0KHgudXJsKXx8Ii8iPT14LnVybFswXT94LnVybC5zcGxpdCgiLyIpLmxhc3QoKTp4LnVybCkudHJ1bmNhdGUoMzUsIm1pZGRsZSIsIi4uLiIpLmVzY2FwZUhUTUwoKX19LCIjZGItdG90YWxzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXguZHJvcC5pZHMubGVuZ3RoO2J8fHgudG90YWxEb2NzO3JldHVybiBiPyJ7MX0gZG9jezJ9IG9mIHszfSIuYXNzaWduKGIsYj4xPyJzIjoiIix4LnRvdGFsRG9jcyk6InsxfSBkb2NzLCB7Mn0gcmF3Ii5hc3NpZ24oeC50b3RhbERvY3MseC50b3RhbFNpemUuYnl0ZXMoMikucmVwbGFjZSgvQiQvLCJiIikpfX19LEhUTUw6JzxkaXYgY2xhc3M9Im51bS1jb250IGRpYiB2YXQiPjxkaXYgaWQ9Im51bS1iZyIgY2xhc3M9IncxMDBwIj48L2Rpdj48ZGl2IGlkPSJudW0tdG90YWwiIGNsYXNzPSJ3MTAwcCB0YWMgZnMxMTAgZnczMDAgbzcwIGxoMjAwIHB0MSI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZGItaW5mbyBkaWIgdmF0Ij48ZGl2IGlkPSJkYi1uYW1lIiBjbGFzcz0idzEwMHAgZnMxMjAgZnc0MDAgbncgb2ggZWxsIj48L2Rpdj48ZGl2IGlkPSJkYi10b3RhbHMiIGNsYXNzPSJ3MTAwcCBmczkwIG84MCBudyBvaCBlbGwiPjwvZGl2PjwvZGl2Picsc3R5bGU6eyIgLm51bS1jb250Ijp7IiI6IndpZHRoOjNlbTsgaGVpZ2h0OjIuNWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXItcmFkaXVzOiAycHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQtY29sb3I6I2YyZjVmODsiLCIgI251bS1iZyI6InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MDsgbGVmdDogMDsgYmFja2dyb3VuZC1jb2xvcjojYzNlZTk0OyB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yczsifSwiIC5kYi1pbmZvIjp7IiI6IndpZHRoOiBjYWxjKDEwMCUgLSAzZW0pOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nLWxlZnQ6IDFlbTsifX19fSxVbmR1bXA6e2lkOiJjdy5QaG90b24uVW5kdW1wIixwYXJhbXM6e3Jlc3R5bGU6MjAwfSxEYXRhVXJsczpbXSxyZXF1aXJlOlt7IndpbmRvdy5Xcml0YWJsZVN0cmVhbSI6ImxpYi93ZWJzdHJlYW1zLmpzIn0seyJ3aW5kb3cuZmZsYXRlIjoibGliL2ZmbGF0ZS5qcyJ9XSxkYXRhOntkYnM6W10sZG9jc1RvU2F2ZTpbXSxvcHRzOltdLGJ5dGVzOjAsemJ5dGVzOjAsZG9uZTohMSxzdGF0dXM6IiIsbWF4QnVmZmVyOjJlOCxtYXhXcml0ZVN0cmVhbXM6NixtYXhSZXN0YXJ0czozfSxVbnppcERCbWFwOm51bGwsVW56aXBTdHJlYW06e30saW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9YS5kYXRhO3guaHRtbChhLkhUTUwpLHgudGhlbihmdW5jdGlvbigpe2Iuc3RhdHVzPSJzdHJlYW1pbmciLGEuUHJlcGFyZURCcygpLnRoZW4oZnVuY3Rpb24oKXthLlNhdmVyPWEuU2F2ZURvY3MoKX0pfS5kZWJvdW5jZSg1MCkpLGEuU3RhbXA9RGF0ZS5ub3coKX0sdWk6eyIjZGItcm93cyI6e2JpbmQ6ImRicyIsaW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLm5pY2VTY3JvbGwoeCl9LGxpc3Q6JzxkaXYgY2xhc3M9Im10NSBwdDUgcGI1IGJiZCI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5EQlJvd30saWQ6ZnVuY3Rpb24oeCl7cmV0dXJuIHgudXJsfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbeC50b3RhbERvY3MrIiIseC50b3RhbFNpemUrIiJdKX19LCIjYnl0ZXMiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHguYnl0ZXM/JzxzcGFuIGNsYXNzPSJmaS11cGxvYWQtY2xvdWQgbzUwIHhncmF5IGZzODAiPjwvc3Bhbj4gJyt4LmJ5dGVzLmJ5dGVzKDEpLnJlcGxhY2UoL0IkLywiYiIpOiIifSwiI3N0cmVhbS1zcGVlZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0oRGF0ZS5ub3coKS10aGlzLlN0YW1wKzEpLzFlMyxjPSg4KnguYnl0ZXMvYnwwKS5jbGFtcCgwLDFlOSk7cmV0dXJuIGM/Yy5ieXRlcygxKS5yZXBsYWNlKC9CJC8sImJpdC9zIik6IiJ9LHdhdGNoOlsiI2J5dGVzIl19LCIjYnRuLXN0b3AiOntiaW5kOmZ1bmN0aW9uKHgsYSl7bnVsbCE9YSYmKHRoaXMuQWJvcnQoKSx0aGlzLm15LmNvbW1pdCgpKX19fSxTYXZlcjpudWxsLEFib3J0OmZ1bmN0aW9uKCl7dmFyIHg9dGhpcyxhPXguZGF0YTt0cnl7eC5TYXZlci5hYm9ydCgpfWNhdGNoKHgpe310cnl7eC5VbnppcFN0cmVhbS5hYm9ydCgpfWNhdGNoKHgpe30kLm15LnJhZGlvKCJkYmxpc3QiLGEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lfSkpLGEuc3RhdHVzPSJhYm9ydGVkIn0sSFRNTDonPGRpdiBjbGFzcz0iZnMxMzAgZnc0MDAgY20iPjxzcGFuIGNsYXNzPSJmaS1saXN0IG80MCBmczg1IG1yMyI+PC9zcGFuPiBSZXN0b3JlIGZyb20gWklQIGR1bXA8L2Rpdj48ZGl2IGlkPSJkYi1yb3dzIiBjbGFzcz0ibXQxMCBidGQgbWIxMCIgc3R5bGU9Im1heC1oZWlnaHQ6NDUwcHg7Ij48L2Rpdj48ZGl2PjxkaXYgaWQ9InN0cmVhbS1zcGVlZCIgY2xhc3M9IncyNXAgbzUwIGZyIHRhciBtdDUiPjwvZGl2PjxkaXYgaWQ9ImJ5dGVzIiBjbGFzcz0iZnIgdzI1cCBtdDUgbzcwIj48L2Rpdj48YnV0dG9uIGlkPSJidG4tc3RvcCIgY2xhc3M9Im1yNSI+QWJvcnQgcmVzdG9yZTwvYnV0dG9uPjwvZGl2Picsc3R5bGU6eyIgIjpmdW5jdGlvbih4KXtyZXR1cm4ic3RyZWFtaW5nIj09dGhpcy5kYXRhLnN0YXR1cyYmeC50cmlnZ2VyKCJsYXlvdXQiKSwiZm9udC1zaXplOjE1cHg7IGxpbmUtaGVpZ2h0OjEuNGVtOyJ9fSxQcmVwYXJlREJzOmZ1bmN0aW9uKCl7dmFyIHgsYT10aGlzLGI9YS5kYXRhLGM9KGEuVW56aXBEQm1hcCxhLlBobygiQWxsIikpLGQ9YS5QaG8oIkNvdWNoIiksZT1PYmplY3QuaXNPYmplY3QsZj1bXTtpZihiLm9wdHMuZmluZCgiY3JlYXRlIikpe3ZhciBnPWIuZGJzLnJlZHVjZShmdW5jdGlvbih4LGEpe2lmKGNbYS5uYW1lXSlyZXR1cm4geDtmLnB1c2goYS5uYW1lKTt2YXIgZz0kLmV4dGVuZCh7bmFtZTphLm5hbWUsc2VjdXJpdHk6Yi5vcHRzLmZpbmQoImFjbCIpJiZlKGEuc2VjdXJpdHkpP2Euc2VjdXJpdHk6bnVsbCxwYXJ0aXRpb25lZDplKGEucHJvcHMpJiYhIWEucHJvcHMucGFydGl0aW9uZWR9LGQudmVyPiIwMDIuIiYmZShhLmNsdXN0ZXIpP3txOithLmNsdXN0ZXIucT4wPythLmNsdXN0ZXIucTorZC5xfHwyLG46KCthLmNsdXN0ZXIubnx8MSkuY2xhbXAoMSxkLm58fDEpfTp7fSk7cmV0dXJuIHgucHVzaChnKSx4fSxbXSk7eD1nLmxlbmd0aD9hLlBobygiQ3JlYXRlREJzIikoZywhMSk6JC5EZWZlcnJlZCgpLnJlc29sdmUoW10pfWVsc2UgeD0kLkRlZmVycmVkKCkucmVzb2x2ZSgpO3JldHVybiB4LnRoZW4oZnVuY3Rpb24oKXtpZighYi5vcHRzLmZpbmQoImFjbCIpKXJldHVybiEwO3ZhciB4PWN3LmxpYi5hMm8oZiksYz1iLmRicy5yZWR1Y2UoZnVuY3Rpb24oYSxiKXtyZXR1cm4geFtiLm5hbWVdfHxudWxsPT1iLnNlY3VyaXR5P2E6KGEucHVzaCh7Y3JlYXRlOiExLG5hbWU6Yi5uYW1lLHNlY3VyaXR5OmUoYi5zZWN1cml0eSk/Yi5zZWN1cml0eTpudWxsfSksYSl9LFtdKTtyZXR1cm4hYy5sZW5ndGh8fGEuUGhvKCJDcmVhdGVEQnMiKShjLCExKX0pLmZhaWwoZnVuY3Rpb24oKXthLkFib3J0KCksYS5teS5jb21taXQoKX0pfSxTYXZlRG9jczpmdW5jdGlvbigpe3ZhciB4PXRoaXMsYT14LmRhdGEsYj17fSxjPTAsZD1hLmRvY3NUb1NhdmUsZT1hLm1heEJ1ZmZlcixmPWEubWF4V3JpdGVTdHJlYW1zLGc9YS5tYXhSZXN0YXJ0c3x8MyxoPSExLGk9ITEsaj14LlVuemlwREJtYXAsaz0xLGw9MCxtPTAsbj0wLG89NTAwLHA9MWUzL28qNSxxPU9iamVjdC5zaXplLHI9QS5kZWJvdW5jZShvKSxzPUUudGhyb3R0bGUoMjUwKSx0PSEhYS5vcHRzLmZpbmQoInhkZWwiKSx1PSEhYS5vcHRzLmZpbmQoInhyZXZzIik7ZC5mb3JFYWNoKGZ1bmN0aW9uKHgpe251bGwhPT14JiYoays9MSxjKz14LnNpemUpfSk7dmFyIHY9eC5VbnppcFN0cmVhbTtyZXR1cm4gdi5ub3RpZnkodyksdi5pc0RvbmUoKXx8di5jb250aW51ZSgpLHkoKSxyKCksRi5kZWxheSgxZTMpLHthYm9ydDpmdW5jdGlvbigpe2QuZm9yRWFjaChmdW5jdGlvbih4KXtudWxsIT14JiZ4LnJlcSYmKHgucmVxLmRhdGE9dm9pZCAwKX0pLGQubGVuZ3RoPTAsaT0hMH19O2Z1bmN0aW9uIHcoeCxhKXsiZG9jIj09eD8oays9MSwhKChjKz1hKT5lfHxkLmxlbmd0aD4xNTApfHx2LmlzUGF1c2VkKCl8fHYuaXNBbGxSZWFkKCl8fHYucGF1c2UoKSx5LmRlbGF5KDIpKToiZW5kZWQiPT14JiZ5LmRlbGF5KDUwKX1mdW5jdGlvbiB5KCl7aWYoIWkmJiFoKWZvcih2YXIgeCxhPXt9O3EoYik8ZiYmZC5sZW5ndGgmJm51bGwhPT1hOyludWxsPT0oYT1kLnNoaWZ0KCkpPzA9PXEoYik/ay09MTpkLnB1c2gobnVsbCk6IWpbYS5zcmNkYl18fHQmJi9cL19kZWxldGVkXC8vLnRlc3QoYS5uYW1lKXx8dSYmL1wvX2NvbmZsaWN0c1wvLy50ZXN0KGEubmFtZSk/KGstPTEsYy09YS5zaXplLGEucmVxLmRhdGE9dm9pZCAwLG0rPTEpOih4PXooYSkpJiYoYlthLm5hbWVdPXgpfWZ1bmN0aW9uIHooZSl7aWYoaSlyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCgpO3ZhciBmLGg9altlLnNyY2RiXSxtPWEuZGJzLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHguc3JjPT1lLnNyY2RifSk7aWYoIW0pcmV0dXJuIHkuZGVib3VuY2UoMTApKCksdm9pZCAwO3tyZXR1cm4gZS5yZXEudXJsPSIvezF9L19idWxrX2RvY3MiLmFzc2lnbihIKGgpKSxlLmVycm9ycy5sZW5ndGg/KGY9JC5EZWZlcnJlZCgpLGZ1bmN0aW9uKCl7eC5SZXEoZS5yZXEpLnRoZW4oZnVuY3Rpb24oeCl7Zi5yZXNvbHZlKHgpfSxmdW5jdGlvbih4LGEsYil7Zi5yZWplY3QoeCxhLGIpfSl9LmRlYm91bmNlKDFlMypbMSwzLDEwLDMwXVtlLmVycm9ycy5sZW5ndGguY2xhbXAoMCwzKV0pKCkpOmY9eC5SZXEoZS5yZXEpLGYudGhlbihmdW5jdGlvbih4KXt4Lmxlbmd0aCYmeFswXS5lcnJvcj9vKHhbMF0uZXJyb3IrIiAiK3hbMF0ucmVhc29uKTooay09MSxtLmRvbmVEb2NzKz0xLGMtPWUuc2l6ZSxlLnNhdmVkPSEwLGUucmVxLmRhdGE9dm9pZCAwLGwrPTEpfSkuZmFpbChmdW5jdGlvbih4LGEsYil7byh4KyI6ICIrYSsiICIrYil9KS5hbHdheXMoZnVuY3Rpb24oKXtuPTAsZGVsZXRlIGJbZS5uYW1lXSxhLmJ5dGVzKz1lLnNpemUscygpLEQoKSx5LmRlbGF5KDEpfSk7ZnVuY3Rpb24gbyhhKXtpZihlLmVycm9ycy5wdXNoKGEpLGUuZXJyb3JzLmxlbmd0aDxnKW51bGw9PT1kLmxhc3QoKT8oZC5wb3AoKSxkLnB1c2goZSksZC5wdXNoKG51bGwpKTpkLnB1c2goZSk7ZWxzZXt2YXIgYj1tLm5hbWUrIi8iK2RlY29kZVVSSUNvbXBvbmVudChlLm5hbWUuZnJvbShlLnNyY2RiLmxlbmd0aCsxKS5yZXBsYWNlKC9cLmpzb24kLywiIikpO0MoIkZhaWxlZCBzYXZpbmcgZG9jIHsxfS4gIi5hc3NpZ24oYikpLHgubXkuZmluZCgiI2J0bi1zdG9wIikudHJpZ2dlcigiY2xpY2subXkiKX19fX1mdW5jdGlvbiBBKCl7aXx8aHx8KGs+MD8oeSgpLHIoKSxkLmxlbmd0aHx8MSE9a3x8cShiKXx8RygpfHwobis9MSk+PXAmJihkLnB1c2gobnVsbCksY29uc29sZS5sb2coIlB1bXAgc3RhbGxlZCwgZW5mb3JjZSBwdW1wIGFib3J0IikpKTpCKCkpfWZ1bmN0aW9uIEIoKXtoPSEwLHMoKSx2LmlzQWxsUmVhZCgpPyQubXkucmFkaW8oImRibGlzdCIsYS5kYnMubWFwKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWV9KSk6KHguU2F2ZXIuYWJvcnQ9ZnVuY3Rpb24oKXt9LHguQWJvcnQoKSksYS5zdGF0dXM9ImRvbmUiLHgubXkuY29tbWl0KCksY29uc29sZS5sb2coIkRvbmUgcmVzdG9yZSwgezF9IGRvY3Mgc2F2ZWQuIi5hc3NpZ24obCkpfWZ1bmN0aW9uIEMoeCl7Y3cubGliLm5vdGUoInsxfVJlc3RvcmUgYWJvcnRlZCwgezJ9IG9mIHszfSBkb2NzIHNhdmVkLiIuYXNzaWduKHh8fCIiLGEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC5kb25lRG9jc30pLnN1bSgpLGEuZGJzLm1hcChmdW5jdGlvbih4KXtyZXR1cm4geC50b3RhbERvY3N9KS5zdW0oKSksImVycm9yIiw4ZTMpfWZ1bmN0aW9uIEQoKXshdi5pc0RvbmUoKSYmdi5pc1BhdXNlZCgpJiZjPGUvMiYmZC5sZW5ndGg8NTEyJiZ2LmNvbnRpbnVlKCkscigpfWZ1bmN0aW9uIEUoKXt4Lm15LmNoZWNrKCIjYnl0ZXMiKSwkLm15LnJhZGlvKCJ1bmR1bXBXcml0ZVVwZGF0ZSIse30pfWZ1bmN0aW9uIEYoKXtpfHxofHwoJC5teS5yYWRpbygiZGJsaXN0IixPYmplY3QudmFsdWVzKGopKSxGLmRlbGF5KDVlMykpfWZ1bmN0aW9uIEcoKXt2YXIgeD12LmdldFN0YXRzKCksYT14LmlzWmlwUmVhZCxiPXguZmlsZXM7eC5kcm9wO3JldHVybiFhfHxiPmwrbX1mdW5jdGlvbiBIKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9fSxEQlJvdzp7aWQ6ImN3LlBob3Rvbi5VbmR1bXAuREJSb3ciLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLmRhdGE7eC5odG1sKGEuSFRNTCl9LGRhdGE6e25hbWU6IiIsdGFyZ2V0OiIiLHRvdGFsU2l6ZTowLHRvdGFsRG9jczowLGRvbmVEb2NzOjB9LHVpOnsiI251bS10b3RhbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj1PYmplY3QuaXNBcnJheSh4LmZpbHRlcik/eC5maWx0ZXIubGVuZ3RoOngudG90YWxEb2NzO3JldHVybiBiP01hdGguZmxvb3IoeC5kb25lRG9jcy9iKjEwMCkuY2xhbXAoMCwxMDApKyIlIjoiIn0sbGlzdGVuOnt1bmR1bXBXcml0ZVVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSlyZXR1cm4gbnVsbH19fSwiI251bS1iZyI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPU9iamVjdC5pc0FycmF5KHguZmlsdGVyKT94LmZpbHRlci5sZW5ndGg6eC50b3RhbERvY3M7Yz9iLmNzcyh7aGVpZ2h0Oih4LmRvbmVEb2NzL2MqMi41KS5jbGFtcCgwLDIuNSkrImVtIn0pOmIuY3NzKHtoZWlnaHQ6IjBweCJ9KX0sbGlzdGVuOnt1bmR1bXBXcml0ZVVwZGF0ZTpmdW5jdGlvbih4LGEpe2lmKE9iamVjdC5pc09iamVjdChhKSlyZXR1cm4gbnVsbH19fSwiI2RiLW5hbWUiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHgubmFtZS50cnVuY2F0ZSg0MCwibWlkZGxlIiwiLi4uIikuZXNjYXBlSFRNTCgpfX0sIiNkYi10b3RhbHMiOntiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGI9T2JqZWN0LmlzQXJyYXkoeC5maWx0ZXIpP3guZmlsdGVyOltdLGM9Yi5sZW5ndGg/Yi5sZW5ndGg6eC50b3RhbERvY3M7cmV0dXJuIGIubGVuZ3RoPyJ7MX0gZG9jezJ9Ii5hc3NpZ24oYi5sZW5ndGgsYi5sZW5ndGg+MT8icyI6IiIpOiJ7MX0gZG9jezJ9LCB7M30gcmF3Ii5hc3NpZ24oYyxjPjE/InMiOiIiLHgudG90YWxTaXplLmJ5dGVzKDIpLnJlcGxhY2UoL0IkLywiYiIpKX19fSxIVE1MOic8ZGl2IGNsYXNzPSJkYi1pbmZvIGRpYiB2YXQiPjxkaXYgaWQ9ImRiLW5hbWUiIGNsYXNzPSJ3MTAwcCBmczEyMCBmdzQwMCBudyBvaCBlbGwiPjwvZGl2PjxkaXYgaWQ9ImRiLXRvdGFscyIgY2xhc3M9IncxMDBwIGZzOTAgbzgwIG53IG9oIGVsbCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibnVtLWNvbnQgZGliIHZhdCI+PGRpdiBpZD0ibnVtLWJnIiBjbGFzcz0idzEwMHAiPjwvZGl2PjxkaXYgaWQ9Im51bS10b3RhbCIgY2xhc3M9IncxMDBwIHRhYyBmczExMCBmdzMwMCBvNzAgbGgyMDAgcHQxIj48L2Rpdj48L2Rpdj4nLHN0eWxlOnsiIC5udW0tY29udCI6eyIiOiJ3aWR0aDozZW07IGhlaWdodDoyLjVlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyLXJhZGl1czogMnB4OyBvdmVyZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNmMmY1Zjg7IiwiICNudW0tYmciOiJwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjA7IGxlZnQ6IDA7IGJhY2tncm91bmQtY29sb3I6IzkzZWVkZTsgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7In0sIiAuZGItaW5mbyI6eyIiOiJ3aWR0aDogY2FsYygxMDAlIC0gM2VtKTsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZy1sZWZ0OiByaWdodGVtOyJ9fX19LHN0YW1wOjE2NTAwNTg3MzQ4OTAscGFyYW1zOntzdHJpY3Q6ITB9fSwiY3cuU3lzLkpTT04iOntpZDoiY3cuU3lzLkpTT04iLGJ1aWxkOjQwLFZlcnNpb246IjIuOSIsZGF0YTp7ZG9jOnt9LG1heERlcHRoOjE1MCxsYWJlbFdpZHRoOjEzMCx0cmVlOnt9LGNtZDoiIix0aXRsZToiVW50aXRsZWQgSlNPTiIscmF3OiIiLHZpZXdzdGF0ZTp7fSxzZWFyY2g6IiIsZm91bmQ6e319LFJUOmZ1bmN0aW9uKHgpe3JldHVybiB4P3RoaXNbeF06dGhpc30sTVJvb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5teS5yb290KCl9LHBhcmFtczp7cmVzdHlsZToxMDAsZGVsYXk6MCxzdHJpY3Q6ITB9LExpYjp7cmVsaXN0OmZ1bmN0aW9uKHgsYSl7YS5MaXN0PWEuTWFrZUxpc3QoYS5kYXRhKSx4LmZpbmQoIj4uaXZhbHVlPi5pbGlzdCIpLnRyaWdnZXIoInJlY2FsYyIpLHguZmluZCgiPi5pbmF2Pi5pZGVzYyIpLnRyaWdnZXIoImNoZWNrIil9LGtpY2s6ZnVuY3Rpb24oeCxhKXtmb3IodmFyIGIgaW4geClkZWxldGUgeFtiXTtPYmplY3QubWVyZ2UoeCxhKSxPYmplY3QuaXNBcnJheSh4KSYmKHgubGVuZ3RoPWEubGVuZ3RoKX0sa2V5QmluZDpmdW5jdGlvbih4LGEsYil7dmFyIGMsZD10aGlzLmxhYmVsV2lkdGgvM3wwO3JldHVybiA0Jnguc3RhdGUmJnRoaXMuUlQoIlNlYXJjaFJlIik/Yz14LmtleS5yZXBsYWNlKHRoaXMuUlQoIlNlYXJjaFJlIiksIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJqdmFsLWZvdW5kLWtleSI+JykucmVwbGFjZSgi77+wIiwiPC9zcGFuPiIpOih4LmtleS5sZW5ndGg+ZCYmYi5hdHRyKCJ0aXRsZSIseC5rZXkuZXNjYXBlSFRNTCgpKSxjPS9eKHxccyspJC8udGVzdCh4LmtleSk/JyInK3gua2V5LmVzY2FwZUhUTUwoKSsnIic6eC5rZXkudHJ1bmNhdGUoZCwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCkpLGN9LGNvbW1vbkluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YTt4LmFkZENsYXNzKCJlZC1ub2RlLSIrYS5QYXRoU2lnKGIucGF0aCxiLmtleSkpLHguaHRtbChhLkhUTUwpfX0sTWVtU3RhdGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcy5kYXRhO2Eudmlld3N0YXRlfHwoYS52aWV3c3RhdGU9e30pO3ZhciBiPXRoaXMuUGF0aFNpZyh4LnBhdGgseC5rZXkpO2Eudmlld3N0YXRlW2JdIT14LnN0YXRlJiYoYS52aWV3c3RhdGVbYl09eC5zdGF0ZSxhLl9pZCYmdGhpcy5NZW1TdGF0ZVNhdmUoKSl9LE1lbVN0YXRlU2F2ZTpmdW5jdGlvbigpe3ZhciB4PXRoaXMuZGF0YTtpZih4Ll9pZCYmT2JqZWN0LnNpemUoeC52aWV3c3RhdGUpKXt2YXIgYT1PYmplY3Qua2V5cyh4LnZpZXdzdGF0ZSkucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIDI9PXgudmlld3N0YXRlW2JdJiZhLnB1c2goYiksYX0sW10pO3RoaXMuTHMoInZpZXdzdGF0ZS4iK2N3LmxpYi5zZGJtKCh4LmRibmFtZXx8IiIpKyIvIit4Ll9pZCkse3N0YW1wOkRhdGUubm93KCksc3RhdGU6YX0pfX0sTWVtU3RhdGVSZXN0b3JlOmZ1bmN0aW9uKCl7dmFyIHg9dGhpcy5kYXRhO2lmKHguX2lkKXt2YXIgYT10aGlzLkxzKCJ2aWV3c3RhdGUuIitjdy5saWIuc2RibSgoeC5kYm5hbWV8fCIiKSsiLyIreC5faWQpKTtpZighT2JqZWN0LmlzT2JqZWN0KGEpKXJldHVybjt4LnZpZXdzdGF0ZT1hLnN0YXRlLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2FdPTIseH0se30pfX0sUGF0aFNpZzpmdW5jdGlvbih4LGEpe3JldHVybiBjdy5saWIuc2RibShbeCxhXS5jb21wYWN0KCkuZmxhdCgpLmpvaW4oIuKdgCIpKX0sUmVqb2luOmZ1bmN0aW9uKHgsYSl7Zm9yKHZhciBiLGM9dGhpcy5JbmRleCxkPTA7ZDxhLmxlbmd0aDtkKyspYj1hW2RdLC9eKG9ifGFyKS8udGVzdChiLnR5cGUpfHwoeC52YWx1ZVtiLmtleV09Yi52YWx1ZSksYy5kaXJ0eT0hMH0sTm9kZVVwZGF0ZWQ6ZnVuY3Rpb24oeCxhLGIpe30sRWRpdG9ySW52b2tlZDpmdW5jdGlvbih4LGEpe30sSGVscDpmdW5jdGlvbih4KXtyZXR1cm57dGlwOiIiLHVybDoiIn19LFNlYXJjaFJlOiExLGluaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9YS5kYXRhLGQ9KERhdGUubm93KCksT2JqZWN0LmtleXMoYikubWFwKGZ1bmN0aW9uKHgpe3JldHVybi9eXCRbYS16XS8udGVzdCh4KT94LmZyb20oMSk6IiJ9KS5jb21wYWN0KCEwKSksZT1PYmplY3QuaXNBcnJheSxmPU9iamVjdC5pc09iamVjdDtiLkxzPWIuTHMoIiIpLE9iamVjdC5pc0Z1bmN0aW9uKGIuRGIpJiYoYi5EYj1iLkRiKHgpKSx4Lmh0bWwoYi5IVE1MLk1haW4pLGIuTWVtU3RhdGVTYXZlPWIuTWVtU3RhdGVTYXZlLmRlYm91bmNlKDcwMCk7dmFyIGc9IlJUIFJvb3QgSW5saW5lQ00gTWFrZUxpc3QgTm9kZVVwZGF0ZWQgSGVscCBQYXRoU2lnIi5zcGxpdCgiICIpO2lmKGQuZm9yRWFjaChmdW5jdGlvbih4KXt2YXIgYT1iWyIkIit4XTthLmxhYmVsV2lkdGg9Yy5sYWJlbFdpZHRoLGcuZm9yRWFjaChmdW5jdGlvbih4KXthW3hdPWJbeF19KSwibXVsdGkiPT14P2EuSFRNTD1iLkhUTUwuSXRlbUNvbXBsZXg6KGEuSFRNTHx8KGEuSFRNTD1iLkhUTUwuSXRlbVNpbXBsZSksYS5pbml0fHwoYS5pbml0PWIuTGliLmNvbW1vbkluaXQpLGEudWlbIi5pa2V5Il0uYmluZHx8KGEudWlbIi5pa2V5Il0uYmluZD1iLkxpYi5rZXlCaW5kKSksYS5wYXJhbXN8fChhLnBhcmFtcz17fSksYS5wYXJhbXMuc3RyaWN0PSEwfSksJC5leHRlbmQoYi5Eb2Mse3N0YXRlOjIsbGV2ZWw6MCxwYXRoOltdLHR5cGU6Im9iamVjdCIsa2V5OiJSb290Iix2YWx1ZTphLmRhdGEuZG9jfSksYy5faWQ9Yy5faWR8fGMuZG9jLl9pZHx8IiIsbnVsbD09PWMuZG9jLl9yZXYmJmRlbGV0ZSBjLmRvYy5fcmV2LFsiYWRkIiwidGFrZW91dCJdLmZvckVhY2goZnVuY3Rpb24oYSl7eC5vbigiY2xpY2subXkiLCIuYnRuLSIrYSxiLkV2ZW50W2FdLmZpbGwodm9pZCAwLHZvaWQgMCxiLGIuTVJvb3QoKSkpfSkseC5vbigiY2xpY2subXkiLCIuaWRlc2MiLGZ1bmN0aW9uKHgpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGE9JCh0aGlzKS5teSgpLnJvb3QsYj1hLm15KCJkYXRhIikubWFuaWZlc3Q7cmV0dXJuL15cJChtdWx0aXxmaWxlcykvLnRlc3QoYnx8IiRtdWx0aSIpJiZhLmZpbmQoIj4uaWFjdD4uYnRuLWpzb24iKS50cmlnZ2VyKCJjbGljayIpLCExfSkseC5vbigiY2xpY2subXkiLCIuaWtleSIsZnVuY3Rpb24oeCl7dmFyIGE9JCh4LmN1cnJlbnRUYXJnZXQpLGI9YS5teSgpLnJvb3QsYz1hLm15KCkuZGF0YTtlKGMudmFsdWUpfHxmKGMudmFsdWUpPzE2JmMuc3RhdGUmJmIudHJpZ2dlcigiZWRpdG9yY2FuY2VsLm15Iik6Yi50cmlnZ2VyKCJlZGl0b3JjYW5jZWwubXkiKX0pLHgub24oImNsaWNrLm15IiwiI2RvYz4uaWFjdD4uYnRuLWRlbCIsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKSx4LnRyaWdnZXIoImNhbmNlbCIpfSksYi5vbkluaXQubGVuZ3RoJiZ4LnRoZW4oZnVuY3Rpb24oKXtiLm9uSW5pdC5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjKXRyeXtjLmNhbGwoYix4LGEpfWNhdGNoKHgpe319KX0pLGIuTWVtU3RhdGVSZXN0b3JlJiZiLk1lbVN0YXRlUmVzdG9yZSgpLCJjcmVhdGUiIT1jLmNtZCYmYi5kYiYmYi5hcHAmJmIuYXBwLmxvY2FsKXJldHVybiBjdy5saWIuc2Nyb2xsWSYmY3cubGliLnNjcm9sbFkoeCksYi5kYi5nZXQoYy5kb2MuX2lkLHthdHRhY2htZW50czohMCxyZXZzX2luZm86ITAsY29uZmxpY3RzOiEwfSkudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZChjLmRvYyxPYmplY3Quc2VsZWN0KHgsWyJfYXR0YWNobWVudHMiXSkpLHguX2NvbmZsaWN0cyYmeC5fY29uZmxpY3RzLmxlbmd0aCYmKGMuZG9jLl9jb25mbGljdHM9eC5fY29uZmxpY3RzLnNsaWNlKDApKSxjLmRvYy5fcmV2c19pbmZvPXguX3JldnNfaW5mby5maWx0ZXIoZnVuY3Rpb24oeCl7cmV0dXJuIm1pc3NpbmciIT14LnN0YXR1c30pfSl9LG9uSW5pdDpbXSxkaWU6ZnVuY3Rpb24oKXt2YXIgeCxhPXRoaXMuQmxvYnM7Zm9yKHggaW4gYSlVUkwucmV2b2tlT2JqZWN0VVJMKGFbeF0pfSxCbG9iczp7fSxEb2M6e30sSW5kZXg6e2RpcnR5OiEwLGlkeDpbXX0sdWk6eyIjYnRuLXNhdmUiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzO251bGwhPWEmJmMuZGIuc2F2ZSh4LmRvYykudGhlbihmdW5jdGlvbihhKXt2YXIgZD17ZG9jOmF9O2MuTGliLmtpY2soeC5kb2MsYSk7dmFyIGU9Yy5Mcygidmlld3N0YXRlLiIrYS5faWQpO2UmJihlLnN0YW1wPmQuc3RhbXB8fCFPYmplY3Quc2l6ZSh4LnZpZXdzdGF0ZSkpJiYoeC52aWV3c3RhdGU9ZS5zdGF0ZSkseC5faWQ9YS5faWR8fCIiLGEuX3JldiYmKHguX3Jldj1hLl9yZXYpLCQuZXh0ZW5kKGMuRG9jLHtzdGF0ZToyLGxldmVsOjAscGF0aDpbXSx0eXBlOiJvYmplY3QiLGtleToiUm9vdCIsdmFsdWU6eC5kb2N9KSxiLm15KCJmaW5kIiwiI2RvYyAuaWtleXRyZWU6ZXEoMCkiKS50cmlnZ2VyKCJjbGljayIpfSxmdW5jdGlvbih4LGEpe2N3LmxpYi5ub3RlKCJTYXZlIGZhaWxlZCwgc2VlIGNvbnNvbGUiLCJlcnJvciIpLGNvbnNvbGUubG9nKGEseCl9KX19LCIjZG9jdGl0bGUiOntiaW5kOmZ1bmN0aW9uKHgpe3JldHVybiB4Ll9pZD14LmRvYy5faWR8fHguX2lkLHguX3Jldj14LmRvYy5fcmV2LHgudGl0bGU9KHguZG9jLl9kYnx8KHRoaXMuZGJ8fHtuYW1lOiJOb0RCIn0pLm5hbWUpKyLigIkv4oCJIisoeC5kb2MuX2lkfHwiIikseC50aXRsZX0sd2F0Y2g6WyIjZG9jIl0sZGVsYXk6MzB9LCIjanNvbi1zZWFyY2giOntkZWxheToyMDAsYmluZDpmdW5jdGlvbih4LGEpe2lmKG51bGw9PWEpcmV0dXJuIHguc2VhcmNoO3ZhciBiPXRoaXMsYz14LnNlYXJjaDtyZXR1cm4geC5zZWFyY2g9YS5sZW5ndGg8Mz8iIjphLHguc2VhcmNoPyhiLlNlYXJjaFJlPW5ldyBSZWdFeHAoIigiK1JlZ0V4cC5lc2NhcGUoYS5jb21wYWN0KCkpKyIpIiwiaSIpLGIuU2VhcmNoKCksYi5teS50cmlnZ2VyKCIjZG9jIC5pa2V5OmVxKDApIiwiY2xpY2subXkiKSxhKTooYi5TZWFyY2hSZT0hMSx4LmZvdW5kPXt9LGMmJmIubXkudHJpZ2dlcigiI2RvYyAuaWtleTplcSgwKSIsImNsaWNrLm15IiksYSl9LGNzczp7Im15LXNlYXJjaCI6L14uezMsfSQvfSxldmVudHM6ImlucHV0Lm15IGNoZWNrLm15In0sIiNkb2MiOntkZWxheToyMCxiaW5kOiJ0aGlzLkRvYyIsY2hlY2s6ITF9fSxqMmg6ZnVuY3Rpb24oeCxhLGIsYyxkKXt2YXIgZT1ifHxbXSxmPWN3LmxpYi5hMm8oZSksZz0hIWQsaD1bXTtyZXR1cm4gbChqKHgsYSwwKSksaDtmdW5jdGlvbiBpKHgsYSxiKXt2YXIgZCxmLGgsaSxrPXtrZXk6bnVsbCx2YWw6bnVsbCxlbXB0eTohMSxzaXplOjIsbGVmdDoieyIscmlnaHQ6In0iLHRyaW06MCx0eXBlOiJvYmplY3QiLHJvd3M6W119LGw9MCxtPXt9LG49T2JqZWN0LmtleXMoeCk7aWYoIW4ubGVuZ3RoKXJldHVybiBrLmVtcHR5PSEwLGsuc2l6ZT0yLGsudmFsPSIiLGs7aWYoYj49Y3x8bi5sZW5ndGg+NTApcmV0dXJuIGsudHJpbT1uLmxlbmd0aCxrLnNpemU9MixrO3ZhciBvPSgxLjUqYS9uLmxlbmd0aHwwKS5jbGFtcCgxMCwuOSphfDApLHA9MDttPXt9O2ZvcihkPTA7ZDxlLmxlbmd0aCYmbDxhLW8vMztkKyspbnVsbCE9eFtoPWVbZF1dJiYobVtoXT0hMCxpPWgudHJ1bmNhdGUoKG8vKGc/MToyKSkuY2xhbXAoMTIsMTAwKSwicmlnaHQiLCLigKYiKSwhL1xzLy50ZXN0KGkpJiZpfHwoaT0nIicraSsnIicpLChmPWooeFtoXSxvLGIrMSkpLmtleT1pLGwrPWkubGVuZ3RoKyhnPzA6Zi5zaXplKSxwKz0xLGsucm93cy5wdXNoKGYpKTtmb3IoZD0wO2Q8bi5sZW5ndGgmJmw8YS1vLzM7ZCsrKW1baD1uW2RdXXx8KGk9aC50cnVuY2F0ZSgoby8oZz8xOjIpKS5jbGFtcCgxMiwxMDApLCJyaWdodCIsIuKApiIpLCEvXHMvLnRlc3QoaSkmJml8fChpPSciJytpKyciJyksKGY9aih4W2hdLG8sYisxKSkua2V5PWksbCs9aS5sZW5ndGgrKGc/MDpmLnNpemUpLHArPTEsay5yb3dzLnB1c2goZikpO3JldHVybiBrLnRyaW09bi5sZW5ndGgtcCxrLnNpemU9bCxrfWZ1bmN0aW9uIGooeCxhLGIpe3ZhciBkLGUsZj17a2V5Om51bGwsdmFsOm51bGwsZW1wdHk6ITEsc2l6ZTowLGxlZnQ6IiIscmlnaHQ6IiIsdHJpbTowLHR5cGU6IiIscm93czpbXX0sZz0wLGg9MCxrPTAsbD10eXBlb2YgeDtpZihudWxsPT09eHx8Im9iamVjdCIhPWwpcmV0dXJuInVuZGVmaW5lZCI9PWw/KGYudHlwZT0idW5kZWZpbmVkIixlPXgrIiIpOiJzdHJpbmciIT1sPyhmLnR5cGU9Im51bWJlciIhPWw/InNpbXBsZSI6bCxlPXgrIiIpOihmLnR5cGU9InN0cmluZyIsKGg9eC5sZW5ndGgpPD1hLTE/ZT14OihlPXguc3Vic3RyKDAsYSksZi50cmltPWgtYSksZS5sZW5ndGgmJiItIiE9ZVswXSYmIS9ccy8udGVzdChlKXx8KGYubGVmdD1mLnJpZ2h0PSciJyxnKz0yKSksZys9ZS5sZW5ndGgsZi5zaXplPWcsZi5lbXB0eT0hZS5sZW5ndGgsZi52YWw9ZSxmO2lmKCFPYmplY3QuaXNBcnJheSh4KSlyZXR1cm4gaSh4LGEsYik7aWYoZi50eXBlPSJhcnJheSIsZi5sZWZ0PSJbIixmLnJpZ2h0PSJdIixnKz0yLHgubGVuZ3RoKWlmKGI8YyYmeC5sZW5ndGg8NTAmJmEveC5sZW5ndGg+NSl7az0oMS41KmEveC5sZW5ndGh8MCkuY2xhbXAoMTAsLjkqYXwwKSxoPTA7dmFyIG09MDtmb3IoZD0wO2Q8eC5sZW5ndGgmJmg8YS1rLzM7ZCsrKWcrPShlPWooeFtkXSxrLGIrMSkpLnNpemUsaCs9ZS5zaXplLG0rPTEsZi5yb3dzLnB1c2goZSk7Zi50cmltPXgubGVuZ3RoLW19ZWxzZSBmLnRyaW09eC5sZW5ndGg7ZWxzZSBmLmVtcHR5PSEwLGc9MixmLnZhbD0iIjtyZXR1cm4gZi5zaXplPWcsZn1mdW5jdGlvbiBrKHgsYSl7aC5wdXNoKFt4LGFdKX1mdW5jdGlvbiBsKHgpe2lmKG51bGwhPXgua2V5JiYoaygia2V5Iix4LmtleSksZ3x8aygiIiwiOiAiKSkseC5lbXB0eSlyZXR1cm4gaygiZW1wdHkiLHgubGVmdCsoeC52YWx8fCIiKSt4LnJpZ2h0KSx2b2lkIDA7dmFyIGI9eC50eXBlLGM9ITE7aWYobnVsbCE9eC52YWwpe2lmKHgubGVmdCYmaygiYnJhY2tldCIseC5sZWZ0KSx4LnZhbC5sZW5ndGg8YS81JiZmW3gua2V5XSYmKGM9ITApLCghZ3x8YykmJihnJiZjJiZrKCIiLCI6ICIpLGsoYix4LnZhbC5lc2NhcGVIVE1MKCkpLHgudHJpbSkpe3ZhciBkPSIrIjtrKCJ0cmltIiwib2JqZWN0Ij09Ynx8ImFycmF5Ij09Yj9kK3gudHJpbToi4oCmIil9eC5yaWdodCYmaygiYnJhY2tldCIseC5yaWdodCksY3x8IWd8fHgucmlnaHR8fCJzaW1wbGUiPT1ifHwibnVtYmVyIj09Ynx8aygiYnJhY2tldCIsInN0cmluZyI9PWI/JyIiJzoib2JqZWN0Ij09Yj8ie30iOiJbXSIpfWVsc2UgaWYoeC5yb3dzLmxlbmd0aCl7eC5sZWZ0JiZrKCJicmFja2V0Iix4LmxlZnQpO3ZhciBlLGg9eC5yb3dzLmxlbmd0aDtmb3IoZT0wO2U8aDtlKyspbCh4LnJvd3NbZV0pLChlIT1oLTF8fHgudHJpbSkmJmsoIiIsIiwgIik7aWYoeC50cmltKXtkPSIrIjtrKCJ0cmltIiwib2JqZWN0Ij09Ynx8ImFycmF5Ij09Yj9kK3gudHJpbToi4oCmIil9eC5yaWdodCYmaygiYnJhY2tldCIseC5yaWdodCl9ZWxzZSB4LnRyaW0mJigib2JqZWN0Ij09Yj9rKCJzaG9ydCIsInsiK3gudHJpbSsifSIpOiJhcnJheSI9PWImJmsoInNob3J0IiwiWyIreC50cmltKyJdIikpfX0sSW5saW5lQ006ZnVuY3Rpb24oeCxhLGIpe3ZhciBjPWEuZGF0YSxkPSQudHlwZShjLnZhbHVlKSxlPS9eKG9ifGFyKS8udGVzdChkKSxmPWEuUlQoIk1FZGl0IikucGFyc2VTdHJpbmcsZz1hLlJUKCJMaWIiKS5raWNrLGg9YS5SVCgiJG51bWJlciIpLkYuQ2FsYztmdW5jdGlvbiBpKHgpe3JldHVybiBhLm15LnJvb3QoKS5maW5kKHgpfWZ1bmN0aW9uIGooeCxiKXtpZihjLmhhc2g9Y3cubGliLnNkYm0oW2MuaWQsYy52YWx1ZV0pLGkoIj4uaW5hdj4uaWVkaXRvciIpLm15KCJyZW1vdmUiKSxpKCI+LmluYXYiKS5yZW1vdmVDbGFzcygiaXNlZGl0b3IiKSxlKXtjLnN0YXRlPXg/MjM5JmMuc3RhdGU6MjM3JmMuc3RhdGV8MSwxJmMuc3RhdGU/YS5MaXN0PVtdOmEuTGlzdD1hLk1ha2VMaXN0KGMpO3ZhciBkPWkoIj4uaW5hdj4uaWRlc2MiKSxmPWkoIj4uaXZhbHVlPi5pbGlzdCIpLGc9aSgiPi5pbmF2Pi5pa2V5Iik7ZC5yZW1vdmVDbGFzcygiaGlkZSIpLGJ8fChmLnRyaWdnZXIoInJlY2FsYyIpLGYudHJpZ2dlcigiY2hlY2siKSksZC50cmlnZ2VyKCJjaGVjayIpLGcudHJpZ2dlcigiY2hlY2siKX1lbHNlIGMuc3RhdGU9MSxpKCI+LmluYXY+Lml2YWx1ZSIpLnJlbW92ZUNsYXNzKCJoaWRlIil9eC5vbigiY2xpY2subXkiLGZ1bmN0aW9uKGIpe3ZhciBkPSQoYi50YXJnZXQpO2lmKCFkLmlzKCJhIikmJiFkLmlzKCJpbWciKSYmKCFlfHwxNiZjLnN0YXRlKSl7dmFyIGY9aSgiPi5pbmF2Iik7aWYoIWYuaGFzQ2xhc3MoImlzZWRpdG9yIikpe3ZhciBnPWEuUlQoIkxpYiIpLmlzU3lzdGVtLmNhbGwoYSxjKTtnJiZjdy5saWIubm90ZShPYmplY3QuaXNTdHJpbmcoZyk/ZzoiVGhpcyBwcm9wIGlzIHJlYWQtb25seS4iLCJ3YXJuaW5nIiksYy5zdGF0ZT1lPzE2fGMuc3RhdGU6MixmLmFkZENsYXNzKCJpc2VkaXRvciIpLGkoZT8iPi5pbmF2Pi5pZGVzYyI6Ij4uaW5hdj4uaXZhbHVlIikuYWRkQ2xhc3MoImhpZGUiKSxpKCI+LmluYXY+LmllZGl0b3IiKS5teShhLlJUKCJNRWRpdCIpLHt0ZXh0OmU/IigiK0pTT04uc3RyaW5naWZ5KGMudmFsdWUsbnVsbCwiICAiKSsiKSI6Yy52YWx1ZSsiIixtb2RlOmEuQ018fCJhdXRvIixyZWFkb25seTpnLGV4cGVjdDokLnR5cGUoYy52YWx1ZSl9KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGI9YS5SVCgiRWRpdG9ySW52b2tlZCIpOyJmdW5jdGlvbiI9PXR5cGVvZiBiJiZiKHgsYSl9KX19fS5kZWJvdW5jZSgxNSkpLGEubXkucm9vdCgpLm9uKCJlZGl0b3Jjb21taXQubXkiLGZ1bmN0aW9uKHgpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGM9aSgiPi5pbmF2Iiksaz1hLmRhdGEsbD0iIjtpZihjLmhhc0NsYXNzKCJpc2VkaXRvciIpKXt2YXIgbSxuLG89ay52YWx1ZSxwPU9iamVjdC5jbG9uZShvLCEwKSxxPWkoIj4uaW5hdj4uaWVkaXRvciIpLm15KCJkYXRhIikudGV4dDtlPyhtPWYocSksJC50eXBlKG8pPT0kLnR5cGUobSk/KGcoay52YWx1ZSxtKSxhLm15LnJlZHJhdygpKTooKG49YS5teS5wYXJlbnQoKSkuZGF0YS52YWx1ZVtrLmtleV09bSxrLnZhbHVlPW4uZGF0YS52YWx1ZVtrLmtleV0sYS5SVCgiTGliIikucmVsaXN0KG4ubXkucm9vdCgpLG4pKSk6Im51bWJlciI9PWQ/bnVsbCE9aChxLG51bGwpP2sudmFsdWU9aChxLG51bGwpOmw9IkV4cHJlc3Npb24gbXVzdCByZXR1cm4gYSBudW1iZXIiOmsudmFsdWU9cSxsP2N3LmxpYi5ub3RlKGwsImVycm9yIiwzZTMpOihhLk5vZGVVcGRhdGVkKFtrLnBhdGgsay5rZXldLHAsay52YWx1ZSksZnVuY3Rpb24oKXtqKCEwKSwiZnVuY3Rpb24iPT10eXBlb2YgYj9iKGsudmFsdWUsbyk6ZXx8aSgiPi5pbmF2Pi5pdmFsdWUiKS50cmlnZ2VyKCJjaGVjayIpfS5kZWxheSgxMCkpfX0pLm9uKCJlZGl0b3JjYW5jZWwubXkiLGZ1bmN0aW9uKHgpe3guc3RvcFByb3BhZ2F0aW9uKCksaihlLCEwKX0pfSxNdXRhdGU6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPWEuZGF0YSxjPWIuZG9jLGQ9Yi52aWV3c3RhdGUsZT1PYmplY3QuaXNPYmplY3QsZj1PYmplY3QuaXNBcnJheSxnPWEuUGF0aFNpZztKU09OLnN0cmluZ2lmeTtpZighZSh4KSlyZXR1cm57ZXJyb3I6IkludmFsaWQgcGFyYW1zIn07dmFyIGg9JC5leHRlbmQoe3BhdGg6bnVsbCxjdHg6bnVsbCxvcDoidXBkIix2YWw6dm9pZCAwLGV4cGFuZDohMSxibGluazohMSxlZGl0OiExfSx4KTtpZighZihoLnBhdGgpKXJldHVybntlcnJvcjoiSW52YWxpZCBwYXRoIn07dmFyIGk9WyJSb290Il0uY29uY2F0KGgucGF0aC5mbGF0KCkpLGo9aS5wb3AoKSxrPWkuc2xpY2UoMSksbD0vXihub3B8aW5zfGRlbHx1cGQpJC8udGVzdChoLm9wKT9oLm9wOm51bGw7aWYobnVsbD09bClyZXR1cm57ZXJyb3I6IkludmFsaWQgb3AifTtpZigvXihpbnN8dXBkKSQvLnRlc3QobCkmJnZvaWQgMD09PWgudmFsKXJldHVybntlcnJvcjoiTm8gdmFsdWUifTt2YXIgbSxuLG8scCxxPXt9LHI9MDtpZigibm9wIiE9PWwpe2lmKG51bGw9PShtPXooYyxrKSkpcmV0dXJue2Vycm9yOiJOb2RlIGlzIHVucmVhY2hlYWJsZSJ9O2lmKGYobSkpe2lmKGo9K2osaXNOYU4oail8fGo8MHx8aiE9KDB8aikpcmV0dXJue2Vycm9yOiJJbnZhbGlkIG5vZGUgaW5kZXgifTtpZigiaW5zIj09bCYmaj5tLmxlbmd0aCYmKGo9bS5sZW5ndGgpLC9eKGRlbHx1cGQpJC8udGVzdChsKSYmaj5tLmxlbmd0aC0xKXJldHVybntlcnJvcjoiTm9kZSBpbmRleCBpcyBvdXQgb2YgYXJyYXkifX19ZShtKSYmIW0uaGFzT3duUHJvcGVydHkoaikmJmguY3R4JiYobD0iaW5zIiksInVwZCI9PWw/bVtqXT1oLnZhbDoiZGVsIj09bD9mKG0pP20ucmVtb3ZlQXQoaik6ZGVsZXRlIG1bal06ImlucyI9PWwmJihmKG0pP20uaW5zZXJ0KGYoaC52YWwpP1toLnZhbF06aC52YWwsaik6IShvPWguY3R4KXx8IWYobyl8fG8ubGVuZ3RoPDI/bVtqXT1oLnZhbDooKHA9KG49T2JqZWN0LmtleXMobSkpLmluZGV4T2Yob1swXSkpPi0xP3I9cCsxOihwPW4uaW5kZXhPZihvWzFdKSk+LTEmJihyPXAuY2xhbXAoMCwxZTYpKSxuLnNsaWNlKHIpLmZvckVhY2goZnVuY3Rpb24oeCl7cVt4XT1tW3hdLGRlbGV0ZSBtW3hdfSksbVtqXT1oLnZhbCxuLnNsaWNlKHIpLmZvckVhY2goZnVuY3Rpb24oeCl7bVt4XT1xW3hdLGRlbGV0ZSBxW3hdfSkpKTt2YXIgcyx0LHU9ZyhpLGopLHY9W10sdz0iIjtpZigodj1pLm1hcChmdW5jdGlvbih4LGEpe3JldHVybiBnKGkudG8oYSsxKSl9KS5zbGljZSgxKSkuZm9yRWFjaChmdW5jdGlvbih4KXt3PXd8fDI9PWRbeF0/dzp4fSksd3x8KHc9di5sYXN0KCl8fGN3LmxpYi5zZGJtKCJSb290IikpLHM9YS5teS5maW5kKCIuZWQtbm9kZS0iK3cpLm15KCJtYW5pZmVzdCIpLGguZXhwYW5kJiYodi5mb3JFYWNoKGZ1bmN0aW9uKHgpe2RbeF09Mn0pLGRbdV09ZihoLnZhbCl8fGUoaC52YWwpPzI6MSxzLmRhdGEuc3RhdGU9MiksMj09cy5kYXRhLnN0YXRlJiYocy5MaXN0PXMuTWFrZUxpc3Qocy5kYXRhKSksdD1hLm15LmZpbmQoIi5lZC1ub2RlLSIrdSksInVwZCI9PWwmJnQubGVuZ3RoJiYkLnR5cGUodC5teSgiZGF0YSIpLnZhbHVlKT09JC50eXBlKGgudmFsKSl7dmFyIHk9dC5teSgiZGF0YSIpO3kudmFsdWU9aC52YWwsIiRtdWx0aSI9PXkubWFuaWZlc3QmJjImeS5zdGF0ZSYmKHQubXkoIm1hbmlmZXN0IikuTGlzdD10Lm15KCJtYW5pZmVzdCIpLk1ha2VMaXN0KHkpKSx0Lm15KCJyZWRyYXciKX1lbHNlIDI9PXMuZGF0YS5zdGF0ZSYmKHMuTGlzdD1zLk1ha2VMaXN0KHMuZGF0YSkpLHMubXkucmVkcmF3KCk7cmV0dXJuIGguZXhwYW5kJiZhLk1lbVN0YXRlU2F2ZSgpLGguZXhwYW5kJiZoLmJsaW5rJiZmdW5jdGlvbigpe3ZhciB4PWEubXkuZmluZCgiLmVkLW5vZGUtIisoImRlbCIhPWw/dTp2Lmxhc3QoKSkpLGI9T2JqZWN0LmlzU3RyaW5nKGguYmxpbmspP2guYmxpbms6Im9yYW5nZSI7eC5hZGRDbGFzcyhiKSxmdW5jdGlvbigpe3gucmVtb3ZlQ2xhc3MoYil9LmRlbGF5KDUwMCl9LmRlbGF5KDEwMCkse29rOiEwLGV4cGFuZGVkOnZ9O2Z1bmN0aW9uIHooeCxhKXtmb3IodmFyIGI9eCxjPWEubGVuZ3RoLGQ9MDtkPGMmJm51bGwhPWI7ZCsrKWI9YlthW2RdXSxlKGIpfHxmKGIpfHwoYj1udWxsKTtyZXR1cm4gYn19LFNlYXJjaDpmdW5jdGlvbih4KXt2YXIgYT10aGlzLGI9e30sYz1hLlNlYXJjaFJlfHx4O2lmKCFjKXJldHVybiBhLmRhdGEuZm91bmQ9e307YS5JbmRleC5kaXJ0eSYmKGEuSW5kZXguaWR4PWsoYS5Eb2MudmFsdWUpLGEuSW5kZXguZGlydHk9ITEpO2Zvcih2YXIgZCxlPWN3LmxpYi5zZGJtLGY9MCxnPWEuSW5kZXguaWR4LGg9MCxpPTA7aDxnLmxlbmd0aDtoKyspaWYoZj0wLGk9KGQ9Z1toXSkucC5sZW5ndGgsYy50ZXN0KGQuaykmJihmfD00KSxkLnYmJmMudGVzdChkLnYpJiYoZnw9OCksZilmb3IodmFyIGo9MTtqPGk7aisrKWJbZShkLnAuc2xpY2UoMCxqKS5qb2luKCLinYAiKSsi4p2AIitkLnBbal0pXT1qPT1pLTE/ZjozO3JldHVybiBhLmRhdGEuZm91bmQ9YjtmdW5jdGlvbiBrKHgpe3ZhciBhPVsiUm9vdCJdLGI9W107ZnVuY3Rpb24gYyh4KXtPYmplY3Qua2V5cyh4KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPSQudHlwZSh4W2RdKTsib2JqZWN0Ij09ZXx8ImFycmF5Ij09ZT8oYS5wdXNoKGQpLGMoeFtkXSksYi5wdXNoKHtrOmQudG9Mb3dlckNhc2UoKSxwOmEuc2xpY2UoMCksdjohMX0pLGEucG9wKCkpOiJzdHJpbmciPT1lP2IucHVzaCh7azpkLnRvTG93ZXJDYXNlKCkscDphLnNsaWNlKDApLmFkZChkKSx2OnhbZF0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXHJcblx0XHNdKy9nLCIgIil9KTpiLnB1c2goe2s6ZC50b0xvd2VyQ2FzZSgpLHA6YS5zbGljZSgwKS5hZGQoZCksdjp4W2RdKyIifSl9KX1yZXR1cm4gYyh4KSxifX0sRXZlbnQ6e2FkZDpmdW5jdGlvbih4LGEsYixjKXt4LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBkPSQodGhpcyksZT1kLnBhcmVudHMoIi5teS1mb3JtIikuZXEoMCksZj1lLmRhdGEoIm15IikuZGF0YSxnPWUuZGF0YSgibXkiKS5tYW5pZmVzdCxoPSQudHlwZShmLnZhbHVlKSxpPSJhcnJheSI9PWgsaj0oZS5teSgiZGF0YSIpLmtleSxiLkxzKCJDbGlwIil8fHt0eXBlOiIifSksaz17b2JqZWN0Ont9LGFycmF5OltdLHN0cmluZzoiIixib29sZWFuOiEwLG51bWJlcjowfTtkLnBhcmVudCgpLmFkZENsYXNzKCJob3ZlciIpLGUuYWRkQ2xhc3MoImhvdmVyIiksJCh0aGlzKS5tb2RhbCh7bWFuaWZlc3Q6Yi5NQWRkLGRhdGE6e2NtZDoicHJlcGVuZCIsdGV4dDpbIk5ldyAiLGk/Im1lbWJlciI6InByb3BlcnR5IiwnIGluJm5ic3A7PHNwYW4gY2xhc3M9ImJvbGRlciBudyI+JyxmLmtleS50cnVuY2F0ZSgyNSwibWlkZGxlIiwi4oCmIikuZXNjYXBlSFRNTCgpLGk/IjpbXSI6Ijp7fSIsIjwvc3Bhbj4iXS5qb2luKCIiKSxwcmVwZW5kOmk/Ikluc2VydCI6IlByZXBlbmQiLGFwcGVuZDppPyIiOiJBcHBlbmQiLGlzYXJyYXk6aSxrZXk6aT8iMCI6IiIsY2xpcDpqLGtleXM6aT97fTpPYmplY3Qua2V5cyhmLnZhbHVlKS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4geFthXT0hMCx4fSx7fSksZmlsZTp7fX0sd2lkdGg6MzEwLGFsaWduOiJ0b3A6MTAzJTtyaWdodDotMTE0cHg7Iixyb290OmMsYm91bmQ6MSxub3NlOiJ0b3AiLHNjcmVlbjoicmdiYSgyNTUsMjU1LDI1NSwwKSIsY2xvc2U6ITEsZXNjOiEwLGVudGVyOiEwfSkudGhlbihmdW5jdGlvbih4KXt2YXIgYSxjLGQ9eC5jbWQsaj0hMCxsPVtdLG09W107aWYoeC5jbGlwLnR5cGUmJiJjbGlwIj09eC50eXBlJiYoay5jbGlwPXguY2xpcC52YWx1ZSksYz1PYmplY3QuY2xvbmUoImZpbGUiPT14LnR5cGU/eC5maWxlOmtbeC50eXBlXSwhMCkseC5pc2FycmF5fHwoInN0cmluZyI9PXgudHlwZSYmeC5maWxlLmRhdGE/Yz0iZGF0YToiK3guZmlsZS5jb250ZW50X3R5cGUrIjtiYXNlNjQsIit4LmZpbGUuZGF0YTpkZWxldGUgYy5uYW1lKSwxPT1mLmxldmVsJiYvXihfaWR8X3JldikkLy50ZXN0KHgua2V5KSlyZXR1cm4gY3cubGliLm5vdGUoIkNhbuKAmXQgY2hhbmdlIHN5c3RlbSBwcm9wZXJ0aWVzLiIsImVycm9yIiksdm9pZCAwO2lmKC9eKG9iKS8udGVzdChoKSlpZigiYXBwZW5kIj09ZHx8bnVsbCE9Zi52YWx1ZVt4LmtleV0pZi52YWx1ZVt4LmtleV09YyxuKCk7ZWxzZSBpZigicHJlcGVuZCI9PWQpe2ZvcihhIGluIGw9T2JqZWN0LmtleXMoZi52YWx1ZSkpbS5wdXNoKGYudmFsdWVbbFthXV0pLGRlbGV0ZSBmLnZhbHVlW2xbYV1dO2ZvcihhIGluIGYudmFsdWVbeC5rZXldPWMsbClsW2FdIT09eC5rZXkmJihmLnZhbHVlW2xbYV1dPW1bYV0pO209bD1udWxsLG4oKX1lbHNlIGo9ITE7ZWxzZSBpPyh4LmtleT0oK3gua2V5fHwwKS5jbGFtcCgwLGYudmFsdWUubGVuZ3RoKSsiIixmLnZhbHVlLmluc2VydChPYmplY3QuaXNBcnJheShjKT9bY106Yyx4LmtleSksbigpKTpqPSExO2Z1bmN0aW9uIG4oKXtiLk5vZGVVcGRhdGVkKFtmLnBhdGgsZi5rZXkseC5rZXldLHZvaWQgMCxjKX1qJiYoZy5MaXN0PWIuTWFrZUxpc3QoZiksZi5zdGF0ZT0yLGUuZmluZCgiLmlkZXNjOmVxKDApIikudHJpZ2dlcigiY2hlY2siKSxlLmZpbmQoIi5pbGlzdDplcSgwKSIpLnRyaWdnZXIoInJlY2FsYyIpKX0pLmFsd2F5cyhmdW5jdGlvbigpe2QucGFyZW50KCkucmVtb3ZlQ2xhc3MoImhvdmVyIiksZS5yZW1vdmVDbGFzcygiaG92ZXIiKX0pfSx0YWtlb3V0OmZ1bmN0aW9uKHgsYSxiLGMpe3guc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9JCh0aGlzKSxlPWQucGFyZW50cygiLm15LWZvcm0iKS5lcSgwKSxmPWUuZGF0YSgibXkiKS5kYXRhLGc9ZS5kYXRhKCJteSIpLm1hbmlmZXN0LGg9T2JqZWN0LGk9KGguc2l6ZSxoLmNsb25lKSxqPWgubWVyZ2U7ZC5wYXJlbnQoKS5hZGRDbGFzcygiaG92ZXIiKSxlLmFkZENsYXNzKCJob3ZlciIpLGQubW9kYWwoe21hbmlmZXN0OmIuTVRha2VvdXQsZGF0YTp7anNvbjpKU09OLnN0cmluZ2lmeShmLnZhbHVlLG51bGwsIiAgIikscGF0aDpmLnBhdGgsa2V5OmYua2V5LHJlcGxhY2U6aC5zaXplKGYudmFsdWUpPyJSZXBsYWNlIjoiU2F2ZSIsZXh0ZW5kOmguc2l6ZShmLnZhbHVlKT8iRXh0ZW5kIjoiIn0sd2lkdGg6KGUud2lkdGgoKS0xNjApLmNsYW1wKDUwMCwxZTMpLGFsaWduOiJ0b3A6MTAzJTtyaWdodDotNzZweDsiLHJvb3Q6Yy5maW5kKCJzZWN0aW9uI2VkaXRvciIpLmVxKDApLG5vc2U6InRvcCIsc2NyZWVuOiJyZ2JhKDI1NSwyNTUsMjU1LDApIixjbG9zZTohMCxlc2M6ITAsZW50ZXI6ITAsYm91bmQ6Mn0pLnRoZW4oZnVuY3Rpb24oeCl7dmFyIGEsYyxkLGs9ITA7ZnVuY3Rpb24gbCgpe2IuTm9kZVVwZGF0ZWQoW2YucGF0aCxmLmtleV0sYyxmLnZhbHVlKX1hPWIubXkucGFyZW50KCkmJmIubXkucGFyZW50KCkuZGF0YS5pc05ldz94Lm5vZGU6MD09Zi5sZXZlbD9oLnJlamVjdCh4Lm5vZGUsL14oX2lkfF9yZXYpJC8pOngubm9kZSwiZXh0ZW5kIj09eC5jbWQ/KGM9aShmLnZhbHVlLCEwKSxqKGYudmFsdWUsYSwhMCkpOiJyZXBsYWNlIj09eC5jbWQ/KGM9aShmLnZhbHVlLCEwKSxkPXt9LDA9PWYubGV2ZWwmJmYudmFsdWUuX3JldiYmKGQ9aC5zZWxlY3QoZi52YWx1ZSwvXihfaWR8X3JldikkLykpLGIuUlQoIkxpYiIpLmtpY2soZi52YWx1ZSxhKSwwPT1mLmxldmVsJiZqKGYudmFsdWUsZCkpOms9ITEsayYmKGYuc3RhdGU9MixsKCksYi5SVCgiTGliIikucmVsaXN0KGUsZykpfSkuYWx3YXlzKGZ1bmN0aW9uKCl7ZC5wYXJlbnQoKS5yZW1vdmVDbGFzcygiaG92ZXIiKSxlLnJlbW92ZUNsYXNzKCJob3ZlciIpfSl9fSxIVE1MOntNYWluOic8c2VjdGlvbiBzdHlsZT0iIj48c2VjdGlvbiBpZD0iZWRpdG9yIiBjbGFzcz0iZGliIHcxMDBwIj48ZGl2IGNsYXNzPSJwYjUgZnMxMzAgbm9jd21pbiI+PGRpdiBpZD0iZG9jdGl0bGUiIGNsYXNzPSJmczExMCB3NjBwIHB0NCBib2xkZXIgZGliIHZhdCB4Z3JheSBudyBvaCBlbGwgcHIxMCIgPjwvZGl2PjxkaXYgY2xhc3M9IncyMHAgZnM5MCBkaWIgdmF0Ij48ZGl2IGNsYXNzPSJmaS1tYWduaWZ5aW5nLWdsYXNzIHhncmF5IG81MCBmczk1IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiArMTsgbGVmdDogOHB4O3RvcDogMC4yZW07Ij48L2Rpdj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Impzb24tc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJTZWFyY2giIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7Im9uY2xpY2s9IiQodGhpcykuc2libGluZ3MoXCdpbnB1dDplcSgwKVwnKS52YWwoXCdcJykudHJpZ2dlcihcJ2NoZWNrLm15XCcpIj48L3NwYW4+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIG1yMCBmciB3MTUwIGZzOTAiIGlkPSJidG4tc2F2ZSI+U2F2ZTwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImRvYyIgY2xhc3M9Imlyb3dcdHhncmF5Ij48L2Rpdj48L3NlY3Rpb24+PC9zZWN0aW9uPicsSXRlbVNpbXBsZTonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSBpa2V5c2ltcGxlIj48L2Rpdj48ZGl2IGNsYXNzPSJpdmFsdWUiPjwvZGl2PjxkaXYgY2xhc3M9ImllZGl0b3IiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlhY3QgYnV0dG9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIiB0aXRsZT0iRGVsIHByb3BlcnR5Ij4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS10cmFzaCI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PC9kaXY+JyxJdGVtQ29tcGxleDonPGRpdiBjbGFzcz0iaW5hdiI+PGRpdiBjbGFzcz0iaWtleSBpa2V5dHJlZSI+PC9kaXY+PHNlY3Rpb24gY2xhc3M9ImlkZXNjIGNwIj7igJM8L3NlY3Rpb24+PGRpdiBjbGFzcz0iaWVkaXRvciI+PC9kaXY+PC9kaXY+PHNlY3Rpb24gY2xhc3M9Iml2YWx1ZSBpbXVsdGkgaGlkZSI+PGRpdiBjbGFzcz0iaWxpc3QiPjwvZGl2Pjwvc2VjdGlvbj48ZGl2IGNsYXNzPSJpYWN0IGJ1dHRvbnMiPjxidXR0b24gY2xhc3M9ImJ0bi1hZGQgYnV0dG9uIGdyZWVuIiB0aXRsZT0iQWRkIG5ldyBwcm9wZXJ0eSI+JnRoaW5zcDs8c3BhbiBjbGFzcz0iZmktcGx1cyI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWpzb24gaGlkZSI+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuLWRlbCBidXR0b24gcmVkIiAgdGl0bGU9IkRlbCBub2RlIj4mdGhpbnNwOzxzcGFuIGNsYXNzPSJmaS10cmFzaCI+PC9zcGFuPiZ0aGluc3A7PC9idXR0b24+PC9kaXY+J30sc3R5bGU6eyIgIjoiZm9udC1zaXplOjE1cHg7Zm9udC1mYW1pbHk6ICctYXBwbGUtc3lzdGVtJywnQmxpbmtNYWNTeXN0ZW1Gb250JywnSGVsdmV0aWNhIE5ldWUnLCdTZWdvZSBVSScsSGVsdmV0aWNhLFRhaG9tYSxWZXJkYW5hLFNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6MzAwO21pbi1oZWlnaHQ6NTAwcHg7bWF4LXdpZHRoOjE5MDBweDsiLCIgLmJvbGRlciI6ImZvbnQtd2VpZ2h0OmJvbGRlcjsiLCIgI2RvY3RpdGxlIjpmdW5jdGlvbih4LGEsYil7cmV0dXJuIndpZHRoOiIrKHgud2lkdGgoKS5jbGFtcCgwLDE1MDApLTIyMC0yMC0xNDQpKyJweCJ9LCIgIC5pcm93IjpmdW5jdGlvbigpe3ZhciB4PXRoaXMuZGF0YS5sYWJlbFdpZHRoO3JldHVybnsiIC5pa2V5Ijoid2lkdGg6Iit4KyJweDsiLCIgLmluYXYiOiJwYWRkaW5nLWxlZnQ6Iit4KyJweDsiLCIgLmluYXY+LmlrZXkiOiJtYXJnaW4tbGVmdDotIit4KyJweDsifX0sIiAuanZhbC1icmFja2V0IjoiZm9udC13ZWlnaHQ6aW5oZXJpdDtjb2xvcjogcmdiYSgwLDE4MSwxNjEsMC43Mik7IiwiIC5qdmFsLXRyaW0iOiJkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjBweCAycHggMXB4IDJweDtsaW5lLWhlaWdodDoxLjFlbTtjb2xvcjpyZ2JhKDIxMywgNDgsIDg5LCAwLjYzKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNDMsMTA3LDE5MiwwLjA3KTsiLCIgLmp2YWwtc2hvcnQiOiJjb2xvcjpyZ2JhKDg4LDEwMSwxMjMsMC42Myk7IiwiIC5qdmFsLWVtcHR5IjoiY29sb3I6cmdiYSg4OCwxMDEsMTIzLDAuNjMpOyIsIiAuanZhbC1rZXkiOiJmb250LXdlaWdodDppbmhlcml0O21hcmdpbi1sZWZ0OjNweDsiLCIgLmp2YWwtYnJhY2tldCsuanZhbC1rZXkiOiJtYXJnaW4tbGVmdDoxcHg7IiwiIC5qdmFsLXNpbXBsZSI6ImNvbG9yOnJnYmEoMjU1LDk3LDAsMC44Nyk7IiwiIC5qdmFsLXVuZGVmaW5lZCI6ImNvbG9yOnJnYmEoMjIwLDIyNywyMzAsMC44Nyk7IiwiIC5qdmFsLW51bWJlciI6ImNvbG9yOnJnYmEoNTIsMTQzLDI3LDAuOCkiLCIgLmp2YWwtbnVsbCI6ImNvbG9yOnJnYmEoMjE0LDAsMjYsMC44KSIsIiAuanZhbC1zdHJpbmciOiJjb2xvcjpyZ2JhKDMwLDY1LDE2NCwwLjgpOyIsIiAuanZhbC1mdW5jdGlvbiI6ImNvbG9yOnJnYmEoMTQzLDM2LDE1OCwwLjgpOyIsIiAuanZhbC1mb3VuZC1rZXkiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIyMSwwLDAuNyk7cGFkZGluZy1sZWZ0OjFweDtwYWRkaW5nLXJpZ2h0OjFweDtib3JkZXItcmFkaXVzOjJweDsiLCIgLmlyb290Pi5pZWRpdG9yIC5Db2RlTWlycm9yLXNjcm9sbCI6Im1heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDEyMHB4KTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93LXk6c2Nyb2xsOyIsIiI6eyIgdGV4dGFyZWEiOiJmb250LWZhbWlseTpDb3VzaW5lLCdQVCBNb25vJyxNb25hY28sJ0x1Y2lkYSBDb25zb2xlJyxtb25vc3BhY2U7IiwiIC5pcm93Ijoid2lkdGg6Y2FsYygxMDAlIC0gMXB4KTtkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBwYWRkaW5nOjBweCAwcHggMHB4IDI1cHg7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDcwLDEwNSwxMzUsMC4yNSk7IGxpbmUtaGVpZ2h0OjEuM2VtOyBtYXJnaW4tbGVmdDoxcHg7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXM7IiwiIC5pcm93OmJlZm9yZSI6J2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE1cHg7bGVmdDowO3dpZHRoOjE4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSg3MCwxMDUsMTM1LDAuMjUpOycsIiAuaXJvdzpsYXN0LWNoaWxkIjoiYm9yZGVyOm5vbmU7IiwiIC5pcm93Omxhc3QtY2hpbGQ6YWZ0ZXIiOidjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTVweDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSg3MCwxMDUsMTM1LDAuMjUpOycsIiAuaXJvdzpob3ZlciwuaXJvdy5ob3ZlciI6ImJhY2tncm91bmQtY29sb3I6cmdiYSgyMDYsIDIxNCwgMjI2LCAwLjIpOyIsIiAuaWtleSI6InBhZGRpbmctcmlnaHQ6MTBweDtkaXNwbGF5OmlubGluZS1ibG9jazsgd29yZC1icmVhazpicmVhay1hbGw7Zm9udC1zaXplOjk1JTsgbGluZS1oZWlnaHQ6MS4yZW07b3BhY2l0eTowLjg7IG92ZXJmbG93OmhpZGRlbjt2ZXJ0aWNhbC1hbGlnbjp0b3A7bWFyZ2luOjAuMjVlbSAwIDAuM2VtIDBweDsiLCIgLmlrZXl0cmVlIjoiY3Vyc29yOiBwb2ludGVyOyIsIiAuaWxhYmVsIjoiZm9udC1zaXplOjgwJTtwYWRkaW5nOjAgNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMDUpOyBib3JkZXItcmFkaXVzOjJweDtvcGFjaXR5OjAuOTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjotMXB4IDVweCAwIDBweDsiLCIgLmFkb3duLCAuYXJpZ2h0IjoiZm9udC1zaXplOjUwJTsgbGluZS1oZWlnaHQ6MWVtOyBmb250LXdlaWdodDo0MDAhaW1wb3J0YW50OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjAgMCAxcHggM3B4OyBvcGFjaXR5OjAuMzsiLCIgLmFyaWdodDphZnRlciI6J2NvbnRlbnQ6IuKWtu+4jiI7JywiIC5hZG93bjphZnRlciI6J2NvbnRlbnQ6IuKWvCI7JywiIC5pdmFsdWUsIC5pbGlzdCI6IndvcmQtYnJlYWs6IGJyZWFrLWFsbDsiLCIgLml2YWx1ZSI6ImxpbmUtaGVpZ2h0OiAxLjZlbTtjdXJzb3I6cG9pbnRlcjsiLCIgLmlkZXNjIjoibGluZS1oZWlnaHQ6IDEuNWVtOyIsIiAuaXZhbHVlLCAuaWxpc3QsIC5pZGVzYyI6IndpZHRoOjEwMCU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IiwiIC5pZGVzYyAuaW1vZGUiOiJkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyBmb250LXNpemU6OTUlOyBsaW5lLWhlaWdodDoxLjVlbTsgbWFyZ2luLWxlZnQ6MjBweDsiLCIgLmltb2RlID4gc3BhbiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjBlbSAwLjVlbTsgbWFyZ2luLXJpZ2h0OjAuMGVtOyBib3JkZXItcmFkaXVzOjJweDsgYm9yZGVyOiAxcHggc29saWQgIzQzNGU1ZDAwOyBjb2xvcjojNDM0ZTVkOTA7IiwiIC5pbW9kZS5tb2RlLXRyZWUgLm1vZGUtdHJlZSwgLmltb2RlLm1vZGUtanNvbiAubW9kZS1qc29uLCAuaW1vZGUubW9kZS1qcyAubW9kZS1qcywgLmltb2RlLm1vZGUtZGlmZiAubW9kZS1kaWZmIjoiY29sb3I6IzQzNGU1ZGMwOyBiYWNrZ3JvdW5kLWNvbG9yOiAjNDM0ZTVkMWE7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IiwiIC5pbXVsdGkuaXZhbHVlIjoiY3Vyc29yOmluaGVyaXQ7IiwiIC5pc2VkaXRvciAuaXZhbHVlIjoid29yZC13cmFwOiBicmVhay13b3JkOyB3aGl0ZS1zcGFjZTpwcmU7IHBhZGRpbmc6MC4yZW0gMC4zZW0gMC4yZW0gMC40ZW07IGZvbnQtZmFtaWx5OkNvdXNpbmUsJ1BUIE1vbm8nLE1vbmFjbywnTHVjaWRhIENvbnNvbGUnLG1vbm9zcGFjZTsgbWF4LWhlaWdodDo0MDBweDsgb3ZlcmZsb3c6YXV0bztvdmVyZmxvdzpvdmVybGF5OyBvdXRsaW5lOm5vbmU7IGJvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpOyBmb250LXNpemU6OTAlOyBib3JkZXItcmFkaXVzOjJweDttYXJnaW46LTFweCAwIC0xcHggMDsgdGFiLXNpemU6MjsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjQwLDAuOCk7IGN1cnNvcjp0ZXh0OyIsIiAuaXNlZGl0b3J+Lml2YWx1ZSI6ImRpc3BsYXk6bm9uZTsiLCIgLmlib29sZWFuLXRhZyI6InBhZGRpbmc6MCA5cHggMXB4IDlweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOnRvcDsgYm9yZGVyLXJhZGl1czoxMDBweDsiLCIgLmlzZWRpdG9yIC5pZWR0eXBlIjoicG9zaXRpb246YWJzb2x1dGU7IHRvcDo2cHg7IHJpZ2h0Ojg2cHg7IGZvbnQtc2l6ZTogMC44ZW07IGxpbmUtaGVpZ2h0OiAxLjJlbTsgYm9yZGVyLXJhZGl1czoyMHB4OyBwYWRkaW5nOiAwIDVweCAxcHggNXB4OyIsIiAuaW5hdiI6Im1hcmdpbjoycHggMDsiLCIgLmluYXYgLmllZGl0b3IiOiJ3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZTt3b3JkLWJyZWFrOm5vcm1hbDsiLCIgLmluYXYgLml2YWx1ZS5oaWRlfi5pZWRpdG9yIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5pbmF2IC5pZGVzYy5oaWRlfi5pZWRpdG9yIjoiZGlzcGxheTppbmxpbmUtYmxvY2s7IiwiIC5pbmF2IC5pZWRpdG9yIC5pY21mcmFtZSI6Im92ZXJmbG93OmhpZGRlbjsgYm9yZGVyOjFweCBzb2xpZCAjZDFkZmU5OyBib3JkZXItcmFkaXVzOjJweDsiLCIgLmluYXYgLmllZGl0b3IgLmJ1dHRvbiI6InBhZGRpbmc6IDAuMjVlbSAwLjdlbSAwLjE1ZW0gMC43ZW07bWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMDsiLCIgLkNvZGVNaXJyb3IiOiJmb250LXNpemU6MTMuMnB4OyBmb250LWZhbWlseTpDb3VzaW5lLCdQVCBNb25vJyxNb25hY28sbW9ub3NwYWNlOyBsaW5lLWhlaWdodDoxLjRlbTsgY29sb3I6ICM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIjoibGluZS1oZWlnaHQ6MTdweDsiLCIgLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWF4LWhlaWdodDpjYWxjKDIwICogMTZweCArIDZweCk7IiwiIC5Db2RlTWlycm9yLWxpbmVudW1iZXJzIjoidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIiAuZWQtZXJyb3IgLkNvZGVNaXJyb3ItbGluZW51bWJlcnMiOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyMDAsIDIwMCwgMC43NSk7IiwiIC5Db2RlTWlycm9yIC5jbS1wcm9wZXJ0eSI6ImNvbG9yOiM0MzRlNWQ7IiwiIC5Db2RlTWlycm9yIC5jbS12YXJpYWJsZSI6ImNvbG9yOiMzM2JmYWQ7IiwiIC5Db2RlTWlycm9yIC5jbS1rZXl3b3JkIjoiY29sb3I6IzkwMjU5ZTsiLCIgLkNvZGVNaXJyb3IucmVhZG9ubHkiOiJiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7IG9wYWNpdHk6IDAuODsiLCIgLm15LW1vZGFsLWZvcm0gLkNvZGVNaXJyb3IiOiJtaW4taGVpZ2h0OjE1MHB4OyBoZWlnaHQ6YXV0bzsiLCIgLm15LW1vZGFsLWZvcm0gLkNvZGVNaXJyb3Itc2Nyb2xsIjoibWluLWhlaWdodDoxNTBweDsiLCIgLmluYXYgLmllZGl0b3IgLkNvZGVNaXJyb3IiOiJtaW4taGVpZ2h0OjI1cHg7IGhlaWdodDphdXRvOyIsIiAuaWFjdCI6InBvc2l0aW9uOmFic29sdXRlOyB0b3A6M3B4OyByaWdodDozcHg7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzO2JvcmRlci1yYWRpdXM6M3B4OyIsIiAuaWFjdDpob3ZlciwgLmlhY3QuaG92ZXIiOiJkaXNwbGF5OmJsb2NrO29wYWNpdHk6MSFpbXBvcnRhbnQ7IiwiIC5pbmF2OmhvdmVyfi5pYWN0IjoiZGlzcGxheTpibG9jaztvcGFjaXR5OjAuNzsiLCIgLmlhY3QgLmJ1dHRvbiI6InBhZGRpbmc6MC4yNWVtIDAgMC4xNWVtIDA7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDozNnB4O3doaXRlLXNwYWNlOm5vd3JhcDsiLCIgLmluYXYuaXNlZGl0b3J+LmlhY3QiOiJkaXNwbGF5Om5vbmU7IiwiICNkb2MiOiJwYWRkaW5nOjA7IGJvcmRlcjpub25lO292ZXJmbG93OnZpc2libGU7IiwiICNkb2M6YmVmb3JlLCAjZG9jOmFmdGVyIjoiZGlzcGxheTpub25lOyIsIiAjZG9jOmhvdmVyIjoiYmFja2dyb3VuZDp3aGl0ZTsiLCIgI2RvYz4uaW5hdiI6InBhZGRpbmctbGVmdDoxMjBweDsiLCIgI2RvYz4uaW5hdiAuaWtleSI6ImZvbnQtc2l6ZToxMDUlO2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luOjAgMCAwIC0xMjBweDt3aWR0aDoxMjBweDsiLCIgI2RvYz4uaWFjdCI6Im9wYWNpdHk6MC4zO3RvcDowO3JpZ2h0OjA7IiwiIC50YWcuYWN0aXZlIjoiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzUsIDIxMiwgMCwgMC4xNykhaW1wb3J0YW50O2NvbG9yOiByZ2IoNjUsIDEzMiwgMCkhaW1wb3J0YW50OyIsIiAuYnV0dG9ucyBidXR0b24iOiJib3JkZXItcmFkaXVzOjA7bWFyZ2luLXJpZ2h0OjJweDsgcGFkZGluZzowLjRlbSAwLjdlbSAwLjRlbSAwLjdlbTt3aWR0aDozNnB4O2ZvbnQtc2l6ZTo5MCU7IiwiIC5idXR0b25zIGJ1dHRvbjpsYXN0LWNoaWxkIjoiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7IG1hcmdpbi1yaWdodDowOyIsIiAuYnV0dG9ucyBidXR0b246Zmlyc3QtY2hpbGQiOiJib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHg7IiwiIC5idXR0b25zIC5idXR0b24iOiJib3JkZXItcmFkaXVzOjA7bWFyZ2luLXJpZ2h0OjJweDsiLCIgLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIjoiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7IG1hcmdpbi1yaWdodDowOyIsIiAuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIjoiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4OyIsIiBhLmJhc2U2NGltYWdlIGltZyI6ImJhY2tncm91bmQ6IHdoaXRlOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkIWltcG9ydGFudDsgcGFkZGluZzogM3B4OyBtYXgtd2lkdGg6IDEwJTsgbWluLXdpZHRoOiAyJTsgbWF4LWhlaWdodDogNjBweDsiLCIgLmJhc2U2NGltYWdlfmRpdiI6IndpZHRoOjg3JTsiLCIgLmJhc2U2NGljb35kaXYiOiJ3aWR0aDo4NyU7IiwiIC53NTUiOiJ3aWR0aDo1NXB4OyIsIiAuaDU1IjoiaGVpZ2h0OjU1cHg7In19LE1UYWtlb3V0Ontpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztiLlN0YXJ0SGFzaD0kLm15LmYuc2RibUNvZGUoYS5kYXRhLmpzb24pLGIuZGF0YS5qc29uPSIoIitiLmRhdGEuanNvbisiKSIseC5odG1sKGIuSFRNTCl9LEhUTUw6JzxkaXYgaWQ9InRpdGxlIiBjbGFzcz0ibWI1IGZzMTA1IGJvbGRlciI+PC9kaXY+PGRpdiBjbGFzcz0ibmVlZHNjbGljayIgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgI2RkZDsgbWFyZ2luOjJweCAwIDhweCAwO2JvcmRlci1yYWRpdXM6MnB4Ij48dGV4dGFyZWEgaWQ9Impzb24iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSI+PC90ZXh0YXJlYT48L2Rpdj48ZGl2PjxkaXYgY2xhc3M9ImZyIGdyYXkgcHQ1IiBpZD0iaW5mbyI+PC9kaXY+PGRpdiBjbGFzcz0iYnV0dG9ucyBkaWIgdmF0IGZzMTEwIG10NCI+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIHc5MCIgaWQ9ImJ0bi1yZXBsYWNlIj5SZXBsYWNlPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnV0dG9uIHc5MCIgaWQ9ImJ0bi1leHRlbmQiPkV4dGVuZDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ1dHRvbiB3OTAiIGlkPSJidG4tY2FuY2VsIj5DYW5jZWw8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJsZ3JheSBwbDMwIGRpYiB2YXQgcHQ1IiBpZD0iaW5mbyI+SlNPTiBvciBqcyBleHByZXNzaW9uIOKHoTwvZGl2PjxkaXYgY2xhc3M9InBsMzAgZGliIHZhdCBwdDUgbzcwIj48c3BhbiBjbGFzcz0icHNldWRvbGluayB0ZG4iIGlkPSJidG4tc3RyaXAiIHRpdGxlPSJSZW1vdmVzIGFsbCBfKiBzeXN0ZW0gZmllbGRzIGV4Y2VwdCBfaWQgYW5kIF9hdHRhY2htZW50cyI+U3RyaXAgXyBrZXlzPC9zcGFuPjwvZGl2PjwvZGl2PicsdWk6eyIjdGl0bGUiOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4iSlNPTiBmb3IgIit4LnBhdGguc2xpY2UoMCkuYWRkKHgua2V5KS5qb2luKCIvIikudHJ1bmNhdGUoNzAsIm1pZGRsZSIsIuKApiIpfSwiI2pzb24iOntkZWxheToyMCxiaW5kOiJqc29uIixpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcy5kYXRhLmpzb24ubGVuZ3RoPDVlNTtDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmI/ImphdmFzY3JpcHQiOiJ0ZXh0IixsaW5lTnVtYmVyczpiLHZpZXdwb3J0TWFyZ2luOjEwMCxpbmRlbnRXaXRoVGFiczohMCxpbmRlbnRVbml0OjIsc2Nyb2xsYmFyU3R5bGU6bnVsbCxsaW5lV3JhcHBpbmc6ITAsdGFiU2l6ZToyLHRoZW1lOiJkZWZhdWx0IixhdXRvZm9jdXM6ITB9KX19LCIjYnRuLXJlcGxhY2UiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHgubm9kZT10aGlzLlBhcnNlZCx4LmNtZD0icmVwbGFjZSIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5yZXBsYWNlfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIXRoaXMuRGlydHl8fCF0aGlzLlBhcnNlZH0sInNlbGY6b3JhbmdlIjpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLkRpcnR5JiYhIXRoaXMuUGFyc2VkfX0sd2F0Y2g6IiNpbmZvIn0sIiNidG4tZXh0ZW5kIjp7YmluZDpmdW5jdGlvbih4LGEsYil7cmV0dXJuIG51bGwhPWEmJih4Lm5vZGU9dGhpcy5QYXJzZWQseC5jbWQ9ImV4dGVuZCIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5leHRlbmR9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5EaXJ0eXx8IXRoaXMuUGFyc2VkfSwic2VsZjpvcmFuZ2UiOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIHRoaXMuRGlydHkmJiEhdGhpcy5QYXJzZWR9LCJzZWxmOmhpZGUiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmV4dGVuZH19LHdhdGNoOiIjaW5mbyJ9LCIjYnRuLWNhbmNlbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe251bGwhPWEmJmIudHJpZ2dlcigiY2FuY2VsIil9fSwiI2J0bi1zdHJpcCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3ZhciBjPXRoaXMuUGFyc2VkLGQ9WyJfaWQiLCJfYXR0YWNobWVudHMiXS5yZWR1Y2UoZnVuY3Rpb24oeCxhKXtyZXR1cm4gdm9pZCAwIT09Y1thXSYmKHhbYV09Y1thXSkseH0se30pO3RoaXMuUGFyc2VkPSQuZXh0ZW5kKGQsT2JqZWN0LnJlamVjdCh0aGlzLlBhcnNlZCwvXl8vKSkseC5qc29uPSIoIitKU09OLnN0cmluZ2lmeSh0aGlzLlBhcnNlZCxudWxsLCIgICIpKyIpIix0aGlzLm15LnJlY2FsYygiI2pzb24iKX19LGNzczp7InNlbGY6aGlkZSI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hdGhpcy5QYXJzZWR8fCFPYmplY3Qua2V5cyh0aGlzLlBhcnNlZCkuZmluZEFsbCgvXl8vKS5yZW1vdmUoIl9pZCIpLnJlbW92ZSgiX2F0dGFjaG1lbnRzIikubGVuZ3RofX0sd2F0Y2g6IiNpbmZvIn0sIiNpbmZvIjp7ZGVsYXk6NDAwLGJpbmQ6ZnVuY3Rpb24oZCx2LCRvKXt2YXIgcGFyc2Uscz11bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZC5qc29uKSkubGVuZ3RoO3RyeXtwYXJzZT1ldmFsKCIoIitkLmpzb24rIikiKSxwYXJzZT1PYmplY3QuaXNPYmplY3QocGFyc2UpfHxPYmplY3QuaXNBcnJheShwYXJzZSk/SlNPTi5wYXJzZSgkLm15LnRvanNvbihwYXJzZSkpOm51bGx9Y2F0Y2goeCl7fXJldHVybiB0aGlzLlBhcnNlZD1wYXJzZXx8bnVsbCwkby5teSgpLnJvb3QudG9nZ2xlQ2xhc3MoImVkLWVycm9yIiwhcGFyc2UpLHRoaXMuSGFzaD0kLm15LmYuc2RibUNvZGUoZC5qc29uKSx0aGlzLkRpcnR5PXRoaXMuU3RhcnRIYXNoIT10aGlzLkhhc2gscy5tZXRyaWMoMikrImIifSx3YXRjaDoiI2pzb24ifX0sc3R5bGU6eyIgI2pzb24iOiJib3JkZXI6IG5vbmU7IHdpZHRoOiAxMDAlO2Rpc3BsYXk6IGJsb2NrO2hlaWdodDogMzAwcHg7Zm9udC1zaXplOiAwLjdlbTt3b3JkLXdyYXA6IG5vcm1hbDsgb3ZlcmZsb3cteDogaGlkZGVuOyIsIiAuQ29kZU1pcnJvciI6eyIiOiJtaW4taGVpZ2h0OjE1MHB4O2hlaWdodDphdXRvO2ZvbnQtc2l6ZToxM3B4IWltcG9ydGFudDsiLCIgLkNvZGVNaXJyb3ItbGluZXMiOiJsaW5lLWhlaWdodDoxN3B4IWltcG9ydGFudDsiLCIgLmNtLXByb3BlcnR5IjoiY29sb3I6IzQzNGU1ZDsiLCIgLmNtLXZhcmlhYmxlIjoiY29sb3I6IzMzYmZhZDsiLCIgLmNtLWtleXdvcmQiOiJjb2xvcjojOTAyNTllOyJ9fX0sTUFkZDp7aW5pdDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7eC5mb3JtZ2VuKGIuSFRNTCksYS5kYXRhLmlzYXJyYXkmJnguZmluZCgiI25rZXkiKS5hdHRyKCJ0eXBlIiwibnVtYmVyIil9LGRhdGE6e2NtZDoiIixrZXk6IiIsdHlwZToic3RyaW5nIixpc2FycmF5OiExLHRleHQ6IkNyZWF0ZSBuZXcgcHJvcGVydHkiLHByZXBlbmQ6IlByZXBlbmQiLGFwcGVuZDoiQXBwZW5kIix1cGxvYWQ6JzxzcGFuIGNsYXNzPSJwc2V1ZG9saW5rIGRpYiB3MTAwcCB2YXQgdGFjIj5TZWxlY3QgZmlsZS4uLjwvc3Bhbj4nLGtleXM6e30sZmlsZTp7fX0sdWk6eyIjbnRleHQiOiJ0ZXh0IiwiI25rZXkiOntiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIG51bGwhPWEmJih4LmlzYXJyYXk/eC5rZXk9YS5yZXBsYWNlKC9cRC9nLCIiKTp4LmtleT1hKSx4LmtleX0sd2F0Y2g6IiNudHlwZSJ9LCIjbnR5cGUiOntiaW5kOmZ1bmN0aW9uKHgsYSxiKXtyZXR1cm4gbnVsbCE9YSYmKHgudHlwZT1hLCJDbGlwIiE9YXx8eC5rZXl8fHguaXNhcnJheXx8KHgua2V5PXguY2xpcC5rZXkpKSx4LnR5cGV9LGluaXQ6ZnVuY3Rpb24oeCxhKXt4LnRhZ3Moe3RhZ3M6W1t7IntPYmp9Ijoib2JqZWN0In0seyJbQXJyXSI6ImFycmF5In0se051bToibnVtYmVyIn0se0Jvb2w6ImJvb2xlYW4ifSx7RmlsZToiZmlsZSJ9XV0sZW1wdHk6eyciU3RyIic6InN0cmluZyJ9LHRhZ2NzczoidGFnIGJsdWUgY3AgcGw1IHByNSIsdGFnc2hpbToiIixncm91cHNoaW06IiJ9KX0scmVjYWxjOiIjbmtleXR5cGUifSwiI25rZXl0eXBlIjpmdW5jdGlvbih4KXtyZXR1cm4geC5pc2FycmF5PyJJbmRleCI6IktleSJ9LCIjeHVwbG9hZCI6e3dhdGNoOiIjbnR5cGUiLGNzczp7aGlkZTpmdW5jdGlvbih4KXtyZXR1cm4iZmlsZSIhPXgudHlwZX19fSwiI3VwbG9hZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjLGQsZT17fTtudWxsIT1hJiZhJiYoKGM9YlswXS5maWxlc1swXSkuc2l6ZT54LmxpbWl0Pyhjdy5ub3RlKCJNYXggdXBsb2FkIGZpbGUgc2l6ZSBpcyAiKygxKngubGltaXQpLmFiYnIoMSkrImIiLCJlcnJvciIpLGIud3JhcCgiPGZvcm0+IikuY2xvc2VzdCgiZm9ybSIpLmdldCgwKS5yZXNldCgpKTpjJiZmdW5jdGlvbigpe2UubmFtZT1jLm5hbWUsZS5jb250ZW50X3R5cGU9Yy50eXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjt2YXIgYSxmPW5ldyBGaWxlUmVhZGVyLGc9W107Zi5vbmxvYWQ9ZnVuY3Rpb24oZil7YT1uZXcgVWludDhBcnJheShmLnRhcmdldC5yZXN1bHQpO2Zvcih2YXIgaD0wO2g8YS5sZW5ndGg7aCsrKWcucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGFbaF0pKTtkPXdpbmRvdy5idG9hKGcuam9pbigiIikpLGUuZGF0YT1kLGUubGVuZ3RoPWcubGVuZ3RoLCQuZXh0ZW5kKHguZmlsZSxlKSx4LmtleXx8eC5pc2FycmF5fHwoeC5rZXk9Yy5uYW1lKSwheC5rZXkmJnguaXNhcnJheSxiLndyYXAoIjxmb3JtPiIpLmNsb3Nlc3QoImZvcm0iKS5nZXQoMCkucmVzZXQoKSxiLm15KCJmaW5kIiwiLmN3LWF0dC11cGxvYWQ+c3BhbiIpLnRleHQoYy5uYW1lLnRydW5jYXRlKDE1LCJtaWRkbGUiLCLigKYiKSsiICIrZS5sZW5ndGgubWV0cmljKDIsITEpKyJiIikseC5rZXk9PWMubmFtZSYmYi5teSgiZmluZCIsIiNua2V5IikudmFsKHgua2V5KS50cmlnZ2VyKCJibHVyIil9LGYucmVhZEFzQXJyYXlCdWZmZXIoYyl9KCkpfSxjc3M6e2hpZGU6ZnVuY3Rpb24oeCl7cmV0dXJuIXgudXBsb2FkfX19LCIuY3ctYXR0LXVwbG9hZCI6InVwbG9hZCIsIiNidG4tdG8wIjp7YmluZDpmdW5jdGlvbih4LGEsYil7cmV0dXJuIG51bGwhPWEmJih4LmNtZD0icHJlcGVuZCIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5rZXlzW3gua2V5XSYmIXguaXNhcnJheT8iUmVwbGFjZSI6eC5wcmVwZW5kfSxjc3M6eyI6ZGlzYWJsZWQiOmZ1bmN0aW9uKHgpe3JldHVybiF4LmtleX0sInNlbGY6cmVkIjpmdW5jdGlvbih4KXtyZXR1cm4geC5rZXlzW3gua2V5XSYmIXguaXNhcnJheX19LHdhdGNoOiIjbmtleSJ9LCIjYnRuLXRvMSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe3JldHVybiBudWxsIT1hJiYoeC5jbWQ9ImFwcGVuZCIsYi50cmlnZ2VyKCJjb21taXQiKSkseC5hcHBlbmR9LGNzczp7IjpkaXNhYmxlZCI6ZnVuY3Rpb24oeCl7cmV0dXJuIXgua2V5fSwic2VsZjpoaWRlIjpmdW5jdGlvbih4KXtyZXR1cm4heC5hcHBlbmR8fC9eXGQrJC8udGVzdCh4LmtleSl8fHgua2V5c1t4LmtleV19fSx3YXRjaDoiI25rZXkifSwiI2J0bi1jYW5jZWwiOmZ1bmN0aW9uKHgsYSxiKXtudWxsIT1hJiZiLnRyaWdnZXIoImNhbmNlbCIpfX0sSFRNTDpbJzxkaXYgaWQ9Im50ZXh0Ij48L2Rpdj4nLHtsYWJlbDoiNTBweCIscm93OiIxMDAlIixyb3dDc3M6Im15LXJvdyBwdDUgcGI1IixsYWJlbENzczoibXktbGFiZWwgZ3JheSBmczkwIn0sWyc8c3BhbiBpZD0ibmtleXR5cGUiPktleTwvc3Bhbj4nLCJpbnAjbmtleS53MTAwcCIsIm1zZy5tdDIubWItMiJdLFsiVHlwZSIsInNwbiNudHlwZS5kaXYudmF0LmZzOTUiXSwnPGRpdiBpZD0ieHVwbG9hZCIgY2xhc3M9InBsNjAgbXQ1IG1iMTAgaGlkZSI+JywnPHNwYW4gY2xhc3M9ImN3LWF0dC11cGxvYWQgYnV0dG9uIHcxMDBwIj48L3NwYW4+JywnPGlucHV0IGlkPSJ1cGxvYWQiIGNsYXNzPSJwbDYwIiB0eXBlPSJmaWxlIiAvPicsIjwvZGl2PiIse3Jvd0NzczoibXktcm93IHB0NSBwYjIgYnV0dG9ucyBwbDUwIn0sWyIiLCJidXQjYnRuLXRvMC5idXR0b24uZ3JlZW4udzk1Iix7dHh0OiJQcmVwZW5kIn0sImJ1dCNidG4tdG8xLmJ1dHRvbi5ncmVlbi53ODUiLHt0eHQ6IkFwcGVuZCJ9LCJidXQjYnRuLWNhbmNlbC5idXR0b24udzc1Lm1yMCIse3R4dDoiQ2FuY2VsIn1dXSxzdHlsZTp7IiAuY3ctYXR0LWl0ZW0iOiJ3aGl0ZS1zcGFjZTpub3dyYXA7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowLjJlbSAwIDAuMmVtIDA7IGxpbmUtaGVpZ2h0OjEuNGVtOyIsIiBpbnB1dFt0eXBlPWZpbGVdIjoid2lkdGg6MjQwcHg7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTowOyBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjYwcHg7aGVpZ2h0OjM1cHg7In19LE1FZGl0OntkYXRhOnt0ZXh0OiIiLG1vZGU6ImF1dG8iLHJlYWRvbmx5OiExLGNvbW1pdEtleXM6W10sY29tbWl0VHlwZUtleXM6e30sY2FuY2VsS2V5czpbXSxjYW5jZWxUeXBlS2V5czp7fSxleHBlY3Q6InN0cmluZyIsdHlwZToic3RyaW5nIn0saW5pdDonPGRpdiBzdHlsZT0id2lkdGg6Y2FsYygxMDAlIC0gODBweCk7IiBjbGFzcz0iaWNtZnJhbWUgZGliIHZhdCBtdC0xIG1iLTEiPjx0ZXh0YXJlYSBpZD0iaWVkIiBzdHlsZSA9IndpZHRoOjEwMCU7eG1heC1oZWlnaHQ6MzAwcHg7IiBjbGFzcz0ieGdyYXkiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBpZD0iaWVkdHlwZSIgY2xhc3M9ImllZHR5cGUgaGlkZSB3aGl0ZSBib2xkIiBzdHlsZT0iIj5hcnJheTwvZGl2PjxkaXYgY2xhc3M9ImJ1dHRvbnMgdzgwIGRpYiB2YXQgdGFyIG8xMDAgcHIzIHB0MCI+PGJ1dHRvbiBpZD0iYnRuLWNoYW5nZSIgY2xhc3M9ImJ1dHRvbiBncmVlbiB3MzYiIHRpdGxlPSJBcHBseSBjaGFuZ2VzIj48c3BhbiBjbGFzcz0iZmktY2hlY2siPjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJidG4tZGlzY2FyZCIgY2xhc3M9ImJ1dHRvbiB3MzYiIHRpdGxlPSJEaXNjYXJkIGNoYW5nZXMiPjxzcGFuIGNsYXNzPSJmaS14Ij48L3NwYW4+PC9idXR0b24+PC9kaXY+Jyx1aTp7IiNpZWQiOntiaW5kOiJ0ZXh0Iixpbml0OmZ1bmN0aW9uKHgpe3ZhciBhLGI9dGhpcyxjPWIuZGF0YSxkPWMudGV4dCxlPWMubW9kZSxmPSJudW1iZXIiPT1lLGc9ITA7aWYoImF1dG8iPT1lKWlmKCgoYT1kLnN1YnN0cigwLDgwMCkpLm1hdGNoKC8odmFyXHN8Y29uc3Rcc3xmdW5jdGlvbltcc1woXXxyZXR1cm5cc3xbXHNcdF1pZlxzKS9nKXx8W10pLmxlbmd0aD4yKXtlPSJ0ZXh0L2phdmFzY3JpcHQiO3ZhciBoPTA7ZC5saW5lcygpLmZvckVhY2goZnVuY3Rpb24oeCxhKXthPjIwMHx8eC5sZW5ndGg+aCYmKGg9eC5sZW5ndGgpfSksaD4xNTAmJmg8MWUzJiYhMH1lbHNlLzxcLyhkaXZ8c3BhbnxwfGF8c2NyaXB0fGhlYWR8dGl0bGV8c3ZnfHBhdGgpLy50ZXN0KGEpfHwvPChzdmd8cGF0aHxncm91cClccy8udGVzdChhKT8oZT0idGV4dC9odG1sIiwhMCk6Q29kZU1pcnJvci5tb2Rlcy5lcmxhbmcmJi9eKCUlW15cclxuXSpbXHJcbl0rKSpbXHJcblxzXHRdKmZ1bltcclxuXHNcdF0qXChbXHJcblxzXHRdKlx7Py8udGVzdChhKT8oZT0iZXJsYW5nIiwhMCk6KGU9InRleHQiLC9bXHJcbl0vLnRlc3QoYSl8fCghMCxkLmxlbmd0aDw4MDAmJihnPSExKSkpO2Z1bmN0aW9uIGkoKXtiLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3Jjb21taXQubXkiKX1mdW5jdGlvbiBqKCl7Yi5teS50cmlnZ2VyKCIjaWVkIiwiZWRpdG9yY2FuY2VsLm15Iil9Im51bWJlciI9PWU/KGU9InRleHQvamF2YXNjcmlwdCIsZz0hMSk6ImI2NCI9PWUmJihlPSJ0ZXh0L3BsYWluIiwhMCxnPSExKSxDb2RlTWlycm9yLmZyb21UZXh0QXJlYSh4WzBdLHttb2RlOmUsdmlld3BvcnRNYXJnaW46MTAwLGxpbmVOdW1iZXJzOmcsaW5kZW50V2l0aFRhYnM6ITAsaW5kZW50VW5pdDoyLHRhYlNpemU6Mix0aGVtZToiZGVmYXVsdCIscmVhZE9ubHk6Yy5yZWFkb25seSxhdXRvZm9jdXM6ITAsbGluZVdyYXBwaW5nOiEwLGV4dHJhS2V5czokLmV4dGVuZCh7RXNjOmosIkN0cmwtRW50ZXIiOmkuZGVib3VuY2UoMjApLCJDbWQtRW50ZXIiOmkuZGVib3VuY2UoMjApfSxmP3tFbnRlcjppfTp7fSxjLmNvbW1pdEtleXMuY29uY2F0KGMuY29tbWl0VHlwZUtleXNbYy5tb2RlXT9jLmNvbW1pdFR5cGVLZXlzW2MubW9kZV06W10pLnJlZHVjZShmdW5jdGlvbih4LGEpe3JldHVybiB4W2FdPWkseH0se30pLGMuY2FuY2VsS2V5cy5jb25jYXQoYy5jYW5jZWxUeXBlS2V5c1tjLm1vZGVdP2MuY2FuY2VsVHlwZUtleXNbYy5tb2RlXTpbXSkucmVkdWNlKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIHhbYV09aix4fSx7fSksYy5jb21taXRUeXBlS2V5c1tjLm1vZGVdP2MuY29tbWl0VHlwZUtleXNbYy5tb2RlXTpbXSl9KSxjLnJlYWRvbmx5JiZ4Lm5leHQoKS5hZGRDbGFzcygicmVhZG9ubHkiKX19LCIjYnRuLWNoYW5nZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3Jjb21taXQubXkiKX0sY3NzOnsiOmRpc2FibGVkIjpmdW5jdGlvbih4KXtyZXR1cm4hIXgucmVhZG9ubHl9fX0sIiNidG4tZGlzY2FyZCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtudWxsIT1hJiZ0aGlzLm15LnRyaWdnZXIoIiNpZWQiLCJlZGl0b3JjYW5jZWwubXkiKX19LCIjaWVkdHlwZSI6e2RlbGF5OjMwMCxiaW5kOmZ1bmN0aW9uKHgsYSl7cmV0dXJuIm9iamVjdCIhPXguZXhwZWN0JiYiYXJyYXkiIT14LmV4cGVjdHx8KHgudHlwZT0kLnR5cGUodGhpcy5wYXJzZVN0cmluZyh4LnRleHQpKSkseC50eXBlfSxjc3M6eyJiZy1yZWQxIjpmdW5jdGlvbih4KXtyZXR1cm4geC50eXBlIT14LmV4cGVjdH0sImJnLWdyYXkyIjpmdW5jdGlvbih4KXtyZXR1cm4geC50eXBlPT14LmV4cGVjdH0saGlkZTpmdW5jdGlvbih4KXtyZXR1cm4hKCJvYmplY3QiPT14LmV4cGVjdHx8ImFycmF5Ij09eC5leHBlY3QpfX0sd2F0Y2g6WyIjaWVkIl19fSxwYXJzZVN0cmluZzpmdW5jdGlvbiBfcGFyc2VTdHJpbmcodmFsKXt2YXIgbyxlcnI7dHJ5e289SlNPTi5wYXJzZSh2YWwpfWNhdGNoKHgpe2Vycj0hMH1pZihlcnIpe3RyeXtvPWV2YWwoIigiK3ZhbCsiKSIpLGVycj0hMX1jYXRjaCh4KXtlcnI9ITB9IWVyciYmL14ob2J8YXIpLy50ZXN0KCQudHlwZShvKSkmJihvPUpTT04ucGFyc2UoY3cubGliLmpzb24obykpKX1yZXR1cm4gZXJyfHx2b2lkIDA9PT1vP3ZhbDpvfX0sJG11bHRpOntpZDoiU3lzLkpTT04uT2JqZWN0IixwYXJhbXM6e25vcm1hbGl6ZWQ6ITB9LGRhdGE6e30sTGlzdDpbXSxDTToidGV4dC9qYXZhc2NyaXB0IixGOnt9LFR4dDp7b2JqZWN0OlsiT2JqZWN0IHsiLCJ9Il0sYXJyYXk6WyJBcnJheSBbIiwiXSJdfSxpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcyxjPWIuZGF0YTt4LmFkZENsYXNzKCJlZC1ub2RlLSIrYi5QYXRoU2lnKGMucGF0aCxjLmtleSkpLHguaHRtbChiLkhUTUwpLGMuc3RhdGU+MSYmKGIuTGlzdD1iLk1ha2VMaXN0KGIuZGF0YSkpLHgudGhlbihmdW5jdGlvbigpe3gub24oImNsaWNrLm15IiwiLmlsaXN0OmVxKDApIC5idG4tZGVsIixmdW5jdGlvbihjKXtjLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBkPSQodGhpcykucGFyZW50cygiLm15LWZvcm0iKS5lcSgwKSxlPWQucGFyZW50KCkuZGF0YSgibXkiKS5kYXRhLGY9Yi5SVCgiTGliIikuaXNTeXN0ZW0uY2FsbChkLm15KCJtYW5pZmVzdCIpLGQubXkoImRhdGEiKSksZz0kLnR5cGUoZS52YWx1ZSksaD1kLm15KCJkYXRhIikua2V5LGk9bnVsbDtpZihmKWN3LmxpYi5ub3RlKCJEZWxldGlvbiBpcyBub3QgYWxsb3dlZCIsImVycm9yIik7ZWxzZXtpZigib2JqZWN0Ij09Zyl7dmFyIGo9T2JqZWN0LmtleXMoZS52YWx1ZSksaz1qLmluZGV4T2YoaCk7aT1bbnVsbCxudWxsXSxrPjAmJihpWzBdPWpbay0xXSksazxqLmxlbmd0aC0xJiYoaVsxXT1qW2srMV0pfWIuTm9kZVVwZGF0ZWQoW2UucGF0aCxlLmtleSxoXSxlLnZhbHVlW2hdLHZvaWQgMCxpKSwib2JqZWN0Ij09Zz9kZWxldGUgZS52YWx1ZVtoXToiYXJyYXkiPT1nJiZlLnZhbHVlLnJlbW92ZUF0KGgpLGIuUlQoIkxpYiIpLnJlbGlzdCh4LGIsYSl9fSl9KX0sdWk6eyIuaXZhbHVlIjp7ZGVsYXk6MCxjc3M6e2hpZGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5MaXN0Lmxlbmd0aH19fSwiLmJ0bi1qc29uIjp7ZGVsYXk6LjAxLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpczthLklubGluZUNNKHgsYSl9LGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGwhPWEpe3guc3RhdGU9MTZ8eC5zdGF0ZX19LHJlY2FsYzpbIi5pa2V5IiwiLmlkZXNjIl19LCIuaWtleSI6e2RlbGF5OjEwLGJpbmQ6ZnVuY3Rpb24oeCxhLGIpe3ZhciBjLGQ9dGhpcyxlPWQubGFiZWxXaWR0aC8zfDAsZj0iJG11bHRpIj09eC5tYW5pZmVzdCxnPSEhKDE2Jnguc3RhdGUpLGg9T2JqZWN0LnNpemUoeC52YWx1ZSk7cmV0dXJuIG51bGw9PWF8fGd8fChoPD1kLlJUKCJkYXRhIikubWF4RGVwdGg/KHguc3RhdGU9MSZ4LnN0YXRlJiYoIWZ8fGgpfHwheC5sZXZlbD8yNTQmeC5zdGF0ZXwyOjI1MyZ4LnN0YXRlfDEsMiZ4LnN0YXRlP2QuTGlzdD1kLk1ha2VMaXN0KHgpOihkLkxpc3Q9W10sZC5TaG93SXRlbXM9bnVsbCkpOihkLkxpc3Q9W10sZC5TaG93SXRlbXM9bnVsbCx4LnN0YXRlPTI1MyZ4LnN0YXRlfDEsZC5teS5maW5kKCIuaWRlc2MiKS50cmlnZ2VyKCJjbGljay5teSIpKSxkLlJUKCJNZW1TdGF0ZSIpKHgpKSw0Jnguc3RhdGUmJmQuUlQoIlNlYXJjaFJlIik/Yz14LmtleS5yZXBsYWNlKGQuUlQoIlNlYXJjaFJlIiksIu+/sSQx77+wIikuZXNjYXBlSFRNTCgpLnJlcGxhY2UoIu+/sSIsJzxzcGFuIGNsYXNzPSJqdmFsLWZvdW5kLWtleSI+JykucmVwbGFjZSgi77+wIiwiPC9zcGFuPiIpOih4LmtleS5sZW5ndGg+ZSYmYi5hdHRyKCJ0aXRsZSIseC5rZXkuZXNjYXBlSFRNTCgpKSxjPS9eKHxccyspJC8udGVzdCh4LmtleSk/JyInK3gua2V5LmVzY2FwZUhUTUwoKSsnIic6eC5rZXkudHJ1bmNhdGUoZSwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCksMTgmeC5zdGF0ZT8oYz0nPHNwYW4gY2xhc3M9ImZ3NTAwIj4nK2MrIjwvc3Bhbj4iLDE2Jnguc3RhdGV8fCFofHwoYys9JzxzcGFuIGNsYXNzPSJhZG93biI+PC9zcGFuPicpKTpoJiYoYys9JzxzcGFuIGNsYXNzPSJhcmlnaHQiPjwvc3Bhbj4nKSksY30sZXZlbnRzOiJjbGljay5teSIscmVjYWxjOlsiLml2YWx1ZSIsIi5pZGVzYyIsIi5pbGlzdCJdfSwiLmlkZXNjIjp7ZGVsYXk6MCxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz10aGlzLGQ9KGMuTGlzdCxjLlR4dFt4LnR5cGVdLE9iamVjdC5zaXplKHgudmFsdWUpKSxlPSh4Lm1hbmlmZXN0LCIiKTtpZihudWxsPT1hKXtpZigxNiZ4LnN0YXRlKWU9IiI7ZWxzZSBpZihjLkxpc3QubGVuZ3RoKWU9Im9iamVjdCI9PXgudHlwZT8iT2JqZWN0IHsiK2QrIn0iOiJBcnJheSBbIitkKyJdIjtlbHNlIGlmKCFjLlJUKCJTZWFyY2hSZSIpfHx4LnBhdGgubGVuZ3RoKXt2YXIgZj1jLlJUKCJqMmgiKSh4LnZhbHVlLDUwLFsiaWQiLCJuYW1lIiwibGVuZ3RoIiwic3RhdHVzIl0sImFycmF5IiE9eC50eXBlPzE6MiwiYXJyYXkiIT14LnR5cGUpOzE9PWYubGVuZ3RoJiYic2hvcnQiPT1mWzBdWzBdJiYoInsiPT1mWzBdWzFdWzBdP2ZbMF1bMV09Ik9iamVjdCAiK2ZbMF1bMV06IlsiPT1mWzBdWzFdWzBdJiYoZlswXVsxXT0iQXJyYXkgIitmWzBdWzFdKSksZSs9Zi5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF0/JzxzcGFuIGNsYXNzPSJqdmFsLScreFswXSsnIj4nK3hbMV0rIjwvc3Bhbj4iOnhbMV19KS5qb2luKCIiKX1lbHNlIGU9JzxzcGFuIGNsYXNzPSJsaDExNSBkaWIgdmF0Ij5Gb3VuZCBubyBub2RlcyBjb250YWluaW5nIDxzcGFuIGNsYXNzPSJib2xkZXIiPnsxfTwvc3Bhbj48L3NwYW4+Jy5hc3NpZ24oYy5SVCgiZGF0YSIpLnNlYXJjaC5lc2NhcGVIVE1MKCkpO2IuaHRtbChlKX19LHJlY2FsYzpbIi5pdmFsdWUiLCIuaWtleSIsIi5pbGlzdCJdfSwiLmlsaXN0Ijp7ZGVsYXk6MCxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7eC5vbigiY2hhbmdlLm15IixmdW5jdGlvbigpe2EuUlQoIlJlam9pbiIpKGEuZGF0YSxhLkxpc3QpfS5kZWJvdW5jZSgzMDApKX0sYmluZDoidGhpcy5MaXN0IixsaXN0Oic8ZGl2IGNsYXNzPSJpcm93Ij48L2Rpdj4nLGlkOmZ1bmN0aW9uKHgpe3JldHVybiJYIit4LmlkfSxoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiJYIit4Lmhhc2h9LG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7cmV0dXJuIGEuUlQoeC5tYW5pZmVzdCl8fGEuUlQoIiRzdHJpbmciKX19fX0sJHN0cmluZzp7aWQ6IlN5cy5KU09OLlN0cmluZyIsQ006ImF1dG8iLEY6e30sdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO2EuSW5saW5lQ00oeCxhKX0sYmluZDpmdW5jdGlvbih4LGEpe3JldHVybiAyIT14LnN0YXRlP2IoeC52YWx1ZSk6KG51bGwhPWEmJih4LnZhbHVlPWEpLGIoeC52YWx1ZSkpO2Z1bmN0aW9uIGIoeCl7dmFyIGE9JzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGI9JzxzcGFuIGNsYXNzPSJvMzAiPuKAicK24oCJPC9zcGFuPic7cmV0dXJuIHgubGVuZ3RoPjE0MD9hKz14LnRydW5jYXRlKDE0MCkuZXNjYXBlSFRNTCgpLnJlcGxhY2UoL1xuL2csYikrJyZxdW90OyA8c3BhbiBjbGFzcz0iaWxhYmVsIj4nK3gubGVuZ3RoKyIgY2hhcnM8L3NwYW4+IjphKz14LmVzY2FwZUhUTUwoKS5yZXBsYWNlKC9cbi9nLGIpKyc8c3BhbiBjbGFzcz0ianZhbC1icmFja2V0Ij4mcXVvdDs8L3NwYW4+JyxhfX0sZXZlbnRzOiJpbnB1dC5teSJ9fX0sJGZvdW5kOntpZDoiU3lzLkpTT04uRm91bmQiLENNOiJhdXRvIixGOnt9LHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7aW5pdDpmdW5jdGlvbih4KXt2YXIgYT10aGlzO2EuZGF0YTthLklubGluZUNNKHgsYSl9LGJpbmQ6ZnVuY3Rpb24oeCxhKXt0aGlzLmxhYmVsV2lkdGg7dmFyIGIsYz14LnZhbHVlO3JldHVybiA4Jnguc3RhdGUmJnRoaXMuUlQoIlNlYXJjaFJlIik/Wyc8c3BhbiBjbGFzcz0ianZhbC1icmFja2V0Ij4mcXVvdDs8L3NwYW4+JywoYj1jLnJlcGxhY2UodGhpcy5SVCgiU2VhcmNoUmUiKSwi77+xJDHvv7EiKS5zcGxpdCgi77+xIikpWzBdLnRydW5jYXRlKDE0MCwibGVmdCIsIuKApiIpLmVzY2FwZUhUTUwoKSwnPHNwYW4gY2xhc3M9Imp2YWwtZm91bmQta2V5Ij4nK2JbMV0uZXNjYXBlSFRNTCgpKyI8L3NwYW4+IixiWzJdLnRydW5jYXRlKDE0MCwicmlnaHQiLCLigKYiKS5lc2NhcGVIVE1MKCksJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGMubGVuZ3RoPjI4MD8nPHNwYW4gY2xhc3M9ImlsYWJlbCI+JytjLmxlbmd0aCsiIGNoYXJzPC9zcGFuPiI6IiJdLmpvaW4oIiIpOjIhPXguc3RhdGU/ZCh4LnZhbHVlKToobnVsbCE9YSYmKHgudmFsdWU9YSksZCh4LnZhbHVlKSk7ZnVuY3Rpb24gZCh4KXt2YXIgYT0nPHNwYW4gY2xhc3M9Imp2YWwtYnJhY2tldCI+JnF1b3Q7PC9zcGFuPic7cmV0dXJuIHgubGVuZ3RoPjE0MD9hKz14LnRydW5jYXRlKDE0MCkuZXNjYXBlSFRNTCgpKycmcXVvdDsgPHNwYW4gY2xhc3M9ImlsYWJlbCI+Jyt4Lmxlbmd0aCsiIGNoYXJzPC9zcGFuPiI6YSs9eC5lc2NhcGVIVE1MKCkrJzxzcGFuIGNsYXNzPSJqdmFsLWJyYWNrZXQiPiZxdW90Ozwvc3Bhbj4nLGF9fSxldmVudHM6ImlucHV0Lm15In19fSwkZnVuY3Rpb246e2lkOiJTeXMuSlNPTi5GdW5jdGlvbiIsQ006InRleHQvamF2YXNjcmlwdCIsRjp7fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzO2IuZGF0YTtiLklubGluZUNNKHgsYil9LGJpbmQ6ZnVuY3Rpb24oeCxhKXtpZigyIT14LnN0YXRlKXt2YXIgYj0iIixjPS9eW1xzXHJcblx0XSpcKD9bXHNcclxuXHRdKmZ1bmN0aW9uLyxkPS9bXHNcclxuXHRdKlwpW1xzXHJcblx0XSokLztpZih4LnZhbHVlLmxlbmd0aD4xMDApe3ZhciBlPXgudmFsdWUuc3BsaXQoIikiLDEpWzBdO2IrPVsnPHNwYW4gY2xhc3M9Imp2YWwtZnVuY3Rpb24iPmZ1bmN0aW9uIDwvc3Bhbj4gJyxlLnJlcGxhY2UoYywiIikuc3BsaXQoIigiKVswXS50cmltKCksIigiLGUuc3BsaXQoIigiKVsxXSsiKSB7IiwnIDxzcGFuIGNsYXNzPSJpbGFiZWwgbGgxNDAiPicsKHgudmFsdWUubWF0Y2goL1tcclxuXSsvZyl8fCIiKS5sZW5ndGgrMSsiIExPQywgIix4LnZhbHVlLmxlbmd0aCsiIGNoYXJzIiwiPC9zcGFuPiAiLCJ9Il0uam9pbigiIil9ZWxzZSBiPSc8c3BhbiBjbGFzcz0ianZhbC1mdW5jdGlvbiI+ZnVuY3Rpb248L3NwYW4+Jyt4LnZhbHVlLnJlcGxhY2UoYywiIikucmVwbGFjZShkLCIiKS5lc2NhcGVIVE1MKCk7cmV0dXJuIGJ9cmV0dXJuIG51bGwhPWEmJih4LnZhbHVlPWEpLHgudmFsdWV9LGV2ZW50czoiaW5wdXQubXkifX19LCRiYXNlNjQ6e2lkOiJTeXMuSlNPTi5CYXNlNjQiLENNOiJiNjQiLEY6e30sdWk6eyIuaWtleSI6e30sIi5pdmFsdWUiOntpbml0OmZ1bmN0aW9uKHgsYSl7dmFyIGI9dGhpcztiLmRhdGE7Yi5JbmxpbmVDTSh4LGIpfSxiaW5kOmZ1bmN0aW9uKHgsYSxiKXt2YXIgYz0iIixkPXRoaXMuUlQoIkJsb2JzIiksZT0vXmltYWdlXC8vLnRlc3QoeC5taW1lKyIiKSYmeC52YWx1ZS5sZW5ndGg8NWU1P2RbeC5oYXNoXTpudWxsLGY9IiI7aWYoMiE9eC5zdGF0ZSl7dmFyIGc9Yi53aWR0aCgpO2U/KGMrPVsnPGEgaHJlZj0iJytlKyciIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iYmFzZTY0aW1hZ2UiPicsJzxpbWcgc3JjPSInK2UrJyIgY2xhc3M9ImZsIG1yMTAiLz4nLCI8L2E+Il0uam9pbigiIiksZy09ODApOngubWltZSYmeC5mbmFtZSYmKGY9eC5mbmFtZXx8InVudGl0bGVkLmJpbiIsYys9JzxhIGhyZWY9IicrZFt4Lmhhc2hdKyciICBjbGFzcz0iYmFzZTY0aWNvIHc1NSBoNTUgdGFjIGRpYiB2YXQgbXIxMCBsZ3JheSBmczIwMCBiZy1sZ3JheSBicjIiIGRvd25sb2FkPSInK2YrJyIgIHRpdGxlPSJEb3dubG9hZCAnK2YrJyIgIHN0eWxlPSJsaW5lLWhlaWdodDo1NXB4Ij48c3BhbiBjbGFzcz0iJysoeC5pY298fCJmaS1hcmNoaXZlIikrJyI+PC9zcGFuPjwvYT4nLGctPTgwKTt2YXIgaD0oZy8xMCoyLjV8MCkuY2xhbXAoMTQwLDYwMCk7cmV0dXJuIGMrPSc8ZGl2IGNsYXNzPSJkaWIgdmF0IGJhc2U2NHN0cmluZyI+JyxjKz0nIicseC52YWx1ZS5sZW5ndGg+aD9jKz14LnZhbHVlLnRydW5jYXRlKGgpKyciJm5ic3A7PGEgaHJlZj0iJytkW3guaGFzaF0rJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJpbGFiZWwgdGRuIj4nKyhlPyJPcGVuIjoiRG93bmxvYWQiKSsiJm5ic3A7Iit4LnNpemUubWV0cmljKDIpKyJiPC9hPiI6Yys9eC52YWx1ZSsnIicsZSYmKGMrPSI8L2Rpdj4iKSxjfXJldHVybiBudWxsIT1hJiYoeC52YWx1ZT1hKSx4LnZhbHVlfSxldmVudHM6WyJpbnB1dC5teSJdfX0sTWltZTp7ImFwcGxpY2F0aW9uL3gtY29tcHJlc3NlZCI6L1wuemlwJC9pLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwiOi9cLnhsc3g/JC9pLCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iOi9cLihjZHJ8ZGF0fHJhcikkL2ksImFwcGxpY2F0aW9uL2pzb24iOi9cLihqc258anNvbikkL2ksImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiOi9cLmpzJC9pLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCI6L1wuZG9jeCQvaSwiYXBwbGljYXRpb24vbXN3b3JkIjovXC5kb2M/JC9pLCJhcHBsaWNhdGlvbi9wZGYiOi9cLnBkZiQvaSwidGV4dC9wbGFpbiI6L1wudHh0JC9pLCJ0ZXh0L2h0bWwiOi9cLihbeF0/aHRtW2xdPykkL2ksInRleHQveG1sIjovXC4oeG1sfHhzZHx4c2Z8eHNsfHhzbHQpJC9pLCJpbWFnZS9wbmciOi9cLnBuZyQvaSwiaW1hZ2UvanBlZyI6L1wuanBlP2ckL2ksImltYWdlL2dpZiI6L1wuZ2lmJC9pLCJpbWFnZS9zdmcreG1sIjovXC5zdmckL2l9LEljbzp7ImZpLXBob3RvIjovXC4ocG5nfGpwW2VdP2d8Z2lmfHRpZltmXT98Ym1wfHN2ZykkL2ksImZpLXNvY2lhbC1hZG9iZSI6L1wuKHBkZnxhaXxwc2QpJC9pLCJmaS1wYWdlLWRvYyI6L1wuKGRvY1t4XT98dHh0fHJ0ZikkL2ksImZpLWdyYXBoLXBpZSI6L1wuKHhsc1t4XT98Y3N2KSQvaSwiZmktYXJjaGl2ZSI6L1wuKHppcHxyYXJ8N3p8N3ppcCkkL2ksImZpLWh0bWw1IHBsMiI6L1wuKGh0bVtsXXxwaHApJC9pLCJmaS1jc3MzIHBsMiI6L1wuY3NzJC9pLCJmaS13aWRnZXQiOi9cLihqc1tvbl0/fHBocHxhc3B8amFyfGN8ZXJsKSQvaSwiZmktc291bmQiOi9cLih3YXZ8YWlmZnxtcDN8b2dnfG1wZWczKSQvaX0saW5pdDpmdW5jdGlvbih4KXt2YXIgYSxiPXRoaXMsYz1iLmRhdGE7aWYoeC5hZGRDbGFzcygiZWQtbm9kZS0iK2IuUGF0aFNpZyhjLnBhdGgsYy5rZXkpKSx4Lmh0bWwoYi5IVE1MKSwhYy5zaWcpe3ZhciBkPS9eZGF0YTppbWFnZVwvKGpwZWd8cG5nfGdpZnxzdmdcK3htbCk7YmFzZTY0LC8sZT1kLnRlc3QoYy52YWx1ZSksZj1lP2MudmFsdWUucmVwbGFjZShkLCIiKTpjLnZhbHVlO2lmKGMuc2l6ZT0oZi5sZW5ndGgvNCozKS5mbG9vcigpLGMuc2lnPWE9d2luZG93LmF0b2IoZi50byg0MDApKSxlKWMubWltZT1jLnZhbHVlLnRvKDMwKS5zcGxpdCgiO2Jhc2U2NCIpWzBdLnNwbGl0KCI6IilbMV07ZWxzZSBpZigiw7/DmMO/w6AiPT09YS50byg0KT9jLm1pbWU9ImltYWdlL2pwZWciOiLCiVBORyI9PT1hLnRvKDQpP2MubWltZT0iaW1hZ2UvcG5nIjovXjxcP3htbC8udGVzdChhKSYmLzxzdmdcc3ZlcnNpb25ccyo9XHMqIjFcLlxkIi8udGVzdChhKSYmKGMubWltZT0iaW1hZ2Uvc3ZnK3htbCIpLCFjLm1pbWUmJjM9PWMucGF0aC5sZW5ndGgmJiJfYXR0YWNobWVudHMiPT1jLnBhdGhbMV0pe3ZhciBnLGg9ImZpLXBhcGVyY2xpcCIsaT0iYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixqPWMucGF0aFsyXTtmb3IoZyBpbiBiLk1pbWUpYi5NaW1lW2ddLnRlc3QoaikmJihpPWcpO2ZvcihnIGluIGIuSWNvKWIuSWNvW2ddLnRlc3QoaikmJihoPWcpO2MubWltZT1pLGMuaWNvPWgsYy5mbmFtZT1qfWMubWltZT1jLm1pbWV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLGIuUlQoIkJsb2JzIilbYy5oYXNoXT1VUkwuY3JlYXRlT2JqZWN0VVJMKCQubXkuZi5iYXNlNjQyYmxvYihjLnZhbHVlLnJlcGxhY2UoL15kYXRhOmltYWdlXC8oanBlZ3xwbmd8Z2lmfHN2Z1wreG1sKTtiYXNlNjQsLywiIiksbnVsbCxjLm1pbWUpKX19fSwkbnVtYmVyOntpZDoiU3lzLkpTT04uTnVtYmVyIixDTToibnVtYmVyIixGOntOMlM6ZnVuY3Rpb24oeCl7dmFyIGE9JzxzcGFuIGNsYXNzPSJqdmFsLW51bWJlciI+Jyt4LnRvU3RyaW5nKCkrIjwvc3Bhbj4iO3JldHVybiB4PDFlMTMmJng+OGUxMSYmeD09PSgreCkuZmxvb3IoKSYmKGErPScgPHNwYW4gY2xhc3M9ImlsYWJlbCB4Z3JheSBsaDE0MCB2YXQgbXQ0Ij48c3BhbiBjbGFzcz0iZmktY2xvY2siPjwvc3Bhbj4gJytEYXRlLmNyZWF0ZSh4KS5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0sIHtIfTp7bW19Ontzc30sIExvY2FsIikrIjwvc3Bhbj4iKSxhfSxDYWxjOmZ1bmN0aW9uKHMscHJldil7aWYoIWlzTmFOKHMpKXJldHVybitzO3ZhciBuPW51bGw7dHJ5e249ZXZhbCgiKCIrcysiKSIpfWNhdGNoKHgpe31yZXR1cm4gbnVsbD09PW58fGlzTmFOKG4pP3ByZXY6K259fSx1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2luaXQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj10aGlzLGM9Yi5kYXRhO2IuSW5saW5lQ00oeCxiLGZ1bmN0aW9uKGEsZCl7Yy52YWx1ZT1iLkYuQ2FsYyhhLGQpLHgudHJpZ2dlcigiY2hlY2siKX0pfSxiaW5kOmZ1bmN0aW9uKHgsYSl7dmFyIGIsYz14LnZhbHVlKyIiO3JldHVybiA4Jnguc3RhdGUmJnRoaXMuUlQoIlNlYXJjaFJlIik/WyhiPWMucmVwbGFjZSh0aGlzLlJUKCJTZWFyY2hSZSIpLCLvv7EkMe+/sSIpLnNwbGl0KCLvv7EiKSlbMF0udHJ1bmNhdGUoMTQwLCJsZWZ0Iiwi4oCmIikuZXNjYXBlSFRNTCgpLCc8c3BhbiBjbGFzcz0ianZhbC1mb3VuZC1rZXkiPicrYlsxXS5lc2NhcGVIVE1MKCkrIjwvc3Bhbj4iLGJbMl0udHJ1bmNhdGUoMTQwLCJyaWdodCIsIuKApiIpLmVzY2FwZUhUTUwoKV0uam9pbigiIik6MT09eC5zdGF0ZXx8ND09eC5zdGF0ZT90aGlzLkYuTjJTKHgudmFsdWUpOihudWxsIT1hJiYoeC52YWx1ZT10aGlzLkYuQ2FsYyhhLHgudmFsdWUpKSx0aGlzLkYuTjJTKHgudmFsdWUpKX0sZXZlbnRzOiJpbnB1dC5teSJ9fX0sJGJvb2xlYW46e2lkOiJTeXMuSlNPTi5Cb29sZWFuIix1aTp7Ii5pa2V5Ijp7fSwiLml2YWx1ZSI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXtyZXR1cm4gbnVsbCE9YSYmKHgudmFsdWU9IXgudmFsdWUsdGhpcy5Ob2RlVXBkYXRlZChbeC5wYXRoLHgua2V5XSwheC52YWx1ZSx4LnZhbHVlKSksdGhpcy5WW3gudmFsdWU/MTowXX0sZXZlbnRzOiJjbGljay5teSJ9fSxWOlsnPHNwYW4gY2xhc3M9Imlib29sZWFuLXRhZyBncmF5IG1sLTkiPnRydWU8L3NwYW4+PHNwYW4gY2xhc3M9Imlib29sZWFuLXRhZyB5ZWxsb3ctMSBiZy15ZWxsb3c1Ij5mYWxzZTwvc3Bhbj4nLCc8c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIGJsdWUtMSBiZy1ibHVlNCBvODAgbWwtOSI+dHJ1ZTwvc3Bhbj48c3BhbiBjbGFzcz0iaWJvb2xlYW4tdGFnIGdyYXkiPmZhbHNlPC9zcGFuPiddfSwkbnVsbDp7aWQ6IlN5cy5KU09OLk51bGwiLHVpOnsiLmlrZXkiOnt9LCIuaXZhbHVlIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybic8c3BhbiBjbGFzcz0icmVkIG84MCI+bnVsbDwvc3Bhbj4nfX19fSxzdGFtcDoxNjQyODYwNjE5MTc1fSwiY3cuQ291Y2guTW9uaXRvciI6e2lkOiJjdy5Db3VjaC5Nb25pdG9yIixidWlsZDo2NCxWZXJzaW9uOiIyLjEiLHBhcmFtczp7cmVzdHlsZTo0MCxzdHJpY3Q6ITB9LGRhdGE6e3NlYXJjaDoiIixjbWQ6IiIsZG9jOntuYW1lOiJVbm5hbWVkIG1lc2giLHR5cGU6ImNvdWNoc3RhdHMiLGNyeXB0bzoiLSIsbm9kZXM6W10sbG9nOltdfX0sQ29uZmlnOntzdGF0c1NjYWxlWToxLjUsc3RhdHNNYXhHcmFwaHM6NCxzdGF0c01heFRpbWVmcmFtZTo5MDAsc3RhdHNSZWZyZXNoOjEwLHNlcmllTWF4TGVuZ3RoOjFlNH0sQ2ZnOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQ29uZmlnfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj0oYS5kYXRhLGEuZGF0YS5kb2MpO2lmKGEuTW91bnQoeCksYi5ub2Rlcy5sZW5ndGh8fGIubm9kZXMucHVzaCgkLmV4dGVuZCghMCx7fSxhLmRlZmF1bHROb2Rlc1siMS54Il0pKSxiLm5vZGVzLmZvckVhY2goYS5BcHBseVByZXNldHMpLFsiTm9kZSIsIlNlcmllIiwiR2F1Z2UiXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe1sic2VsZWN0MiIsIlJlcSJdLmZvckVhY2goZnVuY3Rpb24oYil7YVt4XVtiXT1hW2JdfSl9KSx4Lmh0bWwoYS5IVE1MKSx4LnRoZW4oZnVuY3Rpb24oKXthLlRpbWVyPWZ1bmN0aW9uKCl7JC5teS5yYWRpbygiY291Y2hfbW9uaXRvcl90aW1lciIsRGF0ZS5ub3coKSl9LmV2ZXJ5KDJlMyl9LmRlYm91bmNlKDEwMCkpLGN3LmxpYi5zY3JvbGxZJiZjdy5saWIuc2Nyb2xsWSh4KSwhY3cubWUoKSlyZXR1cm4gJC5EZWZlcnJlZCgpLnJlamVjdCg0MDEsIllvdSBuZWVkIHRvIGxvZyBpbiB0byBzZWUgc3RhdHMiLHtvazohMSxyZWFzb246ImNvbmZpZyJ9KS5wcm9taXNlKCl9LHVpOnsiI21uYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybih4LmRvYy5uYW1lfHwiVW50aXRsZWQgbW9uaXRvcmluZyBncm91cCIpLmVzY2FwZUhUTUwoKX19LCIjbm9kZXMiOntiaW5kOiJkb2Mubm9kZXMiLGxpc3Q6JzxkaXYgY2xhc3M9Im5ub2RlIj48L2Rpdj4nLGlkOlsibmFtZSJdLG1hbmlmZXN0OmZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLk5vZGV9LGNzczp7bm90aXRsZTpmdW5jdGlvbih4KXtyZXR1cm4geC5kb2Mubm9kZXMubGVuZ3RoPDJ9fX0sIiNidG4tdXBkYXRlIjp7YmluZDpmdW5jdGlvbih4LGEpe251bGwhPWEmJiQubXkucmFkaW8oImNvdWNoX21vbml0b3JfcmVmcmVzaCIsITApfX19LGRpZTpmdW5jdGlvbigpe3RoaXMuVGltZXIuY2FuY2VsKCl9LHNlbGVjdDI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4geC5zZWxlY3QyKGEpfSxBdXRvU2F2ZU5vZGU6ZnVuY3Rpb24oKXt9LExzOmZ1bmN0aW9uKCl7fSxNb3VudDpmdW5jdGlvbigpe30sSFRNTDonPGRpdiBpZD0iYS1oZWFkIiBjbGFzcz0iYXBwLWhlYWQgeGdyYXkgbncgcHQxOCBwbDIwIHByMjAgbGgxNjAiPjxkaXYgY2xhc3M9ImZyIHcxMnAgZnM5NSBtbDYgaGlkZSI+PGRpdiBjbGFzcz0iZmktbWFnbmlmeWluZy1nbGFzcyB4Z3JheSBvNTAgZnM5NSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogKzE7IGxlZnQ6IDhweDt0b3A6IDAuMmVtOyI+PC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJhcHAtc2VhcmNoIiBjbGFzcz0idWktc2VhcmNoIHcxMDBwIG1sMCBtcjAgbXQwIHByMTAiIHBsYWNlaG9sZGVyPSJTZWFyY2giIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZy1yaWdodDoxOXB4IWltcG9ydGFudDsiPjxzcGFuIGNsYXNzPSJmaS14IGZzODAgZGliIHZhdCBwdDIgYmx1ZSB1aS1zZWFyY2gtY2xlYXIiIHN0eWxlPSJtYXJnaW4tbGVmdDotMTlweCFpbXBvcnRhbnQ7IiBvbmNsaWNrPSIkKHRoaXMpLnNpYmxpbmdzKFwnaW5wdXQ6ZXEoMClcJykudmFsKFwnXCcpLmJsdXIoKSI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQiPjxidXR0b24gaWQ9ImJ0bi11cGRhdGUiIGNsYXNzPSJ3NDAgbXIyIiB0aXRsZT0iVXBkYXRlIj48c3BhbiBjbGFzcz0iZmktbG9vcCI+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1uYW1lIiBjbGFzcz0iZGliIGZzMTgwIGxoMTIwIG10LTIgYm9sZGVyIHZhdCBudyBvaCBlbGwgcHI2IHBsNiIgc3R5bGU9IndpZHRoOmNhbGMoMzUlIC0gNDJweCk7Ij48L2Rpdj48ZGl2IGlkPSJtY29udHJvbHMiIGNsYXNzPSJmciBub2N3bWluIHRhciIgc3R5bGU9IndpZHRoOmNhbGMoNTMlIC0gNnB4KTsiPjxkaXYgY2xhc3M9ImZsIj48YnV0dG9uIGlkPSJidG4tYWRkIiBjbGFzcz0idGVhbCBtcjEwIHRhYyI+PHNwYW4gY2xhc3M9ImZpLXBsdXMgbzUwIj48L3NwYW4+IEFkZC4uLjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImRpYiB2YXQgdzYwcCB0YWwiIHN0eWxlPSJtYXgtd2lkdGg6MjUwcHg7Ij48aW5wdXQgaWQ9ImVuY3J5cHQiIHR5cGU9InRleHQiIGNsYXNzPSJ3MTAwcCBmczExMCB2YXQgcHIyIj48L2Rpdj48YnV0dG9uIGlkPSJidG4tc2F2ZSIgY2xhc3M9ImdyZWVuIG1yMiB0YWMiPsKgU2F2ZcKgPC9idXR0b24+PGJ1dHRvbiBpZD0iYnRuLWNsb3NlIiBjbGFzcz0idGFjIj7CoENsb3NlwqA8L2J1dHRvbj48L2Rpdj48L2Rpdj48c2VjdGlvbiBpZD0ibm9kZS10aWxlcyIgY2xhc3M9InBhbmVsaGVpZ2h0IHBsMjAgZmVhdGhlciB3MTAwcCI+PGRpdiBpZD0ibm9kZXMiIGNsYXNzPSJubm9kZXMgeGdyYXkgdzEwMHAgcGFuZWxoZWlnaHQiPjwvZGl2Pjwvc2VjdGlvbj4nLFByZXNldHM6e1JQUzp7bmFtZToiUmVxdWVzdCByYXRlIixtb2RlOiJzdW0iLG5hbWVzOlsiUmVxdWVzdCByYXRlIiwiMjBYIiwiNDBYIiwiNTAwIl0sdW5pdHM6WyJyZXEvcyIsInJlcSIsInJlcSIsInJlcSJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg1MCwyMDksMCwwLjY5KSIsIiByZ2JhKDI1NSwxMjMsMCwwLjY5KSIsIiByZ2JhKDIyOSwwLDIzNSwwLjY5KSJdLGZpZWxkczpbWyIyMDAiLCIyMDEiLCIyMDIiLCI0MDAiLCI0MDEiLCI0MDMiLCI0MDQiLCI0MDkiLCI1MDAiXSxbIjIwMCIsIjIwMSIsIjIwMiJdLFsiNDAwIiwiNDAxIiwiNDAzIiwiNDA0IiwiNDA5Il0sWyI1MDAiXV0scm93czpbWzBdLFswXSxbMF0sWzBdXSx0aW1lOlsxMF19LERCUlc6e25hbWU6IkRCcyByZWFkcy93cml0ZXMgcmF0ZSIsbW9kZToic3VtIixuYW1lczpbIlJXIHJhdGUiLCJSZWFkcyIsIldyaXRlcyIsIlZpZXcgcmVhZHMiXSx1bml0czpbIkRCIG9wcy9zIiwib3BzIiwib3BzIiwib3BzIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDM1LDEzNywyNTUsMC41OCkiLCIgcmdiYSgyNTUsMzgsMTE3LDAuNTgpIiwiIHJnYmEoMjU1LDE5NSwwLDAuOCkiXSxmaWVsZHM6W1siZGF0YWJhc2VfcmVhZHMiLCJkYXRhYmFzZV93cml0ZXMiXSxbImRhdGFiYXNlX3JlYWRzIl0sWyJkYXRhYmFzZV93cml0ZXMiXSxbInZpZXdfcmVhZHMiXV0scm93czpbWzBdLFswXSxbMF1dLHRpbWU6WzEwXX0sQVVUSDp7bmFtZToiQXV0aCBoaXRzIGFuZCBtaXNzZXMiLG1vZGU6InN1bSIsbmFtZXM6WyJBdXRoIGhpdHMvbWlzc2VzIHJwcyIsIkhpdHMiLCJNaXNzZXMiXSx1bml0czpbImF1dGggcnBzIiwicmVxIiwicmVxIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDIwLDIzMiwwLDAuNjkpIiwiIHJnYmEoMjU1LDM4LDM4LDAuNjkpIl0sZmllbGRzOltbImF1dGhfY2FjaGVfaGl0cyIsImF1dGhfY2FjaGVfbWlzc2VzIl0sWyJhdXRoX2NhY2hlX2hpdHMiXSxbImF1dGhfY2FjaGVfbWlzc2VzIl1dLHJvd3M6W1swXSxbMF0sWzBdXSx0aW1lOlsxMF19LEZFRURTOntuYW1lOiJOdW1iZXIgb2YgY29udGludW91cyBfY2hhbmdlcyBmZWVkcyBhY3RpdmUiLG5hbWVzOlsiQ29udGludW91cyBfY2hhbmdlcyBmZWVkcyIsIkZlZWRzIl0sdW5pdHM6WyJzeW5jIGZlZWRzIiwiIl0sY29sb3JzOlsiaW5oZXJpdCIsIiByZ2JhKDg2LDEyMywxNzIsMC42MikiXSxmaWVsZHM6W1siY2xpZW50c19yZXF1ZXN0aW5nX2NoYW5nZXMiXSxbImNsaWVudHNfcmVxdWVzdGluZ19jaGFuZ2VzIl1dLHJvd3M6W1swXSxbMF1dLHRpbWU6WzEwXSxtb2RlOiJjdXJyZW50In0sRklMRVM6e25hbWU6Ik9wZW4gT1MgZmlsZXMiLG5hbWVzOlsiRmlsZXMiLCJGaWxlcyJdLHVuaXRzOlsib3BlbiBmaWxlcyIsIiJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg4NiwxMjMsMTcyLDAuNjIpIl0sZmllbGRzOltbIm9wZW5fb3NfZmlsZXMiXSxbIm9wZW5fb3NfZmlsZXMiXV0scm93czpbWzBdLFswXV0sdGltZTpbMTBdLG1vZGU6ImN1cnJlbnQifSxSQU06e25hbWU6IlJBTSIsbmFtZXM6WyJSQU0sIE1iIiwiTm9kZSBSQU0sIE1iIl0sdW5pdHM6WyJNYiBSQU0iLCJNYiJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg2MywxNjksMTU4LDAuNjIpIl0sZGVub21pbmF0b3I6MTA0ODU3NixmaWVsZHM6W1siYXRvbSIsImJpbmFyeSIsImNvZGUiLCJldHMiLCJvdGhlciIsInByb2Nlc3NlcyJdLFsiYXRvbSIsImJpbmFyeSIsImNvZGUiLCJldHMiLCJvdGhlciIsInByb2Nlc3NlcyJdXSxyb3dzOltbMF0sWzBdXSx0aW1lOlsxMF0sbW9kZToiY3VycmVudCJ9LFVQVElNRTp7bmFtZToiVXB0aW1lIixuYW1lczpbIlVwdGltZSwgZGF5cyIsIkRheXMiXSx1bml0czpbImRheXMgdXB0aW1lIiwiZGF5cyJdLGNvbG9yczpbImluaGVyaXQiLCIgcmdiYSg2MywxNjksMTU4LDAuNjIpIl0sZGVub21pbmF0b3I6ODY0MDAsZmllbGRzOltbInVwdGltZSJdLFsidXB0aW1lIl1dLHJvd3M6W1swXSxbMF1dLHRpbWU6WzEwXSxtb2RlOiJjdXJyZW50In19LGRlZmF1bHROb2Rlczp7IjEueCI6e25hbWU6Ik5vZGUgMSIsY291Y2g6IjEueCIsdXJsOiIvIixoZWFsdGg6IiIsZ2F1Z2VzOlt7bmFtZToiT3BlbiBmaWxlcyIscHJlc2V0OiJGSUxFUyJ9LHtuYW1lOiJBY3RpdmUgX2NoYW5nZXMgZmVlZHMiLHByZXNldDoiRkVFRFMifV0sc2VyaWVzOlt7bmFtZToiUmVxdWVzdCByYXRlIixwcmVzZXQ6IlJQUyJ9LHtuYW1lOiJEQnMgUi9XIHJhdGUiLHByZXNldDoiREJSVyJ9XX0sIjIueCI6e25hbWU6Ik5vZGUgMSIsY291Y2g6IjIueCIsdXJsOiIvIixoZWFsdGg6IiIsZ2F1Z2VzOlt7bmFtZToiT3BlbiBmaWxlcyIscHJlc2V0OiJGSUxFUyJ9LHtuYW1lOiJBY3RpdmUgX2NoYW5nZXMgZmVlZHMiLHByZXNldDoiRkVFRFMifSx7bmFtZToiVXB0aW1lIixwcmVzZXQ6IlVQVElNRSJ9XSxzZXJpZXM6W3tuYW1lOiJSZXF1ZXN0IHJhdGUiLHByZXNldDoiUlBTIn0se25hbWU6IkRCcyBSL1cgcmF0ZSIscHJlc2V0OiJEQlJXIn0se25hbWU6IlJBTSIscHJlc2V0OiJSQU0ifV19fSxSZXE6ZnVuY3Rpb24oeCl7dmFyIGE9JC5leHRlbmQoITAse30seCk7cmV0dXJuICQuYWpheChhKX0sQXBwbHlQcmVzZXRzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMuUHJlc2V0cyxiPU9iamVjdC5pc0FycmF5O3JldHVybih4LnNlcmllc3x8W10pLmZvckVhY2goYyksKHguZ2F1Z2VzfHxbXSkuZm9yRWFjaChjKSx4O2Z1bmN0aW9uIGMoYyl7aWYoYy5wcmVzZXQmJmFbYy5wcmVzZXRdKXt2YXIgZD1hW2MucHJlc2V0XSxlPU9iamVjdC5zZWxlY3QoYyxbInJvd3MiLCJ0aW1lIl0pO3JldHVybiAkLmV4dGVuZChjLE9iamVjdC5jbG9uZShkLCEwKSxlKSxiKGMucm93cykmJmIoYy50aW1lKXx8KGMucm93cz1PYmplY3QuY2xvbmUoZC5yb3dzLCEwKSxjLnRpbWU9WzEwXSksYy5yb3dzLmxlbmd0aDxjLmZpZWxkcy5sZW5ndGgmJihjLnJvd3M9Yy5yb3dzLmFkZChPYmplY3QuY2xvbmUoZC5yb3dzLCEwKSkudG8oYy5maWVsZHMubGVuZ3RoKSkseH19fSxHZW5BeGlzOmZ1bmN0aW9uKHgpe3ZhciBhPXguQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsYj02MCp4LkNmZygpLnN0YXRzU2NhbGVZLGM9eC5ULlBpdm90WCxkPXguVC5QaXZvdFksZT14LlQuUGl2b3RUZXh0LGY9W10sZz1bXTtyZXR1cm4geC5BeGlzLmg2MD09Yj94LkF4aXM6KDcuLnRpbWVzKGZ1bmN0aW9uKHgpe2YudW5zaGlmdChjLmFzc2lnbigiTTAsezJ9IEx7MX0sezJ9ICIuYXNzaWduKGErMjAwLHgqKGIvNikrLjUpLCIgcmdiYSgxNTgsMTc0LDE5MiwiKyh4PzY9PXg/IjAuNCkiOiIwLjE1KSI6IjAuMjUpIikpKX0pLChhLzYwKS50aW1lcyhmdW5jdGlvbih4KXt2YXIgYT14KzE7Zy51bnNoaWZ0KGQuYXNzaWduKCJNezF9LDAgTHsxfSx7Mn0gIi5hc3NpZ24oNjAqYSxiKSwiIHJnYmEoMTU4LDE3NCwxOTIsMC4zNSkiKStlLmFzc2lnbig2MCphKzIsIuKIkiIrYSsibWluIikpfSkseC5BeGlzPXtoNjA6YixheGlzeDpmWzBdLHBpdm90c3g6Zi5zbGljZSgxKS5qb2luKCIiKSxwaXZvdHN5Omcuam9pbigiIil9KX0sR2VuR3JhcGhzOmZ1bmN0aW9uKHgpe3ZhciBhPXguZGF0YSxiPXguaEJhcixjPXguQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsZD14LkNmZygpLnN0YXRzTWF4R3JhcGhzLGU9eC5DZmcoKS5zdGF0c1NjYWxlWSxmPTYwKmUsZz1hLmZpZWxkcy5sZW5ndGgsaD1hLnJvd3Muc2xpY2UoMCksaT1hLnRpbWUuc2xpY2UoMSksaj1hLmNvbG9ycyxrPWEubmFtZXMsbD1hLnVuaXRzLG09YS5kZW5vbWluYXRvcnx8MSxuPWEudGltZVswXS8xMCxvPXguQXhpcyxwPW8uYXhpc3gscT1vLnBpdm90c3gscj1vLnBpdm90c3kscz14LlQuQmFyLHQ9eC5ULkdyYXBoLHU9eC5ULkxpbmUsdj14LlQuQmFyVGlwLHc9W107RSgpLGkubGVuZ3RoLnRpbWVzKGZ1bmN0aW9uKHgpe3ZhciBqPWlbeF0vMTAsbz0xLHA9W107aWYobi09aixqPmMpe2lmKHcubGVuZ3RoPj1kKXJldHVybjt2YXIgcT1FKG4saik7bz1xL2osaj1xfWcudGltZXMoZnVuY3Rpb24oZCl7aWYoZCl7dmFyIGc9aFtkXVt4KzFdfHwwLGk9d1swXS5saW5lc1tkXSxrPXdbMF0uZHQsbD13WzBdLmR4O2lmKHAucHVzaChnKSwhKGwraz4yKmMrMjAwKSl7dmFyIG49ImN1cnJlbnQiPT1hLm1vZGU/ZisuNS1iKGcqby9tLDEpKmU6ZisxLWIoZypvL20saikqZSouOTkxODtpKz1pPyJMezF9LHszfSBMezJ9LHszfSAiLmFzc2lnbihEKGwraysoai8zKS5jbGFtcCgwLDMpKSxEKGwraytqKSxuKToiTXsxfSx7M30gTHsyfSx7M30gIi5hc3NpZ24oRChsKSxEKGwraytqKSxuKSx3WzBdLmxpbmVzW2RdPWl9fX0pLHdbMF0uZHQrPWosd1swXS5jb3ZlcnMrPXMuYXNzaWduKCIiLGosdi5hc3NpZ24oe3RpbWU6RGF0ZS5jcmVhdGUoMWUzKihuK2opKS5mb3JtYXQoIntkfSB7TW9ufSB7eXl5eX0sIHtISH06e21tfTp7c3N9IiksZHVyOiJEdXJhdGlvbjogIitqLnJvdW5kKDEpKyJzIixyb3dzOnAubWFwKGZ1bmN0aW9uKHgsYSl7cmV0dXJuIGtbYSsxXSsiOiAiKyhvKngvbSkucm91bmQoMSkrIiAiK2xbYSsxXX0pLmpvaW4oIlxuIil9KSl9KSx3LnJldmVyc2UoKTt2YXIgeT14Lm15LnJvb3QoKS53aWR0aCgpfHwwLHo9KHk+MD8oeS0xMDAtNDEpLmNsYW1wKDMwMCwzZTMpOnguUHJldldpZHRoKXx8MzAwLEE9Ryh3WzBdLmR0KSxCPXdbMV0/d1sxXS5kdDowLEM9d1syXT93WzJdLmR0OjA7cmV0dXJuIHguUHJldldpZHRoPXosd1swXS53aWR0aD16LHo8NDUwP3cubGVuZ3RoPTE6ejw3MjA/Qj8oQj1CLmNsYW1wKDE1MCx6LzMpLHdbMF0ud2lkdGg9QT0oei1CKS5jbGFtcCgzMDAsMWU2KSx3WzFdLndpZHRoPXotQS0zMSx3Lmxlbmd0aD0yKTp3Lmxlbmd0aD0xOkImJiFDPyhCPUcoQi5jbGFtcCgxMjAsei8zKSksd1swXS53aWR0aD1BPSh6LUIpLmNsYW1wKDMwMCwxZTYpLHdbMV0ud2lkdGg9ei1BLTMxLHcubGVuZ3RoPTIpOkM/KHdbMV0ud2lkdGg9Qj1CLmNsYW1wKDEyMCx6LzMuNS0zMSksd1syXS53aWR0aD1DPUMuY2xhbXAoMTIwLHovMS44LUItNjEpLHdbMF0ud2lkdGg9ei1CLUMtNjEsdy5sZW5ndGg9Myk6dy5sZW5ndGg9MSx3LmZvckVhY2goRiksdztmdW5jdGlvbiBEKHgpe3JldHVybiB4LmNsYW1wKC1jLTIwMCxjKzIwMCkucm91bmQoMil9ZnVuY3Rpb24gRSh4LGEpe3ZhciBiPXtlbmQ6IiIsd2lkdGg6MCxkeDowLGR0OjAsbGluZXM6WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiXS50byhnKSxjb3ZlcnM6IiIsc3ZnOiIifSxjPTA7aWYoeCl7dmFyIGQ9RGF0ZS5jcmVhdGUoTWF0aC5yb3VuZCgxZTMqeCkpLmNsb25lKCEwKS5jbG9uZSghMCk7ZC5zZXRNaWxsaXNlY29uZHMoMCksZC5zZXRTZWNvbmRzKDApLGQuYWRkTWludXRlcygxKSxNYXRoLmFicyh4LWQudmFsdWVPZigpLzFlMyk8NSYmZC5hZGRNaW51dGVzKDEpLGM9TWF0aC5yb3VuZChkLnZhbHVlT2YoKS8xMDApLzEwLXgsYi5lbmQ9ZC5mb3JtYXQoJ3tISH06e21tfTxicj48c3BhbiBjbGFzcz0iZnM4MCBvNzAiPnt5eXl5fcK3e01NfcK3e2RkfTwvc3Bhbj4nKX1yZXR1cm4gdy51bnNoaWZ0KGIpLGN8fGF9ZnVuY3Rpb24gRih4LGEpe3guc3ZnPXQuYXNzaWduKHgud2lkdGgtMSxmKzEscSsoYT9yOiIiKSt4LmxpbmVzLm1hcChmdW5jdGlvbih4LGEpe3JldHVybiBhP3UuYXNzaWduKHgsalthXSk6IiJ9KS5qb2luKCIiKStwKX1mdW5jdGlvbiBHKHgpe3JldHVybiA2MCooTWF0aC5mbG9vcih4LzYwKSsxKX19LHN0eWxlOnsiIjoiZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjEuNGVtOyIsIiAjbm9kZS10aWxlcyI6IiIsIiAudzEycCI6IndpZHRoOjEyJTsiLCIgLncxOHAiOiJ3aWR0aDoxOCU7IiwiIC5ubm9kZXMiOnsiIjoicGFkZGluZzoxNnB4IDRweCAwcHggMHB4OyIsIiAubm5vZGUiOnsiIjpbImJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMjE5LDIzNCwwKTsgYm9yZGVyLXJhZGl1czogM3B4OyAiLCJwYWRkaW5nOjJweCAxNXB4IDEwcHggMTVweDsgbWFyZ2luOiAwcHggMTZweCAxNnB4IDA7YmFja2dyb3VuZDojZjRmOGZhOyJdLCIgLm5zZXJpZXMiOiJ3aWR0aDogY2FsYygxMDAlIC0gMTEwcHgpOyIsIiAubnRpdGxlIjoiYm9yZGVyLWJvdHRvbToxcHggZG90dGVkIHJnYmEoMTYwLDE3NiwxOTIsMC41Nik7IiwiIC5wYWxlYmciOiJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMCk7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzOyIsIiAuZ3VuaXRzIjoiZm9udC1zaXplOjEwNSU7IGxpbmUtaGVpZ2h0OjEuMmVtOyIsIiAuZ3ZhbCI6ImZvbnQtc2l6ZToxODAlOyBsaW5lLWhlaWdodDoxZW07IiwiIC5nbmFtZXMiOnsiIjoib3BhY2l0eTogMC4zOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IGZvbnQtc2l6ZTowLjdlbTsgbGluZS1oZWlnaHQ6MS4xNWVtOyBmb250LXdlaWdodDo1MDA7IiwiPnNwYW4iOiIgd2hpdGUtc3BhY2U6IG5vd3JhcDsifSwiLnJlZDEiOnsiIC5yaGlzdG8gLnJzaGltIjoiYm9yZGVyLWJvdHRvbToxcHggZG90dGVkICNmZjcxODA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTI3LDEyOSwwLjIpOyIsIiAucmhpc3RvIC5yc2hpbT5kaXYiOiJib3JkZXItdG9wOjFweCBkb3R0ZWQgcmdiYSgyNTUsMTI3LDEyOSwwLjcpOyJ9fSwiLm5vdGl0bGUiOnsiIC5udGl0bGUiOiJkaXNwbGF5Om5vbmU7IiwiIC5ubm9kZSI6InBhZGRpbmctdG9wOjhweDsifX0sIiAucmdhdWdlIjpmdW5jdGlvbigpe3ZhciB4PTYwKnRoaXMuQ2ZnKCkuc3RhdHNTY2FsZVk7cmV0dXJueyIiOiJkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLXRvcDogNXB4OyBoZWlnaHQ6ezF9cHg7ICIuYXNzaWduKHgrMTYpLCI6YWZ0ZXIiOlsnY29udGVudDoiIjsgaGVpZ2h0OnsxfXB4OyB3aWR0aDoxcHg7IHRvcDo4cHg7IHJpZ2h0OjBweDsnLmFzc2lnbih4KzQpLCJwb3NpdGlvbjphYnNvbHV0ZTsgYm9yZGVyLXJpZ2h0OjFweCBkb3R0ZWQgcmdiYSgxNjAsMTc2LDE5MiwwLjU2KTsgIl19fSwiIC5yc2VyaWUiOnsiIjpmdW5jdGlvbigpe3ZhciB4PTYwKnRoaXMuQ2ZnKCkuc3RhdHNTY2FsZVk7cmV0dXJuImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IHBhZGRpbmctdG9wOiA1cHg7IGhlaWdodDp7MX1weDsgb3ZlcmZsb3c6aGlkZGVuOyIuYXNzaWduKHgrMTYpfSwiOmhvdmVyIjp7IiAuZ25hbWVzIjoib3BhY2l0eToxOyIsIiAucGFsZWJnIjoiYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyJ9LCIgLnJoaXN0byI6ZnVuY3Rpb24oKXt2YXIgeD02MCp0aGlzLkNmZygpLnN0YXRzU2NhbGVZfDA7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoeyIiOiJ3aWR0aDpjYWxjKDEwMCUgLSAxMDBweCk7IHBhZGRpbmctdG9wOjVweDsgZm9udC13ZWlnaHQ6NDAwOyIsIiAucnNjYWxlIjp7IiI6IndpZHRoOjQwcHg7IGhlaWdodDp7aDYxfXB4OyBmb250LXdlaWdodDo0MDA7IGNvbG9yOiAjODA5MGEwOyIsIj5kaXYiOiJ3aWR0aDoxMDAlOyBoZWlnaHQ6e2gxMH1weDsgZm9udC1zaXplOjlweDsgbGluZS1oZWlnaHQ6Ny4ycHg7IHBhZGRpbmctcmlnaHQ6NHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBvdmVyZmxvdzpoaWRkZW47IiwiPmRpdjpmaXJzdC1jaGlsZCI6Im1hcmdpbi10b3A6LTJweDsiLCI+ZGl2OmFmdGVyIjonY29udGVudDoiICI7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MnB4OyByaWdodDowOyB3aWR0aDoycHg7IG92ZXJmbG93OmhpZGRlbjsgYm9yZGVyLXRvcDoxcHggc29saWQgI2EwYjBjMDsnfSwiIC5yc2hpbSI6eyIiOiJoZWlnaHQ6e2g2MX1weDsgd2lkdGg6MDsgYm9yZGVyLWJvdHRvbToxcHggZG90dGVkICNhMGIwYzA7IG92ZXJmbG93OmhpZGRlbjsiLCI+ZGl2IjoiaGVpZ2h0OntoMTB9cHg7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IGRvdHRlZCByZ2JhKDE2MCwxNzYsMTkyLDAuMzcpOyJ9LCIgLnJ2YWx1ZXMiOnsiIjoieHdpZHRoOmNhbGMoMTAwJSAtIDQxcHgpOyB3aWR0aDphdXRvOyBoZWlnaHQ6e2g2MX1weDtvdmVyZmxvdzpoaWRkZW47IGNvbG9yOiAjODA5MGEwOyIsIiAucmJhcnMiOnsiPi5yYmFyIjp7IiI6ImRpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOnRvcDtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OntoNjB9cHg7IiwiPmRpdiI6InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MDsgbGVmdDowOyB3aWR0aDoxMDAlOyJ9LCIgLnJjb3ZlciI6eyIiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgei1pbmRleDorMjsiLCI+LnJiYXIiOnsiIjpbImRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG92ZXJmbG93OmhpZGRlbjsiLCJoZWlnaHQ6e2g2MX1weDsgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IiwiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMTkzLDM5LDApOyJdLCI6aG92ZXIiOiJiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwxOTMsMzksMC40Myk7In19fSwiIC54cnN2ZyI6eyIiOiJib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDE2MCwxNzYsMTkyLDAuMzcpOyJ9LCIgLnJ0aW1lIjoicG9zaXRpb246YWJzb2x1dGU7IHRvcDotMXB4OyBsZWZ0OjJweDsgZm9udC1zaXplOjEwcHg7IGxpbmUtaGVpZ2h0OjE1cHg7IGNvbG9yOnJnYmEoMTYwLDE3NiwxOTIsMC44MSk7In0sIiAucmJvdW5kcyI6ImJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDE2MCwxNzYsMTkyLDAuNCk7IGJvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgxNjAsMTc2LDE5MiwwLjQpOyIsIiB0c3BhbiI6ImZpbGw6cmdiYSgxNjAsMTc2LDE5MiwwLjgxKTsiLCIgI3RhaWwgLnJncmFwaCI6Im1heC13aWR0aDo2MDBweDsgb3ZlcmZsb3c6aGlkZGVuOyIsIiAjeWF4aXMiOiJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgei1pbmRleDorMTsifSkuYXNzaWduKHtoMTA6eC82LGg2MDp4LGg2MTp4KzEsaDYyOngrMixoNjM6eCszfSkpfX0sIiAuYXBwLWhlYWQiOnsiIjoiZGlzcGxheTogYmxvY2s7IGhlaWdodDogNTJweDsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7In19LE5vZGU6e2lkOiJjdy5Db3VjaC5Nb25pdG9yLk5vZGUiLHBhcmFtczp7cmVzdHlsZTo1MH0saW5oZXJpdDpbIlNlcmllIiwiR2F1Z2UiLCJDZmciLCJHZW5HcmFwaHMiLCJHZW5BeGlzIiwiQXV0b1NhdmVOb2RlIl0sUlQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG51bGw9PXg/dGhpczpPYmplY3QuaXNBcnJheSh4KT9jdy5saWIuZ2V0cmVmKHRoaXMseCk6dGhpc1t4XX0sZGF0YTp7bmFtZToiTm9kZSIsaGVhbHRoOiIiLHVybDoiLyIsc2VyaWVzOltdLGdhdWdlczpbXX0sUGVuZGluZzpudWxsLGluaXQ6ZnVuY3Rpb24oeCl7dmFyIGE9dGhpcyxiPShhLmRhdGEsYS5DZmcoKS5zdGF0c1JlZnJlc2gpO3JldHVybiB4Lmh0bWwoYS5IVE1MKSx4LnRoZW4oZnVuY3Rpb24oKXthLkdldFN0YXRzLmRlYm91bmNlKDFlMykoKSxhLkdldFN0YXRzLmRlYm91bmNlKDFlMypiLzMpKCksYS5UaW1lcj1mdW5jdGlvbigpe2EuR2V0U3RhdHMoKX0uZXZlcnkoMWUzKmIpfS5kZWJvdW5jZSgxKSksYS5HZXRTdGF0cyghMCl9LHVpOnsiI25uYW1lIjp7YmluZDpmdW5jdGlvbih4LGEpe3JldHVybiB4Lm5hbWUuc3BsaXQoIkAiKS5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIHguZXNjYXBlSFRNTCgpfSkuam9pbignPHNwYW4gY2xhc3M9Im82MCBwbDIgcHIyIj5APC9zcGFuPicpfSxjc3M6e3JlZDpmdW5jdGlvbih4LGEpe3JldHVybiB0aGlzLm15LnJvb3QoKS50b2dnbGVDbGFzcygicmVkMSIsISF4LmhlYWx0aCksITF9fX0sIiNuc2VyaWVzIjp7YmluZDoic2VyaWVzIixoYXNoOmZ1bmN0aW9uKHgpe3JldHVybiBjdy5saWIuc2RibShbeC5yb3dzLHgudGltZV0pfSxsaXN0Oic8ZGl2IGNsYXNzPSJyc2VyaWUiPjwvZGl2PicsbWFuaWZlc3Q6ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuU2VyaWV9fSwiI25nYXVnZXMiOntiaW5kOiJnYXVnZXMiLGhhc2g6ZnVuY3Rpb24oeCl7cmV0dXJuIGN3LmxpYi5zZGJtKFt4LnJvd3MseC50aW1lXSl9LGxpc3Q6JzxkaXYgY2xhc3M9InJnYXVnZSI+PC9kaXY+JyxtYW5pZmVzdDpmdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5HYXVnZX19LCIjbnByb3h5Ijp7YmluZDpmdW5jdGlvbigpe30sbGlzdGVuOntjb3VjaF9tb25pdG9yX3JlZnJlc2g6ZnVuY3Rpb24oeCxhKXt0aGlzLkdldFN0YXRzKCl9LGNvdWNoX21vbml0b3JfY2ZnX2NoYW5nZTpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXM7Yi5UaW1lci5jYW5jZWwoKSxiLlRpbWVyPWZ1bmN0aW9uKCl7Yi5HZXRTdGF0cygpfS5ldmVyeSgxZTMqYi5DZmcoKS5zdGF0c1JlZnJlc2gpLGIuR2V0U3RhdHMoKX19fX0sZGllOmZ1bmN0aW9uKCl7dGhpcy5UaW1lci5jYW5jZWwoKX0sSFRNTDonPGRpdiBjbGFzcz0ibnRpdGxlIHBiNSBtYjUiPjxkaXYgaWQ9Im5uYW1lIiBjbGFzcz0ibm5hbWUgZnMxNjAgbGgxNDAgcHQyIGJvbGRlciI+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmdhdWdlcyIgY2xhc3M9Im5nYXVnZXMgdzExMCBkaWIgdmF0Ij48L2Rpdj48ZGl2IGlkPSJuc2VyaWVzIiBjbGFzcz0ibnNlcmllcyBkaWIgdmF0Ij48L2Rpdj48ZGl2IGlkPSJucHJveHkiIGNsYXNzPSJoaWRlIj48L2Rpdj4nLEdldFN0YXRzOmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGEsYz1jdy5saWIubWFzayxkPSQuRGVmZXJyZWQoKSxlPU9iamVjdC5pc09iamVjdCxmPU9iamVjdC5pc051bWJlcixnPXt9O2lmKGEuUGVuZGluZylyZXR1cm4gYS5QZW5kaW5nO3ZhciBoPVtdLGk9IiIsaj05MDAqYS5DZmcoKS5zdGF0c1JlZnJlc2gsaz1iLmNvdWNoPCIyLiI/WyJfc3RhdHMiXTpbIl9zdGF0cyIsIl9zeXN0ZW0iXTtyZXR1cm4gYi5jb3VjaD49IjIuIiYmIS9cL19ub2RlLy50ZXN0KGIudXJsKSYmKGk9Il9ub2RlL19sb2NhbC8iKSxiLmhlYWx0aD0iIixrLmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGM9e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9O2IuYmFzaWMmJihjLkF1dGhvcml6YXRpb249IkJhc2ljICIrYi5iYXNpYyksaC5wdXNoKGEuUmVxKHt1cmw6Yi51cmwrKCIvIiE9Yi51cmwuc3Vic3RyKC0xKT8iLyI6IiIpK2kreCxtZXRob2Q6ImdldCIsZGF0YVR5cGU6Impzb24iLGhlYWRlcnM6Yyx0aW1lb3V0Omp9KS50aGVuKGZ1bmN0aW9uKHgpeyQuZXh0ZW5kKGcsbCh4KSl9KS5mYWlsKGZ1bmN0aW9uKHgsYSxjKXtiLmhlYWx0aD1jKyIifSkpfSksYS5QZW5kaW5nPVEuYWxsU2V0dGxlZChoKS50aGVuKGZ1bmN0aW9uKCl7Yi5oZWFsdGh8fG0oZykseHx8KGEubXkuZmluZCgiI25zZXJpZXMiKS50cmlnZ2VyKCJyZWNhbGMiKSxhLm15LmZpbmQoIiNuZ2F1Z2VzIikudHJpZ2dlcigicmVjYWxjIikpO3RyeXthLkF1dG9TYXZlTm9kZShiKX1jYXRjaCh4KXt9fSkuZmluYWxseShmdW5jdGlvbigpe2EuUGVuZGluZz1udWxsLHh8fGEubXkuZmluZCgiI25uYW1lIikudHJpZ2dlcigiY2hlY2siKSxkLnJlc29sdmUoKX0pLGEuUGVuZGluZztmdW5jdGlvbiBsKHgpe3ZhciBhPXt9O3JldHVybiB4Lm1lbW9yeSYmeC51cHRpbWU/SlNPTi5zdHJpbmdpZnkoeCxmdW5jdGlvbih4LGIpe3JldHVybiBmKGIpJiYoYVt4XT1iKSxifSk6SlNPTi5zdHJpbmdpZnkoeCxmdW5jdGlvbih4LGIpe3JldHVybiBlKGIpJiYoZihiLnN1bSl8fGYoYi52YWx1ZSkpJiYoYVt4XT1iLnN1bXx8Yi52YWx1ZXx8MCksYn0pLGF9ZnVuY3Rpb24gbSh4KXt2YXIgZD1hLkNmZygpLnNlcmllTWF4TGVuZ3RoO2Z1bmN0aW9uIGUoYSxiKXt2YXIgZT1NYXRoLnJvdW5kKERhdGUubm93KCkvMTAwKTthLnRpbWVbMF09ZS1hLnRpbWVbMF0sYS50aW1lLnVuc2hpZnQoZSksYS5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihiLGQpe3ZhciBlPWMoeCxiKS5zdW0oKXx8MDsiY3VycmVudCIhPWEubW9kZSYmKGEucm93c1tkXVswXT1lLWEucm93c1tkXVswXSksYS5yb3dzW2RdLnVuc2hpZnQoZSksMj09YS50aW1lLmxlbmd0aCYmKGEucm93c1tkXVsxXT0wKX0pLGEucm93c1swXS5sZW5ndGg+MTAmJihhLnJvd3NbMF0ubGVuZ3RoPTEwKSwyPT1hLnRpbWUubGVuZ3RoPyhhLnRpbWVbMV09MzAsYS5maWVsZHMuZm9yRWFjaChmdW5jdGlvbih4LGIpe2Eucm93c1tiXVsxXT0wfSkpOmEudGltZS5sZW5ndGg+ZCYmKGEudGltZS5sZW5ndGg9ZCxhLnJvd3MuZm9yRWFjaChmdW5jdGlvbih4LGEpe3gubGVuZ3RoPmQmJih4Lmxlbmd0aD1kKX0pKX1iLnNlcmllcy5mb3JFYWNoKGUpLGIuZ2F1Z2VzLmZvckVhY2goZSl9fX0sU2VyaWU6e2lkOiJjdy5Db3VjaC5Nb25pdG9yLlNlcmllIixwYXJhbXM6e3Jlc3R5bGU6NjB9LGluaGVyaXQ6WyJDZmciLCJHZW5HcmFwaHMiLCJHZW5BeGlzIl0sZGF0YTp7bmFtZToiUm93IixkZW5vbWluYXRvcjoxLG5hbWVzOltdLGNvbG9yczpbXSxmaWVsZHM6W10scm93czpbXSx0aW1lOltdfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXM7YS5kYXRhO2EuR2VuQXhpcyhhKSx4Lmh0bWwoYS5IVE1MKX0sdWk6eyIuZ3ZhbCI6e2JpbmQ6ZnVuY3Rpb24oeCxhKXt2YXIgYj0wO3JldHVybiBiPSJjdXJyZW50Ij09eC5tb2RlPyt4LnJvd3NbMF1bMF18fDA6eC50aW1lWzFdPzEwKigreC5yb3dzWzBdWzFdfHwwKS94LnRpbWVbMV06MCwoYi89eC5kZW5vbWluYXRvcnx8MSk8MT9iLnJvdW5kKDIpKyIiOmI+OTkmJmI8MWU0PygwfGIpKyIiOmIucm91bmQoMSkubWV0cmljKDMsMykucmVwbGFjZSgvKFxkXGRcZD9cLlxkKVxkezEsMn0vLCIkMSIpfSx3YXRjaDoiI3ByaW1lIn0sIi5ndW5pdHMiOntiaW5kOiJ1bml0cy4wIn0sIi5yc2hpbSI6e2JpbmQ6ZnVuY3Rpb24oeCxhLGIpe2lmKG51bGw9PWEpe3ZhciBjPU1hdGgucm91bmQoRGF0ZS5ub3coKS8xZTMteC50aW1lWzBdLzEwKTtiLmNzcyh7d2lkdGg6YysicHgifSl9fSxsaXN0ZW46e2NvdWNoX21vbml0b3JfdGltZXI6ZnVuY3Rpb24oeCxhKXtyZXR1cm4hMH19fSwiI3lheGlzIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPXRoaXMsYz1iLkdlbkF4aXMoYik7aWYobnVsbD09YSlyZXR1cm4gYi5ULkdyYXBoLmFzc2lnbihiLkNmZygpLnN0YXRzTWF4VGltZWZyYW1lLDYwKmIuQ2ZnKCkuc3RhdHNTY2FsZVksYy5waXZvdHN5KX0sd2F0Y2g6IiNwcmltZSJ9LCIuZ25hbWVzIjpmdW5jdGlvbih4KXtyZXR1cm4geC5uYW1lcy5zbGljZSgxKS5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm4nPHNwYW4gc3R5bGU9ImNvbG9yOnsyfSI+ezF9PC9zcGFuPicuYXNzaWduKGEseC5jb2xvcnNbYisxXSl9KS5qb2luKCIgIil9LCIjcHJpbWUiOntkZWxheTo1MCxiaW5kOmZ1bmN0aW9uKHgsYSl7aWYobnVsbD09YSl7dmFyIGI9dGhpcyxjPShiLkdlbkF4aXMoYiksYi5HZW5HcmFwaHMoYikpLGQ9Yi5ULlRhaWxHcmFwaCxlPWIuQ2ZnKCkuc3RhdHNNYXhUaW1lZnJhbWUsZj0nezF9PGRpdiBjbGFzcz0icmNvdmVyIj57Mn08L2Rpdj4nO3JldHVybiBiLm15LmZpbmQoIiN0YWlsIikuaHRtbChjLnNsaWNlKDEpLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gZC5hc3NpZ24oZi5hc3NpZ24oeC5zdmcseC5jb3ZlcnMpLHguZW5kKX0pLmpvaW4oIiIpKSxiLm15LmZpbmQoIiN0aWNraW5nIikuY3NzKHt3aWR0aDpjWzBdLndpZHRoLmNsYW1wKDMwMSxlKzEpKyJweCJ9KSxmLmFzc2lnbihjWzBdLnN2ZyxjWzBdLmNvdmVycyl9fX19LGhCYXI6ZnVuY3Rpb24oeCxhKXt2YXIgYj0oK3h8fDApLmNsYW1wKDAsMWU1MyksYz0oK2F8fDApLmNsYW1wKDEsMWU1Myk7cmV0dXJuKDEwKk1hdGgubG9nMTAoMSsxMCpiL2MpKS5jbGFtcCgwLDYxKS5yb3VuZCgxKX0sSFRNTDonPGRpdiBjbGFzcz0iZ2Jsb2NrIGRpYiB2YXQgdzEwMCI+PGRpdiBjbGFzcz0iZ3ZhbCB0YXIgbzgwIG10LTEiPjwvZGl2PjxkaXYgY2xhc3M9Imd1bml0cyB0YXIgbzkwIj48L2Rpdj48ZGl2IGNsYXNzPSJnbmFtZXMgdGFyIG10MiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icmhpc3RvIGRpYiB2YXQgbncgb2giPjxkaXYgY2xhc3M9InJzY2FsZSBkaWIgdmF0Ij48ZGl2PjEwMEs8L2Rpdj48ZGl2PjEwSzwvZGl2PjxkaXY+MTAwMDwvZGl2PjxkaXY+MTAwPC9kaXY+PGRpdj4xMDwvZGl2PjxkaXY+MTwvZGl2PjwvZGl2PjxkaXYgaWQ9InRpY2tpbmciIGNsYXNzPSJydmFsdWVzIGRpYiB2YXQgbncgcmJvdW5kcyI+PGRpdiBpZD0ieWF4aXMiIGNsYXNzPSJ5YXhpcyI+PC9kaXY+PGRpdiBjbGFzcz0icnNoaW0gZGliIHZhdCBwYWxlYmciPjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9InByaW1lIiBjbGFzcz0icmJhcnMgZGliIHZhdCBudyBwYWxlYmciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InJ2YWx1ZXMgZGliIHZhdCI+PGRpdiBpZD0idGFpbCIgY2xhc3M9InJiYXJzIGRpYiB2YXQgbnciPjwvZGl2PjwvZGl2PjwvZGl2PicsQXhpczp7cGl2b3RzeDoiIixwaXZvdHN5OiIiLGF4aXN4OiIifSxUOntCYXI6JzxkaXYgY2xhc3M9InJiYXIiIHN0eWxlPSJ3aWR0aDp7Mn1weDsiIHRpdGxlPSJ7M30iPnsxfTwvZGl2PicsQmFyVGlwOiJ7dGltZX1cbntkdXJ9XG57cm93c30iLEdyYXBoOic8c3ZnIGNsYXNzPSJyc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHN0eWxlPSJ3aWR0aDp7MX1weDtoZWlnaHQ6ezJ9cHg7IiB4PSIwIiB5PSIwIiB3aWR0aD0iezF9IiBoZWlnaHQ9InsyfSIgdmlld0JveD0iMCwgMCwgezF9LCB7Mn0iPnszfTwvc3ZnPicsVGFpbEdyYXBoOic8ZGl2IGNsYXNzPSJkaWIgdmF0IG1sMzAgcmJvdW5kcyByZ3JhcGggcGFsZWJnIj48ZGl2IGNsYXNzPSJydGltZSI+ezJ9PC9kaXY+ezF9PGRpdiBjbGFzcz0icmNvdmVyIj48L2Rpdj48L2Rpdj4nLExpbmU6JzxwYXRoIGQ9InsxfSIgZmlsbC1vcGFjaXR5PSIwIiBzdHJva2U9InsyfSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPicsUGl2b3RYOic8cGF0aCBkPSJ7MX0iIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJ7Mn0iIHN0cm9rZS13aWR0aD0iMSIvPicsUGl2b3RZOic8cGF0aCBkPSJ7MX0iIGZpbGwtb3BhY2l0eT0iMCIgc3Ryb2tlPSJ7Mn0iIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWRhc2hhcnJheT0iMSwxIi8+JyxQaXZvdFRleHQ6Jzx0ZXh0Pjx0c3BhbiB4PSJ7MX0iIHk9IjEwIiBmb250LXNpemU9IjEwIiB4ZmlsbD0iIzVFNUQ1MyI+ezJ9PC90c3Bhbj48L3RleHQ+J319LEdhdWdlOntpZDoiY3cuQ291Y2guTW9uaXRvci5HYXVnZSIscGFyYW1zOntyZXN0eWxlOjYwfSxpbmhlcml0OlsiQ2ZnIl0sZGF0YTp7bmFtZToiUm93Iixtb2RlOiIiLG5hbWVzOltdLGNvbG9yczpbXSxmaWVsZHM6W10scm93czpbXSx0aW1lOltdfSxpbml0OmZ1bmN0aW9uKHgpe3ZhciBhPXRoaXMsYj1hLmRhdGE7Yi5maWVsZHMubGVuZ3RoPTEsYi5yb3dzLmxlbmd0aD0xLHguaHRtbChhLkhUTUwpfSx1aTp7Ii5ndmFsIjp7YmluZDpmdW5jdGlvbih4LGEpe3ZhciBiPTA7cmV0dXJuIGI9ImN1cnJlbnQiPT14Lm1vZGU/K3gucm93c1swXVswXXx8MDp4LnRpbWVbMV0/MTAqKCt4LnJvd3NbMF1bMV18fDApL3gudGltZVsxXTowLChiLz14LmRlbm9taW5hdG9yfHwxKTwxP2Iucm91bmQoMikrIiI6Yj45OSYmYjwxZTQ/KDB8YikrIiI6Yi5yb3VuZCgxKS5tZXRyaWMoMywzKS5yZXBsYWNlKC8oXGRcZFxkP1wuXGQpXGR7MSwyfS8sIiQxIil9fSwiLmd1bml0cyI6e2JpbmQ6InVuaXRzLjAifX0sSFRNTDonPGRpdiBjbGFzcz0iZ2Jsb2NrIHByMTAgdzExMCBkaWIgdmF0Ij48ZGl2IGNsYXNzPSJndmFsIG84MCBtdC0xIj48L2Rpdj48ZGl2IGNsYXNzPSJndW5pdHMgbzkwIj48L2Rpdj48L2Rpdj4nfSxzdGFtcDoxNjQ2ODczMDg1MzIwfX0pLCQoZnVuY3Rpb24oKXt2YXIgeD1uZXcgVVJMKGxvY2F0aW9uLmhyZWYpLGE9eC5wYXRobmFtZS5yZXBsYWNlKC9eXC8vLCIiKS5zcGxpdCgiLyIpLnJldmVyc2UoKS5tYXAobSksYj0iX2Rlc2lnbiI9PWFbMl0sYz0iX3Bob3RvbiI9PWFbMV0sZD1hLmZyb20oYj80OjMpLnJldmVyc2UoKSxlPXtiYXNlOngub3JpZ2luKyIvIisoZC5sZW5ndGg/ZC5tYXAobCkuam9pbigiLyIpKyIvIjoiIiksZGI6YVtjPzE6Yj8zOjJdLGRvYzpjPyJfZGVzaWduL3Bob3RvbiI6Yj8iX2Rlc2lnbi8iK2FbMV06YVsxXX07JC5teS5tb2RhbC5wYXJlbnQoIiNjdy1ib2R5IiksJCh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7JCgiLm15LW1vZGFsIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigibGF5b3V0Iil9KX0uZGVib3VuY2UoMzApKSx3aW5kb3cuY3cubWU9ZnVuY3Rpb24oeCl7dmFyIGE9KHdpbmRvdy5ERE9DfHx7fSkuX21lfHx7bmFtZToiIixyb2xlczpbXSxsb2NhbGU6ImVuIn07cmV0dXJuIG51bGw9PT14P2E6dm9pZCAwPT09eD9hLm5hbWU6YVt4XX07dmFyIGY9d2luZG93LkRET0M9JC5leHRlbmQod2luZG93LkRET0Mse19iYXNlOmUuYmFzZSxfZGI6ZS5kYixfZG9jOmUuZG9jfSk7cmV0dXJuIGcoKS50aGVuKGgpLnRoZW4oaSkuZmFpbChmdW5jdGlvbih4LGEsYil7Y29uc29sZS5sb2coeCxhLGIpLGN3LmxpYi5ub3RlKCJQaG90b24gMS4yMCBmYWlsZWQgdG8gc3RhcnQsIHNlZSBjb25zb2xlIGZvciBkZXRhaWxzIiwiZXJyb3IiLDNlNCl9KSxPYmplY3Qua2V5cyhmLmFwcHN8fHt9KS5mb3JFYWNoKGZ1bmN0aW9uKHgpeyQubXkuY2FjaGUoZi5hcHBzW3hdKX0pLGsoe2N0cmxfejpmdW5jdGlvbih4LGEpe2lmKCJCT0RZIj09eC50YXJnZXQubm9kZU5hbWUpe3ZhciBiPSQoIiNsLWFwcHM+LmwtYXBwOm5vdCguaGlkZSkiKS5teSgibWFuaWZlc3QiKS5jbWRVbmRvO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiKXt4LnByZXZlbnREZWZhdWx0KCk7dHJ5e2IoKX1jYXRjaCh4KXt9cmV0dXJuITF9fX0sY3RybF9zOmZ1bmN0aW9uKHgsYSl7aWYoIkJPRFkiPT14LnRhcmdldC5ub2RlTmFtZSl7dmFyIGI9JCgiI2wtYXBwcz4ubC1hcHA6bm90KC5oaWRlKSIpLm15KCJtYW5pZmVzdCIpLmNtZFNhdmU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIpe3gucHJldmVudERlZmF1bHQoKTt0cnl7YigpfWNhdGNoKHgpe31yZXR1cm4hMX19fX0pLHZvaWQgMDtmdW5jdGlvbiBnKCl7cmV0dXJuIFEuYWxsKFtqKGUuYmFzZSsoZS5kYj9sKGUuZGIpKyIvIjoiIikrZS5kb2MpLnRoZW4oZnVuY3Rpb24oeCl7JC5leHRlbmQoITAsZixPYmplY3Quc2VsZWN0KHgsIl9pZCBfcmV2IG5hbWUgc3RhbXAgc2V0dGluZ3MgdmVyc2lvbiB2ZXJzaW9ucyIuc3BsaXQoIiAiKSkpfSksaihlLmJhc2UrIl9zZXNzaW9uIikudGhlbihmdW5jdGlvbih4KXskLmV4dGVuZCghMCxmLl9tZSx4LnVzZXJDdHh8fHt9KX0pXSkudGhlbihmdW5jdGlvbih4KXt2YXIgYT1mLl9tZTtyZXR1cm4gYS5uYW1lPWEubmFtZXx8IiIsYS5yb2xlcy5mb3JFYWNoKGZ1bmN0aW9uKHgpey9ebGFuZ1wtW2Etel17Mn0kLy50ZXN0KHgpJiYoYS5sb2NhbGU9eC5zcGxpdCgiLSIpWzFdLCQubXkubG9jYWxlKGEubG9jYWxlKSl9KSxmfSl9ZnVuY3Rpb24gaCgpe3RyeXt2YXIgeD1KU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiY3cuUGhvdG9uLkNmZyIpfHwie30iKS50aGVtZXx8IiI7ImF1dG8iPT14JiZ3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzPyQoImJvZHkiKS5hZGRDbGFzcygidGhlbWUtZGFyayIpOngmJiQoImJvZHkiKS5hZGRDbGFzcygidGhlbWUtIit4KX1jYXRjaCh4KXt9fWZ1bmN0aW9uIGkoKXt2YXIgeD1mLnJ1bixhPVtdO3JldHVybiB4LmZvckVhY2goZnVuY3Rpb24oeCl7dmFyIGI9JCh4LmNvbnRhaW5lcik7YS5wdXNoKGIubXkoeC5tYW5pZmVzdCx4LmRhdGF8fHt9KSl9KSxRLmFsbChhKX1mdW5jdGlvbiBqKHgpe3JldHVybiAkLmFqYXgoJC5leHRlbmQoe21ldGhvZDoiZ2V0IixkYXRhVHlwZToianNvbiIsaGVhZGVyczp7YWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn0sY2FjaGU6ITF9LHt1cmw6eH0pKX1mdW5jdGlvbiBrKHgpe2lmKCExPT09eClyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGEpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixhKTt4PXh8fHt9O2Z1bmN0aW9uIGEoYSl7dmFyIGI9W2Euc2hpZnRLZXk/InNoaWZ0IjoiIixhLmN0cmxLZXl8fGEubWV0YUtleT8iY3RybCI6IiIsYS5hbHRLZXk/ImFsdCI6IiIsU3RyaW5nLmZyb21DaGFyQ29kZShhLmtleUNvZGUpLnRvTG93ZXJDYXNlKCldLmNvbXBhY3QoITApLmpvaW4oIl8iKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeFtiXSlyZXR1cm4geFtiXShhLGIpfX1mdW5jdGlvbiBsKHgpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoeCl9ZnVuY3Rpb24gbSh4KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHgpfX0pOw==" }, "favicon.png": { "content_type": "image/png",