{"id":6491,"date":"2026-07-11T12:15:47","date_gmt":"2026-07-11T12:15:47","guid":{"rendered":"https:\/\/allenglish4u.com\/celpip-set-13-test-1-reading\/"},"modified":"2026-07-12T03:24:14","modified_gmt":"2026-07-12T03:24:14","slug":"celpip-set-13-test-1-reading","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/celpip-set-13-test-1-reading\/","title":{"rendered":"CELPIP Reading \u2014 Set 13 \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 13<\/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(\"J3VzZSBzdHJpY3QnOwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQ0VMUElQIFJlYWRpbmcgXHUyMDE0IFByYWN0aWNlIFRlc3QgMSAoU2V0IDEpCiAgIFNvdXJjZTogUGFyYWdvbiBvZmZpY2lhbCAiUHJhY3RpY2UgVGVzdCAxIFNldCAxIC0gUmVhZGluZyIgKDM3IHBwKS4KICAgQWxsIHN0ZW1zLCBvcHRpb25zIGFuZCBrZXlzIHZlcmlmaWVkIGFnYWluc3QgdGhlIHByaW50ZWQgQW5zd2VyIEtleS4KICAgRGF0YSBtb2RlbDogcGFydHNbXSAtPiB7IHBhc3NhZ2UobGVmdCkgLCBibG9ja3NbXShyaWdodCkgfQogICAgIGJsb2NrLnR5cGU6ICdzdGVtbGlzdCcgfCAnY2xvemUnIHwgJ21hdGNoJwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KdmFyIFJEQVRBID0geyJ0ZXN0TGFiZWwiOiAiUHJhY3RpY2UgVGVzdCAxIiwgInBhcnRzIjogW3siaWQiOiAxLCAibmFtZSI6ICJSZWFkaW5nIFBhcnQgMTogUmVhZGluZyBDb3JyZXNwb25kZW5jZSIsICJ0aW1lIjogIjEwIG1pbnV0ZXMiLCAicGFzc2FnZSI6IHsidHlwZSI6ICJ0ZXh0IiwgImxhYmVsIjogIlJlYWQgdGhlIGZvbGxvd2luZyBtZXNzYWdlLiIsICJodG1sIjogIjxwPkRlYXIgUHJpbmNpcGFsIENoYXVkcnksPC9wPjxwPkkgYW0gd3JpdGluZyBiZWNhdXNlIEkgbmVlZCB0byB3aXRoZHJhdyBteSBzb24sIEFkYW0sIGZyb20gdGhlIEJlcnJ5IEhpbGwgUHJlc2Nob29sIHByb2dyYW0uIEkgYW0gcmVxdWVzdGluZyBhIHJlZnVuZCBvZiB0aGUgdHVpdGlvbiB3ZSBwcmVwYWlkIGZvciB0aGUgcGVyaW9kIG9mIEphbnVhcnkgdG8gSnVuZSBvZiBuZXh0IHllYXIuPC9wPjxwPldlIGhhdmUgYmVlbiB2ZXJ5IGhhcHB5IHdpdGggQmVycnkgSGlsbCwgYW5kIEFkYW0gaGFzIGJlZW4gZW5qb3lpbmcgaGlzIHRpbWUgdGhlcmUuIEhvd2V2ZXIsIHdlIGZpbmQgdGhhdCBsaXZpbmcgaW4gVmFuY291dmVyIGlzIGZpbmFuY2lhbGx5IGRpZmZpY3VsdCBmb3Igb3VyIGZhbWlseS4gSSBoYXZlIGJlZW4gdW5hYmxlIHRvIGdldCBwZXJtYW5lbnQgd29yayBhcyBhIHRlYWNoZXIgZm9yIGFsbW9zdCAyIHllYXJzLCBhbmQgSSBoYXZlIGJlZW4gbG9va2luZyBmb3IgZW1wbG95bWVudCBpbiBvdGhlciBjaXRpZXMgd2hpY2ggY2FuIG9mZmVyIGEgbW9yZSBzdGFibGUgc2l0dWF0aW9uIGZvciB1cy4gTGFzdCB3ZWVrLCBJIGFjY2VwdGVkIGEgcG9zaXRpb24gdGVhY2hpbmcgZ3JhZGUgMTAgYXQgYSBoaWdoIHNjaG9vbCBpbiBDYWxnYXJ5LCBhbmQgd2Ugd2lsbCBtb3ZlIGluIERlY2VtYmVyLjwvcD48cD5NeSB3aWZlIGFuZCBJIGtuZXcgdGhhdCB3aGVuIHdlIGVucm9sbGVkIEFkYW0gaW4gdGhlIHNjaG9vbCB3ZSB3b3VsZCBiZSByZXNwb25zaWJsZSBmb3IgcGF5aW5nIGEgZnVsbCB5ZWFyIG9mIHR1aXRpb24sIGJ1dCBJIHJlc3BlY3RmdWxseSBhc2sgdGhhdCB5b3UgbWFrZSBhbiBleGNlcHRpb24gaW4gb3VyIGNhc2UgZHVlIHRvIG91ciBjaXJjdW1zdGFuY2VzLiBXZSB3aWxsIGJlIG1vdmluZyBhd2F5LCBhbmQgdGhlcmUgaXMgc2ltcGx5IG5vIHdheSB3ZSBjYW4gYWZmb3JkIHRvIHBheSBmb3Igb3VyIG1vdmUgcGx1cyBtYWtlIHBheW1lbnRzIGZvciBhIHNjaG9vbCBBZGFtIGlzIG5vdCBldmVuIGF0dGVuZGluZy48L3A+PHA+SSB1bmRlcnN0YW5kIHRoYXQgd2Ugc3RpbGwgbmVlZCB0byBmb3JmZWl0IHRoZSAkNDAwIGRlcG9zaXQgd2UgbWFkZSB3aGVuIHdlIGluaXRpYWxseSBzaWduZWQgdGhlIGNvbnRyYWN0LCBhbmQgdGhhdCBpcyBhbGwgcmlnaHQgd2l0aCB1cy4gSG93ZXZlciwgSSBtdXN0IGFzayB5b3UgdG8gY29uc2lkZXIgYWxsb3dpbmcgdXMgdG8gY2FuY2VsIHRoZSBjb250cmFjdCBkdWUgdG8gb3VyIG1vdmUgdG8gQ2FsZ2FyeS48L3A+PHA+VW5mb3J0dW5hdGVseSwgZXZlbiBpZiBCZXJyeSBIaWxsIGlzIHVuYWJsZSB0byByZWxlYXNlIHVzIGZyb20gdGhlIGNvbnRyYWN0LCBJIHdpbGwgc3RpbGwgYXNrIHRoZSBiYW5rIHRvIGNhbmNlbCB0aGUgcG9zdC1kYXRlZCBjaGVxdWVzIHdlIGdhdmUgeW91IGluIFNlcHRlbWJlciwgc2ltcGx5IGJlY2F1c2UgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdXMgdG8gcGF5LjwvcD48cD5JIGhvcGUgeW91IHVuZGVyc3RhbmQgdGhlIGRpZmZpY3VsdCBzaXR1YXRpb24gd2UgYXJlIGluLiBBZ2FpbiwgSSB3YW50IHRvIHRlbGwgeW91IHRoYXQgd2UgaGF2ZSBoYWQgYSB2ZXJ5IHBvc2l0aXZlIGV4cGVyaWVuY2Ugd2l0aCB5b3VyIHNjaG9vbC4gQmVjYXVzZSBoZSZyc3F1bztzIHNvIHNoeSwgaXQgdG9vayBBZGFtIGEgd2hpbGUgdG8gZ2V0IGNvbWZvcnRhYmxlIHdpdGggZXZlcnlvbmUgYXQgdGhlIHNjaG9vbCwgYnV0IG5vdyBoZSBpcyBlbmpveWluZyB0aGUgZnJpZW5kbHksIHN0aW11bGF0aW5nIGVudmlyb25tZW50LjwvcD48cD5UaGFuayB5b3UgZm9yIHlvdXIgdGltZSBhbmQgdW5kZXJzdGFuZGluZy48L3A+PHA+U2luY2VyZWx5LDxicj5CYXJ0IFdhbmc8L3A+In0sICJibG9ja3MiOiBbeyJ0eXBlIjogInN0ZW1saXN0IiwgImluc3RyIjogIlVzaW5nIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKSwgY2hvb3NlIHRoZSBiZXN0IG9wdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGluZm9ybWF0aW9uIGdpdmVuIGluIHRoZSBtZXNzYWdlLiIsICJpdGVtcyI6IFt7Im4iOiAxLCAicHJlIjogIldoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhpcyBsZXR0ZXI\/IiwgIm9wdGlvbnMiOiBbInRvIHJlcXVlc3QgYSByZWR1Y2VkIHR1aXRpb24gZmVlIiwgInRvIGdpdmUgdGhhbmtzIGZvciBhIGdvb2QgZXhwZXJpZW5jZSIsICJ0byBhc2sgZm9yIHNwZWNpYWwgY29uc2lkZXJhdGlvbiIsICJ0byBleGN1c2UgYW4gdXBjb21pbmcgYWJzZW5jZSJdLCAia2V5IjogM30sIHsibiI6IDIsICJwcmUiOiAiV2h5IGlzIE1yLiBXYW5nIGludGVyZXN0ZWQgaW4gQ2FsZ2FyeT8iLCAib3B0aW9ucyI6IFsiSGUgZm91bmQgYSBqb2IgaW4gdGhlIGNpdHkuIiwgIkhlIGhhcyBmYW1pbHkgd2hvIGxpdmUgdGhlcmUuIiwgIlRoZSBjb3N0IG9mIGxpdmluZyBpcyBjaGVhcGVyLiIsICJUaGUgd2FnZXMgZm9yIHRlYWNoZXJzIGFyZSBiZXR0ZXIuIl0sICJrZXkiOiAxfSwgeyJuIjogMywgInByZSI6ICJXaHkgZG9lcyBNci4gV2FuZyBtYWtlIGhpcyByZXF1ZXN0PyIsICJvcHRpb25zIjogWyJIZSBuZWVkcyBoaXMgZGVwb3NpdCBtb25leSBiYWNrLiIsICJIaXMgc29uIGlzIGxlYXZpbmcgdGhlIHNjaG9vbC4iLCAiSGlzIHdpZmUgd2FudHMgYSBiZXR0ZXIgc2Nob29sLiIsICJIaXMgd2lmZSBsb3N0IGhlciBqb2IgYXQgdGhlIHNjaG9vbC4iXSwgImtleSI6IDJ9LCB7Im4iOiA0LCAicHJlIjogIkhvdyB3aWxsIEFkYW0gbGlrZWx5IGZlZWwgYWJvdXQgdGhlIGNoYW5nZT8iLCAib3B0aW9ucyI6IFsiaGFwcHkgdG8gYmVnaW4gYSBuZXcgZ3JhZGUiLCAiaW5kaWZmZXJlbnQgdG8gdGhlIGNoYW5nZSIsICJzYWQgdG8gbGVhdmUgaGlzIGZyaWVuZHMiLCAicmVsaWV2ZWQgdG8gZ2V0IG5ldyB0ZWFjaGVycyJdLCAia2V5IjogM30sIHsibiI6IDUsICJwcmUiOiAiV2hhdCBkb2VzIE1yLiBXYW5nIHNheSB0byBzdHJlc3MgdGhlIGltcG9ydGFuY2Ugb2YgaGlzIG1lc3NhZ2U\/IiwgIm9wdGlvbnMiOiBbIkhlIGRlbWFuZHMgYSBtZWV0aW5nIHdpdGggdGhlIHByaW5jaXBhbC4iLCAiSGUgc2F5cyBoaXMgd2lmZSByZWNlbnRseSBsb3N0IGhlciBqb2IuIiwgIkhlIGV4cGxhaW5zIGhlIGlzIG5vdyB3b3JraW5nIGluIENhbGdhcnkuIiwgIkhlIHdhcm5zIHRoYXQgaGUgd2lsbCBjYW5jZWwgaGlzIGNoZXF1ZXMuIl0sICJrZXkiOiA0fSwgeyJuIjogNiwgInByZSI6ICJIb3cgaXMgdGhpcyBsZXR0ZXIgYmVzdCBkZXNjcmliZWQ\/IiwgIm9wdGlvbnMiOiBbInRocmVhdGVuaW5nIiwgInBvbGl0ZSIsICJkaWZmaWN1bHQiLCAic3ltcGF0aGV0aWMiXSwgImtleSI6IDJ9XX0sIHsidHlwZSI6ICJjbG96ZSIsICJpbnN0ciI6ICJIZXJlIGlzIGEgcmVzcG9uc2UgdG8gdGhlIG1lc3NhZ2UuIENvbXBsZXRlIHRoZSByZXNwb25zZSBieSBmaWxsaW5nIGluIHRoZSBibGFua3MuIFNlbGVjdCB0aGUgYmVzdCBjaG9pY2UgZm9yIGVhY2ggYmxhbmsgZnJvbSB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICkuIiwgImJvZHkiOiBbIkRlYXIgTXIuIFdhbmcsXG5cbkkgYW0iLCB7ImIiOiA3LCAib3B0aW9ucyI6IFsic29ycnkgdG8gbGVhcm4iLCAiZGVsaWdodGVkIHRvIHJlYWQiLCAiZGlzdHJhdWdodCB0byBoZWFyIiwgImFtYXplZCB0byBmaW5kIG91dCJdLCAia2V5IjogMX0sICIgYWJvdXQgeW91ciBzaXR1YXRpb24gaGVyZSBpbiBWYW5jb3V2ZXIuIEl0IGhhcyBiZWVuIGEgcGxlYXN1cmUgZ2V0dGluZyB0byBrbm93IEFkYW0uIEl0XHUyMDE5cyBnb29kIG5ld3MsIHRob3VnaCwgdGhhdCB5b3VyIiwgeyJiIjogOCwgIm9wdGlvbnMiOiBbImVkdWNhdGlvbiBwcm9ncmFtIiwgImJhbmtpbmcgY29tbWl0bWVudHMiLCAidGVhY2hpbmcgY29udHJhY3QiLCAibW9uZXkgdHJvdWJsZXMiXSwgImtleSI6IDR9LCAiIHdpbGwgZmluYWxseSBiZSBvdmVyLiBJZiBwb3NzaWJsZSwgcGxlYXNlIHNlbmQgdXMgc29tZSBpbmZvcm1hdGlvbiBmb3Igb3VyIHJlY29yZHMuIFdlIHdpbGwgbmVlZCBzb21lIGZvcm0gb2YgZG9jdW1lbnRhdGlvbiBpbiBvcmRlciB0byBwcm9jZXNzIHlvdXIgcmVxdWVzdC4gT3VyIGNvbnRyYWN0IGFsbG93cyB5b3UgdG8gd2l0aGRyYXcgeW91ciBjaGlsZCBlYXJseSBpZiB5b3UgY2FuIHByb3ZpZGUgc29tZSBwcm9vZiB0aGF0IiwgeyJiIjogOSwgIm9wdGlvbnMiOiBbInlvdSBhcmUgbW92aW5nIGF3YXkgZnJvbSB0aGUgYXJlYSIsICJ5b3UgaGF2ZSBiZWVuIGxhaWQgb2ZmIGZyb20gd29yayIsICJ5b3VyIHNvbiBoYXMgc3BlY2lhbGl6ZWQgbGVhcm5pbmcgbmVlZHMiLCAieW91ciB0ZXJtXHUyMDE5cyBpbnZvaWNlcyBoYXZlIGFsbCBiZWVuIHBhaWQiXSwgImtleSI6IDF9LCAiLiBQbGVhc2UgZG9uXHUyMDE5dCBjb25jZXJuIHlvdXJzZWxmIGFib3V0IiwgeyJiIjogMTAsICJvcHRpb25zIjogWyJ5b3VyIGRlcG9zaXQgZnVuZHMiLCAiY2FuY2VsbGluZyB5b3VyIGNoZXF1ZXMiLCAiQWRhbVx1MjAxOXMgcmVwb3J0IGNhcmRzIiwgIkFkYW1cdTIwMTlzIGxldHRlcnMgb2YgcmVmZXJlbmNlIl0sICJrZXkiOiAyfSwgIi4gV2Ugd2lsbCByZXR1cm4gdGhlbSB0byB5b3UuIEkgdHJ1c3QgbXkgcmVwbHkgd2lsbCIsIHsiYiI6IDExLCAib3B0aW9ucyI6IFsiYmUgcmVhZCB3aXRoIHJlbGllZiIsICJhcnJpdmUgYmVmb3JlIGl0cyB0b28gbGF0ZSIsICJlbmNvdXJhZ2UgeW91IHRvIGNvbnRpbnVlIiwgInNhdmUgeW91IHNvbWUgdGltZSJdLCAia2V5IjogMX0sICIuIEJlc3Qgb2YgbHVjayB0byB5b3UgYW5kIHlvdXIgZmFtaWx5IVxuXG5TaW5jZXJlbHksXG5cblNleW1vdXIgQ2hhdWRyeSJdfV19LCB7ImlkIjogMiwgIm5hbWUiOiAiUmVhZGluZyBQYXJ0IDI6IFJlYWRpbmcgdG8gQXBwbHkgYSBEaWFncmFtIiwgInRpbWUiOiAiOCBtaW51dGVzIiwgInBhc3NhZ2UiOiB7InR5cGUiOiAidGV4dCIsICJsYWJlbCI6ICJSZWFkIHRoZSBmb2xsb3dpbmcgZGlhZ3JhbS4iLCAiaHRtbCI6ICI8c3R5bGU+LmFlLXJte2JvcmRlcjoxcHggc29saWQgI2I4YzJjYztib3JkZXItcmFkaXVzOjZweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojZmZmO2NvbG9yOiMxZjJhNDQ7Zm9udC1zaXplOjEzcHh9LmFlLXJtLWhke3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MTJweCAxNHB4IDRweH0uYWUtcm0taGQgaDN7bWFyZ2luOjA7Zm9udC1zaXplOjIwcHh9LmFlLXJtLWhkIHB7bWFyZ2luOjJweCAwIDA7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXNpemU6MTMuNXB4fS5hZS1ybS1tZXRhe3BhZGRpbmc6NnB4IDE2cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjU1fS5hZS1ybS1tZXRhIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjQ3JX0uYWUtcm0tbWV0YSB1e3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmFlLXJtIHRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aWR0aDoxMDAlO2ZvbnQtc2l6ZToxMnB4fS5hZS1ybSB0aCwuYWUtcm0gdGR7Ym9yZGVyOjFweCBzb2xpZCAjYjhjMmNjO3BhZGRpbmc6NXB4IDdweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7dGV4dC1hbGlnbjpsZWZ0fS5hZS1ybSB0aGVhZCB0aHtiYWNrZ3JvdW5kOiNlZWYxZjQ7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zdHlsZTppdGFsaWN9LmFlLXJtIC50a3tmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDpib2xkO3dpZHRoOjE1JX0uYWUtcm0gLnhje3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6OSV9LmFlLXJtIC5yZXZ7Y29sb3I6IzJmNmZiMDtmb250LXN0eWxlOml0YWxpY30uYWUtcm0gdWx7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjE1cHh9LmFlLXJtIGxpe21hcmdpbjoxcHggMH0uYWUtcm0tZnR7cGFkZGluZzo4cHggMTZweDtmb250LXNpemU6MTFweDtmb250LXN0eWxlOml0YWxpY30uYWUtcm0tc2d7cGFkZGluZzowIDE2cHggMTJweDtmb250LXNpemU6MTJweH1AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXsuYWUtcm0tbWV0YSBzcGFue21pbi13aWR0aDoxMDAlfX08L3N0eWxlPjxkaXYgY2xhc3M9XCJhZS1ybVwiPjxkaXYgY2xhc3M9XCJhZS1ybS1oZFwiPjxoMz5SdW4gb2YgdGhlIE1pbGwgUGFwZXIgSW5jLjwvaDM+PHA+QW5udWFsIEVtcGxveWVlIFBlcmZvcm1hbmNlIFJldmlldzwvcD48L2Rpdj48ZGl2IGNsYXNzPVwiYWUtcm0tbWV0YVwiPjxzcGFuPkVtcGxveWVlIE5hbWU6IDx1PkFuZHJleSBLb3ZhbGVua288L3U+PC9zcGFuPjxzcGFuPlN1cGVydmlzb3IgQ29uZHVjdGluZyBSZXZpZXc6IDx1PlN0ZXZlIE5ndXllbjwvdT48L3NwYW4+PGJyPjxzcGFuPkVtcGxveWVlIFBvc2l0aW9uOiA8dT5RdWFsaXR5IENvbnRyb2wgVGVjaG5pY2lhbjwvdT48L3NwYW4+PHNwYW4+RGF0ZSBvZiBSZXZpZXc6IDx1PjA0LzA0LzE2PC91Pjwvc3Bhbj48L2Rpdj48dGFibGU+PHRoZWFkPjx0cj48dGg+VGFzazwvdGg+PHRoPkV4Y2VlZHMgRXhwZWN0YXRpb25zPC90aD48dGg+TWVldHMgRXhwZWN0YXRpb25zPC90aD48dGg+QmVsb3cgRXhwZWN0YXRpb25zPC90aD48dGg+Q29tbWVudHM8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+PHRyPjx0ZCBjbGFzcz1cInRrXCI+SWRlbnRpZnlpbmcgTm9uLUNvbmZvcm1pbmcgUHJvZHVjdHM8L3RkPjx0ZCBjbGFzcz1cInhjXCI+WDwvdGQ+PHRkIGNsYXNzPVwieGNcIj48L3RkPjx0ZCBjbGFzcz1cInhjXCI+PC90ZD48dGQ+PHVsPjxsaT5yZWd1bGFybHkgaWRlbnRpZmllcyBwcm9kdWN0cyB0aGF0IGRvIG5vdCBtZWV0IGVzdGFibGlzaGVkIHN0YW5kYXJkczwvbGk+PGxpPnNob3dlZCBpbml0aWF0aXZlIGhlcmUgd2hlbiB0aGUgbmV3IElTUzEwMDAgcHJvZHVjdCB3YXMgcmVsZWFzZWQgdGhpcyB5ZWFyPC9saT48L3VsPjwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPVwidGtcIj5QZXJmb3JtaW5nIFJlcXVpcmVkIFRlc3RzPC90ZD48dGQgY2xhc3M9XCJ4YyByZXZcIj5YPC90ZD48dGQgY2xhc3M9XCJ4Y1wiPjwvdGQ+PHRkIGNsYXNzPVwieGNcIj48L3RkPjx0ZD48dWw+PGxpPnBlcmZvcm1zIGFsbCB0ZXN0cyByZXF1aXJlZCBpbiBhIHRpbWVseSBhbmQgZWZmZWN0aXZlIG1hbm5lcjwvbGk+PGxpPmFibGUgdG8gdHJvdWJsZXNob290IHRlY2huaWNhbCBpc3N1ZXMgYXMgbmVlZGVkPC9saT48bGkgY2xhc3M9XCJyZXZcIj5kZW1vbnN0cmF0ZWQgbGVhZGVyc2hpcCBpbiB0cmFpbmluZyBuZXcgdGVjaG5pY2lhbiBvbiB0ZXN0aW5nIHByb2NlZHVyZXM8L2xpPjwvdWw+PC90ZD48L3RyPjx0cj48dGQgY2xhc3M9XCJ0a1wiPktlZXBpbmcgRGFpbHkgUHJvZHVjdGlvbiBMb2dzPC90ZD48dGQgY2xhc3M9XCJ4Y1wiPjwvdGQ+PHRkIGNsYXNzPVwieGNcIj5YPC90ZD48dGQgY2xhc3M9XCJ4Y1wiPjwvdGQ+PHRkPjx1bD48bGk+cmVjb3JkLWtlZXBpbmcgZm9sbG93cyBlc3RhYmxpc2hlZCBndWlkZWxpbmVzPC9saT48bGk+ZW50cmllcyBhcmUgbGVnaWJsZSBhbmQgY29tcGxldGU8L2xpPjxsaT5uZXcgZW50cnkgbG9nIGZvcm1hdCB3YXMgcmV2aWV3ZWQ8L2xpPjwvdWw+PC90ZD48L3RyPjx0cj48dGQgY2xhc3M9XCJ0a1wiPk1haW50YWluaW5nIFNhZmV0eSBTdGFuZGFyZHM8L3RkPjx0ZCBjbGFzcz1cInhjXCI+PC90ZD48dGQgY2xhc3M9XCJ4Y1wiPlg8L3RkPjx0ZCBjbGFzcz1cInhjXCI+PC90ZD48dGQ+PHVsPjxsaT5kZW1vbnN0cmF0ZXMgYW4gdW5kZXJzdGFuZGluZyBvZiBzYWZldHkgc3RhbmRhcmRzPC9saT48bGk+d2VhcnMgcHJvdGVjdGl2ZSBlcXVpcG1lbnQgYXMgcmVxdWlyZWQ8L2xpPjxsaSBjbGFzcz1cInJldlwiPnBhcnRpY2lwYXRlZCBpbiBtYW5kYXRvcnkgJmxkcXVvO1NhZmV0eSBhbmQgWW91JnJkcXVvOyBhbm51YWwgdHJhaW5pbmcgcmVmcmVzaGVyIGluIEF1Z3VzdDwvbGk+PC91bD48L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz1cInRrXCI+TWFpbnRhaW5pbmcgQ2xlYW5saW5lc3Mgb2YgV29ya3NwYWNlPC90ZD48dGQgY2xhc3M9XCJ4Y1wiPjwvdGQ+PHRkIGNsYXNzPVwieGNcIj48L3RkPjx0ZCBjbGFzcz1cInhjXCI+WDwvdGQ+PHRkPjx1bD48bGk+d29ya3NwYWNlIGlzIG5vdCBjbGVhbmVkIHRvIGNvbXBhbnkgc3RhbmRhcmRzIGF0IHRoZSBlbmQgb2YgZWFjaCBzaGlmdDwvbGk+PGxpPmVtcGxveWVlIHRvIHJldmlldyBjbGVhbmluZyBwcm9jZWR1cmVzIEFTQVA8L2xpPjxsaT5zdXBlcnZpc29yIHdpbGwgZm9sbG93IHVwIGV2ZXJ5IDIgd2Vla3M8L2xpPjwvdWw+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48dGFibGU+PHRoZWFkPjx0cj48dGggc3R5bGU9XCJ3aWR0aDoxNSVcIj48L3RoPjx0aD5NZWV0cyBFeHBlY3RhdGlvbnM8L3RoPjx0aD5CZWxvdyBFeHBlY3RhdGlvbnM8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+PHRyPjx0ZCBjbGFzcz1cInRrXCI+QXR0ZW5kYW5jZTwvdGQ+PHRkPlllcy4gQXR0ZW5kcyBhbGwgc2NoZWR1bGVkIHNoaWZ0cy48L3RkPjx0ZD48L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz1cInRrXCI+UHVuY3R1YWxpdHk8L3RkPjx0ZD5ZZXMuIFJhcmVseSBsYXRlIGZvciB3b3JrLjwvdGQ+PHRkPjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PGRpdiBjbGFzcz1cImFlLXJtLWZ0XCI+SSwgdGhlIHVuZGVyc2lnbmVkIGVtcGxveWVlLCBoYXZlIHJlYWQgdGhpcyBkb2N1bWVudCBhbmQgZGlzY3Vzc2VkIGl0IHdpdGggbXkgc3VwZXJ2aXNvci4gSSBoYXZlIGJlZW4gZ2l2ZW4gYW4gb3Bwb3J0dW5pdHkgdG8gY29tbWVudC4gSSBoZXJlYnkgYXV0aG9yaXplIG15IHN1cGVydmlzb3IgdG8gc3VibWl0IGl0IHRvIEh1bWFuIFJlc291cmNlcyB0byBiZSBrZXB0IG9uIGZpbGUgZm9yIHRoZSBkdXJhdGlvbiBvZiBteSBlbXBsb3ltZW50IHdpdGggUnVuIG9mIHRoZSBNaWxsLjwvZGl2PjxkaXYgY2xhc3M9XCJhZS1ybS1zZ1wiPkVtcGxveWVlIFNpZ25hdHVyZTogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzwvZGl2PjwvZGl2PiJ9LCAiYmxvY2tzIjogW3sidHlwZSI6ICJjbG96ZSIsICJpbnN0ciI6ICJSZWFkIHRoZSBmb2xsb3dpbmcgZW1haWwgbWVzc2FnZSBhYm91dCB0aGUgZGlhZ3JhbSBvbiB0aGUgbGVmdC4gQ29tcGxldGUgdGhlIGVtYWlsIGJ5IGZpbGxpbmcgaW4gdGhlIGJsYW5rcy4gU2VsZWN0IHRoZSBiZXN0IGNob2ljZSBmb3IgZWFjaCBibGFuayBmcm9tIHRoZSBkcm9wLWRvd24gbWVudSAoICYjOTY2MjsgKS4iLCAiYm9keSI6IFsiU3ViamVjdDogUmV2aXNlZCBQZXJmb3JtYW5jZSBSZXZpZXdcbkRhdGU6IDA0LzEzLzE2XG5UbzogQW5kcmV5IEtvdmFsZW5rIDxha292YWxlbmtvQHJvdG1wLmNhPlxuRnJvbTogU3RldmUgTmd1eWVuIDxzbmd1eWVuQHJvdG1wLmNhPlxuXG5IaSBBbmRyZXksXG5cblRoYW5rIHlvdSBmb3IgYSBwcm9kdWN0aXZlIG1lZXRpbmcgdGhpcyBtb3JuaW5nLiBGb2xsb3dpbmcgb3VyIGRpc2N1c3Npb24sIEkgaGF2ZSBtYWRlIHNvbWUgcmV2aXNpb25zIHRvIHlvdXIgYW5udWFsIHBlcmZvcm1hbmNlIHJldmlldyBkb2N1bWVudC4gWW91IHdpbGwgZmluZCB0aGUgZmluYWwgdmVyc2lvbiBhdHRhY2hlZCB3aXRoIHRoZSByZXZpc2lvbnMgaW5kaWNhdGVkIGluIGJsdWUuXG5cbkkgdG9vayBpbnRvIGFjY291bnQgd2hhdCB5b3UgbWVudGlvbmVkIGFib3V0IiwgeyJiIjogMSwgIm9wdGlvbnMiOiBbInNob3dpbmcgaW5pdGlhdGl2ZSB3aXRoIElTUzEwMDAiLCAicGFydGljaXBhdGluZyBpbiBzYWZldHkgdHJhaW5pbmciLCAia2VlcGluZyBhY2N1cmF0ZSByZWNvcmRzIiwgImRlbW9uc3RyYXRpbmcgbGVhZGVyc2hpcCJdLCAia2V5IjogNH0sICIgYW5kIGNoYW5nZWQgeW91ciByYXRpbmcgaW4gdGhpcyBhcmVhIGFjY29yZGluZ2x5LiBQbGVhc2Ugbm90ZSB0aGF0IHR3byBvZiB5b3VyIHJhdGluZ3MiLCB7ImIiOiAyLCAib3B0aW9ucyI6IFsiYXJlIHdpdGhpbiB0aGUgdG9wIGNhdGVnb3J5IiwgInNlZW0gbWlzc2luZyBmcm9tIHRoZSBkb2N1bWVudCIsICJmYWxsIGJlbG93IG91ciBleHBlY3RhdGlvbnMiLCAiY2hhbmdlZCBhZnRlciBvdXIgbWVldGluZyJdLCAia2V5IjogMX0sICIsIGJ1dCB0aGUiLCB7ImIiOiAzLCAib3B0aW9ucyI6IFsidHJvdWJsZXNob290aW5nIHByb2Nlc3MiLCAic2FuaXRhdGlvbiBvZiB5b3VyIGRlc2siLCAibmV3IElTUzEwMDAgcHJvZHVjdCIsICJsZWdpYmlsaXR5IG9mIHlvdXIgbG9ncyJdLCAia2V5IjogMn0sICIgc2hvdWxkIGNsZWFybHkgYmUgYSBoaWdoIHByaW9yaXR5IGZvciB5b3UgaW4gdGhlIHllYXIgYWhlYWQuIFdlIHNpbXBseSBjYW5ub3QgYWZmb3JkIHRvIGlnbm9yZSB0aGF0IGFueSBsb25nZXIuXG5cblRvIHN1bW1hcml6ZSwgeW91ciIsIHsiYiI6IDQsICJvcHRpb25zIjogWyJwdW5jdHVhbGl0eSBpcyAxMDAlIHRoaXMgeWVhciIsICJ3b3JrIGlzIG1vc3RseSBvbiB0YXJnZXQiLCAidGFza3Mgd2lsbCBjb250aW51ZSB0byBleHBhbmQiLCAiZmlyc3QgZm9sbG93LXVwIHdpbGwgYmUgaW4gMiB3ZWVrcyJdLCAia2V5IjogMn0sICIuIE9uIGJlaGFsZiBvZiB0aGUgdGVjaG5pY2FsIGRlcGFydG1lbnQsIEkgd291bGQgbGlrZSB0byB0YWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8gdGhhbmsgeW91IGZvciBhbm90aGVyIHN1Y2Nlc3NmdWwgeWVhci5cblxuVGhlIGxhc3Qgc3RlcCBpbiB0aGUgcHJvY2VzcyBpcyBmb3IgeW91IHRvIiwgeyJiIjogNSwgIm9wdGlvbnMiOiBbImFkZCB5b3VyIGNvbW1lbnRzIHRvIHRoZSBib3R0b20gb2YgdGhlIGRvY3VtZW50IiwgInNlbmQgdGhpcyBkb2N1bWVudCBkaXJlY3RseSB0byBIdW1hbiBSZXNvdXJjZXMiLCAic2lnbiB0aGUgZG9jdW1lbnQgYW5kIHNlbmQgaXQgYmFjayB0byBtZSIsICJtZWV0IHdpdGggeW91ciBzdXBlcnZpc29yIHRvIGRpc2N1c3MgdGhlIGRvY3VtZW50Il0sICJrZXkiOiAzfSwgIi5cblxuUmVnYXJkcyxcblxuU3RldmUiXX0sIHsidHlwZSI6ICJzdGVtbGlzdCIsICJpbnN0ciI6ICJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24uIiwgIml0ZW1zIjogW3sibiI6IDYsICJwcmUiOiAiU3RldmUgaXMgc2VuZGluZyB0aGlzIGVtYWlsIGFmdGVyPyIsICJvcHRpb25zIjogWyJtZWV0aW5nIHllc3RlcmRheSB3aXRoIEFuZHJleSBhbmQgdGhlIHRlY2huaWNhbCBkZXBhcnRtZW50LiIsICJyZXZpc2luZyBBbmRyZXlcdTIwMTlzIGFwcHJhaXNhbCBhcyByZXF1ZXN0ZWQgYnkgdGhlIG90aGVyIGJvc3MuIiwgIm1lbnRpb25pbmcgQW5kcmV5XHUyMDE5cyB0cmFpbmluZyByZWZyZXNoZXIgZWFybGllciBpbiAyMDE2LiIsICJkZWNpZGluZyB0aGF0IEFuZHJleSBleGNlbHMgaW4gbW9yZSB0aGFuIGp1c3Qgb25lIGFyZWEuIl0sICJrZXkiOiA0fSwgeyJuIjogNywgInByZSI6ICJTdGV2ZVx1MjAxOXMgZW1haWwgc2hvd3MgdGhhdCBoZSBpcyBtb3N0bHk\/IiwgIm9wdGlvbnMiOiBbInBsZWFzZWQgd2l0aCBBbmRyZXlcdTIwMTlzIHdvcmsuIiwgImNvbmNlcm5lZCBhYm91dCBzYWZldHkgYXQgd29yay4iLCAiZGlzY291cmFnZWQgYnkgQW5kcmV5XHUyMDE5cyBiYWQgaGFiaXRzLiIsICJpbnRlcmVzdGVkIGluIGdpdmluZyBoaWdoIHJhdGluZ3MuIl0sICJrZXkiOiAxfSwgeyJuIjogOCwgInByZSI6ICJTdGV2ZSBub3cgZXhwZWN0cyBBbmRyZXkgd2lsbD8iLCAib3B0aW9ucyI6IFsic3VnZ2VzdCBjaGFuZ2VzIHRvIHRoZSBkb2N1bWVudC4iLCAicHJvdmlkZSBmZWVkYmFjayBvbiB0aGUgZG9jdW1lbnQgZm9ybWF0LiIsICJmb3J3YXJkIHRoZSBkb2N1bWVudCB0byBzb21lb25lIGVsc2UuIiwgImFjY2VwdCB0aGUgZG9jdW1lbnQgYXMgYmVpbmcgZmluYWwuIl0sICJrZXkiOiA0fV19XX0sIHsiaWQiOiAzLCAibmFtZSI6ICJSZWFkaW5nIFBhcnQgMzogUmVhZGluZyBmb3IgSW5mb3JtYXRpb24iLCAidGltZSI6ICI5IG1pbnV0ZXMiLCAicGFzc2FnZSI6IHsidHlwZSI6ICJ0ZXh0IiwgImxhYmVsIjogIlJlYWQgdGhlIGZvbGxvd2luZyBwYXNzYWdlLiIsICJodG1sIjogIjxwPjxzdHJvbmc+QS48L3N0cm9uZz4gQ2FyaWJhbmEgaXMgYW4gYW5udWFsIHN1bW1lciBhcnRzIGFuZCBjdWx0dXJlIGNhcm5pdmFsIGhlbGQgaW4gVG9yb250bywgT250YXJpby4gSXQmcnNxdW87cyBtb2RlbGxlZCBhZnRlciBtYW55IHN1Y2ggY2Fybml2YWxzIG9jY3VycmluZyB0aHJvdWdob3V0IHRoZSBDYXJpYmJlYW4gaXNsYW5kcyBhbmQgaXMgbm93IHRoZSBsYXJnZXN0IGZlc3RpdmFsIG9mIGl0cyBraW5kIGluIE5vcnRoIEFtZXJpY2EuIEV2ZXJ5IHllYXIgQ2FyaWJhbmEgZHJhd3MgbW9yZSB0aGFuIHR3byBtaWxsaW9uIHBlb3BsZSwgbWFueSBvZiB3aG9tIGNvbWUgdG8gQ2FuYWRhIGp1c3QgZm9yIHRoZSBpbXByZXNzaXZlbHkgZWxhYm9yYXRlIGV2ZW50LiBUaGFua3MgdG8gQ2FyaWJhbmEsIGFib3V0ICQ0MDAgbWlsbGlvbiBhIHllYXIgZmxvd3MgaW50byBPbnRhcmlvLCBhYm91dCBoYWxmIG9mIHdoaWNoIGdvZXMgdG8gdGhlIGdvdmVybm1lbnQgaW4gdGF4IHJldmVudWVzLjwvcD48cD48c3Ryb25nPkIuPC9zdHJvbmc+IENhcmliYW5hJm1kYXNoO3RoZSBuYW1lIGlzIGludGVuZGVkIHRvIHN1Z2dlc3QgYm90aCB0aGUgQ2FyaWJiZWFuIGFuZCBDYW5hZGEmbWRhc2g7c3RhcnRlZCBpbiAxOTY3IGFzIHRoZSBDYXJpYmJlYW4gY29tbXVuaXR5JnJzcXVvO3MgY29udHJpYnV0aW9uIHRvIENhbmFkYSZyc3F1bztzIGNlbnRlbm5pYWwgY2VsZWJyYXRpb25zLiBJdCBjZWxlYnJhdGVzIG5vdCBvbmx5IENhbmFkYSZyc3F1bztzIGNlbnRlbm5pYWwsIGJ1dCBhbHNvIENhcmliYmVhbiBjdWx0dXJlIGFuZCB0aGUgQWZyaWNhbiBlbWFuY2lwYXRpb24sIHdoZW4gdGhlIGVuc2xhdmVtZW50IG9mIEFmcmljYW4gcGVvcGxlIGluIENhbmFkYSB3YXMgZGVjbGFyZWQgaWxsZWdhbCBvbiBBdWd1c3QgMSwgMTgzNC4gSG93ZXZlciwgc2luY2UgdGhlIDE5ODBzLCBDYXJpYmFuYSBoYXMgaW5jbHVkZWQgZWxhYm9yYXRlIGFuZCBpbXByZXNzaXZlIGNvbnRyaWJ1dGlvbnMgZnJvbSBjdWx0dXJhbCBncm91cHMgaW4gQ2VudHJhbCBBbWVyaWNhLCBTb3V0aCBBbWVyaWNhLCBhbmQgQWZyaWNhLCBhcyB3ZWxsLjwvcD48cD48c3Ryb25nPkMuPC9zdHJvbmc+IFRoZSBmZXN0aXZhbCBjZWxlYnJhdGVzIG11c2ljIHdpdGggaW5kaWdlbm91cyBzb25ncyBhbmQgaW5zdHJ1bWVudGFsIG11c2ljIGluY2x1ZGluZyBjYWx5cHNvLCBzb2NhLCByZWdnYWUsIGFuZCBzYWxzYS4gVGhlIHBlcmZvcm1lcnMmcnNxdW87IGNvbnRyaWJ1dGlvbnMgaW5jbHVkZSBub3Qgb25seSBtdXNpYyBidXQgYWxzbyBkYW5jZSwgbWFzcXVlcmFkZSwgYW5kIG9yYWwgdHJhZGl0aW9ucyB0aGF0IGZlYXR1cmUgc3Rvcnl0ZWxsZXJzIGFuZCBjb21lZGlhbnMgcGVyZm9ybWluZyBpbiAmbGRxdW87dGFsayB0ZW50cy4mcmRxdW87IEFyZ3VhYmx5IHRoZSBtb3N0IHNpZ25pZmljYW50IGV2ZW50cyBpbiB0aGUgdHdvLXdlZWsgZmVzdGl2YWwgYXJlIHRoZSBzdGVlbCBiYW5kIHN0cmVldCBwYXJ0aWVzLiBUaGUgc3RlZWwgZHJ1bSwgb3JpZ2luYXRpbmcgZnJvbSBUcmluaWRhZCBhbmQgVG9iYWdvLCBpcyB0aGUgb25seSBub24tZWxlY3RyaWMgbXVzaWNhbCBpbnN0cnVtZW50IGludmVudGVkIGluIHRoZSB0d2VudGlldGggY2VudHVyeS4gSW4gZmFjdCwgb25lIG5vdGFibGUgbW9tZW50IGZyb20gdGhlIGZpcnN0IENhcmliYW5hIHdhcyBhIGZsYXdsZXNzIHRocmVlLXBpZWNlIHBlcmZvcm1hbmNlIGJ5IGEgc3RlZWwgYmFuZCBkdXJpbmcgYSBibGFja291dCBjYXVzZWQgYnkgYSByYWluc3Rvcm0uIEluIGFkZGl0aW9uIHRvIGFsbCB0aGUgZW50ZXJ0YWlubWVudCwgdmlzaXRvcnMgbWF5IGluZHVsZ2UgaW4gYSB2YXJpZXR5IG9mIENhcmliYmVhbiBmb29kIHJhbmdpbmcgZnJvbSB0aGUgZXhwZW5zaXZlIHRvIHRoZSBlY29ub21pY2FsLjwvcD48cD48c3Ryb25nPkQuPC9zdHJvbmc+IFRoZSBoaWdobGlnaHQgb2YgdGhlIGZlc3RpdmFsLCBob3dldmVyLCBpcyB0aGUgZ3JhbmQgcGFyYWRlLiBBbHRob3VnaCBpdHMgcm91dGUgaGFzIGNoYW5nZWQgb3ZlciB0aGUgeWVhcnMsIGl0IGNvbnRpbnVlcyB0byBiZSBhbiBlbGVjdHJpZnlpbmcgc3BlY3RhY2xlIG9mIGNvbG91ciwgY29zdHVtZXMsIG11c2ljLCBhbmQgZGFuY2UgdGhhdCBjb3ZlcnMgc2V2ZXJhbCBtaWxlcywgZGF6emxpbmcgdGhlIGRlbnNlIGNyb3dkcyB0aGF0IGxpbmUgYm90aCBzaWRlcyBvZiB0aGUgc3RyZWV0cy4gSG93ZXZlciwgc2luY2UgdGhpcyBwYXJhZGUgaXMgY2Fybml2YWwgc3R5bGUsIGFueW9uZSBjYW4gam9pbiBpbiBhbmQgY29udHJpYnV0ZSBpbiB0aGVpciBvd24gd2F5LiBQYXJhZGUgcGFydGljaXBhbnRzIGFyZSBvcmdhbml6ZWQgaW50byBtYXNxdWVyYWRlIGdyb3VwcyBjYWxsZWQgJmxkcXVvO2JhbmRzJnJkcXVvOyAobm93IG92ZXIgYSBodW5kcmVkKSwgZWFjaCBvZiB3aGljaCBoYXMgYSBwYXJ0aWN1bGFyIHRoZW1lJm1kYXNoO2hpc3RvcmljYWwsIHBvbGl0aWNhbCwgZmFudGFzdGljYWwmbWRhc2g7YW5kIGlzIGxlZCBieSBhICZsZHF1bztraW5nJnJkcXVvOyBvciAmbGRxdW87cXVlZW4uJnJkcXVvOyBUaGUgcGFyYWRlIGlzIGFsc28gYSBjb21wZXRpdGlvbiwgYW5kIHRoZSBiYW5kcyBhcmUganVkZ2VkIG9uIGVsZW1lbnRzIGluY2x1ZGluZyBlbmVyZ3ksIGNyZWF0aXZpdHksIGFuZCBjb3N0dW1lcyB0aGF0IGFyZSB0eXBpY2FsbHkgcXVpdGUgbGF2aXNoLjwvcD48cD48c3Ryb25nPkUuPC9zdHJvbmc+IE5vdCBnaXZlbiBpbiBhbnkgb2YgdGhlIGFib3ZlIHBhcmFncmFwaHMuPC9wPiJ9LCAiYmxvY2tzIjogW3sidHlwZSI6ICJtYXRjaCIsICJpbnN0ciI6ICJEZWNpZGUgd2hpY2ggcGFyYWdyYXBoLCBBIHRvIEQsIGhhcyB0aGUgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gZWFjaCBzdGF0ZW1lbnQgYmVsb3cuIFNlbGVjdCBFIGlmIHRoZSBpbmZvcm1hdGlvbiBpcyBub3QgZ2l2ZW4gaW4gYW55IG9mIHRoZSBwYXJhZ3JhcGhzLiIsICJsZXR0ZXJzIjogWyJBIiwgIkIiLCAiQyIsICJEIiwgIkUiXSwgIml0ZW1zIjogW3sibiI6IDEsICJ0ZXh0IjogIlRoZSBjYXJuaXZhbFx1MjAxOXMgdGl0bGUgY29udmV5cyBpdHMgY3Jvc3MtY3VsdHVyYWwgb3JpZ2lucy4iLCAia2V5IjogMn0sIHsibiI6IDIsICJ0ZXh0IjogIkNhcmliYW5hIG1ha2VzIGEgc2lnbmlmaWNhbnQgY29udHJpYnV0aW9uIHRvIGl0cyBjb21tdW5pdHkuIiwgImtleSI6IDF9LCB7Im4iOiAzLCAidGV4dCI6ICJJbiB0aGUgb3BlbmluZyB5ZWFyIG9mIHRoZSBmZXN0aXZhbCwgcGVyZm9ybWVycyBvdmVyY2FtZSBhIGRpZmZpY3VsdCBzaXR1YXRpb24uIiwgImtleSI6IDN9LCB7Im4iOiA0LCAidGV4dCI6ICJFYWNoIHllYXIsIENhcmliYW5hIGhpZ2hsaWdodHMgdGhlIGNvbnRyaWJ1dGlvbnMgb2YgYSBkaWZmZXJlbnQgY3VsdHVyYWwgZ3JvdXAuIiwgImtleSI6IDV9LCB7Im4iOiA1LCAidGV4dCI6ICJUaGUgY2Fybml2YWwgaG9zdHMgYSB2YXJpZXR5IG9mIHBlcmZvcm1hbmNlIGdlbnJlcy4iLCAia2V5IjogM30sIHsibiI6IDYsICJ0ZXh0IjogIlRoZSBjb3N0dW1lcyBzZWVuIGF0IENhcmliYW5hIGFyZSBpbXByZXNzaXZlbHkgZWxhYm9yYXRlLiIsICJrZXkiOiA0fSwgeyJuIjogNywgInRleHQiOiAiVGhlIGZlc3RpdmFsXHUyMDE5cyBjcm93bmluZyBtb21lbnQgZW5jb3VyYWdlcyBjb2xsYWJvcmF0aW9uIHdpdGggc3BlY3RhdG9ycy4iLCAia2V5IjogNH0sIHsibiI6IDgsICJ0ZXh0IjogIkVsZWN0cm9uaWMgaW5zdHJ1bWVudHMgaGF2ZSBhIHVuaXF1ZSBwbGFjZSBpbiBoaXN0b3J5LiIsICJrZXkiOiA1fSwgeyJuIjogOSwgInRleHQiOiAiU29tZSBDYXJpYmFuYSBwZXJmb3JtYW5jZXMgYXJlIHNwb2tlbiBuYXJyYXRpdmVzLiIsICJrZXkiOiAzfV19XX0sIHsiaWQiOiA0LCAibmFtZSI6ICJSZWFkaW5nIFBhcnQgNDogUmVhZGluZyBmb3IgVmlld3BvaW50cyIsICJ0aW1lIjogIjEyIG1pbnV0ZXMiLCAicGFzc2FnZSI6IHsidHlwZSI6ICJ0ZXh0IiwgImxhYmVsIjogIlJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlIGZyb20gYSB3ZWJzaXRlLiIsICJodG1sIjogIjxwPkV2ZXIgaGVhcmQgb2YgRmlybWljdXRlcywgQmFjdGVyb2lkZXRlcywgb3IgVmVycnVjb21pY3JvYmlhPyBXaGlsZSB0aGVzZSBuYW1lcyBtaWdodCBzb3VuZCBsaWtlIGFuIGFsaWVuIHNwZWNpZXMgZnJvbSBhIHRocmlsbGVyIG1vdmllLCB0aGV5IGFyZSwgaW4gZmFjdCwgbWljcm9zY29waWMgcmVzaWRlbnRzIHdpdGhpbiBvdXIgdmVyeSBvd24gYm9kaWVzLiBJbmRlZWQsIHRoZXkmcnNxdW87cmUganVzdCBhIGZldyBvZiB0aGUgbWFueSBtaWNyb29yZ2FuaXNtcyB3aGljaCBtYWtlIHVwIHRoZSBodW1hbiBtaWNyb2Jpb21lLCBhIHRlcm0gd2hpY2ggcmVmZXJzIHRvIGFsbCBvZiB0aGUgbWljcm9vcmdhbmlzbXMgd2l0aGluIHRoZSBodW1hbiBib2R5LiBJdCB0dXJucyBvdXQgdGhhdCBhIGhlYWx0aHkgaHVtYW4gYm9keSBpcyB0ZWVtaW5nIHdpdGggYSB3aWRlIHZhcmlldHkgb2YgbWljcm9vcmdhbmlzbXMsIGluY2x1ZGluZyBiYWN0ZXJpYSwgZnVuZ2ksIGFuZCBldmVuIHZpcnVzZXMsIHdpdGggbWFueSBodW1hbiBhaWxtZW50cyBsaW5rZWQgdG8gYSByZWR1Y3Rpb24gaW4gdGhpcyBkaXZlcnNpdHkuPC9wPjxwPkFjY29yZGluZyB0byByZXNlYXJjaGVyIEVsbGllIEtpbSwgaGVyIGludmVzdGlnYXRpb25zIGhhdmUgZm91bmQgY29ycmVsYXRpb25zIGJldHdlZW4gaHVtYW4gbWljcm9iaW9tZXMgYW5kIGEgZGl2ZXJzZSBhcnJheSBvZiBkaXNlYXNlcy4gJmxkcXVvO1RoZSByb2xlIHRoYXQgdGhlc2UgdGlueSBjcmVhdHVyZXMgYXBwZWFyIHRvIGhhdmUgb24gaGVhbHRoIGlzIHByb2ZvdW5kIGFuZCB3aWxsIG9wZW4gZG9vcnMgdG8gbmV3IGtpbmRzIG9mIG1lZGljYWwgdHJlYXRtZW50cywmcmRxdW87IEtpbSBlbnRodXNlcy4gU2hlIGVudmlzaW9ucyB0aGF0IGNvcnJlY3RpbmcgbWljcm9iaW9tZSBpbWJhbGFuY2VzIG1heSBzb29uIHJlcGxhY2UgdGhlIHByYWN0aWNlIG9mIHdpcGluZyBvdXQgZW50aXJlIGNvbG9uaWVzIG9mIG1pY3Jvb3JnYW5pc21zIHdpdGggYW50aWJpb3RpY3MuIEluZGVlZCwgd2l0aCBhbnRpYmlvdGljLXJlc2lzdGFudCBiYWN0ZXJpYSBvbiB0aGUgcmlzZSwgb3VyIGN1cnJlbnQgbWV0aG9kcyBvZiB0cmVhdGluZyBiYWN0ZXJpYWwgaWxsbmVzc2VzIGFyZSBiZWNvbWluZyB3b3JyeWluZ2x5IG9ic29sZXRlLjwvcD48cD5EaWV0aWNpYW4gQ2FybG9zIEdvbWV6IGlzIHVuY29udmluY2VkLiBIZSBjb250ZW5kcyB0aGF0IGl0IGlzbiZyc3F1bzt0IGNsZWFyIHdoZXRoZXIgdGhlIG1pY3JvYmlvbWUgY2hhbmdlcyBhc3NvY2lhdGVkIHdpdGggdmFyaW91cyBkaXNlYXNlcyBhcmUgdGhlIGNhdXNlIG9mLCBvciBzaW1wbHkgdGhlIHNlY29uZGFyeSBlZmZlY3QsIG9mIGRpc2Vhc2UuICZsZHF1bztTdHVkaWVzIGhhdmUgZm91bmQgYm90aCBhIGRlY3JlYXNlIGluIGd1dCBkaXZlcnNpdHkgYW5kIGEgcmlzZSBpbiBnYXN0cm9pbnRlc3RpbmFsIGlsbG5lc3NlcyB3aGVuIHRyYXZlbGxlcnMgZWF0IG5ldyBkaXNoZXMsJnJkcXVvOyBzYXlzIEdvbWV6LiBIZSBhY2tub3dsZWRnZXMgdGhhdCBndXQgbWljcm9vcmdhbmlzbXMgdHlwaWNhbGx5IHVuZGVyZ28gY2hhbmdlcyB3aGVuIGRpZ2VzdGluZyB1bmZhbWlsaWFyIGZvb2RzLiBHb21leiBlbXBoYXNpemVzLCAmbGRxdW87SXQmcnNxdW87cyB1bmNlcnRhaW4gd2hldGhlciBzdXBwbGVtZW50aW5nIHlvdXJzZWxmIHdpdGggYSBiZXR0ZXIgYmFsYW5jZSBvZiBtaWNyb29yZ2FuaXNtcywgd2l0aG91dCBhbiBhY2NvbXBhbnlpbmcgYXZvaWRhbmNlIG9mIHRoZXNlIGZvb2RzLCB3b3VsZCBpbXBhY3Qgb3ZlcmFsbCBndXQgaGVhbHRoLiZyZHF1bzs8L3A+PHA+TWFnYWxpIEJlYXVjaGFtcCwgaG93ZXZlciwgaXMgd2lsbGluZyB0byB0YWtlIGhlciBjaGFuY2VzLiBBbHRob3VnaCBzdG9tYWNoIHRyb3VibGVzIGFyZW4mcnNxdW87dCBhIGNvbmNlcm4gZm9yIGhlciwgQmVhdWNoYW1wIHN0cnVnZ2xlZCB3aXRoIGVjemVtYSZtZGFzaDthIHNraW4gY29uZGl0aW9uJm1kYXNoO2ZvciB5ZWFycy4gU2hlIHRyaWVkIGFuIGFycmF5IG9mIHRoZSB1c3VhbCB0b3BpY2FsIHRyZWF0bWVudHMsIGJ1dCB0byBubyBhdmFpbC4gVW5kZXIgaGVyIGRvY3RvciZyc3F1bztzIHN1cGVydmlzaW9uLCBzaGUgcmVzb3J0ZWQgdG8gcHJvYmlvdGljcywgd2hpY2ggYXJlIGxpdmUgbWljcm9vcmdhbmlzbXMgd2hpY2ggY2FuIGJlIGNvbnN1bWVkIHRvIGJhbGFuY2UgdGhlIGJvZHkmcnNxdW87cyBtaWNyb2Jpb21lLiBXaXRoaW4gbW9udGhzLCBzaGUgZm91bmQgcmVsaWVmLiBBIG5vdyBoZWFsdGh5IEJlYXVjaGFtcCBtYXJrZXRzIHByb2Jpb3RpYyBmb29kcyB0byBzdG9yZXMgYWNyb3NzIENhbmFkYSwgYmVsaWV2aW5nIGV2ZXJ5b25lIGNhbiBiZW5lZml0IGZyb20gYSBmZXcgZXh0cmEgY3JpdHRlcnMuPC9wPiJ9LCAiYmxvY2tzIjogW3sidHlwZSI6ICJzdGVtbGlzdCIsICJpbnN0ciI6ICJVc2luZyB0aGUgZHJvcC1kb3duIG1lbnUgKCAmIzk2NjI7ICksIGNob29zZSB0aGUgYmVzdCBvcHRpb24gYWNjb3JkaW5nIHRvIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBvbiB0aGUgd2Vic2l0ZS4iLCAiaXRlbXMiOiBbeyJuIjogMSwgInByZSI6ICJUaGUgYXJ0aWNsZSBtYWlubHkgZGlzY3Vzc2VzIHRoZSIsICJvcHRpb25zIjogWyJpbXBhY3Qgb2YgZGlzZWFzZXMgb24gdGhlIGJvZHkuIiwgImNvbnNpZGVyYXRpb25zIGFnYWluc3QgYW50aWJpb3RpYyB1c2UuIiwgImltcG9ydGFuY2Ugb2YgYmFjdGVyaWFsIGJhbGFuY2UuIiwgInR5cGVzIG9mIG1pY3Jvb3JnYW5pc21zIGluIHRoZSBib2R5LiJdLCAia2V5IjogM30sIHsibiI6IDIsICJwcmUiOiAiRWxsaWUgS2ltIGlzIGV4Y2l0ZWQgYWJvdXQiLCAib3B0aW9ucyI6IFsibmV3IG1pY3Jvb3JnYW5pc21zLiIsICJiYWN0ZXJpYWwgZXZvbHV0aW9uLiIsICJ1cGRhdGVkIGFudGliaW90aWNzLiIsICJwb3RlbnRpYWwgZGlzY292ZXJpZXMuIl0sICJrZXkiOiA0fSwgeyJuIjogMywgInByZSI6ICJUaGUgYXV0aG9yIGltcGxpZXMgdGhhdCBhbnRpYmlvdGljcyBtaWdodCBvbmUgZGF5IGJlIiwgIm9wdGlvbnMiOiBbImRlcGxldGVkLiIsICJoYXJtZnVsLiIsICJ1c2VsZXNzLiIsICJpbXByZWNpc2UuIl0sICJrZXkiOiAzfSwgeyJuIjogNCwgInByZSI6ICJBY2NvcmRpbmcgdG8gQ2FybG9zIEdvbWV6LCB3aGF0IGlzIHRydWUgYWJvdXQgZ3V0IGhlYWx0aD8iLCAib3B0aW9ucyI6IFsiRGlldGFyeSBjaGFuZ2VzIHByZXZlbnQgdGhlIGV2b2x1dGlvbiBvZiBndXQgYmFjdGVyaWEuIiwgIkRpc2Vhc2VzIGFyZSBjYXVzZWQgYnkgaGF2aW5nIHVuc3RhYmxlIGd1dCBiYWN0ZXJpYS4iLCAiUHJvYmlvdGljcyBhbGxvdyBndXQgYmFjdGVyaWEgdG8gYWRhcHQgdG8gbmV3IGZvb2RzLiIsICJBZGp1c3RtZW50cyBpbiB3aGF0IHdlIGVhdCBjYW4gYWZmZWN0IGd1dCBiYWN0ZXJpYS4iXSwgImtleSI6IDR9LCB7Im4iOiA1LCAicHJlIjogIlRoZSB3YXkgTWFnYWxpIEJlYXVjaGFtcCBkZWFsdCB3aXRoIGVjemVtYSB3YXMiLCAib3B0aW9ucyI6IFsiaW5lZmZlY3RpdmUuIiwgInJpc2t5LiIsICJ1bmNvbnZlbnRpb25hbC4iLCAidW5hcHByb3ZlZC4iXSwgImtleSI6IDN9XX0sIHsidHlwZSI6ICJjbG96ZSIsICJpbnN0ciI6ICJUaGUgZm9sbG93aW5nIGlzIGEgY29tbWVudCBieSBhIHZpc2l0b3IgdG8gdGhlIHdlYnNpdGUgcGFnZS4gQ29tcGxldGUgdGhlIGNvbW1lbnQgYnkgY2hvb3NpbmcgdGhlIGJlc3Qgb3B0aW9uIHRvIGZpbGwgaW4gZWFjaCBibGFuay4iLCAiYm9keSI6IFsiVGhhbmsgeW91IGZvciBhbiBpbmZvcm1hdGl2ZSBhcnRpY2xlLiBMaWtlIHRoZSBhdXRob3Igc3VnZ2VzdHMsIEkgbWlnaHQgaGF2ZSBhc3N1bWVkIEZpcm1pY3V0ZXMgb3IgVmVycnVjb21pY3JvYmlhIGFyZSBzb21ldGhpbmciLCB7ImIiOiA2LCAib3B0aW9ucyI6IFsiZmljdGlvbmFsIiwgImVkaWJsZSIsICJkYW5nZXJvdXMiLCAiZXh0aWN0Il0sICJrZXkiOiAxfSwgIi4gSSB3YXMgcGFydGljdWxhcmx5IGludHJpZ3VlZCBieSBFbGxpZSBLaW1cdTIwMTlzIiwgeyJiIjogNywgIm9wdGlvbnMiOiBbInRyYWRpdGlvbmFsIHJlbWVkaWVzIiwgIm1lZGljYWwgZmluZGluZ3MiLCAicmVzZWFyY2ggbWV0aG9kcyIsICJtaWNyb2Jpb21lIHN1YnN0aXR1dGVzIl0sICJrZXkiOiAyfSwgIiwgYW5kIEkgaG9wZSBpdCB3aWxsIGluc3BpcmUgcGVvcGxlIHRvIHRoaW5rIG1vcmUgYWJvdXQgdGhpcyB0b3BpYy4gSW5kZWVkLCBJIGFncmVlIHdpdGggaGVyIGFib3V0IGhvdyBiYWN0ZXJpYSB0aGF0IGFyZSBpbW11bmUgdG8gZHJ1Z3MgYXJlIiwgeyJiIjogOCwgIm9wdGlvbnMiOiBbImEgbmF0dXJhbCBwaGVub21lbm9uIiwgImFuIHVuZXhwZWN0ZWQgcHJvYmxlbSIsICJhbiBpbmV2aXRhYmxlIG91dGNvbWUiLCAiYW4gaW5jcmVhc2luZyBjb25jZXJuIl0sICJrZXkiOiA0fSwgIi4gQWRkaXRpb25hbGx5LCBDYXJsb3MgR29tZXogbWFkZSBzb21lIGludGVyZXN0aW5nIGNvbW1lbnRzIGFib3V0IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBtaWNyb2Jpb21lcyBhbmQgZGlzZWFzZXMgYmVpbmciLCB7ImIiOiA5LCAib3B0aW9ucyI6IFsidW5rbm93biIsICJwcmVkaWN0YWJsZSIsICJhYnNlbnQiLCAiZGlyZWN0Il0sICJrZXkiOiAxfSwgIi4gWW91IGxlYXJuIHNvbWV0aGluZyBuZXcgZXZlcnkgZGF5ISBIb3dldmVyLCBJIGZpbmQgaXQgdHJvdWJsaW5nIHdoZW4gcGVvcGxlLCBzdWNoIGFzIE1hZ2FsaSBCZWF1Y2hhbXAsIGFzc3VtZSB0aGVpciIsIHsiYiI6IDEwLCAib3B0aW9ucyI6IFsiZXhlcmNpc2UgcHJvZ3JhbSIsICJtZWRpY2luYWwgcmVzZWFyY2giLCAiZGlldGFyeSBzb2x1dGlvbiIsICJoZWFsdGggcHJvYmxlbSJdLCAia2V5IjogM30sICIgYXBwbGllcyB0byBldmVyeW9uZS4gRXZlcnkgcGVyc29uIGlzIHVuaXF1ZSwgYW5kIG9ubHkgZnVydGhlciByZXNlYXJjaCBjYW4geWllbGQgYSByZWxpYWJsZSBhbnN3ZXIuXG5cbll1cmkgUGV0cm92Il19XX1dfTsKCmZ1bmN0aW9uIGNsYkVzdGltYXRlUihyYXcpewogIGlmIChyYXcgPj0gMzUpIHJldHVybiB7IGxldmVsOidDRUxQSVAgMTBcdTIwMTMxMicsIG5vdGU6J0FkdmFuY2VkIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMzApIHJldHVybiB7IGxldmVsOidDRUxQSVAgOScsICBub3RlOidFZmZlY3RpdmUgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyNykgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA4JywgIG5vdGU6J0dvb2QgcHJvZmljaWVuY3knIH07CiAgaWYgKHJhdyA+PSAyMikgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA3JywgIG5vdGU6J0FkZXF1YXRlIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTcpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNicsICBub3RlOidEZXZlbG9waW5nIHByb2ZpY2llbmN5JyB9OwogIGlmIChyYXcgPj0gMTEpIHJldHVybiB7IGxldmVsOidDRUxQSVAgNScsICBub3RlOidBY3F1aXJpbmcgcHJvZmljaWVuY3knIH07CiAgcmV0dXJuIHsgbGV2ZWw6J0NFTFBJUCA0IG9yIGJlbG93Jywgbm90ZTonS2VlcCBwcmFjdGljaW5nIScgfTsKfQoKKGZ1bmN0aW9uKCl7CiAgLyogLS0tLSBpbmplY3Qgc2NvcGVkIENTUyAoV29yZFByZXNzLXNhZmU6IDxzdHlsZT4gaW4gY29udGVudCBjYW4gYmUgc3RyaXBwZWQpIC0tLS0gKi8KICB2YXIgQ1NTID0gYAouY2xwci13cmFwey0tbmF2eTojMDUwRTIwOy0tYjkwMDojMEQyMzUyOy0tYjcwMDojMTI0NUE4Oy0tYjUwMDojMjU2M0VCOy0tYjQwMDojM0I4MkY2Oy0tYjIwMDojOTNDNUZEOy0tYjEwMDojREJFQUZFOy0tYjUwOiNFRkY2RkY7LS10ZWFsOiMwRDk0ODg7LS1jeWFuOiMwNkI2RDQ7LS1ncmVlbjojMTBCOTgxOy0tZ3JlZW41MDojRUNGREY1Oy0tcm9zZTojRjQzRjVFOy0tdGV4dDojMEYxNzJBOy0tbXV0ZWQ6IzQ3NTU2OTstLXN1YnRsZTojOTRBM0I4Oy0tYm9yZGVyOiNFMkU4RjA7LS1iYXItYmc6I0U4RUJFRjstLWJhci1ib3JkZXI6I0QzRDlFMDstLWJhci10ZXh0OiMxRjI5Mzc7LS1wYW5lbC1wLWJnOiNGNEY1Rjc7LS1wYW5lbC1wLWJvcmRlcjojRTNFNkVBOy0tcGFuZWwtcS1iZzojRTlGNEY3Oy0tcGFuZWwtcS1ib3JkZXI6I0Q2RThFRDstLWRkLW9wZW4tYmc6I0NCRUJGNDtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLFNlZ29lIFVJLFJvYm90byxzYW5zLXNlcmlmO2NvbG9yOnZhcigtLXRleHQpO21heC13aWR0aDoxMTgwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjE2cHggMTZweCA1NnB4O2xpbmUtaGVpZ2h0OjEuNTtmb250LXNpemU6MTZweDt9Ci5jbHByLXdyYXAgKiwuY2xwci13cmFwICo6OmJlZm9yZSwuY2xwci13cmFwICo6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt9Ci5jbHByLXdyYXAgYnV0dG9ue2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7fQouY2xwci13cmFwIGgxLC5jbHByLXdyYXAgaDIsLmNscHItd3JhcCBoMywuY2xwci13cmFwIHB7bWFyZ2luOjA7fQouY2xwci1oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjIycHg7YmFja2dyb3VuZDp2YXIoLS1uYXZ5KTtjb2xvcjojZmZmO3BhZGRpbmc6MzRweCAzOHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEzcHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtib3gtc2hhZG93OjAgMjBweCA0MHB4IC0yMHB4IHJnYmEoNSwxNCwzMiwuNDUpO30KLmNscHItYXVyb3Jhe3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5jbHByLWF1cm9yYSBzcGFue3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo1MCU7ZmlsdGVyOmJsdXIoNDZweCk7b3BhY2l0eTouNTU7fQouY2xwci1hdXJvcmEgc3BhbjpudGgtY2hpbGQoMSl7d2lkdGg6NDIwcHg7aGVpZ2h0OjQyMHB4O2xlZnQ6LTEyMHB4O3RvcDotMjAwcHg7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMxMjQ1QTggMCUsdHJhbnNwYXJlbnQgNzAlKTt9Ci5jbHByLWF1cm9yYSBzcGFuOm50aC1jaGlsZCgyKXt3aWR0aDozODBweDtoZWlnaHQ6MzgwcHg7cmlnaHQ6LTgwcHg7dG9wOi0xNjBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzBEOTQ4OCAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItYXVyb3JhIHNwYW46bnRoLWNoaWxkKDMpe3dpZHRoOjM0MHB4O2hlaWdodDozNDBweDtyaWdodDoyMiU7Ym90dG9tOi0yNDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsIzI1NjNFQiAwJSx0cmFuc3BhcmVudCA3MCUpO30KLmNscHItaGVyby1iYWRnZXN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt9Ci5jbHByLWJhZGdlLWJyYW5ke2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1iOTAwKTtmb250LXdlaWdodDo4MDA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo0cHggMTFweDtib3JkZXItcmFkaXVzOjk5OXB4O2xldHRlci1zcGFjaW5nOi4wMWVtO30KLmNscHItYmFkZ2Utc2V0e2NvbG9yOnZhcigtLWIyMDApO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDt9Ci5jbHByLWhlcm8gaDF7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOmNsYW1wKDI2cHgsNHZ3LDQwcHgpO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07bGluZS1oZWlnaHQ6MS4xMjt9Ci5jbHByLWhlcm8tc3Vie3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiNDN0QyRTM7Zm9udC1zaXplOjE0LjVweDttYXgtd2lkdGg6NzYwcHg7fQouY2xwci1oZXJvLWNoaXBze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO30KLmNscHItY2hpcHtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojRTVFRUZCO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTYpO3BhZGRpbmc6NXB4IDExcHg7Ym9yZGVyLXJhZGl1czo5OTlweDt9Ci5jbHByLWN0YXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjZweDtiYWNrZ3JvdW5kOnZhcigtLWI1MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNXB4O3BhZGRpbmc6MTJweCAyMnB4O2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMTJweCAyNHB4IC0xMHB4IHJnYmEoMzcsOTksMjM1LC44KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTVzLGJhY2tncm91bmQgLjE1czt9Ci5jbHByLWN0YTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtiYWNrZ3JvdW5kOnZhcigtLWI0MDApO30KLmNscHItdG9vbGJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6MThweDtwYWRkaW5nOjEwcHggMTRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgNnB4IDE4cHggLTEycHggcmdiYSgxNSwyMyw0MiwuMjUpO3Bvc2l0aW9uOnN0aWNreTt0b3A6OHB4O3otaW5kZXg6MzA7fQouY2xwci10b29sYmFyW2hpZGRlbl17ZGlzcGxheTpub25lO30KLmNscHItdG9vbGJhci1zcGFjZXJ7ZmxleDoxO30KLmNscHItc2NvcmUtY2hpcHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYjkwMCk7YmFja2dyb3VuZDp2YXIoLS1iNTApO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYjEwMCk7cGFkZGluZzo2cHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O30KLmNscHItdGJ0bntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2NvbG9yOnZhcigtLXRleHQpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTNweDtwYWRkaW5nOjhweCAxNXB4O2JvcmRlci1yYWRpdXM6MTBweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJveC1zaGFkb3cgLjEyczt9Ci5jbHByLXRidG46aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDZweCAxNHB4IC04cHggcmdiYSgxNSwyMyw0MiwuMyk7fQouY2xwci10YnRuLWNoZWNre2JhY2tncm91bmQ6dmFyKC0tZ3JlZW4pO2JvcmRlci1jb2xvcjp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLXRidG4tY2hlY2s6aG92ZXJ7YmFja2dyb3VuZDojMGNhNjc4O30KLmNscHItdGJ0bltkaXNhYmxlZF17b3BhY2l0eTouNTtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmU7Ym94LXNoYWRvdzpub25lO30KLmNscHItc2lte21hcmdpbi10b3A6MTZweDt9Ci5jbHByLXNpbVtoaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLWRvdHN7ZGlzcGxheTpmbGV4O2dhcDo4cHg7bWFyZ2luOjAgMCAxMnB4IDJweDtmbGV4LXdyYXA6d3JhcDt9Ci5jbHByLWRvdHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4O2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLW11dGVkKTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMTVzO30KLmNscHItZG90IGJ7ZGlzcGxheTppbmxpbmUtZmxleDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjEwMCk7Y29sb3I6dmFyKC0tYjkwMCk7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjExcHg7fQouY2xwci1kb3QuY2xwci1jdXJ7YmFja2dyb3VuZDp2YXIoLS1iNTAwKTtib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjt9Ci5jbHByLWRvdC5jbHByLWN1ciBie2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjUpO2NvbG9yOiNmZmY7fQouY2xwci1kb3QuY2xwci1kb25lIGJ7YmFja2dyb3VuZDp2YXIoLS1ncmVlbik7Y29sb3I6I2ZmZjt9Ci5jbHByLWNhdHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAxMHB4IDMwcHggLTE4cHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjExcHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWJhci1iZyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYmFyLWJvcmRlcik7fQouY2xwci1iYXItdGl0bGV7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWJhci10ZXh0KTtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1iYXItdGltZXJ7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tYmFyLXRleHQpO3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5jbHByLWJhci10aW1lciBie2ZvbnQtd2VpZ2h0OjgwMDt9Ci5jbHByLWNvbHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDowO30KLmNscHItcGFzc2FnZXtwYWRkaW5nOjIwcHggMjJweDtiYWNrZ3JvdW5kOnZhcigtLXBhbmVsLXAtYmcpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tcGFuZWwtcC1ib3JkZXIpO21heC1oZWlnaHQ6MTIwMHB4O292ZXJmbG93OmF1dG87fQouY2xwci1xY29se3BhZGRpbmc6MThweCAyMnB4O2JhY2tncm91bmQ6dmFyKC0tcGFuZWwtcS1iZyk7bWF4LWhlaWdodDoxMjAwcHg7b3ZlcmZsb3c6YXV0bzt9Ci5jbHByLXBsYWJlbCwuY2xwci1pbnN0cntkaXNwbGF5OmZsZXg7Z2FwOjlweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1iOTAwKTttYXJnaW4tYm90dG9tOjEycHg7fQouY2xwci1wbGFiZWw6OmJlZm9yZSwuY2xwci1pbnN0cjo6YmVmb3Jle2NvbnRlbnQ6ImkiO2ZsZXg6bm9uZTt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYjUwMCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo4MDA7Zm9udC1zdHlsZTppdGFsaWM7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MXB4O30KLmNscHItcGFzc2FnZSBwe2ZvbnQtc2l6ZToxNC41cHg7Y29sb3I6IzFlMmEzYTttYXJnaW4tYm90dG9tOjExcHg7bGluZS1oZWlnaHQ6MS43Mjt9Ci5jbHByLXBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxheTpibG9jazt9Ci5jbHByLWJsb2Nre2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXBhbmVsLXEtYm9yZGVyKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxNnB4IDE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O30KLmNscHItc3RlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7ZmxleC13cmFwOndyYXA7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7cGFkZGluZzo5cHggMDtsaW5lLWhlaWdodDoxLjc7fQouY2xwci1zdGVtICsgLmNscHItc3RlbXtib3JkZXItdG9wOjFweCBkYXNoZWQgI0U2RURGMTt9Ci5jbHByLXNudW17Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO30KLmNscHItY2xvemV7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tdGV4dCk7bGluZS1oZWlnaHQ6Mi4xNTt9Ci5jbHByLWNsb3plIC5jbHByLXBhcmF7bWFyZ2luLWJvdHRvbToxMnB4O3doaXRlLXNwYWNlOnByZS13cmFwO30KLmNscHItbWF0Y2gtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMnB4O3BhZGRpbmc6MTFweCAwO2ZvbnQtc2l6ZToxNC41cHg7bGluZS1oZWlnaHQ6MS42O30KLmNscHItbWF0Y2gtcm93ICsgLmNscHItbWF0Y2gtcm93e2JvcmRlci10b3A6MXB4IGRhc2hlZCAjRTZFREYxO30KLmNscHItbWF0Y2gtcm93IC5jbHByLXNudW17bWFyZ2luLXRvcDo1cHg7fQovKiBkcm9wZG93biB3aWRnZXQgKi8KLmNscHItZGR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luOjJweCAycHg7fQouY2xwci1kZC1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6NjRweDttYXgtd2lkdGg6MzQwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0I3QzJDRTtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjVweCA5cHg7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS10ZXh0KTtsaW5lLWhlaWdodDoxLjM1O3RleHQtYWxpZ246bGVmdDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjEycyxib3JkZXItY29sb3IgLjEyczt9Ci5jbHByLWRkLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyLWNvbG9yOnZhcigtLWI0MDApO30KLmNscHItZGQuY2xwci1vcGVuIC5jbHByLWRkLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWRkLW9wZW4tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1iNDAwKTt9Ci5jbHByLWRkLXR4dHtmbGV4OjE7bWluLXdpZHRoOjA7fQouY2xwci1kZC10eHQuY2xwci1lbXB0eXtjb2xvcjp2YXIoLS1zdWJ0bGUpO2xldHRlci1zcGFjaW5nOjNweDt9Ci5jbHByLWRkLWNhcmV0e2ZvbnQtc2l6ZTo5cHg7Y29sb3I6dmFyKC0tYjcwMCk7ZmxleDpub25lO30KLmNscHItZGQtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjYwO3RvcDpjYWxjKDEwMCUgKyA0cHgpO2xlZnQ6MDttaW4td2lkdGg6MjQwcHg7bWF4LXdpZHRoOjM2MHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNDNkQwREE7Ym9yZGVyLXJhZGl1czo4cHg7Ym94LXNoYWRvdzowIDE2cHggMzRweCAtMTJweCByZ2JhKDE1LDIzLDQyLC40KTtwYWRkaW5nOjVweDtkaXNwbGF5Om5vbmU7fQouY2xwci1kZC5jbHByLW9wZW4gLmNscHItZGQtbWVudXtkaXNwbGF5OmJsb2NrO30KLmNscHItZGQtb3B0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo5cHg7cGFkZGluZzo4cHggOXB4O2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tdGV4dCk7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS40O30KLmNscHItZGQtb3B0OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYjUwKTt9Ci5jbHByLWRkLW9wdCAuY2xwci1yYWRpb3tmbGV4Om5vbmU7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MS41cHggc29saWQgIzlBQTdCNDttYXJnaW4tdG9wOjFweDt9Ci5jbHByLWRkLW9wdC5jbHByLXNlbCAuY2xwci1yYWRpb3tib3JkZXItY29sb3I6dmFyKC0tYjUwMCk7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCMyNTYzRUIgNDIlLCNmZmYgNDclKTt9Ci5jbHByLWRkLmNscHItcmlnaHQgLmNscHItZGQtYnRue2JhY2tncm91bmQ6dmFyKC0tZ3JlZW41MCk7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1ncmVlbik7Y29sb3I6IzA0Nzg1Nzt9Ci5jbHByLWRkLmNscHItd3JvbmcgLmNscHItZGQtYnRue2JhY2tncm91bmQ6I0ZGRjFGMjtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXJvc2UpO2NvbG9yOiNCRTEyM0M7fQouY2xwci1zb2x2ZWR7ZGlzcGxheTpub25lO21hcmdpbi1sZWZ0OjdweDtmb250LXNpemU6MTIuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDQ3ODU3O30KLmNscHItZGQuY2xwci13cm9uZyAuY2xwci1zb2x2ZWR7ZGlzcGxheTppbmxpbmU7fQouY2xwci1uYXZ7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTRweCAxOHB4O2JhY2tncm91bmQ6dmFyKC0tYmFyLWJnKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1iYXItYm9yZGVyKTt9Ci5jbHByLW5hdmJ0bntiYWNrZ3JvdW5kOnZhcigtLWI5MDApO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMy41cHg7cGFkZGluZzo5cHggMjBweDtib3JkZXItcmFkaXVzOjlweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTJzLGJhY2tncm91bmQgLjEyczt9Ci5jbHByLW5hdmJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWI3MDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO30KLmNscHItbmF2YnRuLmNscHItZ2hvc3R7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLW11dGVkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJhci1ib3JkZXIpO30KLmNscHItbmF2YnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZTt9Ci5jbHByLXJlc3VsdHN7bWFyZ2luLXRvcDoxOHB4O30KLmNscHItcmVzdWx0c1toaWRkZW5de2Rpc3BsYXk6bm9uZTt9Ci5jbHByLXJlcy1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6MjRweCAyNnB4O2JveC1zaGFkb3c6MCAxNnB4IDQwcHggLTIycHggcmdiYSgxNSwyMyw0MiwuNCk7fQouY2xwci1yZXMtdG9we2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjIwcHg7ZmxleC13cmFwOndyYXA7fQouY2xwci1yZXMtc2NvcmV7Zm9udC1zaXplOjQ0cHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWI3MDApO2xpbmUtaGVpZ2h0OjE7fQouY2xwci1yZXMtc2NvcmUgc3Bhbntmb250LXNpemU6MjBweDtjb2xvcjp2YXIoLS1zdWJ0bGUpO30KLmNscHItcmVzLWNsYntiYWNrZ3JvdW5kOnZhcigtLWI1MCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1iMTAwKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxMHB4IDE2cHg7fQouY2xwci1yZXMtY2xiIGJ7ZGlzcGxheTpibG9jaztmb250LXNpemU6MThweDtjb2xvcjp2YXIoLS1iOTAwKTt9Ci5jbHByLXJlcy1jbGIgc21hbGx7Y29sb3I6dmFyKC0tbXV0ZWQpO30KLmNscHItcmVzLWJyZWFre2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjE2cHg7fQouY2xwci1yZXMtcGlsbHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2JhY2tncm91bmQ6I0YxRjVGOTtib3JkZXItcmFkaXVzOjk5OXB4O3BhZGRpbmc6NnB4IDEzcHg7fQouY2xwci1yZXMtYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxOHB4O2ZsZXgtd3JhcDp3cmFwO30KQG1lZGlhKG1heC13aWR0aDo4MjBweCl7LmNscHItY29sc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO30uY2xwci1wYXNzYWdle2JvcmRlci1yaWdodDpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLXBhbmVsLXAtYm9yZGVyKTttYXgtaGVpZ2h0Om5vbmU7fS5jbHByLXFjb2x7bWF4LWhlaWdodDpub25lO319CmA7CiAgdmFyIHN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsgc3QudGV4dENvbnRlbnQgPSBDU1M7IGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3QpOwogIHZhciB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJXcmFwJyk7CiAgdmFyIHN0YXJ0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJTdGFydCcpOwogIHZhciB0b29sYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NscHJUb29sYmFyJyk7CiAgdmFyIHNpbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByU2ltJyk7CiAgdmFyIGRvdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByRG90cycpOwogIHZhciBjYXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2F0Jyk7CiAgdmFyIHJlc3VsdHNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByUmVzdWx0cycpOwogIHZhciBzY29yZUNoaXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclNjb3JlQ2hpcCcpOwogIHZhciBjaGVja0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbHByQ2hlY2snKTsKICB2YXIgcmVzZXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJlc2V0Jyk7CgogIHZhciBRID0gW107CiAgdmFyIGN1clBhcnQgPSAwOwogIHZhciBjaGVja2VkID0gZmFsc2U7CgogIGZ1bmN0aW9uIGVsKHRhZywgY2xzLCBodG1sKXsgdmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpOyBpZihjbHMpZS5jbGFzc05hbWU9Y2xzOyBpZihodG1sIT1udWxsKWUuaW5uZXJIVE1MPWh0bWw7IHJldHVybiBlOyB9CgogIC8qIEJ1aWxkIHRoZSBwZXJzaXN0ZW50IHF1ZXN0aW9uIGxpc3QgT05DRTsgYXR0YWNoIC5fcSB0byBlYWNoIGl0ZW0vYmxhbmsgc28KICAgICByZS1yZW5kZXJpbmcgYSBwYXJ0IHJldXNlcyB0aGUgc2FtZSBzdGF0ZSBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LiAqLwogIGZ1bmN0aW9uIGluaXRRdWVzdGlvbnMoKXsKICAgIFEgPSBbXTsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocGFydCl7CiAgICAgIHBhcnQuYmxvY2tzLmZvckVhY2goZnVuY3Rpb24oYmxrKXsKICAgICAgICBpZihibGsudHlwZT09PSdjbG96ZScpewogICAgICAgICAgYmxrLmJvZHkuZm9yRWFjaChmdW5jdGlvbih0b2speyBpZih0eXBlb2YgdG9rPT09J29iamVjdCcpeyB0b2suX3E9e3NlbDpudWxsLGtleTp0b2sua2V5LG46dG9rLmIscGFydDpwYXJ0LmlkfTsgUS5wdXNoKHRvay5fcSk7IH0gfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJsay5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0KXsgaXQuX3E9e3NlbDpudWxsLGtleTppdC5rZXksbjppdC5uLHBhcnQ6cGFydC5pZH07IFEucHVzaChpdC5fcSk7IH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIG1ha2VEcm9wZG93bihvcHRpb25zLCBxcmVmKXsKICAgIHZhciBkZCA9IGVsKCdzcGFuJywnY2xwci1kZCcpOwogICAgdmFyIGJ0biA9IGVsKCdidXR0b24nLCdjbHByLWRkLWJ0bicpOwogICAgdmFyIHR4dCA9IGVsKCdzcGFuJywnY2xwci1kZC10eHQgY2xwci1lbXB0eScsJyAgICcpOwogICAgdmFyIGNhcmV0ID0gZWwoJ3NwYW4nLCdjbHByLWRkLWNhcmV0JywnXHUyNWJlJyk7CiAgICBidG4uYXBwZW5kQ2hpbGQodHh0KTsgYnRuLmFwcGVuZENoaWxkKGNhcmV0KTsKICAgIHZhciBzb2x2ZWQgPSBlbCgnc3BhbicsJ2NscHItc29sdmVkJywnJyk7CiAgICB2YXIgbWVudSA9IGVsKCdzcGFuJywnY2xwci1kZC1tZW51Jyk7CiAgICBvcHRpb25zLmZvckVhY2goZnVuY3Rpb24ob3B0LCBpKXsKICAgICAgdmFyIG8gPSBlbCgnc3BhbicsJ2NscHItZGQtb3B0Jyk7CiAgICAgIG8uYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXJhZGlvJykpOwogICAgICBvLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLG9wdCkpOwogICAgICBvLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIGlmKGNoZWNrZWQpIHJldHVybjsKICAgICAgICBxcmVmLnNlbCA9IGkrMTsKICAgICAgICB0eHQudGV4dENvbnRlbnQgPSBvcHQ7IHR4dC5jbGFzc05hbWU9J2NscHItZGQtdHh0JzsKICAgICAgICBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpLmZvckVhY2goZnVuY3Rpb24oeCl7eC5jbGFzc0xpc3QucmVtb3ZlKCdjbHByLXNlbCcpO30pOwogICAgICAgIG8uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgICAgICBjbG9zZUFsbCgpOwogICAgICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgICB9KTsKICAgICAgbWVudS5hcHBlbmRDaGlsZChvKTsKICAgIH0pOwogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZXYpewogICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgaWYoY2hlY2tlZCkgcmV0dXJuOwogICAgICB2YXIgd2FzT3BlbiA9IGRkLmNsYXNzTGlzdC5jb250YWlucygnY2xwci1vcGVuJyk7CiAgICAgIGNsb3NlQWxsKCk7CiAgICAgIGlmKCF3YXNPcGVuKSBkZC5jbGFzc0xpc3QuYWRkKCdjbHByLW9wZW4nKTsKICAgIH0pOwogICAgZGQuYXBwZW5kQ2hpbGQoYnRuKTsgZGQuYXBwZW5kQ2hpbGQoc29sdmVkKTsgZGQuYXBwZW5kQ2hpbGQobWVudSk7CiAgICBxcmVmLmRkRWwgPSBkZDsgcXJlZi50eHRFbCA9IHR4dDsgcXJlZi5zb2x2ZWRFbCA9IHNvbHZlZDsgcXJlZi5vcHRpb25zID0gb3B0aW9uczsKICAgIGlmKHFyZWYuc2VsIT1udWxsKXsKICAgICAgdHh0LnRleHRDb250ZW50ID0gb3B0aW9uc1txcmVmLnNlbC0xXTsgdHh0LmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOwogICAgICB2YXIgc28gPSBtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbHByLWRkLW9wdCcpW3FyZWYuc2VsLTFdOyBpZihzbykgc28uY2xhc3NMaXN0LmFkZCgnY2xwci1zZWwnKTsKICAgIH0KICAgIHJldHVybiBkZDsKICB9CiAgZnVuY3Rpb24gY2xvc2VBbGwoKXsgd3JhcC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xwci1kZC5jbHByLW9wZW4nKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2QuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1vcGVuJyk7fSk7IH0KICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlQWxsKTsKCiAgZnVuY3Rpb24gYnVpbGRQYXJ0KHBpKXsKICAgIHZhciBwYXJ0ID0gUkRBVEEucGFydHNbcGldOwogICAgY2F0RWwuaW5uZXJIVE1MPScnOwogICAgdmFyIGJhciA9IGVsKCdkaXYnLCdjbHByLWJhcicpOwogICAgYmFyLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWJhci10aXRsZScsICdQcmFjdGljZSBUZXN0IDEgXHUyMDEzICcrcGFydC5uYW1lKSk7CiAgICBiYXIuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsJ2NscHItYmFyLXRpbWVyJywnU3VnZ2VzdGVkIHRpbWU6IDxiPicrcGFydC50aW1lKyc8L2I+JykpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQoYmFyKTsKICAgIHZhciBjb2xzID0gZWwoJ2RpdicsJ2NscHItY29scycpOwogICAgdmFyIGxlZnQgPSBlbCgnZGl2JywnY2xwci1wYXNzYWdlJyk7CiAgICBsZWZ0LmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLXBsYWJlbCcsIHBhcnQucGFzc2FnZS5sYWJlbCkpOwogICAgaWYocGFydC5wYXNzYWdlLnR5cGU9PT0naW1hZ2UnKXsKICAgICAgdmFyIGltZyA9IGVsKCdpbWcnLCdjbHByLXBpbWcnKTsgaW1nLnNyYyA9IHBhcnQucGFzc2FnZS5zcmM7IGltZy5hbHQgPSBwYXJ0LnBhc3NhZ2UuYWx0fHwnJzsgbGVmdC5hcHBlbmRDaGlsZChpbWcpOwogICAgfSBlbHNlIHsKICAgICAgbGVmdC5hcHBlbmRDaGlsZChlbCgnZGl2JyxudWxsLCBwYXJ0LnBhc3NhZ2UuaHRtbCkpOwogICAgfQogICAgdmFyIHJpZ2h0ID0gZWwoJ2RpdicsJ2NscHItcWNvbCcpOwogICAgcGFydC5ibG9ja3MuZm9yRWFjaChmdW5jdGlvbihibG9jayl7IHJpZ2h0LmFwcGVuZENoaWxkKGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpKTsgfSk7CiAgICBjb2xzLmFwcGVuZENoaWxkKGxlZnQpOyBjb2xzLmFwcGVuZENoaWxkKHJpZ2h0KTsKICAgIGNhdEVsLmFwcGVuZENoaWxkKGNvbHMpOwogICAgdmFyIG5hdiA9IGVsKCdkaXYnLCdjbHByLW5hdicpOwogICAgdmFyIHByZXYgPSBlbCgnYnV0dG9uJywnY2xwci1uYXZidG4gY2xwci1naG9zdCcsJ1x1MjE5MCBQcmV2aW91cyBwYXJ0Jyk7CiAgICB2YXIgbmV4dCA9IGVsKCdidXR0b24nLCdjbHByLW5hdmJ0bicsJ05leHQgcGFydCBcdTIxOTInKTsKICAgIHByZXYuZGlzYWJsZWQgPSAocGk9PT0wKTsgbmV4dC5kaXNhYmxlZCA9IChwaT09PVJEQVRBLnBhcnRzLmxlbmd0aC0xKTsKICAgIHByZXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpeyBpZihwaT4wKSBnbyhwaS0xKTsgfSk7CiAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgaWYocGk8UkRBVEEucGFydHMubGVuZ3RoLTEpIGdvKHBpKzEpOyB9KTsKICAgIG5hdi5hcHBlbmRDaGlsZChwcmV2KTsgbmF2LmFwcGVuZENoaWxkKG5leHQpOwogICAgY2F0RWwuYXBwZW5kQ2hpbGQobmF2KTsKICAgIGlmKGNoZWNrZWQpIGFwcGx5TWFya3MoKTsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkQmxvY2soYmxvY2ssIHBhcnQpewogICAgdmFyIHdyYXBCID0gZWwoJ2RpdicsJ2NscHItYmxvY2snKTsKICAgIHdyYXBCLmFwcGVuZENoaWxkKGVsKCdkaXYnLCdjbHByLWluc3RyJywgYmxvY2suaW5zdHIpKTsKICAgIGlmKGJsb2NrLnR5cGU9PT0nc3RlbWxpc3QnKXsKICAgICAgYmxvY2suaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdCl7CiAgICAgICAgdmFyIHJvdyA9IGVsKCdkaXYnLCdjbHByLXN0ZW0nKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLCdjbHByLXNudW0nLCBpdC5uKycuJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChlbCgnc3BhbicsbnVsbCwgaXQucHJlKycgJykpOwogICAgICAgIHJvdy5hcHBlbmRDaGlsZChtYWtlRHJvcGRvd24oaXQub3B0aW9ucywgaXQuX3EpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J2Nsb3plJyl7CiAgICAgIHZhciBib3ggPSBlbCgnZGl2JywnY2xwci1jbG96ZScpOwogICAgICBibG9jay5ib2R5LmZvckVhY2goZnVuY3Rpb24odG9rKXsKICAgICAgICBpZih0eXBlb2YgdG9rPT09J3N0cmluZycpewogICAgICAgICAgdmFyIHNlZ3MgPSB0b2suc3BsaXQoJ1xuXG4nKTsKICAgICAgICAgIHNlZ3MuZm9yRWFjaChmdW5jdGlvbihzZWcsIGlkeCl7CiAgICAgICAgICAgIGlmKGlkeD4wKXsgYm94LmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLCc8YnI+PGJyPicpKTsgfQogICAgICAgICAgICBib3guYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc2VnKSk7CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgYm94LmFwcGVuZENoaWxkKG1ha2VEcm9wZG93bih0b2sub3B0aW9ucywgdG9rLl9xKSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgd3JhcEIuYXBwZW5kQ2hpbGQoYm94KTsKICAgIH0gZWxzZSBpZihibG9jay50eXBlPT09J21hdGNoJyl7CiAgICAgIGJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXQpewogICAgICAgIHZhciByb3cgPSBlbCgnZGl2JywnY2xwci1tYXRjaC1yb3cnKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQobWFrZURyb3Bkb3duKGJsb2NrLmxldHRlcnMsIGl0Ll9xKSk7CiAgICAgICAgcm93LmFwcGVuZENoaWxkKGVsKCdzcGFuJywnY2xwci1zbnVtJywgaXQubisnLicpKTsKICAgICAgICByb3cuYXBwZW5kQ2hpbGQoZWwoJ3NwYW4nLG51bGwsIGl0LnRleHQpKTsKICAgICAgICB3cmFwQi5hcHBlbmRDaGlsZChyb3cpOwogICAgICB9KTsKICAgIH0KICAgIHJldHVybiB3cmFwQjsKICB9CgogIGZ1bmN0aW9uIGJ1aWxkRG90cygpewogICAgZG90c0VsLmlubmVySFRNTD0nJzsKICAgIFJEQVRBLnBhcnRzLmZvckVhY2goZnVuY3Rpb24ocCwgaSl7CiAgICAgIHZhciBkID0gZWwoJ2J1dHRvbicsJ2NscHItZG90JysoaT09PWN1clBhcnQ\/JyBjbHByLWN1cic6JycpKTsKICAgICAgZC5hcHBlbmRDaGlsZChlbCgnYicsbnVsbCwoaSsxKSkpOwogICAgICBkLmFwcGVuZENoaWxkKGVsKCdzcGFuJyxudWxsLFsnQ29ycmVzcG9uZGVuY2UnLCdBcHBseSBhIERpYWdyYW0nLCdJbmZvcm1hdGlvbicsJ1ZpZXdwb2ludHMnXVtpXSkpOwogICAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oaSk7IH0pOwogICAgICBkb3RzRWwuYXBwZW5kQ2hpbGQoZCk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gZ28ocGkpeyBjdXJQYXJ0PXBpOyBidWlsZERvdHMoKTsgYnVpbGRQYXJ0KHBpKTsgY2F0RWwuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOidzbW9vdGgnLGJsb2NrOidzdGFydCd9KTsgfQoKICBmdW5jdGlvbiB1cGRhdGVTY29yZUNoaXAoKXsKICAgIHZhciBhbnMgPSBRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWwhPW51bGw7fSkubGVuZ3RoOwogICAgc2NvcmVDaGlwLnRleHRDb250ZW50ID0gY2hlY2tlZCA\/IChRLmZpbHRlcihmdW5jdGlvbihxKXtyZXR1cm4gcS5zZWw9PT1xLmtleTt9KS5sZW5ndGgrJyAvICcrUS5sZW5ndGgrJyBjb3JyZWN0JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoYW5zKycgLyAnK1EubGVuZ3RoKycgYW5zd2VyZWQnKTsKICB9CgogIGZ1bmN0aW9uIGFwcGx5TWFya3MoKXsKICAgIFEuZm9yRWFjaChmdW5jdGlvbihxKXsKICAgICAgaWYoIXEuZGRFbCkgcmV0dXJuOwogICAgICBxLmRkRWwuY2xhc3NMaXN0LnJlbW92ZSgnY2xwci1yaWdodCcsJ2NscHItd3JvbmcnKTsKICAgICAgaWYocS5zZWw9PT1xLmtleSl7IHEuZGRFbC5jbGFzc0xpc3QuYWRkKCdjbHByLXJpZ2h0Jyk7IH0KICAgICAgZWxzZSB7CiAgICAgICAgcS5kZEVsLmNsYXNzTGlzdC5hZGQoJ2NscHItd3JvbmcnKTsKICAgICAgICBpZihxLnNvbHZlZEVsKSBxLnNvbHZlZEVsLnRleHRDb250ZW50ID0gJ1x1MjcxMyAnK3Eub3B0aW9uc1txLmtleS0xXTsKICAgICAgICBpZihxLnNlbD09bnVsbCAmJiBxLnR4dEVsKXsgcS50eHRFbC50ZXh0Q29udGVudD0nKG5vIGFuc3dlciknOyBxLnR4dEVsLmNsYXNzTmFtZT0nY2xwci1kZC10eHQnOyB9CiAgICAgIH0KICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gZG9DaGVjaygpewogICAgY2hlY2tlZCA9IHRydWU7CiAgICBhcHBseU1hcmtzKCk7CiAgICB2YXIgY29ycmVjdCA9IFEuZmlsdGVyKGZ1bmN0aW9uKHEpe3JldHVybiBxLnNlbD09PXEua2V5O30pLmxlbmd0aDsKICAgIHVwZGF0ZVNjb3JlQ2hpcCgpOwogICAgY2hlY2tCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgdmFyIGJ5UGFydCA9IHt9OwogICAgUS5mb3JFYWNoKGZ1bmN0aW9uKHEpeyBieVBhcnRbcS5wYXJ0XT1ieVBhcnRbcS5wYXJ0XXx8e2M6MCx0OjB9OyBieVBhcnRbcS5wYXJ0XS50Kys7IGlmKHEuc2VsPT09cS5rZXkpYnlQYXJ0W3EucGFydF0uYysrOyB9KTsKICAgIHZhciBlc3QgPSBjbGJFc3RpbWF0ZVIoY29ycmVjdCk7CiAgICB2YXIgcGlsbHMgPSBSREFUQS5wYXJ0cy5tYXAoZnVuY3Rpb24ocCl7IHZhciBiPWJ5UGFydFtwLmlkXXx8e2M6MCx0OjB9OyByZXR1cm4gJzxzcGFuIGNsYXNzPSJjbHByLXJlcy1waWxsIj5QYXJ0ICcrcC5pZCsnOiAnK2IuYysnLycrYi50Kyc8L3NwYW4+JzsgfSkuam9pbignJyk7CiAgICByZXN1bHRzRWwuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImNscHItcmVzLWNhcmQiPicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtdG9wIj4nCiAgICAgICsgJzxkaXYgY2xhc3M9ImNscHItcmVzLXNjb3JlIj4nK2NvcnJlY3QrJzxzcGFuPi8nK1EubGVuZ3RoKyc8L3NwYW4+PC9kaXY+JwogICAgICArICc8ZGl2IGNsYXNzPSJjbHByLXJlcy1jbGIiPjxiPicrZXN0LmxldmVsKyc8L2I+PHNtYWxsPicrZXN0Lm5vdGUrJyAmbWlkZG90OyBlc3RpbWF0ZWQgUmVhZGluZyBiYW5kPC9zbWFsbD48L2Rpdj4nCiAgICAgICsgJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYnJlYWsiPicrcGlsbHMrJzwvZGl2PicKICAgICAgKyAnPGRpdiBjbGFzcz0iY2xwci1yZXMtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iY2xwci1uYXZidG4gY2xwci1naG9zdCIgaWQ9ImNscHJSZXZpZXciPlJldmlldyBhbnN3ZXJzIGluIGVhY2ggcGFydDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImNscHItbmF2YnRuIiBpZD0iY2xwclJldHJ5Ij5UcnkgYWdhaW48L2J1dHRvbj48L2Rpdj4nCiAgICAgICsgJzxwIHN0eWxlPSJtYXJnaW4tdG9wOjEycHg7Zm9udC1zaXplOjEyLjVweDtjb2xvcjp2YXIoLS1tdXRlZCkiPkVzdGltYXRlZCBiYW5kIGlzIGEgc3R1ZHkgZ3VpZGUgb25seSwgbm90IGFuIG9mZmljaWFsIENFTFBJUCBzY29yZS4gQ29ycmVjdCBhbnN3ZXJzIGFyZSBzaG93biB3aXRoIGEgZ3JlZW4gY2hlY2sgb24gZWFjaCBkcm9wLWRvd24geW91IGFuc3dlcmVkIGluY29ycmVjdGx5LjwvcD4nCiAgICAgICsgJzwvZGl2Pic7CiAgICByZXN1bHRzRWwuaGlkZGVuID0gZmFsc2U7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldHJ5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEFsbCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xwclJldmlldycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgZ28oMCk7IH0pOwogICAgcmVzdWx0c0VsLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonc3RhcnQnfSk7CiAgfQoKICBmdW5jdGlvbiByZXNldEFsbCgpewogICAgY2hlY2tlZD1mYWxzZTsgaW5pdFF1ZXN0aW9ucygpOyBjdXJQYXJ0PTA7CiAgICBjaGVja0J0bi5kaXNhYmxlZD1mYWxzZTsKICAgIHJlc3VsdHNFbC5oaWRkZW49dHJ1ZTsgcmVzdWx0c0VsLmlubmVySFRNTD0nJzsKICAgIGJ1aWxkRG90cygpOyBidWlsZFBhcnQoMCk7CiAgICB1cGRhdGVTY29yZUNoaXAoKTsKICAgIHNpbS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pOwogIH0KCiAgc3RhcnRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpewogICAgd3JhcC5xdWVyeVNlbGVjdG9yKCcuY2xwci1oZXJvJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICB0b29sYmFyLmhpZGRlbj1mYWxzZTsgc2ltLmhpZGRlbj1mYWxzZTsKICAgIGluaXRRdWVzdGlvbnMoKTsgY3VyUGFydD0wOyBjaGVja2VkPWZhbHNlOwogICAgYnVpbGREb3RzKCk7IGJ1aWxkUGFydCgwKTsgdXBkYXRlU2NvcmVDaGlwKCk7CiAgfSk7CiAgY2hlY2tCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBkb0NoZWNrKTsKICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0QWxsKTsKfSkoKTs=\"))<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>CELPIP Reading Set 13 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-6491","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6491","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=6491"}],"version-history":[{"count":1,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6491\/revisions"}],"predecessor-version":[{"id":6538,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/6491\/revisions\/6538"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=6491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}