{"id":6492,"date":"2026-07-11T12:15:49","date_gmt":"2026-07-11T12:15:49","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-13-test-2-reading\/"},"modified":"2026-07-12T03:24:13","modified_gmt":"2026-07-12T03:24:13","slug":"celpip-set-13-test-2-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-13-test-2-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 13 \u00b7 Practice Test 2"},"content":{"rendered":"<div class=\"clpr-wrap\" id=\"clprWrap\">\n<section class=\"clpr-hero\">\n<div class=\"clpr-aurora\"><span><\/span><span><\/span><span><\/span><\/div>\n<div class=\"clpr-hero-badges\"> <span class=\"clpr-badge-brand\">AllEnglish4U<\/span> <span class=\"clpr-badge-set\">CELPIP General &middot; Set 13<\/span> <\/div>\n<h1>Reading Practice Test 2<\/h1>\n<p class=\"clpr-hero-sub\">4 parts &middot; 38 questions &middot; about 55 minutes. Read each passage and choose the best option for every drop-down. Official Paragon question set with verified answer key.<\/p>\n<div class=\"clpr-hero-chips\"> <span class=\"clpr-chip\">Part 1 &middot; Correspondence<\/span> <span class=\"clpr-chip\">Part 2 &middot; Apply a Diagram<\/span> <span class=\"clpr-chip\">Part 3 &middot; Information<\/span> <span class=\"clpr-chip\">Part 4 &middot; Viewpoints<\/span> <\/div>\n<p> <button class=\"clpr-cta\" id=\"clprStart\">Start the Reading Test<\/button> <\/section>\n<div class=\"clpr-toolbar\" id=\"clprToolbar\" hidden> <span class=\"clpr-score-chip\" id=\"clprScoreChip\">0 \/ 38 answered<\/span> <span class=\"clpr-toolbar-spacer\"><\/span> <button class=\"clpr-tbtn\" id=\"clprReset\">Reset<\/button> <button class=\"clpr-tbtn clpr-tbtn-check\" id=\"clprCheck\">Check answers<\/button> <\/div>\n<div class=\"clpr-sim\" id=\"clprSim\" hidden>\n<div class=\"clpr-dots\" id=\"clprDots\"><\/div>\n<div class=\"clpr-cat\" id=\"clprCat\"><\/div>\n<\/p><\/div>\n<div class=\"clpr-results\" id=\"clprResults\" hidden><\/div>\n<\/p><\/div>\n<p><script>eval(atob(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMiAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAyIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiAiUHJhY3RpY2UgVGVzdCAyIiwgInBhcnRzIjogW3siaWQiOiAxLCAibmFtZSI6ICJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsICJ0aW1lIjogIjEwIG1pbnV0ZXMiLCAicGFzc2FnZSI6IHsidHlwZSI6ICJ0ZXh0IiwgImxhYmVsIjogIlJlYWQgdGhlIGZvbGxvd2luZyBtZXNzYWdlLiIsICJodG1sIjogIjxwPkRlYXIgQWxleCw8L3A+PHA+WW91IHdlcmVuJnJzcXVvO3QgYXQgeWVzdGVyZGF5JnJzcXVvO3MgZ2FtZSEgSW4gYWxsIG91ciB5ZWFycyBwbGF5aW5nIHRvZ2V0aGVyLCBJIGhhdmVuJnJzcXVvO3Qgc2VlbiB5b3UgbWlzcyBhIHNpbmdsZSBtYXRjaCEgSSBob3BlIGFsbCBpcyB3ZWxsLiBBIGZldyBvdGhlciBwbGF5ZXJzIHdlcmUgaG9tZSB3aXRoIHRoZSBmbHUgeWVzdGVyZGF5LiBIb3BlZnVsbHkgeW91IGRpZG4mcnNxdW87dCBjYXRjaCBpdCB0b28hPC9wPjxwPkFueXdheXMsIEkgd2FzIHdvbmRlcmluZyBpZiB5b3UgY291bGQgYW5zd2VyIGEgZmV3IHF1ZXN0aW9ucyBmb3IgbWUgYWJvdXQgdGhlIGVudHJlcHJlbmV1cnNoaXAgdHJhaW5pbmcgcHJvZ3JhbSB5b3VyIG9yZ2FuaXphdGlvbiBvZmZlcnMuIEkgaGVhcmQgeW91IHRhbGtpbmcgYWJvdXQgaXQgYW5kIGl0IHNvdW5kcyBsaWtlIGl0IG1pZ2h0IGJlIGp1c3Qgd2hhdCBJIG5lZWQuIEkgY2hlY2tlZCBvdXQgdGhlIHByb2dyYW0mcnNxdW87cyB3ZWJzaXRlLCBidXQgSSBzdGlsbCBoYXZlIHNvbWUgcXVlc3Rpb25zIGJlZm9yZSBhcHBseWluZy48L3A+PHA+SSZyc3F1bztsbCBiZSByZXRpcmluZyBzb29uLCBhbmQgSSB3YW50IHRvIHN0YXJ0IG15IG93biBidXNpbmVzcy4gTXkgZGFkIHVzZWQgdG8gaGF2ZSBhIGZsb3JhbCBidXNpbmVzcyB3aGVuIEkgd2FzIGdyb3dpbmcgdXAsIGFuZCBJJnJzcXVvO3ZlIGFsd2F5cyB3YW50ZWQgdG8gb3BlbiBteSBvd24gZmxvd2VyIHNob3AsIHRvby4gSG93ZXZlciwgSSBjdXJyZW50bHkgbGFjayBhbiB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byBoYW5kbGUgYnVkZ2V0aW5nLiBBbHNvLCBkb2VzIHRoZSB0cmFpbmluZyBvZmZlciBhbnkgYWR2aWNlIG9uIHdoaWNoIGtpbmRzIG9mIGJ1c2luZXNzZXMgYXJlIHByb2ZpdGFibGUgYW5kIGhvdyB0byBjcmVhdGUgYSBmaW5hbmNpYWxseSBzb3VuZCBidXNpbmVzcyBwbGFuPyBJIGRvbiZyc3F1bzt0IHdhbnQgdG8gd2FzdGUgbXkgbW9uZXksIHNvIEkmcnNxdW87ZCBsaWtlIHRvIGtub3cgaWYgbXkgYnVzaW5lc3MgaGFzIGEgY2hhbmNlIG9mIGJlaW5nIHN1Y2Nlc3NmdWwgYmVmb3JlIGdvaW5nIGFoZWFkIHdpdGggaXQuIEFsc28sIGRvZXMgdGhlIHRyYWluaW5nIGluY2x1ZGUgYWR2aWNlIG9uIGhvdyB0byBnZXQgZmluYW5jaWFsIGFzc2lzdGFuY2U\/IEkgaGF2ZSBzb21lIHNhdmluZ3MsIGJ1dCBub3QgZW5vdWdoIHRvIGNvdmVyIGV2ZXJ5dGhpbmcgSSB3b3VsZCBuZWVkLiBJJnJzcXVvO2QgbGlrZSB0byBrbm93IHdoYXQgbXkgb3B0aW9ucyBhcmUuPC9wPjxwPkFjY29yZGluZyB0byB0aGUgd2Vic2l0ZSwgdGhlIG5leHQgdHJhaW5pbmcgc2Vzc2lvbiwgTW9uZGF5cyBmcm9tIDE6MDAgcC5tLiB0byA1OjAwIHAubS4sIHN0YXJ0cyBzb29uLiBIb3dldmVyLCBhcyB5b3Uga25vdywgSSZyc3F1bzttIGEgdGVhY2hlciwgc28gSSZyc3F1bztsbCBzdGlsbCBiZSB3b3JraW5nIGZ1bGwtdGltZSB0aGVuLiBUaGUgZW5kIG9mIHRoZSB5ZWFyIGlzIGJ1c3kgd2l0aCBleGFtcywgcmVwb3J0IGNhcmQgcHJlcGFyYXRpb24sIGFuZCBwYXJlbnQtdGVhY2hlciBtZWV0aW5ncywgc28gSSBoYXZlIGV2ZW4gbGVzcyBmcmVlIHRpbWUgdGhhbiB1c3VhbC4gQnkgYW55IGNoYW5jZSwgaXMgdGhlIHByb2dyYW0gZXZlciBvZmZlcmVkIGluIHRoZSBldmVuaW5ncyBvciBvbiB3ZWVrZW5kcywgb3IsIGV2ZW4gYmV0dGVyLCBvbmxpbmU\/PC9wPjxwPk15IGxhc3QgcXVlc3Rpb24gaXMgYWJvdXQgdGhlIGNvc3QuIFRoZSB3ZWJzaXRlIHNheXMgZmVlcyBmb3IgdGhlIHRyYWluaW5nIGNhbiBiZSB3YWl2ZWQgZm9yIHRob3NlIHdobyBxdWFsaWZ5LCBidXQgaXQgZGlkbiZyc3F1bzt0IG1lbnRpb24gYW55IGZ1cnRoZXIgZGV0YWlscy4gSG93IHdvdWxkIEkgZmluZCBvdXQgaWYgSSBxdWFsaWZ5IHRvIGF0dGVuZCBmb3IgZnJlZT8gQXJlIHRoZXJlIGFueSBkb2N1bWVudHMgSSBuZWVkIHRvIHNlbmQgaW4gd2l0aCBteSBhcHBsaWNhdGlvbj88L3A+PHA+VGhhbmtzIGZvciBhbnkgaGVscCB5b3UgY2FuIGdpdmUsIGFuZCBJIGhvcGUgdG8gc2VlIHlvdSBpbiBnb29kIGhlYWx0aCBuZXh0IHdlZWshIFdlIHBsYXkgdGhlIFRpdGFucywgc28gdGhlIGNvYWNoIHNheXMgd2UmcnNxdW87bGwgYmUgbmVlZGluZyBvdXIgaGFyZGVzdCBoaXR0ZXIhPC9wPjxwPkhvcGUgdG8gc2VlIHlvdSBzb29uLDwvcD48cD5IYWxtYSBTZWFuPC9wPiJ9LCAiYmxvY2tzIjogW3sidHlwZSI6ICJzdGVtbGlzdCIsICJpbnN0ciI6ICJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiB0aGUgbWVzc2FnZS4iLCAiaXRlbXMiOiBbeyJuIjogMSwgInByZSI6ICJXaHkgZGlkIEhhbG1hIHdyaXRlIHRoaXMgbGV0dGVyPyIsICJvcHRpb25zIjogWyJ0byBhcHBseSBmb3IgYSBuZXcgdHJhaW5pbmcgcHJvZ3JhbSIsICJ0byByZXF1ZXN0IGFkdmljZSBhYm91dCByZXRpcmVtZW50IiwgInRvIGludml0ZSBBbGV4IHRvIGpvaW4gYSBzcG9ydHMgdGVhbSIsICJ0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgYSBwcm9ncmFtIl0sICJrZXkiOiA0fSwgeyJuIjogMiwgInByZSI6ICJXaGF0IGRvZXMgSGFsbWEgc2F5IGlzIGhlciB3ZWFrIGFyZWE\/IiwgIm9wdGlvbnMiOiBbInRyYWluaW5nIHN0YWZmIiwgIm1hbmFnaW5nIG1vbmV5IiwgInNhdmluZyBmb3IgcmV0aXJlbWVudCIsICJzdHVkeWluZyBmb3IgZXhhbXMiXSwgImtleSI6IDJ9LCB7Im4iOiAzLCAicHJlIjogIkluIGhlciByZXRpcmVtZW50LCBIYWxtYSBob3BlcyB0byIsICJvcHRpb25zIjogWyJiZWdpbiBhIG5ldyB0eXBlIG9mIGNhcmVlci4iLCAidGFrZSBvdmVyIGhlciBkYWRcdTIwMTlzIGJ1c2luZXNzLiIsICJoYXZlIG1vcmUgdGltZSBmb3Igc3BvcnRzLiIsICJzdHVkeSBhdCB0aGUgbG9jYWwgdW5pdmVyc2l0eS4iXSwgImtleSI6IDF9LCB7Im4iOiA0LCAicHJlIjogIkhhbG1hIHByb2JhYmx5IiwgIm9wdGlvbnMiOiBbInZpc2l0cyBoZXIgZGFkXHUyMDE5cyBmbG93ZXIgc2hvcCBvZnRlbi4iLCAiam9pbmVkIGEgbmV3IHNwb3J0cyB0ZWFtIHJlY2VudGx5LiIsICJwcmVmZXJzIHRha2luZyBjb3Vyc2VzIGluIHBlcnNvbi4iLCAid29ya3MgcHJpbWFyaWx5IGR1cmluZyB0aGUgZGF5LiJdLCAia2V5IjogNH0sIHsibiI6IDUsICJwcmUiOiAiV2hhdCBpcyB0cnVlIGFib3V0IHRoZSB0cmFpbmluZyBkaXNjdXNzZWQ\/IiwgIm9wdGlvbnMiOiBbIkl0IGlzIGRlc2lnbmVkIGZvciByZXRpcmVkIGluZGl2aWR1YWxzLiIsICJTb21lIG1lbWJlcnMgb2YgdGhlIHRlYW0gbWlzc2VkIGl0LiIsICJTb21lIHBlb3BsZSBjYW4gYXR0ZW5kIHdpdGhvdXQgcGF5aW5nLiIsICJUaGUgcHJvZ3JhbSBpcyBvbmx5IG9mZmVyZWQgb25jZSBhIHllYXIuIl0sICJrZXkiOiAzfSwgeyJuIjogNiwgInByZSI6ICJXaGF0IHdpbGwgSGFsbWEgcHJvYmFibHkgZG8gbmV4dD8iLCAib3B0aW9ucyI6IFsiY2hlY2sgdGhlIHByb2dyYW0gd2Vic2l0ZSIsICJzZW5kIEFsZXggaGVyIGRvY3VtZW50cyIsICJ3YWl0IGZvciBBbGV4XHUyMDE5cyByZXNwb25zZSIsICJyZWdpc3RlciBmb3IgdGhlIHByb2dyYW0iXSwgImtleSI6IDN9XX0sIHsidHlwZSI6ICJjbG96ZSIsICJpbnN0ciI6ICJIZXJlIGlzIGEgcmVzcG9uc2UgdG8gdGhlIG1lc3NhZ2UuIENvbXBsZXRlIHRoZSByZXNwb25zZSBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwgImJvZHkiOiBbIkhpIEhhbG1hLFxuXG5Hb29kIHRvIGhlYXIgZnJvbSB5b3UuIE15IGRhdWdodGVyIGdyYWR1YXRlZCB5ZXN0ZXJkYXksIHNvIEkgc3BlbnQgdGhlIGV2ZW5pbmcgYXQgaGVyIGNlcmVtb255LiBJXHUyMDE5bSBzb3JyeSB0byBoZWFyIiwgeyJiIjogNywgIm9wdGlvbnMiOiBbIm90aGVycyBtaXNzZWQgdGhlIGdhbWUgdG9vIiwgInRoZSBnYW1lIGhhZCBiZWVuIGNhbmNlbGxlZCIsICJ3ZSBlbmRlZCB1cCBsb3NpbmcgdGhlIGdhbWUiLCAic29tZSBwbGF5ZXJzIHdlbnQgaG9tZSBlYXJseSJdLCAia2V5IjogMX0sICIuIEFueXdheXMsIEkgYW0gZ2xhZCB5b3UgY29udGFjdGVkIG1lIGFib3V0IHRoZSB0cmFpbmluZyIsIHsiYiI6IDgsICJvcHRpb25zIjogWyJteSBjb21wYW55IG9mZmVycyIsICJ5b3Ugc2lnbmVkIHVwIGZvciIsICJJIHByZXZpb3VzbHkgYXR0ZW5kZWQiLCAid2UgaGF2ZSBuZXh0IHdlZWsiXSwgImtleSI6IDF9LCAiLiBJIHRoaW5rIGl0IHdpbGwgYmUgdmVyeSB1c2VmdWwgZm9yIHlvdS4gVG8gYW5zd2VyIHlvdXIgZmlyc3QgcXVlc3Rpb24sIHRoZSB0cmFpbmluZyBkb2VzIGNvdmVyIiwgeyJiIjogOSwgIm9wdGlvbnMiOiBbInVuaXF1ZSBzdGFydC11cCBpZGVhcyIsICJyZXRpcmVtZW50IHBsYW5uaW5nIG9wdGlvbnMiLCAiYnVzaW5lc3MgZmluYW5jZSB0b3BpY3MiLCAicHJvZml0YWJsZSBzYXZpbmcgc3RyYXRlZ2llcyJdLCAia2V5IjogM30sICIuIFRoZSB0ZWFjaGVyIGlzIHZlcnkga25vd2xlZGdlYWJsZSBhbmQgd291bGQgYmUgYSBncmVhdCByZXNvdXJjZSBmb3IgeW91IGluIHRoaXMgYXJlYS5cblxuVW5mb3J0dW5hdGVseSwgdGhlIiwgeyJiIjogMTAsICJvcHRpb25zIjogWyJmdWxsLXRpbWUiLCAiaW50ZXJuZXQiLCAiaW4tY2xhc3MiLCAibW9ybmluZyJdLCAia2V5IjogMn0sICJmb3JtYXQgeW91IGFza2VkIGFib3V0IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlLiBJdCBtYXkgYmUgb2ZmZXJlZCBpbiB0aGUgZnV0dXJlLiBGaW5hbGx5LCByZWdhcmRpbmcgeW91ciByZXF1ZXN0IGFib3V0IGF0dGVuZGluZyB0aGUgdHJhaW5pbmcgd2l0aG91dCIsIHsiYiI6IDExLCAib3B0aW9ucyI6IFsicGF5aW5nIGluIGFkdmFuY2UiLCAicHJvdmlkaW5nIGRvY3VtZW50YXRpb24iLCAiYmVpbmcgY2hhcmdlZCIsICJoYXZpbmcgdGhlIHF1YWxpZmljYXRpb25zIl0sICJrZXkiOiAzfSwgIiwgeW91XHUyMDE5ZCBoYXZlIHRvIHRhbGsgdG8gU2FtYW50aGEgUm9iYmlucywgb3VyIHByb2dyYW0gZGlyZWN0b3IuIEhlciBudW1iZXIgaXMgNTU1LTI2MS0zMzc5LlxuXG5TZWUgeW91IG5leHQgd2VlayFcbkFsZXgiXX1dfSwgeyJpZCI6IDIsICJuYW1lIjogIlJlYWRpbmcgUGFydCAyOiBSZWFkaW5nIHRvIEFwcGx5IGEgRGlhZ3JhbSIsICJ0aW1lIjogIjggbWludXRlcyIsICJwYXNzYWdlIjogeyJ0eXBlIjogInRleHQiLCAibGFiZWwiOiAiUmVhZCB0aGUgZm9sbG93aW5nIGRpYWdyYW0uIiwgImh0bWwiOiAiPHN0eWxlPi5hZS1zaHtib3JkZXI6MXB4IHNvbGlkICNjYmQ1ZTE7Ym9yZGVyLXJhZGl1czo4cHg7b3ZlcmZsb3c6aGlkZGVuO2ZvbnQtc2l6ZToxNHB4O2JhY2tncm91bmQ6I2ZmZn0uYWUtc2gtaGVhZHtiYWNrZ3JvdW5kOiMxZDRlODk7Y29sb3I6I2ZmZjtwYWRkaW5nOjEycHggMTRweDt0ZXh0LWFsaWduOmNlbnRlcn0uYWUtc2gtaGVhZCBoM3ttYXJnaW46MDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtc3R5bGU6aXRhbGljO2xldHRlci1zcGFjaW5nOi41cHh9LmFlLXNoLWhlYWQgcHttYXJnaW46NnB4IDAgMDtjb2xvcjojZTZlZWY3O2ZvbnQtc2l6ZToxMi41cHg7bGluZS1oZWlnaHQ6MS40fS5hZS1zaC1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MXB4O2JhY2tncm91bmQ6I2NiZDVlMX0uYWUtc2gtY29se2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjEwcHggMTRweH0uYWUtc2gtY29sIGg0e21hcmdpbjoxMnB4IDAgNnB4O2NvbG9yOiMxZDRlODk7Zm9udC1zaXplOjE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NiZDVlMTtwYWRkaW5nLWJvdHRvbToycHh9LmFlLXNoLWNvbCBoNC5maXJzdHttYXJnaW4tdG9wOjB9LmFlLXNoLWNvbCBwe21hcmdpbjowIDAgNnB4O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDV9LmFlLXNoLWNvbCB1bHttYXJnaW46MCAwIDZweDtwYWRkaW5nLWxlZnQ6MThweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjV9LmFlLXNoLWFnZXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZy1sZWZ0OjA7bWFyZ2luOjAgMCA2cHh9LmFlLXNoLWFnZSBsaXtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjZ9LmFlLXNoLWFnZSBie2NvbG9yOiNiNTM5N2F9LmFlLXNoLXNjaGVke2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nLWxlZnQ6MDttYXJnaW46MH0uYWUtc2gtc2NoZWQgbGl7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS41NX0uYWUtc2gtc2NoZWQgYntjb2xvcjojMWQ0ZTg5fS5hZS1zaC1mb290e2JhY2tncm91bmQ6I2VlZjJmNztwYWRkaW5nOjhweCAxNHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojMWQ0ZTg5fUBtZWRpYShtYXgtd2lkdGg6NTYwcHgpey5hZS1zaC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9fTwvc3R5bGU+PGRpdiBjbGFzcz1cImFlLXNoXCI+PGRpdiBjbGFzcz1cImFlLXNoLWhlYWRcIj48aDM+U2xhcHNob3QgWW91dGggSG9ja2V5IENhbXA8L2gzPjxwPmlzIHBsZWFzZWQgdG8gb2ZmZXIgaXRzIDEwdGggeWVhciBvZiBob2NrZXkgc2tpbGxzIGluc3RydWN0aW9uIGFuZCBmdW4gYXQgb3VyIG5ldyBhZGRyZXNzLCB0aGUgSi5BLiBXaGVlbGVyIE1lbW9yaWFsIEFyZW5hITwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtc2gtZ3JpZFwiPjxkaXYgY2xhc3M9XCJhZS1zaC1jb2xcIj48aDQgY2xhc3M9XCJmaXJzdFwiPkNhbXBzIGZvciBBbGwgQWdlczwvaDQ+PHA+Q2FtcHMgYXJlIDEgd2VlayBsb25nIGFuZCBvZmZlcmVkIHRocm91Z2hvdXQgSnVseSBhbmQgQXVndXN0LiBFYWNoIGNhbXAgd2lsbCBmb2N1cyBvbiBhbGwgYXNwZWN0cyBvZiB0aGUgZ2FtZSwgZnJvbSBzcG9ydHNtYW5zaGlwIHRvIHNraWxsIGRldmVsb3BtZW50LjwvcD48cD48c3Ryb25nPkZlZXM6PC9zdHJvbmc+ICQyNTAvd2VlayAoMTUlIGRpc2NvdW50IHdoZW4gc2lnbmluZyB1cCBmb3IgbXVsdGlwbGUgd2Vla3MpPC9wPjxwPjxzdHJvbmc+QWdlIEdyb3Vwczo8L3N0cm9uZz48L3A+PHVsIGNsYXNzPVwiYWUtc2gtYWdlXCI+PGxpPjxiPlR5a2VzOjwvYj4gNSZuZGFzaDs2IChKdWx5IG9ubHkpPC9saT48bGk+PGI+Tm92aWNlOjwvYj4gNyZuZGFzaDs4PC9saT48bGk+PGI+QXRvbTo8L2I+IDkmbmRhc2g7MTA8L2xpPjxsaT48Yj5QZWV3ZWU6PC9iPiAxMSZuZGFzaDsxMjwvbGk+PGxpPjxiPkJhbnRhbTo8L2I+IDEzJm5kYXNoOzE0PC9saT48L3VsPjxoND5EYWlseSBTY2hlZHVsZTwvaDQ+PHA+RWFjaCBjYW1wIHJ1bnMgZnJvbSAxMTowMCBhLm0uIHRvIDU6MDAgcC5tLiwgTW9uZGF5Jm5kYXNoO0ZyaWRheS48L3A+PHVsIGNsYXNzPVwiYWUtc2gtc2NoZWRcIj48bGk+PGI+MTE6MDA8L2I+IENoYW5nZSByb29tcywgc3RyZXRjaGluZywgd2FybXVwPC9saT48bGk+PGI+MTE6MzA8L2I+IEdlbmVyYWwgc2tpbGxzPC9saT48bGk+PGI+MTowMDwvYj4gTHVuY2ggaW4gdGhlIGNhZmV0ZXJpYTwvbGk+PGxpPjxiPjI6MDA8L2I+IFNwZWNpYWx0eSBza2lsbHM8L2xpPjxsaT48Yj4zOjAwPC9iPiBQcmFjdGljZSBnYW1lPC9saT48bGk+PGI+NDozMDwvYj4gQ2hhbmdlIHJvb21zPC9saT48bGk+PGI+NTowMDwvYj4gUGlja3VwIHRpbWU8L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXNoLWNvbFwiPjxoNCBjbGFzcz1cImZpcnN0XCI+U3BlY2lhbHR5IFNraWxsczwvaDQ+PHA+RXZlcnkgY2hpbGQgY2hvb3NlcyBhIHNwZWNpYWx0eSBza2lsbCB0byBmb2N1cyBvbiB3aXRoIG9uZSBvZiBvdXIgZXhwZXJ0IGNvYWNoZXM6PC9wPjxwPjxzdHJvbmc+R3JlYXQgR29hbGllczo8L3N0cm9uZz4gT3VyIHNlbWktcHJvIGdvYWxpZSBjb2FjaCB3aWxsIGhhdmUgeW91ciBjaGlsZCBzdG9wcGluZyBtb3JlIHB1Y2tzLjwvcD48cD48c3Ryb25nPlNwZWVkeSBTa2F0ZXJzOjwvc3Ryb25nPiBPdXIgc2thdGluZyBleHBlcnQga25vd3MgYWxsIG9mIHRoZSB0cmlja3MgdG8gZ2V0IHlvdXIgY2hpbGQgc2thdGluZyBmYXN0ZXIuPC9wPjxwPjxzdHJvbmc+U3VwZXIgU2xhcHBlcnM6PC9zdHJvbmc+IE91ciBzaG90IHNwZWNpYWxpc3QgY2FuIGltcHJvdmUgeW91ciBjaGlsZCZyc3F1bztzIGFjY3VyYWN5LCBhaW0sIGFuZCByZWxlYXNlLjwvcD48cD48c3Ryb25nPkJvbGQgQmx1ZWxpbmVyczo8L3N0cm9uZz4gT3VyIGV4LXBybyBkZWZlbnNlbWFuIHdpbGwgaGF2ZSB5b3VyIGNoaWxkIHBsYXlpbmcgZGVmZW5zZSBsaWtlIGEgZnV0dXJlIHByby48L3A+PGg0Pk91ciBGYWNpbGl0aWVzPC9oND48cD5UaGUgcmVjZW50bHktcmVub3ZhdGVkIGFyZW5hIGZlYXR1cmVzOjwvcD48dWw+PGxpPnN0YW5kYXJkLXNpemVkIHJpbms8L2xpPjxsaT5jYWZldGVyaWEsIHNuYWNrIHZlbmRpbmcgbWFjaGluZXM8L2xpPjxsaT5vbi1zaXRlIHNrYXRlIHNoYXJwZW5pbmc8L2xpPjxsaT5jaGFuZ2Ugcm9vbXMgd2l0aCBpbmRpdmlkdWFsIGxvY2tlcnMsIGFuZCBtdWx0aXBsZSBmaXJzdCBhaWQga2l0cy48L2xpPjwvdWw+PHA+QWxsIGVtcGxveWVlcyBhcmUgY2VydGlmaWVkIGluIGFkdmFuY2VkIGZpcnN0IGFpZC48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz1cImFlLXNoLWZvb3RcIj5DYWxsIG9yIGVtYWlsIHRvIHJlZ2lzdGVyISAmbmJzcDsgMjIyLTM1NC02Nzg4ICZuYnNwOyBzbGFwc2hvdHlvdXRoaG9ja2V5Y2FtcEBKQVcuY2E8L2Rpdj48L2Rpdj4ifSwgImJsb2NrcyI6IFt7InR5cGUiOiAiY2xvemUiLCAiaW5zdHIiOiAiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsIG1lc3NhZ2UgYWJvdXQgdGhlIGRpYWdyYW0gb24gdGhlIGxlZnQuIENvbXBsZXRlIHRoZSBlbWFpbCBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwgImJvZHkiOiBbIlRvOiA8c2xhcHNob3R5b3V0aGhvY2tleWNhbXBAamF3LmNhPlxuRnJvbTogPERhdmlkLlN0ZWVsZXNAZW1haWwubnc+XG5cbkdvb2QgYWZ0ZXJub29uLFxuXG5NeSB0d2lucyBhcmUgc2lnbmVkIHVwIGZvciAzIHdlZWtzIG9mIGhvY2tleSBjYW1wIGFuZCBqdXN0IGNvbXBsZXRlZCB0aGVpciBmaXJzdCB3ZWVrLiBUaGUgbmV3IiwgeyJiIjogMSwgIm9wdGlvbnMiOiBbImNvYWNoIiwgImZvY3VzIiwgInNjaGVkdWxlIiwgImxvY2F0aW9uIl0sICJrZXkiOiA0fSwgIndhcyBhIGJpZyBpbmNlbnRpdmUgZm9yIHVzIHRvIGNob29zZSB5b3VyIGNhbXAgYWdhaW4uIFdlIHdlcmUgcmVsaWV2ZWQgdGhhdCB0aGVpciBhZ2UgZ3JvdXAgaXMgbm93IiwgeyJiIjogMiwgIm9wdGlvbnMiOiBbIk5vdmljZSIsICJUeWtlcyIsICJQZWV3ZWUiLCAiQmFudGFtIl0sICJrZXkiOiAxfSwgIiwgYXMgbGFzdCB5ZWFyIHNjaGVkdWxpbmcgd2FzIGRpZmZpY3VsdC4gVGhlIGV4cGVuc2Ugd2FzIGRpZmZpY3VsdDsgaG93ZXZlciwgdGhlIHNhdmluZ3MgZm9yIHJlZ2lzdGVyaW5nIiwgeyJiIjogMywgIm9wdGlvbnMiOiBbImZvciBtb3JlIHRoYW4gb25lIGNhbXAiLCAiZm9yIGEgY2FtcCBpbiBKdWx5IiwgIm1vcmUgdGhhbiBvbmUgY2hpbGQiLCAiYSBtb250aCBpbiBhZHZhbmNlIl0sICJrZXkiOiAxfSwgIm1vcmUgdGhhbiBtYWRlIHVwIGZvciB0aGlzLiBCdXQsIHdlIGRvIGhhdmUgYSBwcm9ibGVtIG5vdy4gSSB3YW50ZWQgbXkgZ2lybHMgdG8gc2lnbiB1cCBmb3IiLCB7ImIiOiA0LCAib3B0aW9ucyI6IFsiR3JlYXQgR29hbGllcyIsICJTcGVlZHkgU2thdGVycyIsICJTdXBlciBTbGFwcGVycyIsICJCb2xkIEJsdWVsaW5lcnMiXSwgImtleSI6IDR9LCAiLCBmb3IgdGhlIHdob2xlIHRpbWUsIHNpbmNlIGl0IGlzIHJ1biBieSBhIGZvcm1lciBwcm9mZXNzaW9uYWwuIEhvd2V2ZXIsIHRoZXlcdTIwMTl2ZSBub3cgZGVjaWRlZCB0aGV5XHUyMDE5ZCBsaWtlIHRvIHRyeSBhIGRpZmZlcmVudCBza2lsbC4gQWxzbywgeW91ciBicm9jaHVyZSBoYWQgbWVudGlvbmVkIHRoYXQgYWxsIHN0YWZmIiwgeyJiIjogNSwgIm9wdGlvbnMiOiBbImhhdmUgcmVjZWl2ZWQgZW1lcmdlbmN5IG1lZGljYWwgdHJhaW5pbmciLCAiY2FuIHNoYXJwZW4gdGhlIGtpZHNcdTIwMTkgc2thdGVzIGZvciB0aGVtIiwgImFyZSBleHBlcmllbmNlZCB0ZWFjaGluZyB5b3VuZyBjaGlsZHJlbiIsICJoYXZlIGF0IGxlYXN0IHNlbWktcHJvZmVzc2lvbmFsIGV4cGVyaWVuY2UiXSwgImtleSI6IDF9LCAiLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIHdhcyBub3QgdGhlIGNhc2Ugd2l0aCB0aGVpciBjb2FjaC4gR2l2ZW4gdGhlc2UgdHdvIGZhY3RvcnMsIEkgYW0gaG9waW5nIG15IGRhdWdodGVycyBjYW4gc3dpdGNoIHRoZWlyIHNraWxsIGNob2ljZSBmb3IgdGhlIHNlY29uZCBhbmQgdGhpcmQgd2Vla3MuIFRoYW5rcyBpbiBhZHZhbmNlLlxuXG5TaW5jZXJlbHksXG5cbkRhdmlkIFN0ZWVsZXMiXX0sIHsidHlwZSI6ICJzdGVtbGlzdCIsICJpbnN0ciI6ICJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24uIiwgIml0ZW1zIjogW3sibiI6IDYsICJwcmUiOiAiV2hhdCBpcyB0cnVlIG9mIGFsbCB0aGUgY2FtcHM\/IiwgIm9wdGlvbnMiOiBbIlRoZXkgb2ZmZXIgcHJhY3RpY2UgaW4gYSB2YXJpZXR5IG9mIHNwb3J0cy4iLCAiVGhleSBhZGRyZXNzIHZhcmlvdXMgZWxlbWVudHMgb2YgYSBzcG9ydC4iLCAiVGhleSB0YWtlIHBsYWNlIGluIGRpZmZlcmVudCBzcG9ydHMgYXJlbmFzLiIsICJUaGV5IGFyZSB0YXVnaHQgYnkgeW91bmcgc3BvcnRzIGNvYWNoZXMuIl0sICJrZXkiOiAyfSwgeyJuIjogNywgInByZSI6ICJXaGF0IGlzIGZvciBzYWxlIGF0IHRoZSBjYW1wcz8iLCAib3B0aW9ucyI6IFsiaG9ja2V5IGd1aWRlcyIsICJzcG9ydHMgZXF1aXBtZW50IiwgImZvb2QgYW5kIGRyaW5rcyIsICJmaXJzdCBhaWQga2l0cyJdLCAia2V5IjogM30sIHsibiI6IDgsICJwcmUiOiAiV2hhdCBkb2VzIERhdmlkIFN0ZWVsZXMgbW9zdCBsaWtlbHkgYmVsaWV2ZT8iLCAib3B0aW9ucyI6IFsiQSBjb2FjaFx1MjAxOXMgY2FyZWVyIGJhY2tncm91bmQgaXMgYSB3b3J0aHdoaWxlIGNvbnNpZGVyYXRpb24uIiwgIlByaWNlIGlzIGFuIHVuaW1wb3J0YW50IGZhY3RvciBpbiBraWRzXHUyMDE5IHNwb3J0cyBwYXJ0aWNpcGF0aW9uLiIsICJJdCBpcyBpbXBvcnRhbnQgZm9yIGNoaWxkcmVuIHRvIGZpbmlzaCB0aGUgY291cnNlIHRoZXkgZW5yb2xsIGluLiIsICJBIGNvYWNoXHUyMDE5cyBwb3NpdGl2ZSBhdHRpdHVkZSBpcyBtb3JlIGltcG9ydGFudCB0aGFuIHRyYWluaW5nLiJdLCAia2V5IjogMX1dfV19LCB7ImlkIjogMywgIm5hbWUiOiAiUmVhZGluZyBQYXJ0IDM6IFJlYWRpbmcgZm9yIEluZm9ybWF0aW9uIiwgInRpbWUiOiAiOSBtaW51dGVzIiwgInBhc3NhZ2UiOiB7InR5cGUiOiAidGV4dCIsICJsYWJlbCI6ICJSZWFkIHRoZSBmb2xsb3dpbmcgcGFzc2FnZS4iLCAiaHRtbCI6ICI8cD48c3Ryb25nPkEuPC9zdHJvbmc+IFJpZGluZyBNb3VudGFpbiBOYXRpb25hbCBQYXJrIGluIHNvdXRoZXJuIE1hbml0b2JhIGhhcyBhIGdvdmVybm1lbnQgZGVzaWduYXRpb24gcmVjb2duaXppbmcgdGhlIDEwMDAgc3F1YXJlIG1pbGVzIG9mIHBhcmtsYW5kIHRoYXQgaXMgaG9tZSB0byB0aHJlZSBkaWZmZXJlbnQgZWNvc3lzdGVtczogZ3Jhc3NsYW5kcywgYm9yZWFsIGZvcmVzdHMsIGFuZCBkZWNpZHVvdXMgZm9yZXN0cy4gQ2xlYXIgTGFrZSwgdGhlIGxhcmdlc3QgbGFrZSBpbiB0aGUgcGFyaywgaXMgYSBjb21tb24gYm9hdGluZyBzaXRlLiBUaGUgdG93bnNpdGUgb2YgV2FzYWdhbWluZywgdGhlIG9ubHkgdG93biBsb2NhdGVkIGluIHRoZSBwYXJrLCBpcyBhIHBvcHVsYXIgc3VtbWVyIHRvdXJpc3QgZGVzdGluYXRpb24gd2l0aCBxdWFpbnQgc2hvcHMsIGEgbG9nIGNhYmluIG11c2V1bSwgYSB0aGVhdHJlLCBhbmQgYSBQYXJrcyBDYW5hZGEgaW50ZXJwcmV0YXRpb24gY2VudHJlLiBGdXJ0aGVyIGVudGljaW5nIG5hdHVyZSBsb3ZlcnMgdG8gdGhlIHJlZ2lvbiBhcmUgYSBudW1iZXIgb2YgcHJpdmF0ZSBjb3R0YWdlcyBuZWFyIHRoZSB0b3duIGFuZCBpbiB0aGUgc3Vycm91bmRpbmcgYXJlYXMuPC9wPjxwPjxzdHJvbmc+Qi48L3N0cm9uZz4gUmlkaW5nIE1vdW50YWluIHdhcyBvcmlnaW5hbGx5IHRoZSBzaXRlIG9mIGEgdHJhZGluZyBwb3N0IGVzdGFibGlzaGVkIGJ5IHRoZSBIdWRzb24mcnNxdW87cyBCYXkgQ29tcGFueSBpbiAxNzQxLiBJdCB3YXMgdGhlcmUgdGhhdCBzb21lIG9mIHRoZSBmaXJzdCBDYW5hZGlhbiBleHBsb3JlcnMgcmVzaWRpbmcgaW4gdGhlIGFyZWEgYmVnYW4gdHJhZGluZyB3aXRoIHRoZSBGaXJzdCBOYXRpb25zIHBlb3BsZS4gSGVucnkgSG91bGUgSGluZCwgYSBzdXJ2ZXlvciBmb3IgdGhlIENhbmFkaWFuIGdvdmVybm1lbnQsIGRvY3VtZW50ZWQgdGhlIGFyZWEmcnNxdW87cyByaWNoIG5hdHVyYWwgcmVzb3VyY2VzLiBTb29uIGFmdGVyd2FyZHMsIHRoZSBwcmVzZXJ2YXRpb24gb2YgdGhlIGZvcmVzdCBiZWNhbWUgYSBrZXkgcHJpb3JpdHksIGFuZCB0aGUgbG9nZ2luZyB3b3JrIHRoYXQgaGFkIGJlZW4gZ29pbmcgb24gd2FzIGhhbHRlZC4gU3Vic2VxdWVudGx5LCBSaWRpbmcgTW91bnRhaW4gb2ZmaWNpYWxseSBiZWNhbWUgYSBuYXRpb25hbCBwYXJrIG9uIE1heSAzMCwgMTkzMy4gVGhlIGluZnJhc3RydWN0dXJlIGFuZCByb2FkcyB3ZXJlIGNvbXBsZXRlZCBpbiAxOTM0IGJ5IGxhYm91cmVycyBlbXBsb3llZCB0aHJvdWdoIENhbmFkYSZyc3F1bztzIGRlcHJlc3Npb24gcmVsaWVmIHByb2dyYW1zLjwvcD48cD48c3Ryb25nPkMuPC9zdHJvbmc+IEEgcHJvbWluZW50IGluZGl2aWR1YWwgYXNzb2NpYXRlZCB3aXRoIGVhcmx5IGNvbnNlcnZhdGlvbiBlZmZvcnRzIGluIFJpZGluZyBNb3VudGFpbiB3YXMgQXJjaGliYWxkIEJlbGFuZXkuIEhlIHdhcyBiZXR0ZXIga25vd24gYXMgR3JleSBPd2wsIHRoZSBGaXJzdCBOYXRpb25zIG5hbWUgYW5kIGlkZW50aXR5IGhlIGFkb3B0ZWQuIEhlIGxpdmVkIGluIGEgc2VjbHVkZWQgY2FiaW4gd2l0aCB0d28gYmVhdmVycywgSmVsbHkgUm9sbCBhbmQgUmF3aGlkZS4gR3JleSBPd2wgd29ya2VkIHRvIGVuc3VyZSB0aGUgcHJvdGVjdGlvbiBvZiB0aGUgZXhpc3RpbmcgYmVhdmVyIGNvbG9uaWVzIGluIHRoZSBwYXJrbGFuZC4gRGVzcGl0ZSBoaXMgZWZmb3J0cywgY2lyY3Vtc3RhbmNlcyBmb3IgdGhlIGJlYXZlcnMgYmVjYW1lIHByZWNhcmlvdXMgZHVlIHRvIHRoZSBkcm91Z2h0LWxpa2UgY29uZGl0aW9ucyBpbiB0aGUgcGFyay4gQWZ0ZXIgNiBtb250aHMgb2Ygd29ya2luZyB0b3dhcmRzIHNhdmluZyB0aGUgZGVjaW1hdGVkIGJlYXZlciBwb3B1bGF0aW9uLCBoZSB3YXMgZm9yY2VkIHRvIGZpbmQgbW9yZSBzdWl0YWJsZSBsaXZpbmcgY29uZGl0aW9ucyBpbiBTYXNrYXRjaGV3YW4uIFRvIHRoaXMgZGF5LCBHcmV5IE93bCZyc3F1bztzIGNhYmluIGlzIG1haW50YWluZWQgYXMgYSB0b3VyaXN0IGF0dHJhY3Rpb24uPC9wPjxwPjxzdHJvbmc+RC48L3N0cm9uZz4gQ3VycmVudGx5LCBSaWRpbmcgTW91bnRhaW4gY29udGludWVzIHRvIGRyYXcgZnJvbSBpdHMgbG9uZyBoaXN0b3J5LiBUaGUgaW50ZXJwcmV0YXRpb24gY2VudHJlIHN0cml2ZXMgdG8gY29ubmVjdCBuYXR1cmUgZW50aHVzaWFzdHMgd2l0aCB0aGUgbGFuZHNjYXBlIGJ5IHByb3ZpZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXJlYSZyc3F1bztzIGRpdmVyc2UgZWNvc3lzdGVtcywgaW4gYWRkaXRpb24gdG8gdGhlIG9uZ29pbmcgd29yayBieSBlbnZpcm9ubWVudGFsaXN0cyB0byBwcmVzZXJ2ZSB0aGVtLiBBbHRob3VnaCBtYW55IHRvdXJpc3RzIGZsb2NrIHRvIHRoZSBwYXJrIGZvciBpdHMgbnVtZXJvdXMgb3V0ZG9vciBhY3Rpdml0aWVzLCBsaWtlIGJvYXRpbmcsIGdvbGYsIHRlbm5pcywgYW5kIGNhbXBpbmcsIG1hbnkgYXJlIHVuYXdhcmUgb2YgdGhlIGVmZm9ydHMgYmVpbmcgbWFkZSBieSBsb2NhbCBJbmRpZ2Vub3VzIGdyb3Vwcywgc2NpZW50aXN0cywgYW5kIGdvdmVybm1lbnQgd29ya2VycyB0byBlbnN1cmUgdGhlIGxvbmctdGVybSBzdXN0YWluYWJpbGl0eSBvZiB0aGUgcGFyayBmb3IgZnV0dXJlIGdlbmVyYXRpb25zLjwvcD48cD48c3Ryb25nPkUuPC9zdHJvbmc+IE5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIGFib3ZlIHBhcmFncmFwaHMuPC9wPiJ9LCAiYmxvY2tzIjogW3sidHlwZSI6ICJtYXRjaCIsICJpbnN0ciI6ICJEZWNpZGUgd2hpY2ggcGFyYWdyYXBoLCBBIHRvIEQsIGhhcyB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gZWFjaCBzdGF0ZW1lbnQgYmVsb3cuIFNlbGVjdCBFIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyBub3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBwYXJhZ3JhcGhzLiIsICJsZXR0ZXJzIjogWyJBIiwgIkIiLCAiQyIsICJEIiwgIkUiXSwgIml0ZW1zIjogW3sibiI6IDEsICJ0ZXh0IjogIlRoZSBwYXJrIGlzIGhvbWUgdG8gYSB2YXJpZXR5IG9mIHZlZ2V0YXRpb24gZHVlIHRvIGl0cyBkaXN0aW5jdCBlbnZpcm9ubWVudHMuIiwgImtleSI6IDF9LCB7Im4iOiAyLCAidGV4dCI6ICJUaGUgZWR1Y2F0aW9uYWwgZmFjaWxpdHkgaW4gUmlkaW5nIE1vdW50YWluIGhpZ2hsaWdodHMgb2ZmaWNpYWwgY29uc2VydmF0aW9uIHdvcmsuIiwgImtleSI6IDR9LCB7Im4iOiAzLCAidGV4dCI6ICJBIGhpc3RvcmljIGhvbWUgYXNzb2NpYXRlZCB3aXRoIFJpZGluZyBNb3VudGFpblx1MjAxOXMgcGFzdCBicmluZ3MgaW4gdmlzaXRvcnMuIiwgImtleSI6IDN9LCB7Im4iOiA0LCAidGV4dCI6ICJUaGUgcGFyayBhbmQgbmVpZ2hib3VyaW5nIGFyZWFzIGhhdmUgY2FiaW5zIGZvciBvdmVybmlnaHQgc3RheXMuIiwgImtleSI6IDF9LCB7Im4iOiA1LCAidGV4dCI6ICJTb21lIG9mIFJpZGluZyBNb3VudGFpblx1MjAxOXMgZGV2ZWxvcG1lbnQgb2NjdXJyZWQgYXMgcGFydCBvZiBhIGZpbmFuY2lhbCByZWNvdmVyeSBpbml0aWF0aXZlLiIsICJrZXkiOiAyfSwgeyJuIjogNiwgInRleHQiOiAiSGlzdG9yaWNhbGx5LCBSaWRpbmcgTW91bnRhaW4gaGFzIGV4cGVyaWVuY2VkIHNldmVyZSB3ZWF0aGVyIGNvbmRpdGlvbnMuIiwgImtleSI6IDN9LCB7Im4iOiA3LCAidGV4dCI6ICJDb21tZXJjZSBiZXR3ZWVuIHNldHRsZXJzIGFuZCBJbmRpZ2Vub3VzIHBlb3BsZXMgb25jZSB0b29rIHBsYWNlIGF0IFJpZGluZyBNb3VudGFpbi4iLCAia2V5IjogMn0sIHsibiI6IDgsICJ0ZXh0IjogIkNsZWFyIExha2UgaXMgYSBmcmVzaHdhdGVyIGxha2UgdGhhdCBhZmZvcmRzIGZpc2hpbmcgZW50aHVzaWFzdHMgc2V2ZXJhbCBmaXNoaW5nIG9wdGlvbnMuIiwgImtleSI6IDV9LCB7Im4iOiA5LCAidGV4dCI6ICJSaWRpbmcgTW91bnRhaW4gaXMgb25lIG9mIHRoZSB3b3JsZFx1MjAxOXMgdG9wIHRvdXJpc3QgYXR0cmFjdGlvbnMuIiwgImtleSI6IDV9XX1dfSwgeyJpZCI6IDQsICJuYW1lIjogIlJlYWRpbmcgUGFydCA0OiBSZWFkaW5nIGZvciBWaWV3cG9pbnRzIiwgInRpbWUiOiAiMTIgbWludXRlcyIsICJwYXNzYWdlIjogeyJ0eXBlIjogInRleHQiLCAibGFiZWwiOiAiUmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGUgZnJvbSBhIHdlYnNpdGUuIiwgImh0bWwiOiAiPHA+PHN0cm9uZz5JbnZlc3RvciBFZHVjYXRpb248L3N0cm9uZz48L3A+PHA+Q2FuYWRpYW4gaGlnaCBzY2hvb2wgY3VycmljdWx1bSBzaG91bGQgaW5zdGlsbCBtb3JlIGxpZmUgc2tpbGxzIGluIHN0dWRlbnRzLiBBIG51bWJlciBvZiBoaWdoIHNjaG9vbHMgdGVhY2ggcHJhY3RpY2FsIHNraWxscyBzdWNoIGFzIGNhcnBlbnRyeSBhbmQgd29yay1yZWxhdGVkIHNraWxscyBzdWNoIGFzIGtleWJvYXJkaW5nLiBTb21lIGFscmVhZHkgaW5jbHVkZSBwZXJzb25hbCBtb25leSBtYW5hZ2VtZW50IGNvdXJzZXMsIGJ1dCB3aHkgbm90IGFkZCBmaW5hbmNpYWwgaW52ZXN0aW5nPyBUZWVuYWdlcnMgd2hvIGNhbiB0ZWxsIGEgaGFtbWVyIGZyb20gYSBzY3Jld2RyaXZlciBzaG91bGQgYWxzbyBiZSBhYmxlIHRvIHRlbGwgYSBHdWFyYW50ZWVkIEluY29tZSBDZXJ0aWZpY2F0ZSBmcm9tIGEgQ2FuYWRhIFNhdmluZ3MgQm9uZC48L3A+PHA+VGhlIHJhdGlvbmFsZSBpcyB0aGF0IHRvZGF5JnJzcXVvO3MgeW91bmcgYWR1bHRzIG5lZWQgc3Ryb25nIGZpbmFuY2lhbCBza2lsbHMgdG8gaGVscCB0aGVtIHVuZGVyc3RhbmQgdGhlIGNvbmNlcHQgb2Ygc2F2aW5nIGFuZCBidWlsZGluZyByZXR1cm4gb24gdGhlaXIgc2F2aW5ncy4gVG9vIG1hbnkgcGFyZW50cyBvZiB0aGlzIGdlbmVyYXRpb24gaGF2ZSwgdW5mb3J0dW5hdGVseSwgYmVlbiByZW1pc3MgaW4gcHJlcGFyaW5nIGZvciB0aGVpciByZXRpcmVtZW50IHdoaWNoIG1lYW5zIHRoZXJlIHdpbGwgYmUgbGl0dGxlIGZvciB0aGVpciBjaGlsZHJlbiB0byBpbmhlcml0LiBUbyBpbXByb3ZlIHRoZWlyIHByb3NwZWN0cywgaGlnaCBzY2hvb2wgdGVlbmFnZXJzIG5lZWQgdG8gbGVhcm4gZmluYW5jaWFsIGludmVzdGluZy48L3A+PHA+SSBzdWdnZXN0ZWQgdGhpcyB0byBhIHNjaG9vbCBzdXBlcmludGVuZGVudCwgYW5kIGhlIHNhaWQgaXQgd291bGQgc21hY2sgb2YgY2FwaXRhbGlzdCBlbGl0aXNtOiAmbGRxdW87T3VyIGpvYiBpcyB0byBncmFkdWF0ZSBzb2NpYWxseS1yZXNwb25zaWJsZSwgbGF3LWFiaWRpbmcgY2l0aXplbnMsIG5vdCB0byBoZWxwIHNvY2lldHkmcnNxdW87cyB0b3Agb25lIHBlcmNlbnQgaW5jcmVhc2UgdGhlaXIgc3VycGx1cyB3ZWFsdGguJnJkcXVvOzwvcD48cD5CdXQgc2hvdWxkbiZyc3F1bzt0IGV2ZXJ5IHNvY2lhbGx5IHJlc3BvbnNpYmxlIGNpdGl6ZW4gaW52ZXN0IGluIG9yZGVyIHRvIHN0YXZlIG9mZiBkZXBlbmRlbmNlIG9uIHdlbGZhcmUgcHJvZ3JhbXMgaW4gb2xkIGFnZT8gV2hhdCZyc3F1bztzIGVsaXRpc3QgYWJvdXQgc2F2aW5nIG1vbmV5PzwvcD48cD5NeSB3aWZlIGFuZCBJIHRvb2sgdXAgdGhlIHN1YmplY3Qgd2l0aCBvdXIga2lkJnJzcXVvO3MgRmluYW5jZSB0ZWFjaGVyLiBXaHkgbm90LCBteSB3aWZlIHN1Z2dlc3RlZCwgdGVhY2gga2lkcyBob3cgdG8gaW52ZXN0IGluIGFuIGFzc2V0IHRoYXQgZ3Jvd3MgcmF0aGVyIHRoYW4gZGltaW5pc2hlcyBpbiB2YWx1ZT88L3A+PHA+VGhlIHRlYWNoZXIgc2FpZCB0aGF0IHRoZSBjdXJyaWN1bHVtLCBjcmVhdGVkIGJlZm9yZSB0aGUgZXJhIG9mIGRvLWl0LXlvdXJzZWxmIG9ubGluZSBpbnZlc3RpbmcsIHN0aWxsIHRyZWF0ZWQgaW52ZXN0aW5nIGFzIGEgc3BlY2lhbGl6ZWQgcHJvZmVzc2lvbiBmb3IgdGhlIGZldyByYXRoZXIgdGhhbiBhIHBlcnNvbmFsIGxpZmUgc2tpbGwgZm9yIGFsbC4gJmxkcXVvO0l0IHdvdWxkIG5ldmVyIGZseSB3aXRoIHRoZSBwYXJlbnRzJnJzcXVvOyBjb21taXR0ZWUsIGJ1dCBJJnJzcXVvO2QgbG92ZSB0byBhc3NpZ24gYW4gaW52ZXN0bWVudCBzaW11bGF0aW9uLiBJJnJzcXVvO2QgaGF2ZSBzdHVkZW50cyBzZXQgdXAgYSBwcmFjdGljZSBhY2NvdW50IGF0IGFuIG9ubGluZSBicm9rZXJhZ2UsIHJlc2VhcmNoIGFuZCBidXkgYSBoYW5kZnVsIG9mIHN0b2NrcyBvciBmdW5kcywgYW5kIHNlZSB3aG8gZWFybnMgdGhlIG1vc3QuJnJkcXVvOzwvcD48cD4mbGRxdW87V291bGRuJnJzcXVvO3QgdGhhdCBiZSBwbGF5aW5nIGludG8gYSBjYXBpdGFsaXN0IGFnZW5kYT8mcmRxdW87IEkgYXNrZWQsIHBsYXlpbmcgZGV2aWwmcnNxdW87cyBhZHZvY2F0ZS48L3A+PHA+JmxkcXVvO05vLCBJIHRoaW5rIHdlJnJzcXVvO2QgYmUgcHJvdGVjdGluZyB0aGVtIGZyb20gY2FwaXRhbGlzbSZtZGFzaDt3ZWxsLCBmcm9tIGdyZWVkeSBmaW5hbmNpYWwgYWR2aXNvcnMgYW55d2F5LiBZb3UgY291bGQgcHJlc2VudCB5b3VyIGlkZWEgdG8gdGhlIERlcGFydG1lbnQgb2YgRWR1Y2F0aW9uLCB5b3Uga25vdy4gVGhleSBhcmUgdGhlIGN1cnJpY3VsdW0gZXhwZXJ0cy4mcmRxdW87PC9wPiJ9LCAiYmxvY2tzIjogW3sidHlwZSI6ICJzdGVtbGlzdCIsICJpbnN0ciI6ICJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBvbiB0aGUgd2Vic2l0ZS4iLCAiaXRlbXMiOiBbeyJuIjogMSwgInByZSI6ICJUaGUgbWFpbiBpc3N1ZSBkaXNjdXNzZWQgaXMgd2hldGhlciBvciBub3QiLCAib3B0aW9ucyI6IFsiY2hpbGRyZW4gc2hvdWxkIGJlIHByb3RlY3RlZCBmcm9tIGNhcGl0YWxpc20uIiwgImludmVzdG1lbnQgaXMgYW4gYXBwcm9wcmlhdGUgY291cnNlIG9mIHN0dWR5LiIsICJwYXJlbnRzIHdpbGwgYWxsb3cgdGhlaXIga2lkcyB0byBpbnZlc3QuIiwgInNjaG9vbHMgZW5jb3VyYWdlIGFuIGVsaXRpc3QgY3VycmljdWx1bS4iXSwgImtleSI6IDJ9LCB7Im4iOiAyLCAicHJlIjogIldpdGggd2hpY2ggcHJlZGljdGlvbiB3b3VsZCB0aGUgYXV0aG9yIGFncmVlPyIsICJvcHRpb25zIjogWyJEby1pdC15b3Vyc2VsZiBpbnZlc3RvcnMgd2lsbCBuZWVkIGFkdmlzb3JzLiIsICJFbGRlcmx5IHBlb3BsZSB3aWxsIG91dGxpdmUgdGhlaXIgc2F2aW5ncy4iLCAiUGFyZW50cyB3aWxsIGhhdmUgbW9yZSBpbnZlc3RtZW50IGluY29tZS4iLCAiV29ya2VycyB3aWxsIGhhdmUgYmV0dGVyIHBlbnNpb24gcGxhbnMuIl0sICJrZXkiOiAyfSwgeyJuIjogMywgInByZSI6ICJUaGUgcGFyZW50c1x1MjAxOSBjb21taXR0ZWUgd291bGQgbGlrZWx5IGFncmVlIHdpdGggdGhlIiwgIm9wdGlvbnMiOiBbImF1dGhvci4iLCAiYXV0aG9yXHUyMDE5cyB3aWZlLiIsICJzdXBlcmludGVuZGVudC4iLCAiRmluYW5jZSB0ZWFjaGVyLiJdLCAia2V5IjogM30sIHsibiI6IDQsICJwcmUiOiAiVGhlIHN1cGVyaW50ZW5kZW50IHdvdWxkIGFncmVlIHRoYXQiLCAib3B0aW9ucyI6IFsiY2FwaXRhbGlzbSBpcyBpbXBvcnRhbnQgZm9yIHN1Y2Nlc3MuIiwgImludmVzdG1lbnQgY29uY2VybnMgb25seSB0aGUgd2VhbHRoeS4iLCAic2Nob29scyBzaG91bGQgY2F0ZXIgdG8gdGhlIGVsaXRlLiIsICJ1cC10by1kYXRlIGN1cnJpY3VsdW0gaXMgZXNzZW50aWFsLiJdLCAia2V5IjogMn0sIHsibiI6IDUsICJwcmUiOiAiVGhlIHdyaXRlciBhbmQgdGhlIHN1cGVyaW50ZW5kZW50IHdvdWxkIGFncmVlIHRoYXQiLCAib3B0aW9ucyI6IFsicmV0aXJlbWVudCBpbnZlc3RtZW50cyBzaG91bGQgYmUgZGl2ZXJzaWZpZWQuIiwgImVsaXRpc20gc2hvdWxkIGJlIHRhdWdodCBpbiBoaWdoIHNjaG9vbHMuIiwgImdvdmVybm1lbnRzIHNob3VsZCByZWRpc3RyaWJ1dGUgd2VhbHRoLiIsICJwdWJsaWMgYWNjb3VudGFiaWxpdHkgc2hvdWxkIGJlIHZhbHVlZC4iXSwgImtleSI6IDR9XX0sIHsidHlwZSI6ICJjbG96ZSIsICJpbnN0ciI6ICJUaGUgZm9sbG93aW5nIGlzIGEgY29tbWVudCBieSBhIHZpc2l0b3IgdG8gdGhlIHdlYnNpdGUgcGFnZS4gQ29tcGxldGUgdGhlIGNvbW1lbnQgYnkgY2hvb3NpbmcgdGhlIGJlc3Qgb3B0aW9uIHRvIGZpbGwgaW4gZWFjaCBibGFuay4iLCAiYm9keSI6IFsiVGhpcyBpcyB5ZXQgYW5vdGhlciB0aXJlZCBkZWJhdGUgYWJvdXQgd2hldGhlciBzY2hvb2xzIHNob3VsZCIsIHsiYiI6IDYsICJvcHRpb25zIjogWyJhbGxvdyBleHRlcm5hbCBleHBlcnRzIHRvIHRlYWNoIGNvdXJzZXMiLCAibGlzdGVuIHRvIHBhcmVudHMgb3IgaWdub3JlIHRoZWlyIHN1Z2dlc3Rpb25zIiwgIm1lZGlhdGUgY29uZmxpY3RzIG9yIHJlbWFpbiBuZXV0cmFsIiwgInRha2UgZWR1Y2F0aW9uYWwgcmlza3Mgb3IgdGhlIHNhZmUgcm91dGUiXSwgImtleSI6IDR9LCAiLiBUb28gbWFueSBwZW9wbGUgc2VlbSIsIHsiYiI6IDcsICJvcHRpb25zIjogWyJhZnJhaWQgb2YgY2hhbmdlIiwgIndvcnJpZWQgYWJvdXQgc2VsZi1pbWFnZSIsICJmb3JnZXRmdWwgb2YgZHV0aWVzIiwgInVuc3VyZSBvZiB0aGVpciBmaW5hbmNlcyJdLCAia2V5IjogMX0sICJhbmQgcmVsdWN0YW50IHRvIHN0ZXAgb24gdGhlIHRvZXMgb2Ygc3Rha2Vob2xkZXJzLCBiZSB0aGV5IHBhcmVudHMsIHRlYWNoZXJzIG9yIGFkbWluaXN0cmF0b3JzLiBNYXliZSB0aGF0XHUyMDE5cyB3aHkgZm9yIGEgZGVjYWRlIHRoZSBZb3VuZyBTdWNjZXNzIG9yZ2FuaXphdGlvbiBoYXMgYmVlbiBwYWlyaW5nIHVwIGhpZ2ggc2Nob29sIHRlYWNoZXJzIHdpdGggdm9sdW50ZWVyIG1lbnRvcnMgZnJvbSB0aGUgZmluYW5jaWFsIGNvbW11bml0eS4gVGhlIG1lbnRvcnMgZ3VpZGUgc3R1ZGVudHMgdGhyb3VnaCBhIGNvbXBldGl0aXZlIGNsYXNzcm9vbS1iYXNlZCBzaW11bGF0aW9uIG9mIGJ1eWluZyBhbmQgc2VsbGluZyBlcXVpdGllcyBvbiB0aGUgVG9yb250byBTdG9jayBFeGNoYW5nZS4gQ2xlYXJseSB0aGUgYXV0aG9yIGhhcyIsIHsiYiI6IDgsICJvcHRpb25zIjogWyJzdXJ2ZXllZCBhIGxhcmdlIHBvcHVsYXRpb24iLCAiZG9uZSBpbnN1ZmZpY2llbnQgcmVzZWFyY2giLCAidGFsa2VkIHdpdGggaW52ZXN0bWVudCBleHBlcnRzIiwgInN0YXRlZCBpbmNvcnJlY3QgZmFjdHMiXSwgImtleSI6IDJ9LCAiLiBZb3VuZyBTdWNjZXNzIHByb2dyYW1zIGFyZSBwb3B1bGFyIHdpdGggaGlnaCBzY2hvb2wgYnVzaW5lc3MgZGVwYXJ0bWVudHMgYW5kIHN0dWRlbnRzLCBidXQgc29tZSBzdGFrZWhvbGRlcnMgcmVzZW50IHRoZSBwcml2YXRlIHNlY3Rvclx1MjAxOXMiLCB7ImIiOiA5LCAib3B0aW9ucyI6IFsiY2FwaXRhbGl6aW5nIG9uIiwgImRpc2ludGVyZXN0IGluIiwgImluZmx1ZW5jZSBvbiIsICJjb250cm9sIG9mIl0sICJrZXkiOiAzfSwgInB1YmxpYyBlZHVjYXRpb24uIFRha2UgZm9yIGV4YW1wbGUgdGhlIHN1cGVyaW50ZW5kZW50IHdob3NlIHJhZGljYWwgdmlldyBhdHRyaWJ1dGVzIiwgeyJiIjogMTAsICJvcHRpb25zIjogWyJjYXBpdGFsaXN0IGVsaXRpc20iLCAiaW52ZXN0bWVudCBrbm93bGVkZ2UiLCAic29jaWFsIHJlc3BvbnNpYmlsaXR5IiwgIndlbGZhcmUgZGVwZW5kZW5jZSJdLCAia2V5IjogMn0sICJvbmx5IHRvIHRoZSBhbHJlYWR5IHdlYWx0aHkuIFRoaXMgc2ltcGx5IGlzblx1MjAxOXQgdHJ1ZS4iXX1dfV19OwoKZnVuY3Rpb24gY2xiRXN0aW1hdGVSKHJhdyl7CiAgaWYgKHJhdyA+PSAzNSkgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCAxMFx1MjAxMzEyJywgbm90ZTonQWR2YW5jZWQgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAzMCkgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA5JywgIG5vdGU6J0VmZmVjdGl2ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDI3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDgnLCAgbm90ZTonR29vZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDIyKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDcnLCAgbm90ZTonQWRlcXVhdGUgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAxNykgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA2JywgIG5vdGU6J0RldmVsb3BpbmcgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAxMSkgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA1JywgIG5vdGU6J0FjcXVpcmluZyBwcm9maWNpZW5jeScgfTsKICByZXR1cm4geyBsZXZlbDonQ0VMUElQIDQgb3IgYmVsb3cnLCBub3RlOidLZWVwIHByYWN0aWNpbmchJyB9Owp9CgooZnVuY3Rpb24oKXsKICAvKiAtLS0tIGluamVjdCBzY29wZWQgQ1NTIChXb3JkUHJlc3Mtc2FmZTogPHN0eWxlPiBpbiBjb250ZW50IGNhbiBiZSBzdHJpcHBlZCkgLS0tLSAqLwogIHZhciBDU1MgPSBgCi5jbHByLXdyYXB7LS1uYXZ5OiMwNTBFMjA7LS1iOTAwOiMwRDIzNTI7LS1iNzAwOiMxMjQ1QTg7LS1iNTAwOiMyNTYzRUI7LS1iNDAwOiMzQjgyRjY7LS1iMjAwOiM5M0M1RkQ7LS1iMTAwOiNEQkVBRkU7LS1iNTA6I0VGRjZGRjstLXRlYWw6IzBEOTQ4ODstLWN5YW46IzA2QjZENDstLWdyZWVuOiMxMEI5ODE7LS1ncmVlbjUwOiNFQ0ZERjU7LS1yb3NlOiNGNDNGNUU7LS10ZXh0OiMwRjE3MkE7LS1tdXRlZDojNDc1NTY5Oy0tc3VidGxlOiM5NEEzQjg7LS1ib3JkZXI6I0UyRThGMDstLWJhci1iZzojRThFQkVGOy0tYmFyLWJvcmRlcjojRDNEOUUwOy0tYmFyLXRleHQ6IzFGMjkzNzstLXBhbmVsLXAtYmc6I0Y0RjVGNzstLXBhbmVsLXAtYm9yZGVyOiNFM0U2RUE7LS1wYW5lbC1xLWJnOiNFOUY0Rjc7LS1wYW5lbC1xLWJvcmRlcjojRDZFOEVEOy0tZGQtb3Blbi1iZzojQ0JFQkY0O2ZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2Fucycsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sU2Vnb2UgVUksUm9ib3RvLHNhbnMtc2VyaWY7Y29sb3I6dmFyKC0tdGV4dCk7bWF4LXdpZHRoOjExODBweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MTZweCAxNnB4IDU2cHg7bGluZS1oZWlnaHQ6MS41O2ZvbnQtc2l6ZToxNnB4O30KLmNscHItd3JhcCAqLC5jbHByLXdyYXAgKjo6YmVmb3JlLC5jbHByLXdyYXAgKjo6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94O30KLmNscHItd3JhcCBidXR0b257Zm9udC1mYW1pbHk6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt9Ci5jbHByLXdyYXAgaDEsLmNscHItd3JhcCBoMiwuY2xwci13cmFwIGgzLC5jbHByLXdyYXAgcHttYXJnaW46MDt9Ci5jbHByLWhlcm97cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1yYWRpdXM6MjJweDtiYWNrZ3JvdW5kOnZhcigtLW5hdnkpO2NvbG9yOiNmZmY7cGFkZGluZzozNHB4IDM4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTNweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2JveC1zaGFkb3c6MCAyMHB4IDQwcHggLTIwcHggcmdiYSg1LDE0LDMyLC40NSk7fQouY2xwci1hdXJvcmF7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO30KLmNscHItYXVyb3JhIHNwYW57cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztib3JkZXItcmFkaXVzOjUwJTtmaWx0ZXI6Ymx1cig0NnB4KTtvcGFjaXR5Oi41NTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgxKXt3aWR0aDo0MjBweDtoZWlnaHQ6NDIwcHg7bGVmdDotMTIwcHg7dG9wOi0yMDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzEyNDVBOCAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDIpe3dpZHRoOjM4MHB4O2hlaWdodDozODBweDtyaWdodDotODBweDt0b3A6LTE2MHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMEQ5NDg4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMyl7d2lkdGg6MzQwcHg7aGVpZ2h0OjM0MHB4O3JpZ2h0OjIyJTtib3R0b206LTI0MHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1oZXJvLWJhZGdlc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30KLmNscHItYmFkZ2UtYnJhbmR7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLWI5MDApO2ZvbnQtd2VpZ2h0OjgwMDtmb250LXNpemU6MTNweDtwYWRkaW5nOjRweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7bGV0dGVyLXNwYWNpbmc6LjAxZW07fQouY2xwci1iYWRnZS1zZXR7Y29sb3I6dmFyKC0tYjIwMCk7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO30KLmNscHItaGVybyBoMXtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6Y2xhbXAoMjZweCw0dncsNDBweCk7Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOi0uMDJlbTtsaW5lLWhlaWdodDoxLjEyO30KLmNscHItaGVyby1zdWJ7cG9zaXRpb246cmVsYXRpdmU7Y29sb3I6I0M3RDJFMztmb250LXNpemU6MTQuNXB4O21heC13aWR0aDo3NjBweDt9Ci5jbHByLWhlcm8tY2hpcHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1jaGlwe2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiNFNUVFRkI7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNik7cGFkZGluZzo1cHggMTFweDtib3JkZXItcmFkaXVzOjk5OXB4O30KLmNscHItY3Rhe3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6NnB4O2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE1cHg7cGFkZGluZzoxMnB4IDIycHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCAxMnB4IDI0cHggLTEwcHggcmdiYSgzNyw5OSwyMzUsLjgpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMsYmFja2dyb3VuZCAuMTVzO30KLmNscHItY3RhOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JhY2tncm91bmQ6dmFyKC0tYjQwMCk7fQouY2xwci10b29sYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6MTBweCAxNHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxNHB4O2JveC1zaGFkb3c6MCA2cHggMThweCAtMTJweCByZ2JhKDE1LDIzLDQyLC4yNSk7cG9zaXRpb246c3RpY2t5O3RvcDo4cHg7ei1pbmRleDozMDt9Ci5jbHByLXRvb2xiYXJbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci10b29sYmFyLXNwYWNlcntmbGV4OjE7fQouY2xwci1zY29yZS1jaGlwe2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTtiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci10YnRue2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Y29sb3I6dmFyKC0tdGV4dCk7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6OHB4IDE1cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xMnMsYm94LXNoYWRvdyAuMTJzO30KLmNscHItdGJ0bjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNnB4IDE0cHggLThweCByZ2JhKDE1LDIzLDQyLC4zKTt9Ci5jbHByLXRidG4tY2hlY2t7YmFja2dyb3VuZDp2YXIoLS1ncmVlbik7Ym9yZGVyLWNvbG9yOnZhcigtLWdyZWVuKTtjb2xvcjojZmZmO30KLmNscHItdGJ0bi1jaGVjazpob3ZlcntiYWNrZ3JvdW5kOiMwY2E2Nzg7fQouY2xwci10YnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZTtib3gtc2hhZG93Om5vbmU7fQouY2xwci1zaW17bWFyZ2luLXRvcDoxNnB4O30KLmNscHItc2ltW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItZG90c3tkaXNwbGF5OmZsZXg7Z2FwOjhweDttYXJnaW46MCAwIDEycHggMnB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItZG90e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZzo2cHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4xNXM7fQouY2xwci1kb3QgYntkaXNwbGF5OmlubGluZS1mbGV4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1iMTAwKTtjb2xvcjp2YXIoLS1iOTAwKTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTFweDt9Ci5jbHByLWRvdC5jbHByLWN1cntiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2JvcmRlci1jb2xvcjp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItY3VyIGJ7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4yNSk7Y29sb3I6I2ZmZjt9Ci5jbHByLWRvdC5jbHByLWRvbmUgYntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtjb2xvcjojZmZmO30KLmNscHItY2F0e2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzowIDEwcHggMzBweCAtMThweCByZ2JhKDE1LDIzLDQyLC40KTt9Ci5jbHByLWJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTFweCAxNnB4O2JhY2tncm91bmQ6dmFyKC0tYmFyLWJnKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLWJhci10aXRsZXtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYmFyLXRleHQpO2ZsZXg6MTttaW4td2lkdGg6MDt9Ci5jbHByLWJhci10aW1lcntmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7d2hpdGUtc3BhY2U6bm93cmFwO30KLmNscHItYmFyLXRpbWVyIGJ7Zm9udC13ZWlnaHQ6ODAwO30KLmNscHItY29sc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjA7fQouY2xwci1wYXNzYWdle3BhZGRpbmc6MjBweCAyMnB4O2JhY2tncm91bmQ6dmFyKC0tcGFuZWwtcC1iZyk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDoxMjAwcHg7b3ZlcmZsb3c6YXV0bzt9Ci5jbHByLXFjb2x7cGFkZGluZzoxOHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1xLWJnKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcGxhYmVsLC5jbHByLWluc3Rye2Rpc3BsYXk6ZmxleDtnYXA6OXB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO21hcmdpbi1ib3R0b206MTJweDt9Ci5jbHByLXBsYWJlbDo6YmVmb3JlLC5jbHByLWluc3RyOjpiZWZvcmV7Y29udGVudDoiaSI7ZmxleDpub25lO3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjgwMDtmb250LXN0eWxlOml0YWxpYztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1wYXNzYWdlIHB7Zm9udC1zaXplOjE0LjVweDtjb2xvcjojMWUyYTNhO21hcmdpbi1ib3R0b206MTFweDtsaW5lLWhlaWdodDoxLjcyO30KLmNscHItcGltZ3t3aWR0aDoxMDAlO2hlaWdodDphdXRvO2JvcmRlcjoxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2ZmZjtkaXNwbGF5OmJsb2NrO30KLmNscHItYmxvY2t7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tcGFuZWwtcS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjE2cHggMTZweDttYXJnaW4tYm90dG9tOjE2cHg7fQouY2xwci1zdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtmb250LXNpemU6MTVweDtjb2xvcjp2YXIoLS10ZXh0KTtwYWRkaW5nOjlweCAwO2xpbmUtaGVpZ2h0OjEuNzt9Ci5jbHByLXN0ZW0gKyAuY2xwci1zdGVte2JvcmRlci10b3A6MXB4IGRhc2hlZCAjRTZFREYxO30KLmNscHItc251bXtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tYjcwMCk7fQouY2xwci1jbG96ZXtmb250LXNpemU6MTVweDtjb2xvcjp2YXIoLS10ZXh0KTtsaW5lLWhlaWdodDoyLjE1O30KLmNscHItY2xvemUgLmNscHItcGFyYXttYXJnaW4tYm90dG9tOjEycHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7fQouY2xwci1tYXRjaC1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDA7Zm9udC1zaXplOjE0LjVweDtsaW5lLWhlaWdodDoxLjY7fQouY2xwci1tYXRjaC1yb3cgKyAuY2xwci1tYXRjaC1yb3d7Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1tYXRjaC1yb3cgLmNscHItc251bXttYXJnaW4tdG9wOjVweDt9Ci8qIGRyb3Bkb3duIHdpZGdldCAqLwouY2xwci1kZHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MnB4IDJweDt9Ci5jbHByLWRkLWJ0bntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21pbi13aWR0aDo2NHB4O21heC13aWR0aDozNDBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQjdDMkNFO2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6NXB4IDlweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjEuMzU7dGV4dC1hbGlnbjpsZWZ0O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTJzLGJvcmRlci1jb2xvciAuMTJzO30KLmNscHItZGQtYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC5jbHByLW9wZW4gLmNscHItZGQtYnRue2JhY2tncm91bmQ6dmFyKC0tZGQtb3Blbi1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO30KLmNscHItZGQtdHh0e2ZsZXg6MTttaW4td2lkdGg6MDt9Ci5jbHByLWRkLXR4dC5jbHByLWVtcHR5e2NvbG9yOnZhcigtLXN1YnRsZSk7bGV0dGVyLXNwYWNpbmc6M3B4O30KLmNscHItZGQtY2FyZXR7Zm9udC1zaXplOjlweDtjb2xvcjp2YXIoLS1iNzAwKTtmbGV4Om5vbmU7fQouY2xwci1kZC1tZW51e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6NjA7dG9wOmNhbGMoMTAwJSArIDRweCk7bGVmdDowO21pbi13aWR0aDoyNDBweDttYXgtd2lkdGg6MzYwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0M2RDBEQTtib3JkZXItcmFkaXVzOjhweDtib3gtc2hhZG93OjAgMTZweCAzNHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjQpO3BhZGRpbmc6NXB4O2Rpc3BsYXk6bm9uZTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1tZW51e2Rpc3BsYXk6YmxvY2s7fQouY2xwci1kZC1vcHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjlweDtwYWRkaW5nOjhweCA5cHg7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS10ZXh0KTtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjQ7fQouY2xwci1kZC1vcHQ6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO30KLmNscHItZGQtb3B0IC5jbHByLXJhZGlve2ZsZXg6bm9uZTt3aWR0aDoxNXB4O2hlaWdodDoxNXB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxLjVweCBzb2xpZCAjOUFBN0I0O21hcmdpbi10b3A6MXB4O30KLmNscHItZGQtb3B0LmNscHItc2VsIC5jbHByLXJhZGlve2JvcmRlci1jb2xvcjp2YXIoLS1iNTAwKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzI1NjNFQiA0MiUsI2ZmZiA0NyUpO30KLmNscHItZGQuY2xwci1yaWdodCAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1ncmVlbjUwKTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWdyZWVuKTtjb2xvcjojMDQ3ODU3O30KLmNscHItZGQuY2xwci13cm9uZyAuY2xwci1kZC1idG57YmFja2dyb3VuZDojRkZGMUYyO2JvcmRlcjoycHggc29saWQgdmFyKC0tcm9zZSk7Y29sb3I6I0JFMTIzQzt9Ci5jbHByLXNvbHZlZHtkaXNwbGF5Om5vbmU7bWFyZ2luLWxlZnQ6N3B4O2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLXNvbHZlZHtkaXNwbGF5OmlubGluZTt9Ci5jbHByLW5hdntkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxNHB4IDE4cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItbmF2YnRue2JhY2tncm91bmQ6dmFyKC0tYjkwMCk7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzLjVweDtwYWRkaW5nOjlweCAyMHB4O2JvcmRlci1yYWRpdXM6OXB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xMnMsYmFja2dyb3VuZCAuMTJzO30KLmNscHItbmF2YnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjcwMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7fQouY2xwci1uYXZidG4uY2xwci1naG9zdHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tbXV0ZWQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG5bZGlzYWJsZWRde29wYWNpdHk6LjQ7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO30KLmNscHItcmVzdWx0c3ttYXJnaW4tdG9wOjE4cHg7fQouY2xwci1yZXN1bHRzW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItcmVzLWNhcmR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE4cHg7cGFkZGluZzoyNHB4IDI2cHg7Ym94LXNoYWRvdzowIDE2cHggNDBweCAtMjJweCByZ2JhKDE1LDIzLDQyLC40KTt9Ci5jbHByLXJlcy10b3B7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MjBweDtmbGV4LXdyYXA6d3JhcDt9Ci5jbHByLXJlcy1zY29yZXtmb250LXNpemU6NDRweDtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tYjcwMCk7bGluZS1oZWlnaHQ6MTt9Ci5jbHByLXJlcy1zY29yZSBzcGFue2ZvbnQtc2l6ZToyMHB4O2NvbG9yOnZhcigtLXN1YnRsZSk7fQouY2xwci1yZXMtY2xie2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjEwcHggMTZweDt9Ci5jbHByLXJlcy1jbGIgYntkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxOHB4O2NvbG9yOnZhcigtLWI5MDApO30KLmNscHItcmVzLWNsYiBzbWFsbHtjb2xvcjp2YXIoLS1tdXRlZCk7fQouY2xwci1yZXMtYnJlYWt7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MTZweDt9Ci5jbHByLXJlcy1waWxse2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojRjFGNUY5O2JvcmRlci1yYWRpdXM6OTk5cHg7cGFkZGluZzo2cHggMTNweDt9Ci5jbHByLXJlcy1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7ZmxleC13cmFwOndyYXA7fQpAbWVkaWEobWF4LXdpZHRoOjgyMHB4KXsuY2xwci1jb2xze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7fS5jbHByLXBhc3NhZ2V7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO21heC1oZWlnaHQ6bm9uZTt9LmNscHItcWNvbHttYXgtaGVpZ2h0Om5vbmU7fX0KYDsKICB2YXIgc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOyBzdC50ZXh0Q29udGVudCA9IENTUzsgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdCk7CiAgdmFyIHdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwcldyYXAnKTsKICB2YXIgc3RhcnRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclN0YXJ0Jyk7CiAgdmFyIHRvb2xiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclRvb2xiYXInKTsKICB2YXIgc2ltID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTaW0nKTsKICB2YXIgZG90c0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJEb3RzJyk7CiAgdmFyIGNhdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJDYXQnKTsKICB2YXIgcmVzdWx0c0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXN1bHRzJyk7CiAgdmFyIHNjb3JlQ2hpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU2NvcmVDaGlwJyk7CiAgdmFyIGNoZWNrQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJDaGVjaycpOwogIHZhciByZXNldEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmVzZXQnKTsKCiAgdmFyIFEgPSBbXTsKICB2YXIgY3VyUGFydCA9IDA7CiAgdmFyIGNoZWNrZWQgPSBmYWxzZTsKCiAgZnVuY3Rpb24gZWwodGFnLCBjbHMsIGh0bWwpeyB2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7IGlmKGNscyllLmNsYXNzTmFtZT1jbHM7IGlmKGh0bWwhPW51bGwpZS5pbm5lckhUTUw9aHRtbDsgcmV0dXJuIGU7IH0KCiAgLyogQnVpbGQgdGhlIHBlcnNpc3RlbnQgcXVlc3Rpb24gbGlzdCBPTkNFOyBhdHRhY2ggLl9xIHRvIGVhY2ggaXRlbS9ibGFuayBzbwogICAgIHJlLXJlbmRlcmluZyBhIHBhcnQgcmV1c2VzIHRoZSBzYW1lIHN0YXRlIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQuICovCiAgZnVuY3Rpb24gaW5pdFF1ZXN0aW9ucygpewogICAgUSA9IFtdOwogICAgUkRBVEEucGFydHMuZm9yRWFjaChmdW5jdGlvbihwYXJ0KXsKICAgICAgcGFydC5ibG9ja3MuZm9yRWFjaChmdW5jdGlvbihibGspewogICAgICAgIGlmKGJsay50eXBlPT09J2Nsb3plJyl7CiAgICAgICAgICBibGsuYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7IGlmKHR5cGVvZiB0b2s9PT0nb2JqZWN0Jyl7IHRvay5fcT17c2VsOm51bGwsa2V5OnRvay5rZXksbjp0b2suYixwYXJ0OnBhcnQuaWR9OyBRLnB1c2godG9rLl9xKTsgfSB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgYmxrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpeyBpdC5fcT17c2VsOm51bGwsa2V5Oml0LmtleSxuOml0Lm4scGFydDpwYXJ0LmlkfTsgUS5wdXNoKGl0Ll9xKTsgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gbWFrZURyb3Bkb3duKG9wdGlvbnMsIHFyZWYpewogICAgdmFyIGRkID0gZWwoJ3NwYW4nLCdjbHByLWRkJyk7CiAgICB2YXIgYnRuID0gZWwoJ2J1dHRvbicsJ2NscHItZGQtYnRuJyk7CiAgICB2YXIgdHh0ID0gZWwoJ3NwYW4nLCdjbHByLWRkLXR4dCBjbHByLWVtcHR5JywnICAgJyk7CiAgICB2YXIgY2FyZXQgPSBlbCgnc3BhbicsJ2NscHItZGQtY2FyZXQnLCdcdTI1YmUnKTsKICAgIGJ0bi5hcHBlbmRDaGlsZCh0eHQpOyBidG4uYXBwZW5kQ2hpbGQoY2FyZXQpOwogICAgdmFyIHNvbHZlZCA9IGVsKCdzcGFuJywnY2xwci1zb2x2ZWQnLCcnKTsKICAgIHZhciBtZW51ID0gZWwoJ3NwYW4nLCdjbHByLWRkLW1lbnUnKTsKICAgIG9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbihvcHQsIGkpewogICAgICB2YXIgbyA9IGVsKCdzcGFuJywnY2xwci1kZC1vcHQnKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItcmFkaW8nKSk7CiAgICAgIG8uYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsb3B0KSk7CiAgICAgIG8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgaWYoY2hlY2tlZCkgcmV0dXJuOwogICAgICAgIHFyZWYuc2VsID0gaSsxOwogICAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdDsgdHh0LmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOwogICAgICAgIG1lbnUucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQtb3B0JykuZm9yRWFjaChmdW5jdGlvbih4KXt4LmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItc2VsJyk7fSk7CiAgICAgICAgby5jbGFzc0xpc3QuYWRkKCdjbHByLXNlbCcpOwogICAgICAgIGNsb3NlQWxsKCk7CiAgICAgICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICAgIH0pOwogICAgICBtZW51LmFwcGVuZENoaWxkKG8pOwogICAgfSk7CiAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldil7CiAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgIHZhciB3YXNPcGVuID0gZGQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbHByLW9wZW4nKTsKICAgICAgY2xvc2VBbGwoKTsKICAgICAgaWYoIXdhc09wZW4pIGRkLmNsYXNzTGlzdC5hZGQoJ2NscHItb3BlbicpOwogICAgfSk7CiAgICBkZC5hcHBlbmRDaGlsZChidG4pOyBkZC5hcHBlbmRDaGlsZChzb2x2ZWQpOyBkZC5hcHBlbmRDaGlsZChtZW51KTsKICAgIHFyZWYuZGRFbCA9IGRkOyBxcmVmLnR4dEVsID0gdHh0OyBxcmVmLnNvbHZlZEVsID0gc29sdmVkOyBxcmVmLm9wdGlvbnMgPSBvcHRpb25zOwogICAgaWYocXJlZi5zZWwhPW51bGwpewogICAgICB0eHQudGV4dENvbnRlbnQgPSBvcHRpb25zW3FyZWYuc2VsLTFdOyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgIHZhciBzbyA9IG1lbnUucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQtb3B0JylbcXJlZi5zZWwtMV07IGlmKHNvKSBzby5jbGFzc0xpc3QuYWRkKCdjbHByLXNlbCcpOwogICAgfQogICAgcmV0dXJuIGRkOwogIH0KICBmdW5jdGlvbiBjbG9zZUFsbCgpeyB3cmFwLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLmNscHItb3BlbicpLmZvckVhY2goZnVuY3Rpb24oZCl7ZC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLW9wZW4nKTt9KTsgfQogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VBbGwpOwoKICBmdW5jdGlvbiBidWlsZFBhcnQocGkpewogICAgdmFyIHBhcnQgPSBSREFUQS5wYXJ0c1twaV07CiAgICBjYXRFbC5pbm5lckhUTUw9Jyc7CiAgICB2YXIgYmFyID0gZWwoJ2RpdicsJ2NscHItYmFyJyk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItYmFyLXRpdGxlJywgJ1ByYWN0aWNlIFRlc3QgMiBcdTIwMTMgJytwYXJ0Lm5hbWUpKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGltZXInLCdTdWdnZXN0ZWQgdGltZTogPGI+JytwYXJ0LnRpbWUrJzwvYj4nKSk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChiYXIpOwogICAgdmFyIGNvbHMgPSBlbCgnZGl2JywnY2xwci1jb2xzJyk7CiAgICB2YXIgbGVmdCA9IGVsKCdkaXYnLCdjbHByLXBhc3NhZ2UnKTsKICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItcGxhYmVsJywgcGFydC5wYXNzYWdlLmxhYmVsKSk7CiAgICBpZihwYXJ0LnBhc3NhZ2UudHlwZT09PSdpbWFnZScpewogICAgICB2YXIgaW1nID0gZWwoJ2ltZycsJ2NscHItcGltZycpOyBpbWcuc3JjID0gcGFydC5wYXNzYWdlLnNyYzsgaW1nLmFsdCA9IHBhcnQucGFzc2FnZS5hbHR8fCcnOyBsZWZ0LmFwcGVuZENoaWxkKGltZyk7CiAgICB9IGVsc2UgewogICAgICBsZWZ0LmFwcGVuZENoaWxkKGVsKCdkaXYnLG51bGwsIHBhcnQucGFzc2FnZS5odG1sKSk7CiAgICB9CiAgICB2YXIgcmlnaHQgPSBlbCgnZGl2JywnY2xwci1xY29sJyk7CiAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsb2NrKXsgcmlnaHQuYXBwZW5kQ2hpbGQoYnVpbGRCbG9jayhibG9jaywgcGFydCkpOyB9KTsKICAgIGNvbHMuYXBwZW5kQ2hpbGQobGVmdCk7IGNvbHMuYXBwZW5kQ2hpbGQocmlnaHQpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQoY29scyk7CiAgICB2YXIgbmF2ID0gZWwoJ2RpdicsJ2NscHItbmF2Jyk7CiAgICB2YXIgcHJldiA9IGVsKCdidXR0b24nLCdjbHByLW5hdmJ0biBjbHByLWdob3N0JywnXHUyMTkwIFByZXZpb3VzIHBhcnQnKTsKICAgIHZhciBuZXh0ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuJywnTmV4dCBwYXJ0IFx1MjE5MicpOwogICAgcHJldi5kaXNhYmxlZCA9IChwaT09PTApOyBuZXh0LmRpc2FibGVkID0gKHBpPT09UkRBVEEucGFydHMubGVuZ3RoLTEpOwogICAgcHJldi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPjApIGdvKHBpLTEpOyB9KTsKICAgIG5leHQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBpZihwaTxSREFUQS5wYXJ0cy5sZW5ndGgtMSkgZ28ocGkrMSk7IH0pOwogICAgbmF2LmFwcGVuZENoaWxkKHByZXYpOyBuYXYuYXBwZW5kQ2hpbGQobmV4dCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChuYXYpOwogICAgaWYoY2hlY2tlZCkgYXBwbHlNYXJrcygpOwogIH0KCiAgZnVuY3Rpb24gYnVpbGRCbG9jayhibG9jaywgcGFydCl7CiAgICB2YXIgd3JhcEIgPSBlbCgnZGl2JywnY2xwci1ibG9jaycpOwogICAgd3JhcEIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItaW5zdHInLCBibG9jay5pbnN0cikpOwogICAgaWYoYmxvY2sudHlwZT09PSdzdGVtbGlzdCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItc3RlbScpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC5wcmUrJyAnKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihpdC5vcHRpb25zLCBpdC5fcSkpOwogICAgICAgIHdyYXBCLmFwcGVuZENoaWxkKHJvdyk7CiAgICAgIH0pOwogICAgfSBlbHNlIGlmKGJsb2NrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgdmFyIGJveCA9IGVsKCdkaXYnLCdjbHByLWNsb3plJyk7CiAgICAgIGJsb2NrLmJvZHkuZm9yRWFjaChmdW5jdGlvbih0b2spewogICAgICAgIGlmKHR5cGVvZiB0b2s9PT0nc3RyaW5nJyl7CiAgICAgICAgICB2YXIgc2VncyA9IHRvay5zcGxpdCgnXG5cbicpOwogICAgICAgICAgc2Vncy5mb3JFYWNoKGZ1bmN0aW9uKHNlZywgaWR4KXsKICAgICAgICAgICAgaWYoaWR4PjApeyBib3guYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsJzxicj48YnI+JykpOyB9CiAgICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzZWcpKTsKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBib3guYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKHRvay5vcHRpb25zLCB0b2suX3EpKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB3cmFwQi5hcHBlbmRDaGlsZChib3gpOwogICAgfSBlbHNlIGlmKGJsb2NrLnR5cGU9PT0nbWF0Y2gnKXsKICAgICAgYmxvY2suaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7CiAgICAgICAgdmFyIHJvdyA9IGVsKCdkaXYnLCdjbHByLW1hdGNoLXJvdycpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24oYmxvY2subGV0dGVycywgaXQuX3EpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXNudW0nLCBpdC5uKycuJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwgaXQudGV4dCkpOwogICAgICAgIHdyYXBCLmFwcGVuZENoaWxkKHJvdyk7CiAgICAgIH0pOwogICAgfQogICAgcmV0dXJuIHdyYXBCOwogIH0KCiAgZnVuY3Rpb24gYnVpbGREb3RzKCl7CiAgICBkb3RzRWwuaW5uZXJIVE1MPScnOwogICAgUkRBVEEucGFydHMuZm9yRWFjaChmdW5jdGlvbihwLCBpKXsKICAgICAgdmFyIGQgPSBlbCgnYnV0dG9uJywnY2xwci1kb3QnKyhpPT09Y3VyUGFydD8nIGNscHItY3VyJzonJykpOwogICAgICBkLmFwcGVuZENoaWxkKGVsKCdiJyxudWxsLChpKzEpKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsWydDb3JyZXNwb25kZW5jZScsJ0FwcGx5IGEgRGlhZ3JhbScsJ0luZm9ybWF0aW9uJywnVmlld3BvaW50cyddW2ldKSk7CiAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBnbyhpKTsgfSk7CiAgICAgIGRvdHNFbC5hcHBlbmRDaGlsZChkKTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBnbyhwaSl7IGN1clBhcnQ9cGk7IGJ1aWxkRG90cygpOyBidWlsZFBhcnQocGkpOyBjYXRFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOyB9CgogIGZ1bmN0aW9uIHVwZGF0ZVNjb3JlQ2hpcCgpewogICAgdmFyIGFucyA9IFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbCE9bnVsbDt9KS5sZW5ndGg7CiAgICBzY29yZUNoaXAudGV4dENvbnRlbnQgPSBjaGVja2VkID8gKFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbD09PXEua2V5O30pLmxlbmd0aCsnIC8gJytRLmxlbmd0aCsnIGNvcnJlY3QnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChhbnMrJyAvICcrUS5sZW5ndGgrJyBhbnN3ZXJlZCcpOwogIH0KCiAgZnVuY3Rpb24gYXBwbHlNYXJrcygpewogICAgUS5mb3JFYWNoKGZ1bmN0aW9uKHEpewogICAgICBpZighcS5kZEVsKSByZXR1cm47CiAgICAgIHEuZGRFbC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLXJpZ2h0JywnY2xwci13cm9uZycpOwogICAgICBpZihxLnNlbD09PXEua2V5KXsgcS5kZEVsLmNsYXNzTGlzdC5hZGQoJ2NscHItcmlnaHQnKTsgfQogICAgICBlbHNlIHsKICAgICAgICBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci13cm9uZycpOwogICAgICAgIGlmKHEuc29sdmVkRWwpIHEuc29sdmVkRWwudGV4dENvbnRlbnQgPSAnXHUyNzEzICcrcS5vcHRpb25zW3Eua2V5LTFdOwogICAgICAgIGlmKHEuc2VsPT1udWxsICYmIHEudHh0RWwpeyBxLnR4dEVsLnRleHRDb250ZW50PScobm8gYW5zd2VyKSc7IHEudHh0RWwuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7IH0KICAgICAgfQogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBkb0NoZWNrKCl7CiAgICBjaGVja2VkID0gdHJ1ZTsKICAgIGFwcGx5TWFya3MoKTsKICAgIHZhciBjb3JyZWN0ID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBjaGVja0J0bi5kaXNhYmxlZCA9IHRydWU7CiAgICB2YXIgYnlQYXJ0ID0ge307CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7IGJ5UGFydFtxLnBhcnRdPWJ5UGFydFtxLnBhcnRdfHx7YzowLHQ6MH07IGJ5UGFydFtxLnBhcnRdLnQrKzsgaWYocS5zZWw9PT1xLmtleSlieVBhcnRbcS5wYXJ0XS5jKys7IH0pOwogICAgdmFyIGVzdCA9IGNsYkVzdGltYXRlUihjb3JyZWN0KTsKICAgIHZhciBwaWxscyA9IFJEQVRBLnBhcnRzLm1hcChmdW5jdGlvbihwKXsgdmFyIGI9YnlQYXJ0W3AuaWRdfHx7YzowLHQ6MH07IHJldHVybiAnPHNwYW4gY2xhc3M9ImNscHItcmVzLXBpbGwiPlBhcnQgJytwLmlkKyc6ICcrYi5jKycvJytiLnQrJzwvc3Bhbj4nOyB9KS5qb2luKCcnKTsKICAgIHJlc3VsdHNFbC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2FyZCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy10b3AiPicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtc2NvcmUiPicrY29ycmVjdCsnPHNwYW4+LycrUS5sZW5ndGgrJzwvc3Bhbj48L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWNsYiI+PGI+Jytlc3QubGV2ZWwrJzwvYj48c21hbGw+Jytlc3Qubm90ZSsnICZtaWRkb3Q7IGVzdGltYXRlZCBSZWFkaW5nIGJhbmQ8L3NtYWxsPjwvZGl2PicKICAgICAgKyAnPC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1icmVhayI+JytwaWxscysnPC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biBjbHByLWdob3N0IiBpZD0iY2xwclJldmlldyI+UmV2aWV3IGFuc3dlcnMgaW4gZWFjaCBwYXJ0PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iY2xwci1uYXZidG4iIGlkPSJjbHByUmV0cnkiPlRyeSBhZ2FpbjwvYnV0dG9uPjwvZGl2PicKICAgICAgKyAnPHAgc3R5bGU9Im1hcmdpbi10b3A6MTJweDtmb250LXNpemU6MTIuNXB4O2NvbG9yOnZhcigtLW11dGVkKSI+RXN0aW1hdGVkIGJhbmQgaXMgYSBzdHVkeSBndWlkZSBvbmx5LCBub3QgYW4gb2ZmaWNpYWwgQ0VMUElQIHNjb3JlLiBDb3JyZWN0IGFuc3dlcnMgYXJlIHNob3duIHdpdGggYSBncmVlbiBjaGVjayBvbiBlYWNoIGRyb3AtZG93biB5b3UgYW5zd2VyZWQgaW5jb3JyZWN0bHkuPC9wPicKICAgICAgKyAnPC9kaXY+JzsKICAgIHJlc3VsdHNFbC5oaWRkZW4gPSBmYWxzZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmV0cnknKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0QWxsKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmV2aWV3JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBnbygwKTsgfSk7CiAgICByZXN1bHRzRWwuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIGZ1bmN0aW9uIHJlc2V0QWxsKCl7CiAgICBjaGVja2VkPWZhbHNlOyBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsKICAgIGNoZWNrQnRuLmRpc2FibGVkPWZhbHNlOwogICAgcmVzdWx0c0VsLmhpZGRlbj10cnVlOyByZXN1bHRzRWwuaW5uZXJIVE1MPScnOwogICAgYnVpbGREb3RzKCk7IGJ1aWxkUGFydCgwKTsKICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgc2ltLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7CiAgfQoKICBzdGFydEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7CiAgICB3cmFwLnF1ZXJ5U2VsZWN0b3IoJy5jbHByLWhlcm8nKS5zdHlsZS5kaXNwbGF5PSdub25lJzsKICAgIHRvb2xiYXIuaGlkZGVuPWZhbHNlOyBzaW0uaGlkZGVuPWZhbHNlOwogICAgaW5pdFF1ZXN0aW9ucygpOyBjdXJQYXJ0PTA7IGNoZWNrZWQ9ZmFsc2U7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOyB1cGRhdGVTY29yZUNoaXAoKTsKICB9KTsKICBjaGVja0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGRvQ2hlY2spOwogIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwp9KSgpOw==\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 13 Practice Test 2: 4 parts, 38 questions in the real exam format with instant scoring and answer key. About 55 minutes. Free, no sign-up.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-6492","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=6492"}],"version-history":[{"count":1,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6492\/revisions"}],"predecessor-version":[{"id":6537,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6492\/revisions\/6537"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}