{"id":6408,"date":"2026-07-11T01:11:27","date_gmt":"2026-07-11T01:11:27","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-9-test-1-reading\/"},"modified":"2026-07-12T03:24:29","modified_gmt":"2026-07-12T03:24:29","slug":"celpip-set-9-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-9-test-1-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 9 \u00b7 Practice Test 1"},"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 9<\/span> <\/div>\n<h1>Reading Practice Test 1<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiJQcmFjdGljZSBUZXN0IDEiLCJwYXJ0cyI6W3siaWQiOjEsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsInRpbWUiOiIxMCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UuIiwiaHRtbCI6IjxwPkRlYXIgQXJhLDwvcD48cD5UaGFuayB5b3UgZm9yIHN1Ym1pdHRpbmcgeW91ciBpbnN1cmFuY2UgY2xhaW0gdG8gb3VyIG9mZmljZS4gSSBoYXZlIGZpbmlzaGVkIHJldmlld2luZyBpdCwgaW5jbHVkaW5nIHlvdXIgcGhvdG9zIG9mIHRoZSB3YXRlci1kYW1hZ2VkIGl0ZW1zIGFuZCB0aGUgb3JpZ2luYWwgcHVyY2hhc2UgcmVjZWlwdHMgZm9yIHRoZW0uIEkgYXBwcmVjaWF0ZWQgdGhlIGl0ZW1pemVkIHNwcmVhZHNoZWV0IHlvdSBpbmNsdWRlZC48L3A+PHA+WW91IGhhdmUgY2xhaW1lZCB0aGUgY29zdCBvZiByZXBsYWNpbmcgeW91ciBkZXNrdG9wIGNvbXB1dGVyLCB3aGljaCB3YXMgZm9yIHBlcnNvbmFsIHVzZSBvbmx5IGFuZCBkYW1hZ2VkIGluIHRoZSBmbG9vZC4gVGhlIGNvbXB1dGVyIGNhbm5vdCBiZSByZXBhaXJlZCwgc28gdGhlIGNvc3Qgb2YgcmVwbGFjaW5nIGl0IGlzIGFwcHJvdmVkLiBIb3dldmVyLCB5b3VyIHNwcmVhZHNoZWV0IGFsc28gaXRlbWl6ZXMgdGhlIGNvc3Qgb2YgYSAzLXllYXIgZXh0ZW5kZWQgd2FycmFudHksIHB1cmNoYXNlZCBhbG9uZyB3aXRoIHRoZSBjb21wdXRlci4gU2luY2UgdGhlIGNvbXB1dGVyIGlzIDcgeWVhcnMgb2xkLCB0aGUgd2FycmFudHkgY292ZXJhZ2UgaGFzIGV4cGlyZWQuIFdlIGNhbm5vdCBwYXkgZm9yIHRoZSBleHBpcmVkIHdhcnJhbnR5IHBvcnRpb24gb2YgeW91ciBjb21wdXRlciBjb3N0cy48L3A+PHA+WW91IGhhdmUgYWxzbyBjbGFpbWVkIHRoZSBjb3N0IG9mIHRoZSBnb29kcyBhbmQgc2VydmljZXMgdGF4IChHU1QpIG9uIHRoZSBvcmlnaW5hbCBwdXJjaGFzZSBwcmljZSBvZiBpdGVtcyB0aGF0IHdlcmUgZGFtYWdlZC4gVW5mb3J0dW5hdGVseSwgd2UgcGF5IHRoaXMgY29zdCBvbmx5IG9uIGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIHB1cmNoYXNlZCBhcyByZXBsYWNlbWVudHMuIFRoZXJlZm9yZSwgZm9yIGFueSByZXBsYWNlbWVudCBpdGVtIHlvdSBwdXJjaGFzZSwgcGxlYXNlIHN1Ym1pdCB0aGUgcmVjZWlwdCB0byB1cy4gTm90ZSB0aGF0IGludGVyZXN0IG9uIGNyZWRpdCBjYXJkIHB1cmNoYXNlcyBpcyBub3QgY292ZXJlZC48L3A+PHA+UmVnYXJkaW5nIHRoZSB3b29sIGNhcnBldCBzYW1wbGVzLCB5b3UgaW5kaWNhdGVkIHRoYXQgdGhlc2UgYXJlIHRoZSBwcm9wZXJ0eSBvZiB0aGUgZmxvb3JpbmcgY29tcGFueSB5b3Ugd29yayBmb3IuIE91ciBwb2xpY3kgY292ZXJzIG9ubHkgcHJvcGVydHkgb3duZWQgYW5kIHVzZWQgYnkgeW91IHBlcnNvbmFsbHksIHNvLCBJJnJzcXVvO20gc29ycnksIGJ1dCB3ZSBjYW5ub3QgY292ZXIgdGhlIGNvc3Qgb2YgdGhlIGRhbWFnZWQgY2FycGV0IHNhbXBsZXMuPC9wPjxwPldoZW4gaXQmcnNxdW87cyB0aW1lIGZvciB5b3UgdG8gcmVuZXcgeW91ciBwb2xpY3kgd2l0aCB1cyBuZXh0IHNwcmluZywgd2UgcmVjb21tZW5kIHRoYXQgeW91IHB1cmNoYXNlIGFkZGl0aW9uYWwgaW5zdXJhbmNlIGZvciBpdGVtcyBzdG9yZWQgaW4geW91ciBob21lIGJ1dCBvd25lZCBieSBvciB1c2VkIGluIHlvdXIgYnVzaW5lc3MuIFRoaXMgd291bGQgcHJvdGVjdCB5b3Ugbm90IG9ubHkgYWdhaW5zdCB0aGUgdHlwZSBvZiBsb3NzIHlvdSByZWNlbnRseSBleHBlcmllbmNlZCwgYnV0IGFsc28gYWdhaW5zdCBvdGhlciByaXNrcyBzdWNoIGFzIGZpcmUuPC9wPjxwPllvdXIgYWRqdXN0ZWQgdG90YWwgaXMgJDE2LDQwMC4gT3VyIGFjY291bnRpbmcgZGVwYXJ0bWVudCB3aWxsIGlzc3VlIHlvdSBhIGNoZXF1ZSBvbiB0aGUgMTV0aCBvZiB0aGlzIG1vbnRoLiBJZiB5b3Ugd291bGQgcHJlZmVyIHRvIHBpY2sgaXQgdXAgcmF0aGVyIHRoYW4gcmVjZWl2ZSBpdCBieSBtYWlsLCBwbGVhc2UgbGV0IG1lIGtub3cgYnkgdGhpcyBXZWRuZXNkYXkgYXQgdGhlIGxhdGVzdC48L3A+PHA+QXMgYSB2YWx1ZWQgbG9uZy10aW1lIGNsaWVudCwgcGxlYXNlIGFjY2VwdCB3YXJtZXN0IHdpc2hlcyBmcm9tIG91ciBmYW1pbHkgb2YgY29tcGFuaWVzLiBXZSB3aXNoIHlvdSBldmVyeSBzdWNjZXNzIGluIHJlY292ZXJpbmcgZnJvbSB5b3VyIGxvc3NlcyB0aGlzIHBhc3QgQXVndXN0LCBhbmQgd2UgYXJlIHBsZWFzZWQgdG8gaGF2ZSBiZWVuIGFibGUgdG8gYXNzaXN0IHlvdS48L3A+PHA+UmVnYXJkcyw8YnI+TmVsc29uIExvd2U8L3A+In0sImJsb2NrcyI6W3sidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBpbiB0aGUgbWVzc2FnZS4iLCJpdGVtcyI6W3sibiI6MSwicHJlIjoiV2hhdCBjYXVzZWQgQXJhXHUyMDE5cyBzaXR1YXRpb24\/Iiwib3B0aW9ucyI6WyJhbiBhY2NpZGVudCBhdCBob21lIiwiYW4gZXJyb3Igb24gYSB0YXggZm9ybSIsImFuIGV4cGlyZWQgaW5zdXJhbmNlIHBvbGljeSIsImFuIGluY29ycmVjdCBjaGFyZ2UgYXQgYSBzdG9yZSJdLCJrZXkiOjF9LHsibiI6MiwicHJlIjoiTmVsc29uIGFwcHJvdmVkIiwib3B0aW9ucyI6WyJpbnRlcmVzdCBmZWVzIG9uIGNyZWRpdCBjYXJkIHB1cmNoYXNlcy4iLCJ0aGUgcmVtYWluaW5nIHdhcnJhbnR5IG9uIHRoZSBjb21wdXRlci4iLCJyZXBsYWNlbWVudCBjb3N0cyBmb3IgdGhlIGNhcnBldCBzYW1wbGVzLiIsInRoZSBjb3N0IG9mIGEgbmV3IGRlc2t0b3AgY29tcHV0ZXIuIl0sImtleSI6NH0seyJuIjozLCJwcmUiOiJXaGF0IGlzIEFyYSBtb3N0IGxpa2VseSB0byBkbyBuZXh0PyIsIm9wdGlvbnMiOlsiaGF2ZSBoZXIgZGFtYWdlZCBwZXJzb25hbCBjb21wdXRlciByZXBhaXJlZCIsImRlY2lkZSB3aGV0aGVyIHRvIGNhbGwgTmVsc29uIGFib3V0IHRoZSBjaGVxdWUiLCJ1c2UgdGhlIGdpZnQgY2FyZCB0aGF0IE5lbHNvbiBlbmNsb3NlZCIsInNlbmQgTmVsc29uIHRoZSBmdWxsIGFtb3VudCBvd2luZyBvbiB0aGUgYmlsbCJdLCJrZXkiOjJ9LHsibiI6NCwicHJlIjoiTmVsc29uIHdhbnRzIEFyYSB0byIsIm9wdGlvbnMiOlsiaW5zdXJlIGJ1c2luZXNzIGl0ZW1zIHNlcGFyYXRlbHkuIiwicHVyY2hhc2UgYSBsb25nZXIgY29tcHV0ZXIgd2FycmFudHkuIiwiZWxpbWluYXRlIGhvdXNlaG9sZCBmaXJlIGhhemFyZHMuIiwicmVtb3ZlIGhlciB3YXRlci1kYW1hZ2VkIGNhcnBldGluZy4iXSwia2V5IjoxfSx7Im4iOjUsInByZSI6Ik5lbHNvbiBwcm9iYWJseSB3b3JrcyIsIm9wdGlvbnMiOlsiZm9yIGEgZnVybml0dXJlIHJlcGFpciBzaG9wLiIsImZvciBhIGxhcmdlIGNvcnBvcmF0aW9uLiIsImFzIGEgc21hbGwgYnVzaW5lc3Mgb3duZXIuIiwiYXMgQXJhXHUyMDE5cyBidXNpbmVzcyBwYXJ0bmVyLiJdLCJrZXkiOjJ9LHsibiI6NiwicHJlIjoiTmVsc29uIHdyb3RlIHRoaXMgbWVzc2FnZSBtYWlubHkgdG8iLCJvcHRpb25zIjpbImFwb2xvZ2l6ZSB0byBBcmEuIiwiY29sbGVjdCBtb25leSBmcm9tIEFyYS4iLCJleHBsYWluIGNoYW5nZXMgdG8gQXJhLiIsInNlbmQgZ29vZCB3aXNoZXMgdG8gQXJhLiJdLCJrZXkiOjN9XX0seyJ0eXBlIjoiY2xvemUiLCJpbnN0ciI6IkhlcmUgaXMgYSByZXNwb25zZSB0byB0aGUgbWVzc2FnZS4gQ29tcGxldGUgdGhlIHJlc3BvbnNlIGJ5IGZpbGxpbmcgaW4gdGhlIGJsYW5rcy4gU2VsZWN0IHRoZSBiZXN0IGNob2ljZSBmb3IgZWFjaCBibGFuayBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKS4iLCJib2R5IjpbIkRlYXIgTmVsc29uLFxuXG5UaGFuayB5b3UgZm9yIHlvdXIgbWVzc2FnZS5cblxuSVx1MjAxOW0gZ2xhZCB0byBoZWFyIHRoYXQgeW91ICIseyJiIjo3LCJvcHRpb25zIjpbImFpbSB0byBpbXByb3ZlIGNsaWVudCBzZXJ2aWNlIiwiY2FuIG1ha2Ugc2Vuc2Ugb2Ygd2hhdCBJIG93ZSIsImZvdW5kIG15IHNwcmVhZHNoZWV0IGhlbHBmdWwiLCJoYXZlIHB1dCB0aGUgY2hlcXVlIGluIHRoZSBtYWlsIl0sImtleSI6M30sIi4gSSBkaWRuXHUyMDE5dCByZWFsaXplIHRoYXQgdGhlIHdhcnJhbnR5IG9uIG15IGNvbXB1dGVyIGhhZCBleHBpcmVkOyAiLHsiYiI6OCwib3B0aW9ucyI6WyJteSBhcG9sb2dpZXMgZm9yIGluY2x1ZGluZyIsInRoYW5rIHlvdSBmb3IgaW5jbHVkaW5nIiwiSSB3YXMgY29ycmVjdCB0byBpbmNsdWRlIiwiaXQgd2FzIHRvbyBsYXRlIHRvIGluY2x1ZGUiXSwia2V5IjoxfSwiIHRoYXQgaW4gbXkgY2xhaW0uXG5cbkkgaGF2ZSB0d28gcXVlc3Rpb25zLiBGaXJzdCwgYmVmb3JlIHRoZSBmbG9vZCBoYXBwZW5lZCwgSSBicm91Z2h0IHRoZSBjYXJwZXQgc2FtcGxlcyBob21lICIseyJiIjo5LCJvcHRpb25zIjpbInNlY3JldGx5IiwidGVtcG9yYXJpbHkiLCJyZWx1Y3RhbnRseSIsImFjY2lkZW50YWxseSJdLCJrZXkiOjJ9LCIgYmVjYXVzZSB3ZVx1MjAxOXJlIHJlZGVjb3JhdGluZyBvdXIgbGl2aW5nIHJvb20gYW5kIHdhbnRlZCB0byBjaG9vc2UgbmV3IGNhcnBldGluZy4gSVx1MjAxOW0gbm90IGFjdHVhbGx5IHVzaW5nIHRoZSBob3VzZSBmb3IgYnVzaW5lc3MgcHVycG9zZXMgb3IgdG8gc3RvcmUgYnVzaW5lc3Mgc3VwcGxpZXMuIFJlZ2FyZGluZyB0aGUgc2FtcGxlcywgZG9lcyB0aGlzIG5ldyBpbmZvcm1hdGlvbiBhZmZlY3QgIix7ImIiOjEwLCJvcHRpb25zIjpbInRoZWlyIGdvb2RzIGFuZCBzZXJ2aWNlcyB0YXggcmF0ZSBmb3IgdGhlIHllYXIiLCJteSBob3VzZWhvbGQgcG9zc2Vzc2lvbnMgaW5zdXJhbmNlIGV4cGlyeSBkYXRlIiwib3VyIGNvc3RzIGZvciBoYXZpbmcgdGhlbSBpbnN0YWxsZWQgaW4gb3VyIGhvdXNlIiwieW91ciBkZWNpc2lvbiB0byBjbGFzc2lmeSB0aGVtIGFzIGJ1c2luZXNzIGl0ZW1zIl0sImtleSI6NH0sIj9cblxuU2Vjb25kLCB3b3VsZCBJIGdldCBhIGRpc2NvdW50IG9uIGNhciBpbnN1cmFuY2UgaWYgSSBzd2l0Y2hlZCBmcm9tIG15IGN1cnJlbnQgY29tcGFueSB0byB5b3UsIHNpbmNlIEkgYWxyZWFkeSBoYXZlIGhvdXNlIGluc3VyYW5jZSB3aXRoIHlvdT8gSSByZWFsaXplIHRoaXMgcXVlc3Rpb24gaXMgIix7ImIiOjExLCJvcHRpb25zIjpbImNlbnRyYWwgdG8iLCJ1bnJlbGF0ZWQgdG8iLCJjb25uZWN0ZWQgdG8iLCJhIHJlcGVhdCBvZiJdLCJrZXkiOjJ9LCIgdGhlIGNsYWltIGF0IGhhbmQsIGJ1dCBJIHdvdWxkIGFwcHJlY2lhdGUgeW91ciByZXNwb25zZSB3aGVuIGNvbnZlbmllbnQuXG5cblNpbmNlcmVseSxcbkFyYSJdfV19LHsiaWQiOjIsIm5hbWUiOiJSZWFkaW5nIFBhcnQgMjogUmVhZGluZyB0byBBcHBseSBhIERpYWdyYW0iLCJ0aW1lIjoiOCBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIGRpYWdyYW0uIiwiaHRtbCI6IjxzdHlsZT4uYWUtY2Nte2JvcmRlcjoxcHggc29saWQgI2QzYjhhMztib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjE0cHg7YmFja2dyb3VuZDojZmRmNmVmfS5hZS1jY21oZWFke2JhY2tncm91bmQ6IzVkM2ExYTtjb2xvcjojZmZmO3BhZGRpbmc6MTJweCAxNHB4O3RleHQtYWxpZ246Y2VudGVyfS5hZS1jY21oZWFkIGgze21hcmdpbjowO2NvbG9yOiNmZmY7Zm9udC1zaXplOjIwcHh9LmFlLWNjbW5vdGV7YmFja2dyb3VuZDojZjZlM2NmO2NvbG9yOiM1ZDNhMWE7cGFkZGluZzo4cHggMTJweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTNweDtmb250LXdlaWdodDpib2xkfS5hZS1jY21yb3d7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U3ZDRjMn0uYWUtY2Ntcm93IGg0e21hcmdpbjowIDAgMnB4O2NvbG9yOiM3YTRhMjE7Zm9udC1zaXplOjE1cHh9LmFlLWNjbXRhZ3tmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDpib2xkfS5hZS1jY21yb3cgcHttYXJnaW46MCAwIDVweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjQ1fTwvc3R5bGU+PGRpdiBjbGFzcz1cImFlLWNjbVwiPjxkaXYgY2xhc3M9XCJhZS1jY21oZWFkXCI+PGgzPkN1c3RvbSBDaG9jb2xhdGVzIE1lbnU8L2gzPjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1jY21ub3RlXCI+QWxsIGNvbmZlY3Rpb25zIGV4Y2VwdCB0cnVmZmxlcyBhbmQgZnVkZ2UgY29tZSBpbiBuaW5lIGRpZmZlcmVudCBzaGFwZXM6IGN1YmUsIGNvbmUsIHRyaWFuZ2xlLCByb3NlLCBsZWFmLCBkYWlzeSwgc3RhciwgY3Jlc2NlbnQsIGFuZCBzd2lybGluZyBzcGlyYWwuPC9kaXY+PGRpdiBjbGFzcz1cImFlLWNjbXJvd1wiPjxoND5QUkFMSU5FIFBFUkZFQ1RJT048L2g0PjxwIGNsYXNzPVwiYWUtY2NtdGFnXCI+R28gbnV0cyBvdmVyIHByYWxpbmUhPC9wPjxwPjxzdHJvbmc+UHJpY2UgUmFuZ2U6PC9zdHJvbmc+ICQkJCAoaGlnaCk8L3A+PHA+QSBibGVuZCBvZiBmaW5lbHkgY2hvcHBlZCBoYXplbG51dHMsIGFsbW9uZHMsIGFuZCBwZWNhbnMgc21vdGhlcmVkIGluIGRhcmsgb3IgbGlnaHQgbWlsayBjaG9jb2xhdGU8L3A+PC9kaXY+PGRpdiBjbGFzcz1cImFlLWNjbXJvd1wiPjxoND5NQVJaSVBBTiBNQVJWRUxTPC9oND48cCBjbGFzcz1cImFlLWNjbXRhZ1wiPkFuIGFsbW9uZC1sb3ZlciZyc3F1bztzIGRlbGlnaHQhPC9wPjxwPjxzdHJvbmc+UHJpY2UgUmFuZ2U6PC9zdHJvbmc+ICQgKGxvdyk8L3A+PHA+QSBkZWxpZ2h0ZnVsbHkgc21vb3RoIHBhc3RlIG9mIGZpbmVseSBncm91bmQgYWxtb25kcyBhbmQgY29uZmVjdGlvbmVycyZyc3F1bzsgc3VnYXIsIGVucm9iZWQgaW4gbGlnaHQgbWlsayBjaG9jb2xhdGU8L3A+PC9kaXY+PGRpdiBjbGFzcz1cImFlLWNjbXJvd1wiPjxoND5HQU5BQ0hFIEdPT0RJRVM8L2g0PjxwIGNsYXNzPVwiYWUtY2NtdGFnXCI+R2FuYWNoZSBhbnkgd2F5IHlvdSBsaWtlIGl0ITwvcD48cD48c3Ryb25nPlByaWNlIFJhbmdlOjwvc3Ryb25nPiAkJCQgKGhpZ2gpPC9wPjxwPkEgY3JlYW15IGJsZW5kIG9mIDg1JSBjaG9jb2xhdGUgbWl4ZWQgd2l0aCByaWNoIGNyZWFtIHRoYXQgY29tZXMgaW4gcGxhaW4sIHJhc3BiZXJyeSwgY29jb251dCwgbWludCwgYW5kIGNvZmZlZSBmbGF2b3VyczwvcD48cD5PcHRpb24gb2YgbGlnaHQgb3IgZGFyayBjaG9jb2xhdGU8L3A+PC9kaXY+PGRpdiBjbGFzcz1cImFlLWNjbXJvd1wiPjxoND5GVURHRSBGQU5UQVNJRVM8L2g0PjxwIGNsYXNzPVwiYWUtY2NtdGFnXCI+QSB0cmFkaXRpb25hbCBmYXZvdXJpdGUhPC9wPjxwPjxzdHJvbmc+UHJpY2UgUmFuZ2U6PC9zdHJvbmc+ICQkIChtb2RlcmF0ZSk8L3A+PHA+QSBjdWJlIG9yIHNsaWNlIG9mIG1lbHQtaW4teW91ci1tb3V0aCBzdWdhciBjYW5keSB0aGF0IGNvbWVzIGluIG1hcGxlLCBidXR0ZXIgcGVjYW4sIHdhbG51dCwgcGlzdGFjaGlvLCBhbmQgbnV0LWZyZWUgdmFuaWxsYSBvcHRpb25zJm1kYXNoO2FzayBhYm91dCBvdXIgc3VnYXItZnJlZSBvcHRpb248L3A+PHA+QXZhaWxhYmxlIGluIGN1YmUgc2hhcGUgb25seTwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtY2Ntcm93XCI+PGg0PlRSVUZGTEUgVFJFQVNVUkVTPC9oND48cCBjbGFzcz1cImFlLWNjbXRhZ1wiPkEgdHJlYXQgdGhhdCZyc3F1bztzIGFsc28gYSB0cmVhc3VyZSE8L3A+PHA+PHN0cm9uZz5QcmljZSBSYW5nZTo8L3N0cm9uZz4gJCQkJCAodmVyeSBoaWdoKTwvcD48cD5BIHNwaGVyZSBvZiBsaWdodCBvciBkYXJrIGNob2NvbGF0ZSwgZmlsbGVkIHdpdGggZ2FuYWNoZSBvciBsaXF1b3IgYW5kIGxpZ2h0bHkgZHVzdGVkIHdpdGggY2hvY29sYXRlIGNvY29hIHBvd2RlcjwvcD48cD5DZW50cmUgb3B0aW9ucyBhcmUgY29mZmVlLWZsYXZvdXJlZCBsaXF1ZXVyLCBvcmFuZ2UtZmxhdm91cmVkIGxpcXVldXIsIG9yIGZydWl0LWZsYXZvdXJlZCBicmFuZHk8L3A+PHA+QXZhaWxhYmxlIGluIHNwaGVyZSBzaGFwZSBvbmx5PC9wPjwvZGl2PjwvZGl2PiJ9LCJibG9ja3MiOlt7InR5cGUiOiJjbG96ZSIsImluc3RyIjoiUmVhZCB0aGUgZm9sbG93aW5nIGVtYWlsIG1lc3NhZ2UgYWJvdXQgdGhlIGRpYWdyYW0gb24gdGhlIGxlZnQuIENvbXBsZXRlIHRoZSBlbWFpbCBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwiYm9keSI6WyJTdWJqZWN0OiBDaG9jb2xhdGVzXG5UbzogUm9nZXIgTmV1ZmVsZCA8cm9nZXJuZXVmZWxkQGJ1cmR5cy5jb20+XG5Gcm9tOiBWaW5jZW50IE1hdGhpanMgPHZtYXRoaWpzQGJ1cmR5cy5jb20+XG5cbkdvb2QgbW9ybmluZyBSb2dlcixcblxuSG9wZSB5b3UgaGFkIGEgZ3JlYXQgd2Vla2VuZC4gQXMgcHJvbWlzZWQsIGhlcmVcdTIwMTlzIG15IGRyYWZ0IG9mIHRoZSBjb25jZXB0IGZvciBvdXIgbmV4dCBwcm9kdWN0IGxpbmUuIFRoZSBjb25jZXB0IGlzIHRvIHNpbXBsaWZ5IGFuZCBsb2dpY2FsbHkgZ3JvdXAgb3VyIHJhbmdlIG9mIGNob2NvbGF0ZSBjb25mZWN0aW9ucy5cblxuQ3VzdG9tZXJzIHN0aWxsIGhhdmUgcGxlbnR5IG9mIG9wdGlvbnNcdTIwMTRidXQgdGhlcmUgd29uXHUyMDE5dCBiZSBhbnkgIix7ImIiOjEsIm9wdGlvbnMiOlsibGVhZi1zaGFwZWQgbWFyemlwYW4iLCJwcmFsaW5lIHJvc2UgYmxvc3NvbXMiLCJnbG9iZS1zaGFwZWQgdHJ1ZmZsZXMiLCJzdGFyLXNoYXBlZCBmdWRnZSJdLCJrZXkiOjR9LCIuIEluZm9ybWFsIG1hcmtldCByZXNlYXJjaCBzaG93ZWQgdGhhdCB0aGUgbW9zdCBwb3B1bGFyIGl0ZW0gYW1vbmcgdGhlIGF2YWlsYWJsZSBvcHRpb25zIHdhcyB0aGUgbWFyemlwYW4gaW4gdGhlICIseyJiIjoyLCJvcHRpb25zIjpbImxvbmcgcmVjdGFuZ2xlIiwic3dpcmxpbmcgc3BpcmFsIiwicmluZ2VkIHBsYW5ldCIsInR1bGlwIGJsb3Nzb20iXSwia2V5IjoyfSwiIHNoYXBlLlxuXG5PbmUgc3RyYXRlZ3kgYmVoaW5kIHRoZSBwcm9kdWN0IHJhbmdlIGlzIHRvIHN0YW5kIG91dCBmcm9tIG91ciBjb21wZXRpdG9ycyBieSAiLHsiYiI6Mywib3B0aW9ucyI6WyJmb2N1c2luZyBqdXN0IG9uIHJpY2ggZGFyayBjaG9jb2xhdGUiLCJoYXZpbmcgYSBjbGVhcmx5IG9yZ2FuaXplZCBjb2xsZWN0aW9uIiwibGlnaHRseSBkdXN0aW5nIGFsbCB0aGUgdHJlYXRzIHdpdGggc3VnYXIiLCJvZmZlcmluZyB0d2VudHkgZGlmZmVyZW50IGtpbmRzIG9mIl0sImtleSI6Mn0sIi4gQW5vdGhlciBzdHJhdGVneSB3YXMgdG8gZm9sbG93IHRoZSBjb25zdW1lciB0cmVuZCB0b3dhcmQgaGVhbHRoaWVyIG9wdGlvbnMgdGhhdCBsaW1pdCB0aGUgaW50YWtlIG9mIHBhcnRpY3VsYXIgaW5ncmVkaWVudHMuIFRoZSAiLHsiYiI6NCwib3B0aW9ucyI6WyJmdWRnZSIsImdhbmFjaGUiLCJwcmFsaW5lIiwidHJ1ZmZsZSJdLCJrZXkiOjF9LCIgcHJvZHVjdHMgYXJlIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byBmaWxsIHRoaXMgbmVlZC5cblxuV2VsbCwgdGhvc2UgYXJlIG15IHBvbmRlcmluZ3Mgb24gdGhpcyBjb25jZXB0LiBXaGF0IGFyZSB5b3Vycz8gSWYgSSBjb3VsZCBoYXZlIHlvdXIgZmVlZGJhY2sgYmVmb3JlIG5leHQgRnJpZGF5LCBJXHUyMDE5ZCByZWFsbHkgYXBwcmVjaWF0ZSBpdC5cblxuVGhhbmtzIGluIGFkdmFuY2UgZm9yIHlvdXIgaW5wdXQuXG5cblZpbmNlbnQgTWF0aGlqcywgIix7ImIiOjUsIm9wdGlvbnMiOlsiQWNjb3VudHMgUmVjZWl2YWJsZSBPZmZpY2VyIiwiRm91bmRlciBhbmQgSW50ZXJuYXRpb25hbCBDRU8iLCJQcm9kdWN0IERldmVsb3BtZW50IFNwZWNpYWxpc3QiLCJTaGlwcGluZyBhbmQgUmVjZWl2aW5nIE1hbmFnZXIiXSwia2V5IjozfSwiIl19LHsidHlwZSI6InN0ZW1saXN0IiwiaW5zdHIiOiJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24uIiwiaXRlbXMiOlt7Im4iOjYsInByZSI6IklmIHlvdSB3YW50IHRvIGF2b2lkIGFsbW9uZHMsIHdoYXQgYXJlIHlvdXIgb25seSBvcHRpb25zPyIsIm9wdGlvbnMiOlsiY2hvY29sYXRlcyBpbiBnZW9tZXRyaWMgc2hhcGVzIiwiZGFyayBtaWxrIGNob2NvbGF0ZSBwcm9kdWN0cyIsImp1c3QgdGhlIGNvc3RsaWVzdCBwcm9kdWN0cyIsInRydWZmbGVzLCBnYW5hY2hlLCBhbmQgZnVkZ2UiXSwia2V5Ijo0fSx7Im4iOjcsInByZSI6IldoYXQgZG8gd2Uga25vdyBmb3Igc3VyZSBhYm91dCBWaW5jZW50IGFuZCBSb2dlcj8iLCJvcHRpb25zIjpbIlZpbmNlbnQgYW5kIFJvZ2VyIHdvcmsgaW4gdGhlIHNhbWUgZGVwYXJ0bWVudC4iLCJSb2dlciBtdXN0IHJlY2VpdmUgdGhlIGNob2NvbGF0ZXMgYmVmb3JlIEZyaWRheS4iLCJWaW5jZW50IGlzIFJvZ2VyXHUyMDE5cyBzdXBlcnZpc29yIGF0IGEgY2hvY29sYXRlIGZhY3RvcnkuIiwiUm9nZXIgaGFkIGJlZW4gZXhwZWN0aW5nIFZpbmNlbnRcdTIwMTlzIG1lc3NhZ2UuIl0sImtleSI6NH0seyJuIjo4LCJwcmUiOiJXaGF0IHNob3VsZCBSb2dlciBkbyBhZnRlciBoZSByZWFkcyB0aGUgbWVzc2FnZT8iLCJvcHRpb25zIjpbImFja25vd2xlZGdlIHRoZSBtZXJpdHMgYW5kIHN1Z2dlc3QgaW1wcm92ZW1lbnRzIiwiZHJhZnQgYSBwcm9wb3NhbCBmb3IgYSBkaWZmZXJlbnQgY2hvY29sYXRlIGNvbGxlY3Rpb24iLCJzZW5kIHRoZSByZXF1ZXN0ZWQgbWFya2V0IHJlc2VhcmNoIHJlc3VsdHMgZGF0YSIsInRhc3RlIGFuZCBjcml0aXF1ZSB0aGUgdmFyaW91cyBzYW1wbGUgY2hvY29sYXRlcyJdLCJrZXkiOjF9XX1dfSx7ImlkIjozLCJuYW1lIjoiUmVhZGluZyBQYXJ0IDM6IFJlYWRpbmcgZm9yIEluZm9ybWF0aW9uIiwidGltZSI6IjkgbWludXRlcyIsInBhc3NhZ2UiOnsidHlwZSI6InRleHQiLCJsYWJlbCI6IlJlYWQgdGhlIGZvbGxvd2luZyBwYXNzYWdlLiIsImh0bWwiOiI8cD48c3Ryb25nPkEuPC9zdHJvbmc+IFBob3RvZ3JhcGhzIG9mIHNwZWN0YWN1bGFyIHJhaW5ib3dzIGFyZSBhIGRpbWUgYSBkb3plbiwgYnV0IGEgc2ltaWxhciBldmVudCBzZWxkb20gd2l0bmVzc2VkIGlzIHRoZSBvY2N1cnJlbmNlIG9mIG1vb25ib3dzLiBXaGlsZSByYWluYm93cyBhcmUgY2F1c2VkIGJ5IGJlYW1zIG9mIHN1bmxpZ2h0IHJlZnJhY3RpbmcgdGhyb3VnaCB3YXRlciBkcm9wbGV0cyBpbiB0aGUgYXRtb3NwaGVyZSwgbW9vbmJvd3MsIGFzIHRoZWlyIG5hbWUgc3VnZ2VzdHMsIGFyZSBjcmVhdGVkIGJ5IGJlYW1zIG9mIG1vb25saWdodCByZWZyYWN0aW5nIHRocm91Z2ggbW9pc3R1cmUgaW4gdGhlIGFpci4gSG93ZXZlciwgdGhpcyBpcyB3aGVyZSB0aGUgc2ltaWxhcml0eSB0byByYWluYm93cyBlbmRzLiBUaGVzZSBuaWdodHRpbWUgYm93cywgYWxzbyByZWZlcnJlZCB0byBhcyBsdW5hciByYWluYm93cywgYXJlIGEgbXVjaCByYXJlciBwaGVub21lbm9uLCBvY2N1cnJpbmcgb25seSBhdCBwYXJ0aWN1bGFyIHRpbWVzIG9mIHRoZSB5ZWFyIGFuZCBsaW1pdGVkIGJ5IGdlb2dyYXBoaWMgcmVxdWlyZW1lbnRzLjwvcD48cD48c3Ryb25nPkIuPC9zdHJvbmc+IEEgZGlzdGluY3QgY29tYmluYXRpb24gb2YgYXN0cm9ub21pY2FsIGFuZCBtZXRlb3JvbG9naWNhbCBjb25kaXRpb25zIGlzIHJlcXVpcmVkIGluIG9yZGVyIGZvciBhIG1vb25ib3cgdG8gb2NjdXIuIEZvciBvbmUsIHRoZSBtb29uIG11c3QgYmUgYnJpZ2h0LCBzdWNoIGFzIGR1cmluZyBhIGZ1bGwgb3IgbmVhcmx5IGZ1bGwgbW9vbi4gTW9yZW92ZXIsIHRoZSBtb29uIG11c3QgYmUgbG93IGluIHRoZSBza3ksIG5vIG1vcmUgdGhhbiA0MiBkZWdyZWVzIGFib3ZlIHRoZSBob3Jpem9uLiBUaGUgbG93ZXIgdGhlIGVsZXZhdGlvbiBvZiB0aGUgbW9vbiwgdGhlIGZ1bGxlciB0aGUgbHVuYXIgcmFpbmJvdy4gRmluYWxseSwgdGhlcmUgbXVzdCBiZSB3YXRlciBkcm9wbGV0cyBwcmVzZW50IGluIHRoZSBhdG1vc3BoZXJlLiBUaGUgb3B0aW1hbCBjb25kaXRpb25zIG9jY3VyIG9uIG5pZ2h0cyBkdXJpbmcgd2hpY2ggdGhlcmUgYXJlIHJhaW4gc2hvd2VycyBmYWxsaW5nIG9wcG9zaXRlIHRoZSBtb29uIGFuZCB0aGUgc2t5IGlzIGNsZWFyLiBNaXN0IGZyb20gd2F0ZXJmYWxscyBjYW4gYWxzbyBjcmVhdGUgdGhlIGFwcHJvcHJpYXRlIGFtb3VudCBvZiBtb2lzdHVyZSBpbiB0aGUgYXRtb3NwaGVyZS4gVW5kZXIgdGhlc2UgcHJlY2lzZSBjb25kaXRpb25zLCBhIHZpZXdlciBzdGFuZGluZyB3aXRoIGhpcyBvciBoZXIgYmFjayB0byB0aGUgbW9vbiBjb3VsZCBwb3RlbnRpYWxseSBvYnNlcnZlIGEgbW9vbmJvdy48L3A+PHA+PHN0cm9uZz5DLjwvc3Ryb25nPiBBbHRob3VnaCBtdWx0aWNvbG91cmVkLCB0aGUgYmFuZHMgb2YgdGhlIGFyYyBvZiBhIG1vb25ib3cgYXBwZWFyIGFzIHZhcmlvdXMgc2hhZGVzIG9mIGdyZXkgdG8gdGhlIG5ha2VkIGV5ZS4gVGhpcyBjYW4gYmUgYXR0cmlidXRlZCB0byBwaHlzaW9sb2dpY2FsIGZhY3RvcnMuIEJlY2F1c2UgaXQgaXMgZGlmZmljdWx0IGZvciB0aGUgaHVtYW4gZXllIHRvIGRpc2Nlcm4gY29sb3VycyBhdCBsb3cgbGV2ZWxzIG9mIGlsbHVtaW5hdGlvbiwgc3VjaCBhcyBpbiB0aGUgZGFya25lc3Mgb2YgbmlnaHQsIHRoZSBtdWx0aWh1ZWQgYm93IGFwcGVhcnMgd2hpdGUgb3IgZ3JleS4gTm9uZXRoZWxlc3MsIHRoZSBtYWduaWZpY2VudCBjb2xvdXJzIG9mIGx1bmFyIGJvd3MgY2FuIGJlIHBpY2tlZCB1cCBpbiBsb25nLWV4cG9zdXJlIHBob3RvZ3JhcGhzLCBldmVuIHRob3VnaCB0aGUgYXJjIGFwcGVhcnMgbW9ub2Nocm9tZSB0byB0aGUgcGhvdG9ncmFwaGVyLjwvcD48cD48c3Ryb25nPkQuPC9zdHJvbmc+IEJlY2F1c2Ugb2YgdGhlIHNwZWNpZmljIGNvbWJpbmF0aW9uIG9mIGNvbmRpdGlvbnMgcmVxdWlyZWQsIG1vb25ib3dzIGFyZSBtb3JlIHByZXZhbGVudCBpbiBjZXJ0YWluIGxvY2F0aW9ucyBhcm91bmQgdGhlIHdvcmxkLCBwYXJ0aWN1bGFybHkgdGhvc2UgdGhhdCBoYXZlIHdhdGVyZmFsbHMuIFN1Y2ggbW9vbmJvd3MgZm9ybSBmYWlybHkgcmVndWxhcmx5IGF0IFlvc2VtaXRlIEZhbGxzIGluIENhbGlmb3JuaWEsIEN1bWJlcmxhbmQgRmFsbHMgaW4gS2VudHVja3ksIGFuZCBWaWN0b3JpYSBGYWxscyBvbiB0aGUgYm9yZGVyIG9mIFphbWJpYSBhbmQgWmltYmFid2UgaW4gQWZyaWNhLiBJbiBmYWN0LCBtb29uYm93IHByZWRpY3Rpb25zIGF0IHNvbWUgb2YgdGhlc2UgbG9jYXRpb25zIGNhbiBiZSBmb3VuZCBvbiB2YXJpb3VzIHdlYnNpdGVzLiBUaGUgYXBwZWFyYW5jZSBvZiBsdW5hciByYWluYm93cyBpcyBhbHNvIGNvbW1vbiBpbiB0aGUgY2xvdWQgZm9yZXN0cyBvZiBDb3N0YSBSaWNhIGFuZCBpbiBjZXJ0YWluIGFyZWFzIG9mIEhhd2FpaS4gSWYgeW91IGFyZSBmb3J0dW5hdGUgZW5vdWdoIHRvIGJlIGF0IHRoZSByaWdodCBwbGFjZSBhdCB0aGUgcmlnaHQgdGltZSwgeW91IG1heSBiZSBhYmxlIHRvIGNhdGNoIGEgZ2xpbXBzZSBvZiB0aGlzIG1hZ25pZmljZW50IHBoZW5vbWVub24uPC9wPjxwPjxzdHJvbmc+RS48L3N0cm9uZz4gTm90IGdpdmVuIGluIGFueSBvZiB0aGUgYWJvdmUgcGFyYWdyYXBocy48L3A+In0sImJsb2NrcyI6W3sidHlwZSI6Im1hdGNoIiwiaW5zdHIiOiJEZWNpZGUgd2hpY2ggcGFyYWdyYXBoLCBBIHRvIEQsIGhhcyB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gZWFjaCBzdGF0ZW1lbnQgYmVsb3cuIFNlbGVjdCBFIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyBub3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBwYXJhZ3JhcGhzLiIsImxldHRlcnMiOlsiQSIsIkIiLCJDIiwiRCIsIkUiXSwiaXRlbXMiOlt7Im4iOjEsInRleHQiOiJUaGUgb3JpZW50YXRpb24gb2YgdGhlIG1vb24gaW4gcmVsYXRpb24gdG8gdGhlIGVhcnRoIGltcGFjdHMgdGhlIGludGVuc2l0eSBvZiB0aGUgYm93LiIsImtleSI6Mn0seyJuIjoyLCJ0ZXh0IjoiTW9vbmJvd3Mgb2NjdXIgbGVzcyBmcmVxdWVudGx5IHRoYW4gdGhlaXIgZGF5dGltZSBjb3VudGVycGFydHMuIiwia2V5IjoxfSx7Im4iOjMsInRleHQiOiJTcGVjaWZpYyBjaXJjdW1zdGFuY2VzIG11c3Qgb2NjdXIgc2ltdWx0YW5lb3VzbHkgaW4gb3JkZXIgdG8gY3JlYXRlIGEgbW9vbmJvdy4iLCJrZXkiOjJ9LHsibiI6NCwidGV4dCI6IkltYWdlcyBvZiByYWluYm93cyBhcmUgbXVjaCBtb3JlIGNvbW1vbiB0aGFuIGltYWdlcyBvZiBtb29uYm93cy4iLCJrZXkiOjF9LHsibiI6NSwidGV4dCI6Ik1vb25ib3dzIGFyZSBvZnRlbiBzZWVuIG9uIG5pZ2h0cyB3aGVuIHRoZSBtb29uIGlzIGhpZ2ggaW4gdGhlIHNreS4iLCJrZXkiOjV9LHsibiI6NiwidGV4dCI6IlNwZWNpZmljIGdlb2dyYXBoaWNhbCBzaXRlcyBhcmUgbW9yZSBzdWl0YWJsZSBmb3IgbHVuYXIgcmFpbmJvd3MuIiwia2V5Ijo0fSx7Im4iOjcsInRleHQiOiJJdCBpcyBwb3NzaWJsZSB0byBvYnRhaW4gZm9yZWNhc3RzIGZvciBzb21lIG1vb25ib3cgb2NjdXJyZW5jZXMuIiwia2V5Ijo0fSx7Im4iOjgsInRleHQiOiJQZXJjZXB0aW9uIG9mIG1vb25ib3cgY29sb3VycyBpcyBoaW5kZXJlZCBieSBsYWNrIG9mIGxpZ2h0LiIsImtleSI6M30seyJuIjo5LCJ0ZXh0IjoiT2JzZXJ2ZXJzIGhhdmUgY2xhaW1lZCB0byBzZWUgbW9vbmJvd3MgZHVyaW5nIGNyZXNjZW50IG1vb24gcGhhc2VzLiIsImtleSI6NX1dfV19LHsiaWQiOjQsIm5hbWUiOiJSZWFkaW5nIFBhcnQgNDogUmVhZGluZyBmb3IgVmlld3BvaW50cyIsInRpbWUiOiIxMiBtaW51dGVzIiwicGFzc2FnZSI6eyJ0eXBlIjoidGV4dCIsImxhYmVsIjoiUmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGUgZnJvbSBhIHdlYnNpdGUuIiwiaHRtbCI6IjxwPlNtYXJ0cGhvbmVzIGFuZCBvdGhlciB0ZWNobm9sb2dpY2FsIHBhcmFwaGVybmFsaWEgaGF2ZSBpbnZhZGVkIG91ciBsaXZlcy4gV2UgYXJlIG5vdyBzdXJyb3VuZGVkIGJ5IHBlb3BsZSBlc2NoZXdpbmcgc29jaWFsIGV0aXF1ZXR0ZSBieSBjb21wdWxzaXZlbHkgY2hlY2tpbmcgdGhlaXIgcGhvbmVzLCBkcmF3biBhdXRvbWF0aWNhbGx5IHRvIHRoZSBpbmNlc3NhbnQgJmxkcXVvO2RpbmcmcmRxdW87IG9mIHRoZWlyIG5vdGlmaWNhdGlvbnMuIFRoZSB1YmlxdWl0eSBhbmQgbmF0dXJlIG9mIHRoaXMgbW9kZXJuIHRlY2hub2xvZ3kgaGF2ZSBtYWRlIGNvbmNlbnRyYXRpbmcgb24gYW55dGhpbmcgZm9yIG1vcmUgdGhhbiBhIG1vbWVudCBmZWVsIGxpa2UgYSBIZXJjdWxlYW4gdGFzay4gWW91bmcgY2hpbGRyZW4gYXJlIHBhcnRpY3VsYXJseSBhdCByaXNrLCBzaW5jZSB0aGVpciBuZXVyb2xvZ2ljYWwgZGV2ZWxvcG1lbnQgaXMgbm90IHlldCBjb21wbGV0ZS48L3A+PHA+VGhlIGltcHJlc3Npb24gdGhhdCBjaGlsZHJlbiBhcmUgbmVnYXRpdmVseSBhZmZlY3RlZCBieSBwZXJzb25hbCBjb21wdXRpbmcgZGV2aWNlcyBpcyByZWZsZWN0ZWQgaW4gYW5lY2RvdGFsIGV2aWRlbmNlIGZyb20gY2xhc3Nyb29tcywgd2hlcmUgdGVhY2hlcnMgaW5jcmVhc2luZ2x5IHJlcG9ydCBzaG9ydGVuZWQgYXR0ZW50aW9uIHNwYW5zIGluIHB1cGlscy4gTGlzYSBDcmFuYmVyZywgYSB2ZXRlcmFuIGVsZW1lbnRhcnkgc2Nob29sIHRlYWNoZXIsIGJlbGlldmVzIHRoYXQgJmxkcXVvO2V4cG9zdXJlIHRvIHRlY2hub2xvZ3kgaXMgcmV3aXJpbmcgb3VyIGtpZHMmcnNxdW87IGJyYWlucy4mcmRxdW87IEZvciBoZXIsICZsZHF1bztjaGlsZHJlbiBzcGVuZGluZyBleHRlbmRlZCBwZXJpb2RzIG9mIHRpbWUgaW50ZXJhY3Rpbmcgc29sZWx5IHdpdGggdGhlaXIgc21hcnRwaG9uZXMgaXMgc2hvd2luZyBkaW1pbmlzaGVkIHNlbGYtYXdhcmVuZXNzLCBlbW90aW9uYWwgaW50ZWxsaWdlbmNlLCBhbmQgZm9jdXMuJnJkcXVvOyBJbiBlc3NlbmNlLCBzaGUgYmVsaWV2ZXMgdGhhdCBvdmVyc3RpbXVsYXRpb24gaXMgbWFraW5nIGl0IGRpZmZpY3VsdCBmb3Igc3R1ZGVudHMgdG8gY29uY2VudHJhdGUgaW4gYSB0cmFkaXRpb25hbCBsZWN0dXJlLWNlbnRyaWMgY2xhc3Nyb29tLjwvcD48cD5Ob3QgZXZlcnlvbmUgaXMgYXMgYW54aW91cywgaG93ZXZlciwgYWJvdXQgdGVjaG5vbG9naWNhbCBhZHZhbmNlcy4gRHIuIENsYXJhIEh1Z2hlcyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBXYXRlcmxvbyBhZ3JlZXMgdGhhdCBzaGlmdHMgaW4gc3RpbXVsaSBhcmUgcmVzdWx0aW5nIGluIGNlcmVicmFsIHJld2lyaW5nLCB3aXRoIHJhbWlmaWNhdGlvbnMgdGhhdCBtaWdodCBpbmNsdWRlIHNob3J0ZXIgYXR0ZW50aW9uIHNwYW5zLiBIb3dldmVyLCBzaGUgY2xhaW1zIHRoYXQgZGV2ZWxvcGluZyB0aGVzZSBtZWNoYW5pc21zIHRoYXQgYWxsb3cgdXMgdG8gcGFydGFrZSBpbiByYXBpZC1maXJlIGF0dGVudGlvbiBzaGlmdGluZyBpcyBhY3R1YWxseSAmbGRxdW87YmVuZWZpY2lhbCB0byBjcmVhdGl2ZSB0eXBlcyB3aG9zZSBqb2IgaXMgdG8gYW1hbGdhbWF0ZSBkaXNwYXJhdGUgaWRlYXMuJnJkcXVvOyBTaGUgc3VybWlzZXMgdGhhdCBvdXIgYnJhaW5zIGFyZSBzaW1wbHkgYWRhcHRpbmcgdG8gdGhlIGxldmVsIG9mIHN0aW11bGF0aW9uIGluaGVyZW50IHRvIG91ciBlbnZpcm9ubWVudC48L3A+PHA+SW4gZmFjdCwgd2hpbGUgdGVjaG5vbG9neSBjYW4gYmUgaGFybWZ1bCB0byBjb25jZW50cmF0aW9uLCBhIG5ldyB3YXZlIG9mIHJlc2VhcmNoIGlzIHVuZWFydGhpbmcgYSB3aG9sZSBzbGV3IG9mIHVuZm9yZXNlZW4gYmVuZWZpY2lhbCBlZmZlY3RzLiAmbGRxdW87TW9kZXJuIHRlY2hub2xvZ3kgaXMgYmV0dGVyaW5nIG91ciBhYmlsaXR5IHRvIG11bHRpdGFzayBhbmQgY29uY2VudHJhdGUgaW4gc2hvcnQgYnVyc3RzLCZyZHF1bzsgYWNjb3JkaW5nIHRvIG5ldXJvcHN5Y2hvbG9naXN0IERyLiBNYXJrIExldmluc29uLiBUaGlzIG1lYW5zIHRoYXQgJmxkcXVvO3dlIGdldCBhIGJldHRlciBzZW5zZSBvZiB3aGF0IGRlc2VydmVzIG91ciBhdHRlbnRpb24sIGFuZCB0aGVyZSBpcyBhbiBpbXByb3ZlZCBzZWxlY3Rpb24gb2YgdGhlIGluZm9ybWF0aW9uIHdlIGNvbW1pdCB0byBtZW1vcnkuJnJkcXVvOzwvcD48cD5Eci4gSHVnaGVzIGlzIG1vcmUgbW9kZXJhdGUgaW4gaGVyIGFuYWx5c2lzLCBzYXlpbmcgdGhhdCAmbGRxdW87b3ZlcmV4cG9zdXJlIGFuZCBnYWRnZXQgYWRkaWN0aW9uIGRvIGhhdmUgYSBkZW1vbnN0cmFibHkgbmVnYXRpdmUgZWZmZWN0IG9uIG1hbnkgY29nbml0aXZlIGJlaGF2aW91cnMuJnJkcXVvOyBOZXZlcnRoZWxlc3MsIHNoZSBjb25jdXJzIHdpdGggRHIuIExldmluc29uJnJzcXVvO3Mgb3ZlcmFsbCBiZW5lZmljaWFsIGFzc2Vzc21lbnQgb2YgdGhlIG5ldXJvbG9naWNhbCBzaWRlLWVmZmVjdHMgb2Ygb3VyIGludGVyYWN0aW9ucyB3aXRoIGRpZ2l0YWwgdGVjaG5vbG9naWVzLjwvcD4ifSwiYmxvY2tzIjpbeyJ0eXBlIjoic3RlbWxpc3QiLCJpbnN0ciI6IlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGluZm9ybWF0aW9uIGdpdmVuIG9uIHRoZSB3ZWJzaXRlLiIsIml0ZW1zIjpbeyJuIjoxLCJwcmUiOiJUaGUgaW50ZW50IG9mIHRoZSBmaXJzdCBwYXJhZ3JhcGggaXMgdG8iLCJvcHRpb25zIjpbImNvbXBsYWluIGFib3V0IGEgdGVjaG5vbG9neS1saW5rZWQgZGVjbGluZSBpbiBzb2NpYWwgc2tpbGxzLiIsImRlc2NyaWJlIHJlY2VudCBhZHZhbmNlcyBpbiBkaWdpdGFsIGNvbW11bmljYXRpb24gdGVjaG5vbG9neS4iLCJjcml0aWNpemUgdGhlIGRldHJpbWVudGFsIG92ZXJ1c2Ugb2YgY29tbXVuaWNhdGlvbiBkZXZpY2VzLiIsIndhcm4gYWJvdXQgaG93IHNtYXJ0cGhvbmVzIG1heSBpbXBhY3QgY2hpbGRyZW5cdTIwMTlzIGJyYWlucy4iXSwia2V5IjozfSx7Im4iOjIsInByZSI6Ik1zLiBDcmFuYmVyZ1x1MjAxOXMgb3BpbmlvbiBzdGVtcyBmcm9tIGhlciIsIm9wdGlvbnMiOlsiZXhwZXJpZW5jZXMgd2l0aCBoZXIgb3duIGNoaWxkcmVuLiIsIm9ic2VydmF0aW9ucyBvdmVyIHRoZSB5ZWFycy4iLCJyZXNlYXJjaCBvbiBlbW90aW9uYWwgaW50ZWxsaWdlbmNlLiIsInVzZSBvZiB0cmFkaXRpb25hbCBsZWN0dXJlcy4iXSwia2V5IjoyfSx7Im4iOjMsInByZSI6IkRyLiBIdWdoZXNcdTIwMTkgbWFpbiBwb2ludCBpcyB0aGF0IG91ciIsIm9wdGlvbnMiOlsiYmVoYXZpb3VyIGluZGljYXRlcyBzaG9ydGVuZWQgYXR0ZW50aW9uIHNwYW5zLiIsImJyYWlucyBhcmUgYmVuZWZpdGluZyBieSBiZWNvbWluZyBtb3JlIGNyZWF0aXZlLiIsImJlaGF2aW91cnMgYXJlIGJlaW5nIG5lZ2F0aXZlbHkgYWZmZWN0ZWQuIiwiYnJhaW5zIGFyZSBhZGFwdGluZyB0byBuZXcgdGVjaG5vbG9naWVzLiJdLCJrZXkiOjR9LHsibiI6NCwicHJlIjoiRHIuIEh1Z2hlcyBhbmQgTXMuIENyYW5iZXJnIHdvdWxkIGFncmVlIHRoYXQiLCJvcHRpb25zIjpbImNvbW11bmljYXRpb24gdGVjaG5vbG9neSBvdmVydXNlIG1heSBsb3dlciBlbW90aW9uYWwgaW50ZWxsaWdlbmNlLiIsInNtYXJ0cGhvbmVzIG1heSBjb250cmlidXRlIHRvIGhpZ2hlciBhY2FkZW1pYyBhY2hpZXZlbWVudC4iLCJlbGVjdHJvbmljIGRldmljZXMgY2FuIGZvc3RlciBjcmVhdGl2aXR5IGluIHlvdW5nIHBlb3BsZS4iLCJjaGlsZHJlbiBjYW4gYmV0dGVyIG11bHRpLXRhc2sgdGhhbmtzIHRvIGVsZWN0cm9uaWMgZGV2aWNlcy4iXSwia2V5IjoxfSx7Im4iOjUsInByZSI6IkRyLiBMZXZpbnNvbiB3b3VsZCBsaWtlbHkgYWdyZWUgdGhhdCIsIm9wdGlvbnMiOlsiY2hpbGRyZW4gY2FuIGJlbmVmaXQgZnJvbSB1c2luZyB0ZWNobm9sb2dpY2FsIGRldmljZXMuIiwidGhlIGltcGFjdHMgb2YgZGlnaXRhbCBkZXZpY2VzIGRlc2VydmUgbW9yZSBhdHRlbnRpb24uIiwib3VyIGJyYWlucyBuZWVkIHN0aW11bGF0aW9uIGZyb20gZGlnaXRhbCBkZXZpY2VzLiIsInRlY2hub2xvZ2ljYWwgZGV2aWNlcyBjYW4gaGFybSBvdXIgbWVtb3J5IHByb2Nlc3Nlcy4iXSwia2V5IjoxfV19LHsidHlwZSI6ImNsb3plIiwiaW5zdHIiOiJUaGUgZm9sbG93aW5nIGlzIGEgY29tbWVudCBieSBhIHZpc2l0b3IgdG8gdGhlIHdlYnNpdGUgcGFnZS4gQ29tcGxldGUgdGhlIGNvbW1lbnQgYnkgY2hvb3NpbmcgdGhlIGJlc3Qgb3B0aW9uIHRvIGZpbGwgaW4gZWFjaCBibGFuay4iLCJib2R5IjpbIklcdTIwMTl2ZSBuZXZlciByZWFsbHkgdGhvdWdodCBhYm91dCB0aGUgZWZmZWN0IG9mIGVtZXJnaW5nIHRlY2hub2xvZ2llcyBvbiBuZXVyb2xvZ2ljYWwgZGV2ZWxvcG1lbnQsIGJ1dCBhcyBhIHBhcmVudCBvZiBmb3VyIHlvdW5nc3RlcnMsIHRoaXMgcGllY2UgY2VydGFpbmx5IHBpcXVlZCBteSBpbnRlcmVzdCEgQWZ0ZXIgcmVhZGluZyB0aGUgdmFyaW91cyB2aWV3cG9pbnRzLCBJIGZlbHQgdGhhdCAiLHsiYiI6Niwib3B0aW9ucyI6WyJ0aGUgYXV0aG9yIiwiRHIuIEh1Z2hlcyIsIk1zLiBDcmFuYmVyZyIsIkRyLiBMZXZpbnNvbiJdLCJrZXkiOjR9LCIgbmVnbGVjdGVkIHRvIG1lbnRpb24gdGhlIHBvdGVudGlhbGx5IG5lZ2F0aXZlIGNvbnNlcXVlbmNlcyBvZiBkaW1pbmlzaGluZyBhdHRlbnRpb24gc3BhbnMuICIseyJiIjo3LCJvcHRpb25zIjpbIlRoaXMgYXJ0aWNsZSBhbHNvIGRpc3BhcmFnZXMgdGhlIiwiQWRkaXRpb25hbGx5LCB0aGUgc3Rha2Vob2xkZXJzIGlnbm9yZSIsIkJ1dCBJIGFncmVlIHRoYXQgdGhlcmUgYXJlIiwiT25seSB0aGUgdGVhY2hlciBhcHByZWNpYXRlcyB0aGUiXSwia2V5IjozfSwiIG51bWVyb3VzIHZhbHVhYmxlIGVmZmVjdHMgb2YgaHVtYW4tY29tcHV0ZXIgaW50ZXJhY3Rpb25zLCBzdWNoIGFzIGltcHJvdmVtZW50cyBpbiB0aGUgYWJpbGl0eSB0byBzaW11bHRhbmVvdXNseSBleGVjdXRlIG11bHRpcGxlIGFjdGl2aXRpZXMsIGFzc2VtYmxlIGNvbnRyYXN0aW5nIGluZm9ybWF0aW9uLCBhbmQgc29ydCBvdXQgZmFjdHMuIE1lYW53aGlsZSwgSSB3YXMgZGlzYXBwb2ludGVkIGJ5IHRoZSBhbGFybWlzdCB2aWV3cyBvbiAiLHsiYiI6OCwib3B0aW9ucyI6WyJ0aGUgZGVjbGluaW5nIHF1YWxpdHkgb2YgaG9tZXdvcmsiLCJkaXNvcmRlcmx5IHN0dWRlbnQgYmVoYXZpb3VycyIsInRlYWNoZXJzXHUyMDE5IHJlcG9ydGluZyBwcmFjdGljZXMiLCJzdHVkZW50cyBhbmQgZWxlY3Ryb25pYyBkZXZpY2VzIl0sImtleSI6NH0sIiBleHByZXNzZWQgYnkgTXMuIENyYW5iZXJnLiAiLHsiYiI6OSwib3B0aW9ucyI6WyJOZXcgaW5mb3JtYXRpb25hbCBpbnB1dHMiLCJNb2RpZmllZCBjb2duaXRpdmUgYmVoYXZpb3VycyIsIkNoaWxkcmVuXHUyMDE5cyBpbXByb3ZlZCBjdXJpb3NpdHkiLCJUcmllZC1hbmQtdHJ1ZSB0ZWFjaGluZyBtZXRob2RzIl0sImtleSI6MX0sIiBzaG91bGQgYmUgYSBibGVzc2luZyBmb3IgdGVhY2hlcnMgYW5kIGNsYXNzcm9vbXMuICIseyJiIjoxMCwib3B0aW9ucyI6WyJXaGVuIHRlYWNoZXJzIGFyZSB0aXJlZCBvZiIsIklmIGNoaWxkcmVuIGFyZSBub3QgZW5nYWdlZCBieSIsIlNpbmNlIHRlY2hub2xvZ3kgaGFzIGltcHJvdmVkIiwiVW5sZXNzIHN0dWRlbnRzIHByZWZlciJdLCJrZXkiOjJ9LCIgdHJhZGl0aW9uYWwgZWR1Y2F0aW9uYWwgbWV0aG9kcywgYXMgTXMuIENyYW5iZXJnIGluc2ludWF0ZXMsIHRoZW4gdGhlc2UgbWV0aG9kcyBuZWVkIHRvIGJlIGFkYXB0ZWQgdG8gdGhlIHdheSBjaGlsZHJlbiBjb25zdW1lIGluZm9ybWF0aW9uIGluIHRoZWlyIGRhaWx5IGxpdmVzLiJdfV19XX07CgpmdW5jdGlvbiBjbGJFc3RpbWF0ZVIocmF3KXsKICBpZiAocmF3ID49IDM1KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDEwXHUyMDEzMTInLCBub3RlOidBZHZhbmNlZCBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDMwKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDknLCAgbm90ZTonRWZmZWN0aXZlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgOCcsICBub3RlOidHb29kIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMjIpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNycsICBub3RlOidBZGVxdWF0ZSBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDE3KSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDYnLCAgbm90ZTonRGV2ZWxvcGluZyBwcm9maWNpZW5jeScgfTsKICBpZiAocmF3ID49IDExKSByZXR1cm4geyBsZXZlbDonQ0VMUElQIDUnLCAgbm90ZTonQWNxdWlyaW5nIHByb2ZpY2llbmN5JyB9OwogIHJldHVybiB7IGxldmVsOidDRUxQSVAgNCBvciBiZWxvdycsIG5vdGU6J0tlZXAgcHJhY3RpY2luZyEnIH07Cn0KCihmdW5jdGlvbigpewogIC8qIC0tLS0gaW5qZWN0IHNjb3BlZCBDU1MgKFdvcmRQcmVzcy1zYWZlOiA8c3R5bGU+IGluIGNvbnRlbnQgY2FuIGJlIHN0cmlwcGVkKSAtLS0tICovCiAgdmFyIENTUyA9IGAKLmNscHItd3JhcHstLW5hdnk6IzA1MEUyMDstLWI5MDA6IzBEMjM1MjstLWI3MDA6IzEyNDVBODstLWI1MDA6IzI1NjNFQjstLWI0MDA6IzNCODJGNjstLWIyMDA6IzkzQzVGRDstLWIxMDA6I0RCRUFGRTstLWI1MDojRUZGNkZGOy0tdGVhbDojMEQ5NDg4Oy0tY3lhbjojMDZCNkQ0Oy0tZ3JlZW46IzEwQjk4MTstLWdyZWVuNTA6I0VDRkRGNTstLXJvc2U6I0Y0M0Y1RTstLXRleHQ6IzBGMTcyQTstLW11dGVkOiM0NzU1Njk7LS1zdWJ0bGU6Izk0QTNCODstLWJvcmRlcjojRTJFOEYwOy0tYmFyLWJnOiNFOEVCRUY7LS1iYXItYm9yZGVyOiNEM0Q5RTA7LS1iYXItdGV4dDojMUYyOTM3Oy0tcGFuZWwtcC1iZzojRjRGNUY3Oy0tcGFuZWwtcC1ib3JkZXI6I0UzRTZFQTstLXBhbmVsLXEtYmc6I0U5RjRGNzstLXBhbmVsLXEtYm9yZGVyOiNENkU4RUQ7LS1kZC1vcGVuLWJnOiNDQkVCRjQ7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJyxzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxTZWdvZSBVSSxSb2JvdG8sc2Fucy1zZXJpZjtjb2xvcjp2YXIoLS10ZXh0KTttYXgtd2lkdGg6MTE4MHB4O21hcmdpbjowIGF1dG87cGFkZGluZzoxNnB4IDE2cHggNTZweDtsaW5lLWhlaWdodDoxLjU7Zm9udC1zaXplOjE2cHg7fQouY2xwci13cmFwICosLmNscHItd3JhcCAqOjpiZWZvcmUsLmNscHItd3JhcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7fQouY2xwci13cmFwIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO30KLmNscHItd3JhcCBoMSwuY2xwci13cmFwIGgyLC5jbHByLXdyYXAgaDMsLmNscHItd3JhcCBwe21hcmdpbjowO30KLmNscHItaGVyb3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czoyMnB4O2JhY2tncm91bmQ6dmFyKC0tbmF2eSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjM0cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxM3B4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ym94LXNoYWRvdzowIDIwcHggNDBweCAtMjBweCByZ2JhKDUsMTQsMzIsLjQ1KTt9Ci5jbHByLWF1cm9yYXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouY2xwci1hdXJvcmEgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6NTAlO2ZpbHRlcjpibHVyKDQ2cHgpO29wYWNpdHk6LjU1O30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDEpe3dpZHRoOjQyMHB4O2hlaWdodDo0MjBweDtsZWZ0Oi0xMjBweDt0b3A6LTIwMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMTI0NUE4IDAlLHRyYW5zcGFyZW50IDcwJSk7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMil7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4O3JpZ2h0Oi04MHB4O3RvcDotMTYwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMwRDk0ODggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgzKXt3aWR0aDozNDBweDtoZWlnaHQ6MzQwcHg7cmlnaHQ6MjIlO2JvdHRvbTotMjQwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWhlcm8tYmFkZ2Vze2Rpc3BsYXk6ZmxleDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7fQouY2xwci1iYWRnZS1icmFuZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0tYjkwMCk7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6NHB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtsZXR0ZXItc3BhY2luZzouMDFlbTt9Ci5jbHByLWJhZGdlLXNldHtjb2xvcjp2YXIoLS1iMjAwKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7fQouY2xwci1oZXJvIGgxe3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTpjbGFtcCgyNnB4LDR2dyw0MHB4KTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO2xpbmUtaGVpZ2h0OjEuMTI7fQouY2xwci1oZXJvLXN1Yntwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojQzdEMkUzO2ZvbnQtc2l6ZToxNC41cHg7bWF4LXdpZHRoOjc2MHB4O30KLmNscHItaGVyby1jaGlwc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWNoaXB7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I0U1RUVGQjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjE2KTtwYWRkaW5nOjVweCAxMXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7fQouY2xwci1jdGF7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDo2cHg7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweDtwYWRkaW5nOjEycHggMjJweDtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDEycHggMjRweCAtMTBweCByZ2JhKDM3LDk5LDIzNSwuOCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyxiYWNrZ3JvdW5kIC4xNXM7fQouY2xwci1jdGE6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7YmFja2dyb3VuZDp2YXIoLS1iNDAwKTt9Ci5jbHByLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE4cHg7cGFkZGluZzoxMHB4IDE0cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAxOHB4IC0xMnB4IHJnYmEoMTUsMjMsNDIsLjI1KTtwb3NpdGlvbjpzdGlja3k7dG9wOjhweDt6LWluZGV4OjMwO30KLmNscHItdG9vbGJhcltoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXRvb2xiYXItc3BhY2Vye2ZsZXg6MTt9Ci5jbHByLXNjb3JlLWNoaXB7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWI5MDApO2JhY2tncm91bmQ6dmFyKC0tYjUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWIxMDApO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLXRidG57YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0KTtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggMTVweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxib3gtc2hhZG93IC4xMnM7fQouY2xwci10YnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTRweCAtOHB4IHJnYmEoMTUsMjMsNDIsLjMpO30KLmNscHItdGJ0bi1jaGVja3tiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTtib3JkZXItY29sb3I6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci10YnRuLWNoZWNrOmhvdmVye2JhY2tncm91bmQ6IzBjYTY3ODt9Ci5jbHByLXRidG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZTt9Ci5jbHByLXNpbXttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1zaW1baGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1kb3Rze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbjowIDAgMTJweCAycHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1kb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1tdXRlZCk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1czt9Ci5jbHByLWRvdCBie2Rpc3BsYXk6aW5saW5lLWZsZXg7d2lkdGg6MTlweDtoZWlnaHQ6MTlweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWIxMDApO2NvbG9yOnZhcigtLWI5MDApO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMXB4O30KLmNscHItZG90LmNscHItY3Vye2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1jdXIgYntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjI1KTtjb2xvcjojZmZmO30KLmNscHItZG90LmNscHItZG9uZSBie2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2NvbG9yOiNmZmY7fQouY2xwci1jYXR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMXB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYXItYmcpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItYmFyLXRpdGxle2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iYXItdGV4dCk7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItYmFyLXRpbWVye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWJhci10ZXh0KTt3aGl0ZS1zcGFjZTpub3dyYXA7fQouY2xwci1iYXItdGltZXIgYntmb250LXdlaWdodDo4MDA7fQouY2xwci1jb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MDt9Ci5jbHByLXBhc3NhZ2V7cGFkZGluZzoyMHB4IDIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbC1wLWJnKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0OjEyMDBweDtvdmVyZmxvdzphdXRvO30KLmNscHItcWNvbHtwYWRkaW5nOjE4cHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXEtYmcpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1wbGFiZWwsLmNscHItaW5zdHJ7ZGlzcGxheTpmbGV4O2dhcDo5cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7bWFyZ2luLWJvdHRvbToxMnB4O30KLmNscHItcGxhYmVsOjpiZWZvcmUsLmNscHItaW5zdHI6OmJlZm9yZXtjb250ZW50OiJpIjtmbGV4Om5vbmU7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjFweDt9Ci5jbHByLXBhc3NhZ2UgcHtmb250LXNpemU6MTQuNXB4O2NvbG9yOiMxZTJhM2E7bWFyZ2luLWJvdHRvbToxMXB4O2xpbmUtaGVpZ2h0OjEuNzI7fQouY2xwci1waW1ne3dpZHRoOjEwMCU7aGVpZ2h0OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7fQouY2xwci1ibG9ja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1xLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTZweCAxNnB4O21hcmdpbi1ib3R0b206MTZweDt9Ci5jbHByLXN0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO3BhZGRpbmc6OXB4IDA7bGluZS1oZWlnaHQ6MS43O30KLmNscHItc3RlbSArIC5jbHByLXN0ZW17Ym9yZGVyLXRvcDoxcHggZGFzaGVkICNFNkVERjE7fQouY2xwci1zbnVte2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTt9Ci5jbHByLWNsb3ple2ZvbnQtc2l6ZToxNXB4O2NvbG9yOnZhcigtLXRleHQpO2xpbmUtaGVpZ2h0OjIuMTU7fQouY2xwci1jbG96ZSAuY2xwci1wYXJhe21hcmdpbi1ib3R0b206MTJweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt9Ci5jbHByLW1hdGNoLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDtwYWRkaW5nOjExcHggMDtmb250LXNpemU6MTQuNXB4O2xpbmUtaGVpZ2h0OjEuNjt9Ci5jbHByLW1hdGNoLXJvdyArIC5jbHByLW1hdGNoLXJvd3tib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLW1hdGNoLXJvdyAuY2xwci1zbnVte21hcmdpbi10b3A6NXB4O30KLyogZHJvcGRvd24gd2lkZ2V0ICovCi5jbHByLWRke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjoycHggMnB4O30KLmNscHItZGQtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjY0cHg7bWF4LXdpZHRoOjM0MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNCN0MyQ0U7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo1cHggOXB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6MS4zNTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnMsYm9yZGVyLWNvbG9yIC4xMnM7fQouY2xwci1kZC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLmNscHItb3BlbiAuY2xwci1kZC1idG57YmFja2dyb3VuZDp2YXIoLS1kZC1vcGVuLWJnKTtib3JkZXItY29sb3I6dmFyKC0tYjQwMCk7fQouY2xwci1kZC10eHR7ZmxleDoxO21pbi13aWR0aDowO30KLmNscHItZGQtdHh0LmNscHItZW1wdHl7Y29sb3I6dmFyKC0tc3VidGxlKTtsZXR0ZXItc3BhY2luZzozcHg7fQouY2xwci1kZC1jYXJldHtmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWI3MDApO2ZsZXg6bm9uZTt9Ci5jbHByLWRkLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo2MDt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDozNjBweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjQzZEMERBO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxNnB4IDM0cHggLTEycHggcmdiYSgxNSwyMyw0MiwuNCk7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLW1lbnV7ZGlzcGxheTpibG9jazt9Ci5jbHByLWRkLW9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OXB4O3BhZGRpbmc6OHB4IDlweDtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLXRleHQpO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDt9Ci5jbHByLWRkLW9wdDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7fQouY2xwci1kZC1vcHQgLmNscHItcmFkaW97ZmxleDpub25lO3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjEuNXB4IHNvbGlkICM5QUE3QjQ7bWFyZ2luLXRvcDoxcHg7fQouY2xwci1kZC1vcHQuY2xwci1zZWwgLmNscHItcmFkaW97Ym9yZGVyLWNvbG9yOnZhcigtLWI1MDApO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjMjU2M0VCIDQyJSwjZmZmIDQ3JSk7fQouY2xwci1kZC5jbHByLXJpZ2h0IC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuNTApO2JvcmRlcjoycHggc29saWQgdmFyKC0tZ3JlZW4pO2NvbG9yOiMwNDc4NTc7fQouY2xwci1kZC5jbHByLXdyb25nIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOiNGRkYxRjI7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1yb3NlKTtjb2xvcjojQkUxMjNDO30KLmNscHItc29sdmVke2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDo3cHg7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItc29sdmVke2Rpc3BsYXk6aW5saW5lO30KLmNscHItbmF2e2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE0cHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1uYXZidG57YmFja2dyb3VuZDp2YXIoLS1iOTAwKTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTMuNXB4O3BhZGRpbmc6OXB4IDIwcHg7Ym9yZGVyLXJhZGl1czo5cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyxiYWNrZ3JvdW5kIC4xMnM7fQouY2xwci1uYXZidG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iNzAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTt9Ci5jbHByLW5hdmJ0bi5jbHByLWdob3N0e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7fQouY2xwci1yZXN1bHRze21hcmdpbi10b3A6MThweDt9Ci5jbHByLXJlc3VsdHNbaGlkZGVuXXtkaXNwbGF5Om5vbmU7fQouY2xwci1yZXMtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjI0cHggMjZweDtib3gtc2hhZG93OjAgMTZweCA0MHB4IC0yMnB4IHJnYmEoMTUsMjMsNDIsLjQpO30KLmNscHItcmVzLXRvcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2ZsZXgtd3JhcDp3cmFwO30KLmNscHItcmVzLXNjb3Jle2ZvbnQtc2l6ZTo0NHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS1iNzAwKTtsaW5lLWhlaWdodDoxO30KLmNscHItcmVzLXNjb3JlIHNwYW57Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tc3VidGxlKTt9Ci5jbHByLXJlcy1jbGJ7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxNnB4O30KLmNscHItcmVzLWNsYiBie2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE4cHg7Y29sb3I6dmFyKC0tYjkwMCk7fQouY2xwci1yZXMtY2xiIHNtYWxse2NvbG9yOnZhcigtLW11dGVkKTt9Ci5jbHByLXJlcy1icmVha3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxNnB4O30KLmNscHItcmVzLXBpbGx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNGMUY1Rjk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjZweCAxM3B4O30KLmNscHItcmVzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtmbGV4LXdyYXA6d3JhcDt9CkBtZWRpYShtYXgtd2lkdGg6ODIwcHgpey5jbHByLWNvbHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9LmNscHItcGFzc2FnZXtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1wYW5lbC1wLWJvcmRlcik7bWF4LWhlaWdodDpub25lO30uY2xwci1xY29se21heC1oZWlnaHQ6bm9uZTt9fQpgOwogIHZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7IHN0LnRleHRDb250ZW50ID0gQ1NTOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKICB2YXIgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByV3JhcCcpOwogIHZhciBzdGFydEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU3RhcnQnKTsKICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByVG9vbGJhcicpOwogIHZhciBzaW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNpbScpOwogIHZhciBkb3RzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckRvdHMnKTsKICB2YXIgY2F0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNhdCcpOwogIHZhciByZXN1bHRzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc3VsdHMnKTsKICB2YXIgc2NvcmVDaGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTY29yZUNoaXAnKTsKICB2YXIgY2hlY2tCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwckNoZWNrJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXNldCcpOwoKICB2YXIgUSA9IFtdOwogIHZhciBjdXJQYXJ0ID0gMDsKICB2YXIgY2hlY2tlZCA9IGZhbHNlOwoKICBmdW5jdGlvbiBlbCh0YWcsIGNscywgaHRtbCl7IHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTsgaWYoY2xzKWUuY2xhc3NOYW1lPWNsczsgaWYoaHRtbCE9bnVsbCllLmlubmVySFRNTD1odG1sOyByZXR1cm4gZTsgfQoKICAvKiBCdWlsZCB0aGUgcGVyc2lzdGVudCBxdWVzdGlvbiBsaXN0IE9OQ0U7IGF0dGFjaCAuX3EgdG8gZWFjaCBpdGVtL2JsYW5rIHNvCiAgICAgcmUtcmVuZGVyaW5nIGEgcGFydCByZXVzZXMgdGhlIHNhbWUgc3RhdGUgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4gKi8KICBmdW5jdGlvbiBpbml0UXVlc3Rpb25zKCl7CiAgICBRID0gW107CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpewogICAgICBwYXJ0LmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uKGJsayl7CiAgICAgICAgaWYoYmxrLnR5cGU9PT0nY2xvemUnKXsKICAgICAgICAgIGJsay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsgaWYodHlwZW9mIHRvaz09PSdvYmplY3QnKXsgdG9rLl9xPXtzZWw6bnVsbCxrZXk6dG9rLmtleSxuOnRvay5iLHBhcnQ6cGFydC5pZH07IFEucHVzaCh0b2suX3EpOyB9IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBibGsuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7IGl0Ll9xPXtzZWw6bnVsbCxrZXk6aXQua2V5LG46aXQubixwYXJ0OnBhcnQuaWR9OyBRLnB1c2goaXQuX3EpOyB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBtYWtlRHJvcGRvd24ob3B0aW9ucywgcXJlZil7CiAgICB2YXIgZGQgPSBlbCgnc3BhbicsJ2NscHItZGQnKTsKICAgIHZhciBidG4gPSBlbCgnYnV0dG9uJywnY2xwci1kZC1idG4nKTsKICAgIHZhciB0eHQgPSBlbCgnc3BhbicsJ2NscHItZGQtdHh0IGNscHItZW1wdHknLCcgICAnKTsKICAgIHZhciBjYXJldCA9IGVsKCdzcGFuJywnY2xwci1kZC1jYXJldCcsJ1x1MjViZScpOwogICAgYnRuLmFwcGVuZENoaWxkKHR4dCk7IGJ0bi5hcHBlbmRDaGlsZChjYXJldCk7CiAgICB2YXIgc29sdmVkID0gZWwoJ3NwYW4nLCdjbHByLXNvbHZlZCcsJycpOwogICAgdmFyIG1lbnUgPSBlbCgnc3BhbicsJ2NscHItZGQtbWVudScpOwogICAgb3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9wdCwgaSl7CiAgICAgIHZhciBvID0gZWwoJ3NwYW4nLCdjbHByLWRkLW9wdCcpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1yYWRpbycpKTsKICAgICAgby5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxvcHQpKTsKICAgICAgby5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICBpZihjaGVja2VkKSByZXR1cm47CiAgICAgICAgcXJlZi5zZWwgPSBpKzE7CiAgICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0OyB0eHQuY2xhc3NOYW1lPSdjbHByLWRkLXR4dCc7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1zZWwnKTt9KTsKICAgICAgICBvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICAgICAgY2xvc2VBbGwoKTsKICAgICAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgICAgfSk7CiAgICAgIG1lbnUuYXBwZW5kQ2hpbGQobyk7CiAgICB9KTsKICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2KXsKICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgdmFyIHdhc09wZW4gPSBkZC5jbGFzc0xpc3QuY29udGFpbnMoJ2NscHItb3BlbicpOwogICAgICBjbG9zZUFsbCgpOwogICAgICBpZighd2FzT3BlbikgZGQuY2xhc3NMaXN0LmFkZCgnY2xwci1vcGVuJyk7CiAgICB9KTsKICAgIGRkLmFwcGVuZENoaWxkKGJ0bik7IGRkLmFwcGVuZENoaWxkKHNvbHZlZCk7IGRkLmFwcGVuZENoaWxkKG1lbnUpOwogICAgcXJlZi5kZEVsID0gZGQ7IHFyZWYudHh0RWwgPSB0eHQ7IHFyZWYuc29sdmVkRWwgPSBzb2x2ZWQ7IHFyZWYub3B0aW9ucyA9IG9wdGlvbnM7CiAgICBpZihxcmVmLnNlbCE9bnVsbCl7CiAgICAgIHR4dC50ZXh0Q29udGVudCA9IG9wdGlvbnNbcXJlZi5zZWwtMV07IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgdmFyIHNvID0gbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC1vcHQnKVtxcmVmLnNlbC0xXTsgaWYoc28pIHNvLmNsYXNzTGlzdC5hZGQoJ2NscHItc2VsJyk7CiAgICB9CiAgICByZXR1cm4gZGQ7CiAgfQogIGZ1bmN0aW9uIGNsb3NlQWxsKCl7IHdyYXAucXVlcnlTZWxlY3RvckFsbCgnLmNscHItZGQuY2xwci1vcGVuJykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItb3BlbicpO30pOyB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUFsbCk7CgogIGZ1bmN0aW9uIGJ1aWxkUGFydChwaSl7CiAgICB2YXIgcGFydCA9IFJEQVRBLnBhcnRzW3BpXTsKICAgIGNhdEVsLmlubmVySFRNTD0nJzsKICAgIHZhciBiYXIgPSBlbCgnZGl2JywnY2xwci1iYXInKTsKICAgIGJhci5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1iYXItdGl0bGUnLCAnUHJhY3RpY2UgVGVzdCAxIFx1MjAxMyAnK3BhcnQubmFtZSkpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aW1lcicsJ1N1Z2dlc3RlZCB0aW1lOiA8Yj4nK3BhcnQudGltZSsnPC9iPicpKTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGJhcik7CiAgICB2YXIgY29scyA9IGVsKCdkaXYnLCdjbHByLWNvbHMnKTsKICAgIHZhciBsZWZ0ID0gZWwoJ2RpdicsJ2NscHItcGFzc2FnZScpOwogICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1wbGFiZWwnLCBwYXJ0LnBhc3NhZ2UubGFiZWwpKTsKICAgIGlmKHBhcnQucGFzc2FnZS50eXBlPT09J2ltYWdlJyl7CiAgICAgIHZhciBpbWcgPSBlbCgnaW1nJywnY2xwci1waW1nJyk7IGltZy5zcmMgPSBwYXJ0LnBhc3NhZ2Uuc3JjOyBpbWcuYWx0ID0gcGFydC5wYXNzYWdlLmFsdHx8Jyc7IGxlZnQuYXBwZW5kQ2hpbGQoaW1nKTsKICAgIH0gZWxzZSB7CiAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsbnVsbCwgcGFydC5wYXNzYWdlLmh0bWwpKTsKICAgIH0KICAgIHZhciByaWdodCA9IGVsKCdkaXYnLCdjbHByLXFjb2wnKTsKICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxvY2speyByaWdodC5hcHBlbmRDaGlsZChidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KSk7IH0pOwogICAgY29scy5hcHBlbmRDaGlsZChsZWZ0KTsgY29scy5hcHBlbmRDaGlsZChyaWdodCk7CiAgICBjYXRFbC5hcHBlbmRDaGlsZChjb2xzKTsKICAgIHZhciBuYXYgPSBlbCgnZGl2JywnY2xwci1uYXYnKTsKICAgIHZhciBwcmV2ID0gZWwoJ2J1dHRvbicsJ2NscHItbmF2YnRuIGNscHItZ2hvc3QnLCdcdTIxOTAgUHJldmlvdXMgcGFydCcpOwogICAgdmFyIG5leHQgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4nLCdOZXh0IHBhcnQgXHUyMTkyJyk7CiAgICBwcmV2LmRpc2FibGVkID0gKHBpPT09MCk7IG5leHQuZGlzYWJsZWQgPSAocGk9PT1SREFUQS5wYXJ0cy5sZW5ndGgtMSk7CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk+MCkgZ28ocGktMSk7IH0pOwogICAgbmV4dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGlmKHBpPFJEQVRBLnBhcnRzLmxlbmd0aC0xKSBnbyhwaSsxKTsgfSk7CiAgICBuYXYuYXBwZW5kQ2hpbGQocHJldik7IG5hdi5hcHBlbmRDaGlsZChuZXh0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKG5hdik7CiAgICBpZihjaGVja2VkKSBhcHBseU1hcmtzKCk7CiAgfQoKICBmdW5jdGlvbiBidWlsZEJsb2NrKGJsb2NrLCBwYXJ0KXsKICAgIHZhciB3cmFwQiA9IGVsKCdkaXYnLCdjbHByLWJsb2NrJyk7CiAgICB3cmFwQi5hcHBlbmRDaGlsZChlbCgnZGl2JywnY2xwci1pbnN0cicsIGJsb2NrLmluc3RyKSk7CiAgICBpZihibG9jay50eXBlPT09J3N0ZW1saXN0Jyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1zdGVtJyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnByZSsnICcpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGl0Lm9wdGlvbnMsIGl0Ll9xKSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdjbG96ZScpewogICAgICB2YXIgYm94ID0gZWwoJ2RpdicsJ2NscHItY2xvemUnKTsKICAgICAgYmxvY2suYm9keS5mb3JFYWNoKGZ1bmN0aW9uKHRvayl7CiAgICAgICAgaWYodHlwZW9mIHRvaz09PSdzdHJpbmcnKXsKICAgICAgICAgIHZhciBzZWdzID0gdG9rLnNwbGl0KCdcblxuJyk7CiAgICAgICAgICBzZWdzLmZvckVhY2goZnVuY3Rpb24oc2VnLCBpZHgpewogICAgICAgICAgICBpZihpZHg+MCl7IGJveC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwnPGJyPjxicj4nKSk7IH0KICAgICAgICAgICAgYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHNlZykpOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJveC5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24odG9rLm9wdGlvbnMsIHRvay5fcSkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHdyYXBCLmFwcGVuZENoaWxkKGJveCk7CiAgICB9IGVsc2UgaWYoYmxvY2sudHlwZT09PSdtYXRjaCcpewogICAgICBibG9jay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsKICAgICAgICB2YXIgcm93ID0gZWwoJ2RpdicsJ2NscHItbWF0Y2gtcm93Jyk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bihibG9jay5sZXR0ZXJzLCBpdC5fcSkpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsJ2NscHItc251bScsIGl0Lm4rJy4nKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCBpdC50ZXh0KSk7CiAgICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQocm93KTsKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gd3JhcEI7CiAgfQoKICBmdW5jdGlvbiBidWlsZERvdHMoKXsKICAgIGRvdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBSREFUQS5wYXJ0cy5mb3JFYWNoKGZ1bmN0aW9uKHAsIGkpewogICAgICB2YXIgZCA9IGVsKCdidXR0b24nLCdjbHByLWRvdCcrKGk9PT1jdXJQYXJ0PycgY2xwci1jdXInOicnKSk7CiAgICAgIGQuYXBwZW5kQ2hpbGQoZWwoJ2InLG51bGwsKGkrMSkpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCxbJ0NvcnJlc3BvbmRlbmNlJywnQXBwbHkgYSBEaWFncmFtJywnSW5mb3JtYXRpb24nLCdWaWV3cG9pbnRzJ11baV0pKTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKGkpOyB9KTsKICAgICAgZG90c0VsLmFwcGVuZENoaWxkKGQpOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIGdvKHBpKXsgY3VyUGFydD1waTsgYnVpbGREb3RzKCk7IGJ1aWxkUGFydChwaSk7IGNhdEVsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7IH0KCiAgZnVuY3Rpb24gdXBkYXRlU2NvcmVDaGlwKCl7CiAgICB2YXIgYW5zID0gUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsIT1udWxsO30pLmxlbmd0aDsKICAgIHNjb3JlQ2hpcC50ZXh0Q29udGVudCA9IGNoZWNrZWQgPyAoUS5maWx0ZXIoZnVuY3Rpb24ocSl7cmV0dXJuIHEuc2VsPT09cS5rZXk7fSkubGVuZ3RoKycgLyAnK1EubGVuZ3RoKycgY29ycmVjdCcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFucysnIC8gJytRLmxlbmd0aCsnIGFuc3dlcmVkJyk7CiAgfQoKICBmdW5jdGlvbiBhcHBseU1hcmtzKCl7CiAgICBRLmZvckVhY2goZnVuY3Rpb24ocSl7CiAgICAgIGlmKCFxLmRkRWwpIHJldHVybjsKICAgICAgcS5kZEVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NscHItcmlnaHQnLCdjbHByLXdyb25nJyk7CiAgICAgIGlmKHEuc2VsPT09cS5rZXkpeyBxLmRkRWwuY2xhc3NMaXN0LmFkZCgnY2xwci1yaWdodCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXdyb25nJyk7CiAgICAgICAgaWYocS5zb2x2ZWRFbCkgcS5zb2x2ZWRFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgJytxLm9wdGlvbnNbcS5rZXktMV07CiAgICAgICAgaWYocS5zZWw9PW51bGwgJiYgcS50eHRFbCl7IHEudHh0RWwudGV4dENvbnRlbnQ9JyhubyBhbnN3ZXIpJzsgcS50eHRFbC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsgfQogICAgICB9CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGRvQ2hlY2soKXsKICAgIGNoZWNrZWQgPSB0cnVlOwogICAgYXBwbHlNYXJrcygpOwogICAgdmFyIGNvcnJlY3QgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGg7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIGNoZWNrQnRuLmRpc2FibGVkID0gdHJ1ZTsKICAgIHZhciBieVBhcnQgPSB7fTsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsgYnlQYXJ0W3EucGFydF09YnlQYXJ0W3EucGFydF18fHtjOjAsdDowfTsgYnlQYXJ0W3EucGFydF0udCsrOyBpZihxLnNlbD09PXEua2V5KWJ5UGFydFtxLnBhcnRdLmMrKzsgfSk7CiAgICB2YXIgZXN0ID0gY2xiRXN0aW1hdGVSKGNvcnJlY3QpOwogICAgdmFyIHBpbGxzID0gUkRBVEEucGFydHMubWFwKGZ1bmN0aW9uKHApeyB2YXIgYj1ieVBhcnRbcC5pZF18fHtjOjAsdDowfTsgcmV0dXJuICc8c3BhbiBjbGFzcz0iY2xwci1yZXMtcGlsbCI+UGFydCAnK3AuaWQrJzogJytiLmMrJy8nK2IudCsnPC9zcGFuPic7IH0pLmpvaW4oJycpOwogICAgcmVzdWx0c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jYXJkIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXRvcCI+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1zY29yZSI+Jytjb3JyZWN0Kyc8c3Bhbj4vJytRLmxlbmd0aCsnPC9zcGFuPjwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtY2xiIj48Yj4nK2VzdC5sZXZlbCsnPC9iPjxzbWFsbD4nK2VzdC5ub3RlKycgJm1pZGRvdDsgZXN0aW1hdGVkIFJlYWRpbmcgYmFuZDwvc21hbGw+PC9kaXY+JwogICAgICArICc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWJyZWFrIj4nK3BpbGxzKyc8L2Rpdj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIGNscHItZ2hvc3QiIGlkPSJjbHByUmV2aWV3Ij5SZXZpZXcgYW5zd2VycyBpbiBlYWNoIHBhcnQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJjbHByLW5hdmJ0biIgaWQ9ImNscHJSZXRyeSI+VHJ5IGFnYWluPC9idXR0b24+PC9kaXY+JwogICAgICArICc8cCBzdHlsZT0ibWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxMi41cHg7Y29sb3I6dmFyKC0tbXV0ZWQpIj5Fc3RpbWF0ZWQgYmFuZCBpcyBhIHN0dWR5IGd1aWRlIG9ubHksIG5vdCBhbiBvZmZpY2lhbCBDRUxQSVAgc2NvcmUuIENvcnJlY3QgYW5zd2VycyBhcmUgc2hvd24gd2l0aCBhIGdyZWVuIGNoZWNrIG9uIGVhY2ggZHJvcC1kb3duIHlvdSBhbnN3ZXJlZCBpbmNvcnJlY3RseS48L3A+JwogICAgICArICc8L2Rpdj4nOwogICAgcmVzdWx0c0VsLmhpZGRlbiA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXRyeScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJSZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7IGdvKDApOyB9KTsKICAgIHJlc3VsdHNFbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRBbGwoKXsKICAgIGNoZWNrZWQ9ZmFsc2U7IGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOwogICAgY2hlY2tCdG4uZGlzYWJsZWQ9ZmFsc2U7CiAgICByZXN1bHRzRWwuaGlkZGVuPXRydWU7IHJlc3VsdHNFbC5pbm5lckhUTUw9Jyc7CiAgICBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KDApOwogICAgdXBkYXRlU2NvcmVDaGlwKCk7CiAgICBzaW0uc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsKICB9CgogIHN0YXJ0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgIHdyYXAucXVlcnlTZWxlY3RvcignLmNscHItaGVybycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOwogICAgdG9vbGJhci5oaWRkZW49ZmFsc2U7IHNpbS5oaWRkZW49ZmFsc2U7CiAgICBpbml0UXVlc3Rpb25zKCk7IGN1clBhcnQ9MDsgY2hlY2tlZD1mYWxzZTsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7IHVwZGF0ZVNjb3JlQ2hpcCgpOwogIH0pOwogIGNoZWNrQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG9DaGVjayk7CiAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7Cn0pKCk7\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 9 Practice Test 1: 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-6408","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6408","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=6408"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6408\/revisions"}],"predecessor-version":[{"id":6554,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6408\/revisions\/6554"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}