Actual Lit runtime: two original fictional reference excerpts with independent controls

HTML for this example

Select the code and use your copy shortcut. Changes in this preview are temporary.

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Fictional print-review reference handout</title><style>*{box-sizing:border-box}body{margin:0;background:#f3f2ed;color:#29323d;font:17px/1.65 system-ui,sans-serif}main{max-width:820px;margin:auto;padding:28px}h1{line-height:1.2}button{font:inherit;padding:10px 15px;border:1px solid #67748a;background:white}pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:#e6e4dc;padding:18px}#runtime{font-size:16px}@media(max-width:450px){main{padding:18px}}</style></head><body><main><h1>Print-review reference handout</h1><p>Original fictional teaching document, not an actual museum instruction, collection or submitted correction.</p><p id="runtime">Initializing the embedded Lit runtime…</p><source-excerpt id="collection" label="Collecting a print" expanded><p>Fictional instruction: compare the print title with the pickup note before taking the labeled envelope.</p><p>If the title and note differ, leave the envelope in place and ask the coordinator which record needs correction. The actual coordinator and contact route are not supplied.</p><p>The exercise describes a reading check. No envelope has been collected and no real pickup appointment is recorded.</p></source-excerpt><source-excerpt id="correction" label="Requesting a correction"><p>Fictional instruction: name the wording to change and the replacement wording in the coordinator’s actual request channel.</p><p>Example wording: change “East desk” to “Print desk” in the draft pickup note. This is an invented text revision, not a change to a real collection location.</p><p>Keep the original note beside the proposed replacement. The actual request route and any coordinator response remain unspecified.</p></source-excerpt><button id="restore" type="button">Restore example</button><h2>Unfilled real handoff details</h2><pre>Actual source document and version: __________
Coordinator and actual request route: __________
Change requested / actual response: __________</pre><p>The two disclosure controls affect only this reading copy. They do not save a preference, send a request, alter a museum record or confirm collection.</p></main><script type="module">import {LitElement, html, css} from 'data:text/javascript;base64,LyogZXNtLnNoIC0gbGl0QDMuMy4xICovCnZhciBSPWdsb2JhbFRoaXMsVD1SLlNoYWRvd1Jvb3QmJihSLlNoYWR5Q1NTPT09dm9pZCAwfHxSLlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSx6PVN5bWJvbCgpLFE9bmV3IFdlYWtNYXAsQz1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUscyl7aWYodGhpcy5fJGNzc1Jlc3VsdCQ9ITAscyE9PXopdGhyb3cgRXJyb3IoIkNTU1Jlc3VsdCBpcyBub3QgY29uc3RydWN0YWJsZS4gVXNlIGB1bnNhZmVDU1NgIG9yIGBjc3NgIGluc3RlYWQuIik7dGhpcy5jc3NUZXh0PXQsdGhpcy50PWV9Z2V0IHN0eWxlU2hlZXQoKXtsZXQgdD10aGlzLm8sZT10aGlzLnQ7aWYoVCYmdD09PXZvaWQgMCl7bGV0IHM9ZSE9PXZvaWQgMCYmZS5sZW5ndGg9PT0xO3MmJih0PVEuZ2V0KGUpKSx0PT09dm9pZCAwJiYoKHRoaXMubz10PW5ldyBDU1NTdHlsZVNoZWV0KS5yZXBsYWNlU3luYyh0aGlzLmNzc1RleHQpLHMmJlEuc2V0KGUsdCkpfXJldHVybiB0fXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19LFg9bz0+bmV3IEModHlwZW9mIG89PSJzdHJpbmciP286bysiIix2b2lkIDAseiksJHQ9KG8sLi4udCk9PntsZXQgZT1vLmxlbmd0aD09PTE/b1swXTp0LnJlZHVjZSgocyxpLHIpPT5zKyhuPT57aWYobi5fJGNzc1Jlc3VsdCQ9PT0hMClyZXR1cm4gbi5jc3NUZXh0O2lmKHR5cGVvZiBuPT0ibnVtYmVyIilyZXR1cm4gbjt0aHJvdyBFcnJvcigiVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1bHQ6ICIrbisiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuIil9KShpKStvW3IrMV0sb1swXSk7cmV0dXJuIG5ldyBDKGUsbyx6KX0sWT0obyx0KT0+e2lmKFQpby5hZG9wdGVkU3R5bGVTaGVldHM9dC5tYXAoZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/ZTplLnN0eWxlU2hlZXQpO2Vsc2UgZm9yKGxldCBlIG9mIHQpe2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksaT1SLmxpdE5vbmNlO2khPT12b2lkIDAmJnMuc2V0QXR0cmlidXRlKCJub25jZSIsaSkscy50ZXh0Q29udGVudD1lLmNzc1RleHQsby5hcHBlbmRDaGlsZChzKX19LEk9VD9vPT5vOm89Pm8gaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0Pyh0PT57bGV0IGU9IiI7Zm9yKGxldCBzIG9mIHQuY3NzUnVsZXMpZSs9cy5jc3NUZXh0O3JldHVybiBYKGUpfSkobyk6bzt2YXJ7aXM6X3QsZGVmaW5lUHJvcGVydHk6ZnQsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOkF0LGdldE93blByb3BlcnR5TmFtZXM6bXQsZ2V0T3duUHJvcGVydHlTeW1ib2xzOmd0LGdldFByb3RvdHlwZU9mOnl0fT1PYmplY3QsTT1nbG9iYWxUaGlzLHR0PU0udHJ1c3RlZFR5cGVzLHZ0PXR0P3R0LmVtcHR5U2NyaXB0OiIiLFN0PU0ucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LHc9KG8sdCk9Pm8sVj17dG9BdHRyaWJ1dGUobyx0KXtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOm89bz92dDpudWxsO2JyZWFrO2Nhc2UgT2JqZWN0OmNhc2UgQXJyYXk6bz1vPT1udWxsP286SlNPTi5zdHJpbmdpZnkobyl9cmV0dXJuIG99LGZyb21BdHRyaWJ1dGUobyx0KXtsZXQgZT1vO3N3aXRjaCh0KXtjYXNlIEJvb2xlYW46ZT1vIT09bnVsbDticmVhaztjYXNlIE51bWJlcjplPW89PT1udWxsP251bGw6TnVtYmVyKG8pO2JyZWFrO2Nhc2UgT2JqZWN0OmNhc2UgQXJyYXk6dHJ5e2U9SlNPTi5wYXJzZShvKX1jYXRjaHtlPW51bGx9fXJldHVybiBlfX0sc3Q9KG8sdCk9PiFfdChvLHQpLGV0PXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOlYscmVmbGVjdDohMSx1c2VEZWZhdWx0OiExLGhhc0NoYW5nZWQ6c3R9O1N5bWJvbC5tZXRhZGF0YT8/PVN5bWJvbCgibWV0YWRhdGEiKSxNLmxpdFByb3BlcnR5TWV0YWRhdGE/Pz1uZXcgV2Vha01hcDt2YXIgJD1jbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBhZGRJbml0aWFsaXplcih0KXt0aGlzLl8kRWkoKSwodGhpcy5sPz89W10pLnB1c2godCl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5maW5hbGl6ZSgpLHRoaXMuXyRFaCYmWy4uLnRoaXMuXyRFaC5rZXlzKCldfXN0YXRpYyBjcmVhdGVQcm9wZXJ0eSh0LGU9ZXQpe2lmKGUuc3RhdGUmJihlLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkodCkmJigoZT1PYmplY3QuY3JlYXRlKGUpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldCh0LGUpLCFlLm5vQWNjZXNzb3Ipe2xldCBzPVN5bWJvbCgpLGk9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IodCxzLGUpO2khPT12b2lkIDAmJmZ0KHRoaXMucHJvdG90eXBlLHQsaSl9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IodCxlLHMpe2xldHtnZXQ6aSxzZXQ6cn09QXQodGhpcy5wcm90b3R5cGUsdCk/P3tnZXQoKXtyZXR1cm4gdGhpc1tlXX0sc2V0KG4pe3RoaXNbZV09bn19O3JldHVybntnZXQ6aSxzZXQobil7bGV0IGw9aT8uY2FsbCh0aGlzKTtyPy5jYWxsKHRoaXMsbiksdGhpcy5yZXF1ZXN0VXBkYXRlKHQsbCxzKX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fXN0YXRpYyBnZXRQcm9wZXJ0eU9wdGlvbnModCl7cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRpZXMuZ2V0KHQpPz9ldH1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkodygiZWxlbWVudFByb3BlcnRpZXMiKSkpcmV0dXJuO2xldCB0PXl0KHRoaXMpO3QuZmluYWxpemUoKSx0LmwhPT12b2lkIDAmJih0aGlzLmw9Wy4uLnQubF0pLHRoaXMuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcCh0LmVsZW1lbnRQcm9wZXJ0aWVzKX1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KHcoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eSh3KCJwcm9wZXJ0aWVzIikpKXtsZXQgZT10aGlzLnByb3BlcnRpZXMscz1bLi4ubXQoZSksLi4uZ3QoZSldO2ZvcihsZXQgaSBvZiBzKXRoaXMuY3JlYXRlUHJvcGVydHkoaSxlW2ldKX1sZXQgdD10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYodCE9PW51bGwpe2xldCBlPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHQpO2lmKGUhPT12b2lkIDApZm9yKGxldFtzLGldb2YgZSl0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChzLGkpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbZSxzXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBpPXRoaXMuXyRFdShlLHMpO2khPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQoaSxlKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKHQpe2xldCBlPVtdO2lmKEFycmF5LmlzQXJyYXkodCkpe2xldCBzPW5ldyBTZXQodC5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IGkgb2YgcyllLnVuc2hpZnQoSShpKSl9ZWxzZSB0IT09dm9pZCAwJiZlLnB1c2goSSh0KSk7cmV0dXJuIGV9c3RhdGljIF8kRXUodCxlKXtsZXQgcz1lLmF0dHJpYnV0ZTtyZXR1cm4gcz09PSExP3ZvaWQgMDp0eXBlb2Ygcz09InN0cmluZyI/czp0eXBlb2YgdD09InN0cmluZyI/dC50b0xvd2VyQ2FzZSgpOnZvaWQgMH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVwPXZvaWQgMCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMSx0aGlzLmhhc1VwZGF0ZWQ9ITEsdGhpcy5fJEVtPW51bGwsdGhpcy5fJEV2KCl9XyRFdigpe3RoaXMuXyRFUz1uZXcgUHJvbWlzZSh0PT50aGlzLmVuYWJsZVVwZGF0aW5nPXQpLHRoaXMuXyRBTD1uZXcgTWFwLHRoaXMuXyRFXygpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY29uc3RydWN0b3IubD8uZm9yRWFjaCh0PT50KHRoaXMpKX1hZGRDb250cm9sbGVyKHQpeyh0aGlzLl8kRU8/Pz1uZXcgU2V0KS5hZGQodCksdGhpcy5yZW5kZXJSb290IT09dm9pZCAwJiZ0aGlzLmlzQ29ubmVjdGVkJiZ0Lmhvc3RDb25uZWN0ZWQ/LigpfXJlbW92ZUNvbnRyb2xsZXIodCl7dGhpcy5fJEVPPy5kZWxldGUodCl9XyRFXygpe2xldCB0PW5ldyBNYXAsZT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2ZvcihsZXQgcyBvZiBlLmtleXMoKSl0aGlzLmhhc093blByb3BlcnR5KHMpJiYodC5zZXQocyx0aGlzW3NdKSxkZWxldGUgdGhpc1tzXSk7dC5zaXplPjAmJih0aGlzLl8kRXA9dCl9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCB0PXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuIFkodCx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLHR9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2godD0+dC5ob3N0Q29ubmVjdGVkPy4oKSl9ZW5hYmxlVXBkYXRpbmcodCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdERpc2Nvbm5lY3RlZD8uKCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LGUscyl7dGhpcy5fJEFLKHQscyl9XyRFVCh0LGUpe2xldCBzPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KHQpLGk9dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KHQscyk7aWYoaSE9PXZvaWQgMCYmcy5yZWZsZWN0PT09ITApe2xldCByPShzLmNvbnZlcnRlcj8udG9BdHRyaWJ1dGUhPT12b2lkIDA/cy5jb252ZXJ0ZXI6VikudG9BdHRyaWJ1dGUoZSxzLnR5cGUpO3RoaXMuXyRFbT10LHI9PW51bGw/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoaSk6dGhpcy5zZXRBdHRyaWJ1dGUoaSxyKSx0aGlzLl8kRW09bnVsbH19XyRBSyh0LGUpe2xldCBzPXRoaXMuY29uc3RydWN0b3IsaT1zLl8kRWguZ2V0KHQpO2lmKGkhPT12b2lkIDAmJnRoaXMuXyRFbSE9PWkpe2xldCByPXMuZ2V0UHJvcGVydHlPcHRpb25zKGkpLG49dHlwZW9mIHIuY29udmVydGVyPT0iZnVuY3Rpb24iP3tmcm9tQXR0cmlidXRlOnIuY29udmVydGVyfTpyLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZSE9PXZvaWQgMD9yLmNvbnZlcnRlcjpWO3RoaXMuXyRFbT1pO2xldCBsPW4uZnJvbUF0dHJpYnV0ZShlLHIudHlwZSk7dGhpc1tpXT1sPz90aGlzLl8kRWo/LmdldChpKT8/bCx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZSh0LGUscyl7aWYodCE9PXZvaWQgMCl7bGV0IGk9dGhpcy5jb25zdHJ1Y3RvcixyPXRoaXNbdF07aWYocz8/PWkuZ2V0UHJvcGVydHlPcHRpb25zKHQpLCEoKHMuaGFzQ2hhbmdlZD8/c3QpKHIsZSl8fHMudXNlRGVmYXVsdCYmcy5yZWZsZWN0JiZyPT09dGhpcy5fJEVqPy5nZXQodCkmJiF0aGlzLmhhc0F0dHJpYnV0ZShpLl8kRXUodCxzKSkpKXJldHVybjt0aGlzLkModCxlLHMpfXRoaXMuaXNVcGRhdGVQZW5kaW5nPT09ITEmJih0aGlzLl8kRVM9dGhpcy5fJEVQKCkpfUModCxlLHt1c2VEZWZhdWx0OnMscmVmbGVjdDppLHdyYXBwZWQ6cn0sbil7cyYmISh0aGlzLl8kRWo/Pz1uZXcgTWFwKS5oYXModCkmJih0aGlzLl8kRWouc2V0KHQsbj8/ZT8/dGhpc1t0XSksciE9PSEwfHxuIT09dm9pZCAwKXx8KHRoaXMuXyRBTC5oYXModCl8fCh0aGlzLmhhc1VwZGF0ZWR8fHN8fChlPXZvaWQgMCksdGhpcy5fJEFMLnNldCh0LGUpKSxpPT09ITAmJnRoaXMuXyRFbSE9PXQmJih0aGlzLl8kRXE/Pz1uZXcgU2V0KS5hZGQodCkpfWFzeW5jIF8kRVAoKXt0aGlzLmlzVXBkYXRlUGVuZGluZz0hMDt0cnl7YXdhaXQgdGhpcy5fJEVTfWNhdGNoKGUpe1Byb21pc2UucmVqZWN0KGUpfWxldCB0PXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gdCE9bnVsbCYmYXdhaXQgdCwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IobGV0W2kscl1vZiB0aGlzLl8kRXApdGhpc1tpXT1yO3RoaXMuXyRFcD12b2lkIDB9bGV0IHM9dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcztpZihzLnNpemU+MClmb3IobGV0W2kscl1vZiBzKXtsZXR7d3JhcHBlZDpufT1yLGw9dGhpc1tpXTtuIT09ITB8fHRoaXMuXyRBTC5oYXMoaSl8fGw9PT12b2lkIDB8fHRoaXMuQyhpLHZvaWQgMCxyLGwpfX1sZXQgdD0hMSxlPXRoaXMuXyRBTDt0cnl7dD10aGlzLnNob3VsZFVwZGF0ZShlKSx0Pyh0aGlzLndpbGxVcGRhdGUoZSksdGhpcy5fJEVPPy5mb3JFYWNoKHM9PnMuaG9zdFVwZGF0ZT8uKCkpLHRoaXMudXBkYXRlKGUpKTp0aGlzLl8kRU0oKX1jYXRjaChzKXt0aHJvdyB0PSExLHRoaXMuXyRFTSgpLHN9dCYmdGhpcy5fJEFFKGUpfXdpbGxVcGRhdGUodCl7fV8kQUUodCl7dGhpcy5fJEVPPy5mb3JFYWNoKGU9PmUuaG9zdFVwZGF0ZWQ/LigpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQodCkpLHRoaXMudXBkYXRlZCh0KX1fJEVNKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKHQpe3JldHVybiEwfXVwZGF0ZSh0KXt0aGlzLl8kRXEmJj10aGlzLl8kRXEuZm9yRWFjaChlPT50aGlzLl8kRVQoZSx0aGlzW2VdKSksdGhpcy5fJEVNKCl9dXBkYXRlZCh0KXt9Zmlyc3RVcGRhdGVkKHQpe319OyQuZWxlbWVudFN0eWxlcz1bXSwkLnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn0sJFt3KCJlbGVtZW50UHJvcGVydGllcyIpXT1uZXcgTWFwLCRbdygiZmluYWxpemVkIildPW5ldyBNYXAsU3Q/Lih7UmVhY3RpdmVFbGVtZW50OiR9KSwoTS5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjEuMSIpO3ZhciBxPWdsb2JhbFRoaXMsTj1xLnRydXN0ZWRUeXBlcyxpdD1OP04uY3JlYXRlUG9saWN5KCJsaXQtaHRtbCIse2NyZWF0ZUhUTUw6bz0+b30pOnZvaWQgMCxLPSIkbGl0JCIsXz1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLFo9Ij8iK18sRXQ9YDwke1p9PmAsZz1kb2N1bWVudCxQPSgpPT5nLmNyZWF0ZUNvbW1lbnQoIiIpLFU9bz0+bz09PW51bGx8fHR5cGVvZiBvIT0ib2JqZWN0IiYmdHlwZW9mIG8hPSJmdW5jdGlvbiIsRj1BcnJheS5pc0FycmF5LGx0PW89PkYobyl8fHR5cGVvZiBvPy5bU3ltYm9sLml0ZXJhdG9yXT09ImZ1bmN0aW9uIixXPWBbIAkKXGZccl1gLHg9LzwoPzooIS0tfFwvW15hLXpBLVpdKXwoXC8/W2EtekEtWl1bXj5cc10qKXwoXC8/JCkpL2csb3Q9Ly0tPi9nLHJ0PS8+L2csQT1SZWdFeHAoYD58JHtXfSg/OihbXlxccyInPj0vXSspKCR7V30qPSR7V30qKD86W14gCQpcZlxyIidcYDw+PV18KCJ8Jyl8KSl8JClgLCJnIiksbnQ9LycvZyxodD0vIi9nLGN0PS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxKPW89Pih0LC4uLmUpPT4oe18kbGl0VHlwZSQ6byxzdHJpbmdzOnQsdmFsdWVzOmV9KSxPdD1KKDEpLEh0PUooMiksUnQ9SigzKSx5PVN5bWJvbC5mb3IoImxpdC1ub0NoYW5nZSIpLHA9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSxhdD1uZXcgV2Vha01hcCxtPWcuY3JlYXRlVHJlZVdhbGtlcihnLDEyOSk7ZnVuY3Rpb24gcHQobyx0KXtpZighRihvKXx8IW8uaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gaXQhPT12b2lkIDA/aXQuY3JlYXRlSFRNTCh0KTp0fXZhciBkdD0obyx0KT0+e2xldCBlPW8ubGVuZ3RoLTEscz1bXSxpLHI9dD09PTI/Ijxzdmc+Ijp0PT09Mz8iPG1hdGg+IjoiIixuPXg7Zm9yKGxldCBsPTA7bDxlO2wrKyl7bGV0IGg9b1tsXSxjLGQsYT0tMSx1PTA7Zm9yKDt1PGgubGVuZ3RoJiYobi5sYXN0SW5kZXg9dSxkPW4uZXhlYyhoKSxkIT09bnVsbCk7KXU9bi5sYXN0SW5kZXgsbj09PXg/ZFsxXT09PSIhLS0iP249b3Q6ZFsxXSE9PXZvaWQgMD9uPXJ0OmRbMl0hPT12b2lkIDA/KGN0LnRlc3QoZFsyXSkmJihpPVJlZ0V4cCgiPC8iK2RbMl0sImciKSksbj1BKTpkWzNdIT09dm9pZCAwJiYobj1BKTpuPT09QT9kWzBdPT09Ij4iPyhuPWk/P3gsYT0tMSk6ZFsxXT09PXZvaWQgMD9hPS0yOihhPW4ubGFzdEluZGV4LWRbMl0ubGVuZ3RoLGM9ZFsxXSxuPWRbM109PT12b2lkIDA/QTpkWzNdPT09JyInP2h0Om50KTpuPT09aHR8fG49PT1udD9uPUE6bj09PW90fHxuPT09cnQ/bj14OihuPUEsaT12b2lkIDApO2xldCBmPW49PT1BJiZvW2wrMV0uc3RhcnRzV2l0aCgiLz4iKT8iICI6IiI7cis9bj09PXg/aCtFdDphPj0wPyhzLnB1c2goYyksaC5zbGljZSgwLGEpK0sraC5zbGljZShhKStfK2YpOmgrXysoYT09PS0yP2w6Zil9cmV0dXJuW3B0KG8scisob1tlXXx8Ijw/PiIpKyh0PT09Mj8iPC9zdmc+Ijp0PT09Mz8iPC9tYXRoPiI6IiIpKSxzXX0sTz1jbGFzcyBve2NvbnN0cnVjdG9yKHtzdHJpbmdzOnQsXyRsaXRUeXBlJDplfSxzKXtsZXQgaTt0aGlzLnBhcnRzPVtdO2xldCByPTAsbj0wLGw9dC5sZW5ndGgtMSxoPXRoaXMucGFydHMsW2MsZF09ZHQodCxlKTtpZih0aGlzLmVsPW8uY3JlYXRlRWxlbWVudChjLHMpLG0uY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LGU9PT0yfHxlPT09Myl7bGV0IGE9dGhpcy5lbC5jb250ZW50LmZpcnN0Q2hpbGQ7YS5yZXBsYWNlV2l0aCguLi5hLmNoaWxkTm9kZXMpfWZvcig7KGk9bS5uZXh0Tm9kZSgpKSE9PW51bGwmJmgubGVuZ3RoPGw7KXtpZihpLm5vZGVUeXBlPT09MSl7aWYoaS5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBhIG9mIGkuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihhLmVuZHNXaXRoKEspKXtsZXQgdT1kW24rK10sZj1pLmdldEF0dHJpYnV0ZShhKS5zcGxpdChfKSxIPS8oWy4/QF0pPyguKikvLmV4ZWModSk7aC5wdXNoKHt0eXBlOjEsaW5kZXg6cixuYW1lOkhbMl0sc3RyaW5nczpmLGN0b3I6SFsxXT09PSIuIj9rOkhbMV09PT0iPyI/RDpIWzFdPT09IkAiP2o6U30pLGkucmVtb3ZlQXR0cmlidXRlKGEpfWVsc2UgYS5zdGFydHNXaXRoKF8pJiYoaC5wdXNoKHt0eXBlOjYsaW5kZXg6cn0pLGkucmVtb3ZlQXR0cmlidXRlKGEpKTtpZihjdC50ZXN0KGkudGFnTmFtZSkpe2xldCBhPWkudGV4dENvbnRlbnQuc3BsaXQoXyksdT1hLmxlbmd0aC0xO2lmKHU+MCl7aS50ZXh0Q29udGVudD1OP04uZW1wdHlTY3JpcHQ6IiI7Zm9yKGxldCBmPTA7Zjx1O2YrKylpLmFwcGVuZChhW2ZdLFAoKSksbS5uZXh0Tm9kZSgpLGgucHVzaCh7dHlwZToyLGluZGV4Oisrcn0pO2kuYXBwZW5kKGFbdV0sUCgpKX19fWVsc2UgaWYoaS5ub2RlVHlwZT09PTgpaWYoaS5kYXRhPT09WiloLnB1c2goe3R5cGU6MixpbmRleDpyfSk7ZWxzZXtsZXQgYT0tMTtmb3IoOyhhPWkuZGF0YS5pbmRleE9mKF8sYSsxKSkhPT0tMTspaC5wdXNoKHt0eXBlOjcsaW5kZXg6cn0pLGErPV8ubGVuZ3RoLTF9cisrfX1zdGF0aWMgY3JlYXRlRWxlbWVudCh0LGUpe2xldCBzPWcuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gcy5pbm5lckhUTUw9dCxzfX07ZnVuY3Rpb24gdihvLHQsZT1vLHMpe2lmKHQ9PT15KXJldHVybiB0O2xldCBpPXMhPT12b2lkIDA/ZS5fJENvPy5bc106ZS5fJENsLHI9VSh0KT92b2lkIDA6dC5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGk/LmNvbnN0cnVjdG9yIT09ciYmKGk/Ll8kQU8/LighMSkscj09PXZvaWQgMD9pPXZvaWQgMDooaT1uZXcgcihvKSxpLl8kQVQobyxlLHMpKSxzIT09dm9pZCAwPyhlLl8kQ28/Pz1bXSlbc109aTplLl8kQ2w9aSksaSE9PXZvaWQgMCYmKHQ9dihvLGkuXyRBUyhvLHQudmFsdWVzKSxpLHMpKSx0fXZhciBMPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy5fJEFWPVtdLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFEPXQsdGhpcy5fJEFNPWV9Z2V0IHBhcmVudE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFNLnBhcmVudE5vZGV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9dSh0KXtsZXR7ZWw6e2NvbnRlbnQ6ZX0scGFydHM6c309dGhpcy5fJEFELGk9KHQ/LmNyZWF0aW9uU2NvcGU/P2cpLmltcG9ydE5vZGUoZSwhMCk7bS5jdXJyZW50Tm9kZT1pO2xldCByPW0ubmV4dE5vZGUoKSxuPTAsbD0wLGg9c1swXTtmb3IoO2ghPT12b2lkIDA7KXtpZihuPT09aC5pbmRleCl7bGV0IGM7aC50eXBlPT09Mj9jPW5ldyBFKHIsci5uZXh0U2libGluZyx0aGlzLHQpOmgudHlwZT09PTE/Yz1uZXcgaC5jdG9yKHIsaC5uYW1lLGguc3RyaW5ncyx0aGlzLHQpOmgudHlwZT09PTYmJihjPW5ldyBCKHIsdGhpcyx0KSksdGhpcy5fJEFWLnB1c2goYyksaD1zWysrbF19biE9PWg/LmluZGV4JiYocj1tLm5leHROb2RlKCksbisrKX1yZXR1cm4gbS5jdXJyZW50Tm9kZT1nLGl9cCh0KXtsZXQgZT0wO2ZvcihsZXQgcyBvZiB0aGlzLl8kQVYpcyE9PXZvaWQgMCYmKHMuc3RyaW5ncyE9PXZvaWQgMD8ocy5fJEFJKHQscyxlKSxlKz1zLnN0cmluZ3MubGVuZ3RoLTIpOnMuXyRBSSh0W2VdKSksZSsrfX0sRT1jbGFzcyBve2dldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTT8uXyRBVT8/dGhpcy5fJEN2fWNvbnN0cnVjdG9yKHQsZSxzLGkpe3RoaXMudHlwZT0yLHRoaXMuXyRBSD1wLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPXQsdGhpcy5fJEFCPWUsdGhpcy5fJEFNPXMsdGhpcy5vcHRpb25zPWksdGhpcy5fJEN2PWk/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCB0PXRoaXMuXyRBQS5wYXJlbnROb2RlLGU9dGhpcy5fJEFNO3JldHVybiBlIT09dm9pZCAwJiZ0Py5ub2RlVHlwZT09PTExJiYodD1lLnBhcmVudE5vZGUpLHR9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkodCxlPXRoaXMpe3Q9dih0aGlzLHQsZSksVSh0KT90PT09cHx8dD09bnVsbHx8dD09PSIiPyh0aGlzLl8kQUghPT1wJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9cCk6dCE9PXRoaXMuXyRBSCYmdCE9PXkmJnRoaXMuXyh0KTp0Ll8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKHQpOnQubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKHQpOmx0KHQpP3RoaXMuayh0KTp0aGlzLl8odCl9Tyh0KXtyZXR1cm4gdGhpcy5fJEFBLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fJEFCKX1UKHQpe3RoaXMuXyRBSCE9PXQmJih0aGlzLl8kQVIoKSx0aGlzLl8kQUg9dGhpcy5PKHQpKX1fKHQpe3RoaXMuXyRBSCE9PXAmJlUodGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT10OnRoaXMuVChnLmNyZWF0ZVRleHROb2RlKHQpKSx0aGlzLl8kQUg9dH0kKHQpe2xldHt2YWx1ZXM6ZSxfJGxpdFR5cGUkOnN9PXQsaT10eXBlb2Ygcz09Im51bWJlciI/dGhpcy5fJEFDKHQpOihzLmVsPT09dm9pZCAwJiYocy5lbD1PLmNyZWF0ZUVsZW1lbnQocHQocy5oLHMuaFswXSksdGhpcy5vcHRpb25zKSkscyk7aWYodGhpcy5fJEFIPy5fJEFEPT09aSl0aGlzLl8kQUgucChlKTtlbHNle2xldCByPW5ldyBMKGksdGhpcyksbj1yLnUodGhpcy5vcHRpb25zKTtyLnAoZSksdGhpcy5UKG4pLHRoaXMuXyRBSD1yfX1fJEFDKHQpe2xldCBlPWF0LmdldCh0LnN0cmluZ3MpO3JldHVybiBlPT09dm9pZCAwJiZhdC5zZXQodC5zdHJpbmdzLGU9bmV3IE8odCkpLGV9ayh0KXtGKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCBlPXRoaXMuXyRBSCxzLGk9MDtmb3IobGV0IHIgb2YgdClpPT09ZS5sZW5ndGg/ZS5wdXNoKHM9bmV3IG8odGhpcy5PKFAoKSksdGhpcy5PKFAoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTpzPWVbaV0scy5fJEFJKHIpLGkrKztpPGUubGVuZ3RoJiYodGhpcy5fJEFSKHMmJnMuXyRBQi5uZXh0U2libGluZyxpKSxlLmxlbmd0aD1pKX1fJEFSKHQ9dGhpcy5fJEFBLm5leHRTaWJsaW5nLGUpe2Zvcih0aGlzLl8kQVA/LighMSwhMCxlKTt0IT09dGhpcy5fJEFCOyl7bGV0IHM9dC5uZXh0U2libGluZzt0LnJlbW92ZSgpLHQ9c319c2V0Q29ubmVjdGVkKHQpe3RoaXMuXyRBTT09PXZvaWQgMCYmKHRoaXMuXyRDdj10LHRoaXMuXyRBUD8uKHQpKX19LFM9Y2xhc3N7Z2V0IHRhZ05hbWUoKXtyZXR1cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9Y29uc3RydWN0b3IodCxlLHMsaSxyKXt0aGlzLnR5cGU9MSx0aGlzLl8kQUg9cCx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD10LHRoaXMubmFtZT1lLHRoaXMuXyRBTT1pLHRoaXMub3B0aW9ucz1yLHMubGVuZ3RoPjJ8fHNbMF0hPT0iInx8c1sxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkocy5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9cyk6dGhpcy5fJEFIPXB9XyRBSSh0LGU9dGhpcyxzLGkpe2xldCByPXRoaXMuc3RyaW5ncyxuPSExO2lmKHI9PT12b2lkIDApdD12KHRoaXMsdCxlLDApLG49IVUodCl8fHQhPT10aGlzLl8kQUgmJnQhPT15LG4mJih0aGlzLl8kQUg9dCk7ZWxzZXtsZXQgbD10LGgsYztmb3IodD1yWzBdLGg9MDtoPHIubGVuZ3RoLTE7aCsrKWM9dih0aGlzLGxbcytoXSxlLGgpLGM9PT15JiYoYz10aGlzLl8kQUhbaF0pLG58fD0hVShjKXx8YyE9PXRoaXMuXyRBSFtoXSxjPT09cD90PXA6dCE9PXAmJih0Kz0oYz8/IiIpK3JbaCsxXSksdGhpcy5fJEFIW2hdPWN9biYmIWkmJnRoaXMuaih0KX1qKHQpe3Q9PT1wP3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKTp0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSx0Pz8iIil9fSxrPWNsYXNzIGV4dGVuZHMgU3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTN9aih0KXt0aGlzLmVsZW1lbnRbdGhpcy5uYW1lXT10PT09cD92b2lkIDA6dH19LEQ9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKHQpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhdCYmdCE9PXApfX0saj1jbGFzcyBleHRlbmRzIFN7Y29uc3RydWN0b3IodCxlLHMsaSxyKXtzdXBlcih0LGUscyxpLHIpLHRoaXMudHlwZT01fV8kQUkodCxlPXRoaXMpe2lmKCh0PXYodGhpcyx0LGUsMCk/P3ApPT09eSlyZXR1cm47bGV0IHM9dGhpcy5fJEFILGk9dD09PXAmJnMhPT1wfHx0LmNhcHR1cmUhPT1zLmNhcHR1cmV8fHQub25jZSE9PXMub25jZXx8dC5wYXNzaXZlIT09cy5wYXNzaXZlLHI9dCE9PXAmJihzPT09cHx8aSk7aSYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMscyksciYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsdCksdGhpcy5fJEFIPXR9aGFuZGxlRXZlbnQodCl7dHlwZW9mIHRoaXMuXyRBSD09ImZ1bmN0aW9uIj90aGlzLl8kQUguY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3Q/P3RoaXMuZWxlbWVudCx0KTp0aGlzLl8kQUguaGFuZGxlRXZlbnQodCl9fSxCPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxzKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1lLHRoaXMub3B0aW9ucz1zfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkodCl7dih0aGlzLHQpfX0sVHQ9e006SyxQOl8sQTpaLEM6MSxMOmR0LFI6TCxEOmx0LFY6dixJOkUsSDpTLE46RCxVOmosQjprLEY6Qn0sYnQ9cS5saXRIdG1sUG9seWZpbGxTdXBwb3J0O2J0Py4oTyxFKSwocS5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjEiKTt2YXIgdXQ9KG8sdCxlKT0+e2xldCBzPWU/LnJlbmRlckJlZm9yZT8/dCxpPXMuXyRsaXRQYXJ0JDtpZihpPT09dm9pZCAwKXtsZXQgcj1lPy5yZW5kZXJCZWZvcmU/P251bGw7cy5fJGxpdFBhcnQkPWk9bmV3IEUodC5pbnNlcnRCZWZvcmUoUCgpLHIpLHIsdm9pZCAwLGU/P3t9KX1yZXR1cm4gaS5fJEFJKG8pLGl9O3ZhciBHPWdsb2JhbFRoaXMsYj1jbGFzcyBleHRlbmRzICR7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgdD1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz10LmZpcnN0Q2hpbGQsdH11cGRhdGUodCl7bGV0IGU9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKHQpLHRoaXMuXyREbz11dChlLHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4geX19O2IuXyRsaXRFbGVtZW50JD0hMCxiLmZpbmFsaXplZD0hMCxHLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OmJ9KTt2YXIgQ3Q9Ry5saXRFbGVtZW50UG9seWZpbGxTdXBwb3J0O0N0Py4oe0xpdEVsZW1lbnQ6Yn0pO3ZhciBrdD17XyRBSzoobyx0LGUpPT57by5fJEFLKHQsZSl9LF8kQUw6bz0+by5fJEFMfTsoRy5saXRFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiNC4yLjEiKTt2YXIgenQ9ITE7ZXhwb3J0e0MgYXMgQ1NTUmVzdWx0LGIgYXMgTGl0RWxlbWVudCwkIGFzIFJlYWN0aXZlRWxlbWVudCxrdCBhcyBfJExFLFR0IGFzIF8kTEgsWSBhcyBhZG9wdFN0eWxlcywkdCBhcyBjc3MsViBhcyBkZWZhdWx0Q29udmVydGVyLEkgYXMgZ2V0Q29tcGF0aWJsZVN0eWxlLE90IGFzIGh0bWwsenQgYXMgaXNTZXJ2ZXIsUnQgYXMgbWF0aG1sLHkgYXMgbm9DaGFuZ2Usc3QgYXMgbm90RXF1YWwscCBhcyBub3RoaW5nLHV0IGFzIHJlbmRlcixUIGFzIHN1cHBvcnRzQWRvcHRpbmdTdHlsZVNoZWV0cyxIdCBhcyBzdmcsWCBhcyB1bnNhZmVDU1N9OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2Nzcy10YWcuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3JlYWN0aXZlLWVsZW1lbnQuanM6CmxpdC1odG1sL2xpdC1odG1sLmpzOgpsaXQtZWxlbWVudC9saXQtZWxlbWVudC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpsaXQtaHRtbC9pcy1zZXJ2ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMiBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoqLwovLyMgc291cmNlTWFwcGluZ1VSTD1saXQuYnVuZGxlLm1qcy5tYXA=';

class SourceExcerpt extends LitElement {
  static properties = {
    label: {type: String},
    expanded: {type: Boolean, reflect: true}
  };
  static styles = css`
    :host {display:block;background:#fff;border-left:5px solid #5c5f83;padding:22px;margin:22px 0;color:#29323d;font:inherit}
    h2 {font-size:1.35rem;line-height:1.3;margin:0 0 14px}
    button {font:inherit;border:1px solid #67748a;background:#f3f4f8;padding:10px 14px;cursor:pointer}
    button:focus-visible {outline:3px solid #1469a6;outline-offset:3px}
    div[hidden] {display:none}
    ::slotted(p) {margin:18px 0;overflow-wrap:anywhere}
    @media(max-width:450px){:host{padding:16px}}
  `;
  constructor() {
    super();
    this.label = 'Source excerpt';
    this.expanded = false;
  }
  render() {
    return html`<section>
      <h2>${this.label}</h2>
      <button type="button" aria-expanded=${String(this.expanded)} aria-controls="excerpt"
        @click=${() => {this.expanded = !this.expanded;}}>
        ${this.expanded ? 'Hide excerpt' : 'Read excerpt'}
      </button>
      <div id="excerpt" ?hidden=${!this.expanded}><slot></slot></div>
    </section>`;
  }
}
customElements.define('source-excerpt', SourceExcerpt);
const first = document.querySelector('#collection');
const second = document.querySelector('#correction');
document.querySelector('#restore').addEventListener('click', async () => {
  first.label = 'Collecting a print';
  second.label = 'Requesting a correction';
  first.expanded = true;
  second.expanded = false;
  await Promise.all([first.updateComplete, second.updateComplete]);
});
await Promise.all([first.updateComplete, second.updateComplete]);
document.querySelector('#runtime').textContent = 'Lit runtime loaded. Disclosure changes stay in this open page.';
window.exampleReady = true;
</script></body></html>