<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>97974</bug_id>
          
          <creation_ts>2012-09-29 21:02:30 -0700</creation_ts>
          <short_desc>[V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)</short_desc>
          <delta_ts>2012-10-23 11:14:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100033</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>caseq</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>731268</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-29 21:02:30 -0700</bug_when>
    <thetext>[V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-traverse gets 3% faster)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731269</commentid>
    <comment_count>1</comment_count>
      <attachid>166376</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-29 21:04:15 -0700</bug_when>
    <thetext>Created attachment 166376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731273</commentid>
    <comment_count>2</comment_count>
      <attachid>166376</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-09-29 21:49:48 -0700</bug_when>
    <thetext>Comment on attachment 166376
Patch

u so purple</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731276</commentid>
    <comment_count>3</comment_count>
      <attachid>166376</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-29 22:04:38 -0700</bug_when>
    <thetext>Comment on attachment 166376
Patch

Yeah, I need to merge to HEAD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731277</commentid>
    <comment_count>4</comment_count>
      <attachid>166378</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-29 22:07:20 -0700</bug_when>
    <thetext>Created attachment 166378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731279</commentid>
    <comment_count>5</comment_count>
      <attachid>166378</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-29 23:13:07 -0700</bug_when>
    <thetext>Comment on attachment 166378
Patch

Looks like I made everything crash.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731300</commentid>
    <comment_count>6</comment_count>
      <attachid>166386</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-30 08:54:31 -0700</bug_when>
    <thetext>Created attachment 166386
Work in progress---does not compile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731919</commentid>
    <comment_count>7</comment_count>
      <attachid>166528</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 12:59:38 -0700</bug_when>
    <thetext>Created attachment 166528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732079</commentid>
    <comment_count>8</comment_count>
      <attachid>166528</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-01 15:57:14 -0700</bug_when>
    <thetext>Comment on attachment 166528
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166528&amp;action=review

&gt; Source/WebCore/bindings/v8/IntrusiveDOMWrapperMap.h:95
&gt; +        // OOPS! Figure out what to do here.
&gt; +        // MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Binding);
&gt; +        // info.addMember(m_table);

Other than this OOPS it looks fine. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732095</commentid>
    <comment_count>9</comment_count>
      <attachid>166566</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 16:14:36 -0700</bug_when>
    <thetext>Created attachment 166566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732096</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 16:14:48 -0700</bug_when>
    <thetext>Now with less &quot;oops&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732126</commentid>
    <comment_count>11</comment_count>
      <attachid>166566</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-01 16:49:49 -0700</bug_when>
    <thetext>Comment on attachment 166566
Patch

OK. Great improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732147</commentid>
    <comment_count>12</comment_count>
      <attachid>166566</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 17:15:53 -0700</bug_when>
    <thetext>Comment on attachment 166566
Patch

Clearing flags on attachment: 166566

Committed r130103: &lt;http://trac.webkit.org/changeset/130103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732148</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-01 17:15:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732279</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 22:46:45 -0700</bug_when>
    <thetext>This change is clearly visible on the perf charts:

http://webkit-perf.appspot.com/graph.html#tests=[[40020,2001,2389050],[40020,2001,3001],[40020,2001,173262]]&amp;sel=1349029297326.7722,1349155069478.671,1573.6040609137056,2309.6446700507613&amp;displayrange=7&amp;datatype=running</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732283</commentid>
    <comment_count>15</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-01 22:51:05 -0700</bug_when>
    <thetext>Awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732300</commentid>
    <comment_count>16</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-01 23:11:49 -0700</bug_when>
    <thetext>This is hitting an assert on the chromium debug bots.

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=plugins%2Freentrant-update-widget-positions.html%20svg%2Fas-image%2Fimg-preserveAspectRatio-support-1.html%20userscripts%2Fuser-script-top-frame-only.html%20svg%2FW3C-I18N%2Ftspan-dirLTR-ubOverride-in-rtl-context.svg%20http%2Ftests%2Fsecurity%2FisolatedWorld%2Fall-window-prototypes.html%20http%2Ftests%2Fsecurity%2FisolatedWorld%2Fevents.html%20http%2Ftests%2Fsecurity%2FisolatedWorld%2FuserGestureEvents.html%20http%2Ftests%2Fsecurity%2FjavascriptURL%2FjavascriptURL-execution-context-frame-src-htmldom.html%20http%2Ftests%2Fsecurity%2FisolatedWorld%2Fcontext-destroy.html%20http%2Ftests%2Fsecurity%2FisolatedWorld%2Fdocument-prototype.html%20http%2Ftests%2Fsecurity%2FisolatedWorld%2Fnumber-prototype.html%20http%2Ftests%2Fsecurity%2FisolatedWorld%2Fworld-reuse.html%20inspector%2Fextensions%2Fextensions-audits.html%20storage%2Fwebsql%2Ftransaction-error-callback-isolated-world.html%20

STDERR: ASSERTION FAILED: wrapper == value
STDERR: third_party/WebKit/Source/WebCore/bindings/v8/IntrusiveDOMWrapperMap.h(80) : virtual bool WebCore::IntrusiveDOMWrapperMap::removeIfPresent(WebCore::Node*, v8::Persistent&lt;v8::Object&gt;)
STDERR: 	WebCore::IntrusiveDOMWrapperMap::removeIfPresent() [0x7f26c88926cc]
STDERR: 	WebCore::DOMDataStore::weakNodeCallback() [0x7f26c884f729]
STDERR: 	v8::internal::GlobalHandles::Node::PostGarbageCollectionProcessing() [0x7f26c582a8aa]
STDERR: 	v8::internal::GlobalHandles::PostGarbageCollectionProcessing() [0x7f26c5829384]
STDERR: 	v8::internal::Heap::PerformGarbageCollection() [0x7f26c583b27c]
STDERR: 	v8::internal::Heap::CollectGarbage() [0x7f26c583a596]
STDERR: 	v8::internal::Heap::CollectGarbage() [0x7f26c57a6f2b]
STDERR: 	v8::internal::AbortIncrementalMarkingAndCollectGarbage() [0x7f26c583a7d3]
STDERR: 	v8::internal::Heap::ReserveSpace() [0x7f26c583a8f3]
STDERR: 	v8::internal::Deserializer::DeserializePartial() [0x7f26c5a4fb2e]
STDERR: 	v8::internal::Snapshot::NewContextFromSnapshot() [0x7f26c5a57344]
STDERR: 	v8::internal::Genesis::Genesis() [0x7f26c578b726]
STDERR: 	v8::internal::Bootstrapper::CreateEnvironment() [0x7f26c5780896]
STDERR: 	v8::Context::New() [0x7f26c575429c]
STDERR: 	WebCore::V8DOMWindowShell::createContext() [0x7f26c889988a]
STDERR: 	WebCore::V8DOMWindowShell::initializeIfNeeded() [0x7f26c889916c]
STDERR: 	WebCore::ScriptController::evaluateInIsolatedWorld() [0x7f26c886d341]
STDERR: 	WebKit::WebFrameImpl::executeScriptInIsolatedWorld() [0x7f26c77f29d7]
STDERR: 	DRTTestRunner::evaluateScriptInIsolatedWorld() [0x4994e6]
STDERR: 	CppBoundClass::MemberCallback&lt;&gt;::run() [0x4a71e8]
STDERR: 	CppBoundClass::invoke() [0x4e646c]
STDERR: 	CppNPObject::invoke() [0x4e5b4b]
STDERR: 	WebCore::npObjectInvokeImpl() [0x7f26c88a5d2b]
STDERR: 	WebCore::npObjectMethodHandler() [0x7f26c88a5ed2]
STDERR: 	v8::internal::HandleApiCallHelper&lt;&gt;() [0x7f26c579bf26]
STDERR: 	v8::internal::Builtin_Impl_HandleApiCall() [0x7f26c5796b85]
STDERR: 	v8::internal::Builtin_HandleApiCall() [0x7f26c5796b56]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732316</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 23:26:55 -0700</bug_when>
    <thetext>/me will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732325</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-01 23:31:55 -0700</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/130125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732834</commentid>
    <comment_count>19</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-02 11:09:18 -0700</bug_when>
    <thetext>Committed r130189: &lt;http://trac.webkit.org/changeset/130189&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732835</commentid>
    <comment_count>20</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-02 11:10:04 -0700</bug_when>
    <thetext>This caused regressions on the Dromaeo tests and was rolled out in http://trac.webkit.org/changeset/130189.


http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=Get%20Elements
http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/dromaeo_domcoreattr/report.html?history=150&amp;rev=-1&amp;graph=dom_attr_element_expando___value
http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/dromaeo_jslibtraversejquery/report.html?history=150&amp;rev=-1&amp;graph=jslib_traverse_jquery_jQuery___parents_x10
http://trac.webkit.org/log/?verbose=on&amp;rev=130105&amp;stop_rev=130077

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoremodify/report.html?history=150&amp;rev=-1&amp;graph=dom_modify
http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoremodify/report.html?history=150&amp;rev=-1&amp;graph=dom_modify_createTextNode
http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoremodify/report.html?history=150&amp;rev=-1&amp;graph=dom_modify_createElement
http://trac.webkit.org/log/?verbose=on&amp;rev=130105&amp;stop_rev=130100

http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/dromaeo_domcoremodify/report.html?history=150&amp;rev=-1&amp;graph=dom
http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=Template
http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=Get%20Elements
http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=CreateNodes
http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/dom_perf/report.html?history=150&amp;rev=-1&amp;graph=CloneNodes
http://trac.webkit.org/log/?verbose=on&amp;rev=130105&amp;stop_rev=130091</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732905</commentid>
    <comment_count>21</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-02 11:51:24 -0700</bug_when>
    <thetext>Ignore the dom_attr regression. That was the v8 roll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735918</commentid>
    <comment_count>22</comment_count>
      <attachid>167375</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-05 13:30:50 -0700</bug_when>
    <thetext>Created attachment 167375
work-in-progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747912</commentid>
    <comment_count>23</comment_count>
      <attachid>169991</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 14:45:04 -0700</bug_when>
    <thetext>Created attachment 169991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747919</commentid>
    <comment_count>24</comment_count>
      <attachid>169992</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 14:51:07 -0700</bug_when>
    <thetext>Created attachment 169992
perf test results (first five are with patch; last five are without)

Summary of perf results (average of five runs):

gc-forest: 3.60% worse
gc-mini-tree: 2.81% worse
gc-tree: 8.05% worse
dom-attr: 1.00% better
dom-modify: 2.48% better
dom-query: 1.40% worse
dom-traverse: 2.82% better

Note: These numbers include both the patch in this bug and the patch in bug 100033, which is also needed.

Essentially, we&apos;re gaining DOM performance at the cost of some GC performance.  This already seems like a good trade-off, but it will be a no-brainer trade-off after bug 98725 lands because most of the GC load will be shifted to the minor GC phase, which isn&apos;t slowed down at all.

Also, there is a memory savings because we don&apos;t need to maintain an extra pointer&apos;s worth of data for every wrapped node anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747964</commentid>
    <comment_count>25</comment_count>
      <attachid>170000</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 15:33:12 -0700</bug_when>
    <thetext>Created attachment 170000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747999</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-22 15:49:35 -0700</bug_when>
    <thetext>Have we verified already that this is &quot;no brainer after 98725&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748008</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 15:54:23 -0700</bug_when>
    <thetext>&gt; Have we verified already that this is &quot;no brainer after 98725&quot;?

I haven&apos;t.  I haven&apos;t made a build with all the dependent patches for bug 98725, but the point of that bug is to shrink the time spent in major GC by a factor of 10, which makes this slowdown even less relevant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748010</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-22 15:55:50 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; &gt; Have we verified already that this is &quot;no brainer after 98725&quot;?
&gt; 
&gt; I haven&apos;t.  I haven&apos;t made a build with all the dependent patches for bug 98725, but the point of that bug is to shrink the time spent in major GC by a factor of 10, which makes this slowdown even less relevant.

I see.  It would be good to make sure we know to check back after the dust settles to make sure we end up faster in the ways we care about, that&apos;s all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748012</commentid>
    <comment_count>29</comment_count>
      <attachid>170000</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-22 15:56:38 -0700</bug_when>
    <thetext>Comment on attachment 170000
Patch

OK.  LGTM.  Same disclaimer as always for v8 patches:  You may still want to talk to kentaro. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748016</commentid>
    <comment_count>30</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 15:57:28 -0700</bug_when>
    <thetext>&lt;abarth&gt; eseidel: DOM operations occur massively more often than garbage collection.  speeding up DOM operations is a much greater benefit than the cost of slowing down major gc by a couple percent
&lt;eseidel&gt; abarth: I agree. a lso be good to put that on the bug :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748310</commentid>
    <comment_count>31</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-22 23:54:31 -0700</bug_when>
    <thetext>Great patch!

Would you wait to land the patch for a couple of days? I&apos;m now looking into a crash bug (http://code.google.com/p/chromium/issues/detail?id=155942), and I&apos;m suspecting that the patches around bug 98567 (which this patch depends on) might be the culprit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748630</commentid>
    <comment_count>32</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-23 07:33:54 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Great patch!
&gt; 
&gt; Would you wait to land the patch for a couple of days? I&apos;m now looking into a crash bug (http://code.google.com/p/chromium/issues/detail?id=155942), and I&apos;m suspecting that the patches around bug 98567 (which this patch depends on) might be the culprit.

hmm, it looks like bug 98567 is not the culprit. (As I commented in Chromium issue 155942, the bug does not happen in WebKit ToT.) Sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748811</commentid>
    <comment_count>33</comment_count>
      <attachid>170000</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-23 11:14:22 -0700</bug_when>
    <thetext>Comment on attachment 170000
Patch

Clearing flags on attachment: 170000

Committed r132245: &lt;http://trac.webkit.org/changeset/132245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748812</commentid>
    <comment_count>34</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-23 11:14:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166376</attachid>
            <date>2012-09-29 21:04:15 -0700</date>
            <delta_ts>2012-09-29 22:07:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97974-20120929210331.patch</filename>
            <type>text/plain</type>
            <size>7085</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5OTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI3MWI2Yzk1NDgwNWQy
NTNiODQ0NzI1ZjY5OWE1ZWJjZWU3ZDA4ZC4uZTUyNjljZmQ3MWZjMGU2ZmVhZGM1ZTQzMzA2YWM0
MmNlNjEyMjE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTI5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBTY3JpcHRXcmFwcGFi
bGUgc2hvdWxkIGhvbGQgdGhlIHdyYXBwZXIgaGFuZGxlIGRpcmVjdGx5IChEcm9tYWVvL2RvbS10
cmF2ZXJzZSBnZXRzIDMlIGZhc3RlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlcmUncyBubyByZWFzb24gdG8gaG9sZCBhIHBvaW50ZXIgdG8gdGhl
IHdyYXBwZXIgaGFuZGxlLiBBIGhhbmRsZSBpcworICAgICAgICBhbHJlYWR5IGp1c3QgYSBwb2lu
dGVyLiBUaGlzIHBhdGNoIG1ha2VzIERyb21hZW8vZG9tLXRyYXZlcnNlIDMlCisgICAgICAgIGZh
c3Rlci4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmdldCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6cmVtb3ZlSWZQcmVzZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OkNodW5rZWRUYWJsZVRyYWl0czo6bW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpDaHVua2VkVGFibGVUcmFp
dHM6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OkNo
dW5rZWRUYWJsZVRyYWl0czo6dmlzaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFdy
YXBwYWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpTY3JpcHRXcmFw
cGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjp3cmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6c2V0V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OmNsZWFyV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRXcmFwcGFibGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFNjcmlwdFdy
YXBwYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OmdldENhY2hlZFdyYXBwZXIpOgorCiAyMDEyLTA5LTI5
ICBCeXVuZ3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggYnVp
bGQgd2FybmluZyA6IC1XcGFyZW50aGVzZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKaW5kZXggYWUyMGQwMzY5YjM0MTAzYTI4
MzQ1ODMwZGFiOWZiN2M4ZDRiYWZkMC4uMzAwYWNhMjY3YWUzMDg5ODY0YzU4NTZkMjQyZjUzNDc4
ZDYzZGE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZl
RE9NV3JhcHBlck1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2
ZURPTVdyYXBwZXJNYXAuaApAQCAtMTQxLDIyICsxNDEsMjEgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBnZXQoTm9kZSogb2JqKQogICAgIHsKLSAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBvYmotPndyYXBwZXIo
KTsKLSAgICAgICAgcmV0dXJuIHdyYXBwZXIgPyAqd3JhcHBlciA6IHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+KCk7CisgICAgICAgIHJldHVybiBvYmotPndyYXBwZXIoKTsKICAgICB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0KE5vZGUqIG9iaiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
d3JhcHBlcikKICAgICB7CiAgICAgICAgIEFTU0VSVChvYmopOwotICAgICAgICBBU1NFUlQoIW9i
ai0+d3JhcHBlcigpKTsKKyAgICAgICAgQVNTRVJUKG9iai0+d3JhcHBlcigpLklzRW1wdHkoKSk7
CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG1fdGFibGUuYWRk
KHdyYXBwZXIpOwotICAgICAgICBvYmotPnNldFdyYXBwZXIoZW50cnkpOworICAgICAgICBvYmot
PnNldFdyYXBwZXIoKmVudHJ5KTsKICAgICAgICAgd3JhcHBlci5NYWtlV2VhayhvYmosIHdlYWtS
ZWZlcmVuY2VDYWxsYmFjaygpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMo
Tm9kZSogb2JqKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG9iai0+d3JhcHBlcigpOworICAgICAg
ICByZXR1cm4gIW9iai0+d3JhcHBlcigpLklzRW1wdHkoKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgVmlzaXRvciogdmlzaXRvcikKQEAgLTE2
NywxMyArMTY2LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlSWZQcmVzZW50
KE5vZGUqIG9iaiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gdmFsdWUpCiAgICAgewogICAg
ICAgICBBU1NFUlQob2JqKTsKLSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVu
dHJ5ID0gb2JqLT53cmFwcGVyKCk7Ci0gICAgICAgIGlmICghZW50cnkpCisgICAgICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGVudHJ5ID0gb2JqLT53cmFwcGVyKCk7CisgICAgICAgIGlm
IChlbnRyeS5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlm
ICgqZW50cnkgIT0gdmFsdWUpCisgICAgICAgIGlmIChlbnRyeSAhPSB2YWx1ZSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgb2JqLT5jbGVhcldyYXBwZXIoKTsKLSAgICAgICAg
bV90YWJsZS5yZW1vdmUoZW50cnkpOworICAgICAgICBtX3RhYmxlLnJlbW92ZSgmZW50cnkpOwog
ICAgICAgICB2YWx1ZS5EaXNwb3NlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAg
LTIwMSwxMyArMjAwLDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAqdGFyZ2V0ID0gKnNvdXJj
ZTsKICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKCp0YXJnZXQpOwog
ICAgICAgICAgICAgQVNTRVJUKG5vZGUpOwotICAgICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcih0
YXJnZXQpOworICAgICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcigqdGFyZ2V0KTsKICAgICAgICAg
fQogCiAgICAgICAgIHN0YXRpYyB2b2lkIGNsZWFyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
KiBlbnRyeSkKICAgICAgICAgewogICAgICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9O
YXRpdmUoKmVudHJ5KTsKLSAgICAgICAgICAgIEFTU0VSVChub2RlLT53cmFwcGVyKCkgPT0gZW50
cnkpOworICAgICAgICAgICAgQVNTRVJUKG5vZGUtPndyYXBwZXIoKSA9PSAqZW50cnkpOwogCiAg
ICAgICAgICAgICBub2RlLT5jbGVhcldyYXBwZXIoKTsKICAgICAgICAgICAgIGVudHJ5LT5EaXNw
b3NlKCk7CkBAIC0yMTYsNyArMjE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIHZvaWQg
dmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVu
dHJ5LCBWaXNpdG9yKiB2aXNpdG9yKQogICAgICAgICB7CiAgICAgICAgICAgICBOb2RlKiBub2Rl
ID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50cnkpOwotICAgICAgICAgICAgQVNTRVJUKG5vZGUtPndy
YXBwZXIoKSA9PSBlbnRyeSk7CisgICAgICAgICAgICBBU1NFUlQobm9kZS0+d3JhcHBlcigpID09
ICplbnRyeSk7CiAKICAgICAgICAgICAgIHZpc2l0b3ItPnZpc2l0RE9NV3JhcHBlcihzdG9yZSwg
bm9kZSwgKmVudHJ5KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRXcmFwcGFibGUuaAppbmRleCAyOTE1Y2M3YzhlOTMyMjc0NmQ5MDMzMzA4ZGZjZDRjMjAz
MTczZWI4Li42ODg5ZWRlMDMxNDY0YzYzYjNhOWQ4ZTAxMjZmZTBiZmE0Yjk4N2YyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzgsMjkgKzM4
LDMxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKIHB1
YmxpYzoKLSAgICBTY3JpcHRXcmFwcGFibGUoKSA6IG1fd3JhcHBlcigwKSB7IH0KKyAgICBTY3Jp
cHRXcmFwcGFibGUoKQorICAgIHsKKyAgICB9CiAKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Piogd3JhcHBlcigpIGNvbnN0CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3Jh
cHBlcigpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV93cmFwcGVyOwogICAgIH0KIAot
ICAgIHZvaWQgc2V0V3JhcHBlcih2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogd3JhcHBlcikK
KyAgICB2b2lkIHNldFdyYXBwZXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikK
ICAgICB7Ci0gICAgICAgIEFTU0VSVCh3cmFwcGVyKTsKKyAgICAgICAgQVNTRVJUKCF3cmFwcGVy
LklzRW1wdHkoKSk7CiAgICAgICAgIG1fd3JhcHBlciA9IHdyYXBwZXI7CiAgICAgfQogCi0gICAg
dm9pZCBjbGVhcldyYXBwZXIoKSB7IG1fd3JhcHBlciA9IDA7IH0KKyAgICB2b2lkIGNsZWFyV3Jh
cHBlcigpIHsgbV93cmFwcGVyLkNsZWFyKCk7IH0KIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICB7CiAgICAg
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6RE9NKTsKLSAgICAgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3dyYXBwZXIp
OworICAgICAgICBpbmZvLmFkZFdlYWtQb2ludGVyKGNvbnN0X2Nhc3Q8djg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD4qPigmbV93cmFwcGVyKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBtX3dyYXBwZXI7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gbV93cmFwcGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAppbmRleCBjNTQ1YTg2M2Q3MjA1Mzhj
ZDNlNGUzYjhkMzZkYzU1OWZjNmZhNzBlLi5kYjE1M2IwMTMwN2U2N2ZmNGMzMGMyNjNlMWUxNTRm
OGQ2OTA3YmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaApA
QCAtMTEzLDE4ICsxMTMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAg
ICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICAgICAgaWYgKExJS0VMWSgh
RE9NV3JhcHBlcldvcmxkOjppc29sYXRlZFdvcmxkc0V4aXN0KCkpKSB7Ci0gICAgICAgICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7
Ci0gICAgICAgICAgICAgICAgaWYgKExJS0VMWSghIXdyYXBwZXIpKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gKndyYXBwZXI7CisgICAgICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gd3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAgICAgICAgICAgICBpZiAo
TElLRUxZKCF3cmFwcGVyLklzRW1wdHkoKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB3
cmFwcGVyOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWOERPTVdpbmRvd1NoZWxsOjpJ
c29sYXRlZENvbnRleHREYXRhKiBpc29sYXRlZERhdGEgPSBWOERPTVdpbmRvd1NoZWxsOjplbnRl
cmVkSXNvbGF0ZWRDb250ZXh0RGF0YSgpOwotICAgICAgICAgICAgaWYgKExJS0VMWSghaXNvbGF0
ZWREYXRhKSkgewotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3
cmFwcGVyID0gbm9kZS0+d3JhcHBlcigpOwotICAgICAgICAgICAgICAgIGlmICghd3JhcHBlcikK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gKndyYXBwZXI7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoTElLRUxZKCFpc29sYXRlZERhdGEpKQorICAgICAgICAgICAgICAgIHJldHVybiBub2Rl
LT53cmFwcGVyKCk7CisKICAgICAgICAgICAgIERPTURhdGFTdG9yZSogc3RvcmUgPSBpc29sYXRl
ZERhdGEtPndvcmxkKCktPmRvbURhdGFTdG9yZSgpOwogICAgICAgICAgICAgRE9NTm9kZU1hcHBp
bmcmIGRvbU5vZGVNYXAgPSBub2RlLT5pc0FjdGl2ZU5vZGUoKSA/IHN0b3JlLT5hY3RpdmVEb21O
b2RlTWFwKCkgOiBzdG9yZS0+ZG9tTm9kZU1hcCgpOwogICAgICAgICAgICAgcmV0dXJuIGRvbU5v
ZGVNYXAuZ2V0KG5vZGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166378</attachid>
            <date>2012-09-29 22:07:20 -0700</date>
            <delta_ts>2012-09-30 08:54:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97974-20120929220635.patch</filename>
            <type>text/plain</type>
            <size>7070</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5OTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FkZmFiM2QwMWU1YjJi
MTk1ODg0NDBhZjc0ZTU1MTZmZjE5NDQ2NC4uZjgxMjQ3ZmUxZDM1MTlkYjUxMjFiMjBmMDZiMWQ4
OWU3NGI3MjFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTI5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBTY3JpcHRXcmFwcGFi
bGUgc2hvdWxkIGhvbGQgdGhlIHdyYXBwZXIgaGFuZGxlIGRpcmVjdGx5IChEcm9tYWVvL2RvbS10
cmF2ZXJzZSBnZXRzIDMlIGZhc3RlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlcmUncyBubyByZWFzb24gdG8gaG9sZCBhIHBvaW50ZXIgdG8gdGhl
IHdyYXBwZXIgaGFuZGxlLiBBIGhhbmRsZSBpcworICAgICAgICBhbHJlYWR5IGp1c3QgYSBwb2lu
dGVyLiBUaGlzIHBhdGNoIG1ha2VzIERyb21hZW8vZG9tLXRyYXZlcnNlIDMlCisgICAgICAgIGZh
c3Rlci4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmdldCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6cmVtb3ZlSWZQcmVzZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OkNodW5rZWRUYWJsZVRyYWl0czo6bW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpDaHVua2VkVGFibGVUcmFp
dHM6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OkNo
dW5rZWRUYWJsZVRyYWl0czo6dmlzaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFdy
YXBwYWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpTY3JpcHRXcmFw
cGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjp3cmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6c2V0V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OmNsZWFyV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRXcmFwcGFibGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFNjcmlwdFdy
YXBwYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OmdldENhY2hlZFdyYXBwZXIpOgorCiAyMDEyLTA5LTI5
ICBEb25nd29vIEpvc2h1YSBJbSAgPGR3LmltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFzeW5j
RmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0gc2hvdWxkIGhhdmUgRmlsZVN5c3RlbVR5cGUgYXMg
YSBwYXJhbWV0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JbnRy
dXNpdmVET01XcmFwcGVyTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JbnRydXNp
dmVET01XcmFwcGVyTWFwLmgKaW5kZXggYWUyMGQwMzY5YjM0MTAzYTI4MzQ1ODMwZGFiOWZiN2M4
ZDRiYWZkMC4uMzAwYWNhMjY3YWUzMDg5ODY0YzU4NTZkMjQyZjUzNDc4ZDYzZGE1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAu
aApAQCAtMTQxLDIyICsxNDEsMjEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiBnZXQoTm9kZSogb2JqKQogICAgIHsKLSAgICAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKTsKLSAgICAgICAgcmV0
dXJuIHdyYXBwZXIgPyAqd3JhcHBlciA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCk7Cisg
ICAgICAgIHJldHVybiBvYmotPndyYXBwZXIoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0KE5vZGUqIG9iaiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKICAgICB7
CiAgICAgICAgIEFTU0VSVChvYmopOwotICAgICAgICBBU1NFUlQoIW9iai0+d3JhcHBlcigpKTsK
KyAgICAgICAgQVNTRVJUKG9iai0+d3JhcHBlcigpLklzRW1wdHkoKSk7CiAgICAgICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG1fdGFibGUuYWRkKHdyYXBwZXIpOwotICAg
ICAgICBvYmotPnNldFdyYXBwZXIoZW50cnkpOworICAgICAgICBvYmotPnNldFdyYXBwZXIoKmVu
dHJ5KTsKICAgICAgICAgd3JhcHBlci5NYWtlV2VhayhvYmosIHdlYWtSZWZlcmVuY2VDYWxsYmFj
aygpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMoTm9kZSogb2JqKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG9iai0+d3JhcHBlcigpOworICAgICAgICByZXR1cm4gIW9iai0+
d3JhcHBlcigpLklzRW1wdHkoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgdmlzaXQoRE9N
RGF0YVN0b3JlKiBzdG9yZSwgVmlzaXRvciogdmlzaXRvcikKQEAgLTE2NywxMyArMTY2LDEzIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlSWZQcmVzZW50KE5vZGUqIG9iaiwgdjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gdmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQob2Jq
KTsKLSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5ID0gb2JqLT53cmFw
cGVyKCk7Ci0gICAgICAgIGlmICghZW50cnkpCisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+IGVudHJ5ID0gb2JqLT53cmFwcGVyKCk7CisgICAgICAgIGlmIChlbnRyeS5Jc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICgqZW50cnkgIT0gdmFs
dWUpCisgICAgICAgIGlmIChlbnRyeSAhPSB2YWx1ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgb2JqLT5jbGVhcldyYXBwZXIoKTsKLSAgICAgICAgbV90YWJsZS5yZW1vdmUo
ZW50cnkpOworICAgICAgICBtX3RhYmxlLnJlbW92ZSgmZW50cnkpOwogICAgICAgICB2YWx1ZS5E
aXNwb3NlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTIwMSwxMyArMjAwLDEz
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAqdGFyZ2V0ID0gKnNvdXJjZTsKICAgICAgICAgICAg
IE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKCp0YXJnZXQpOwogICAgICAgICAgICAgQVNT
RVJUKG5vZGUpOwotICAgICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcih0YXJnZXQpOworICAgICAg
ICAgICAgbm9kZS0+c2V0V3JhcHBlcigqdGFyZ2V0KTsKICAgICAgICAgfQogCiAgICAgICAgIHN0
YXRpYyB2b2lkIGNsZWFyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSkKICAgICAg
ICAgewogICAgICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUoKmVudHJ5KTsK
LSAgICAgICAgICAgIEFTU0VSVChub2RlLT53cmFwcGVyKCkgPT0gZW50cnkpOworICAgICAgICAg
ICAgQVNTRVJUKG5vZGUtPndyYXBwZXIoKSA9PSAqZW50cnkpOwogCiAgICAgICAgICAgICBub2Rl
LT5jbGVhcldyYXBwZXIoKTsKICAgICAgICAgICAgIGVudHJ5LT5EaXNwb3NlKCk7CkBAIC0yMTYs
NyArMjE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXQoRE9NRGF0YVN0
b3JlKiBzdG9yZSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5LCBWaXNpdG9yKiB2
aXNpdG9yKQogICAgICAgICB7CiAgICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05h
dGl2ZSgqZW50cnkpOwotICAgICAgICAgICAgQVNTRVJUKG5vZGUtPndyYXBwZXIoKSA9PSBlbnRy
eSk7CisgICAgICAgICAgICBBU1NFUlQobm9kZS0+d3JhcHBlcigpID09ICplbnRyeSk7CiAKICAg
ICAgICAgICAgIHZpc2l0b3ItPnZpc2l0RE9NV3JhcHBlcihzdG9yZSwgbm9kZSwgKmVudHJ5KTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUu
aAppbmRleCAyOTE1Y2M3YzhlOTMyMjc0NmQ5MDMzMzA4ZGZjZDRjMjAzMTczZWI4Li42ODg5ZWRl
MDMxNDY0YzYzYjNhOWQ4ZTAxMjZmZTBiZmE0Yjk4N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzgsMjkgKzM4LDMxIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKIHB1YmxpYzoKLSAgICBTY3Jp
cHRXcmFwcGFibGUoKSA6IG1fd3JhcHBlcigwKSB7IH0KKyAgICBTY3JpcHRXcmFwcGFibGUoKQor
ICAgIHsKKyAgICB9CiAKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogd3JhcHBlcigp
IGNvbnN0CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcigpIGNvbnN0CiAg
ICAgewogICAgICAgICByZXR1cm4gbV93cmFwcGVyOwogICAgIH0KIAotICAgIHZvaWQgc2V0V3Jh
cHBlcih2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogd3JhcHBlcikKKyAgICB2b2lkIHNldFdy
YXBwZXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKICAgICB7Ci0gICAgICAg
IEFTU0VSVCh3cmFwcGVyKTsKKyAgICAgICAgQVNTRVJUKCF3cmFwcGVyLklzRW1wdHkoKSk7CiAg
ICAgICAgIG1fd3JhcHBlciA9IHdyYXBwZXI7CiAgICAgfQogCi0gICAgdm9pZCBjbGVhcldyYXBw
ZXIoKSB7IG1fd3JhcHBlciA9IDA7IH0KKyAgICB2b2lkIGNsZWFyV3JhcHBlcigpIHsgbV93cmFw
cGVyLkNsZWFyKCk7IH0KIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICB7CiAgICAgICAgIE1lbW9yeUNsYXNz
SW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9N
KTsKLSAgICAgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3dyYXBwZXIpOworICAgICAgICBpbmZv
LmFkZFdlYWtQb2ludGVyKGNvbnN0X2Nhc3Q8djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qPigm
bV93cmFwcGVyKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+KiBtX3dyYXBwZXI7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gbV93cmFw
cGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaAppbmRleCBhZDFiY2FmZDljZTBkY2MxZTFhZDE3YWE2ZWQ2MWZj
NTJiZGIwMzEwLi5mYWQ4MmM5NWRiNWQ0OTQzYzcxZjQ0M2MxYzE0N2Q1ZTM2YzlmODNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaApAQCAtMTEzLDE4ICsxMTMs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogICAgICAgICAgICAgaWYgKExJS0VMWSghRE9NV3JhcHBlcldvcmxk
Ojppc29sYXRlZFdvcmxkc0V4aXN0KCkpKSB7Ci0gICAgICAgICAgICAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKExJS0VMWSghIXdyYXBwZXIpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gKndy
YXBwZXI7CisgICAgICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBl
ciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAgICAgICAgICAgICBpZiAoTElLRUxZKCF3cmFwcGVy
LklzRW1wdHkoKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICBWOERPTVdpbmRvd1NoZWxsKiBjb250ZXh0ID0gVjhET01X
aW5kb3dTaGVsbDo6Z2V0RW50ZXJlZCgpOwotICAgICAgICAgICAgaWYgKExJS0VMWSghY29udGV4
dCkpIHsKLSAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogd3JhcHBl
ciA9IG5vZGUtPndyYXBwZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAoIXdyYXBwZXIpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuICp3cmFwcGVyOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KExJS0VMWSghY29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUtPndyYXBwZXIo
KTsKKwogICAgICAgICAgICAgRE9NRGF0YVN0b3JlKiBzdG9yZSA9IGNvbnRleHQtPndvcmxkKCkt
PmRvbURhdGFTdG9yZSgpOwogICAgICAgICAgICAgRE9NTm9kZU1hcHBpbmcmIGRvbU5vZGVNYXAg
PSBub2RlLT5pc0FjdGl2ZU5vZGUoKSA/IHN0b3JlLT5hY3RpdmVEb21Ob2RlTWFwKCkgOiBzdG9y
ZS0+ZG9tTm9kZU1hcCgpOwogICAgICAgICAgICAgcmV0dXJuIGRvbU5vZGVNYXAuZ2V0KG5vZGUp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166386</attachid>
            <date>2012-09-30 08:54:31 -0700</date>
            <delta_ts>2012-10-01 12:59:36 -0700</delta_ts>
            <desc>Work in progress---does not compile</desc>
            <filename>bug-97974-20120930085346.patch</filename>
            <type>text/plain</type>
            <size>10895</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5OTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKaW5kZXggYWUyMGQwMzY5YjM0MTAzYTI4
MzQ1ODMwZGFiOWZiN2M4ZDRiYWZkMC4uZjhhMTQ4MjkxM2UwMDg1MWRhOTUwNTBhNzUxODgxNjZm
NzQwNDk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZl
RE9NV3JhcHBlck1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2
ZURPTVdyYXBwZXJNYXAuaApAQCAtMzcsMzUgKzM3LDQxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdGVtcGxhdGUgPGNsYXNzIFQsIGludCBDSFVOS19TSVpFLCBjbGFzcyBUcmFpdHM+Cit0
ZW1wbGF0ZSA8Y2xhc3MgVmFsdWVUeXBlLCBpbnQgY2h1bmtTaXplLCBjbGFzcyBUcmFpdHM+CiBj
bGFzcyBDaHVua2VkVGFibGUgewogICBwdWJsaWM6Ci0gICAgQ2h1bmtlZFRhYmxlKCkgOiBtX2No
dW5rcygwKSwgbV9jdXJyZW50KDApLCBtX2xhc3QoMCkgeyB9CisgICAgQ2h1bmtlZFRhYmxlKCkK
KyAgICAgICAgOiBtX2NodW5rcygwKQorICAgICAgICAsIG1fY3VycmVudCgwKQorICAgICAgICAs
IG1fbGFzdCgwKQorICAgIHsKKyAgICB9CiAKLSAgICBUKiBhZGQoVCBlbGVtZW50KQorICAgIHZv
aWQgYWRkKHY4OjpQZXJzaXN0ZW50PFZhbHVlVHlwZT4gZWxlbWVudCkKICAgICB7CiAgICAgICAg
IGlmIChtX2N1cnJlbnQgPT0gbV9sYXN0KSB7CiAgICAgICAgICAgICBtX2NodW5rcyA9IG5ldyBD
aHVuayhtX2NodW5rcyk7CiAgICAgICAgICAgICBtX2N1cnJlbnQgPSBtX2NodW5rcy0+bV9lbnRy
aWVzOwotICAgICAgICAgICAgbV9sYXN0ID0gbV9jdXJyZW50ICsgQ0hVTktfU0laRTsKKyAgICAg
ICAgICAgIG1fbGFzdCA9IG1fY3VycmVudCArIGNodW5rU2l6ZTsKICAgICAgICAgfQogICAgICAg
ICBBU1NFUlQoKG1fY2h1bmtzLT5tX2VudHJpZXMgPD0gbV9jdXJyZW50KSAmJiAobV9jdXJyZW50
IDwgbV9sYXN0KSk7Ci0gICAgICAgIFQqIHAgPSBtX2N1cnJlbnQrKzsKKyAgICAgICAgdjg6OlBl
cnNpc3RlbnQ8VmFsdWVUeXBlPiogcCA9IG1fY3VycmVudCsrOwogICAgICAgICAqcCA9IGVsZW1l
bnQ7Ci0gICAgICAgIHJldHVybiBwOwogICAgIH0KIAotICAgIHZvaWQgcmVtb3ZlKFQqIGVsZW1l
bnQpCisgICAgdm9pZCByZW1vdmUodjg6OlBlcnNpc3RlbnQ8VmFsdWVUeXBlPiBlbGVtZW50KQog
ICAgIHsKLSAgICAgICAgQVNTRVJUKGVsZW1lbnQpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBm
dW5jdGlvbiBjYW4ndCBiZSByaWdodC4gSG93IGNhbiB3ZSByZW1vdmUgZWxlbWVudCBmcm9tIHRo
aXMKKyAgICAgICAgLy8gdGFibGUgd2l0aG91dCBzZWFyY2hpbmcgdGhlIHRhYmxlIGZvciB3aGVy
ZSBlbGVtZW50IGlzPworICAgICAgICBBU1NFUlQoIWVsZW1lbnQuSXNFbXB0eSgpKTsKICAgICAg
ICAgQVNTRVJUKG1fY3VycmVudCA+IG1fY2h1bmtzLT5tX2VudHJpZXMpOwogICAgICAgICBtX2N1
cnJlbnQtLTsKLSAgICAgICAgaWYgKGVsZW1lbnQgIT0gbV9jdXJyZW50KQotICAgICAgICAgICAg
VHJhaXRzOjptb3ZlKGVsZW1lbnQsIG1fY3VycmVudCk7CisgICAgICAgIGlmIChlbGVtZW50ICE9
ICptX2N1cnJlbnQpCisgICAgICAgICAgICBUcmFpdHM6Om1vdmUoJmVsZW1lbnQsIG1fY3VycmVu
dCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gbV9jaHVua3MtPm1fZW50cmllcykgewogICAg
ICAgICAgICAgQ2h1bmsqIHRvRGVsZXRlID0gbV9jaHVua3M7CiAgICAgICAgICAgICBtX2NodW5r
cyA9IHRvRGVsZXRlLT5tX3ByZXZpb3VzOwotICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9sYXN0
ID0gbV9jaHVua3MgPyBtX2NodW5rcy0+bV9lbnRyaWVzICsgQ0hVTktfU0laRSA6IDA7CisgICAg
ICAgICAgICBtX2N1cnJlbnQgPSBtX2xhc3QgPSBtX2NodW5rcyA/IG1fY2h1bmtzLT5tX2VudHJp
ZXMgKyBjaHVua1NpemUgOiAwOwogICAgICAgICAgICAgZGVsZXRlIHRvRGVsZXRlOwogICAgICAg
ICB9CiAgICAgICAgIEFTU0VSVCghbV9jaHVua3MgfHwgKChtX2NodW5rcy0+bV9lbnRyaWVzIDwg
bV9jdXJyZW50KSAmJiAobV9jdXJyZW50IDw9IG1fbGFzdCkpKTsKQEAgLTgzLDEzICs4OSwxMyBA
QCBjbGFzcyBDaHVua2VkVGFibGUgewogICAgICAgICAgICAgaWYgKCFwcmV2aW91cykKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlbGV0ZSBsYXN0OwotICAgICAgICAgICAg
Y2xlYXJFbnRyaWVzKHByZXZpb3VzLT5tX2VudHJpZXMsIHByZXZpb3VzLT5tX2VudHJpZXMgKyBD
SFVOS19TSVpFKTsKKyAgICAgICAgICAgIGNsZWFyRW50cmllcyhwcmV2aW91cy0+bV9lbnRyaWVz
LCBwcmV2aW91cy0+bV9lbnRyaWVzICsgY2h1bmtTaXplKTsKICAgICAgICAgICAgIGxhc3QgPSBw
cmV2aW91czsKICAgICAgICAgfQogCiAgICAgICAgIG1fY2h1bmtzID0gbGFzdDsKICAgICAgICAg
bV9jdXJyZW50ID0gbV9jaHVua3MtPm1fZW50cmllczsKLSAgICAgICAgbV9sYXN0ID0gbV9jdXJy
ZW50ICsgQ0hVTktfU0laRTsKKyAgICAgICAgbV9sYXN0ID0gbV9jdXJyZW50ICsgY2h1bmtTaXpl
OwogICAgIH0KIAogICAgIHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdHlwZW5hbWUg
VHJhaXRzOjpWaXNpdG9yKiB2aXNpdG9yKQpAQCAtOTksNyArMTA1LDcgQEAgY2xhc3MgQ2h1bmtl
ZFRhYmxlIHsKIAogICAgICAgICB2aXNpdEVudHJpZXMoc3RvcmUsIG1fY2h1bmtzLT5tX2VudHJp
ZXMsIG1fY3VycmVudCwgdmlzaXRvcik7CiAgICAgICAgIGZvciAoQ2h1bmsqIGNodW5rID0gbV9j
aHVua3MtPm1fcHJldmlvdXM7IGNodW5rOyBjaHVuayA9IGNodW5rLT5tX3ByZXZpb3VzKQotICAg
ICAgICAgICAgdmlzaXRFbnRyaWVzKHN0b3JlLCBjaHVuay0+bV9lbnRyaWVzLCBjaHVuay0+bV9l
bnRyaWVzICsgQ0hVTktfU0laRSwgdmlzaXRvcik7CisgICAgICAgICAgICB2aXNpdEVudHJpZXMo
c3RvcmUsIGNodW5rLT5tX2VudHJpZXMsIGNodW5rLT5tX2VudHJpZXMgKyBjaHVua1NpemUsIHZp
c2l0b3IpOwogICAgIH0KIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKQEAgLTExMSw1MiArMTE3LDU2IEBAIGNsYXNz
IENodW5rZWRUYWJsZSB7CiAKICAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgQ2h1bmsgewotICAgICAg
ICBleHBsaWNpdCBDaHVuayhDaHVuayogcHJldmlvdXMpIDogbV9wcmV2aW91cyhwcmV2aW91cykg
eyB9CisgICAgICAgIGV4cGxpY2l0IENodW5rKENodW5rKiBwcmV2aW91cykKKyAgICAgICAgICAg
IDogbV9wcmV2aW91cyhwcmV2aW91cykKKyAgICAgICAgeworICAgICAgICB9CisKICAgICAgICAg
Q2h1bmsqIGNvbnN0IG1fcHJldmlvdXM7Ci0gICAgICAgIFQgbV9lbnRyaWVzW0NIVU5LX1NJWkVd
OworICAgICAgICB2ODo6UGVyc2lzdGVudDxWYWx1ZVR5cGU+IG1fZW50cmllc1tjaHVua1NpemVd
OwogICAgIH07CiAKLSAgICBzdGF0aWMgdm9pZCBjbGVhckVudHJpZXMoVCogZmlyc3QsIFQqIGxh
c3QpCisgICAgc3RhdGljIHZvaWQgY2xlYXJFbnRyaWVzKHY4OjpQZXJzaXN0ZW50PFZhbHVlVHlw
ZT4qIGZpcnN0LCB2ODo6UGVyc2lzdGVudDxWYWx1ZVR5cGU+KiBsYXN0KQogICAgIHsKLSAgICAg
ICAgZm9yIChUKiBlbnRyeSA9IGZpcnN0OyBlbnRyeSA8IGxhc3Q7IGVudHJ5KyspCisgICAgICAg
IGZvciAodjg6OlBlcnNpc3RlbnQ8VmFsdWVUeXBlPiogZW50cnkgPSBmaXJzdDsgZW50cnkgPCBs
YXN0OyBlbnRyeSsrKQogICAgICAgICAgICAgVHJhaXRzOjpjbGVhcihlbnRyeSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSogc3RvcmUsIFQqIGZp
cnN0LCBUKiBsYXN0LCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCisgICAgc3Rh
dGljIHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSogc3RvcmUsIHY4OjpQZXJzaXN0ZW50
PFZhbHVlVHlwZT4qIGZpcnN0LCB2ODo6UGVyc2lzdGVudDxWYWx1ZVR5cGU+KiBsYXN0LCB0eXBl
bmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCiAgICAgewotICAgICAgICBmb3IgKFQqIGVu
dHJ5ID0gZmlyc3Q7IGVudHJ5IDwgbGFzdDsgZW50cnkrKykKLSAgICAgICAgICAgIFRyYWl0czo6
dmlzaXQoc3RvcmUsIGVudHJ5LCB2aXNpdG9yKTsKKyAgICAgICAgZm9yICh2ODo6UGVyc2lzdGVu
dDxWYWx1ZVR5cGU+KiBlbnRyeSA9IGZpcnN0OyBlbnRyeSA8IGxhc3Q7IGVudHJ5KyspCisgICAg
ICAgICAgICBUcmFpdHM6OnZpc2l0KHN0b3JlLCAqZW50cnksIHZpc2l0b3IpOwogICAgIH0KIAog
ICAgIENodW5rKiBtX2NodW5rczsKLSAgICBUKiBtX2N1cnJlbnQ7Ci0gICAgVCogbV9sYXN0Owor
ICAgIHY4OjpQZXJzaXN0ZW50PFZhbHVlVHlwZT4qIG1fY3VycmVudDsKKyAgICB2ODo6UGVyc2lz
dGVudDxWYWx1ZVR5cGU+KiBtX2xhc3Q7CiB9OwogCi0KIGNsYXNzIEludHJ1c2l2ZURPTVdyYXBw
ZXJNYXAgOiBwdWJsaWMgQWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwPE5vZGUsIHY4OjpPYmplY3Q+
IHsKIHB1YmxpYzoKICAgICBJbnRydXNpdmVET01XcmFwcGVyTWFwKHY4OjpXZWFrUmVmZXJlbmNl
Q2FsbGJhY2sgY2FsbGJhY2spCi0gICAgICAgIDogQWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwPE5v
ZGUsIHY4OjpPYmplY3Q+KGNhbGxiYWNrKSB7IH0KKyAgICAgICAgOiBBYnN0cmFjdFdlYWtSZWZl
cmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4oY2FsbGJhY2spCisgICAgeworICAgIH0KIAotICAg
IHZpcnR1YWwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gZ2V0KE5vZGUqIG9iaikKKyAgICB2
aXJ0dWFsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGdldChOb2RlKiBub2RlKQogICAgIHsK
LSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBvYmotPndyYXBw
ZXIoKTsKLSAgICAgICAgcmV0dXJuIHdyYXBwZXIgPyAqd3JhcHBlciA6IHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+KCk7CisgICAgICAgIHJldHVybiBub2RlLT53cmFwcGVyKCk7CiAgICAgfQog
Ci0gICAgdmlydHVhbCB2b2lkIHNldChOb2RlKiBvYmosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+IHdyYXBwZXIpCisgICAgdmlydHVhbCB2b2lkIHNldChOb2RlKiBub2RlLCB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG9iaik7Ci0g
ICAgICAgIEFTU0VSVCghb2JqLT53cmFwcGVyKCkpOwotICAgICAgICB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiogZW50cnkgPSBtX3RhYmxlLmFkZCh3cmFwcGVyKTsKLSAgICAgICAgb2JqLT5z
ZXRXcmFwcGVyKGVudHJ5KTsKLSAgICAgICAgd3JhcHBlci5NYWtlV2VhayhvYmosIHdlYWtSZWZl
cmVuY2VDYWxsYmFjaygpKTsKKyAgICAgICAgQVNTRVJUKG5vZGUpOworICAgICAgICBBU1NFUlQo
bm9kZS0+d3JhcHBlcigpLklzRW1wdHkoKSk7CisgICAgICAgIG1fdGFibGUuYWRkKHdyYXBwZXIp
OworICAgICAgICBub2RlLT5zZXRXcmFwcGVyKCplbnRyeSk7CisgICAgICAgIHdyYXBwZXIuTWFr
ZVdlYWsobm9kZSwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgYm9vbCBjb250YWlucyhOb2RlKiBvYmopCisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKE5v
ZGUqIG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gb2JqLT53cmFwcGVyKCk7CisgICAgICAg
IHJldHVybiAhbm9kZS0+d3JhcHBlcigpLklzRW1wdHkoKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgVmlzaXRvciogdmlzaXRvcikKQEAgLTE2
NCwyMSArMTc0LDIwIEBAIHB1YmxpYzoKICAgICAgICAgbV90YWJsZS52aXNpdChzdG9yZSwgdmlz
aXRvcik7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHJlbW92ZUlmUHJlc2VudChOb2RlKiBv
YmosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHZhbHVlKQorICAgIHZpcnR1YWwgYm9vbCBy
ZW1vdmVJZlByZXNlbnQoTm9kZSogbm9kZSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gdmFs
dWUpCiAgICAgewotICAgICAgICBBU1NFUlQob2JqKTsKLSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD4qIGVudHJ5ID0gb2JqLT53cmFwcGVyKCk7Ci0gICAgICAgIGlmICghZW50cnkp
CisgICAgICAgIEFTU0VSVChub2RlKTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4gZW50cnkgPSBub2RlLT53cmFwcGVyKCk7CisgICAgICAgIGlmIChlbnRyeS5Jc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICgqZW50cnkgIT0gdmFsdWUp
CisgICAgICAgIGlmIChlbnRyeSAhPSB2YWx1ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgb2JqLT5jbGVhcldyYXBwZXIoKTsKKyAgICAgICAgbm9kZS0+Y2xlYXJXcmFwcGVy
KCk7CiAgICAgICAgIG1fdGFibGUucmVtb3ZlKGVudHJ5KTsKICAgICAgICAgdmFsdWUuRGlzcG9z
ZSgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLQogICAgIHZpcnR1YWwgdm9pZCBj
bGVhcigpCiAgICAgewogICAgICAgICBtX3RhYmxlLmNsZWFyKCk7CkBAIC0yMDEsMjggKzIxMCwy
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgKnRhcmdldCA9ICpzb3VyY2U7CiAgICAgICAgICAg
ICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqdGFyZ2V0KTsKICAgICAgICAgICAgIEFT
U0VSVChub2RlKTsKLSAgICAgICAgICAgIG5vZGUtPnNldFdyYXBwZXIodGFyZ2V0KTsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBJc24ndCB0aGlzIGNhbGwgdG8gc2V0V3JhcHBlciBhIG5vLW9wPwor
ICAgICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcigqdGFyZ2V0KTsKICAgICAgICAgfQogCi0gICAg
ICAgIHN0YXRpYyB2b2lkIGNsZWFyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSkK
KyAgICAgICAgc3RhdGljIHZvaWQgY2xlYXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gZW50
cnkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZl
KCplbnRyeSk7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZShlbnRy
eSk7CiAgICAgICAgICAgICBBU1NFUlQobm9kZS0+d3JhcHBlcigpID09IGVudHJ5KTsKLQogICAg
ICAgICAgICAgbm9kZS0+Y2xlYXJXcmFwcGVyKCk7Ci0gICAgICAgICAgICBlbnRyeS0+RGlzcG9z
ZSgpOworICAgICAgICAgICAgZW50cnkuRGlzcG9zZSgpOwogICAgICAgICB9CiAKLSAgICAgICAg
c3RhdGljIHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4qIGVudHJ5LCBWaXNpdG9yKiB2aXNpdG9yKQorICAgICAgICBzdGF0aWMgdm9pZCB2
aXNpdChET01EYXRhU3RvcmUqIHN0b3JlLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBlbnRy
eSwgVmlzaXRvciogdmlzaXRvcikKICAgICAgICAgewotICAgICAgICAgICAgTm9kZSogbm9kZSA9
IFY4Tm9kZTo6dG9OYXRpdmUoKmVudHJ5KTsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBWOE5v
ZGU6OnRvTmF0aXZlKGVudHJ5KTsKICAgICAgICAgICAgIEFTU0VSVChub2RlLT53cmFwcGVyKCkg
PT0gZW50cnkpOwotCi0gICAgICAgICAgICB2aXNpdG9yLT52aXNpdERPTVdyYXBwZXIoc3RvcmUs
IG5vZGUsICplbnRyeSk7CisgICAgICAgICAgICB2aXNpdG9yLT52aXNpdERPTVdyYXBwZXIoc3Rv
cmUsIG5vZGUsIGVudHJ5KTsKICAgICAgICAgfQogICAgIH07CiAKLSAgICB0eXBlZGVmIENodW5r
ZWRUYWJsZTx2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiwgbnVtYmVyT2ZFbnRyaWVzLCBDaHVu
a2VkVGFibGVUcmFpdHM+IFRhYmxlOworICAgIHR5cGVkZWYgQ2h1bmtlZFRhYmxlPHY4OjpPYmpl
Y3QsIG51bWJlck9mRW50cmllcywgQ2h1bmtlZFRhYmxlVHJhaXRzPiBUYWJsZTsKICAgICBUYWJs
ZSBtX3RhYmxlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFw
cGFibGUuaAppbmRleCAyOTE1Y2M3YzhlOTMyMjc0NmQ5MDMzMzA4ZGZjZDRjMjAzMTczZWI4Li42
ODg5ZWRlMDMxNDY0YzYzYjNhOWQ4ZTAxMjZmZTBiZmE0Yjk4N2YyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzgsMjkgKzM4LDMxIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKIHB1YmxpYzoKLSAg
ICBTY3JpcHRXcmFwcGFibGUoKSA6IG1fd3JhcHBlcigwKSB7IH0KKyAgICBTY3JpcHRXcmFwcGFi
bGUoKQorICAgIHsKKyAgICB9CiAKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogd3Jh
cHBlcigpIGNvbnN0CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcigpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV93cmFwcGVyOwogICAgIH0KIAotICAgIHZvaWQg
c2V0V3JhcHBlcih2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogd3JhcHBlcikKKyAgICB2b2lk
IHNldFdyYXBwZXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKICAgICB7Ci0g
ICAgICAgIEFTU0VSVCh3cmFwcGVyKTsKKyAgICAgICAgQVNTRVJUKCF3cmFwcGVyLklzRW1wdHko
KSk7CiAgICAgICAgIG1fd3JhcHBlciA9IHdyYXBwZXI7CiAgICAgfQogCi0gICAgdm9pZCBjbGVh
cldyYXBwZXIoKSB7IG1fd3JhcHBlciA9IDA7IH0KKyAgICB2b2lkIGNsZWFyV3JhcHBlcigpIHsg
bV93cmFwcGVyLkNsZWFyKCk7IH0KIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICB7CiAgICAgICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBl
czo6RE9NKTsKLSAgICAgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3dyYXBwZXIpOworICAgICAg
ICBpbmZvLmFkZFdlYWtQb2ludGVyKGNvbnN0X2Nhc3Q8djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4qPigmbV93cmFwcGVyKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+KiBtX3dyYXBwZXI7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
bV93cmFwcGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAppbmRleCBhZDFiY2FmZDljZTBkY2MxZTFhZDE3YWE2
ZWQ2MWZjNTJiZGIwMzEwLi5mYWQ4MmM5NWRiNWQ0OTQzYzcxZjQ0M2MxYzE0N2Q1ZTM2YzlmODNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaApAQCAtMTEzLDE4
ICsxMTMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICAgICAgaWYgKExJS0VMWSghRE9NV3JhcHBl
cldvcmxkOjppc29sYXRlZFdvcmxkc0V4aXN0KCkpKSB7Ci0gICAgICAgICAgICAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKExJS0VMWSghIXdyYXBwZXIpKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gKndyYXBwZXI7CisgICAgICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
d3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAgICAgICAgICAgICBpZiAoTElLRUxZKCF3
cmFwcGVyLklzRW1wdHkoKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWOERPTVdpbmRvd1NoZWxsKiBjb250ZXh0ID0g
VjhET01XaW5kb3dTaGVsbDo6Z2V0RW50ZXJlZCgpOwotICAgICAgICAgICAgaWYgKExJS0VMWSgh
Y29udGV4dCkpIHsKLSAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piog
d3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAoIXdyYXBwZXIp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuICp3cmFwcGVyOwotICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKExJS0VMWSghY29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUtPndy
YXBwZXIoKTsKKwogICAgICAgICAgICAgRE9NRGF0YVN0b3JlKiBzdG9yZSA9IGNvbnRleHQtPndv
cmxkKCktPmRvbURhdGFTdG9yZSgpOwogICAgICAgICAgICAgRE9NTm9kZU1hcHBpbmcmIGRvbU5v
ZGVNYXAgPSBub2RlLT5pc0FjdGl2ZU5vZGUoKSA/IHN0b3JlLT5hY3RpdmVEb21Ob2RlTWFwKCkg
OiBzdG9yZS0+ZG9tTm9kZU1hcCgpOwogICAgICAgICAgICAgcmV0dXJuIGRvbU5vZGVNYXAuZ2V0
KG5vZGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166528</attachid>
            <date>2012-10-01 12:59:38 -0700</date>
            <delta_ts>2012-10-01 16:14:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97974-20121001125852.patch</filename>
            <type>text/plain</type>
            <size>12370</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNmYTcxZDIxNjc5NzY5
OWY2NjcwN2U2MjhmN2U0YjgzZjdiMDQ1OS4uYmNmMzk2NTVkODE0MmM3N2QwZDhkOTg4OWRiNjZk
NDQyMTg3MDgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTAxICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBTY3JpcHRXcmFwcGFi
bGUgc2hvdWxkIGhvbGQgdGhlIHdyYXBwZXIgaGFuZGxlIGRpcmVjdGx5IChEcm9tYWVvL2RvbS10
cmF2ZXJzZSBnZXRzIDQlIGZhc3RlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugc3RvcmVkIGEgcG9pbnRlciB0byBhIGhhbmRs
ZSB0byBhIHdyYXBwZXIgaW4gTm9kZS4gVGhhdAorICAgICAgICBpcyBhbiBleHRyYSBsYXllciBv
ZiBpbmRpcmVjdGlvbiB0aGF0IHNsb3dzIGRvd24gZmluZGluZyB0aGUgd3JhcHBlcgorICAgICAg
ICBmb3IgdGhlIG5vZGUuIEEgaGFuZGxlIGlzIGp1c3QgYSBwb2ludGVyLCBzbyB3ZSBtaWdodCBh
cyB3ZSBqdXN0IHN0b3JlCisgICAgICAgIHRoZSBoYW5kbGUgaW4gdGhlIE5vZGUgZGlyZWN0bHku
IFRoYXQgc3BlZWRzIHVwIGRvbS10cmF2ZXJzZSBieSBhYm91dCA0JS4KKworICAgICAgICBXZSB3
ZXJlIHVzaW5nIHRoZSBleHRyYSBsYXllciBvZiBpbmRpcmVjdGlvbiBpbiBJbnRydXNpdmVET01X
cmFwcGVyTWFwCisgICAgICAgIHRvIG1ha2UgcmVtb3ZhbCBtb3JlIGVmZmljaWVudC4gUmF0aGVy
IHRoYW4gdXNpbmcgYSBjaHVua2VkIHRhYmxlLCB3ZQorICAgICAgICBub3cgdXNlIGEgSGFzaFNl
dCwgd2hpY2ggYWxzbyBsZXRzIHVzIHJlbW92ZSBlbGVtZW50cyBxdWlja2x5LgorCisgICAgICAg
ICogYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6SW50cnVzaXZlRE9NV3JhcHBlck1hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1
c2l2ZURPTVdyYXBwZXJNYXA6OnZpc2l0KToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURP
TVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRydXNp
dmVET01XcmFwcGVyTWFwOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OlNjcmlwdFdyYXBw
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OndyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpzZXRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6ZGlzcG9zZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0V3JhcHBhYmxlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChTY3JpcHRX
cmFwcGFibGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKToKKwogMjAxMi0xMC0w
MSAgQXJwaXRhIEJhaHVndW5hICA8YXJwaXRhYmFodWd1bmFAZ21haWwuY29tPgogCiAgICAgICAg
IFJlbmRlckJsb2NrIGluY29ycmVjdGx5IGNhbGN1bGF0ZXMgcHJlZiB3aWR0aCB3aGVuIGEgcmVw
bGFjZWQgb2JqZWN0IGZvbGxvd3MgYSBSZW5kZXJJbmxpbmUgd2l0aCB3aWR0aApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCmluZGV4
IGFlMjBkMDM2OWIzNDEwM2EyODM0NTgzMGRhYjlmYjdjOGQ0YmFmZDAuLjM0MjE1MjRkMzIyYWUw
NzE4OGY3YjZmM2I4OTY2YzkzN2Q5MjYzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKQEAgLTM0LDE5NiArMzQsNjkgQEAK
ICNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJWOE5vZGUuaCIKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0ZSA8Y2xhc3MgVCwgaW50IENIVU5L
X1NJWkUsIGNsYXNzIFRyYWl0cz4KLWNsYXNzIENodW5rZWRUYWJsZSB7Ci0gIHB1YmxpYzoKLSAg
ICBDaHVua2VkVGFibGUoKSA6IG1fY2h1bmtzKDApLCBtX2N1cnJlbnQoMCksIG1fbGFzdCgwKSB7
IH0KLQotICAgIFQqIGFkZChUIGVsZW1lbnQpCi0gICAgewotICAgICAgICBpZiAobV9jdXJyZW50
ID09IG1fbGFzdCkgewotICAgICAgICAgICAgbV9jaHVua3MgPSBuZXcgQ2h1bmsobV9jaHVua3Mp
OwotICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9jaHVua3MtPm1fZW50cmllczsKLSAgICAgICAg
ICAgIG1fbGFzdCA9IG1fY3VycmVudCArIENIVU5LX1NJWkU7Ci0gICAgICAgIH0KLSAgICAgICAg
QVNTRVJUKChtX2NodW5rcy0+bV9lbnRyaWVzIDw9IG1fY3VycmVudCkgJiYgKG1fY3VycmVudCA8
IG1fbGFzdCkpOwotICAgICAgICBUKiBwID0gbV9jdXJyZW50Kys7Ci0gICAgICAgICpwID0gZWxl
bWVudDsKLSAgICAgICAgcmV0dXJuIHA7Ci0gICAgfQotCi0gICAgdm9pZCByZW1vdmUoVCogZWxl
bWVudCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChlbGVtZW50KTsKLSAgICAgICAgQVNTRVJUKG1f
Y3VycmVudCA+IG1fY2h1bmtzLT5tX2VudHJpZXMpOwotICAgICAgICBtX2N1cnJlbnQtLTsKLSAg
ICAgICAgaWYgKGVsZW1lbnQgIT0gbV9jdXJyZW50KQotICAgICAgICAgICAgVHJhaXRzOjptb3Zl
KGVsZW1lbnQsIG1fY3VycmVudCk7Ci0gICAgICAgIGlmIChtX2N1cnJlbnQgPT0gbV9jaHVua3Mt
Pm1fZW50cmllcykgewotICAgICAgICAgICAgQ2h1bmsqIHRvRGVsZXRlID0gbV9jaHVua3M7Ci0g
ICAgICAgICAgICBtX2NodW5rcyA9IHRvRGVsZXRlLT5tX3ByZXZpb3VzOwotICAgICAgICAgICAg
bV9jdXJyZW50ID0gbV9sYXN0ID0gbV9jaHVua3MgPyBtX2NodW5rcy0+bV9lbnRyaWVzICsgQ0hV
TktfU0laRSA6IDA7Ci0gICAgICAgICAgICBkZWxldGUgdG9EZWxldGU7Ci0gICAgICAgIH0KLSAg
ICAgICAgQVNTRVJUKCFtX2NodW5rcyB8fCAoKG1fY2h1bmtzLT5tX2VudHJpZXMgPCBtX2N1cnJl
bnQpICYmIChtX2N1cnJlbnQgPD0gbV9sYXN0KSkpOwotICAgIH0KLQotICAgIHZvaWQgY2xlYXIo
KQotICAgIHsKLSAgICAgICAgaWYgKCFtX2NodW5rcykKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBjbGVhckVudHJpZXMobV9jaHVua3MtPm1fZW50cmllcywgbV9jdXJyZW50KTsKLSAg
ICAgICAgQ2h1bmsqIGxhc3QgPSBtX2NodW5rczsKLSAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAg
ICAgICAgICAgIENodW5rKiBwcmV2aW91cyA9IGxhc3QtPm1fcHJldmlvdXM7Ci0gICAgICAgICAg
ICBpZiAoIXByZXZpb3VzKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVs
ZXRlIGxhc3Q7Ci0gICAgICAgICAgICBjbGVhckVudHJpZXMocHJldmlvdXMtPm1fZW50cmllcywg
cHJldmlvdXMtPm1fZW50cmllcyArIENIVU5LX1NJWkUpOwotICAgICAgICAgICAgbGFzdCA9IHBy
ZXZpb3VzOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9jaHVua3MgPSBsYXN0OwotICAgICAgICBt
X2N1cnJlbnQgPSBtX2NodW5rcy0+bV9lbnRyaWVzOwotICAgICAgICBtX2xhc3QgPSBtX2N1cnJl
bnQgKyBDSFVOS19TSVpFOwotICAgIH0KLQotICAgIHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBz
dG9yZSwgdHlwZW5hbWUgVHJhaXRzOjpWaXNpdG9yKiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAg
aWYgKCFtX2NodW5rcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2aXNpdEVudHJp
ZXMoc3RvcmUsIG1fY2h1bmtzLT5tX2VudHJpZXMsIG1fY3VycmVudCwgdmlzaXRvcik7Ci0gICAg
ICAgIGZvciAoQ2h1bmsqIGNodW5rID0gbV9jaHVua3MtPm1fcHJldmlvdXM7IGNodW5rOyBjaHVu
ayA9IGNodW5rLT5tX3ByZXZpb3VzKQotICAgICAgICAgICAgdmlzaXRFbnRyaWVzKHN0b3JlLCBj
aHVuay0+bV9lbnRyaWVzLCBjaHVuay0+bV9lbnRyaWVzICsgQ0hVTktfU0laRSwgdmlzaXRvcik7
Ci0gICAgfQotCi0gICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAotICAgIHsKLSAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nKTsK
LSAgICAgICAgZm9yIChDaHVuayogY2h1bmsgPSBtX2NodW5rczsgY2h1bms7IGNodW5rID0gY2h1
bmstPm1fcHJldmlvdXMpCi0gICAgICAgICAgICBpbmZvLmFkZE1lbWJlcihjaHVuayk7Ci0gICAg
fQotCi0gIHByaXZhdGU6Ci0gICAgc3RydWN0IENodW5rIHsKLSAgICAgICAgZXhwbGljaXQgQ2h1
bmsoQ2h1bmsqIHByZXZpb3VzKSA6IG1fcHJldmlvdXMocHJldmlvdXMpIHsgfQotICAgICAgICBD
aHVuayogY29uc3QgbV9wcmV2aW91czsKLSAgICAgICAgVCBtX2VudHJpZXNbQ0hVTktfU0laRV07
Ci0gICAgfTsKLQotICAgIHN0YXRpYyB2b2lkIGNsZWFyRW50cmllcyhUKiBmaXJzdCwgVCogbGFz
dCkKLSAgICB7Ci0gICAgICAgIGZvciAoVCogZW50cnkgPSBmaXJzdDsgZW50cnkgPCBsYXN0OyBl
bnRyeSsrKQotICAgICAgICAgICAgVHJhaXRzOjpjbGVhcihlbnRyeSk7Ci0gICAgfQotCi0gICAg
c3RhdGljIHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSogc3RvcmUsIFQqIGZpcnN0LCBU
KiBsYXN0LCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCi0gICAgewotICAgICAg
ICBmb3IgKFQqIGVudHJ5ID0gZmlyc3Q7IGVudHJ5IDwgbGFzdDsgZW50cnkrKykKLSAgICAgICAg
ICAgIFRyYWl0czo6dmlzaXQoc3RvcmUsIGVudHJ5LCB2aXNpdG9yKTsKLSAgICB9Ci0KLSAgICBD
aHVuayogbV9jaHVua3M7Ci0gICAgVCogbV9jdXJyZW50OwotICAgIFQqIG1fbGFzdDsKLX07Ci0K
LQogY2xhc3MgSW50cnVzaXZlRE9NV3JhcHBlck1hcCA6IHB1YmxpYyBBYnN0cmFjdFdlYWtSZWZl
cmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4gewogcHVibGljOgogICAgIEludHJ1c2l2ZURPTVdy
YXBwZXJNYXAodjg6OldlYWtSZWZlcmVuY2VDYWxsYmFjayBjYWxsYmFjaykKLSAgICAgICAgOiBB
YnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4oY2FsbGJhY2spIHsgfQor
ICAgICAgICA6IEFic3RyYWN0V2Vha1JlZmVyZW5jZU1hcDxOb2RlLCB2ODo6T2JqZWN0PihjYWxs
YmFjaykKKyAgICB7CisgICAgfQogCi0gICAgdmlydHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiBnZXQoTm9kZSogb2JqKQorICAgIHZpcnR1YWwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4gZ2V0KE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Piogd3JhcHBlciA9IG9iai0+d3JhcHBlcigpOwotICAgICAgICByZXR1cm4gd3JhcHBlciA/
ICp3cmFwcGVyIDogdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgcmV0dXJu
IG5vZGUtPndyYXBwZXIoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0KE5vZGUqIG9i
aiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0KE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCiAgICAg
ewotICAgICAgICBBU1NFUlQob2JqKTsKLSAgICAgICAgQVNTRVJUKCFvYmotPndyYXBwZXIoKSk7
Ci0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG1fdGFibGUuYWRk
KHdyYXBwZXIpOwotICAgICAgICBvYmotPnNldFdyYXBwZXIoZW50cnkpOwotICAgICAgICB3cmFw
cGVyLk1ha2VXZWFrKG9iaiwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOworICAgICAgICBBU1NF
UlQobm9kZSAmJiBub2RlLT53cmFwcGVyKCkuSXNFbXB0eSgpKTsKKyAgICAgICAgbV9ub2Rlcy5h
ZGQobm9kZSk7CisgICAgICAgIG5vZGUtPnNldFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIHdy
YXBwZXIuTWFrZVdlYWsobm9kZSwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhOb2RlKiBvYmopCisgICAgdmlydHVhbCBib29sIGNv
bnRhaW5zKE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gb2JqLT53cmFwcGVyKCk7
CisgICAgICAgIGJvb2wgbm9kZUhhc1dyYXBwZXIgPSAhbm9kZS0+d3JhcHBlcigpLklzRW1wdHko
KTsKKyAgICAgICAgQVNTRVJUKG5vZGVIYXNXcmFwcGVyID09IG1fbm9kZXMuY29udGFpbnMobm9k
ZSkpOworICAgICAgICByZXR1cm4gbm9kZUhhc1dyYXBwZXI7CiAgICAgfQogCiAgICAgdmlydHVh
bCB2b2lkIHZpc2l0KERPTURhdGFTdG9yZSogc3RvcmUsIFZpc2l0b3IqIHZpc2l0b3IpCiAgICAg
ewotICAgICAgICBtX3RhYmxlLnZpc2l0KHN0b3JlLCB2aXNpdG9yKTsKKyAgICAgICAgZm9yIChI
YXNoU2V0PE5vZGUqPjo6aXRlcmF0b3IgaXQgPSBtX25vZGVzLmJlZ2luKCk7IGl0ICE9IG1fbm9k
ZXMuZW5kKCk7ICsraXQpCisgICAgICAgICAgICB2aXNpdG9yLT52aXNpdERPTVdyYXBwZXIoc3Rv
cmUsICppdCwgKCppdCktPndyYXBwZXIoKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHJl
bW92ZUlmUHJlc2VudChOb2RlKiBvYmosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHZhbHVl
KQorICAgIHZpcnR1YWwgYm9vbCByZW1vdmVJZlByZXNlbnQoTm9kZSogbm9kZSwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQob2JqKTsKLSAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5ID0gb2JqLT53cmFwcGVyKCk7
Ci0gICAgICAgIGlmICghZW50cnkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGlmICgqZW50cnkgIT0gdmFsdWUpCisgICAgICAgIEFTU0VSVChub2RlKTsKKyAgICAgICAgdjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAg
ICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBvYmotPmNsZWFyV3JhcHBlcigpOwotICAgICAgICBtX3RhYmxlLnJlbW92ZShlbnRyeSk7
Ci0gICAgICAgIHZhbHVlLkRpc3Bvc2UoKTsKKyAgICAgICAgQVNTRVJUKHdyYXBwZXIgPT0gdmFs
dWUpOworICAgICAgICBub2RlLT5kaXNwb3NlV3JhcHBlcigpOworICAgICAgICBtX25vZGVzLnJl
bW92ZShub2RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0KICAgICB2aXJ0dWFs
IHZvaWQgY2xlYXIoKQogICAgIHsKLSAgICAgICAgbV90YWJsZS5jbGVhcigpOworICAgICAgICBt
X25vZGVzLmNsZWFyKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0IE9WRVJSSURFCiAg
ICAgewotICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcpOwotICAgICAgICBpbmZvLmFkZE1lbWJlciht
X3RhYmxlKTsKKyAgICAgICAgLy8gT09QUyEgRmlndXJlIG91dCB3aGF0IHRvIGRvIGhlcmUuCisg
ICAgICAgIC8vIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyk7CisgICAgICAgIC8vIGluZm8uYWRkTWVtYmVyKG1f
dGFibGUpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgaW50IGNvbnN0IG51bWJlck9m
RW50cmllcyA9ICgxIDw8IDEwKSAtIDE7Ci0KLSAgICBzdHJ1Y3QgQ2h1bmtlZFRhYmxlVHJhaXRz
IHsKLSAgICAgICAgdHlwZWRlZiBJbnRydXNpdmVET01XcmFwcGVyTWFwOjpWaXNpdG9yIFZpc2l0
b3I7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgbW92ZSh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
PiogdGFyZ2V0LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogc291cmNlKQotICAgICAgICB7
Ci0gICAgICAgICAgICAqdGFyZ2V0ID0gKnNvdXJjZTsKLSAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBWOE5vZGU6OnRvTmF0aXZlKCp0YXJnZXQpOwotICAgICAgICAgICAgQVNTRVJUKG5vZGUpOwot
ICAgICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcih0YXJnZXQpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgc3RhdGljIHZvaWQgY2xlYXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50
cnkpOwotICAgICAgICAgICAgQVNTRVJUKG5vZGUtPndyYXBwZXIoKSA9PSBlbnRyeSk7Ci0KLSAg
ICAgICAgICAgIG5vZGUtPmNsZWFyV3JhcHBlcigpOwotICAgICAgICAgICAgZW50cnktPkRpc3Bv
c2UoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0KERPTURhdGFTdG9y
ZSogc3RvcmUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSwgVmlzaXRvciogdmlz
aXRvcikKLSAgICAgICAgewotICAgICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRp
dmUoKmVudHJ5KTsKLSAgICAgICAgICAgIEFTU0VSVChub2RlLT53cmFwcGVyKCkgPT0gZW50cnkp
OwotCi0gICAgICAgICAgICB2aXNpdG9yLT52aXNpdERPTVdyYXBwZXIoc3RvcmUsIG5vZGUsICpl
bnRyeSk7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgdHlwZWRlZiBDaHVua2VkVGFibGU8djg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4sIG51bWJlck9mRW50cmllcywgQ2h1bmtlZFRhYmxlVHJh
aXRzPiBUYWJsZTsKLSAgICBUYWJsZSBtX3RhYmxlOworICAgIEhhc2hTZXQ8Tm9kZSo+IG1fbm9k
ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDI5MTVjYzdjOGU5MzIyNzQ2ZDkwMzMzMDhk
ZmNkNGMyMDMxNzNlYjguLjQ4OGNjOWE5MGY0YjIzYTkxMDkxZWRlMDEyMzE4ZTYxYzM4NzUwOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5oCkBAIC0z
OCwyOSArMzgsMzYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRXcmFwcGFi
bGUgewogcHVibGljOgotICAgIFNjcmlwdFdyYXBwYWJsZSgpIDogbV93cmFwcGVyKDApIHsgfQor
ICAgIFNjcmlwdFdyYXBwYWJsZSgpCisgICAgeworICAgIH0KIAotICAgIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+KiB3cmFwcGVyKCkgY29uc3QKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiB3cmFwcGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3dyYXBwZXI7CiAg
ICAgfQogCi0gICAgdm9pZCBzZXRXcmFwcGVyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3
cmFwcGVyKQorICAgIHZvaWQgc2V0V3JhcHBlcih2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3
cmFwcGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKHdyYXBwZXIpOworICAgICAgICBBU1NFUlQo
IXdyYXBwZXIuSXNFbXB0eSgpKTsKICAgICAgICAgbV93cmFwcGVyID0gd3JhcHBlcjsKICAgICB9
CiAKLSAgICB2b2lkIGNsZWFyV3JhcHBlcigpIHsgbV93cmFwcGVyID0gMDsgfQorICAgIHZvaWQg
ZGlzcG9zZVdyYXBwZXIoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX3dyYXBwZXIuSXNFbXB0
eSgpKTsKKyAgICAgICAgbV93cmFwcGVyLkRpc3Bvc2UoKTsKKyAgICAgICAgbV93cmFwcGVyLkNs
ZWFyKCk7CisgICAgfQogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00p
OwotICAgICAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fd3JhcHBlcik7CisgICAgICAgIGluZm8u
YWRkV2Vha1BvaW50ZXIoY29uc3RfY2FzdDx2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pio+KCZt
X3dyYXBwZXIpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4qIG1fd3JhcHBlcjsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBtX3dyYXBw
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5oCmluZGV4IGFkMWJjYWZkOWNlMGRjYzFlMWFkMTdhYTZlZDYxZmM1
MmJkYjAzMTAuLmZhZDgyYzk1ZGI1ZDQ5NDNjNzFmNDQzYzFjMTQ3ZDVlMzZjOWY4M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCkBAIC0xMTMsMTggKzExMywx
NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgICAgICAgICBpZiAoTElLRUxZKCFET01XcmFwcGVyV29ybGQ6
Omlzb2xhdGVkV29ybGRzRXhpc3QoKSkpIHsKLSAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6T2JqZWN0Piogd3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKLSAgICAgICAgICAgICAg
ICBpZiAoTElLRUxZKCEhd3JhcHBlcikpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAqd3Jh
cHBlcjsKKyAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gbm9kZS0+d3JhcHBlcigpOworICAgICAgICAgICAgICAgIGlmIChMSUtFTFkoIXdyYXBwZXIu
SXNFbXB0eSgpKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIFY4RE9NV2luZG93U2hlbGwqIGNvbnRleHQgPSBWOERPTVdp
bmRvd1NoZWxsOjpnZXRFbnRlcmVkKCk7Ci0gICAgICAgICAgICBpZiAoTElLRUxZKCFjb250ZXh0
KSkgewotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3cmFwcGVy
ID0gbm9kZS0+d3JhcHBlcigpOwotICAgICAgICAgICAgICAgIGlmICghd3JhcHBlcikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gKndyYXBwZXI7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
TElLRUxZKCFjb250ZXh0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS0+d3JhcHBlcigp
OworCiAgICAgICAgICAgICBET01EYXRhU3RvcmUqIHN0b3JlID0gY29udGV4dC0+d29ybGQoKS0+
ZG9tRGF0YVN0b3JlKCk7CiAgICAgICAgICAgICBET01Ob2RlTWFwcGluZyYgZG9tTm9kZU1hcCA9
IG5vZGUtPmlzQWN0aXZlTm9kZSgpID8gc3RvcmUtPmFjdGl2ZURvbU5vZGVNYXAoKSA6IHN0b3Jl
LT5kb21Ob2RlTWFwKCk7CiAgICAgICAgICAgICByZXR1cm4gZG9tTm9kZU1hcC5nZXQobm9kZSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166566</attachid>
            <date>2012-10-01 16:14:36 -0700</date>
            <delta_ts>2012-10-05 13:30:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97974-20121001161349.patch</filename>
            <type>text/plain</type>
            <size>12234</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNmYTcxZDIxNjc5NzY5
OWY2NjcwN2U2MjhmN2U0YjgzZjdiMDQ1OS4uYmNmMzk2NTVkODE0MmM3N2QwZDhkOTg4OWRiNjZk
NDQyMTg3MDgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTAxICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBTY3JpcHRXcmFwcGFi
bGUgc2hvdWxkIGhvbGQgdGhlIHdyYXBwZXIgaGFuZGxlIGRpcmVjdGx5IChEcm9tYWVvL2RvbS10
cmF2ZXJzZSBnZXRzIDQlIGZhc3RlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugc3RvcmVkIGEgcG9pbnRlciB0byBhIGhhbmRs
ZSB0byBhIHdyYXBwZXIgaW4gTm9kZS4gVGhhdAorICAgICAgICBpcyBhbiBleHRyYSBsYXllciBv
ZiBpbmRpcmVjdGlvbiB0aGF0IHNsb3dzIGRvd24gZmluZGluZyB0aGUgd3JhcHBlcgorICAgICAg
ICBmb3IgdGhlIG5vZGUuIEEgaGFuZGxlIGlzIGp1c3QgYSBwb2ludGVyLCBzbyB3ZSBtaWdodCBh
cyB3ZSBqdXN0IHN0b3JlCisgICAgICAgIHRoZSBoYW5kbGUgaW4gdGhlIE5vZGUgZGlyZWN0bHku
IFRoYXQgc3BlZWRzIHVwIGRvbS10cmF2ZXJzZSBieSBhYm91dCA0JS4KKworICAgICAgICBXZSB3
ZXJlIHVzaW5nIHRoZSBleHRyYSBsYXllciBvZiBpbmRpcmVjdGlvbiBpbiBJbnRydXNpdmVET01X
cmFwcGVyTWFwCisgICAgICAgIHRvIG1ha2UgcmVtb3ZhbCBtb3JlIGVmZmljaWVudC4gUmF0aGVy
IHRoYW4gdXNpbmcgYSBjaHVua2VkIHRhYmxlLCB3ZQorICAgICAgICBub3cgdXNlIGEgSGFzaFNl
dCwgd2hpY2ggYWxzbyBsZXRzIHVzIHJlbW92ZSBlbGVtZW50cyBxdWlja2x5LgorCisgICAgICAg
ICogYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6SW50cnVzaXZlRE9NV3JhcHBlck1hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1
c2l2ZURPTVdyYXBwZXJNYXA6OnZpc2l0KToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURP
TVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRydXNp
dmVET01XcmFwcGVyTWFwOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OlNjcmlwdFdyYXBw
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OndyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpzZXRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6ZGlzcG9zZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0V3JhcHBhYmxlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChTY3JpcHRX
cmFwcGFibGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKToKKwogMjAxMi0xMC0w
MSAgQXJwaXRhIEJhaHVndW5hICA8YXJwaXRhYmFodWd1bmFAZ21haWwuY29tPgogCiAgICAgICAg
IFJlbmRlckJsb2NrIGluY29ycmVjdGx5IGNhbGN1bGF0ZXMgcHJlZiB3aWR0aCB3aGVuIGEgcmVw
bGFjZWQgb2JqZWN0IGZvbGxvd3MgYSBSZW5kZXJJbmxpbmUgd2l0aCB3aWR0aApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCmluZGV4
IGFlMjBkMDM2OWIzNDEwM2EyODM0NTgzMGRhYjlmYjdjOGQ0YmFmZDAuLmE3N2UzZGFhODFhNDFk
MDM3NmVjODIxZTI5ZTUzZGNmMjZhZTY2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKQEAgLTM0LDE5NiArMzQsNjggQEAK
ICNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJWOE5vZGUuaCIKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0ZSA8Y2xhc3MgVCwgaW50IENIVU5L
X1NJWkUsIGNsYXNzIFRyYWl0cz4KLWNsYXNzIENodW5rZWRUYWJsZSB7Ci0gIHB1YmxpYzoKLSAg
ICBDaHVua2VkVGFibGUoKSA6IG1fY2h1bmtzKDApLCBtX2N1cnJlbnQoMCksIG1fbGFzdCgwKSB7
IH0KLQotICAgIFQqIGFkZChUIGVsZW1lbnQpCi0gICAgewotICAgICAgICBpZiAobV9jdXJyZW50
ID09IG1fbGFzdCkgewotICAgICAgICAgICAgbV9jaHVua3MgPSBuZXcgQ2h1bmsobV9jaHVua3Mp
OwotICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9jaHVua3MtPm1fZW50cmllczsKLSAgICAgICAg
ICAgIG1fbGFzdCA9IG1fY3VycmVudCArIENIVU5LX1NJWkU7Ci0gICAgICAgIH0KLSAgICAgICAg
QVNTRVJUKChtX2NodW5rcy0+bV9lbnRyaWVzIDw9IG1fY3VycmVudCkgJiYgKG1fY3VycmVudCA8
IG1fbGFzdCkpOwotICAgICAgICBUKiBwID0gbV9jdXJyZW50Kys7Ci0gICAgICAgICpwID0gZWxl
bWVudDsKLSAgICAgICAgcmV0dXJuIHA7Ci0gICAgfQotCi0gICAgdm9pZCByZW1vdmUoVCogZWxl
bWVudCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChlbGVtZW50KTsKLSAgICAgICAgQVNTRVJUKG1f
Y3VycmVudCA+IG1fY2h1bmtzLT5tX2VudHJpZXMpOwotICAgICAgICBtX2N1cnJlbnQtLTsKLSAg
ICAgICAgaWYgKGVsZW1lbnQgIT0gbV9jdXJyZW50KQotICAgICAgICAgICAgVHJhaXRzOjptb3Zl
KGVsZW1lbnQsIG1fY3VycmVudCk7Ci0gICAgICAgIGlmIChtX2N1cnJlbnQgPT0gbV9jaHVua3Mt
Pm1fZW50cmllcykgewotICAgICAgICAgICAgQ2h1bmsqIHRvRGVsZXRlID0gbV9jaHVua3M7Ci0g
ICAgICAgICAgICBtX2NodW5rcyA9IHRvRGVsZXRlLT5tX3ByZXZpb3VzOwotICAgICAgICAgICAg
bV9jdXJyZW50ID0gbV9sYXN0ID0gbV9jaHVua3MgPyBtX2NodW5rcy0+bV9lbnRyaWVzICsgQ0hV
TktfU0laRSA6IDA7Ci0gICAgICAgICAgICBkZWxldGUgdG9EZWxldGU7Ci0gICAgICAgIH0KLSAg
ICAgICAgQVNTRVJUKCFtX2NodW5rcyB8fCAoKG1fY2h1bmtzLT5tX2VudHJpZXMgPCBtX2N1cnJl
bnQpICYmIChtX2N1cnJlbnQgPD0gbV9sYXN0KSkpOwotICAgIH0KLQotICAgIHZvaWQgY2xlYXIo
KQotICAgIHsKLSAgICAgICAgaWYgKCFtX2NodW5rcykKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBjbGVhckVudHJpZXMobV9jaHVua3MtPm1fZW50cmllcywgbV9jdXJyZW50KTsKLSAg
ICAgICAgQ2h1bmsqIGxhc3QgPSBtX2NodW5rczsKLSAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAg
ICAgICAgICAgIENodW5rKiBwcmV2aW91cyA9IGxhc3QtPm1fcHJldmlvdXM7Ci0gICAgICAgICAg
ICBpZiAoIXByZXZpb3VzKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVs
ZXRlIGxhc3Q7Ci0gICAgICAgICAgICBjbGVhckVudHJpZXMocHJldmlvdXMtPm1fZW50cmllcywg
cHJldmlvdXMtPm1fZW50cmllcyArIENIVU5LX1NJWkUpOwotICAgICAgICAgICAgbGFzdCA9IHBy
ZXZpb3VzOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9jaHVua3MgPSBsYXN0OwotICAgICAgICBt
X2N1cnJlbnQgPSBtX2NodW5rcy0+bV9lbnRyaWVzOwotICAgICAgICBtX2xhc3QgPSBtX2N1cnJl
bnQgKyBDSFVOS19TSVpFOwotICAgIH0KLQotICAgIHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBz
dG9yZSwgdHlwZW5hbWUgVHJhaXRzOjpWaXNpdG9yKiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAg
aWYgKCFtX2NodW5rcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2aXNpdEVudHJp
ZXMoc3RvcmUsIG1fY2h1bmtzLT5tX2VudHJpZXMsIG1fY3VycmVudCwgdmlzaXRvcik7Ci0gICAg
ICAgIGZvciAoQ2h1bmsqIGNodW5rID0gbV9jaHVua3MtPm1fcHJldmlvdXM7IGNodW5rOyBjaHVu
ayA9IGNodW5rLT5tX3ByZXZpb3VzKQotICAgICAgICAgICAgdmlzaXRFbnRyaWVzKHN0b3JlLCBj
aHVuay0+bV9lbnRyaWVzLCBjaHVuay0+bV9lbnRyaWVzICsgQ0hVTktfU0laRSwgdmlzaXRvcik7
Ci0gICAgfQotCi0gICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAotICAgIHsKLSAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5kaW5nKTsK
LSAgICAgICAgZm9yIChDaHVuayogY2h1bmsgPSBtX2NodW5rczsgY2h1bms7IGNodW5rID0gY2h1
bmstPm1fcHJldmlvdXMpCi0gICAgICAgICAgICBpbmZvLmFkZE1lbWJlcihjaHVuayk7Ci0gICAg
fQotCi0gIHByaXZhdGU6Ci0gICAgc3RydWN0IENodW5rIHsKLSAgICAgICAgZXhwbGljaXQgQ2h1
bmsoQ2h1bmsqIHByZXZpb3VzKSA6IG1fcHJldmlvdXMocHJldmlvdXMpIHsgfQotICAgICAgICBD
aHVuayogY29uc3QgbV9wcmV2aW91czsKLSAgICAgICAgVCBtX2VudHJpZXNbQ0hVTktfU0laRV07
Ci0gICAgfTsKLQotICAgIHN0YXRpYyB2b2lkIGNsZWFyRW50cmllcyhUKiBmaXJzdCwgVCogbGFz
dCkKLSAgICB7Ci0gICAgICAgIGZvciAoVCogZW50cnkgPSBmaXJzdDsgZW50cnkgPCBsYXN0OyBl
bnRyeSsrKQotICAgICAgICAgICAgVHJhaXRzOjpjbGVhcihlbnRyeSk7Ci0gICAgfQotCi0gICAg
c3RhdGljIHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSogc3RvcmUsIFQqIGZpcnN0LCBU
KiBsYXN0LCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCi0gICAgewotICAgICAg
ICBmb3IgKFQqIGVudHJ5ID0gZmlyc3Q7IGVudHJ5IDwgbGFzdDsgZW50cnkrKykKLSAgICAgICAg
ICAgIFRyYWl0czo6dmlzaXQoc3RvcmUsIGVudHJ5LCB2aXNpdG9yKTsKLSAgICB9Ci0KLSAgICBD
aHVuayogbV9jaHVua3M7Ci0gICAgVCogbV9jdXJyZW50OwotICAgIFQqIG1fbGFzdDsKLX07Ci0K
LQogY2xhc3MgSW50cnVzaXZlRE9NV3JhcHBlck1hcCA6IHB1YmxpYyBBYnN0cmFjdFdlYWtSZWZl
cmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4gewogcHVibGljOgogICAgIEludHJ1c2l2ZURPTVdy
YXBwZXJNYXAodjg6OldlYWtSZWZlcmVuY2VDYWxsYmFjayBjYWxsYmFjaykKLSAgICAgICAgOiBB
YnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4oY2FsbGJhY2spIHsgfQor
ICAgICAgICA6IEFic3RyYWN0V2Vha1JlZmVyZW5jZU1hcDxOb2RlLCB2ODo6T2JqZWN0PihjYWxs
YmFjaykKKyAgICB7CisgICAgfQogCi0gICAgdmlydHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiBnZXQoTm9kZSogb2JqKQorICAgIHZpcnR1YWwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4gZ2V0KE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Piogd3JhcHBlciA9IG9iai0+d3JhcHBlcigpOwotICAgICAgICByZXR1cm4gd3JhcHBlciA/
ICp3cmFwcGVyIDogdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgcmV0dXJu
IG5vZGUtPndyYXBwZXIoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0KE5vZGUqIG9i
aiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0KE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCiAgICAg
ewotICAgICAgICBBU1NFUlQob2JqKTsKLSAgICAgICAgQVNTRVJUKCFvYmotPndyYXBwZXIoKSk7
Ci0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG1fdGFibGUuYWRk
KHdyYXBwZXIpOwotICAgICAgICBvYmotPnNldFdyYXBwZXIoZW50cnkpOwotICAgICAgICB3cmFw
cGVyLk1ha2VXZWFrKG9iaiwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOworICAgICAgICBBU1NF
UlQobm9kZSAmJiBub2RlLT53cmFwcGVyKCkuSXNFbXB0eSgpKTsKKyAgICAgICAgbV9ub2Rlcy5h
ZGQobm9kZSk7CisgICAgICAgIG5vZGUtPnNldFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIHdy
YXBwZXIuTWFrZVdlYWsobm9kZSwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhOb2RlKiBvYmopCisgICAgdmlydHVhbCBib29sIGNv
bnRhaW5zKE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gb2JqLT53cmFwcGVyKCk7
CisgICAgICAgIGJvb2wgbm9kZUhhc1dyYXBwZXIgPSAhbm9kZS0+d3JhcHBlcigpLklzRW1wdHko
KTsKKyAgICAgICAgQVNTRVJUKG5vZGVIYXNXcmFwcGVyID09IG1fbm9kZXMuY29udGFpbnMobm9k
ZSkpOworICAgICAgICByZXR1cm4gbm9kZUhhc1dyYXBwZXI7CiAgICAgfQogCiAgICAgdmlydHVh
bCB2b2lkIHZpc2l0KERPTURhdGFTdG9yZSogc3RvcmUsIFZpc2l0b3IqIHZpc2l0b3IpCiAgICAg
ewotICAgICAgICBtX3RhYmxlLnZpc2l0KHN0b3JlLCB2aXNpdG9yKTsKKyAgICAgICAgZm9yIChI
YXNoU2V0PE5vZGUqPjo6aXRlcmF0b3IgaXQgPSBtX25vZGVzLmJlZ2luKCk7IGl0ICE9IG1fbm9k
ZXMuZW5kKCk7ICsraXQpCisgICAgICAgICAgICB2aXNpdG9yLT52aXNpdERPTVdyYXBwZXIoc3Rv
cmUsICppdCwgKCppdCktPndyYXBwZXIoKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHJl
bW92ZUlmUHJlc2VudChOb2RlKiBvYmosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHZhbHVl
KQorICAgIHZpcnR1YWwgYm9vbCByZW1vdmVJZlByZXNlbnQoTm9kZSogbm9kZSwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gdmFsdWUpCiAgICAgewotICAgICAgICBBU1NFUlQob2JqKTsKLSAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5ID0gb2JqLT53cmFwcGVyKCk7
Ci0gICAgICAgIGlmICghZW50cnkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGlmICgqZW50cnkgIT0gdmFsdWUpCisgICAgICAgIEFTU0VSVChub2RlKTsKKyAgICAgICAgdjg6
OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAg
ICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBvYmotPmNsZWFyV3JhcHBlcigpOwotICAgICAgICBtX3RhYmxlLnJlbW92ZShlbnRyeSk7
Ci0gICAgICAgIHZhbHVlLkRpc3Bvc2UoKTsKKyAgICAgICAgQVNTRVJUKHdyYXBwZXIgPT0gdmFs
dWUpOworICAgICAgICBub2RlLT5kaXNwb3NlV3JhcHBlcigpOworICAgICAgICBtX25vZGVzLnJl
bW92ZShub2RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0KICAgICB2aXJ0dWFs
IHZvaWQgY2xlYXIoKQogICAgIHsKLSAgICAgICAgbV90YWJsZS5jbGVhcigpOworICAgICAgICBt
X25vZGVzLmNsZWFyKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0IE9WRVJSSURFCiAg
ICAgewogICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcpOwotICAgICAgICBpbmZvLmFkZE1lbWJlciht
X3RhYmxlKTsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIobV9ub2Rlcyk7CiAgICAgfQogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBpbnQgY29uc3QgbnVtYmVyT2ZFbnRyaWVzID0gKDEgPDwgMTApIC0g
MTsKLQotICAgIHN0cnVjdCBDaHVua2VkVGFibGVUcmFpdHMgewotICAgICAgICB0eXBlZGVmIElu
dHJ1c2l2ZURPTVdyYXBwZXJNYXA6OlZpc2l0b3IgVmlzaXRvcjsKLQotICAgICAgICBzdGF0aWMg
dm9pZCBtb3ZlKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB0YXJnZXQsIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+KiBzb3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgICp0YXJnZXQg
PSAqc291cmNlOwotICAgICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUoKnRh
cmdldCk7Ci0gICAgICAgICAgICBBU1NFUlQobm9kZSk7Ci0gICAgICAgICAgICBub2RlLT5zZXRX
cmFwcGVyKHRhcmdldCk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgdm9pZCBjbGVhcih2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnkpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKCplbnRyeSk7Ci0gICAgICAgICAgICBBU1NF
UlQobm9kZS0+d3JhcHBlcigpID09IGVudHJ5KTsKLQotICAgICAgICAgICAgbm9kZS0+Y2xlYXJX
cmFwcGVyKCk7Ci0gICAgICAgICAgICBlbnRyeS0+RGlzcG9zZSgpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgc3RhdGljIHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4qIGVudHJ5LCBWaXNpdG9yKiB2aXNpdG9yKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50cnkpOwotICAgICAgICAg
ICAgQVNTRVJUKG5vZGUtPndyYXBwZXIoKSA9PSBlbnRyeSk7Ci0KLSAgICAgICAgICAgIHZpc2l0
b3ItPnZpc2l0RE9NV3JhcHBlcihzdG9yZSwgbm9kZSwgKmVudHJ5KTsKLSAgICAgICAgfQotICAg
IH07Ci0KLSAgICB0eXBlZGVmIENodW5rZWRUYWJsZTx2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
PiwgbnVtYmVyT2ZFbnRyaWVzLCBDaHVua2VkVGFibGVUcmFpdHM+IFRhYmxlOwotICAgIFRhYmxl
IG1fdGFibGU7CisgICAgSGFzaFNldDxOb2RlKj4gbV9ub2RlczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Njcmlw
dFdyYXBwYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxl
LmgKaW5kZXggMjkxNWNjN2M4ZTkzMjI3NDZkOTAzMzMwOGRmY2Q0YzIwMzE3M2ViOC4uNDg4Y2M5
YTkwZjRiMjNhOTEwOTFlZGUwMTIzMThlNjFjMzg3NTA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmgKQEAgLTM4LDI5ICszOCwzNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdFdyYXBwYWJsZSB7CiBwdWJsaWM6Ci0gICAgU2Ny
aXB0V3JhcHBhYmxlKCkgOiBtX3dyYXBwZXIoMCkgeyB9CisgICAgU2NyaXB0V3JhcHBhYmxlKCkK
KyAgICB7CisgICAgfQogCi0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIo
KSBjb25zdAorICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fd3JhcHBlcjsKICAgICB9CiAKLSAgICB2b2lkIHNldFdy
YXBwZXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIpCisgICAgdm9pZCBzZXRX
cmFwcGVyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCiAgICAgewotICAgICAg
ICBBU1NFUlQod3JhcHBlcik7CisgICAgICAgIEFTU0VSVCghd3JhcHBlci5Jc0VtcHR5KCkpOwog
ICAgICAgICBtX3dyYXBwZXIgPSB3cmFwcGVyOwogICAgIH0KIAotICAgIHZvaWQgY2xlYXJXcmFw
cGVyKCkgeyBtX3dyYXBwZXIgPSAwOyB9CisgICAgdm9pZCBkaXNwb3NlV3JhcHBlcigpCisgICAg
eworICAgICAgICBBU1NFUlQoIW1fd3JhcHBlci5Jc0VtcHR5KCkpOworICAgICAgICBtX3dyYXBw
ZXIuRGlzcG9zZSgpOworICAgICAgICBtX3dyYXBwZXIuQ2xlYXIoKTsKKyAgICB9CiAKICAgICB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0CiAgICAgewogICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7Ci0gICAgICAgIGluZm8uYWRkV2Vh
a1BvaW50ZXIobV93cmFwcGVyKTsKKyAgICAgICAgaW5mby5hZGRXZWFrUG9pbnRlcihjb25zdF9j
YXN0PHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+Kj4oJm1fd3JhcHBlcikpOwogICAgIH0KIAog
cHJpdmF0ZToKLSAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogbV93cmFwcGVyOworICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fd3JhcHBlcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKaW5k
ZXggYWQxYmNhZmQ5Y2UwZGNjMWUxYWQxN2FhNmVkNjFmYzUyYmRiMDMxMC4uZmFkODJjOTVkYjVk
NDk0M2M3MWY0NDNjMWMxNDdkNWUzNmM5ZjgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmgKQEAgLTExMywxOCArMTEzLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAg
ICAgICAgIGlmIChMSUtFTFkoIURPTVdyYXBwZXJXb3JsZDo6aXNvbGF0ZWRXb3JsZHNFeGlzdCgp
KSkgewotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3cmFwcGVy
ID0gbm9kZS0+d3JhcHBlcigpOwotICAgICAgICAgICAgICAgIGlmIChMSUtFTFkoISF3cmFwcGVy
KSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICp3cmFwcGVyOworICAgICAgICAgICAgICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7Cisg
ICAgICAgICAgICAgICAgaWYgKExJS0VMWSghd3JhcHBlci5Jc0VtcHR5KCkpKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
VjhET01XaW5kb3dTaGVsbCogY29udGV4dCA9IFY4RE9NV2luZG93U2hlbGw6OmdldEVudGVyZWQo
KTsKLSAgICAgICAgICAgIGlmIChMSUtFTFkoIWNvbnRleHQpKSB7Ci0gICAgICAgICAgICAgICAg
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCF3cmFwcGVyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
djg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwotICAgICAgICAgICAgICAgIHJldHVybiAqd3JhcHBl
cjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChMSUtFTFkoIWNvbnRleHQpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBub2RlLT53cmFwcGVyKCk7CisKICAgICAgICAgICAgIERPTURh
dGFTdG9yZSogc3RvcmUgPSBjb250ZXh0LT53b3JsZCgpLT5kb21EYXRhU3RvcmUoKTsKICAgICAg
ICAgICAgIERPTU5vZGVNYXBwaW5nJiBkb21Ob2RlTWFwID0gbm9kZS0+aXNBY3RpdmVOb2RlKCkg
PyBzdG9yZS0+YWN0aXZlRG9tTm9kZU1hcCgpIDogc3RvcmUtPmRvbU5vZGVNYXAoKTsKICAgICAg
ICAgICAgIHJldHVybiBkb21Ob2RlTWFwLmdldChub2RlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167375</attachid>
            <date>2012-10-05 13:30:50 -0700</date>
            <delta_ts>2012-10-22 14:45:01 -0700</delta_ts>
            <desc>work-in-progress</desc>
            <filename>bug-97974-20121005133009.patch</filename>
            <type>text/plain</type>
            <size>16284</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFiMTBiOTg4MGFjMjQz
NDE1YzRiY2Q4YjZlYjgwYjhhMTIwYjIxOC4uZGNiNzlhYTdhZGYyNTg4ZjEwZDFhMWJjNzNiZWQ0
OTZlZTIyZDI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBTY3JpcHRXcmFwcGFi
bGUgc2hvdWxkIGhvbGQgdGhlIHdyYXBwZXIgaGFuZGxlIGRpcmVjdGx5IChEcm9tYWVvL2RvbS10
cmF2ZXJzZSBnZXRzIDQlIGZhc3RlcikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugc3RvcmVkIGEgcG9pbnRlciB0byBhIGhhbmRs
ZSB0byBhIHdyYXBwZXIgaW4gTm9kZS4gVGhhdAorICAgICAgICBpcyBhbiBleHRyYSBsYXllciBv
ZiBpbmRpcmVjdGlvbiB0aGF0IHNsb3dzIGRvd24gZmluZGluZyB0aGUgd3JhcHBlcgorICAgICAg
ICBmb3IgdGhlIG5vZGUuIEEgaGFuZGxlIGlzIGp1c3QgYSBwb2ludGVyLCBzbyB3ZSBtaWdodCBh
cyB3ZSBqdXN0IHN0b3JlCisgICAgICAgIHRoZSBoYW5kbGUgaW4gdGhlIE5vZGUgZGlyZWN0bHku
IFRoYXQgc3BlZWRzIHVwIGRvbS10cmF2ZXJzZSBieSBhYm91dCA0JS4KKworICAgICAgICBXZSB3
ZXJlIHVzaW5nIHRoZSBleHRyYSBsYXllciBvZiBpbmRpcmVjdGlvbiBpbiBJbnRydXNpdmVET01X
cmFwcGVyTWFwCisgICAgICAgIHRvIG1ha2UgcmVtb3ZhbCBtb3JlIGVmZmljaWVudC4gUmF0aGVy
IHRoYW4gdXNpbmcgYSBjaHVua2VkIHRhYmxlLCB3ZQorICAgICAgICBub3cgdXNlIGEgSGFzaFNl
dCwgd2hpY2ggYWxzbyBsZXRzIHVzIHJlbW92ZSBlbGVtZW50cyBxdWlja2x5LgorCisgICAgICAg
ICogYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6SW50cnVzaXZlRE9NV3JhcHBlck1hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1
c2l2ZURPTVdyYXBwZXJNYXA6OnZpc2l0KToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURP
TVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRydXNp
dmVET01XcmFwcGVyTWFwOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OlNjcmlwdFdyYXBw
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OndyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpzZXRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6ZGlzcG9zZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0V3JhcHBhYmxlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChTY3JpcHRX
cmFwcGFibGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKToKKwogMjAxMi0xMC0w
NCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3IgZG9lcyBub3QgbmVlZCB0byBjb3B5IFF1YWxpZmllZE5hbWUgaW4gdGhl
IGNvbW1vbiBjYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01E
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhLmgKaW5kZXggN2RmOWRm
ZGJhOWUyOGFlMWVkNGY1NDM4MDU0NjA0NmU1NjA5NmRkYi4uOGY5MGI4NzNlZTNjNjY4OTU1MzBh
NWE3NWRhMDJmMTgxMTY5NzQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvRE9NRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGEuaApA
QCAtODAsNyArODAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBET01EYXRh
U3RvcmUqIHN0b3JlID0gbGlzdFtpXTsKIAogICAgICAgICAgICAgRE9NV3JhcHBlck1hcDxUPiog
ZG9tTWFwID0gc3RhdGljX2Nhc3Q8RE9NV3JhcHBlck1hcDxUPio+KHN0b3JlLT5nZXRET01XcmFw
cGVyTWFwKG1hcFR5cGUpKTsKLSAgICAgICAgICAgIGlmIChkb21NYXAtPnJlbW92ZUlmUHJlc2Vu
dChkb21PYmplY3QsIHY4T2JqZWN0KSkgeworICAgICAgICAgICAgaWYgKGRvbU1hcC0+cmVtb3Zl
SWZQcmVzZW50KGRvbU9iamVjdCwgdjhPYmplY3QsIDApKSB7CiAgICAgICAgICAgICAgICAgZGVy
ZWZPYmplY3QodHlwZSwgZG9tT2JqZWN0KTsKICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9E
T01EYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3Jl
LmNwcAppbmRleCBkYzA4OTZjZjNiNzAyMDdmZmY3MTMxZGU3MThiMjFmYjdkOWYyMWYzLi4wMjFm
ZjM5NDFjZmVhZWZjY2MxYjU3NjBlNmE0ZjYxNDY2ZGEzODRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAKQEAgLTE0NCwxOSArMTQ0LDE4IEBAIHZvaWQg
RE9NRGF0YVN0b3JlOjp3ZWFrQWN0aXZlRE9NT2JqZWN0Q2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8
djg6OlZhbHVlPiB2OE9iamVjCiAgICAgRE9NRGF0YTo6aGFuZGxlV2Vha09iamVjdChET01EYXRh
U3RvcmU6OkFjdGl2ZURPTU9iamVjdE1hcCwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46OkNh
c3QodjhPYmplY3QpLCBkb21PYmplY3QpOwogfQogCi12b2lkIERPTURhdGFTdG9yZTo6d2Vha05v
ZGVDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IHZhbHVlLCB2b2lkKiBkb21PYmpl
Y3QpCit2b2lkIERPTURhdGFTdG9yZTo6d2Vha05vZGVDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2
ODo6VmFsdWU+IHZhbHVlLCB2b2lkKiBjb250ZXh0KQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKLSAgICBOb2RlKiBub2RlID0gc3RhdGljX2Nhc3Q8Tm9kZSo+KGRvbU9iamVjdCk7
Ci0gICAgLy8gTm9kZSB3cmFwcGVycyBtdXN0IGJlIEpTIG9iamVjdHMuCiAgICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gdjhPYmplY3QgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6
Q2FzdCh2YWx1ZSk7CisgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUodjhPYmplY3Qp
OwogCiAgICAgRE9NRGF0YUxpc3QmIGxpc3QgPSBET01EYXRhU3RvcmU6OmFsbFN0b3JlcygpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgewogICAgICAgICBE
T01EYXRhU3RvcmUqIHN0b3JlID0gbGlzdFtpXTsKICAgICAgICAgRE9NTm9kZU1hcHBpbmcmIG5v
ZGVNYXAgPSBub2RlLT5pc0FjdGl2ZU5vZGUoKSA/IHN0b3JlLT5hY3RpdmVEb21Ob2RlTWFwKCkg
OiBzdG9yZS0+ZG9tTm9kZU1hcCgpOwotICAgICAgICBpZiAobm9kZU1hcC5yZW1vdmVJZlByZXNl
bnQobm9kZSwgdjhPYmplY3QpKSB7CisgICAgICAgIGlmIChub2RlTWFwLnJlbW92ZUlmUHJlc2Vu
dChub2RlLCB2OE9iamVjdCwgY29udGV4dCkpIHsKICAgICAgICAgICAgIG5vZGUtPmRlcmVmKCk7
IC8vIE5vYm9keSBvdmVycmlkZXMgTm9kZTo6ZGVyZWYgc28gaXQncyBzYWZlCiAgICAgICAgICAg
ICByZXR1cm47IC8vIFRoZXJlIG1pZ2h0IGJlIGF0IG1vc3Qgb25lIHdyYXBwZXIgZm9yIHRoZSBu
b2RlIGluIHdvcmxkJ3MgbWFwcwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKaW5kZXggYWUyMGQwMzY5YjM0MTAz
YTI4MzQ1ODMwZGFiOWZiN2M4ZDRiYWZkMC4uOTFjZjc4MTg5NWYxZjA1MjIxYWYzNzQ3NWRmYTEx
NjNlOWNlNDhkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVz
aXZlRE9NV3JhcHBlck1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1
c2l2ZURPTVdyYXBwZXJNYXAuaApAQCAtMzQsMTk2ICszNCw5NyBAQAogI2luY2x1ZGUgIkRPTURh
dGFTdG9yZS5oIgogI2luY2x1ZGUgIlY4Tm9kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXRlbXBsYXRlIDxjbGFzcyBULCBpbnQgQ0hVTktfU0laRSwgY2xhc3MgVHJh
aXRzPgotY2xhc3MgQ2h1bmtlZFRhYmxlIHsKLSAgcHVibGljOgotICAgIENodW5rZWRUYWJsZSgp
IDogbV9jaHVua3MoMCksIG1fY3VycmVudCgwKSwgbV9sYXN0KDApIHsgfQotCi0gICAgVCogYWRk
KFQgZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2N1cnJlbnQgPT0gbV9sYXN0KSB7Ci0g
ICAgICAgICAgICBtX2NodW5rcyA9IG5ldyBDaHVuayhtX2NodW5rcyk7Ci0gICAgICAgICAgICBt
X2N1cnJlbnQgPSBtX2NodW5rcy0+bV9lbnRyaWVzOwotICAgICAgICAgICAgbV9sYXN0ID0gbV9j
dXJyZW50ICsgQ0hVTktfU0laRTsKLSAgICAgICAgfQotICAgICAgICBBU1NFUlQoKG1fY2h1bmtz
LT5tX2VudHJpZXMgPD0gbV9jdXJyZW50KSAmJiAobV9jdXJyZW50IDwgbV9sYXN0KSk7Ci0gICAg
ICAgIFQqIHAgPSBtX2N1cnJlbnQrKzsKLSAgICAgICAgKnAgPSBlbGVtZW50OwotICAgICAgICBy
ZXR1cm4gcDsKLSAgICB9Ci0KLSAgICB2b2lkIHJlbW92ZShUKiBlbGVtZW50KQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKGVsZW1lbnQpOwotICAgICAgICBBU1NFUlQobV9jdXJyZW50ID4gbV9jaHVu
a3MtPm1fZW50cmllcyk7Ci0gICAgICAgIG1fY3VycmVudC0tOwotICAgICAgICBpZiAoZWxlbWVu
dCAhPSBtX2N1cnJlbnQpCi0gICAgICAgICAgICBUcmFpdHM6Om1vdmUoZWxlbWVudCwgbV9jdXJy
ZW50KTsKLSAgICAgICAgaWYgKG1fY3VycmVudCA9PSBtX2NodW5rcy0+bV9lbnRyaWVzKSB7Ci0g
ICAgICAgICAgICBDaHVuayogdG9EZWxldGUgPSBtX2NodW5rczsKLSAgICAgICAgICAgIG1fY2h1
bmtzID0gdG9EZWxldGUtPm1fcHJldmlvdXM7Ci0gICAgICAgICAgICBtX2N1cnJlbnQgPSBtX2xh
c3QgPSBtX2NodW5rcyA/IG1fY2h1bmtzLT5tX2VudHJpZXMgKyBDSFVOS19TSVpFIDogMDsKLSAg
ICAgICAgICAgIGRlbGV0ZSB0b0RlbGV0ZTsKLSAgICAgICAgfQotICAgICAgICBBU1NFUlQoIW1f
Y2h1bmtzIHx8ICgobV9jaHVua3MtPm1fZW50cmllcyA8IG1fY3VycmVudCkgJiYgKG1fY3VycmVu
dCA8PSBtX2xhc3QpKSk7Ci0gICAgfQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIFZlY3Rv
clNldCB7CitwdWJsaWM6CisgICAgVmVjdG9yU2V0KCkgOiBtX2ZyZWVJbmRleCgwKSB7IH0KIAot
ICAgIHZvaWQgY2xlYXIoKQorICAgIHNpemVfdCBpbnNlcnQoVCogaXRlbSkKICAgICB7Ci0gICAg
ICAgIGlmICghbV9jaHVua3MpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY2xlYXJF
bnRyaWVzKG1fY2h1bmtzLT5tX2VudHJpZXMsIG1fY3VycmVudCk7Ci0gICAgICAgIENodW5rKiBs
YXN0ID0gbV9jaHVua3M7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICBDaHVu
ayogcHJldmlvdXMgPSBsYXN0LT5tX3ByZXZpb3VzOwotICAgICAgICAgICAgaWYgKCFwcmV2aW91
cykKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlbGV0ZSBsYXN0OwotICAg
ICAgICAgICAgY2xlYXJFbnRyaWVzKHByZXZpb3VzLT5tX2VudHJpZXMsIHByZXZpb3VzLT5tX2Vu
dHJpZXMgKyBDSFVOS19TSVpFKTsKLSAgICAgICAgICAgIGxhc3QgPSBwcmV2aW91czsKKyAgICAg
ICAgaWYgKG1fZnJlZUluZGV4ID09IG1faXRlbXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBtX2l0
ZW1zLmFwcGVuZChpdGVtKTsKKyAgICAgICAgICAgIHJldHVybiBtX2ZyZWVJbmRleCsrOwogICAg
ICAgICB9Ci0KLSAgICAgICAgbV9jaHVua3MgPSBsYXN0OwotICAgICAgICBtX2N1cnJlbnQgPSBt
X2NodW5rcy0+bV9lbnRyaWVzOwotICAgICAgICBtX2xhc3QgPSBtX2N1cnJlbnQgKyBDSFVOS19T
SVpFOworICAgICAgICBzaXplX3QgaW5zZXJ0aW9uSW5kZXggPSBtX2ZyZWVJbmRleDsKKyAgICAg
ICAgbV9mcmVlSW5kZXggPSByZWludGVycHJldF9jYXN0PHNpemVfdD4obV9pdGVtc1tpbnNlcnRp
b25JbmRleF0pOworICAgICAgICBtX2l0ZW1zW2luc2VydGlvbkluZGV4XSA9IGl0ZW07CisgICAg
ICAgIHJldHVybiBpbnNlcnRpb25JbmRleDsKICAgICB9CiAKLSAgICB2b2lkIHZpc2l0KERPTURh
dGFTdG9yZSogc3RvcmUsIHR5cGVuYW1lIFRyYWl0czo6VmlzaXRvciogdmlzaXRvcikKLSAgICB7
Ci0gICAgICAgIGlmICghbV9jaHVua3MpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
dmlzaXRFbnRyaWVzKHN0b3JlLCBtX2NodW5rcy0+bV9lbnRyaWVzLCBtX2N1cnJlbnQsIHZpc2l0
b3IpOwotICAgICAgICBmb3IgKENodW5rKiBjaHVuayA9IG1fY2h1bmtzLT5tX3ByZXZpb3VzOyBj
aHVuazsgY2h1bmsgPSBjaHVuay0+bV9wcmV2aW91cykKLSAgICAgICAgICAgIHZpc2l0RW50cmll
cyhzdG9yZSwgY2h1bmstPm1fZW50cmllcywgY2h1bmstPm1fZW50cmllcyArIENIVU5LX1NJWkUs
IHZpc2l0b3IpOwotICAgIH0KLQotICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKLSAgICB7Ci0gICAgICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6
QmluZGluZyk7Ci0gICAgICAgIGZvciAoQ2h1bmsqIGNodW5rID0gbV9jaHVua3M7IGNodW5rOyBj
aHVuayA9IGNodW5rLT5tX3ByZXZpb3VzKQotICAgICAgICAgICAgaW5mby5hZGRNZW1iZXIoY2h1
bmspOwotICAgIH0KLQotICBwcml2YXRlOgotICAgIHN0cnVjdCBDaHVuayB7Ci0gICAgICAgIGV4
cGxpY2l0IENodW5rKENodW5rKiBwcmV2aW91cykgOiBtX3ByZXZpb3VzKHByZXZpb3VzKSB7IH0K
LSAgICAgICAgQ2h1bmsqIGNvbnN0IG1fcHJldmlvdXM7Ci0gICAgICAgIFQgbV9lbnRyaWVzW0NI
VU5LX1NJWkVdOwotICAgIH07Ci0KLSAgICBzdGF0aWMgdm9pZCBjbGVhckVudHJpZXMoVCogZmly
c3QsIFQqIGxhc3QpCisgICAgdm9pZCByZW1vdmUoc2l6ZV90IGluZGV4KQogICAgIHsKLSAgICAg
ICAgZm9yIChUKiBlbnRyeSA9IGZpcnN0OyBlbnRyeSA8IGxhc3Q7IGVudHJ5KyspCi0gICAgICAg
ICAgICBUcmFpdHM6OmNsZWFyKGVudHJ5KTsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgaXRlbXMu
c2l6ZSgpKTsKKyAgICAgICAgbV9pdGVtc1tpbmRleF0gPSByZWludGVycHJldF9jYXN0PHZvaWQq
PihtX2ZyZWVJbmRleCk7CisgICAgICAgIG1fZnJlZUluZGV4ID0gaW5kZXg7CiAgICAgfQogCi0g
ICAgc3RhdGljIHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSogc3RvcmUsIFQqIGZpcnN0
LCBUKiBsYXN0LCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCi0gICAgewotICAg
ICAgICBmb3IgKFQqIGVudHJ5ID0gZmlyc3Q7IGVudHJ5IDwgbGFzdDsgZW50cnkrKykKLSAgICAg
ICAgICAgIFRyYWl0czo6dmlzaXQoc3RvcmUsIGVudHJ5LCB2aXNpdG9yKTsKLSAgICB9Ci0KLSAg
ICBDaHVuayogbV9jaHVua3M7Ci0gICAgVCogbV9jdXJyZW50OwotICAgIFQqIG1fbGFzdDsKK3By
aXZhdGU6CisgICAgc2l6ZV90IG1fZnJlZUluZGV4OworICAgIFZlY3RvcjxUKj4gbV9pdGVtczsK
IH07CiAKLQogY2xhc3MgSW50cnVzaXZlRE9NV3JhcHBlck1hcCA6IHB1YmxpYyBBYnN0cmFjdFdl
YWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4gewogcHVibGljOgogICAgIEludHJ1c2l2
ZURPTVdyYXBwZXJNYXAodjg6OldlYWtSZWZlcmVuY2VDYWxsYmFjayBjYWxsYmFjaykKLSAgICAg
ICAgOiBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4oY2FsbGJhY2sp
IHsgfQorICAgICAgICA6IEFic3RyYWN0V2Vha1JlZmVyZW5jZU1hcDxOb2RlLCB2ODo6T2JqZWN0
PihjYWxsYmFjaykKKyAgICB7CisgICAgfQogCi0gICAgdmlydHVhbCB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiBnZXQoTm9kZSogb2JqKQorICAgIHZpcnR1YWwgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4gZ2V0KE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0Piogd3JhcHBlciA9IG9iai0+d3JhcHBlcigpOwotICAgICAgICByZXR1cm4gd3Jh
cHBlciA/ICp3cmFwcGVyIDogdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4oKTsKKyAgICAgICAg
cmV0dXJuIG5vZGUtPndyYXBwZXIoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0KE5v
ZGUqIG9iaiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0KE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIp
CiAgICAgewotICAgICAgICBBU1NFUlQob2JqKTsKLSAgICAgICAgQVNTRVJUKCFvYmotPndyYXBw
ZXIoKSk7Ci0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG1fdGFi
bGUuYWRkKHdyYXBwZXIpOwotICAgICAgICBvYmotPnNldFdyYXBwZXIoZW50cnkpOwotICAgICAg
ICB3cmFwcGVyLk1ha2VXZWFrKG9iaiwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOworICAgICAg
ICBBU1NFUlQobm9kZSAmJiBub2RlLT53cmFwcGVyKCkuSXNFbXB0eSgpKTsKKyAgICAgICAgc2l6
ZV90IGluZGV4ID0gaW5zZXJ0KG5vZGUpOworICAgICAgICBub2RlLT5zZXRXcmFwcGVyKHdyYXBw
ZXIpOworICAgICAgICB3cmFwcGVyLk1ha2VXZWFrKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGlu
ZGV4KSwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBjb250YWlucyhOb2RlKiBvYmopCisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKE5vZGUqIG5v
ZGUpCiAgICAgewotICAgICAgICByZXR1cm4gb2JqLT53cmFwcGVyKCk7CisgICAgICAgIGJvb2wg
bm9kZUhhc1dyYXBwZXIgPSAhbm9kZS0+d3JhcHBlcigpLklzRW1wdHkoKTsKKyAgICAgICAgcmV0
dXJuIG5vZGVIYXNXcmFwcGVyOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCB2aXNpdChET01E
YXRhU3RvcmUqIHN0b3JlLCBWaXNpdG9yKiB2aXNpdG9yKQogICAgIHsKLSAgICAgICAgbV90YWJs
ZS52aXNpdChzdG9yZSwgdmlzaXRvcik7CisgICAgICAgIGZvciAoSGFzaFNldDxOb2RlKj46Oml0
ZXJhdG9yIGl0ID0gbV9ub2Rlcy5iZWdpbigpOyBpdCAhPSBtX25vZGVzLmVuZCgpOyArK2l0KQor
ICAgICAgICAgICAgdmlzaXRvci0+dmlzaXRET01XcmFwcGVyKHN0b3JlLCAqaXQsICgqaXQpLT53
cmFwcGVyKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCByZW1vdmVJZlByZXNlbnQoTm9k
ZSogb2JqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB2YWx1ZSkKKyAgICB2aXJ0dWFsIGJv
b2wgcmVtb3ZlSWZQcmVzZW50KE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IHZhbHVlLCB2b2lkKiBjb250ZXh0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG9iaik7Ci0gICAg
ICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG9iai0+d3JhcHBlcigpOwot
ICAgICAgICBpZiAoIWVudHJ5KQorICAgICAgICBBU1NFUlQobm9kZSk7CisgICAgICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7CisgICAgICAg
IGlmICh3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKCplbnRyeSAhPSB2YWx1ZSkKKyAgICAgICAgaWYgKHdyYXBwZXIgIT0gdmFsdWUpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG9iai0+Y2xlYXJXcmFwcGVyKCk7Ci0g
ICAgICAgIG1fdGFibGUucmVtb3ZlKGVudHJ5KTsKLSAgICAgICAgdmFsdWUuRGlzcG9zZSgpOwor
ICAgICAgICBub2RlLT5kaXNwb3NlV3JhcHBlcigpOworICAgICAgICBtX25vZGVzLnJlbW92ZShy
ZWludGVycHJldF9jYXN0PHNpemVfdD4oY29udGV4dCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKLQogICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpCiAgICAgewotICAgICAgICBtX3Rh
YmxlLmNsZWFyKCk7CisgICAgICAgIG1fbm9kZXMuY2xlYXIoKTsKICAgICB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyk7Ci0g
ICAgICAgIGluZm8uYWRkTWVtYmVyKG1fdGFibGUpOworICAgICAgICBpbmZvLmFkZE1lbWJlciht
X25vZGVzKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIGludCBjb25zdCBudW1iZXJP
ZkVudHJpZXMgPSAoMSA8PCAxMCkgLSAxOwotCi0gICAgc3RydWN0IENodW5rZWRUYWJsZVRyYWl0
cyB7Ci0gICAgICAgIHR5cGVkZWYgSW50cnVzaXZlRE9NV3JhcHBlck1hcDo6VmlzaXRvciBWaXNp
dG9yOwotCi0gICAgICAgIHN0YXRpYyB2b2lkIG1vdmUodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4qIHRhcmdldCwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHNvdXJjZSkKLSAgICAgICAg
ewotICAgICAgICAgICAgKnRhcmdldCA9ICpzb3VyY2U7Ci0gICAgICAgICAgICBOb2RlKiBub2Rl
ID0gVjhOb2RlOjp0b05hdGl2ZSgqdGFyZ2V0KTsKLSAgICAgICAgICAgIEFTU0VSVChub2RlKTsK
LSAgICAgICAgICAgIG5vZGUtPnNldFdyYXBwZXIodGFyZ2V0KTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHN0YXRpYyB2b2lkIGNsZWFyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSkK
LSAgICAgICAgewotICAgICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUoKmVu
dHJ5KTsKLSAgICAgICAgICAgIEFTU0VSVChub2RlLT53cmFwcGVyKCkgPT0gZW50cnkpOwotCi0g
ICAgICAgICAgICBub2RlLT5jbGVhcldyYXBwZXIoKTsKLSAgICAgICAgICAgIGVudHJ5LT5EaXNw
b3NlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdChET01EYXRhU3Rv
cmUqIHN0b3JlLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnksIFZpc2l0b3IqIHZp
c2l0b3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0
aXZlKCplbnRyeSk7Ci0gICAgICAgICAgICBBU1NFUlQobm9kZS0+d3JhcHBlcigpID09IGVudHJ5
KTsKLQotICAgICAgICAgICAgdmlzaXRvci0+dmlzaXRET01XcmFwcGVyKHN0b3JlLCBub2RlLCAq
ZW50cnkpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgQ2h1bmtlZFRhYmxlPHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+LCBudW1iZXJPZkVudHJpZXMsIENodW5rZWRUYWJsZVRy
YWl0cz4gVGFibGU7Ci0gICAgVGFibGUgbV90YWJsZTsKKyAgICBWZWN0b3JTZXQ8Tm9kZSo+IG1f
bm9kZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDI5MTVjYzdjOGU5MzIyNzQ2ZDkwMzMz
MDhkZmNkNGMyMDMxNzNlYjguLjQ4OGNjOWE5MGY0YjIzYTkxMDkxZWRlMDEyMzE4ZTYxYzM4NzUw
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5oCkBA
IC0zOCwyOSArMzgsMzYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRXcmFw
cGFibGUgewogcHVibGljOgotICAgIFNjcmlwdFdyYXBwYWJsZSgpIDogbV93cmFwcGVyKDApIHsg
fQorICAgIFNjcmlwdFdyYXBwYWJsZSgpCisgICAgeworICAgIH0KIAotICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+KiB3cmFwcGVyKCkgY29uc3QKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3dyYXBwZXI7
CiAgICAgfQogCi0gICAgdm9pZCBzZXRXcmFwcGVyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
KiB3cmFwcGVyKQorICAgIHZvaWQgc2V0V3JhcHBlcih2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
PiB3cmFwcGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKHdyYXBwZXIpOworICAgICAgICBBU1NF
UlQoIXdyYXBwZXIuSXNFbXB0eSgpKTsKICAgICAgICAgbV93cmFwcGVyID0gd3JhcHBlcjsKICAg
ICB9CiAKLSAgICB2b2lkIGNsZWFyV3JhcHBlcigpIHsgbV93cmFwcGVyID0gMDsgfQorICAgIHZv
aWQgZGlzcG9zZVdyYXBwZXIoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX3dyYXBwZXIuSXNF
bXB0eSgpKTsKKyAgICAgICAgbV93cmFwcGVyLkRpc3Bvc2UoKTsKKyAgICAgICAgbV93cmFwcGVy
LkNsZWFyKCk7CisgICAgfQogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAgTWVtb3J5Q2xh
c3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpE
T00pOwotICAgICAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fd3JhcHBlcik7CisgICAgICAgIGlu
Zm8uYWRkV2Vha1BvaW50ZXIoY29uc3RfY2FzdDx2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pio+
KCZtX3dyYXBwZXIpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4qIG1fd3JhcHBlcjsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBtX3dy
YXBwZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01NYXAuaAppbmRleCA0ZTU5MTc4OGFmZGJlNmQ1MmUzMDNhODRhZGU2OGNjNGZiZDQ1
YTQ4Li4wNDZmNDJkNDY3NzE1YmE3ZTAxNGZhY2ZkNzIxODdhZDZmMDg3MTJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0KEtleVR5cGUqIG9iaiwgdjg6OlBlcnNp
c3RlbnQ8VmFsdWVUeXBlPiB3cmFwcGVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBjb250
YWlucyhLZXlUeXBlKiBvYmopID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0KERPTURh
dGFTdG9yZSogc3RvcmUsIFZpc2l0b3IqIHZpc2l0b3IpID0gMDsKLSAgICAgICAgdmlydHVhbCBi
b29sIHJlbW92ZUlmUHJlc2VudChLZXlUeXBlKiwgdjg6OlBlcnNpc3RlbnQ8VmFsdWVUeXBlPikg
PSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlSWZQcmVzZW50KEtleVR5cGUqLCB2ODo6
UGVyc2lzdGVudDxWYWx1ZVR5cGU+LCB2b2lkKiBjb250ZXh0KSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBjbGVhcigpID0gMDsKIAogICAgICAgICB2ODo6V2Vha1JlZmVyZW5jZUNhbGxiYWNr
IHdlYWtSZWZlcmVuY2VDYWxsYmFjaygpIHsgcmV0dXJuIG1fd2Vha1JlZmVyZW5jZUNhbGxiYWNr
OyB9CkBAIC0xMDgsNyArMTA4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAg
aGFuZGxlLkNsZWFyKCk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIHJlbW92ZUlmUHJlc2Vu
dChLZXlUeXBlKiBrZXksIHY4OjpQZXJzaXN0ZW50PFZhbHVlVHlwZT4gdmFsdWUpCisgICAgICAg
IGJvb2wgcmVtb3ZlSWZQcmVzZW50KEtleVR5cGUqIGtleSwgdjg6OlBlcnNpc3RlbnQ8VmFsdWVU
eXBlPiB2YWx1ZSwgdm9pZCogY29udGV4dCA9IDApCiAgICAgICAgIHsKICAgICAgICAgICAgIHR5
cGVuYW1lIEhhc2hNYXA8S2V5VHlwZSosIFZhbHVlVHlwZSo+OjppdGVyYXRvciBpdCA9IG1fbWFw
LmZpbmQoa2V5KTsKICAgICAgICAgICAgIGlmIChpdCA9PSBtX21hcC5lbmQoKSB8fCBpdC0+c2Vj
b25kICE9ICp2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgK
aW5kZXggYWQxYmNhZmQ5Y2UwZGNjMWUxYWQxN2FhNmVkNjFmYzUyYmRiMDMxMC4uZmFkODJjOTVk
YjVkNDk0M2M3MWY0NDNjMWMxNDdkNWUzNmM5ZjgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmgKQEAgLTExMywxOCArMTEzLDE1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICAgICAgICAgIGlmIChMSUtFTFkoIURPTVdyYXBwZXJXb3JsZDo6aXNvbGF0ZWRXb3JsZHNFeGlz
dCgpKSkgewotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3cmFw
cGVyID0gbm9kZS0+d3JhcHBlcigpOwotICAgICAgICAgICAgICAgIGlmIChMSUtFTFkoISF3cmFw
cGVyKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICp3cmFwcGVyOworICAgICAgICAgICAg
ICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7
CisgICAgICAgICAgICAgICAgaWYgKExJS0VMWSghd3JhcHBlci5Jc0VtcHR5KCkpKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgVjhET01XaW5kb3dTaGVsbCogY29udGV4dCA9IFY4RE9NV2luZG93U2hlbGw6OmdldEVudGVy
ZWQoKTsKLSAgICAgICAgICAgIGlmIChMSUtFTFkoIWNvbnRleHQpKSB7Ci0gICAgICAgICAgICAg
ICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7
Ci0gICAgICAgICAgICAgICAgaWYgKCF3cmFwcGVyKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwotICAgICAgICAgICAgICAgIHJldHVybiAqd3Jh
cHBlcjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChMSUtFTFkoIWNvbnRleHQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBub2RlLT53cmFwcGVyKCk7CisKICAgICAgICAgICAgIERP
TURhdGFTdG9yZSogc3RvcmUgPSBjb250ZXh0LT53b3JsZCgpLT5kb21EYXRhU3RvcmUoKTsKICAg
ICAgICAgICAgIERPTU5vZGVNYXBwaW5nJiBkb21Ob2RlTWFwID0gbm9kZS0+aXNBY3RpdmVOb2Rl
KCkgPyBzdG9yZS0+YWN0aXZlRG9tTm9kZU1hcCgpIDogc3RvcmUtPmRvbU5vZGVNYXAoKTsKICAg
ICAgICAgICAgIHJldHVybiBkb21Ob2RlTWFwLmdldChub2RlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169991</attachid>
            <date>2012-10-22 14:45:04 -0700</date>
            <delta_ts>2012-10-22 15:33:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97974-20121022144342.patch</filename>
            <type>text/plain</type>
            <size>12890</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNlNDgzMmJiNDliNzI2
NmEyZDMxNzYzYjI1ZTYyN2RhYTYwZjM5OC4uYTU5NjIzOGNjMTYxNDQyOGQ0ZDAzYjQ3MzQwYjVh
ODRiM2EyZTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDEyLTEwLTIyICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBTY3JpcHRXcmFwcGFi
bGUgc2hvdWxkIGhvbGQgdGhlIHdyYXBwZXIgaGFuZGxlIGRpcmVjdGx5IChEcm9tYWVvL2RvbS1t
b2RpZnkgYW5kIGRvbS10cmF2ZXJzZSBnZXQgfjIuNSUgZmFzdGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSBzdG9yZWQgYSBw
b2ludGVyIHRvIGEgaGFuZGxlIHRvIGEgd3JhcHBlciBpbiBOb2RlLiBUaGF0CisgICAgICAgIGlz
IGFuIGV4dHJhIGxheWVyIG9mIGluZGlyZWN0aW9uIHRoYXQgc2xvd3MgZG93biBmaW5kaW5nIHRo
ZSB3cmFwcGVyCisgICAgICAgIGZvciB0aGUgbm9kZS4gQSBoYW5kbGUgaXMganVzdCBhIHBvaW50
ZXIsIHNvIHdlIG1pZ2h0IGFzIHdlIGp1c3Qgc3RvcmUKKyAgICAgICAgdGhlIGhhbmRsZSBpbiB0
aGUgTm9kZSBkaXJlY3RseS4gVGhhdCBzcGVlZHMgdXAgZG9tLW1vZGlmeSBhbmQKKyAgICAgICAg
ZG9tLXRyYXZlcnNlIGJ5IGFib3V0IDIuNSUuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxzbyBs
ZXRzIHVzIGdldCByaWQgb2YgdGhlIENodW5rZWRUYWJsZSB3ZSB3ZXJlIHVzaW5nIHRvCisgICAg
ICAgIHN0b3JlIGFsbCB0aGUgd3JhcHBlcnMgYmVjYXVzZSB0aGV5J3JlIG5vdyBzdG9yZWQgaW4g
dGhlIE5vZGVzCisgICAgICAgIGRpcmVjdGx5LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAg
ICogYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6SW50cnVzaXZlRE9NV3JhcHBlck1hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1
c2l2ZURPTVdyYXBwZXJNYXA6OnZpc2l0KToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURP
TVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRydXNp
dmVET01XcmFwcGVyTWFwOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OlNjcmlwdFdyYXBw
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OndyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpzZXRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6ZGlzcG9zZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0V3JhcHBhYmxlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChTY3JpcHRX
cmFwcGFibGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKToKKworMjAxMi0xMC0y
MiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFtWOF0gRW51bWVy
YXRlIE5vZGVzIHZpYSB0aGUgVjggaGVhcCByYXRoZXIgdGhhbiB2aWEgYSBsaXN0IGluIFdlYkNv
cmUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAz
MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtCmluZGV4IDg1YjhiMDFkMzllOTNmOTUxNGY0NGI2MjM0YjVhNjQxMDBjNDVhYmMuLjBj
ZDI4NjlmODc3ODVlNzM1Njg5NWZmYTM0ZTI3NjgyODhhZmRiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC01NTYsOCAr
NTU2LDExIEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOEZhc3QoTm9kZSogbm9k
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbywKICAgICAvLyB3aGV0aGVyIHRoZSBob2xk
ZXIncyBpbmxpbmUgd3JhcHBlciBpcyB0aGUgc2FtZSB3cmFwcGVyIHdlIHNlZSBpbiB0aGUKICAg
ICAvLyB2ODo6QWNjZXNzb3JJbmZvLgogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVy
V3JhcHBlciA9IGluZm8uSG9sZGVyKCk7Ci0gICAgaWYgKGhvbGRlci0+d3JhcHBlcigpICYmICpo
b2xkZXItPndyYXBwZXIoKSA9PSBob2xkZXJXcmFwcGVyICYmIG5vZGUtPndyYXBwZXIoKSkKLSAg
ICAgICAgcmV0dXJuICpub2RlLT53cmFwcGVyKCk7CisgICAgaWYgKGhvbGRlci0+d3JhcHBlcigp
ID09IGhvbGRlcldyYXBwZXIpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gbm9kZS0+d3JhcHBlcigpOworICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisgICAgfQogICAgIHJldHVybiB0b1Y4U2xvdyhu
b2RlLCBob2xkZXJXcmFwcGVyLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiBFTkQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaAppbmRl
eCA2NzYwNTBhZDVkNTEwMTlkOTk2MzUxZTZiM2RkMDYxMTE2ZjNkYjVlLi5hZmEwYjliNDM1MmRm
NjUwZmI4OWQzZWEzMWFiNTM0ZmFlMzBjYmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCkBAIC0zNywxOTQgKzM3LDU3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdGVtcGxhdGUgPGNsYXNzIFQsIGludCBDSFVOS19T
SVpFLCBjbGFzcyBUcmFpdHM+Ci1jbGFzcyBDaHVua2VkVGFibGUgewotICBwdWJsaWM6Ci0gICAg
Q2h1bmtlZFRhYmxlKCkgOiBtX2NodW5rcygwKSwgbV9jdXJyZW50KDApLCBtX2xhc3QoMCkgeyB9
Ci0KLSAgICBUKiBhZGQoVCBlbGVtZW50KQotICAgIHsKLSAgICAgICAgaWYgKG1fY3VycmVudCA9
PSBtX2xhc3QpIHsKLSAgICAgICAgICAgIG1fY2h1bmtzID0gbmV3IENodW5rKG1fY2h1bmtzKTsK
LSAgICAgICAgICAgIG1fY3VycmVudCA9IG1fY2h1bmtzLT5tX2VudHJpZXM7Ci0gICAgICAgICAg
ICBtX2xhc3QgPSBtX2N1cnJlbnQgKyBDSFVOS19TSVpFOwotICAgICAgICB9Ci0gICAgICAgIEFT
U0VSVCgobV9jaHVua3MtPm1fZW50cmllcyA8PSBtX2N1cnJlbnQpICYmIChtX2N1cnJlbnQgPCBt
X2xhc3QpKTsKLSAgICAgICAgVCogcCA9IG1fY3VycmVudCsrOwotICAgICAgICAqcCA9IGVsZW1l
bnQ7Ci0gICAgICAgIHJldHVybiBwOwotICAgIH0KLQotICAgIHZvaWQgcmVtb3ZlKFQqIGVsZW1l
bnQpCi0gICAgewotICAgICAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgICAgIEFTU0VSVChtX2N1
cnJlbnQgPiBtX2NodW5rcy0+bV9lbnRyaWVzKTsKLSAgICAgICAgbV9jdXJyZW50LS07Ci0gICAg
ICAgIGlmIChlbGVtZW50ICE9IG1fY3VycmVudCkKLSAgICAgICAgICAgIFRyYWl0czo6bW92ZShl
bGVtZW50LCBtX2N1cnJlbnQpOwotICAgICAgICBpZiAobV9jdXJyZW50ID09IG1fY2h1bmtzLT5t
X2VudHJpZXMpIHsKLSAgICAgICAgICAgIENodW5rKiB0b0RlbGV0ZSA9IG1fY2h1bmtzOwotICAg
ICAgICAgICAgbV9jaHVua3MgPSB0b0RlbGV0ZS0+bV9wcmV2aW91czsKLSAgICAgICAgICAgIG1f
Y3VycmVudCA9IG1fbGFzdCA9IG1fY2h1bmtzID8gbV9jaHVua3MtPm1fZW50cmllcyArIENIVU5L
X1NJWkUgOiAwOwotICAgICAgICAgICAgZGVsZXRlIHRvRGVsZXRlOwotICAgICAgICB9Ci0gICAg
ICAgIEFTU0VSVCghbV9jaHVua3MgfHwgKChtX2NodW5rcy0+bV9lbnRyaWVzIDwgbV9jdXJyZW50
KSAmJiAobV9jdXJyZW50IDw9IG1fbGFzdCkpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNsZWFyKCkK
LSAgICB7Ci0gICAgICAgIGlmICghbV9jaHVua3MpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgY2xlYXJFbnRyaWVzKG1fY2h1bmtzLT5tX2VudHJpZXMsIG1fY3VycmVudCk7Ci0gICAg
ICAgIENodW5rKiBsYXN0ID0gbV9jaHVua3M7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgICAgICBDaHVuayogcHJldmlvdXMgPSBsYXN0LT5tX3ByZXZpb3VzOwotICAgICAgICAgICAg
aWYgKCFwcmV2aW91cykKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlbGV0
ZSBsYXN0OwotICAgICAgICAgICAgY2xlYXJFbnRyaWVzKHByZXZpb3VzLT5tX2VudHJpZXMsIHBy
ZXZpb3VzLT5tX2VudHJpZXMgKyBDSFVOS19TSVpFKTsKLSAgICAgICAgICAgIGxhc3QgPSBwcmV2
aW91czsKLSAgICAgICAgfQotCi0gICAgICAgIG1fY2h1bmtzID0gbGFzdDsKLSAgICAgICAgbV9j
dXJyZW50ID0gbV9jaHVua3MtPm1fZW50cmllczsKLSAgICAgICAgbV9sYXN0ID0gbV9jdXJyZW50
ICsgQ0hVTktfU0laRTsKLSAgICB9Ci0KLSAgICB2b2lkIHZpc2l0KERPTURhdGFTdG9yZSogc3Rv
cmUsIHR5cGVuYW1lIFRyYWl0czo6VmlzaXRvciogdmlzaXRvcikKLSAgICB7Ci0gICAgICAgIGlm
ICghbV9jaHVua3MpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmlzaXRFbnRyaWVz
KHN0b3JlLCBtX2NodW5rcy0+bV9lbnRyaWVzLCBtX2N1cnJlbnQsIHZpc2l0b3IpOwotICAgICAg
ICBmb3IgKENodW5rKiBjaHVuayA9IG1fY2h1bmtzLT5tX3ByZXZpb3VzOyBjaHVuazsgY2h1bmsg
PSBjaHVuay0+bV9wcmV2aW91cykKLSAgICAgICAgICAgIHZpc2l0RW50cmllcyhzdG9yZSwgY2h1
bmstPm1fZW50cmllcywgY2h1bmstPm1fZW50cmllcyArIENIVU5LX1NJWkUsIHZpc2l0b3IpOwot
ICAgIH0KLQotICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uc3QKLSAgICB7Ci0gICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyk7Ci0g
ICAgICAgIGZvciAoQ2h1bmsqIGNodW5rID0gbV9jaHVua3M7IGNodW5rOyBjaHVuayA9IGNodW5r
LT5tX3ByZXZpb3VzKQotICAgICAgICAgICAgaW5mby5hZGRNZW1iZXIoY2h1bmspOwotICAgIH0K
LQotICBwcml2YXRlOgotICAgIHN0cnVjdCBDaHVuayB7Ci0gICAgICAgIGV4cGxpY2l0IENodW5r
KENodW5rKiBwcmV2aW91cykgOiBtX3ByZXZpb3VzKHByZXZpb3VzKSB7IH0KLSAgICAgICAgQ2h1
bmsqIGNvbnN0IG1fcHJldmlvdXM7Ci0gICAgICAgIFQgbV9lbnRyaWVzW0NIVU5LX1NJWkVdOwot
ICAgIH07Ci0KLSAgICBzdGF0aWMgdm9pZCBjbGVhckVudHJpZXMoVCogZmlyc3QsIFQqIGxhc3Qp
Ci0gICAgewotICAgICAgICBmb3IgKFQqIGVudHJ5ID0gZmlyc3Q7IGVudHJ5IDwgbGFzdDsgZW50
cnkrKykKLSAgICAgICAgICAgIFRyYWl0czo6Y2xlYXIoZW50cnkpOwotICAgIH0KLQotICAgIHN0
YXRpYyB2b2lkIHZpc2l0RW50cmllcyhET01EYXRhU3RvcmUqIHN0b3JlLCBUKiBmaXJzdCwgVCog
bGFzdCwgdHlwZW5hbWUgVHJhaXRzOjpWaXNpdG9yKiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAg
Zm9yIChUKiBlbnRyeSA9IGZpcnN0OyBlbnRyeSA8IGxhc3Q7IGVudHJ5KyspCi0gICAgICAgICAg
ICBUcmFpdHM6OnZpc2l0KHN0b3JlLCBlbnRyeSwgdmlzaXRvcik7Ci0gICAgfQotCi0gICAgQ2h1
bmsqIG1fY2h1bmtzOwotICAgIFQqIG1fY3VycmVudDsKLSAgICBUKiBtX2xhc3Q7Ci19OwotCi0K
IGNsYXNzIEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgOiBwdWJsaWMgQWJzdHJhY3RXZWFrUmVmZXJl
bmNlTWFwPE5vZGUsIHY4OjpPYmplY3Q+IHsKIHB1YmxpYzoKICAgICBJbnRydXNpdmVET01XcmFw
cGVyTWFwKHY4OjpXZWFrUmVmZXJlbmNlQ2FsbGJhY2sgY2FsbGJhY2spCi0gICAgICAgIDogQWJz
dHJhY3RXZWFrUmVmZXJlbmNlTWFwPE5vZGUsIHY4OjpPYmplY3Q+KGNhbGxiYWNrKSB7IH0KKyAg
ICAgICAgOiBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4oY2FsbGJh
Y2spCisgICAgeworICAgIH0KIAotICAgIHZpcnR1YWwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4gZ2V0KE5vZGUqIG9iaikKKyAgICB2aXJ0dWFsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IGdldChOb2RlKiBub2RlKQogICAgIHsKLSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4qIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKTsKLSAgICAgICAgcmV0dXJuIHdyYXBwZXIgPyAq
d3JhcHBlciA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCk7CisgICAgICAgIHJldHVybiBu
b2RlLT53cmFwcGVyKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldChOb2RlKiBvYmos
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCisgICAgdmlydHVhbCB2b2lkIHNl
dChOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQogICAgIHsK
LSAgICAgICAgQVNTRVJUKG9iaik7Ci0gICAgICAgIEFTU0VSVCghb2JqLT53cmFwcGVyKCkpOwor
ICAgICAgICBBU1NFUlQobm9kZSAmJiBub2RlLT53cmFwcGVyKCkuSXNFbXB0eSgpKTsKICAgICAg
ICAgQVNTRVJUKHdyYXBwZXIuV3JhcHBlckNsYXNzSWQoKSA9PSB2OERPTVN1YnRyZWVDbGFzc0lk
KTsKLSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5ID0gbV90YWJsZS5h
ZGQod3JhcHBlcik7Ci0gICAgICAgIG9iai0+c2V0V3JhcHBlcihlbnRyeSk7Ci0gICAgICAgIHdy
YXBwZXIuTWFrZVdlYWsob2JqLCB3ZWFrUmVmZXJlbmNlQ2FsbGJhY2soKSk7CisgICAgICAgIG5v
ZGUtPnNldFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIHdyYXBwZXIuTWFrZVdlYWsobm9kZSwg
d2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjb250
YWlucyhOb2RlKiBvYmopCisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKE5vZGUqIG5vZGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gb2JqLT53cmFwcGVyKCk7CisgICAgICAgIHJldHVybiAhbm9k
ZS0+d3JhcHBlcigpLklzRW1wdHkoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgdmlzaXQo
RE9NRGF0YVN0b3JlKiBzdG9yZSwgVmlzaXRvciogdmlzaXRvcikKICAgICB7Ci0gICAgICAgIG1f
dGFibGUudmlzaXQoc3RvcmUsIHZpc2l0b3IpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlSWZQcmVzZW50KE5vZGUqIG9iaiwg
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gdmFsdWUpCisgICAgdmlydHVhbCBib29sIHJlbW92
ZUlmUHJlc2VudChOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB2YWx1ZSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChvYmopOwotICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiogZW50cnkgPSBvYmotPndyYXBwZXIoKTsKLSAgICAgICAgaWYgKCFlbnRyeSkKKyAg
ICAgICAgQVNTRVJUKG5vZGUpOworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3
cmFwcGVyID0gbm9kZS0+d3JhcHBlcigpOworICAgICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICgqZW50cnkgIT0gdmFsdWUp
CisgICAgICAgIGlmICh3cmFwcGVyICE9IHZhbHVlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBvYmotPmNsZWFyV3JhcHBlcigpOwotICAgICAgICBtX3RhYmxlLnJlbW92ZShl
bnRyeSk7Ci0gICAgICAgIHZhbHVlLkRpc3Bvc2UoKTsKKyAgICAgICAgbm9kZS0+ZGlzcG9zZVdy
YXBwZXIoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0KICAgICB2aXJ0dWFsIHZv
aWQgY2xlYXIoKQogICAgIHsKLSAgICAgICAgbV90YWJsZS5jbGVhcigpOworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QgT1ZFUlJJREUK
ICAgICB7Ci0gICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyk7Ci0gICAgICAgIGluZm8uYWRkTWVtYmVy
KG1fdGFibGUpOworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IG1lIQogICAgIH0KLQotcHJp
dmF0ZToKLSAgICBzdGF0aWMgaW50IGNvbnN0IG51bWJlck9mRW50cmllcyA9ICgxIDw8IDEwKSAt
IDE7Ci0KLSAgICBzdHJ1Y3QgQ2h1bmtlZFRhYmxlVHJhaXRzIHsKLSAgICAgICAgdHlwZWRlZiBJ
bnRydXNpdmVET01XcmFwcGVyTWFwOjpWaXNpdG9yIFZpc2l0b3I7Ci0KLSAgICAgICAgc3RhdGlj
IHZvaWQgbW92ZSh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogdGFyZ2V0LCB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0Piogc291cmNlKQotICAgICAgICB7Ci0gICAgICAgICAgICAqdGFyZ2V0
ID0gKnNvdXJjZTsKLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKCp0
YXJnZXQpOwotICAgICAgICAgICAgQVNTRVJUKG5vZGUpOwotICAgICAgICAgICAgbm9kZS0+c2V0
V3JhcHBlcih0YXJnZXQpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgY2xlYXIo
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50cnkpOwotICAgICAgICAgICAgQVNT
RVJUKG5vZGUtPndyYXBwZXIoKSA9PSBlbnRyeSk7Ci0KLSAgICAgICAgICAgIG5vZGUtPmNsZWFy
V3JhcHBlcigpOwotICAgICAgICAgICAgZW50cnktPkRpc3Bvc2UoKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0KERPTURhdGFTdG9yZSogc3RvcmUsIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSwgVmlzaXRvciogdmlzaXRvcikKLSAgICAgICAgewotICAg
ICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUoKmVudHJ5KTsKLSAgICAgICAg
ICAgIEFTU0VSVChub2RlLT53cmFwcGVyKCkgPT0gZW50cnkpOwotCi0gICAgICAgICAgICB2aXNp
dG9yLT52aXNpdERPTVdyYXBwZXIoc3RvcmUsIG5vZGUsICplbnRyeSk7Ci0gICAgICAgIH0KLSAg
ICB9OwotCi0gICAgdHlwZWRlZiBDaHVua2VkVGFibGU8djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4sIG51bWJlck9mRW50cmllcywgQ2h1bmtlZFRhYmxlVHJhaXRzPiBUYWJsZTsKLSAgICBUYWJs
ZSBtX3RhYmxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAppbmRleCAyOTE1Y2M3YzhlOTMyMjc0NmQ5
MDMzMzA4ZGZjZDRjMjAzMTczZWI4Li40ODhjYzlhOTBmNGIyM2E5MTA5MWVkZTAxMjMxOGU2MWMz
ODc1MDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFw
cGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUu
aApAQCAtMzgsMjkgKzM4LDM2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0
V3JhcHBhYmxlIHsKIHB1YmxpYzoKLSAgICBTY3JpcHRXcmFwcGFibGUoKSA6IG1fd3JhcHBlcigw
KSB7IH0KKyAgICBTY3JpcHRXcmFwcGFibGUoKQorICAgIHsKKyAgICB9CiAKLSAgICB2ODo6UGVy
c2lzdGVudDx2ODo6T2JqZWN0Piogd3JhcHBlcigpIGNvbnN0CisgICAgdjg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD4gd3JhcHBlcigpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV93cmFw
cGVyOwogICAgIH0KIAotICAgIHZvaWQgc2V0V3JhcHBlcih2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Piogd3JhcHBlcikKKyAgICB2b2lkIHNldFdyYXBwZXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gd3JhcHBlcikKICAgICB7Ci0gICAgICAgIEFTU0VSVCh3cmFwcGVyKTsKKyAgICAgICAg
QVNTRVJUKCF3cmFwcGVyLklzRW1wdHkoKSk7CiAgICAgICAgIG1fd3JhcHBlciA9IHdyYXBwZXI7
CiAgICAgfQogCi0gICAgdm9pZCBjbGVhcldyYXBwZXIoKSB7IG1fd3JhcHBlciA9IDA7IH0KKyAg
ICB2b2lkIGRpc3Bvc2VXcmFwcGVyKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV93cmFwcGVy
LklzRW1wdHkoKSk7CisgICAgICAgIG1fd3JhcHBlci5EaXNwb3NlKCk7CisgICAgICAgIG1fd3Jh
cHBlci5DbGVhcigpOworICAgIH0KIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICB7CiAgICAgICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBl
czo6RE9NKTsKLSAgICAgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX3dyYXBwZXIpOworICAgICAg
ICBpbmZvLmFkZFdlYWtQb2ludGVyKGNvbnN0X2Nhc3Q8djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4qPigmbV93cmFwcGVyKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+KiBtX3dyYXBwZXI7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
bV93cmFwcGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAppbmRleCBhZDFiY2FmZDljZTBkY2MxZTFhZDE3YWE2
ZWQ2MWZjNTJiZGIwMzEwLi5mYWQ4MmM5NWRiNWQ0OTQzYzcxZjQ0M2MxYzE0N2Q1ZTM2YzlmODNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaApAQCAtMTEzLDE4
ICsxMTMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICAgICAgaWYgKExJS0VMWSghRE9NV3JhcHBl
cldvcmxkOjppc29sYXRlZFdvcmxkc0V4aXN0KCkpKSB7Ci0gICAgICAgICAgICAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBub2RlLT53cmFwcGVyKCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKExJS0VMWSghIXdyYXBwZXIpKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gKndyYXBwZXI7CisgICAgICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
d3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAgICAgICAgICAgICBpZiAoTElLRUxZKCF3
cmFwcGVyLklzRW1wdHkoKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWOERPTVdpbmRvd1NoZWxsKiBjb250ZXh0ID0g
VjhET01XaW5kb3dTaGVsbDo6Z2V0RW50ZXJlZCgpOwotICAgICAgICAgICAgaWYgKExJS0VMWSgh
Y29udGV4dCkpIHsKLSAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piog
d3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAoIXdyYXBwZXIp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuICp3cmFwcGVyOwotICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaWYgKExJS0VMWSghY29udGV4dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUtPndy
YXBwZXIoKTsKKwogICAgICAgICAgICAgRE9NRGF0YVN0b3JlKiBzdG9yZSA9IGNvbnRleHQtPndv
cmxkKCktPmRvbURhdGFTdG9yZSgpOwogICAgICAgICAgICAgRE9NTm9kZU1hcHBpbmcmIGRvbU5v
ZGVNYXAgPSBub2RlLT5pc0FjdGl2ZU5vZGUoKSA/IHN0b3JlLT5hY3RpdmVEb21Ob2RlTWFwKCkg
OiBzdG9yZS0+ZG9tTm9kZU1hcCgpOwogICAgICAgICAgICAgcmV0dXJuIGRvbU5vZGVNYXAuZ2V0
KG5vZGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169992</attachid>
            <date>2012-10-22 14:51:07 -0700</date>
            <delta_ts>2012-10-22 14:51:07 -0700</delta_ts>
            <desc>perf test results (first five are with patch; last five are without)</desc>
            <filename>PerformanceTestsResults.html</filename>
            <type>text/html</type>
            <size>76201</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHRpdGxlPldlYktpdCBQZXJmb3JtYW5jZSBU
ZXN0IFJlc3VsdHM8L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoKc2VjdGlvbiB7CiAg
ICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBwb3NpdGlvbjogcmVs
YXRpdmU7Cn0KCi50aW1lLXBsb3RzIHsKICAgIHBhZGRpbmctbGVmdDogMjVweDsKfQoKLnRpbWUt
cGxvdHMgPiBkaXYgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDkwcHg7
CiAgICBoZWlnaHQ6IDQwcHg7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7Cn0KCnNlY3Rpb24gaDEg
ewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxZW07Cn0KCnNlY3Rpb24g
LnRvb2x0aXAgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVy
OwogICAgYmFja2dyb3VuZDogI2ZmY2M2NjsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIHBh
ZGRpbmc6IDBweCA1cHg7Cn0KCmJvZHkgewogICAgcGFkZGluZzogMHB4OwogICAgbWFyZ2luOiAw
cHg7CiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKfQoKdGFibGUgewogICAgYmFja2dyb3Vu
ZDogd2hpdGU7CiAgICB3aWR0aDogMTAwJTsKfQoKdGFibGUsIHRkLCB0aCB7CiAgICBib3JkZXIt
Y29sbGFwc2U6IGNvbGxhcHNlOwogICAgcGFkZGluZzogNXB4Owp9Cgp0ci5ldmVuIHsKICAgIGJh
Y2tncm91bmQ6ICNmNmY2ZjY7Cn0KCnRhYmxlIHRkIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
ICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Cn0KCnRoLCB0ZCB7CiAgICBjdXJzb3I6IHBvaW50
ZXI7CiAgICBjdXJzb3I6IGhhbmQ7Cn0KCnRoIHsKICAgIGJhY2tncm91bmQ6ICNlNmVlZWU7CiAg
ICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90
dG9tLCBmcm9tKHJnYigyNDQsIDI0NCwgMjQ0KSksIHRvKHJnYigyMTcsIDIxNywgMjE3KSkpOwog
ICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKfQoKdGg6YWZ0ZXIgewogICAgY29udGVudDogJyBc
MjVCOCc7Cn0KCnRoLmhlYWRlclNvcnRVcDphZnRlciB7CiAgICBjb250ZW50OiAnIFwyNUJFJzsK
fQoKdGguaGVhZGVyU29ydERvd246YWZ0ZXIgewogICAgY29udGVudDogJyBcMjVCNCc7Cn0KCnRk
LmNvbXBhcmlzb24sIHRkLnJlc3VsdCB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKfQoKdGQuYmV0
dGVyIHsKICAgIGNvbG9yOiAjNmM2Owp9Cgp0ZC53b3JzZSB7CiAgICBjb2xvcjogI2M2NjsKfQoK
dGQubWlzc2luZyB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5jaGVja2JveCB7CiAgICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBiYWNrZ3JvdW5kOiAjZWVlOwogICAgYmFja2dyb3Vu
ZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShy
Z2IoMjIwLCAyMjAsIDIyMCkpLCB0byhyZ2IoMjAwLCAyMDAsIDIwMCkpKTsKICAgIGJvcmRlcjog
aW5zZXQgMXB4ICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBtYXJnaW46IDEwcHg7
CiAgICBmb250LXNpemU6IHNtYWxsOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgY3Vyc29yOiBo
YW5kOwogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgIGZvbnQtd2VpZ2h0OiBib2xk
Owp9CgouY2hlY2tib3ggc3BhbiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBsaW5l
LWhlaWdodDogMTAwJTsKICAgIHBhZGRpbmc6IDVweCA4cHg7CiAgICBib3JkZXI6IG91dHNldCAx
cHggdHJhbnNwYXJlbnQ7Cn0KCi5jaGVja2JveCAuY2hlY2tlZCB7CiAgICBiYWNrZ3JvdW5kOiAj
ZTZlZWVlOwogICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9w
LCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjU1LCAyNTUsIDI1NSkpLCB0byhyZ2IoMjM1LCAyMzUs
IDIzNSkpKTsKICAgIGJvcmRlcjogb3V0c2V0IDFweCAjZWVlOwogICAgYm9yZGVyLXJhZGl1czog
NXB4Owp9Cgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IHN0eWxlPSJwYWRkaW5nOiAwIDEw
cHg7Ij4KUmVzdWx0IDxzcGFuIGlkPSJ0aW1lLW1lbW9yeSIgY2xhc3M9ImNoZWNrYm94Ij48c3Bh
biBjbGFzcz0iY2hlY2tlZCI+VGltZTwvc3Bhbj48c3Bhbj5NZW1vcnk8L3NwYW4+PC9zcGFuPgpS
ZWZlcmVuY2UgPHNwYW4gaWQ9InJlZmVyZW5jZSIgY2xhc3M9ImNoZWNrYm94Ij48L3NwYW4+Cjwv
ZGl2Pgo8dGFibGUgaWQ9ImNvbnRhaW5lciI+PC90YWJsZT4KPHNjcmlwdD4KCihmdW5jdGlvbiAo
KSB7CiAgICB2YXIgalF1ZXJ5ID0gWydQZXJmb3JtYW5jZVRlc3RzL0Ryb21hZW8vcmVzb3VyY2Vz
L2Ryb21hZW8vd2ViL2xpYi9qcXVlcnktMS42LjQuanMnXTsKICAgIHZhciBwbHVnaW5zID0gWydQ
ZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9qcXVlcnkuZmxvdC5taW4uanMnLCAnUGVyZm9ybWFu
Y2VUZXN0cy9yZXNvdXJjZXMvanF1ZXJ5LnRhYmxlc29ydGVyLm1pbi5qcyddOwogICAgdmFyIGxv
Y2FsUGF0aCA9ICcvVXNlcnMvYWJhcnRoL2dpdC9hYmFydGgtd2Via2l0JzsKICAgIHZhciByZW1v
dGVQYXRoID0gJ2h0dHBzOi8vc3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9yeS93ZWJraXQvdHJ1bmsn
OwogICAgdmFyIG51bWJlck9mRmFpbHVyZXMgPSAwOwogICAgdmFyIHN0YXJ0ZWRMb2FkaW5nUGx1
Z2lucyA9IGZhbHNlOwogICAgdmFyIG51bWJlck9mTG9hZGVkUGx1Z2lucyA9IDA7CgogICAgZnVu
Y3Rpb24gbG9hZFNjcmlwdChzcmMsIGxvYWRlZCwgZmFpbGVkKSB7CiAgICAgICAgdmFyIHNjcmlw
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHNjcmlwdC5hc3lu
YyA9IHRydWU7CiAgICAgICAgc2NyaXB0LnNyYyA9IHNyYzsKICAgICAgICBzY3JpcHQub25sb2Fk
ID0gbG9hZGVkOwogICAgICAgIGlmIChmYWlsZWQpCiAgICAgICAgICAgIHNjcmlwdC5vbmVycm9y
ID0gZmFpbGVkOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAg
IH0KCiAgICBmdW5jdGlvbiBsb2FkUGx1Z2lucyh0cnVua1BhdGgpIHsKICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHBsdWdpbnMubGVuZ3RoOyBpKyspCiAgICAgICAgICAgIGxvYWRTY3JpcHQo
dHJ1bmtQYXRoICsgJy8nICsgcGx1Z2luc1tpXSwgbG9hZGVkUGx1Z2luLCBjcmVhdGVGYWlsZWRU
b0xvYWRQbHVnaW4ocGx1Z2luc1tpXSkpOwogICAgfQoKICAgIGZ1bmN0aW9uIGxvYWRlZFBsdWdp
bigpIHsKICAgICAgICBudW1iZXJPZkxvYWRlZFBsdWdpbnMrKzsKICAgICAgICBpZiAobnVtYmVy
T2ZMb2FkZWRQbHVnaW5zID09IHBsdWdpbnMubGVuZ3RoKQogICAgICAgICAgICBzZXRUaW1lb3V0
KGluaXQsIDApOyAgICAgICAgICAgIAogICAgfQoKICAgIGZ1bmN0aW9uIGNyZWF0ZUZhaWxlZFRv
TG9hZFBsdWdpbihwbHVnaW4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyBhbGVydCgi
RmFpbGVkIHRvIGxvYWQgIiArIHBsdWdpbik7IH0KICAgIH0KCiAgICBmdW5jdGlvbiBjcmVhdGVM
b2FkZWRKUXVlcnkodHJ1bmtQYXRoKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgbG9h
ZFBsdWdpbnModHJ1bmtQYXRoKTsgfQogICAgfQoKICAgIGxvYWRTY3JpcHQobG9jYWxQYXRoICsg
Jy8nICsgalF1ZXJ5LAogICAgICAgIGNyZWF0ZUxvYWRlZEpRdWVyeShsb2NhbFBhdGgpLAogICAg
ICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgbG9hZFNjcmlwdChyZW1vdGVQYXRoICsgJy8n
ICsgalF1ZXJ5LAogICAgICAgICAgICAgICAgY3JlYXRlTG9hZGVkSlF1ZXJ5KHJlbW90ZVBhdGgp
LAogICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeyBhbGVydCgiRmFpbGVkIHRvIGxvYWQgalF1
ZXJ5LiIpOyB9KTsKICAgICAgICB9KTsKfSkoKTsKCmZ1bmN0aW9uIFRlc3RSZXN1bHQoYXNzb2Np
YXRlZFRlc3QsIHJlc3VsdCwgYXNzb2NpYXRlZFJ1bikgewogICAgdGhpcy51bml0ID0gZnVuY3Rp
b24gKCkgeyByZXR1cm4gcmVzdWx0LnVuaXQ7IH0KICAgIHRoaXMudGVzdCA9IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIGFzc29jaWF0ZWRUZXN0OyB9CiAgICB0aGlzLnZhbHVlcyA9IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIHJlc3VsdC52YWx1ZXMgPyByZXN1bHQudmFsdWVzLm1hcChmdW5jdGlvbiAodmFs
dWUpIHsgcmV0dXJuIGFzc29jaWF0ZWRUZXN0LnNjYWxpbmdGYWN0b3IoKSAqIHZhbHVlOyB9KSA6
IHVuZGVmaW5lZDsgfQogICAgdGhpcy51bnNjYWxlZE1lYW4gPSBmdW5jdGlvbiAoKSB7IHJldHVy
biByZXN1bHQuYXZnOyB9CiAgICB0aGlzLm1lYW4gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBhc3Nv
Y2lhdGVkVGVzdC5zY2FsaW5nRmFjdG9yKCkgKiByZXN1bHQuYXZnOyB9CiAgICB0aGlzLm1pbiA9
IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFzc29jaWF0ZWRUZXN0LnNjYWxpbmdGYWN0b3IoKSAqIHJl
c3VsdC5taW47IH0KICAgIHRoaXMubWF4ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gYXNzb2NpYXRl
ZFRlc3Quc2NhbGluZ0ZhY3RvcigpICogcmVzdWx0Lm1heDsgfQogICAgdGhpcy5zdGRldiA9IGZ1
bmN0aW9uICgpIHsgcmV0dXJuIGFzc29jaWF0ZWRUZXN0LnNjYWxpbmdGYWN0b3IoKSAqIHJlc3Vs
dC5zdGRldjsgfQogICAgdGhpcy5zdGRldlJhdGlvID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVz
dWx0LnN0ZGV2IC8gcmVzdWx0LmF2ZzsgfQogICAgdGhpcy5wZXJjZW50RGlmZmVyZW5jZSA9IGZ1
bmN0aW9uKG90aGVyKSB7IHJldHVybiAob3RoZXIubWVhbigpIC0gdGhpcy5tZWFuKCkpIC8gdGhp
cy5tZWFuKCk7IH0KICAgIHRoaXMuaXNTdGF0aXN0aWNhbGx5U2lnbmlmaWNhbnQgPSBmdW5jdGlv
biAob3RoZXIpIHsKICAgICAgICB2YXIgZGlmZiA9IE1hdGguYWJzKG90aGVyLm1lYW4oKSAtIHRo
aXMubWVhbigpKTsKICAgICAgICByZXR1cm4gZGlmZiA+IHRoaXMuc3RkZXYoKSAmJiBkaWZmID4g
b3RoZXIuc3RkZXYoKTsKICAgIH0KICAgIHRoaXMucnVuID0gZnVuY3Rpb24gKCkgeyByZXR1cm4g
YXNzb2NpYXRlZFJ1bjsgfQp9CgpmdW5jdGlvbiBUZXN0UnVuKGVudHJ5KSB7CiAgICB0aGlzLmRl
c2NyaXB0aW9uID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gZW50cnlbJ2Rlc2NyaXB0aW9uJ107IH0K
ICAgIHRoaXMud2Via2l0UmV2aXNpb24gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBlbnRyeVsnd2Vi
a2l0LXJldmlzaW9uJ107IH0KICAgIHRoaXMubGFiZWwgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAg
dmFyIGxhYmVsID0gJ3InICsgdGhpcy53ZWJraXRSZXZpc2lvbigpOwogICAgICAgIGlmICh0aGlz
LmRlc2NyaXB0aW9uKCkpCiAgICAgICAgICAgIGxhYmVsICs9ICcgJmRhc2g7ICcgKyB0aGlzLmRl
c2NyaXB0aW9uKCk7CiAgICAgICAgcmV0dXJuIGxhYmVsOwogICAgfQp9CgpmdW5jdGlvbiBQZXJm
VGVzdChuYW1lKSB7CiAgICB2YXIgdGVzdFJlc3VsdHMgPSBbXTsKICAgIHZhciBjYWNoZWRVbml0
ID0gbnVsbDsKICAgIHZhciBjYWNoZWRTY2FsaW5nRmFjdG9yID0gbnVsbDsKCiAgICAvLyBXZSBj
YW4ndCBkbyB0aGlzIGluIFRlc3RSZXN1bHQgYmVjYXVzZSBhbGwgcmVzdWx0cyBmb3IgZWFjaCB0
ZXN0IG5lZWQgdG8gc2hhcmUgdGhlIHNhbWUgdW5pdCBhbmQgdGhlIHNhbWUgc2NhbGluZyBmYWN0
b3IuCiAgICBmdW5jdGlvbiBjb21wdXRlU2NhbGluZ0ZhY3RvcklmTmVlZGVkKCkgewogICAgICAg
IC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgYmUgYWRqdXN0aW5nIHVuaXRzIG9uIGV2ZXJ5IHRlc3Qg
cmVzdWx0LgogICAgICAgIC8vIFdlIGNhbiBvbmx5IGRvIHRoaXMgb24gdGhlIGZpcnN0IHRlc3Qu
CiAgICAgICAgaWYgKCF0ZXN0UmVzdWx0cy5sZW5ndGggfHwgY2FjaGVkVW5pdCkKICAgICAgICAg
ICAgcmV0dXJuOwoKICAgICAgICB2YXIgdW5pdCA9IHRlc3RSZXN1bHRzWzBdLnVuaXQoKTsgLy8g
RklYTUU6IFdlIHNob3VsZCB2ZXJpZnkgdGhhdCBhbGwgcmVzdWx0cyBoYXZlIHRoZSBzYW1lIHVu
aXQuCiAgICAgICAgdmFyIG1lYW4gPSB0ZXN0UmVzdWx0c1swXS51bnNjYWxlZE1lYW4oKTsgLy8g
RklYTUU6IFdlIHNob3VsZCBsb29rIGF0IGFsbCB2YWx1ZXMuCiAgICAgICAgdmFyIGtpbG8gPSB1
bml0ID09ICdieXRlcycgPyAxMDI0IDogMTAwMDsKICAgICAgICBpZiAobWVhbiA+IDEwICoga2ls
byAqIGtpbG8gJiYgdW5pdCAhPSAnbXMnKSB7CiAgICAgICAgICAgIGNhY2hlZFNjYWxpbmdGYWN0
b3IgPSAxIC8ga2lsbyAvIGtpbG87CiAgICAgICAgICAgIGNhY2hlZFVuaXQgPSAnTSAnICsgdW5p
dDsKICAgICAgICB9IGVsc2UgaWYgKG1lYW4gPiAxMCAqIGtpbG8pIHsKICAgICAgICAgICAgY2Fj
aGVkU2NhbGluZ0ZhY3RvciA9IDEgLyBraWxvOwogICAgICAgICAgICBjYWNoZWRVbml0ID0gdW5p
dCA9PSAnbXMnID8gJ3MnIDogKCdLICcgKyB1bml0KTsKICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICBjYWNoZWRTY2FsaW5nRmFjdG9yID0gMTsKICAgICAgICAgICAgY2FjaGVkVW5pdCA9IHVu
aXQ7CiAgICAgICAgfQogICAgfQoKICAgIHRoaXMubmFtZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJu
IG5hbWU7IH0KICAgIHRoaXMuaXNNZW1vcnlUZXN0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbmFt
ZS5pbmRleE9mKCc6JykgPj0gMDsgfQogICAgdGhpcy5hZGRSZXN1bHQgPSBmdW5jdGlvbiAobmV3
UmVzdWx0KSB7CiAgICAgICAgdGVzdFJlc3VsdHMucHVzaChuZXdSZXN1bHQpOwogICAgICAgIGNh
Y2hlZFVuaXQgPSBudWxsOwogICAgICAgIGNhY2hlZFNjYWxpbmdGYWN0b3IgPSBudWxsOwogICAg
fQogICAgdGhpcy5yZXN1bHRzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdFJlc3VsdHM7IH0K
ICAgIHRoaXMuc2NhbGluZ0ZhY3RvciA9IGZ1bmN0aW9uKCkgewogICAgICAgIGNvbXB1dGVTY2Fs
aW5nRmFjdG9ySWZOZWVkZWQoKTsKICAgICAgICByZXR1cm4gY2FjaGVkU2NhbGluZ0ZhY3RvcjsK
ICAgIH0KICAgIHRoaXMudW5pdCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBjb21wdXRlU2NhbGlu
Z0ZhY3RvcklmTmVlZGVkKCk7CiAgICAgICAgcmV0dXJuIGNhY2hlZFVuaXQ7CiAgICB9CiAgICB0
aGlzLnNtYWxsZXJJc0JldHRlciA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMudW5pdCgpID09
ICdtcycgfHwgdGhpcy51bml0KCkgPT0gJ2J5dGVzJzsgfQp9Cgp2YXIgcGxvdENvbG9yID0gJ3Jn
YigyMzAsNTAsNTApJzsKdmFyIHN1YnBvaW50c1Bsb3RPcHRpb25zID0gewogICAgbGluZXM6IHtz
aG93OnRydWUsIGxpbmVXaWR0aDogMH0sCiAgICBjb2xvcjogcGxvdENvbG9yLAogICAgcG9pbnRz
OiB7c2hvdzogdHJ1ZSwgcmFkaXVzOiAxfSwKICAgIGJhcnM6IHtzaG93OiBmYWxzZX19OwoKdmFy
IG1haW5QbG90T3B0aW9ucyA9IHsKICAgIHhheGlzOiB7CiAgICAgICAgbWluOiAtMC41LAogICAg
ICAgIHRpY2tTaXplOiAxLAogICAgfSwKICAgIGNyb3NzaGFpcjogeyBtb2RlOiAneScgfSwKICAg
IHNlcmllczogeyBzaGFkb3dTaXplOiAwIH0sCiAgICBiYXJzOiB7c2hvdzogdHJ1ZSwgYWxpZ246
ICdjZW50ZXInLCBiYXJXaWR0aDogMC41fSwKICAgIGxpbmVzOiB7IHNob3c6IGZhbHNlIH0sCiAg
ICBwb2ludHM6IHsgc2hvdzogdHJ1ZSB9LAogICAgZ3JpZDogewogICAgICAgIGJvcmRlcldpZHRo
OiAxLAogICAgICAgIGJvcmRlckNvbG9yOiAnI2NjYycsCiAgICAgICAgYmFja2dyb3VuZENvbG9y
OiAnI2ZmZicsCiAgICAgICAgaG92ZXJhYmxlOiB0cnVlLAogICAgICAgIGF1dG9IaWdobGlnaHQ6
IGZhbHNlLAogICAgfQp9OwoKdmFyIHRpbWVQbG90T3B0aW9ucyA9IHsKICAgIHlheGlzOiB7IHNo
b3c6IGZhbHNlIH0sCiAgICB4YXhpczogeyBzaG93OiBmYWxzZSB9LAogICAgbGluZXM6IHsgc2hv
dzogdHJ1ZSB9LAogICAgZ3JpZDogeyBib3JkZXJXaWR0aDogMSwgYm9yZGVyQ29sb3I6ICcjY2Nj
JyB9LAogICAgY29sb3JzOiBbIHBsb3RDb2xvciBdCn07CgpmdW5jdGlvbiBjcmVhdGVQbG90KGNv
bnRhaW5lciwgdGVzdCkgewogICAgdmFyIHNlY3Rpb24gPSAkKCc8c2VjdGlvbj48ZGl2IGNsYXNz
PSJwbG90Ij48L2Rpdj48ZGl2IGNsYXNzPSJ0aW1lLXBsb3RzIj48L2Rpdj4nCiAgICAgICAgKyAn
PHNwYW4gY2xhc3M9InRvb2x0aXAiPjwvc3Bhbj48L3NlY3Rpb24+Jyk7CiAgICBzZWN0aW9uLmNo
aWxkcmVuKCcucGxvdCcpLmNzcyh7J3dpZHRoJzogKDEwMCAqIHRlc3QucmVzdWx0cygpLmxlbmd0
aCArIDI1KSArICdweCcsICdoZWlnaHQnOiAnMzAwcHgnfSk7CiAgICAkKGNvbnRhaW5lcikuYXBw
ZW5kKHNlY3Rpb24pOwoKICAgIHZhciBwbG90Q29udGFpbmVyID0gc2VjdGlvbi5jaGlsZHJlbign
LnBsb3QnKTsKICAgIHZhciBtaW5Jc1plcm8gPSB0cnVlOwogICAgYXR0YWNoUGxvdCh0ZXN0LCBw
bG90Q29udGFpbmVyLCBtaW5Jc1plcm8pOwoKICAgIGF0dGFjaFRpbWVQbG90cyh0ZXN0LCBzZWN0
aW9uLmNoaWxkcmVuKCcudGltZS1wbG90cycpKTsKCiAgICB2YXIgdG9vbHRpcCA9IHNlY3Rpb24u
Y2hpbGRyZW4oJy50b29sdGlwJyk7CiAgICBwbG90Q29udGFpbmVyLmJpbmQoJ3Bsb3Rob3Zlcics
IGZ1bmN0aW9uIChldmVudCwgcG9zaXRpb24sIGl0ZW0pIHsKICAgICAgICBpZiAoaXRlbSkgewog
ICAgICAgICAgICB2YXIgcG9zdGZpeCA9IGl0ZW0uc2VyaWVzLmlkID8gJyAoJyArIGl0ZW0uc2Vy
aWVzLmlkICsgJyknIDogJyc7CiAgICAgICAgICAgIHRvb2x0aXAuaHRtbChpdGVtLmRhdGFwb2lu
dFsxXS50b1ByZWNpc2lvbig0KSArIHBvc3RmaXgpOwogICAgICAgICAgICB2YXIgc2VjdGlvbk9m
ZnNldCA9ICQoc2VjdGlvbikub2Zmc2V0KCk7CiAgICAgICAgICAgIHRvb2x0aXAuY3NzKHtsZWZ0
OiBpdGVtLnBhZ2VYIC0gc2VjdGlvbk9mZnNldC5sZWZ0IC0gdG9vbHRpcC5vdXRlcldpZHRoKCkg
LyAyLCB0b3A6IGl0ZW0ucGFnZVkgLSBzZWN0aW9uT2Zmc2V0LnRvcCArIDEwfSk7CiAgICAgICAg
ICAgIHRvb2x0aXAuZmFkZUluKDIwMCk7CiAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIHRvb2x0
aXAuaGlkZSgpOwogICAgfSk7CiAgICBwbG90Q29udGFpbmVyLm1vdXNlb3V0KGZ1bmN0aW9uICgp
IHsKICAgICAgICB0b29sdGlwLmhpZGUoKTsKICAgIH0pOwogICAgcGxvdENvbnRhaW5lci5jbGlj
ayhmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAg
ICAgIG1pbklzWmVybyA9ICFtaW5Jc1plcm87CiAgICAgICAgYXR0YWNoUGxvdCh0ZXN0LCBwbG90
Q29udGFpbmVyLCBtaW5Jc1plcm8pOwogICAgfSk7CgogICAgcmV0dXJuIHNlY3Rpb247Cn0KCmZ1
bmN0aW9uIGF0dGFjaFRpbWVQbG90cyh0ZXN0LCBjb250YWluZXIpIHsKICAgIHZhciByZXN1bHRz
ID0gdGVzdC5yZXN1bHRzKCk7CiAgICB2YXIgYXR0YWNoZWRQbG90ID0gZmFsc2U7CiAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlc3VsdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBjb250YWluZXIu
YXBwZW5kKCc8ZGl2PjwvZGl2PicpOwogICAgICAgIHZhciB2YWx1ZXMgPSByZXN1bHRzW2ldLnZh
bHVlcygpOwogICAgICAgIGlmICghdmFsdWVzKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICBhdHRhY2hlZFBsb3QgPSB0cnVlOwoKICAgICAgICAkLnBsb3QoY29udGFpbmVyLmNoaWxkcmVu
KCkubGFzdCgpLCBbdmFsdWVzLm1hcChmdW5jdGlvbiAodmFsdWUsIGluZGV4KSB7IHJldHVybiBb
aW5kZXgsIHZhbHVlXTsgfSldLAogICAgICAgICAgICAkLmV4dGVuZCh0cnVlLCB7fSwgdGltZVBs
b3RPcHRpb25zLCB7eWF4aXM6IHttaW46IE1hdGgubWluLmFwcGx5KE1hdGgsIHZhbHVlcykgKiAw
LjksIG1heDogTWF0aC5tYXguYXBwbHkoTWF0aCwgdmFsdWVzKSAqIDEuMX0sCiAgICAgICAgICAg
ICAgICB4YXhpczoge21pbjogLTAuNSwgbWF4OiB2YWx1ZXMubGVuZ3RoIC0gMC41fX0pKTsKICAg
IH0KICAgIGlmICghYXR0YWNoZWRQbG90KQogICAgICAgIGNvbnRhaW5lci5jaGlsZHJlbigpLnJl
bW92ZSgpOwp9CgpmdW5jdGlvbiBhdHRhY2hQbG90KHRlc3QsIHBsb3RDb250YWluZXIsIG1pbklz
WmVybykgewogICAgdmFyIHJlc3VsdHMgPSB0ZXN0LnJlc3VsdHMoKTsKCiAgICB2YXIgdmFsdWVz
ID0gcmVzdWx0cy5yZWR1Y2UoZnVuY3Rpb24gKHZhbHVlcywgcmVzdWx0LCBpbmRleCkgewogICAg
ICAgIHZhciBuZXdWYWx1ZXMgPSByZXN1bHQudmFsdWVzKCk7CiAgICAgICAgcmV0dXJuIG5ld1Zh
bHVlcyA/IHZhbHVlcy5jb25jYXQobmV3VmFsdWVzLm1hcChmdW5jdGlvbiAodmFsdWUpIHsgcmV0
dXJuIFtpbmRleCwgdmFsdWVdOyB9KSkgOiB2YWx1ZXM7CiAgICB9LCBbXSk7CgogICAgdmFyIHBs
b3REYXRhID0gW107CiAgICBpZiAodmFsdWVzLmxlbmd0aCkKICAgICAgICBwbG90RGF0YSA9IFsk
LmV4dGVuZCh0cnVlLCB7fSwgc3VicG9pbnRzUGxvdE9wdGlvbnMsIHtkYXRhOiB2YWx1ZXN9KV07
CiAgICBlbHNlIHsKICAgICAgICBmdW5jdGlvbiBtYWtlU3VicG9pbnRzKGlkLCBjYWxsYmFjaykg
eyByZXR1cm4gJC5leHRlbmQodHJ1ZSwge30sIHN1YnBvaW50c1Bsb3RPcHRpb25zLCB7aWQ6IGlk
LCBkYXRhOiByZXN1bHRzLm1hcChjYWxsYmFjayl9KTsgfQogICAgICAgIHBsb3REYXRhID0gW21h
a2VTdWJwb2ludHMoJ21pbicsIGZ1bmN0aW9uIChyZXN1bHQsIGluZGV4KSB7IHJldHVybiBbaW5k
ZXgsIHJlc3VsdC5taW4oKV07IH0pLAogICAgICAgIG1ha2VTdWJwb2ludHMoJ21heCcsIGZ1bmN0
aW9uIChyZXN1bHQsIGluZGV4KSB7IHJldHVybiBbaW5kZXgsIHJlc3VsdC5tYXgoKV07IH0pLAog
ICAgICAgIG1ha2VTdWJwb2ludHMoJy0mIzk2MzsnLCBmdW5jdGlvbiAocmVzdWx0LCBpbmRleCkg
eyByZXR1cm4gW2luZGV4LCByZXN1bHQubWVhbigpIC0gcmVzdWx0LnN0ZGV2KCldOyB9KSwKICAg
ICAgICBtYWtlU3VicG9pbnRzKCcrJiM5NjM7JywgZnVuY3Rpb24gKHJlc3VsdCwgaW5kZXgpIHsg
cmV0dXJuIFtpbmRleCwgcmVzdWx0Lm1lYW4oKSArIHJlc3VsdC5zdGRldigpXTsgfSldOwogICAg
fQoKICAgIHBsb3REYXRhLnB1c2goe2lkOiAnJm11OycsIGRhdGE6IHJlc3VsdHMubWFwKGZ1bmN0
aW9uIChyZXN1bHQsIGluZGV4KSB7IHJldHVybiBbaW5kZXgsIHJlc3VsdC5tZWFuKCldOyB9KSwg
Y29sb3I6IHBsb3RDb2xvcn0pOwoKICAgIHZhciBjdXJyZW50UGxvdE9wdGlvbnMgPSAkLmV4dGVu
ZCh0cnVlLCB7fSwgbWFpblBsb3RPcHRpb25zLCB7eWF4aXM6IHsKICAgICAgICBtaW46IG1pbklz
WmVybyA/IDAgOiBNYXRoLm1pbi5hcHBseShNYXRoLCByZXN1bHRzLm1hcChmdW5jdGlvbiAocmVz
dWx0LCBpbmRleCkgeyByZXR1cm4gcmVzdWx0Lm1pbigpOyB9KSkgKiAwLjk4LAogICAgICAgIG1h
eDogTWF0aC5tYXguYXBwbHkoTWF0aCwgcmVzdWx0cy5tYXAoZnVuY3Rpb24gKHJlc3VsdCwgaW5k
ZXgpIHsgcmV0dXJuIHJlc3VsdC5tYXgoKTsgfSkpICogKG1pbklzWmVybyA/IDEuMSA6IDEuMDEp
fX0pOwoKICAgIGN1cnJlbnRQbG90T3B0aW9ucy54YXhpcy5tYXggPSByZXN1bHRzLmxlbmd0aCAt
IDAuNTsKICAgIGN1cnJlbnRQbG90T3B0aW9ucy54YXhpcy50aWNrcyA9IHJlc3VsdHMubWFwKGZ1
bmN0aW9uIChyZXN1bHQsIGluZGV4KSB7IHJldHVybiBbaW5kZXgsIHJlc3VsdC5ydW4oKS5sYWJl
bCgpXTsgfSk7CgogICAgJC5wbG90KHBsb3RDb250YWluZXIsIHBsb3REYXRhLCBjdXJyZW50UGxv
dE9wdGlvbnMpOwp9CgpmdW5jdGlvbiB0b0ZpeGVkV2lkdGhQcmVjaXNpb24odmFsdWUpIHsKICAg
IHZhciBkZWNpbWFsID0gdmFsdWUudG9GaXhlZCgyKTsKICAgIHJldHVybiBkZWNpbWFsOwp9Cgpm
dW5jdGlvbiBmb3JtYXRQZXJjZW50YWdlKGZyYWN0aW9uKSB7CiAgICB2YXIgcGVyY2VudGFnZSA9
IGZyYWN0aW9uICogMTAwOwogICAgcmV0dXJuIChmcmFjdGlvbiAqIDEwMCkudG9GaXhlZCgyKSAr
ICclJzsKfQoKZnVuY3Rpb24gY3JlYXRlVGFibGUodGVzdHMsIHJ1bnMsIHNob3VsZElnbm9yZU1l
bW9yeSwgcmVmZXJlbmNlSW5kZXgpIHsKICAgICQoJyNjb250YWluZXInKS5odG1sKCc8dGhlYWQ+
PHRyPjx0aD5UZXN0PC90aD48dGg+VW5pdDwvdGg+JyArIHJ1bnMubWFwKGZ1bmN0aW9uIChydW4s
IGluZGV4KSB7CiAgICAgICAgcmV0dXJuICc8dGggY29sc3Bhbj0iJyArIChpbmRleCA9PSByZWZl
cmVuY2VJbmRleCA/IDIgOiAzKSArICciIGNsYXNzPSJ7c29ydGVyOiBcJ2NvbXBhcmlzb25cJ30i
PicgKyBydW4ubGFiZWwoKSArICc8L3RoPic7CiAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKG1hcmt1
cCwgY2VsbCkgeyByZXR1cm4gbWFya3VwICsgY2VsbDsgfSwgJycpICsgJzwvdHI+PC9oZWFkPjx0
Ym9keT48L3Rib2R5PicpOwoKICAgIHZhciB0ZXN0TmFtZXMgPSBbXTsKICAgIGZvciAodGVzdE5h
bWUgaW4gdGVzdHMpCiAgICAgICAgdGVzdE5hbWVzLnB1c2godGVzdE5hbWUpOwoKICAgIHRlc3RO
YW1lcy5zb3J0KCkubWFwKGZ1bmN0aW9uICh0ZXN0TmFtZSkgewogICAgICAgIHZhciB0ZXN0ID0g
dGVzdHNbdGVzdE5hbWVdOwogICAgICAgIGlmICh0ZXN0LmlzTWVtb3J5VGVzdCgpICE9IHNob3Vs
ZElnbm9yZU1lbW9yeSkKICAgICAgICAgICAgY3JlYXRlVGFibGVSb3cocnVucywgdGVzdCwgcmVm
ZXJlbmNlSW5kZXgpOwogICAgfSk7CgogICAgJCgnI2NvbnRhaW5lcicpLnRhYmxlc29ydGVyKHt3
aWRnZXRzOiBbJ3plYnJhJ119KTsKfQoKZnVuY3Rpb24gbGluZWFyUmVncmVzc2lvbihwb2ludHMp
IHsKICAgIC8vIEltcGxlbWVudCBodHRwOi8vd3d3LmVhc3ljYWxjdWxhdGlvbi5jb20vc3RhdGlz
dGljcy9sZWFybi1jb3JyZWxhdGlvbi5waHAuCiAgICAvLyB4ID0gbWFnbml0dWRlCiAgICAvLyB5
ID0gaXRlcmF0aW9ucwogICAgdmFyIHN1bVggPSAwOwogICAgdmFyIHN1bVkgPSAwOwogICAgdmFy
IHN1bVhTcXVhcmVkID0gMDsKICAgIHZhciBzdW1ZU3F1YXJlZCA9IDA7CiAgICB2YXIgc3VtWFRp
bWVzWSA9IDA7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHsK
ICAgICAgICB2YXIgeCA9IGk7CiAgICAgICAgdmFyIHkgPSBwb2ludHNbaV07CiAgICAgICAgc3Vt
WCArPSB4OwogICAgICAgIHN1bVkgKz0geTsKICAgICAgICBzdW1YU3F1YXJlZCArPSB4ICogeDsK
ICAgICAgICBzdW1ZU3F1YXJlZCArPSB5ICogeTsKICAgICAgICBzdW1YVGltZXNZICs9IHggKiB5
OwogICAgfQoKICAgIHZhciByID0gKHBvaW50cy5sZW5ndGggKiBzdW1YVGltZXNZIC0gc3VtWCAq
IHN1bVkpIC8KICAgICAgICBNYXRoLnNxcnQoKHBvaW50cy5sZW5ndGggKiBzdW1YU3F1YXJlZCAt
IHN1bVggKiBzdW1YKSAqCiAgICAgICAgICAgICAgICAgIChwb2ludHMubGVuZ3RoICogc3VtWVNx
dWFyZWQgLSBzdW1ZICogc3VtWSkpOwoKICAgIGlmIChpc05hTihyKSB8fCByID09IE1hdGguSW5m
aW5pdHkpCiAgICAgICAgciA9IDA7CgogICAgdmFyIHNsb3BlID0gKHBvaW50cy5sZW5ndGggKiBz
dW1YVGltZXNZIC0gc3VtWCAqIHN1bVkpIC8gKHBvaW50cy5sZW5ndGggKiBzdW1YU3F1YXJlZCAt
IHN1bVggKiBzdW1YKTsKICAgIHZhciBpbnRlcmNlcHQgPSBzdW1ZIC8gcG9pbnRzLmxlbmd0aCAt
IHNsb3BlICogc3VtWCAvIHBvaW50cy5sZW5ndGg7CiAgICByZXR1cm4ge3Nsb3BlOiBzbG9wZSwg
aW50ZXJjZXB0OiBpbnRlcmNlcHQsIHJTcXVhcmVkOiByICogcn07Cn0KCnZhciB3YXJuaW5nU2ln
biA9ICc8c3ZnIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBzdHlsZT0id2lkdGg6IDE4cHg7IGhlaWdo
dDogMThweDsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsiIHZlcnNpb249IjEuMSI+JwogICAgKyAn
PHBvbHlnb24gZmlsbD0icmVkIiBwb2ludHM9IjUwLDEwIDkwLDgwIDEwLDgwIDUwLDEwIiBzdHJv
a2U9InJlZCIgc3Ryb2tlLXdpZHRoPSIxMCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgLz4nCiAg
ICArICc8cG9seWdvbiBmaWxsPSJ3aGl0ZSIgcG9pbnRzPSI0NywzMCA0OCwyOSwgNTAsIDI4Ljcs
IDUyLDI5IDUzLDMwIDUwLDYwIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEwIiBzdHJv
a2UtbGluZWpvaW49InJvdW5kIiAvPicKICAgICsgJzxjaXJjbGUgY3g9IjUwIiBjeT0iNzMiIHI9
IjYiIGZpbGw9IndoaXRlIiAvPicKICAgICsgJzwvc3ZnPic7CgpmdW5jdGlvbiBjcmVhdGVUYWJs
ZVJvdyhydW5zLCB0ZXN0LCByZWZlcmVuY2VJbmRleCkgewogICAgdmFyIHRhYmxlUm93ID0gJCgn
PHRyPjx0ZCBjbGFzcz0idGVzdCI+JyArIHRlc3QubmFtZSgpICsgJzwvdGQ+PHRkIGNsYXNzPSJ1
bml0Ij4nICsgdGVzdC51bml0KCkgKyAnPC90ZD48L3RyPicpOwoKICAgIGZ1bmN0aW9uIG1hcmt1
cEZvclJ1bihyZXN1bHQsIHJlZmVyZW5jZVJlc3VsdCkgewogICAgICAgIHZhciBjb21wYXJpc29u
Q2VsbCA9ICcnOwogICAgICAgIHZhciBoaWRkZW5WYWx1ZSA9ICcnOwogICAgICAgIHZhciBzaG91
bGRDb21wYXJlID0gcmVzdWx0ICE9PSByZWZlcmVuY2VSZXN1bHQ7CiAgICAgICAgaWYgKHNob3Vs
ZENvbXBhcmUgJiYgcmVmZXJlbmNlUmVzdWx0KSB7CiAgICAgICAgICAgIHZhciBwZXJjZW50RGlm
ZmVyZW5jZSA9IHJlZmVyZW5jZVJlc3VsdC5wZXJjZW50RGlmZmVyZW5jZShyZXN1bHQpOwogICAg
ICAgICAgICB2YXIgYmV0dGVyID0gdGVzdC5zbWFsbGVySXNCZXR0ZXIoKSA/IHBlcmNlbnREaWZm
ZXJlbmNlIDwgMCA6IHBlcmNlbnREaWZmZXJlbmNlID4gMDsKICAgICAgICAgICAgdmFyIGNvbXBh
cmlzb24gPSAnJzsKICAgICAgICAgICAgdmFyIGNsYXNzTmFtZSA9ICdjb21wYXJpc29uJzsKICAg
ICAgICAgICAgaWYgKHJlZmVyZW5jZVJlc3VsdC5pc1N0YXRpc3RpY2FsbHlTaWduaWZpY2FudChy
ZXN1bHQpKSB7CiAgICAgICAgICAgICAgICBjb21wYXJpc29uID0gZm9ybWF0UGVyY2VudGFnZShN
YXRoLmFicyhwZXJjZW50RGlmZmVyZW5jZSkpICsgKGJldHRlciA/ICcgQmV0dGVyJyA6ICcgV29y
c2UmbmJzcDsnKTsKICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArPSBiZXR0ZXIgPyAnIGJldHRl
cicgOiAnIHdvcnNlJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBoaWRkZW5WYWx1ZSA9ICc8
c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+fCcgKyBjb21wYXJpc29uICsgJzwvc3Bhbj4nOwog
ICAgICAgICAgICBjb21wYXJpc29uQ2VsbCA9ICc8dGQgY2xhc3M9IicgKyBjbGFzc05hbWUgKyAn
Ij4nICsgY29tcGFyaXNvbiArICc8L3RkPic7CiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRDb21w
YXJlKQogICAgICAgICAgICBjb21wYXJpc29uQ2VsbCA9ICc8dGQgY2xhc3M9ImNvbXBhcmlzb24i
PjwvdGQ+JzsKCiAgICAgICAgdmFyIHZhbHVlcyA9IHJlc3VsdC52YWx1ZXMoKTsKICAgICAgICB2
YXIgd2FybmluZyA9ICcnOwogICAgICAgIHZhciByZWdyZXNzaW9uQW5hbHlzaXMgPSAnJzsKICAg
ICAgICBpZiAodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPiAzKSB7CiAgICAgICAgICAgIHJlZ3Jl
c3Npb25SZXN1bHQgPSBsaW5lYXJSZWdyZXNzaW9uKHZhbHVlcyk7CiAgICAgICAgICAgIHJlZ3Jl
c3Npb25BbmFseXNpcyA9ICdzbG9wZT0nICsgdG9GaXhlZFdpZHRoUHJlY2lzaW9uKHJlZ3Jlc3Np
b25SZXN1bHQuc2xvcGUpCiAgICAgICAgICAgICAgICArICcsIFJeMj0nICsgdG9GaXhlZFdpZHRo
UHJlY2lzaW9uKHJlZ3Jlc3Npb25SZXN1bHQuclNxdWFyZWQpOwogICAgICAgICAgICBpZiAocmVn
cmVzc2lvblJlc3VsdC5yU3F1YXJlZCA+IDAuNiAmJiBNYXRoLmFicyhyZWdyZXNzaW9uUmVzdWx0
LnNsb3BlKSA+IDAuMDEpIHsKICAgICAgICAgICAgICAgIHdhcm5pbmcgPSAnIDxzcGFuIGNsYXNz
PSJyZWdyZXNzaW9uLXdhcm5pbmciIHRpdGxlPSJEZXRlY3RlZCBhIHRpbWUgZGVwZW5kZW5jeSB3
aXRoICcgKyByZWdyZXNzaW9uQW5hbHlzaXMgKyAnIj4nICsgd2FybmluZ1NpZ24gKyAnIDwvc3Bh
bj4nOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgc3RhdGlzdGljcyA9ICcm
c2lnbWE7PScgKyB0b0ZpeGVkV2lkdGhQcmVjaXNpb24ocmVzdWx0LnN0ZGV2KCkpICsgJywgbWlu
PScgKyB0b0ZpeGVkV2lkdGhQcmVjaXNpb24ocmVzdWx0Lm1pbigpKQogICAgICAgICAgICArICcs
IG1heD0nICsgdG9GaXhlZFdpZHRoUHJlY2lzaW9uKHJlc3VsdC5tYXgoKSkgKyAnXG4nICsgcmVn
cmVzc2lvbkFuYWx5c2lzOwoKICAgICAgICAvLyBUYWJsZXNvcnRlciBkb2Vzbid0IGtub3cgYWJv
dXQgdGhlIHNlY29uZCBjZWxsIHNvIHB1dCB0aGUgY29tcGFyaXNvbiBpbiB0aGUgaW52aXNpYmxl
IGVsZW1lbnQuCiAgICAgICAgcmV0dXJuICc8dGQgY2xhc3M9InJlc3VsdCIgdGl0bGU9IicgKyBz
dGF0aXN0aWNzICsgJyI+JyArIHRvRml4ZWRXaWR0aFByZWNpc2lvbihyZXN1bHQubWVhbigpKSAr
IGhpZGRlblZhbHVlCiAgICAgICAgICAgICsgJzwvdGQ+PHRkIGNsYXNzPSJzdGRldiIgdGl0bGU9
IicgKyBzdGF0aXN0aWNzICsgJyI+JnBsdXNtbjsgJwogICAgICAgICAgICArIGZvcm1hdFBlcmNl
bnRhZ2UocmVzdWx0LnN0ZGV2UmF0aW8oKSkgKyB3YXJuaW5nICsgJzwvdGQ+JyArIGNvbXBhcmlz
b25DZWxsOwogICAgfQoKICAgIGZ1bmN0aW9uIG1hcmt1cEZvck1pc3NpbmdSdW4oaXNSZWZlcmVu
Y2UpIHsKICAgICAgICByZXR1cm4gJzx0ZCBjb2xzcGFuPSInICsgKGlzUmVmZXJlbmNlID8gMiA6
IDMpICsgJyIgY2xhc3M9Im1pc3NpbmciPk1pc3Npbmc8L3RkPic7CiAgICB9CgogICAgdmFyIHJ1
bkluZGV4ID0gMDsKICAgIHZhciByZXN1bHRzID0gdGVzdC5yZXN1bHRzKCk7CiAgICB2YXIgcmVm
ZXJlbmNlUmVzdWx0ID0gdW5kZWZpbmVkOwogICAgdmFyIHJlc3VsdEluZGV4TWFwID0ge307CiAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB3aGls
ZSAocnVuc1tydW5JbmRleF0gIT09IHJlc3VsdHNbaV0ucnVuKCkpCiAgICAgICAgICAgIHJ1bklu
ZGV4Kys7CiAgICAgICAgaWYgKHJ1bkluZGV4ID09IHJlZmVyZW5jZUluZGV4KQogICAgICAgICAg
ICByZWZlcmVuY2VSZXN1bHQgPSByZXN1bHRzW2ldOwogICAgICAgIHJlc3VsdEluZGV4TWFwW3J1
bkluZGV4XSA9IGk7CiAgICB9CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bnMubGVuZ3RoOyBp
KyspIHsKICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSByZXN1bHRJbmRleE1hcFtpXTsKICAgICAg
ICBpZiAocmVzdWx0SW5kZXggPT0gdW5kZWZpbmVkKQogICAgICAgICAgICB0YWJsZVJvdy5hcHBl
bmQobWFya3VwRm9yTWlzc2luZ1J1bihpID09IHJlZmVyZW5jZUluZGV4KSk7CiAgICAgICAgZWxz
ZQogICAgICAgICAgICB0YWJsZVJvdy5hcHBlbmQobWFya3VwRm9yUnVuKHJlc3VsdHNbcmVzdWx0
SW5kZXhdLCByZWZlcmVuY2VSZXN1bHQpKTsKICAgIH0KCiAgICAkKCcjY29udGFpbmVyJykuY2hp
bGRyZW4oJ3Rib2R5JykubGFzdCgpLmFwcGVuZCh0YWJsZVJvdyk7CgogICAgdGFibGVSb3cuY2xp
Y2soZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPSB0YWJsZVJv
d1swXSAmJiBldmVudC50YXJnZXQucGFyZW50Tm9kZSAhPSB0YWJsZVJvd1swXSkKICAgICAgICAg
ICAgcmV0dXJuOwoKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoKICAgICAgICB2YXIg
Zmlyc3RDZWxsID0gdGFibGVSb3cuY2hpbGRyZW4oJ3RkJykuZmlyc3QoKTsKICAgICAgICBpZiAo
Zmlyc3RDZWxsLmNoaWxkcmVuKCdzZWN0aW9uJykubGVuZ3RoKSB7CiAgICAgICAgICAgIGZpcnN0
Q2VsbC5jaGlsZHJlbignc2VjdGlvbicpLnJlbW92ZSgpOwogICAgICAgICAgICB0YWJsZVJvdy5j
aGlsZHJlbigndGQnKS5jc3MoeydwYWRkaW5nLWJvdHRvbSc6ICcnfSk7CiAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgdmFyIHBsb3QgPSBjcmVhdGVQbG90KGZpcnN0Q2VsbCwgdGVzdCk7CiAg
ICAgICAgICAgIHBsb3QuY3NzKHsncG9zaXRpb24nOiAnYWJzb2x1dGUnLCAnei1pbmRleCc6IDJ9
KTsKICAgICAgICAgICAgdmFyIG9mZnNldCA9IHRhYmxlUm93Lm9mZnNldCgpOwogICAgICAgICAg
ICBvZmZzZXQubGVmdCArPSAxOwogICAgICAgICAgICBvZmZzZXQudG9wICs9IHRhYmxlUm93Lm91
dGVySGVpZ2h0KCk7CiAgICAgICAgICAgIHBsb3Qub2Zmc2V0KG9mZnNldCk7CiAgICAgICAgICAg
IHRhYmxlUm93LmNoaWxkcmVuKCd0ZCcpLmNzcyh7J3BhZGRpbmctYm90dG9tJzogcGxvdC5vdXRl
ckhlaWdodCgpICsgNX0pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7
Cn0KCmZ1bmN0aW9uIGluaXQoKSB7CiAgICAkLnRhYmxlc29ydGVyLmFkZFBhcnNlcih7CiAgICAg
ICAgaWQ6ICdjb21wYXJpc29uJywKICAgICAgICBpczogZnVuY3Rpb24ocykgewogICAgICAgICAg
ICByZXR1cm4gcy5pbmRleE9mKCd8JykgPj0gMDsKICAgICAgICB9LAogICAgICAgIGZvcm1hdDog
ZnVuY3Rpb24ocykgewogICAgICAgICAgICB2YXIgcGFyc2VkID0gcGFyc2VGbG9hdChzLnN1YnN0
cmluZyhzLmluZGV4T2YoJ3wnKSArIDEpKTsKICAgICAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNl
ZCkgPyAwIDogcGFyc2VkOwogICAgICAgIH0sCiAgICAgICAgdHlwZTogJ251bWVyaWMnLAogICAg
fSk7CgogICAgdmFyIHJ1bnMgPSBbXTsKICAgIHZhciB0ZXN0cyA9IHt9OwogICAgJC5lYWNoKEpT
T04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2pzb24nKS50ZXh0Q29udGVudCksIGZ1
bmN0aW9uIChpbmRleCwgZW50cnkpIHsKICAgICAgICB2YXIgcnVuID0gbmV3IFRlc3RSdW4oZW50
cnkpOwogICAgICAgIHJ1bnMucHVzaChydW4pOwogICAgICAgICQuZWFjaChlbnRyeS5yZXN1bHRz
LCBmdW5jdGlvbiAodGVzdCwgcmVzdWx0KSB7CiAgICAgICAgICAgIGlmICghdGVzdHNbdGVzdF0p
CiAgICAgICAgICAgICAgICB0ZXN0c1t0ZXN0XSA9IG5ldyBQZXJmVGVzdCh0ZXN0KTsKICAgICAg
ICAgICAgdGVzdHNbdGVzdF0uYWRkUmVzdWx0KG5ldyBUZXN0UmVzdWx0KHRlc3RzW3Rlc3RdLCBy
ZXN1bHQsIHJ1bikpOwogICAgICAgIH0pOwogICAgfSk7CgogICAgdmFyIHNob3VsZElnbm9yZU1l
bW9yeT0gdHJ1ZTsKICAgIHZhciByZWZlcmVuY2VJbmRleCA9IDA7CiAgICBjcmVhdGVUYWJsZSh0
ZXN0cywgcnVucywgc2hvdWxkSWdub3JlTWVtb3J5LCByZWZlcmVuY2VJbmRleCk7CgogICAgJCgn
I3RpbWUtbWVtb3J5JykuYmluZCgnY2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50LCBjaGVja2VkRWxl
bWVudCkgewogICAgICAgIHNob3VsZElnbm9yZU1lbW9yeSA9IGNoZWNrZWRFbGVtZW50LnRleHRD
b250ZW50ID09ICdUaW1lJzsKICAgICAgICBjcmVhdGVUYWJsZSh0ZXN0cywgcnVucywgc2hvdWxk
SWdub3JlTWVtb3J5LCByZWZlcmVuY2VJbmRleCk7CiAgICB9KTsKCiAgICBydW5zLm1hcChmdW5j
dGlvbiAocnVuLCBpbmRleCkgewogICAgICAgICQoJyNyZWZlcmVuY2UnKS5hcHBlbmQoJzxzcGFu
IHZhbHVlPSInICsgaW5kZXggKyAnIicgKyAoaW5kZXggPT0gcmVmZXJlbmNlSW5kZXggPyAnIGNs
YXNzPSJjaGVja2VkIicgOiAnJykgKyAnPicgKyBydW4ubGFiZWwoKSArICc8L3NwYW4+Jyk7CiAg
ICB9KQoKICAgICQoJyNyZWZlcmVuY2UnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQs
IGNoZWNrZWRFbGVtZW50KSB7CiAgICAgICAgcmVmZXJlbmNlSW5kZXggPSBwYXJzZUludChjaGVj
a2VkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykpOwogICAgICAgIGNyZWF0ZVRhYmxlKHRl
c3RzLCBydW5zLCBzaG91bGRJZ25vcmVNZW1vcnksIHJlZmVyZW5jZUluZGV4KTsKICAgIH0pOwoK
ICAgICQoJy5jaGVja2JveCcpLmVhY2goZnVuY3Rpb24gKGluZGV4LCBjaGVja2JveCkgewogICAg
ICAgICQoY2hlY2tib3gpLmNoaWxkcmVuKCdzcGFuJykuY2xpY2soZnVuY3Rpb24gKGV2ZW50KSB7
CiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdjaGVja2VkJykpCiAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICQoY2hlY2tib3gpLmNoaWxkcmVuKCdzcGFuJykucmVt
b3ZlQ2xhc3MoJ2NoZWNrZWQnKTsKICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnY2hlY2tl
ZCcpOwogICAgICAgICAgICAkKGNoZWNrYm94KS50cmlnZ2VyKCdjaGFuZ2UnLCAkKHRoaXMpKTsK
ICAgICAgICB9KTsKICAgIH0pOwp9Cgo8L3NjcmlwdD4KPHNjcmlwdCBpZD0ianNvbiIgdHlwZT0i
YXBwbGljYXRpb24vanNvbiI+W3sidGltZXN0YW1wIjogMTM1MDkzNzA5OSwgIndlYmtpdC1yZXZp
c2lvbiI6ICIxMzIxMTUiLCAicmVzdWx0cyI6IHsiQmluZGluZ3MvZ2MtbWluaS10cmVlOk1hbGxv
YyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wXSwgInN0ZGV2IjogMC4wLCAi
YXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tcXVlcnk6TWFsbG9jIjog
eyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwg
InN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20t
cXVlcnk6SlNIZWFwIjogeyJtaW4iOiA2MDA3MTYwLjAsICJtYXgiOiA2MDA3MTYwLjAsICJtZWRp
YW4iOiA2MDA3MTYwLjAsICJ2YWx1ZXMiOiBbNjAwNzE2MC4wXSwgInN0ZGV2IjogMC4wLCAiYXZn
IjogNjAwNzE2MC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtbWluaS10cmVlIjog
eyJtaW4iOiAxMTUyLjA0MDk5OTk5MzkxNDcsICJtYXgiOiAxMjAxLjgzMjk5OTk5OTE2OTMsICJt
ZWRpYW4iOiAxMTg2LjgzOTQ5OTk5MTAzNzksICJ2YWx1ZXMiOiBbMTE3Ny44MDUwMDAwMTM5MDQ2
LCAxMTkyLjI0Njk5OTk5OTA0MjYsIDExOTcuNTc3OTk5OTkyMDYzMywgMTIwMS44MzI5OTk5OTkx
NjkzLCAxMTk5LjU4MzAwMDAwODcxNTMsIDExODguMTY5OTk5OTc5NDM2NCwgMTE5OS4zOTEwMDAw
MDE5MjQsIDExODUuNjIwOTk5OTgyMzQ3NywgMTE5My43Njk5OTk5ODM0ODc3LCAxMTg4LjA1Nzk5
OTk5OTcyOCwgMTE4Mi4wNDAwMDAwMTQyNCwgMTE5NC41MjIwMDAwMDUyMzYsIDExODMuMzQzMDAw
MDExNTE4NiwgMTE4OC4yOTQ5OTk5OTk5MjU1LCAxMTg0LjgxMjAwMDAyMTMzODUsIDExNjQuNjQ4
OTk5OTgzOTEwNSwgMTE2MS4yMjcwMDAwMDQxNDYyLCAxMTUyLjA0MDk5OTk5MzkxNDcsIDExNTUu
NTIzMDAwMDIzMDk1LCAxMTU1LjQwMDk5OTk5NjM0NTVdLCAic3RkZXYiOiAxNS45NTk5NjkwMTgx
MjMzODUsICJhdmciOiAxMTgyLjI5NTQ1MDAwMDY3NDUsICJ1bml0IjogIm1zIn0sICJEcm9tYWVv
L2RvbS10cmF2ZXJzZSI6IHsibWluIjogMjYyMC4yOTg3MDEyOTg3MDE0LCAibWF4IjogMjY0MS4w
NDE1OTMxMzc0MDE0LCAibWVkaWFuIjogMC4wLCAic3RkZXYiOiA0LjcyNDA1NDQyMDY4MDM3MSwg
ImF2ZyI6IDI2MzEuNTI5ODU5NzgxNjczLCAidW5pdCI6ICJydW5zL3MifSwgIkRyb21hZW8vZG9t
LXF1ZXJ5IjogeyJtaW4iOiA2NjgyNTIuMTUwODQ5MTUwOCwgIm1heCI6IDY3MDY2Ny4yNTY3NDMy
NTY3LCAibWVkaWFuIjogMC4wLCAic3RkZXYiOiA1MjMuMzUxNTUwNTA2ODQ1LCAiYXZnIjogNjY5
Mzk1Ljc4NTQxNDU4NTUsICJ1bml0IjogInJ1bnMvcyJ9LCAiQmluZGluZ3MvZ2MtdHJlZTpNYWxs
b2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFsw
LjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMF0sICJzdGRldiI6IDAuMCwg
ImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLXRyZWU6SlNIZWFwIjog
eyJtaW4iOiAyMDc2OTE3Mi4wLCAibWF4IjogMjA3NzQxOTIuMCwgIm1lZGlhbiI6IDIwNzcxNzUw
LjAsICJ2YWx1ZXMiOiBbMjA3NzAyMjguMCwgMjA3Njk3MTIuMCwgMjA3NzA2MDQuMCwgMjA3Njkz
NTIuMCwgMjA3NzEyOTYuMCwgMjA3Njk5MjQuMCwgMjA3NzE3NzYuMCwgMjA3NzA2NjQuMCwgMjA3
NzI1NTIuMCwgMjA3NzE0MjAuMCwgMjA3NzI3NTYuMCwgMjA3NjkxNzIuMCwgMjA3NzI1MDAuMCwg
MjA3NzIwMzYuMCwgMjA3NzMzOTYuMCwgMjA3NzE3MjQuMCwgMjA3NzQwMjAuMCwgMjA3NzM0MDgu
MCwgMjA3NzQxOTIuMCwgMjA3NzM3NzYuMF0sICJzdGRldiI6IDE1ODkuMDQ4NDU0MDk4MzAyMywg
ImF2ZyI6IDIwNzcxNzI1LjQwMDAwMDAwMiwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9t
LWF0dHI6SlNIZWFwIjogeyJtaW4iOiA0MTkyNjcyLjAsICJtYXgiOiA0MTkyNjcyLjAsICJtZWRp
YW4iOiA0MTkyNjcyLjAsICJ2YWx1ZXMiOiBbNDE5MjY3Mi4wXSwgInN0ZGV2IjogMC4wLCAiYXZn
IjogNDE5MjY3Mi4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0IjogeyJt
aW4iOiA5NTYuNDgzOTk5OTk0ODE2MywgIm1heCI6IDk3My4wOTQ5OTk5OTM5MTg1LCAibWVkaWFu
IjogOTYyLjQxNjk5OTk4NzkwODYsICJ2YWx1ZXMiOiBbOTY1LjQxMjk5OTk5ODA3OTYsIDk1Ni40
ODM5OTk5OTQ4MTYzLCA5NTkuNTU5OTk5OTg4NDE0MywgOTYyLjI2NDk5OTk4MDEwNywgOTYwLjU5
NTAwMDAxMTM4MDgsIDk2MS4yMzc5OTk5ODg5NTI3LCA5NjQuMjAwOTk5OTk1MjI3OSwgOTY0LjM1
MjAwMDAwOTk2NywgOTU4LjYwNDk5OTk5MjUzMDgsIDk1OS43OTMwMDAwMTYzNjE1LCA5NjYuMTg3
OTk5OTkxMjM0NCwgOTY2Ljk1NDk5OTk4MTY4MDksIDk2Mi4wNjI5OTk5ODQ0ODIzLCA5NjEuODA2
MDAwMDA2NjE4LCA5NzAuMDIxMDAwMDE1NTQ5NCwgOTczLjA5NDk5OTk5MzkxODUsIDk2My40MzE5
OTk5ODk1NTI0LCA5NjIuNTY4OTk5OTk1NzEwMywgOTYwLjM0NjAwMDAwNzEyMDksIDk2My41ODMw
MDAwMDQyOTE1XSwgInN0ZGV2IjogMy45MDExMDc5NjE0NTM0OTE2LCAiYXZnIjogOTYzLjEyODE5
OTk5NzI5OTcsICJ1bml0IjogIm1zIn0sICJEcm9tYWVvL2RvbS1hdHRyIjogeyJtaW4iOiA1ODYy
LjgyMjY2NDM2MTU4NiwgIm1heCI6IDYwMDQuNzUyMjQ3NzUyMjQ4LCAibWVkaWFuIjogMC4wLCAi
c3RkZXYiOiAzMi42NDA3MTc0NjkxMTQ2NzYsICJhdmciOiA1OTEzLjMyOTM2Mzc1MzMwMjUsICJ1
bml0IjogInJ1bnMvcyJ9LCAiQmluZGluZ3MvZ2MtbWluaS10cmVlOkpTSGVhcCI6IHsibWluIjog
MTA2MTU1MjguMCwgIm1heCI6IDEzNjYzOTA0LjAsICJtZWRpYW4iOiAxMzY2MTI1Mi4wLCAidmFs
dWVzIjogWzEzNjYxOTY4LjAsIDEzNjYyOTY4LjAsIDEwNjE1NTI4LjAsIDEzNjYwMjU2LjAsIDEz
NjYwMDY0LjAsIDEzNjYwNzk2LjAsIDEzNjYwNTQwLjAsIDEzNjYxMTc2LjAsIDEzNjYwODcyLjAs
IDEzNjYxMzI4LjAsIDEzNjYwNTc2LjAsIDEzNjU3OTQ4LjAsIDEzNjYyMzE2LjAsIDEzNjYwMzQ0
LjAsIDEzNjYxNTc2LjAsIDEzNjYxODYwLjAsIDEzNjYxODA4LjAsIDEzNjYxNjM2LjAsIDEzNjYz
OTA0LjAsIDEzNjYyNTM2LjBdLCAic3RkZXYiOiA2ODEwNTMuNzg1OTc5NTMxMiwgImF2ZyI6IDEz
NTA4OTk5Ljk5OTk5OTk5OCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLW1vZGlmeTpN
YWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6
IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9t
YWVvL2RvbS10cmF2ZXJzZTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlh
biI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0
IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1hdHRyOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4
IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2
ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpKU0hlYXAiOiB7
Im1pbiI6IDEwNjEzMDU2LjAsICJtYXgiOiAxMzY2MjAzMi4wLCAibWVkaWFuIjogMTM2NTgyOTgu
MCwgInZhbHVlcyI6IFsxMzY1OTg5Mi4wLCAxMzY2MTAwOC4wLCAxMDYxMzA1Ni4wLCAxMzY1NzQw
NC4wLCAxMzY1NzUyNC4wLCAxMzY1ODAxNi4wLCAxMzY1Nzg4OC4wLCAxMzY1ODI4OC4wLCAxMzY1
ODE2MC4wLCAxMzY1ODMwOC4wLCAxMzY1ODAyMC4wLCAxMzY1NTk5Ni4wLCAxMzY1OTUyOC4wLCAx
MzY1NzYxMi4wLCAxMzY1ODkzNi4wLCAxMzY1OTI0MC4wLCAxMzY1OTY1Mi4wLCAxMzY1OTM1Ni4w
LCAxMzY2MjAzMi4wLCAxMzY1OTk3Ni4wXSwgInN0ZGV2IjogNjgxMDQ2LjE0OTk2MTEzNDcsICJh
dmciOiAxMzUwNjQ5NC42LCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tdHJhdmVyc2U6
SlNIZWFwIjogeyJtaW4iOiA1MDIzOTkyLjAsICJtYXgiOiA1MDIzOTkyLjAsICJtZWRpYW4iOiA1
MDIzOTkyLjAsICJ2YWx1ZXMiOiBbNTAyMzk5Mi4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogNTAy
Mzk5Mi4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0Ok1hbGxvYyI6IHsi
bWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjog
MC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tbW9kaWZ5IjogeyJtaW4iOiAzNTU5
LjAxMjUwMTE4MDY3NCwgIm1heCI6IDQyODIuOTE5ODAyNDE5ODAzLCAibWVkaWFuIjogMC4wLCAi
c3RkZXYiOiAxOTMuMDgxMjA3NzM0MjU5NDQsICJhdmciOiAzOTg2Ljk5Mjk4MDg4MDU5NzMsICJ1
bml0IjogInJ1bnMvcyJ9LCAiQmluZGluZ3MvZ2MtdHJlZSI6IHsibWluIjogMTIxMC42MTA5OTk5
ODc2OTM1LCAibWF4IjogMTI1OS4xMjgwMDAwMDUxNDg0LCAibWVkaWFuIjogMTIzMC40MTc0OTk5
ODgxMDcsICJ2YWx1ZXMiOiBbMTIxMC42MTA5OTk5ODc2OTM1LCAxMjE1LjU5MDAwMDAwNzA2ODcs
IDEyNTkuMTI4MDAwMDA1MTQ4NCwgMTIyNi4zMTEwMDAwMDU4MDc3LCAxMjE4LjI4MTk5OTk4NzA4
NDQsIDEyMjguNTM5MDAwMDAzMzY1OCwgMTIyMC45MzAwMDAwMTA0MTIyLCAxMjI5LjI3NDAwMDAx
MjA4MywgMTIxMi41MzAwMDAwMTg4ODcyLCAxMjMwLjc4Nzk5OTk4NjIwNTMsIDEyNDMuMzM1MDAw
MDA2NDgyLCAxMjQwLjkwOTAwMDAxNDY1MzQsIDEyMzQuNzAwMDAwMDAwODg0OCwgMTI0MC40MjA5
OTk5OTQ5NjcxLCAxMjM5LjkzMDk5OTk4OTE1NTcsIDEyNDQuMDU4MDAwMDExMTM2OCwgMTI0MS4w
NTU5OTk5OTg5MzQ2LCAxMjQwLjM1MzAwMDAwMTA1MDUsIDEyMjEuNjQ2MDAwMDE5OTczMSwgMTIz
MC4wNDY5OTk5OTAwMDg4XSwgInN0ZGV2IjogMTIuNDczNjE1NzI3MjIyMDI1LCAiYXZnIjogMTIz
MS40MjE5NTAwMDI1NSwgInVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLW1vZGlmeTpKU0hlYXAi
OiB7Im1pbiI6IDI5Njc5ODAuMCwgIm1heCI6IDI5Njc5ODAuMCwgIm1lZGlhbiI6IDI5Njc5ODAu
MCwgInZhbHVlcyI6IFsyOTY3OTgwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAyOTY3OTgwLjAs
ICJ1bml0IjogImJ5dGVzIn19LCAicGxhdGZvcm0iOiAiY2hyb21pdW0iLCAiYnJhbmNoIjogIndl
YmtpdC10cnVuayIsICJjaHJvbWl1bS1yZXZpc2lvbiI6ICIxNjMyOTcifSwgeyJ0aW1lc3RhbXAi
OiAxMzUwOTM3MzI0LCAid2Via2l0LXJldmlzaW9uIjogIjEzMjExNSIsICJyZXN1bHRzIjogeyJC
aW5kaW5ncy9nYy1taW5pLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJt
ZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJE
cm9tYWVvL2RvbS1xdWVyeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlh
biI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0
IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeTpKU0hlYXAiOiB7Im1pbiI6IDU5NjYxMTIu
MCwgIm1heCI6IDU5NjYxMTIuMCwgIm1lZGlhbiI6IDU5NjYxMTIuMCwgInZhbHVlcyI6IFs1OTY2
MTEyLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1OTY2MTEyLjAsICJ1bml0IjogImJ5dGVzIn0s
ICJCaW5kaW5ncy9nYy1taW5pLXRyZWUiOiB7Im1pbiI6IDExNzguNjg0OTk5OTkxNjc0LCAibWF4
IjogMTIwMy4yNTIwMDAwMDY2MTQzLCAibWVkaWFuIjogMTE4OC45NTEwMDAwMDM3MjYyLCAidmFs
dWVzIjogWzExOTMuNTk3MDAwMDA0OTU2NSwgMTE4Ni42MDUwMDAwMjQ0Mjg2LCAxMTk4LjIzMzk5
OTk4MTMxMiwgMTIwMy4yNTIwMDAwMDY2MTQzLCAxMTk2LjY0MDk5OTk4NzcyMTQsIDExODQuNzEw
MDAwMDAxMzU5NywgMTE4OC4xNDMwMDAwMDY2NzU3LCAxMTg2Ljc4NTAwMDAyNzE1NzQsIDExODcu
MDYyMDAwMDExNzkyNCwgMTE4NS45MjY5OTk5ODQwNzYyLCAxMTg5Ljc1OTAwMDAwMDc3NjcsIDEy
MDAuNzAzOTk5OTg4MDM2MiwgMTE4Ni45NjM5OTk5OTMxNjc4LCAxMjAxLjExMzAwMDAxNzM1OCwg
MTE4Ny4zODcwMDAwMTI2NzcyLCAxMTg5Ljk4OTAwMDAwNTg4MDQsIDExNzguNjg0OTk5OTkxNjc0
LCAxMTkxLjg5MDk5OTk5NDkzOTIsIDExODQuOTgwOTk5OTk4NTE1NSwgMTE5NS4wMTc5OTk5OTg1
MjY2XSwgInN0ZGV2IjogNi40ODg0NzE4NTg3NzAzMjMsICJhdmciOiAxMTkwLjg3MjM1MDAwMTg4
MiwgInVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLXRyYXZlcnNlIjogeyJtaW4iOiAyNTk5LjA5
NTI5MTkzMzYxNTUsICJtYXgiOiAyNjQ2LjgyNTc5MDk3NTQ5MSwgIm1lZGlhbiI6IDAuMCwgInN0
ZGV2IjogMTQuNDQ2NDMyMTYyNjc3MTUzLCAiYXZnIjogMjYzNC4wOTYyMTY3NTcyOTQ4LCAidW5p
dCI6ICJydW5zL3MifSwgIkRyb21hZW8vZG9tLW1vZGlmeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwg
Im1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAs
ICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeSI6IHsibWlu
IjogNjQ1NDA5LjAsICJtYXgiOiA2NDkwMTcuMCwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2IjogNzU5
LjkxNzI5ODEzMTg0MjgsICJhdmciOiA2NDc1MzMuMDAwMDAwMDAwMSwgInVuaXQiOiAicnVucy9z
In0sICJCaW5kaW5ncy9nYy10cmVlOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAi
bWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAi
QmluZGluZ3MvZ2MtdHJlZTpKU0hlYXAiOiB7Im1pbiI6IDIwNzY5MTY4LjAsICJtYXgiOiAyMDc3
NDE4OC4wLCAibWVkaWFuIjogMjA3NzE3NDguMCwgInZhbHVlcyI6IFsyMDc3MDIyOC4wLCAyMDc2
OTcxMi4wLCAyMDc3MDYwNC4wLCAyMDc2OTM1Mi4wLCAyMDc3MTI5Ni4wLCAyMDc2OTkyNC4wLCAy
MDc3MTc3Ni4wLCAyMDc3MDY2NC4wLCAyMDc3MjU1Mi4wLCAyMDc3MTQxNi4wLCAyMDc3Mjc1Mi4w
LCAyMDc2OTE2OC4wLCAyMDc3MjQ5Ni4wLCAyMDc3MjAzMi4wLCAyMDc3MzM5Mi4wLCAyMDc3MTcy
MC4wLCAyMDc3NDAxNi4wLCAyMDc3MzQwNC4wLCAyMDc3NDE4OC4wLCAyMDc3Mzc3Mi4wXSwgInN0
ZGV2IjogMTU4Ny44MDExODA3MTA4ODI2LCAiYXZnIjogMjA3NzE3MjMuMjAwMDAwMDAzLCAidW5p
dCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tYXR0cjpKU0hlYXAiOiB7Im1pbiI6IDI5NzkxMTYu
MCwgIm1heCI6IDI5NzkxMTYuMCwgIm1lZGlhbiI6IDI5NzkxMTYuMCwgInZhbHVlcyI6IFsyOTc5
MTE2LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAyOTc5MTE2LjAsICJ1bml0IjogImJ5dGVzIn0s
ICJEcm9tYWVvL2RvbS1hdHRyIjogeyJtaW4iOiA1NzM3LjU5Mzg1MzgwMzIyNSwgIm1heCI6IDU5
NTAuNDE0NTg1NDE0NTg1LCAibWVkaWFuIjogMC4wLCAic3RkZXYiOiA1OC4wMjI3NTkwMTc4MzY3
OSwgImF2ZyI6IDU4MzguOTI3MjU0MjAxNDMxLCAidW5pdCI6ICJydW5zL3MifSwgIkJpbmRpbmdz
L2djLW1pbmktdHJlZTpKU0hlYXAiOiB7Im1pbiI6IDEwNjE1NTI4LjAsICJtYXgiOiAxMzY2NDA1
Mi4wLCAibWVkaWFuIjogMTM2NjEyNTIuMCwgInZhbHVlcyI6IFsxMzY2MTk2OC4wLCAxMzY2Mjk2
OC4wLCAxMDYxNTUyOC4wLCAxMzY2MDI1Ni4wLCAxMzY2MDA2NC4wLCAxMzY2MDc5Ni4wLCAxMzY2
MDU0MC4wLCAxMzY2MTE3Ni4wLCAxMzY2MDg3Mi4wLCAxMzY2MTMyOC4wLCAxMzY2MDU4MC4wLCAx
MzY1Nzk1Mi4wLCAxMzY2MjMxNi4wLCAxMzY2MDM0NC4wLCAxMzY2MTU3Ni4wLCAxMzY2MTg2NC4w
LCAxMzY2MTgxMi4wLCAxMzY2MTYzNi4wLCAxMzY2NDA1Mi4wLCAxMzY2MjUzNi4wXSwgInN0ZGV2
IjogNjgxMDU1Ljc0NTg1NTI3NDQsICJhdmciOiAxMzUwOTAwOC4yLCAidW5pdCI6ICJieXRlcyJ9
LCAiQmluZGluZ3MvZ2MtdHJlZSI6IHsibWluIjogMTI4MC41NjYwMDAwMDEyNzIyLCAibWF4Ijog
MTM5MC44MTMwMDAwMDU0MzcsICJtZWRpYW4iOiAxMzU1LjkwNjUwMDAxNTQwNzgsICJ2YWx1ZXMi
OiBbMTI4My4zMzAwMDAwMDU2NjI0LCAxMzUxLjc5NzAwMDAxMDI2NSwgMTM5MC44MTMwMDAwMDU0
MzcsIDEzNTQuNDI2MDAwMDA1MzMyOCwgMTI4MC41NjYwMDAwMDEyNzIyLCAxMzUzLjQwMjk5OTk4
NjQyODgsIDEyODcuMDMzMDAwMDAwNTE5NywgMTM2MS41NDQ5OTk5OTI0NzUsIDEyOTcuNjE0OTk5
OTg4NTgyLCAxMzU5LjI1MTk5OTk5NDc0LCAxMzU3LjYxMzAwMDAwMDEyODUsIDEzNjYuMDY2OTk5
OTk1MzgyNSwgMTM1Ni4wODIwMDAwMTI5NzUyLCAxMzU1LjczMTAwMDAxNzg0MDQsIDEzNjUuNjI1
MDAwMDA1ODIwOCwgMTM1Ni4yNTM5OTk5ODM4OTE4LCAxMzU4LjU2OTk5OTk4MjEzNzIsIDEzNjAu
MTc5MDAwMDEwMjQ4MywgMTI4Ny43MzMwMDAwMDQ2NjQsIDEyODMuMzUzOTk5OTg0NjgzNV0sICJz
dGRldiI6IDM1Ljc5NTAxNDA1MDM2NzksICJhdmciOiAxMzM4LjM0OTM5OTk5OTQyNDgsICJ1bml0
IjogIm1zIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpKU0hlYXAiOiB7Im1pbiI6IDUwMjU0MTYu
MCwgIm1heCI6IDUwMjU0MTYuMCwgIm1lZGlhbiI6IDUwMjU0MTYuMCwgInZhbHVlcyI6IFs1MDI1
NDE2LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1MDI1NDE2LjAsICJ1bml0IjogImJ5dGVzIn0s
ICJEcm9tYWVvL2RvbS1hdHRyOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVk
aWFuIjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVu
aXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpKU0hlYXAiOiB7Im1pbiI6IDEwNjEz
MDUyLjAsICJtYXgiOiAxMzY2MjE4OC4wLCAibWVkaWFuIjogMTM2NTg2NjQuMCwgInZhbHVlcyI6
IFsxMzY1OTg4OC4wLCAxMzY2MTAwNC4wLCAxMDYxMzA1Mi4wLCAxMzY1NzU4MC4wLCAxMzY1NzM4
MC4wLCAxMzY1ODIwMC4wLCAxMzY1ODExNi4wLCAxMzY1ODQ3Ni4wLCAxMzY1ODUzNi4wLCAxMzY1
ODc5Mi4wLCAxMzY1ODIyOC4wLCAxMzY1NjU1Ni4wLCAxMzY1OTkzMi4wLCAxMzY1Nzk4NC4wLCAx
MzY1OTI1Mi4wLCAxMzY1OTEzNi4wLCAxMzY1OTc2NC4wLCAxMzY1OTI2NC4wLCAxMzY2MjE4OC4w
LCAxMzY2MDA2NC4wXSwgInN0ZGV2IjogNjgxMDg4LjE0MjY5MjI5NjQsICJhdmciOiAxMzUwNjY2
OS42LCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0IjogeyJtaW4iOiA4MDIu
NzI4OTk5OTg4MTc1OSwgIm1heCI6IDgxOC40MTU5OTk5OTQ2MTMyLCAibWVkaWFuIjogODA5Ljkz
OTk5OTk5MTkxMTUsICJ2YWx1ZXMiOiBbODE3Ljc2MTk5OTk5MTQ4OTYsIDgxNS4zMDA5OTk5OTUw
ODgyLCA4MTUuMDk3OTk5OTkxODQ5MSwgODAyLjcyODk5OTk4ODE3NTksIDgwNy4yOTEwMDAwMDQ2
MjUsIDgwNS40MjI5OTk5ODM0MjA2LCA4MDQuOTkxMDAwMDExNzk2MSwgODA0LjcyODAwMDAxNzM0
ODcsIDgwOS44Nzk5OTk5ODYxNTEyLCA4MDQuNDI2OTk5OTk1NDg1LCA4MTQuNjQyOTk5OTkwNjEw
NCwgODEzLjc4MjAwMDAxMTk5NzMsIDgwNy45NTM5OTk5ODg5Njc2LCA4MDkuNzM2MDAwMDI0NzEz
NiwgODA5Ljk5OTk5OTk5NzY3MTcsIDgxMi45NjE5OTk5OTYzMzI1LCA4MTUuMTcwMDAwMDE2MjIz
NiwgODEyLjEyMDk5OTk5NTM4NjIsIDgxOC40MTU5OTk5OTQ2MTMyLCA4MDQuNjQyMDAwMDAyNzg2
NV0sICJzdGRldiI6IDQuOTAyMjg5MDg0MjAwMDIzNSwgImF2ZyI6IDgxMC4zNTI3OTk5OTkyMzY1
LCAidW5pdCI6ICJtcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0Ok1hbGxvYyI6IHsibWluIjogMC4w
LCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMCwgMC4wLCAwLjAsIDAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5p
dCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tbW9kaWZ5IjogeyJtaW4iOiAzMzM1LjIzNjUyODcz
NTQyMTQsICJtYXgiOiA0MjU3LjI4MTg5OTEwOTc5MiwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2Ijog
MjcwLjc2MjAyNjgxODM2NzIsICJhdmciOiAzODY3LjExOTgzOTU0MDE3OSwgInVuaXQiOiAicnVu
cy9zIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6
IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmci
OiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1tb2RpZnk6SlNIZWFwIjogeyJt
aW4iOiA0NjIxMTQ4MC4wLCAibWF4IjogNDYyMTE0ODAuMCwgIm1lZGlhbiI6IDQ2MjExNDgwLjAs
ICJ2YWx1ZXMiOiBbNDYyMTE0ODAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDQ2MjExNDgwLjAs
ICJ1bml0IjogImJ5dGVzIn19LCAicGxhdGZvcm0iOiAiY2hyb21pdW0iLCAiYnJhbmNoIjogIndl
YmtpdC10cnVuayIsICJjaHJvbWl1bS1yZXZpc2lvbiI6ICIxNjMyOTcifSwgeyJ0aW1lc3RhbXAi
OiAxMzUwOTM3NTQzLCAid2Via2l0LXJldmlzaW9uIjogIjEzMjExNSIsICJyZXN1bHRzIjogeyJC
aW5kaW5ncy9nYy1taW5pLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJt
ZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJE
cm9tYWVvL2RvbS1xdWVyeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlh
biI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0
IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeTpKU0hlYXAiOiB7Im1pbiI6IDUyMDk2OTYu
MCwgIm1heCI6IDUyMDk2OTYuMCwgIm1lZGlhbiI6IDUyMDk2OTYuMCwgInZhbHVlcyI6IFs1MjA5
Njk2LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1MjA5Njk2LjAsICJ1bml0IjogImJ5dGVzIn0s
ICJCaW5kaW5ncy9nYy1taW5pLXRyZWUiOiB7Im1pbiI6IDExNTEuNjE0MDAwMDAyMTU1LCAibWF4
IjogMTE4Mi40MTE5OTk5OTQ2NTYsICJtZWRpYW4iOiAxMTY2LjMyMTQ5OTk4NjIyNDgsICJ2YWx1
ZXMiOiBbMTE2Mi4wMDEwMDAwMTg3OTA0LCAxMTcwLjQxMDk5OTk5OTE0ODgsIDExNzguOTIxOTk5
OTkxODcxNCwgMTE3OC4wNDQwMDAwMDAyMjcyLCAxMTc1Ljg0NzAwMDAwNTg4NzgsIDExNjkuMDIx
MDAwMDA4Nzk3MywgMTE2Ny40OTYwMDAwMDkxMjMyLCAxMTYzLjEzMjAwMDAxNjA0ODYsIDExNjAu
MjUyMDAwMDAxNDkyLCAxMTY3LjM3MDAwMDAxMDEyMzUsIDExNjIuMzA2OTk5OTkxNDE1LCAxMTYx
LjA5Nzk5OTk4MjMwMywgMTE2MS45OTI5OTk5ODY5NzgyLCAxMTY1Ljc5ODAwMDAwMTgxNDIsIDEx
NzEuNzM1OTk5OTg5MzIzMywgMTE2MC41Mjk5OTk5OTM3NDE1LCAxMTgyLjQxMTk5OTk5NDY1Niwg
MTE2Ni4yODM5OTk5NzcxNjc3LCAxMTUxLjYxNDAwMDAwMjE1NSwgMTE2Ni4zNTg5OTk5OTUyODJd
LCAic3RkZXYiOiA3LjQ5MTk3MTY5NzQzNzI5OCwgImF2ZyI6IDExNjcuMTMxMzQ5OTk4ODE3Mywg
InVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLXRyYXZlcnNlIjogeyJtaW4iOiAyNjM5LjQ1MzMy
NTExNzk5NTUsICJtYXgiOiAyNjY0LjUxMDQ4OTUxMDQ4OTYsICJtZWRpYW4iOiAwLjAsICJzdGRl
diI6IDYuMTI3ODE1Njk0MTg3MDI4LCAiYXZnIjogMjY1Mi4xNjYyMTE4NTM5NDksICJ1bml0Ijog
InJ1bnMvcyJ9LCAiRHJvbWFlby9kb20tcXVlcnkiOiB7Im1pbiI6IDY1NjEyNi4wLCAibWF4Ijog
NjU5NTQwLjE1Nzg0MjE1NzksICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDYyNi41NTM3MTMwMzU4
NDcyLCAiYXZnIjogNjU3NzY0LjY2MzkzNjA2NCwgInVuaXQiOiAicnVucy9zIn0sICJCaW5kaW5n
cy9nYy10cmVlOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4w
LCAidmFsdWVzIjogWzAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wXSwg
InN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2Mt
dHJlZTpKU0hlYXAiOiB7Im1pbiI6IDIwNzY5MTcyLjAsICJtYXgiOiAyMDc3NDE5Mi4wLCAibWVk
aWFuIjogMjA3NzE3NTAuMCwgInZhbHVlcyI6IFsyMDc3MDIyOC4wLCAyMDc2OTcxMi4wLCAyMDc3
MDYwNC4wLCAyMDc2OTM1Mi4wLCAyMDc3MTI5Ni4wLCAyMDc2OTkyNC4wLCAyMDc3MTc3Ni4wLCAy
MDc3MDY2NC4wLCAyMDc3MjU1Mi4wLCAyMDc3MTQyMC4wLCAyMDc3Mjc1Ni4wLCAyMDc2OTE3Mi4w
LCAyMDc3MjUwMC4wLCAyMDc3MjAzNi4wLCAyMDc3MzM5Ni4wLCAyMDc3MTcyNC4wLCAyMDc3NDAy
MC4wLCAyMDc3MzQwOC4wLCAyMDc3NDE5Mi4wLCAyMDc3Mzc3Ni4wXSwgInN0ZGV2IjogMTU4OS4w
NDg0NTQwOTgzMDIzLCAiYXZnIjogMjA3NzE3MjUuNDAwMDAwMDAyLCAidW5pdCI6ICJieXRlcyJ9
LCAiRHJvbWFlby9kb20tYXR0cjpKU0hlYXAiOiB7Im1pbiI6IDQ5NTE1ODQuMCwgIm1heCI6IDQ5
NTE1ODQuMCwgIm1lZGlhbiI6IDQ5NTE1ODQuMCwgInZhbHVlcyI6IFs0OTUxNTg0LjBdLCAic3Rk
ZXYiOiAwLjAsICJhdmciOiA0OTUxNTg0LjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9n
Yy1mb3Jlc3QiOiB7Im1pbiI6IDgwMi4yMDEwMDAwMTMxNTU5LCAibWF4IjogODI4LjY0Njk5OTk4
NzU0MDgsICJtZWRpYW4iOiA4MDcuODcwOTk5OTgyNjk3LCAidmFsdWVzIjogWzgyOC42NDY5OTk5
ODc1NDA4LCA4MjMuNDQ1OTk5OTk0ODc0LCA4MTguNzI5OTk5OTk5MDUsIDgxMS40MzgwMDAwMDQy
NzI5LCA4MTEuMDU0OTk5OTk4MzA1LCA4MDIuMzYyOTk5OTk1MjM5MSwgODEwLjUyMjAwMDAxNDMx
NjMsIDgwNC45NTk5OTk5Nzk0NzM3LCA4MTguMTAyOTk5OTk3NzkwOSwgODAzLjM2NDAwMDAyMTI0
NzIsIDgwOC4xMDY5OTk5ODk4MzE4LCA4MDkuMTk2MDAwMDE2NTI3MywgODA2Ljk5ODAwMDAxNDU3
MzMsIDgwMi42MTMwMDAwMDcxMTM0LCA4MDQuMzYwMDAwMDA5MTgyOCwgODAyLjIwMTAwMDAxMzE1
NTksIDgwNy42MTA5OTk5OTY1NDExLCA4MTQuNDQ0OTk5OTk2MzM5OSwgODA3LjYzNDk5OTk3NTU2
MjEsIDgwNC42MzkwMDAwMDkwNDY5XSwgInN0ZGV2IjogNy4zMzM1MDQyNTExNDEzMzgsICJhdmci
OiA4MTAuMDIxNjUwMDAwOTk5MiwgInVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLWF0dHIiOiB7
Im1pbiI6IDU4NzQuNTE2OTY2MDY3ODY0LCAibWF4IjogNjAxNi4xNjI4MzcxNjI4MzgsICJtZWRp
YW4iOiAwLjAsICJzdGRldiI6IDMzLjIwNDg2MjIwMzc4MjM1LCAiYXZnIjogNTkyMS4yNzEyMjUz
ODE0MDQsICJ1bml0IjogInJ1bnMvcyJ9LCAiQmluZGluZ3MvZ2MtbWluaS10cmVlOkpTSGVhcCI6
IHsibWluIjogMTA2MTU1MjguMCwgIm1heCI6IDEzNjY0MDUyLjAsICJtZWRpYW4iOiAxMzY2MTI1
Mi4wLCAidmFsdWVzIjogWzEzNjYxOTY4LjAsIDEzNjYyOTY4LjAsIDEwNjE1NTI4LjAsIDEzNjYw
MjU2LjAsIDEzNjYwMDY0LjAsIDEzNjYwNzk2LjAsIDEzNjYwNTQwLjAsIDEzNjYxMTc2LjAsIDEz
NjYwODcyLjAsIDEzNjYxMzI4LjAsIDEzNjYwNTgwLjAsIDEzNjU3OTUyLjAsIDEzNjYyMzE2LjAs
IDEzNjYwMzQ0LjAsIDEzNjYxNTc2LjAsIDEzNjYxODY0LjAsIDEzNjYxODEyLjAsIDEzNjYxNjM2
LjAsIDEzNjY0MDUyLjAsIDEzNjYyNTM2LjBdLCAic3RkZXYiOiA2ODEwNTUuNzQ1ODU1Mjc0NCwg
ImF2ZyI6IDEzNTA5MDA4LjIsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy10cmVlIjog
eyJtaW4iOiAxMzI0LjQ1NDAwMDAxNTk3NiwgIm1heCI6IDEzNzguOTk2MDAwMDE0MDEyNywgIm1l
ZGlhbiI6IDEzNDQuNTU5MDAwMDA0NjY1LCAidmFsdWVzIjogWzEzMjQuNDU0MDAwMDE1OTc2LCAx
MzQyLjcyMzAwMDAwODg0NTcsIDEzNzguOTk2MDAwMDE0MDEyNywgMTM0NC4wNDEwMDAwMDM5MjY1
LCAxMzMxLjM1NTAwMDAwMjA3NjgsIDEzNDQuMDAzOTk5OTg0MTI0NywgMTMyOS42Nzg5OTk5ODc2
NjM3LCAxMzQzLjE2Mjk5OTk4MzE3ODUsIDEzMzAuMTI1MDAwMDA3NjgzNCwgMTM0NS4wNzcwMDAw
MDU0MDM1LCAxMzUwLjY4MzAwMDAyNjAzOCwgMTM1NC4yMjcwMDAwMDM0NDc4LCAxMzQ1LjY2Mzk5
OTk5MzEyMTMsIDEzNTQuMDI1MDAwMDA3ODIzLCAxMzQ2Ljk1ODk5OTk4NzY5MTYsIDEzNDYuNDA4
MDAwMDEyMTYxMiwgMTM0OS4zMTM5OTk5OTE4NjQsIDEzNDguMjI2OTk5OTgwMzk3NSwgMTMzNS4w
ODcwMDAwMTQwMjc2LCAxMzMyLjY2Nzk5OTk4ODE4OV0sICJzdGRldiI6IDExLjg5NDk2NjQ2Njg5
MDE3LCAiYXZnIjogMTM0My44NDM5NTAwMDA4ODI4LCAidW5pdCI6ICJtcyJ9LCAiRHJvbWFlby9k
b20tdHJhdmVyc2U6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAw
LjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJi
eXRlcyJ9LCAiRHJvbWFlby9kb20tYXR0cjpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAu
MCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAw
LjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3Q6SlNIZWFwIjogeyJtaW4i
OiAxMDYxMzA0OC4wLCAibWF4IjogMTM2NjE5ODguMCwgIm1lZGlhbiI6IDEzNjU4NDE0LjAsICJ2
YWx1ZXMiOiBbMTM2NTk4OTIuMCwgMTM2NjEwMDQuMCwgMTA2MTMwNDguMCwgMTM2NTc0MDguMCwg
MTM2NTc1MjAuMCwgMTM2NTc2NjguMCwgMTM2NTgwNzYuMCwgMTM2NTg0ODAuMCwgMTM2NTgzNDgu
MCwgMTM2NTgzMDguMCwgMTM2NTgwNzYuMCwgMTM2NTYwMTIuMCwgMTM2NTk2MDguMCwgMTM2NTc3
MTIuMCwgMTM2NTkxMzYuMCwgMTM2NTg5MjguMCwgMTM2NTk1MzYuMCwgMTM2NTkxNDguMCwgMTM2
NjE5ODguMCwgMTM2NjAxODQuMF0sICJzdGRldiI6IDY4MTA1MC4yMjYwNzUxNzkyLCAiYXZnIjog
MTM1MDY1MDQuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLXRyYXZlcnNlOkpTSGVh
cCI6IHsibWluIjogNTAzMDU2MC4wLCAibWF4IjogNTAzMDU2MC4wLCAibWVkaWFuIjogNTAzMDU2
MC4wLCAidmFsdWVzIjogWzUwMzA1NjAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDUwMzA1NjAu
MCwgInVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpNYWxsb2MiOiB7Im1pbiI6
IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwg
InVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLW1vZGlmeSI6IHsibWluIjogMzQ3OS40NDgx
OTU0NDgwNjI1LCAibWF4IjogNDE4My41MDYwNzcxMDY2NzUsICJtZWRpYW4iOiAwLjAsICJzdGRl
diI6IDE4NS4wNzA4MTM3MDY4MzE2NCwgImF2ZyI6IDM5MDYuMTMzMjcyNDA4MDc4NSwgInVuaXQi
OiAicnVucy9zIn0sICJEcm9tYWVvL2RvbS1tb2RpZnk6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJt
YXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAi
YXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tbW9kaWZ5OkpTSGVhcCI6
IHsibWluIjogMzIxNjc5MDQuMCwgIm1heCI6IDMyMTY3OTA0LjAsICJtZWRpYW4iOiAzMjE2Nzkw
NC4wLCAidmFsdWVzIjogWzMyMTY3OTA0LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAzMjE2Nzkw
NC4wLCAidW5pdCI6ICJieXRlcyJ9fSwgInBsYXRmb3JtIjogImNocm9taXVtIiwgImJyYW5jaCI6
ICJ3ZWJraXQtdHJ1bmsiLCAiY2hyb21pdW0tcmV2aXNpb24iOiAiMTYzMjk3In0sIHsidGltZXN0
YW1wIjogMTM1MDkzNzc2MywgIndlYmtpdC1yZXZpc2lvbiI6ICIxMzIxMTUiLCAicmVzdWx0cyI6
IHsiQmluZGluZ3MvZ2MtbWluaS10cmVlOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4w
LCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9
LCAiRHJvbWFlby9kb20tcXVlcnk6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJt
ZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAi
dW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tcXVlcnk6SlNIZWFwIjogeyJtaW4iOiA1MTk1
NTA0LjAsICJtYXgiOiA1MTk1NTA0LjAsICJtZWRpYW4iOiA1MTk1NTA0LjAsICJ2YWx1ZXMiOiBb
NTE5NTUwNC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogNTE5NTUwNC4wLCAidW5pdCI6ICJieXRl
cyJ9LCAiQmluZGluZ3MvZ2MtbWluaS10cmVlIjogeyJtaW4iOiAxMjI1LjQxNzk5OTk4NzI1NzYs
ICJtYXgiOiAxMjc1LjI0MDAwMDAxNzIyMDIsICJtZWRpYW4iOiAxMjQxLjcxMDQ5OTk5MTMxMzYs
ICJ2YWx1ZXMiOiBbMTI3NS4yNDAwMDAwMTcyMjAyLCAxMjQzLjcwNjk5OTk4Njg5ODIsIDEyNDgu
NTM4OTk5OTkyODg4NCwgMTI0OS4wMDk5OTk5OTk1NDM3LCAxMjU0LjM1NDk5OTk4Mjc1MiwgMTIz
Ni4xODMwMDAwMDA4OTIyLCAxMjUxLjA3OTk5OTk4NzI2ODgsIDEyMzguODI2MDAwMDE1MjUxMywg
MTIzOS41MTgwMDAwMTY2ODc0LCAxMjMwLjE5NDk5OTk4MTkwNDQsIDEyMzUuMzUyOTk5OTk2Mzk0
LCAxMjI1LjQxNzk5OTk4NzI1NzYsIDEyNDIuMDQwOTk5OTkwNDIyMywgMTI0MS4zNzk5OTk5OTIy
MDQ4LCAxMjQzLjQyNjAwMDAwMDkwOSwgMTI0NC45MDQ5OTk5OTk1NjIzLCAxMjU0LjQ4MDk5OTk4
MTc1MTcsIDEyMzguNzQ5MDAwMDExMDEyLCAxMjM2LjQ4Njk5OTk4NzM5MTgsIDEyMzUuMTIxOTk5
OTgzNjc1OF0sICJzdGRldiI6IDEwLjY4NTU2NTU5MzEzMzQ2OCwgImF2ZyI6IDEyNDMuMjAwNzQ5
OTk1NTk0NCwgInVuaXQiOiAibXMifSwgIkJpbmRpbmdzL2djLXRyZWUiOiB7Im1pbiI6IDEyMDIu
MzMyOTk5OTkzODE0MiwgIm1heCI6IDEyNTQuNTUzMDAwMDA2MTI2MiwgIm1lZGlhbiI6IDEyMTgu
OTU0NTAwMDAwMTA5LCAidmFsdWVzIjogWzEyMDMuODA0OTk5OTk3MzczNywgMTIyMC4xMjE5OTk5
OTg4MDk4LCAxMjU0LjU1MzAwMDAwNjEyNjIsIDEyMjQuNTMxOTk5OTkyOTA1MiwgMTIyMC45NTgw
MDAwMTk4OTEyLCAxMjIwLjQ5MTk5OTk5MzEwMDgsIDEyMDIuMzMyOTk5OTkzODE0MiwgMTIyMy42
MzEwMDAwMDA3NTA2LCAxMjAzLjM3Nzk5OTk3NjUxMDIsIDEyMzAuNDI3MDAwMDAyMjM3LCAxMjE3
LjgzODAwMDAxMTM5NzUsIDEyMTguOTU5MDAwMDE5ODIyMywgMTIxOC4wNjg5OTk5OTUwMTE4LCAx
MjIyLjEwMTk5OTk5OTcyMjUsIDEyMjIuNjU1MDAwMDE5NTg1NywgMTIxNi4wOTA5OTk5ODAyMjQz
LCAxMjE4Ljk0OTk5OTk4MDM5NTcsIDEyMTQuMzk0MDAwMDA5NjMzNiwgMTIwMi41OTk5OTk5ODk2
MTU4LCAxMjAzLjA3MDk5OTk5NjI3MV0sICJzdGRldiI6IDEyLjA1NzE1MTAyOTYwNzc5NiwgImF2
ZyI6IDEyMTcuOTQ3OTk5OTk5MTYwMiwgInVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLXRyYXZl
cnNlIjogeyJtaW4iOiAyNjU2LjIxODc4MTIxODc4MTMsICJtYXgiOiAyNjc4Ljc5MjYyODUyOTE1
NSwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2IjogNS43ODg3Mjg0Mzc4NDYwOTUsICJhdmciOiAyNjY4
LjA5MTg2NjYxNjQxOCwgInVuaXQiOiAicnVucy9zIn0sICJEcm9tYWVvL2RvbS1xdWVyeSI6IHsi
bWluIjogNjQ5ODcyLjAsICJtYXgiOiA2NTMyMDMuMCwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2Ijog
OTUyLjgyNzY4NjQxNTU0NDksICJhdmciOiA2NTE0ODkuMCwgInVuaXQiOiAicnVucy9zIn0sICJC
aW5kaW5ncy9nYy10cmVlOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFu
IjogMC4wLCAidmFsdWVzIjogWzAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGlu
Z3MvZ2MtdHJlZTpKU0hlYXAiOiB7Im1pbiI6IDIwNzY5MTcyLjAsICJtYXgiOiAyMDc3NDE5Mi4w
LCAibWVkaWFuIjogMjA3NzE3NTAuMCwgInZhbHVlcyI6IFsyMDc3MDIyOC4wLCAyMDc2OTcxMi4w
LCAyMDc3MDYwNC4wLCAyMDc2OTM1Mi4wLCAyMDc3MTI5Ni4wLCAyMDc2OTkyNC4wLCAyMDc3MTc3
Ni4wLCAyMDc3MDY2NC4wLCAyMDc3MjU1Mi4wLCAyMDc3MTQyMC4wLCAyMDc3Mjc1Ni4wLCAyMDc2
OTE3Mi4wLCAyMDc3MjUwMC4wLCAyMDc3MjAzNi4wLCAyMDc3MzM5Ni4wLCAyMDc3MTcyNC4wLCAy
MDc3NDAyMC4wLCAyMDc3MzQwOC4wLCAyMDc3NDE5Mi4wLCAyMDc3Mzc3Ni4wXSwgInN0ZGV2Ijog
MTU4OS4wNDg0NTQwOTgzMDIzLCAiYXZnIjogMjA3NzE3MjUuNDAwMDAwMDAyLCAidW5pdCI6ICJi
eXRlcyJ9LCAiRHJvbWFlby9kb20tYXR0cjpKU0hlYXAiOiB7Im1pbiI6IDcyODA5ODAuMCwgIm1h
eCI6IDcyODA5ODAuMCwgIm1lZGlhbiI6IDcyODA5ODAuMCwgInZhbHVlcyI6IFs3MjgwOTgwLjBd
LCAic3RkZXYiOiAwLjAsICJhdmciOiA3MjgwOTgwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9t
YWVvL2RvbS1hdHRyIjogeyJtaW4iOiA1NzY4LjAyMzk3NjAyMzk3NjUsICJtYXgiOiA1OTMzLjc4
MzIxNjc4MzIxNywgIm1lZGlhbiI6IDAuMCwgInN0ZGV2IjogNDcuNTIxODA1NDk3NzM4ODksICJh
dmciOiA1ODM1LjE5ODI4NzU0MDgwMywgInVuaXQiOiAicnVucy9zIn0sICJCaW5kaW5ncy9nYy1t
aW5pLXRyZWU6SlNIZWFwIjogeyJtaW4iOiAxMDYxNTUyOC4wLCAibWF4IjogMTM2NjQwNTIuMCwg
Im1lZGlhbiI6IDEzNjYxMjUyLjAsICJ2YWx1ZXMiOiBbMTM2NjE5NjguMCwgMTM2NjI5NjguMCwg
MTA2MTU1MjguMCwgMTM2NjAyNTYuMCwgMTM2NjAwNjQuMCwgMTM2NjA3OTYuMCwgMTM2NjA1NDAu
MCwgMTM2NjExNzYuMCwgMTM2NjA4NzIuMCwgMTM2NjEzMjguMCwgMTM2NjA1ODAuMCwgMTM2NTc5
NTIuMCwgMTM2NjIzMTYuMCwgMTM2NjAzNDQuMCwgMTM2NjE1NzYuMCwgMTM2NjE4NjQuMCwgMTM2
NjE4MTIuMCwgMTM2NjE2MzYuMCwgMTM2NjQwNTIuMCwgMTM2NjI1MzYuMF0sICJzdGRldiI6IDY4
MTA1NS43NDU4NTUyNzQ0LCAiYXZnIjogMTM1MDkwMDguMiwgInVuaXQiOiAiYnl0ZXMifSwgIkRy
b21hZW8vZG9tLW1vZGlmeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlh
biI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0
IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpKU0hlYXAiOiB7Im1pbiI6IDUwMzY1
OTYuMCwgIm1heCI6IDUwMzY1OTYuMCwgIm1lZGlhbiI6IDUwMzY1OTYuMCwgInZhbHVlcyI6IFs1
MDM2NTk2LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1MDM2NTk2LjAsICJ1bml0IjogImJ5dGVz
In0sICJEcm9tYWVvL2RvbS1hdHRyOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAi
bWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwg
InVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpKU0hlYXAiOiB7Im1pbiI6IDEw
NjEzMDU2LjAsICJtYXgiOiAxMzY2MTY0NC4wLCAibWVkaWFuIjogMTM2NTgzNzAuMCwgInZhbHVl
cyI6IFsxMzY1OTg5Mi4wLCAxMzY2MTAwOC4wLCAxMDYxMzA1Ni4wLCAxMzY1NzQwOC4wLCAxMzY1
NzUyNC4wLCAxMzY1ODAxNi4wLCAxMzY1Nzg4NC4wLCAxMzY1ODExNi4wLCAxMzY1ODM0OC4wLCAx
MzY1ODM5Mi4wLCAxMzY1ODI0NC4wLCAxMzY1NjA2NC4wLCAxMzY1OTQ1Ni4wLCAxMzY1NzYyNC4w
LCAxMzY1ODg1Mi4wLCAxMzY1ODk2OC4wLCAxMzY1OTM4MC4wLCAxMzY1OTE4OC4wLCAxMzY2MTY0
NC4wLCAxMzY1OTc5Ni4wXSwgInN0ZGV2IjogNjgxMDMzLjgzMjQwODk5NjEsICJhdmciOiAxMzUw
NjQ0My4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0IjogeyJtaW4iOiA4
NjQuOTk1OTk5OTg5MzMyNiwgIm1heCI6IDkxMy4yNzkwMDAwMDAzMjk3LCAibWVkaWFuIjogODcz
LjM0ODQ5OTk5NzUxOSwgInZhbHVlcyI6IFs4NzkuMDQ1OTk5OTg3MjgzNywgODc0Ljc4MTk5OTk5
ODk1ODgsIDg4MS42MzEwMDAwMjU2NjM1LCA4NzcuMDU0MDAwMDExNDEyNCwgOTEzLjI3OTAwMDAw
MDMyOTcsIDg4MS42NzE5OTk5ODg2MTE4LCA4NzAuNjEzMDAwMDA2NDE1LCA4NzIuMDUxMDAwMDEz
MDE2MiwgODY4Ljg0MDAwMDAxMDA5NTUsIDg3MS45MjcwMDAwMDAxNDE2LCA4NzIuMjM3OTk5OTgx
NzM0OSwgODc0LjQ1OTAwMDAxMzMwMywgODY1LjA0Mjk5OTk5Nzk2NzksIDg2OC43NTM5OTk5OTU1
MzM0LCA4NjguMjc0OTk5OTg2MTY5OSwgODc1LjE3ODk5OTk5NTExNDMsIDg3NS4zNDgwMDAwMDEz
OTUxLCA4NzcuMDc3OTk5OTkwNDMzNSwgODcwLjg1NzAwMDAwMTcwNjIsIDg2NC45OTU5OTk5ODkz
MzI2XSwgInN0ZGV2IjogMTAuMTYyNTM0NjY2ODEyMDE0LCAiYXZnIjogODc1LjE1NjA5OTk5OTcz
MSwgInVuaXQiOiAibXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpNYWxsb2MiOiB7Im1pbiI6IDAu
MCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVu
aXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLW1vZGlmeSI6IHsibWluIjogMzU1My4zMDE4NjIz
NzY5MzIsICJtYXgiOiA0MjM4LjU5OTc4NTUwMzYxOSwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2Ijog
MTg4LjQ4MzA5MzAwMzE1MDMsICJhdmciOiAzOTU3Ljg4NTAwNDI3NjU5MTYsICJ1bml0IjogInJ1
bnMvcyJ9LCAiRHJvbWFlby9kb20tdHJhdmVyc2U6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgi
OiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZn
IjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tbW9kaWZ5OkpTSGVhcCI6IHsi
bWluIjogMjk1NDI0MC4wLCAibWF4IjogMjk1NDI0MC4wLCAibWVkaWFuIjogMjk1NDI0MC4wLCAi
dmFsdWVzIjogWzI5NTQyNDAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDI5NTQyNDAuMCwgInVu
aXQiOiAiYnl0ZXMifX0sICJwbGF0Zm9ybSI6ICJjaHJvbWl1bSIsICJicmFuY2giOiAid2Via2l0
LXRydW5rIiwgImNocm9taXVtLXJldmlzaW9uIjogIjE2MzI5NyJ9LCB7InRpbWVzdGFtcCI6IDEz
NTA5Mzc5ODQsICJ3ZWJraXQtcmV2aXNpb24iOiAiMTMyMTE1IiwgInJlc3VsdHMiOiB7IkJpbmRp
bmdzL2djLW1pbmktdHJlZTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlh
biI6IDAuMCwgInZhbHVlcyI6IFswLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21h
ZW8vZG9tLXF1ZXJ5Ok1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjog
MC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQiOiAi
Ynl0ZXMifSwgIkRyb21hZW8vZG9tLXF1ZXJ5OkpTSGVhcCI6IHsibWluIjogNDY2NjM1Mi4wLCAi
bWF4IjogNDY2NjM1Mi4wLCAibWVkaWFuIjogNDY2NjM1Mi4wLCAidmFsdWVzIjogWzQ2NjYzNTIu
MF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDQ2NjYzNTIuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkJp
bmRpbmdzL2djLW1pbmktdHJlZSI6IHsibWluIjogMTE1MC4wNDcwMDAwMDI4MTQ1LCAibWF4Ijog
MTE5Mi45MDEwMDAwMDIxNjYzLCAibWVkaWFuIjogMTE1OC43NjcwMDAwMTUzNTk0LCAidmFsdWVz
IjogWzExNTkuMTgzMDAwMDEwNjcxLCAxMTU3LjQxODk5OTk5NTU3MDYsIDExNzMuMjg2OTk5OTgz
MjQ3NCwgMTE2OC45NDAwMDAwMDMyMDM3LCAxMTY3LjE3ODAwMDAwMzMzMjMsIDExOTIuOTAxMDAw
MDAyMTY2MywgMTE3Mi45OTkwMDAwMDIxNjQ0LCAxMTU4LjEwNjk5OTk5NTY1MjYsIDExNTguMzUx
MDAwMDIwMDQ3NiwgMTE1MS45MDE5OTk5ODMyMzgsIDExNTIuNzY2MDAwMDEzNzk4NSwgMTE1Mi43
MjQ5OTk5OTI2NDI2LCAxMTUwLjE0NzAwMDAwNzU2NDIsIDExNTkuNzE4OTk5OTg4Mzk5NCwgMTE2
Ny4zMzM5OTk5OTc5MzYyLCAxMTUzLjU2NDk5OTk4NTk3NDMsIDExNjAuMTUxOTk5OTk2NzQyMiwg
MTE1MC4wNDcwMDAwMDI4MTQ1LCAxMTYxLjkwNDAwMDAwNzc4MDMsIDExNTQuMTczOTk5OTk1Njkx
N10sICJzdGRldiI6IDEwLjM3OTQ0NjUzMjM3NDAzLCAiYXZnIjogMTE2MS4xMzk5OTk5OTk0MzIs
ICJ1bml0IjogIm1zIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZSI6IHsibWluIjogMjY1Mi41ODA4
MzgzMjMzNTMsICJtYXgiOiAyNjgwLjc4Mzg1Njg2MTcwMTcsICJtZWRpYW4iOiAwLjAsICJzdGRl
diI6IDUuOTE0MzgzOTgzMjM1MjQ2LCAiYXZnIjogMjY2Ny44ODMwNDgyODkwMzYsICJ1bml0Ijog
InJ1bnMvcyJ9LCAiRHJvbWFlby9kb20tcXVlcnkiOiB7Im1pbiI6IDY0NzQ2Mi4wLCAibWF4Ijog
NjUwOTY2LjAsICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDY1Mi4zOTQ2NDkzOTMzMDA0LCAiYXZn
IjogNjQ4ODQ4LjEwMTg5ODEwMTksICJ1bml0IjogInJ1bnMvcyJ9LCAiQmluZGluZ3MvZ2MtdHJl
ZTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVl
cyI6IFswLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMF0sICJzdGRldiI6
IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLXRyZWU6SlNI
ZWFwIjogeyJtaW4iOiAyMDc2OTE2OC4wLCAibWF4IjogMjA3NzQxOTIuMCwgIm1lZGlhbiI6IDIw
NzcxNzUwLjAsICJ2YWx1ZXMiOiBbMjA3NzAyMjguMCwgMjA3Njk3MTIuMCwgMjA3NzA2MDQuMCwg
MjA3NjkzNTIuMCwgMjA3NzEyOTYuMCwgMjA3Njk5MjQuMCwgMjA3NzE3NzYuMCwgMjA3NzA2NjQu
MCwgMjA3NzI1NTIuMCwgMjA3NzE0MjAuMCwgMjA3NzI3NTYuMCwgMjA3NjkxNjguMCwgMjA3NzI1
MDAuMCwgMjA3NzIwMzYuMCwgMjA3NzMzOTYuMCwgMjA3NzE3MjQuMCwgMjA3NzQwMjAuMCwgMjA3
NzM0MDguMCwgMjA3NzQxOTIuMCwgMjA3NzM3NzYuMF0sICJzdGRldiI6IDE1ODkuMzg2OTU4OTQ0
NTQxMiwgImF2ZyI6IDIwNzcxNzI1LjIwMDAwMDAwMywgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21h
ZW8vZG9tLWF0dHI6SlNIZWFwIjogeyJtaW4iOiA2MDQ0MDgwLjAsICJtYXgiOiA2MDQ0MDgwLjAs
ICJtZWRpYW4iOiA2MDQ0MDgwLjAsICJ2YWx1ZXMiOiBbNjA0NDA4MC4wXSwgInN0ZGV2IjogMC4w
LCAiYXZnIjogNjA0NDA4MC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0
IjogeyJtaW4iOiA4MDcuNTIyOTk5OTk1ODUzOCwgIm1heCI6IDgyMy45Mjc5OTk5OTc5NzcyLCAi
bWVkaWFuIjogODE1LjcwNTk5OTk5Mzk1MiwgInZhbHVlcyI6IFs4MjMuOTI3OTk5OTk3OTc3Miwg
ODE4LjEwMTk5OTk5MDE3NjQsIDgyMC44MjgwMDAwMjUzNTgsIDgxNC4wMjU5OTk5NzgxODQ3LCA4
MjIuNDIxOTk5OTk3NDU5NCwgODE1LjQxOTAwMDAyMDQ4MzUsIDgxMy4wNjc5OTk5ODg1NjE1LCA4
MTUuNjQwOTk5OTkzNzc1LCA4MTAuODUxOTk5OTk1MDY1OSwgODE2Ljk0MjAwMDAwNDkyODYsIDgw
OS4yNzgwMDAwMDA2MzE0LCA4MTcuMzU5OTk5OTg2MzY1NCwgODE3LjY1Mzk5OTk4NDAzMTUsIDgx
NS40Mjg5OTk5ODAyMTMxLCA4MjMuMjE2MDAwMDE4ODc0MiwgODE1LjI3Mjk5OTk4NTYwOTIsIDgw
Ny41MjI5OTk5OTU4NTM4LCA4MTUuNzcwOTk5OTk0MTI4OSwgODExLjU2MDk5OTk4MDQyOTIsIDgy
MS4zMTEwMDAwMDY5NzE5XSwgInN0ZGV2IjogNC41NDg2OTEzMzM1NjU5NDEsICJhdmciOiA4MTYu
MjgwMTk5OTk2MjUzOSwgInVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLWF0dHIiOiB7Im1pbiI6
IDU4MzUuNTQwOTE4MTYzNjcyLCAibWF4IjogNTk5NC4wLCAibWVkaWFuIjogMC4wLCAic3RkZXYi
OiAzNi40NTMyODMyOTYzOTI2NCwgImF2ZyI6IDU4ODQuMjI1NjM5NTUwMTExLCAidW5pdCI6ICJy
dW5zL3MifSwgIkJpbmRpbmdzL2djLW1pbmktdHJlZTpKU0hlYXAiOiB7Im1pbiI6IDEwNjE1NTI4
LjAsICJtYXgiOiAxMzY2NDA1Mi4wLCAibWVkaWFuIjogMTM2NjEyNTIuMCwgInZhbHVlcyI6IFsx
MzY2MTk2OC4wLCAxMzY2Mjk2OC4wLCAxMDYxNTUyOC4wLCAxMzY2MDI1Ni4wLCAxMzY2MDA2NC4w
LCAxMzY2MDc5Ni4wLCAxMzY2MDU0MC4wLCAxMzY2MTE3Ni4wLCAxMzY2MDg3Mi4wLCAxMzY2MTMy
OC4wLCAxMzY2MDU4MC4wLCAxMzY1Nzk1Mi4wLCAxMzY2MjMxNi4wLCAxMzY2MDM0NC4wLCAxMzY2
MTU3Ni4wLCAxMzY2MTg2NC4wLCAxMzY2MTgxMi4wLCAxMzY2MTYzNi4wLCAxMzY2NDA1Mi4wLCAx
MzY2MjUzNi4wXSwgInN0ZGV2IjogNjgxMDU1Ljc0NTg1NTI3NDQsICJhdmciOiAxMzUwOTAwOC4y
LCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tbW9kaWZ5Ok1hbGxvYyI6IHsibWluIjog
MC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6
IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLXRyYXZlcnNl
Ok1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVz
IjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRy
b21hZW8vZG9tLWF0dHI6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4i
OiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6
ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0OkpTSGVhcCI6IHsibWluIjogMTA2MTMwNTIu
MCwgIm1heCI6IDEzNjYyMDMyLjAsICJtZWRpYW4iOiAxMzY1ODI5OC4wLCAidmFsdWVzIjogWzEz
NjU5ODkyLjAsIDEzNjYxMDA4LjAsIDEwNjEzMDUyLjAsIDEzNjU3NDA4LjAsIDEzNjU3NTI0LjAs
IDEzNjU4MDE2LjAsIDEzNjU3ODg4LjAsIDEzNjU4Mjg4LjAsIDEzNjU4MTYwLjAsIDEzNjU4MzA4
LjAsIDEzNjU4MDIwLjAsIDEzNjU1OTg4LjAsIDEzNjU5NTI4LjAsIDEzNjU3NjE2LjAsIDEzNjU4
OTM2LjAsIDEzNjU5MjQwLjAsIDEzNjU5NjUyLjAsIDEzNjU5MzU2LjAsIDEzNjYyMDMyLjAsIDEz
NjU5OTc2LjBdLCAic3RkZXYiOiA2ODEwNDcuMDQ1MzI1MDE3OSwgImF2ZyI6IDEzNTA2NDk0LjQs
ICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpKU0hlYXAiOiB7Im1pbiI6
IDUwMzYyNDQuMCwgIm1heCI6IDUwMzYyNDQuMCwgIm1lZGlhbiI6IDUwMzYyNDQuMCwgInZhbHVl
cyI6IFs1MDM2MjQ0LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1MDM2MjQ0LjAsICJ1bml0Ijog
ImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3Q6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgi
OiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wLCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5
dGVzIn0sICJEcm9tYWVvL2RvbS1tb2RpZnkiOiB7Im1pbiI6IDM0OTQuMTg2Nzk0Njk4Nzk3Nywg
Im1heCI6IDQxODYuMDcwODk5Mzk3NjMyLCAibWVkaWFuIjogMC4wLCAic3RkZXYiOiAxODguMzE2
MjA0MzMzMzcxNDcsICJhdmciOiAzOTAxLjQ2NTk0Mjk4OTI2OSwgInVuaXQiOiAicnVucy9zIn0s
ICJCaW5kaW5ncy9nYy10cmVlIjogeyJtaW4iOiAxMzg0LjU4Mzk5OTk4NDg5NzcsICJtYXgiOiAx
NDI2LjQ1NjAwMDAxNTYwNTIsICJtZWRpYW4iOiAxMzkwLjYzNTQ5OTk5MjY0MDcsICJ2YWx1ZXMi
OiBbMTM4OC43NjE5OTk5ODc3NjQzLCAxMzkwLjM0Mzk5OTk4NDkwNywgMTQyNi40NTYwMDAwMTU2
MDUyLCAxMzk2Ljg0MTk5OTk4NzM3MzEsIDEzODUuNzA3MDAwMDA4NTUxNCwgMTM4NC44MjQwMDAw
MDc5Mzg2LCAxMzg1Ljc0NzAwMDAyMjA5MjgsIDEzODkuNjU5OTk5OTg2MTc5MiwgMTM4Ni41MzIw
MDAwMDQwODEsIDEzODguNzc1OTk5OTc3OTUxOSwgMTM5OS40NDA5OTk5ODY4MzY3LCAxNDAwLjQx
ODAwMDAwNDcyLCAxMzkwLjkyNzAwMDAwMDM3NDQsIDEzOTYuODU2OTk5OTg1MTc1MiwgMTM5Ny43
MDgwMDAwMDQwNTg3LCAxMzk4LjY1MTAwMDAyNDk4MzcsIDEzOTYuOTY0OTk5OTkyNjMzMiwgMTQw
MS4zOTAwMDAwMTM2MzQ2LCAxMzg0LjU4Mzk5OTk4NDg5NzcsIDEzODUuNzUxMDAwMDIzNDQ3XSwg
InN0ZGV2IjogOS42NDc2ODAxMDUwMTc3MiwgImF2ZyI6IDEzOTMuODE3MTAwMDAwMTYwMywgInVu
aXQiOiAibXMifSwgIkRyb21hZW8vZG9tLW1vZGlmeTpKU0hlYXAiOiB7Im1pbiI6IDM2NjAzOTYw
LjAsICJtYXgiOiAzNjYwMzk2MC4wLCAibWVkaWFuIjogMzY2MDM5NjAuMCwgInZhbHVlcyI6IFsz
NjYwMzk2MC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMzY2MDM5NjAuMCwgInVuaXQiOiAiYnl0
ZXMifX0sICJwbGF0Zm9ybSI6ICJjaHJvbWl1bSIsICJicmFuY2giOiAid2Via2l0LXRydW5rIiwg
ImNocm9taXVtLXJldmlzaW9uIjogIjE2MzI5NyJ9LCB7InRpbWVzdGFtcCI6IDEzNTA5MzkxNzks
ICJ3ZWJraXQtcmV2aXNpb24iOiAiMTMyMTE1IiwgInJlc3VsdHMiOiB7IkJpbmRpbmdzL2djLW1p
bmktdHJlZTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwg
InZhbHVlcyI6IFswLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMF0sICJz
dGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLXF1
ZXJ5Ok1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFs
dWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwg
IkRyb21hZW8vZG9tLXF1ZXJ5OkpTSGVhcCI6IHsibWluIjogNjAyOTM5Mi4wLCAibWF4IjogNjAy
OTM5Mi4wLCAibWVkaWFuIjogNjAyOTM5Mi4wLCAidmFsdWVzIjogWzYwMjkzOTIuMF0sICJzdGRl
diI6IDAuMCwgImF2ZyI6IDYwMjkzOTIuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2dj
LW1pbmktdHJlZSI6IHsibWluIjogMTEzNi40MDQwMDAwMTg5NTYxLCAibWF4IjogMTE2Ni42NTUw
MDAwMDgxNzcsICJtZWRpYW4iOiAxMTUyLjQ2ODAwMDAwMDIyNjMsICJ2YWx1ZXMiOiBbMTE2Ni42
NTUwMDAwMDgxNzcsIDExNjAuOTYzOTk5OTgwNTk1LCAxMTU2LjMxNTAwMDAwMDE3NywgMTE2My42
MDEwMDAwMDc0NzQ4LCAxMTUzLjkyMzAwMDAwNTMwNjcsIDExNTEuOTIyOTk5OTk3NjIzMywgMTE1
OC4wOTE5OTk5OTc4NTA1LCAxMTU5LjY2Mjk5OTk5ODU0NTMsIDExNTguODgyOTk5OTk2NDIxOSwg
MTE1Mi44MTI5OTk5OTMzMjk5LCAxMTQ1LjU0Mzk5OTk5OTA2MywgMTE0Ny40MTI5OTk5OTg3Nzgs
IDExMzguNDc4OTk5OTg2NTQ2MSwgMTEzOS4yMjkwMDAwMjIxNjkyLCAxMTM2LjQwNDAwMDAxODk1
NjEsIDExNTIuOTQ2OTk5OTk1MDM4LCAxMTUyLjEyMzAwMDAwNzEyMjgsIDExNTAuODc3MDAwMDA3
MzEyNywgMTE0Ny45Mjc5OTk5OTEyMjUsIDExNDQuMzgzMDAwMDA2MjAwN10sICJzdGRldiI6IDgu
MzQ4ODg3MDE3MjY3MDg5LCAiYXZnIjogMTE1MS45MDc5NTAwMDA4OTU3LCAidW5pdCI6ICJtcyJ9
LCAiRHJvbWFlby9kb20tdHJhdmVyc2UiOiB7Im1pbiI6IDI1NTkuMzAxNjk4MzAxNjk4MywgIm1h
eCI6IDI1NzMuOTg1NjQ1MDkzNDI5NCwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2IjogMi44NDI2NzI2
ODI4MjQ0NTYsICJhdmciOiAyNTY1LjQ3MTY4OTk4NjY2MDMsICJ1bml0IjogInJ1bnMvcyJ9LCAi
RHJvbWFlby9kb20tbW9kaWZ5Ok1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVk
aWFuIjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVu
aXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLXF1ZXJ5IjogeyJtaW4iOiA2NTY3ODAuMCwgIm1h
eCI6IDY2NTgxMC4yNjY3MzMyNjY4LCAibWVkaWFuIjogMC4wLCAic3RkZXYiOiAyNjQ4LjgxODcw
NzE5MDc0MSwgImF2ZyI6IDY2MjYzOS45MDcyOTI3MDcyLCAidW5pdCI6ICJydW5zL3MifSwgIkJp
bmRpbmdzL2djLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4i
OiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5n
cy9nYy10cmVlOkpTSGVhcCI6IHsibWluIjogMjA3NjkxNzIuMCwgIm1heCI6IDIwNzc0MTkyLjAs
ICJtZWRpYW4iOiAyMDc3MTc1MC4wLCAidmFsdWVzIjogWzIwNzcwMjI4LjAsIDIwNzY5NzEyLjAs
IDIwNzcwNjA0LjAsIDIwNzY5MzUyLjAsIDIwNzcxMjk2LjAsIDIwNzY5OTI0LjAsIDIwNzcxNzc2
LjAsIDIwNzcwNjY0LjAsIDIwNzcyNTUyLjAsIDIwNzcxNDIwLjAsIDIwNzcyNzU2LjAsIDIwNzY5
MTcyLjAsIDIwNzcyNTAwLjAsIDIwNzcyMDM2LjAsIDIwNzczMzk2LjAsIDIwNzcxNzI0LjAsIDIw
Nzc0MDIwLjAsIDIwNzczNDA4LjAsIDIwNzc0MTkyLjAsIDIwNzczNzc2LjBdLCAic3RkZXYiOiAx
NTg5LjA0ODQ1NDA5ODMwMjMsICJhdmciOiAyMDc3MTcyNS40MDAwMDAwMDIsICJ1bml0IjogImJ5
dGVzIn0sICJEcm9tYWVvL2RvbS1hdHRyOkpTSGVhcCI6IHsibWluIjogODM4NjE5Ni4wLCAibWF4
IjogODM4NjE5Ni4wLCAibWVkaWFuIjogODM4NjE5Ni4wLCAidmFsdWVzIjogWzgzODYxOTYuMF0s
ICJzdGRldiI6IDAuMCwgImF2ZyI6IDgzODYxOTYuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21h
ZW8vZG9tLWF0dHIiOiB7Im1pbiI6IDU2ODQuMzExNjg4MzExNjg4LCAibWF4IjogNTg1OS4yNzAx
ODk0MzE3MDUsICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDQyLjkxNzYzMzkyODgxMDQ3NCwgImF2
ZyI6IDU3NDguOTE2ODcxNjU5MzU0LCAidW5pdCI6ICJydW5zL3MifSwgIkJpbmRpbmdzL2djLW1p
bmktdHJlZTpKU0hlYXAiOiB7Im1pbiI6IDEwNjE1NTI4LjAsICJtYXgiOiAxMzY2NDA1Mi4wLCAi
bWVkaWFuIjogMTM2NjEyNTIuMCwgInZhbHVlcyI6IFsxMzY2MTk2OC4wLCAxMzY2Mjk2OC4wLCAx
MDYxNTUyOC4wLCAxMzY2MDI1Ni4wLCAxMzY2MDA2NC4wLCAxMzY2MDc5Ni4wLCAxMzY2MDU0MC4w
LCAxMzY2MTE3Ni4wLCAxMzY2MDg3Mi4wLCAxMzY2MTMyOC4wLCAxMzY2MDU4MC4wLCAxMzY1Nzk1
Mi4wLCAxMzY2MjMxNi4wLCAxMzY2MDM0NC4wLCAxMzY2MTU3Ni4wLCAxMzY2MTg2NC4wLCAxMzY2
MTgxMi4wLCAxMzY2MTYzNi4wLCAxMzY2NDA1Mi4wLCAxMzY2MjUzNi4wXSwgInN0ZGV2IjogNjgx
MDU1Ljc0NTg1NTI3NDQsICJhdmciOiAxMzUwOTAwOC4yLCAidW5pdCI6ICJieXRlcyJ9LCAiQmlu
ZGluZ3MvZ2MtdHJlZSI6IHsibWluIjogMTE4Ni4zOTA5OTk5OTU2Mzc3LCAibWF4IjogMTIxOC44
MjQ5OTk5ODkwMTA0LCAibWVkaWFuIjogMTIwMi4zOTI5OTk5OTk1NzQ0LCAidmFsdWVzIjogWzEx
OTYuNjgzMDAwMDE2NDkxOSwgMTIwMy4yMTk5OTk5OTU3ODEsIDEyMTEuOTU2OTk5OTkyMjUzMywg
MTIwNC4xNzQ5OTk5OTE2NjQ3LCAxMTg2LjM5MDk5OTk5NTYzNzcsIDEyMDQuODQyOTk5OTg0OTc2
LCAxMTkzLjU3MTk5OTk4OTIxNzEsIDEyMDQuNTg2MDAwMDA3MTExNiwgMTE5Ni42MzM5OTk5OTI2
Mjc3LCAxMTk2LjgyODk5OTk5MzE1ODUsIDExOTUuNTMyMDAwMDEyNDYzLCAxMjAzLjQ3NDk5OTk4
NzUyMDMsIDEyMTguODI0OTk5OTg5MDEwNCwgMTIwMS45NjQwMDAwMDcxMzc3LCAxMjA1LjE1NjAw
MDAxMDkwMiwgMTIwMS44MzI5OTk5OTkxNjkzLCAxMjAyLjgyMTk5OTk5MjAxMTEsIDExOTIuNDMw
MDAwMDI0NjE0OSwgMTIwMy4yNjMwMDAwMDMwNjIyLCAxMTk1LjQ1Mjk5OTk5Mjk5NDZdLCAic3Rk
ZXYiOiA3LjE1MTMxOTU0NTc1MjQ1NSwgImF2ZyI6IDEyMDAuOTgyMTQ5OTk4ODksICJ1bml0Ijog
Im1zIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpKU0hlYXAiOiB7Im1pbiI6IDQ5OTkzOTIuMCwg
Im1heCI6IDQ5OTkzOTIuMCwgIm1lZGlhbiI6IDQ5OTkzOTIuMCwgInZhbHVlcyI6IFs0OTk5Mzky
LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA0OTk5MzkyLjAsICJ1bml0IjogImJ5dGVzIn0sICJE
cm9tYWVvL2RvbS1hdHRyOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4IjogMC4wLCAibWVkaWFu
IjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDAuMCwgInVuaXQi
OiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpKU0hlYXAiOiB7Im1pbiI6IDEwNjEzMDU2
LjAsICJtYXgiOiAxMzY2MTY0NC4wLCAibWVkaWFuIjogMTM2NTgzNzAuMCwgInZhbHVlcyI6IFsx
MzY1OTg5Mi4wLCAxMzY2MTAwOC4wLCAxMDYxMzA1Ni4wLCAxMzY1NzQwOC4wLCAxMzY1NzUyNC4w
LCAxMzY1ODAxNi4wLCAxMzY1Nzg4OC4wLCAxMzY1ODExNi4wLCAxMzY1ODM0OC4wLCAxMzY1ODM5
Mi4wLCAxMzY1ODI0NC4wLCAxMzY1NjA2OC4wLCAxMzY1OTQ1Ni4wLCAxMzY1NzYyNC4wLCAxMzY1
ODg0OC4wLCAxMzY1ODk2OC4wLCAxMzY1OTM4MC4wLCAxMzY1OTE4NC4wLCAxMzY2MTY0NC4wLCAx
MzY1OTc5Ni4wXSwgInN0ZGV2IjogNjgxMDMzLjgzMTE0NjUxODYsICJhdmciOiAxMzUwNjQ0My4w
MDAwMDAwMDIsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3QiOiB7Im1pbiI6
IDgwNi42NTYwMDAwMDA2NTc1LCAibWF4IjogODI3Ljg1NTk5OTk4ODk2OTQsICJtZWRpYW4iOiA4
MTYuODM3OTk5OTg0MjcyOCwgInZhbHVlcyI6IFs4MjcuODU1OTk5OTg4OTY5NCwgODI3LjU0ODAw
MDAwMTExNTcsIDgyNS4yNjg5OTk5OTM1NjgzLCA4MjEuODA4OTk5OTg2Mzg3OCwgODIzLjA3MTAw
MDAyMDcxODIsIDgxNi41NTI5OTk5ODIzNzc1LCA4MTQuNDQzMDAwMDEwMjE0NywgODE1LjM2MTAw
MDAxNTQwMDQsIDgxMy43ODM5OTk5OTgxMjI1LCA4MTEuNjE2OTk5OTk5Mzg3MiwgODE4Ljk0Mzk5
OTk5ODczNzEsIDgxMy45MTM5OTk5OTg0NzY0LCA4MTQuMTczOTk5OTk5MTg0MiwgODE4LjY4OTk5
OTk4NTUwODYsIDgyMC4zMjIwMDAwMTQxMywgODEyLjgyMzk5OTk5MzI3MDMsIDgxNy4zNjQwMDAw
MTY4MjM0LCA4MTcuMTIyOTk5OTg2MTY4LCA4MTEuODc5OTk5OTkzODM0NiwgODA2LjY1NjAwMDAw
MDY1NzVdLCAic3RkZXYiOiA1LjU2Mjg1OTYxOTE5MzQyMywgImF2ZyI6IDgxNy40NjAwOTk5OTkx
NTI2LCAidW5pdCI6ICJtcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0Ok1hbGxvYyI6IHsibWluIjog
MC4wLCAibWF4IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAi
dW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tbW9kaWZ5IjogeyJtaW4iOiAzNDczLjM3ODE1
NDYxMDY5MSwgIm1heCI6IDQwOTYuNzg2NDU0OTI0Mzg2LCAibWVkaWFuIjogMC4wLCAic3RkZXYi
OiAxODIuNjkxNjcyNTQwMjQzODQsICJhdmciOiAzODYwLjgwMDMyMjA0ODk5NCwgInVuaXQiOiAi
cnVucy9zIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1h
eCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJh
dmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1tb2RpZnk6SlNIZWFwIjog
eyJtaW4iOiAzNjU2ODkwNC4wLCAibWF4IjogMzY1Njg5MDQuMCwgIm1lZGlhbiI6IDM2NTY4OTA0
LjAsICJ2YWx1ZXMiOiBbMzY1Njg5MDQuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDM2NTY4OTA0
LjAsICJ1bml0IjogImJ5dGVzIn19LCAicGxhdGZvcm0iOiAiY2hyb21pdW0iLCAiYnJhbmNoIjog
IndlYmtpdC10cnVuayIsICJjaHJvbWl1bS1yZXZpc2lvbiI6ICIxNjMyOTcifSwgeyJ0aW1lc3Rh
bXAiOiAxMzUwOTM5NDAxLCAid2Via2l0LXJldmlzaW9uIjogIjEzMjExNSIsICJyZXN1bHRzIjog
eyJCaW5kaW5ncy9nYy1taW5pLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAs
ICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAu
MCwgMC4wLCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0s
ICJEcm9tYWVvL2RvbS1xdWVyeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1l
ZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1
bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeTpKU0hlYXAiOiB7Im1pbiI6IDU3ODI3
NzYuMCwgIm1heCI6IDU3ODI3NzYuMCwgIm1lZGlhbiI6IDU3ODI3NzYuMCwgInZhbHVlcyI6IFs1
NzgyNzc2LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1NzgyNzc2LjAsICJ1bml0IjogImJ5dGVz
In0sICJCaW5kaW5ncy9nYy1taW5pLXRyZWUiOiB7Im1pbiI6IDEyMjMuNDAyMDAwMDAzMjYxNSwg
Im1heCI6IDEyNTUuNTgyMDAwMDEyNTA5NSwgIm1lZGlhbiI6IDEyNDAuMzkzMDAwMDAwMDQsICJ2
YWx1ZXMiOiBbMTIzNi43MTIwMDAwMTI2MzA2LCAxMjQ5LjkxMTk5OTk5OTMxMjcsIDEyMjguMjky
MDAwMDE0MzM1LCAxMjUzLjUyNjk5OTk5MzQ4MjYsIDEyNDQuOTA0OTk5OTk5NTYyMywgMTI0Ny41
MzkwMDAwMDM1OTg2LCAxMjM4LjUxNjAwMDAxMjE2ODcsIDEyNDIuNzEyOTk5OTg1MDg3NywgMTI0
Mi4yNjk5OTk5ODc5MTE0LCAxMjQzLjA0MTk5OTk4NzMyNjYsIDEyMzQuMjQ5MDAwMDAxMDAwMiwg
MTIyOS4wOTgwMDAwMTA3MDgzLCAxMjU1LjU4MjAwMDAxMjUwOTUsIDEyNTQuNTM1OTk5OTkzMDk1
MiwgMTI0OC42MTYwMDAwMjYyMzE2LCAxMjI3LjIwNzk5OTk5NjYwODEsIDEyMjUuMTUwMDAwMDEy
OTQ1NCwgMTIyNS45NzUwMDAwMDg0NzUsIDEyMjMuNDAyMDAwMDAzMjYxNSwgMTIyMy45NDMwMDAw
MTkwNjIzXSwgInN0ZGV2IjogMTAuOTk2NzI4MTk1NDMwNDk0LCAiYXZnIjogMTIzOC43NTkzNTAw
MDM5NjYsICJ1bml0IjogIm1zIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZSI6IHsibWluIjogMjU4
OS44OTE4OTI1Mzg1OTg4LCAibWF4IjogMjYwMS40MzE5OTcxNDQ1NzIsICJtZWRpYW4iOiAwLjAs
ICJzdGRldiI6IDIuNTM1NjAxNzA5Mzg3MjQyLCAiYXZnIjogMjU5NS44OTg5NDM3NzA4LCAidW5p
dCI6ICJydW5zL3MifSwgIkRyb21hZW8vZG9tLXF1ZXJ5IjogeyJtaW4iOiA2NjI2MzAuMCwgIm1h
eCI6IDY2NTkzOC4yOTA3MDkyOTA3LCAibWVkaWFuIjogMC4wLCAic3RkZXYiOiA2NjkuNTc0MDk0
NDIzNjc1OCwgImF2ZyI6IDY2NDMzMS4zNDIyNTc3NDIyLCAidW5pdCI6ICJydW5zL3MifSwgIkJp
bmRpbmdzL2djLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4i
OiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5n
cy9nYy10cmVlOkpTSGVhcCI6IHsibWluIjogMjA3NjkxNzIuMCwgIm1heCI6IDIwNzc0MTkyLjAs
ICJtZWRpYW4iOiAyMDc3MTc1MC4wLCAidmFsdWVzIjogWzIwNzcwMjI4LjAsIDIwNzY5NzEyLjAs
IDIwNzcwNjA0LjAsIDIwNzY5MzUyLjAsIDIwNzcxMjk2LjAsIDIwNzY5OTI0LjAsIDIwNzcxNzc2
LjAsIDIwNzcwNjY0LjAsIDIwNzcyNTUyLjAsIDIwNzcxNDIwLjAsIDIwNzcyNzU2LjAsIDIwNzY5
MTcyLjAsIDIwNzcyNTAwLjAsIDIwNzcyMDM2LjAsIDIwNzczMzk2LjAsIDIwNzcxNzI0LjAsIDIw
Nzc0MDIwLjAsIDIwNzczNDA0LjAsIDIwNzc0MTkyLjAsIDIwNzczNzc2LjBdLCAic3RkZXYiOiAx
NTg4LjgyNTc2OTY1MjY3OSwgImF2ZyI6IDIwNzcxNzI1LjIwMDAwMDAwMywgInVuaXQiOiAiYnl0
ZXMifSwgIkRyb21hZW8vZG9tLWF0dHI6SlNIZWFwIjogeyJtaW4iOiAyNzAwNjYwLjAsICJtYXgi
OiAyNzAwNjYwLjAsICJtZWRpYW4iOiAyNzAwNjYwLjAsICJ2YWx1ZXMiOiBbMjcwMDY2MC4wXSwg
InN0ZGV2IjogMC4wLCAiYXZnIjogMjcwMDY2MC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGlu
Z3MvZ2MtZm9yZXN0IjogeyJtaW4iOiA4MjguODc5MDAwMDA3ODczNCwgIm1heCI6IDg0NS43ODY5
OTk5OTgzODE0LCAibWVkaWFuIjogODMzLjE4NDUwMDAwNjYwOTYsICJ2YWx1ZXMiOiBbODQ1Ljc4
Njk5OTk5ODM4MTQsIDgzNi43NDEwMDAwMDY0NDEsIDg0MC45MzI5OTk5OTk0OTUyLCA4MzguNjk5
OTk5OTkyOTY4NSwgODM4LjUwNjk5OTk3ODU2MjgsIDgzNC4yMTA5OTk5Nzk0MDQ3LCA4MzcuMzMz
OTk5OTgxNjM4LCA4MzUuNTg2OTk5OTc5NTY4NiwgODMyLjAwMzAwMDAxNzcyMTIsIDgzMC4zMDg5
OTk5ODI2NjI1LCA4MzcuNjU1MDAwMDEwMjcyNSwgODMyLjI0NzAwMDAxMzAxMjQsIDgzMi4zMjc5
OTk5ODk1MDIxLCA4MzMuMjI2OTk5OTk1NTMxNSwgODMzLjE0MjAwMDAxNzY4NzcsIDgzMS43MTk5
OTk5ODczOTkyLCA4MzEuNTQwOTk5OTkyMjg0OSwgODMyLjYxMzAwMDAwNTk0OTMsIDgyOC44Nzkw
MDAwMDc4NzM0LCA4MjkuOTk5OTk5OTg3MTk0M10sICJzdGRldiI6IDQuMTk5NjA1MDAwNDUzMzEs
ICJhdmciOiA4MzQuNjczMTk5OTk2MTc3NywgInVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLWF0
dHIiOiB7Im1pbiI6IDU3OTAuNzU5MjQwNzU5MjQxLCAibWF4IjogNTk2OS45Mjc1NjE0NjA0OTYs
ICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDQ2Ljk0MDU4MjgzNjEwNTk5NiwgImF2ZyI6IDU4ODEu
Njg0NjEzMTkxMjAxLCAidW5pdCI6ICJydW5zL3MifSwgIkJpbmRpbmdzL2djLW1pbmktdHJlZTpK
U0hlYXAiOiB7Im1pbiI6IDEwNjE1NTI4LjAsICJtYXgiOiAxMzY2NDA1Mi4wLCAibWVkaWFuIjog
MTM2NjEyNTIuMCwgInZhbHVlcyI6IFsxMzY2MTk2OC4wLCAxMzY2Mjk2OC4wLCAxMDYxNTUyOC4w
LCAxMzY2MDI1Ni4wLCAxMzY2MDA2NC4wLCAxMzY2MDc5Ni4wLCAxMzY2MDU0MC4wLCAxMzY2MTE3
Ni4wLCAxMzY2MDg3Mi4wLCAxMzY2MTMyOC4wLCAxMzY2MDU4MC4wLCAxMzY1Nzk1Mi4wLCAxMzY2
MjMxNi4wLCAxMzY2MDM0NC4wLCAxMzY2MTU3Ni4wLCAxMzY2MTg2NC4wLCAxMzY2MTgxMi4wLCAx
MzY2MTYzNi4wLCAxMzY2NDA1Mi4wLCAxMzY2MjUzNi4wXSwgInN0ZGV2IjogNjgxMDU1Ljc0NTg1
NTI3NDQsICJhdmciOiAxMzUwOTAwOC4yLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2Mt
dHJlZSI6IHsibWluIjogMTE4Ni43NzMwMDAwMjMwOTUsICJtYXgiOiAxMjQzLjk2Nzk5OTk5NTIy
MDUsICJtZWRpYW4iOiAxMjA4LjgxODk5OTk5MjIxNzksICJ2YWx1ZXMiOiBbMTIwNC4wODMwMDAw
MTg3MjcsIDEyMTYuMjIxMDAwMDA5NjgyLCAxMjI2LjU2ODk5OTk5MTI4NjUsIDEyMTEuMTAyMDAw
MDAxMTE5NCwgMTE5Ni41ODA5OTk5OTY1MTMxLCAxMjA5Ljc4ODk5OTk4NTkwMzUsIDExOTguNzY1
MDAwMDA4Mjc5NSwgMTIwNy44OTQ5OTk5OTk1NTMsIDExODYuNzczMDAwMDIzMDk1LCAxMjEwLjE5
NDAwMDAxMzg3MTEsIDEyMjkuMjU0MDAwMDA1MzEyMywgMTI0My45Njc5OTk5OTUyMjA1LCAxMjA5
LjcwNDk5OTk4NjU3MDMsIDEyMTIuOTMxOTk5OTk0OTA3NSwgMTIwNy45MzI5OTk5OTc4NjU0LCAx
MjEwLjcyNDAwMDAwNDEyMDIsIDEyMDMuNzgzMDAwMDA0NDc3OCwgMTIwNC4yNzM5OTk5ODg4LCAx
MjAyLjIxODk5OTk5ODg3NjgsIDExOTcuMzk2MDAwMDAzMjA5M10sICJzdGRldiI6IDEyLjYxNTMy
NjczOTk3MzEsICJhdmciOiAxMjA5LjUwODAwMDAwMTM2OTMsICJ1bml0IjogIm1zIn0sICJEcm9t
YWVvL2RvbS10cmF2ZXJzZTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlh
biI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0
IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1hdHRyOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4
IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2
ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpKU0hlYXAiOiB7
Im1pbiI6IDEwNjEzMDUyLjAsICJtYXgiOiAxMzY2MjAzMi4wLCAibWVkaWFuIjogMTM2NTgzMDAu
MCwgInZhbHVlcyI6IFsxMzY1OTg5Mi4wLCAxMzY2MTAwNC4wLCAxMDYxMzA1Mi4wLCAxMzY1NzQw
OC4wLCAxMzY1NzUyNC4wLCAxMzY1ODAxNi4wLCAxMzY1Nzg4NC4wLCAxMzY1ODI5Mi4wLCAxMzY1
ODAyNC4wLCAxMzY1ODMwOC4wLCAxMzY1ODAyMC4wLCAxMzY1NjAwMC4wLCAxMzY1OTUyOC4wLCAx
MzY1NzYxNi4wLCAxMzY1ODkzNi4wLCAxMzY1OTI0MC4wLCAxMzY1OTY1Mi4wLCAxMzY1OTM1Ni4w
LCAxMzY2MjAzMi4wLCAxMzY1OTk3Ni4wXSwgInN0ZGV2IjogNjgxMDQ1LjU0Mjk4MzQ5NTMsICJh
dmciOiAxMzUwNjQ4OC4wMDAwMDAwMDIsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS10
cmF2ZXJzZTpKU0hlYXAiOiB7Im1pbiI6IDUwMDg2MTYuMCwgIm1heCI6IDUwMDg2MTYuMCwgIm1l
ZGlhbiI6IDUwMDg2MTYuMCwgInZhbHVlcyI6IFs1MDA4NjE2LjBdLCAic3RkZXYiOiAwLjAsICJh
dmciOiA1MDA4NjE2LjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3Q6TWFs
bG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBb
MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjBdLCAic3RkZXYiOiAwLjAs
ICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1tb2RpZnkiOiB7Im1p
biI6IDIzNTkuMzIwNjczNzE1NjQ2NSwgIm1heCI6IDQxNDEuNDE2MjYyNzEyNjcsICJtZWRpYW4i
OiAwLjAsICJzdGRldiI6IDU1OC45NTQzMDk2MDQ3Njg0LCAiYXZnIjogMzY3NC4xMTQxODE5MzAw
Mjc0LCAidW5pdCI6ICJydW5zL3MifSwgIkRyb21hZW8vZG9tLW1vZGlmeTpNYWxsb2MiOiB7Im1p
biI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3Rk
ZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1tb2Rp
Znk6SlNIZWFwIjogeyJtaW4iOiAzMjkxMjYzMi4wLCAibWF4IjogMzI5MTI2MzIuMCwgIm1lZGlh
biI6IDMyOTEyNjMyLjAsICJ2YWx1ZXMiOiBbMzI5MTI2MzIuMF0sICJzdGRldiI6IDAuMCwgImF2
ZyI6IDMyOTEyNjMyLjAsICJ1bml0IjogImJ5dGVzIn19LCAicGxhdGZvcm0iOiAiY2hyb21pdW0i
LCAiYnJhbmNoIjogIndlYmtpdC10cnVuayIsICJjaHJvbWl1bS1yZXZpc2lvbiI6ICIxNjMyOTci
fSwgeyJ0aW1lc3RhbXAiOiAxMzUwOTM5NjQ4LCAid2Via2l0LXJldmlzaW9uIjogIjEzMjExNSIs
ICJyZXN1bHRzIjogeyJCaW5kaW5ncy9nYy1taW5pLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAs
ICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0
IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1h
eCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJh
dmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeTpKU0hlYXAiOiB7
Im1pbiI6IDU1NDYyODQuMCwgIm1heCI6IDU1NDYyODQuMCwgIm1lZGlhbiI6IDU1NDYyODQuMCwg
InZhbHVlcyI6IFs1NTQ2Mjg0LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1NTQ2Mjg0LjAsICJ1
bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1taW5pLXRyZWUiOiB7Im1pbiI6IDExMDEuMjg5
MDAwMDEyOTExOSwgIm1heCI6IDExNTQuMzY0OTk5OTk0ODY4NCwgIm1lZGlhbiI6IDExMTYuODM3
NDk5OTk3OTI3OCwgInZhbHVlcyI6IFsxMTE1Ljc5OTk5OTk5OTU4MSwgMTEyMC42MjUwMDAwMTA0
Nzc0LCAxMTU0LjM2NDk5OTk5NDg2ODQsIDExMjMuNjE5MDAwMDE5OTcxMywgMTExNy45NjkwMDAw
MTM1NDUyLCAxMTE2LjMyMjk5OTk5NDczNjIsIDExMTkuMjQ2OTk5OTk1MDg0NSwgMTExNi40NDE5
OTk5OTg2NDIxLCAxMTE3LjE4NTk5OTk4ODU3ODMsIDExMTYuNDg5MDAwMDA3Mjc3NCwgMTExMS40
OTQ5OTk5OTAxLCAxMTA4Ljk5MTAwMDAxNTUyMTQsIDExNDEuODM4OTk5OTg4OTc2OSwgMTE0My4y
NTEwMDAwMDEzMjgsIDExMzUuMjUyMDAwMDA3MzEyNywgMTEwNi45NDM5OTk5OTkyMDI4LCAxMTEx
LjUxNjk5OTk4Mjk5NiwgMTEwNC43MzkwMDAwMDIxNTUsIDExMDEuMjg5MDAwMDEyOTExOSwgMTEx
OC45NjQ5OTk5NzIzNzddLCAic3RkZXYiOiAxMy42MzY0ODcwMzM3NjkyMDcsICJhdmciOiAxMTIw
LjExNzM0OTk5OTc4MjIsICJ1bml0IjogIm1zIn0sICJCaW5kaW5ncy9nYy10cmVlIjogeyJtaW4i
OiAxMjE0LjgyMTAwMDAwMTM5MzMsICJtYXgiOiAxMjgwLjM2MTk5OTk5MDQxODYsICJtZWRpYW4i
OiAxMjI4LjQxMTUwMDAwNzQ5NjIsICJ2YWx1ZXMiOiBbMTIyMS4wMDkwMDAwMDA3NzY3LCAxMjI0
LjcxMTk5OTk5NTYzNCwgMTI0Mi4xMjMwMDAwMDM2MzAzLCAxMjMyLjgxNjk5OTk4MTg3ODMsIDEy
MjguMTk3OTk5OTk3MDY0NSwgMTIzMy42MTUwMDAwMDQ2NDczLCAxMjI3LjA1Nzk5OTk4OTQ4MzUs
IDEyODAuMzYxOTk5OTkwNDE4NiwgMTIxNy40Mzk5OTk5Nzg1MjM3LCAxMjI1LjY3MzAwMDAwODEw
MDYsIDEyMzIuMTUwMDAwMDI1Mjg1NCwgMTIzMi44NTk5OTk5ODkxNTk0LCAxMjMyLjg5NzAwMDAw
ODk2MTIsIDEyMjIuNzQzMDAwMDIwMjczLCAxMjI4LjA2MTk5OTk4MDEyNzQsIDEyMjguNjI1MDAw
MDE3OTI4LCAxMjM0LjQwMjAwMDAwMTg2NDUsIDEyMzMuMjQ0MDAwMDAyNzQxOCwgMTIxNC44MjEw
MDAwMDEzOTMzLCAxMjE3LjE2MTAwMDAwNzc2MzVdLCAic3RkZXYiOiAxMy41NzQ2NjM1MDg1NzA3
NjUsICJhdmciOiAxMjMwLjQ5ODYwMDAwMDI4MjcsICJ1bml0IjogIm1zIn0sICJEcm9tYWVvL2Rv
bS10cmF2ZXJzZSI6IHsibWluIjogMjU1NS41MDQ0OTU1MDQ0OTU1LCAibWF4IjogMjU3Ni4zNzMy
NTM0OTMwMTQsICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDQuMzY3Mzk0NzkzNjIzOTc4LCAiYXZn
IjogMjU2NC44NDEzOTQ1MzM2MSwgInVuaXQiOiAicnVucy9zIn0sICJEcm9tYWVvL2RvbS1xdWVy
eSI6IHsibWluIjogNjczNzI2LjAsICJtYXgiOiA2NzcwNDguMCwgIm1lZGlhbiI6IDAuMCwgInN0
ZGV2IjogODYwLjg4MDk5NTAxOTYwMjMsICJhdmciOiA2NzUzODEuMjU0MTQ1ODU0MiwgInVuaXQi
OiAicnVucy9zIn0sICJCaW5kaW5ncy9nYy10cmVlOk1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4
IjogMC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjAsIDAuMCwgMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJi
eXRlcyJ9LCAiQmluZGluZ3MvZ2MtdHJlZTpKU0hlYXAiOiB7Im1pbiI6IDIwNzY5MTcyLjAsICJt
YXgiOiAyMDc3NDE5Mi4wLCAibWVkaWFuIjogMjA3NzE3NTAuMCwgInZhbHVlcyI6IFsyMDc3MDIy
OC4wLCAyMDc2OTcxMi4wLCAyMDc3MDYwNC4wLCAyMDc2OTM1Mi4wLCAyMDc3MTI5Ni4wLCAyMDc2
OTkyNC4wLCAyMDc3MTc3Ni4wLCAyMDc3MDY2NC4wLCAyMDc3MjU1Mi4wLCAyMDc3MTQyMC4wLCAy
MDc3Mjc1Ni4wLCAyMDc2OTE3Mi4wLCAyMDc3MjUwMC4wLCAyMDc3MjAzNi4wLCAyMDc3MzM5Ni4w
LCAyMDc3MTcyNC4wLCAyMDc3NDAyMC4wLCAyMDc3MzQwOC4wLCAyMDc3NDE5Mi4wLCAyMDc3Mzc3
Ni4wXSwgInN0ZGV2IjogMTU4OS4wNDg0NTQwOTgzMDIzLCAiYXZnIjogMjA3NzE3MjUuNDAwMDAw
MDAyLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tYXR0cjpKU0hlYXAiOiB7Im1pbiI6
IDUxOTAzOTYuMCwgIm1heCI6IDUxOTAzOTYuMCwgIm1lZGlhbiI6IDUxOTAzOTYuMCwgInZhbHVl
cyI6IFs1MTkwMzk2LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA1MTkwMzk2LjAsICJ1bml0Ijog
ImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1hdHRyIjogeyJtaW4iOiA1NzM0LjU5MjgyNDkyMTgzOSwg
Im1heCI6IDU5NTguMCwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2IjogNzIuNzU0MTY4NTgzMzE2NDcs
ICJhdmciOiA1ODE1LjgyMjk0NDE1NDU0OSwgInVuaXQiOiAicnVucy9zIn0sICJCaW5kaW5ncy9n
Yy1taW5pLXRyZWU6SlNIZWFwIjogeyJtaW4iOiAxMDYxNTUyOC4wLCAibWF4IjogMTM2NjM5MDQu
MCwgIm1lZGlhbiI6IDEzNjYxMjUyLjAsICJ2YWx1ZXMiOiBbMTM2NjE5NjguMCwgMTM2NjI5Njgu
MCwgMTA2MTU1MjguMCwgMTM2NjAyNTYuMCwgMTM2NjAwNjQuMCwgMTM2NjA3OTYuMCwgMTM2NjA1
NDAuMCwgMTM2NjExNzYuMCwgMTM2NjA4NzIuMCwgMTM2NjEzMjguMCwgMTM2NjA1NzYuMCwgMTM2
NTc5NDguMCwgMTM2NjIzMTYuMCwgMTM2NjAzNDQuMCwgMTM2NjE1NzYuMCwgMTM2NjE4NjAuMCwg
MTM2NjE4MDguMCwgMTM2NjE2MzYuMCwgMTM2NjM5MDQuMCwgMTM2NjI1MzYuMF0sICJzdGRldiI6
IDY4MTA1My43ODU5Nzk1MzEyLCAiYXZnIjogMTM1MDg5OTkuOTk5OTk5OTk4LCAidW5pdCI6ICJi
eXRlcyJ9LCAiRHJvbWFlby9kb20tbW9kaWZ5Ok1hbGxvYyI6IHsibWluIjogMC4wLCAibWF4Ijog
MC4wLCAibWVkaWFuIjogMC4wLCAidmFsdWVzIjogWzAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6
IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLXRyYXZlcnNlOkpTSGVhcCI6IHsi
bWluIjogNDk5ODY3Ni4wLCAibWF4IjogNDk5ODY3Ni4wLCAibWVkaWFuIjogNDk5ODY3Ni4wLCAi
dmFsdWVzIjogWzQ5OTg2NzYuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDQ5OTg2NzYuMCwgInVu
aXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLWF0dHI6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJt
YXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAi
YXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtZm9yZXN0OkpTSGVhcCI6
IHsibWluIjogMTA2MTMwNTYuMCwgIm1heCI6IDEzNjYxNjMyLjAsICJtZWRpYW4iOiAxMzY1ODM2
OC4wLCAidmFsdWVzIjogWzEzNjU5ODkyLjAsIDEzNjYxMDA4LjAsIDEwNjEzMDU2LjAsIDEzNjU3
NDA4LjAsIDEzNjU3NTI0LjAsIDEzNjU4MDE2LjAsIDEzNjU3ODg4LjAsIDEzNjU4MTE2LjAsIDEz
NjU4MzQ4LjAsIDEzNjU4Mzg4LjAsIDEzNjU4MjQ0LjAsIDEzNjU2MDY4LjAsIDEzNjU5NDUyLjAs
IDEzNjU3NjI0LjAsIDEzNjU4ODUyLjAsIDEzNjU4OTY0LjAsIDEzNjU5MzcyLjAsIDEzNjU5MTgw
LjAsIDEzNjYxNjMyLjAsIDEzNjU5Nzg0LjBdLCAic3RkZXYiOiA2ODEwMzMuMzA4OTMxODcxOSwg
ImF2ZyI6IDEzNTA2NDQwLjgsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3Qi
OiB7Im1pbiI6IDgyNy41ODE5OTk5OTgwNzQsICJtYXgiOiA4NDguNjE4OTk5OTk2Njg4MiwgIm1l
ZGlhbiI6IDgzNy4yMDI0OTk5OTg5NjYyLCAidmFsdWVzIjogWzg0OC42MTg5OTk5OTY2ODgyLCA4
NDYuMzU3OTk5OTgwNjgyNSwgODQzLjA5Nzk5OTk4MzAwMTUsIDg0My40MDI5OTk5NzcxMTU1LCA4
NDUuNzc3MDAwMDA5NTQ3OSwgODM5LjczMzAwMDAwMDcwNTksIDgzNS4xOTM5OTk5ODQ3NjczLCA4
MzYuNjE2OTk5OTkzNTY2NCwgODM0LjI1NzAwMDAwOTUyOTMsIDgzNy43OTkwMDAwMDA4MTQsIDgz
MS4xNTE5OTk5OTg4Mzc3LCA4MzQuODY0MDAwMDA0MDE3NywgODM3Ljc4ODAwMDAwNDM2NiwgODM2
LjA4NDAwMDAwOTU3NzcsIDgzOS4xODA5OTk5ODg0NTcyLCA4MjcuNTgxOTk5OTk4MDc0LCA4MzMu
MTYzMDAwMDAyOTY5LCA4NDEuODYyMDAwMDAxMTI4OCwgODMyLjg0MDk5OTk5NTgyNCwgODMyLjAx
NDk5OTk5MjY3OThdLCAic3RkZXYiOiA1LjYwMDMwMDQ4OTk0OTI0NTUsICJhdmciOiA4MzcuODY5
MzQ5OTk2NjE3NSwgInVuaXQiOiAibXMifSwgIkJpbmRpbmdzL2djLWZvcmVzdDpNYWxsb2MiOiB7
Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjAsIDAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6
IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8vZG9tLW1vZGlmeSI6IHsibWluIjogMzU4
Mi43ODM4MDA5MDMyMjU3LCAibWF4IjogNDI0OC4yOTQ3MDUyOTQ3MDYsICJtZWRpYW4iOiAwLjAs
ICJzdGRldiI6IDE5NC4wNjgyOTE3ODI3NTk3NiwgImF2ZyI6IDM5MDMuNzQyNzM3NzkxMDgzNSwg
InVuaXQiOiAicnVucy9zIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpNYWxsb2MiOiB7Im1pbiI6
IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYi
OiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1tb2RpZnk6
SlNIZWFwIjogeyJtaW4iOiAzODg0ODU2MC4wLCAibWF4IjogMzg4NDg1NjAuMCwgIm1lZGlhbiI6
IDM4ODQ4NTYwLjAsICJ2YWx1ZXMiOiBbMzg4NDg1NjAuMF0sICJzdGRldiI6IDAuMCwgImF2ZyI6
IDM4ODQ4NTYwLjAsICJ1bml0IjogImJ5dGVzIn19LCAicGxhdGZvcm0iOiAiY2hyb21pdW0iLCAi
YnJhbmNoIjogIndlYmtpdC10cnVuayIsICJjaHJvbWl1bS1yZXZpc2lvbiI6ICIxNjMyOTcifSwg
eyJ0aW1lc3RhbXAiOiAxMzUwOTM5ODkwLCAid2Via2l0LXJldmlzaW9uIjogIjEzMjExNSIsICJy
ZXN1bHRzIjogeyJCaW5kaW5ncy9nYy1taW5pLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJt
YXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0Ijog
ImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6
IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmci
OiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1xdWVyeTpKU0hlYXAiOiB7Im1p
biI6IDQ0NTE1NjguMCwgIm1heCI6IDQ0NTE1NjguMCwgIm1lZGlhbiI6IDQ0NTE1NjguMCwgInZh
bHVlcyI6IFs0NDUxNTY4LjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiA0NDUxNTY4LjAsICJ1bml0
IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1taW5pLXRyZWUiOiB7Im1pbiI6IDExNTAuNzY4OTk5
OTk5ODU0NywgIm1heCI6IDExOTcuOTg1MDAwMDA2MTU2LCAibWVkaWFuIjogMTE2Mi44NTc5OTk5
OTYwNDkzLCAidmFsdWVzIjogWzExOTcuOTg1MDAwMDA2MTU2LCAxMTY3LjkyMzk5OTk3OTM5MzYs
IDExNjQuNDU5OTk5OTk5OTYyNywgMTE3NC40NDgwMDAwMDUyMTM1LCAxMTY2Ljg4Njk5OTk5OTQw
NTgsIDExNjQuODI0OTk5OTg1Mjg1LCAxMTY1LjIxMzAwMDAwMDIyMTcsIDExNjUuMTcxOTk5OTc5
MDY1NywgMTE2NS41NzA5OTk5OTA0NTAyLCAxMTY2LjA5Nzk5OTk4Njk1OTYsIDExNTMuOTM2OTk5
OTk1NDk0MywgMTE2MC42NDcwMDAwMTE1MjIzLCAxMTUwLjc2ODk5OTk5OTg1NDcsIDExNTMuMTAy
MDAwMDExMTMxMiwgMTE1NC44MzIwMDAwMDAxNjk1LCAxMTU5LjMzNTk5OTk4MjQzMTUsIDExNjEu
MjU1OTk5OTkyMTM2LCAxMTU4Ljk2NDAwMDAwMjAxNTQsIDExNTYuMTMxOTk5OTc0NjA0NywgMTE1
MS4yNjYwMDAwMDA3Nl0sICJzdGRldiI6IDEwLjM3NDkzODQ4NjkxMDAwOCwgImF2ZyI6IDExNjIu
OTQxMTk5OTk1MTExNywgInVuaXQiOiAibXMifSwgIkRyb21hZW8vZG9tLXRyYXZlcnNlIjogeyJt
aW4iOiAyNTczLjU4MzA2MTY0ODkyOTcsICJtYXgiOiAyNTk1LjI3ODcyMTI3ODcyMSwgIm1lZGlh
biI6IDAuMCwgInN0ZGV2IjogNC41NzY0NzU4Njk1MzI1NTQsICJhdmciOiAyNTgzLjU4MzM0NTU5
NjUxOTQsICJ1bml0IjogInJ1bnMvcyJ9LCAiRHJvbWFlby9kb20tcXVlcnkiOiB7Im1pbiI6IDY2
MjQ3My4wLCAibWF4IjogNjY5NzA5LjAsICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDE5NzUuNjU0
NDIwOTY5Nzc0NSwgImF2ZyI6IDY2NzA2MC44MjMxNzY4MjMzLCAidW5pdCI6ICJydW5zL3MifSwg
IkJpbmRpbmdzL2djLXRyZWU6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRp
YW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5k
aW5ncy9nYy10cmVlOkpTSGVhcCI6IHsibWluIjogMjA3NjkxNzIuMCwgIm1heCI6IDIwNzc0MTky
LjAsICJtZWRpYW4iOiAyMDc3MTc1MC4wLCAidmFsdWVzIjogWzIwNzcwMjI4LjAsIDIwNzY5NzEy
LjAsIDIwNzcwNjA0LjAsIDIwNzY5MzUyLjAsIDIwNzcxMjkyLjAsIDIwNzY5OTI0LjAsIDIwNzcx
Nzc2LjAsIDIwNzcwNjY0LjAsIDIwNzcyNTUyLjAsIDIwNzcxNDIwLjAsIDIwNzcyNzU2LjAsIDIw
NzY5MTcyLjAsIDIwNzcyNTAwLjAsIDIwNzcyMDM2LjAsIDIwNzczMzk2LjAsIDIwNzcxNzI0LjAs
IDIwNzc0MDIwLjAsIDIwNzczNDA4LjAsIDIwNzc0MTkyLjAsIDIwNzczNzc2LjBdLCAic3RkZXYi
OiAxNTg5LjEwNTU5NDE4NjE2NywgImF2ZyI6IDIwNzcxNzI1LjIwMDAwMDAwMywgInVuaXQiOiAi
Ynl0ZXMifSwgIkRyb21hZW8vZG9tLWF0dHI6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAw
LjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjog
MC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tYXR0cjpKU0hlYXAiOiB7Im1pbiI6
IDI5NDg5NDAuMCwgIm1heCI6IDI5NDg5NDAuMCwgIm1lZGlhbiI6IDI5NDg5NDAuMCwgInZhbHVl
cyI6IFsyOTQ4OTQwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAyOTQ4OTQwLjAsICJ1bml0Ijog
ImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3QiOiB7Im1pbiI6IDgxMC45OTUwMDAwMDcwOTY3
LCAibWF4IjogODI1Ljc0OTAwMDAxMDU0NjMsICJtZWRpYW4iOiA4MTguMTA2OTk5OTk5MTQ1LCAi
dmFsdWVzIjogWzgyMi44MjQ5OTk5ODEwOTQyLCA4MjEuMzg0OTk5OTg4MzY3OCwgODE2Ljk0MDk5
OTk5NzMxNDEsIDgxOC4zNzI5OTk5ODczMzIyLCA4MTguMjExMDAwMDA1MjQ4OSwgODE4LjY4Njk5
OTk5MTc2OSwgODIwLjAxNzk5OTk5ODUyNjYsIDgxMC45OTUwMDAwMDcwOTY3LCA4MTQuNTM2OTk5
OTk4MzgxNCwgODExLjk2Nzk5OTk5NDUyMiwgODE3LjQyMTAwMDAxNDI5MjEsIDgxOC4wMDI5OTk5
OTMwNDEyLCA4MjEuOTkyOTk5OTkwNDcwNywgODIwLjc4ODAwMDAxMTgxNjYsIDgxOS43MDI5OTk5
ODY0NzUzLCA4MTQuNDY2MDAwMDEwNzI1MSwgODE0LjUxNzk5OTk5OTIyNTEsIDgyNS43NDkwMDAw
MTA1NDYzLCA4MTYuMjc5OTk5OTk5MDk2NiwgODE2LjM3ODk5OTk5NjIzMTldLCAic3RkZXYiOiAz
LjY2NDk1MzQwNDgxOTQzNCwgImF2ZyI6IDgxNy45NjE5OTk5OTgwNzg2LCAidW5pdCI6ICJtcyJ9
LCAiRHJvbWFlby9kb20tYXR0ciI6IHsibWluIjogNTcwMC41MjI5NTQwOTE4MTYsICJtYXgiOiA1
OTE5Ljc4MTY5OTMzODU4NiwgIm1lZGlhbiI6IDAuMCwgInN0ZGV2IjogNjAuMzk1MTY5NzgxNDg3
NTMsICJhdmciOiA1ODA4LjYwNTU2MjcyNDAzMiwgInVuaXQiOiAicnVucy9zIn0sICJCaW5kaW5n
cy9nYy1taW5pLXRyZWU6SlNIZWFwIjogeyJtaW4iOiAxMDYxNTUyOC4wLCAibWF4IjogMTM2NjQw
NTIuMCwgIm1lZGlhbiI6IDEzNjYxMjUyLjAsICJ2YWx1ZXMiOiBbMTM2NjE5NjguMCwgMTM2NjI5
NjguMCwgMTA2MTU1MjguMCwgMTM2NjAyNTYuMCwgMTM2NjAwNjQuMCwgMTM2NjA3OTYuMCwgMTM2
NjA1NDAuMCwgMTM2NjExNzYuMCwgMTM2NjA4NzIuMCwgMTM2NjEzMjguMCwgMTM2NjA1ODAuMCwg
MTM2NTc5NTIuMCwgMTM2NjIzMTYuMCwgMTM2NjAzNDQuMCwgMTM2NjE1NzYuMCwgMTM2NjE4NjQu
MCwgMTM2NjE4MTIuMCwgMTM2NjE2MzYuMCwgMTM2NjQwNTIuMCwgMTM2NjI1MzIuMF0sICJzdGRl
diI6IDY4MTA1NS42OTgzOTc3MTUzLCAiYXZnIjogMTM1MDkwMDguMCwgInVuaXQiOiAiYnl0ZXMi
fSwgIkRyb21hZW8vZG9tLW1vZGlmeTpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwg
Im1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAs
ICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS10cmF2ZXJzZTpNYWxsb2MiOiB7Im1pbiI6
IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYi
OiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3Q6
SlNIZWFwIjogeyJtaW4iOiAxMDYxMzA1Ni4wLCAibWF4IjogMTM2NjIwMzIuMCwgIm1lZGlhbiI6
IDEzNjU4Mjk4LjAsICJ2YWx1ZXMiOiBbMTM2NTk4OTIuMCwgMTM2NjEwMDguMCwgMTA2MTMwNTYu
MCwgMTM2NTc0MDguMCwgMTM2NTc1MjQuMCwgMTM2NTgwMTIuMCwgMTM2NTc4ODguMCwgMTM2NTgy
OTIuMCwgMTM2NTgwMjQuMCwgMTM2NTgzMDQuMCwgMTM2NTgwMjAuMCwgMTM2NTYwMDAuMCwgMTM2
NTk1MjguMCwgMTM2NTc2MTYuMCwgMTM2NTg5MzYuMCwgMTM2NTkyNDAuMCwgMTM2NTk2NTIuMCwg
MTM2NTkzNTYuMCwgMTM2NjIwMzIuMCwgMTM2NTk5NzYuMF0sICJzdGRldiI6IDY4MTA0NC42NDkz
NTMxNzUsICJhdmciOiAxMzUwNjQ4OC4yMDAwMDAwMDEsICJ1bml0IjogImJ5dGVzIn0sICJEcm9t
YWVvL2RvbS10cmF2ZXJzZTpKU0hlYXAiOiB7Im1pbiI6IDUwMDQwNTIuMCwgIm1heCI6IDUwMDQw
NTIuMCwgIm1lZGlhbiI6IDUwMDQwNTIuMCwgInZhbHVlcyI6IFs1MDA0MDUyLjBdLCAic3RkZXYi
OiAwLjAsICJhdmciOiA1MDA0MDUyLjAsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy1m
b3Jlc3Q6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2
YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjBdLCAic3Rk
ZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1tb2Rp
ZnkiOiB7Im1pbiI6IDM1MjIuNTg1MzYzNjc3MjQ5LCAibWF4IjogNDE5MS4xNjg0NTg2NTI5Mjks
ICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDE5MC4zODkyODU1Mjk5MTQwMiwgImF2ZyI6IDM4MjIu
MDI5MTgyOTgzNzUwNiwgInVuaXQiOiAicnVucy9zIn0sICJCaW5kaW5ncy9nYy10cmVlIjogeyJt
aW4iOiAxMjc0LjMwMzAwMDAxMjg3ODMsICJtYXgiOiAxMzE1LjAxNjAwMDAwNzc0NDksICJtZWRp
YW4iOiAxMjg0LjAxNTAwMDAxMjAwNDcsICJ2YWx1ZXMiOiBbMTI3NC45Mzc5OTk5ODc3NDIsIDEy
ODcuNTAyOTk5OTk5NTYwNCwgMTMxNS4wMTYwMDAwMDc3NDQ5LCAxMjg0Ljg1MjAwMDAxMTU5Njgs
IDEyNzQuMzQ2OTk5OTk4NjcsIDEzMTQuODMyMDAwMDAzNjYyLCAxMjk1LjgwNjk5OTk4NzY4OTgs
IDEyODAuMjE3OTk5OTk5ODc3LCAxMjc0Ljc2Njk5OTk5NTMzNiwgMTI4NC44NDM5OTk5Nzk3ODQ3
LCAxMjgzLjQ2MTk5OTk5MjE0MTUsIDEyODIuNTMxMDAwMDA0MzgyOCwgMTI4NC41MzAwMDAwMDQ0
NTE3LCAxMjkxLjAzMzk5OTk5NDM5NzIsIDEyOTAuNTQ3MDAwMDExNDI5MiwgMTI4My41MDAwMDAw
MTk1NTc4LCAxMjg1LjgxNTAwMDAxMDE4ODcsIDEyODMuMTI4MDAwMDEwMDM3OCwgMTI3NC4zMDMw
MDAwMTI4NzgzLCAxMjc4LjU2NjAwMDAyMjY5MjZdLCAic3RkZXYiOiAxMS4zODg2MjI5MTk1NDQ3
MjUsICJhdmciOiAxMjg2LjIyNzAwMDAwMjY5MDYsICJ1bml0IjogIm1zIn0sICJEcm9tYWVvL2Rv
bS1tb2RpZnk6SlNIZWFwIjogeyJtaW4iOiAzMjE2NjQ2OC4wLCAibWF4IjogMzIxNjY0NjguMCwg
Im1lZGlhbiI6IDMyMTY2NDY4LjAsICJ2YWx1ZXMiOiBbMzIxNjY0NjguMF0sICJzdGRldiI6IDAu
MCwgImF2ZyI6IDMyMTY2NDY4LjAsICJ1bml0IjogImJ5dGVzIn19LCAicGxhdGZvcm0iOiAiY2hy
b21pdW0iLCAiYnJhbmNoIjogIndlYmtpdC10cnVuayIsICJjaHJvbWl1bS1yZXZpc2lvbiI6ICIx
NjMyOTcifSwgeyJ0aW1lc3RhbXAiOiAxMzUwOTQwMTkxLCAid2Via2l0LXJldmlzaW9uIjogIjEz
MjExNSIsICJyZXN1bHRzIjogeyJCaW5kaW5ncy9nYy1taW5pLXRyZWU6TWFsbG9jIjogeyJtaW4i
OiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAu
MCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAs
IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAs
ICJ1bml0IjogImJ5dGVzIn0sICJEcm9tYWVvL2RvbS1tb2RpZnk6TWFsbG9jIjogeyJtaW4iOiAw
LjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wXSwgInN0ZGV2Ijog
MC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tcXVlcnk6SlNI
ZWFwIjogeyJtaW4iOiA1NjA3NDEyLjAsICJtYXgiOiA1NjA3NDEyLjAsICJtZWRpYW4iOiA1NjA3
NDEyLjAsICJ2YWx1ZXMiOiBbNTYwNzQxMi4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogNTYwNzQx
Mi4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQmluZGluZ3MvZ2MtbWluaS10cmVlIjogeyJtaW4iOiAx
MDk0LjgyMjk5OTk5MjE3NSwgIm1heCI6IDExMjEuOTk0MDAwMDE1NTQ3NSwgIm1lZGlhbiI6IDEx
MDguNjA1NDk5OTkwNTE3MywgInZhbHVlcyI6IFsxMTE0LjYyMDAwMDAwNzU2MjMsIDExMTMuODU3
MDAwMDE4NDcsIDExMDYuMTEyOTk5OTg3MDksIDExMjEuOTk0MDAwMDE1NTQ3NSwgMTEyMS43Mjc5
OTk5OTgyNTY2LCAxMTExLjEwMTk5OTk5NTI5ODcsIDExMTguODIwMDAwMDAzMzI0OCwgMTExMi42
OTAwMDAwMDkwMjQ1LCAxMTEzLjY0OTAwMDAwNjI2MjIsIDExMTIuOTMxMDAwMDEwNTc2LCAxMTEw
LjY2NDk5OTk4NTYwMTgsIDExMDUuOTgyMDAwMDA4MjI1NCwgMTEwMC40MjE5OTk5ODg2MTE4LCAx
MTAxLjAwNjk5OTk5MDIwNDMsIDEwOTcuNDY5OTk5OTc4Nzg0NSwgMTEwNi41NDU5OTk5OTU0MzI4
LCAxMTA1LjczNTk5OTk5NzcwNTIsIDExMDEuODk5OTk5OTc5NjUwNiwgMTA5NC44MjI5OTk5OTIx
NzUsIDExMDIuMTAzOTk5OTkwNTA0Ml0sICJzdGRldiI6IDcuNzUzMTA1MjU2Njc1MDkzLCAiYXZn
IjogMTEwOC43MDc5NDk5OTc5MTU0LCAidW5pdCI6ICJtcyJ9LCAiRHJvbWFlby9kb20tdHJhdmVy
c2UiOiB7Im1pbiI6IDI1NjYuNTkyMDQ0NjgxODY1LCAibWF4IjogMjU5MS45MzcwNjI5MzcwNjMs
ICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDYuMTY5OTg4NTI3NzUzMzI5LCAiYXZnIjogMjU4MC4w
OTMzNTAxNjI4MTEsICJ1bml0IjogInJ1bnMvcyJ9LCAiRHJvbWFlby9kb20tcXVlcnk6TWFsbG9j
IjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4w
XSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9k
b20tcXVlcnkiOiB7Im1pbiI6IDY1MDIzNC4xNDA4NTkxNDA4LCAibWF4IjogNjUzODY3LjMwODY5
MTMwODcsICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDYzMy4wNDk1NTYxNDg3ODkzLCAiYXZnIjog
NjUyMTk1LjM1MTg0ODE1MTksICJ1bml0IjogInJ1bnMvcyJ9LCAiQmluZGluZ3MvZ2MtdHJlZTpN
YWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAuMCwgInZhbHVlcyI6
IFswLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwg
MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMF0sICJzdGRldiI6IDAu
MCwgImF2ZyI6IDAuMCwgInVuaXQiOiAiYnl0ZXMifSwgIkJpbmRpbmdzL2djLXRyZWU6SlNIZWFw
IjogeyJtaW4iOiAyMDc2OTE3Mi4wLCAibWF4IjogMjA3NzQxOTIuMCwgIm1lZGlhbiI6IDIwNzcx
NzUwLjAsICJ2YWx1ZXMiOiBbMjA3NzAyMjguMCwgMjA3Njk3MTIuMCwgMjA3NzA2MDQuMCwgMjA3
NjkzNTIuMCwgMjA3NzEyOTYuMCwgMjA3Njk5MjQuMCwgMjA3NzE3NzYuMCwgMjA3NzA2NjQuMCwg
MjA3NzI1NTIuMCwgMjA3NzE0MjAuMCwgMjA3NzI3NTYuMCwgMjA3NjkxNzIuMCwgMjA3NzI1MDAu
MCwgMjA3NzIwMzYuMCwgMjA3NzMzOTYuMCwgMjA3NzE3MjQuMCwgMjA3NzQwMjAuMCwgMjA3NzM0
MDguMCwgMjA3NzQxOTIuMCwgMjA3NzM3NzYuMF0sICJzdGRldiI6IDE1ODkuMDQ4NDU0MDk4MzAy
MywgImF2ZyI6IDIwNzcxNzI1LjQwMDAwMDAwMiwgInVuaXQiOiAiYnl0ZXMifSwgIkRyb21hZW8v
ZG9tLWF0dHI6SlNIZWFwIjogeyJtaW4iOiA3MzAxNjgwLjAsICJtYXgiOiA3MzAxNjgwLjAsICJt
ZWRpYW4iOiA3MzAxNjgwLjAsICJ2YWx1ZXMiOiBbNzMwMTY4MC4wXSwgInN0ZGV2IjogMC4wLCAi
YXZnIjogNzMwMTY4MC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFlby9kb20tYXR0ciI6IHsi
bWluIjogNTc3Ny44NDg2MjY0MjM0NzcsICJtYXgiOiA1OTM5LjAsICJtZWRpYW4iOiAwLjAsICJz
dGRldiI6IDQ3LjY1MTE5NTIyMzYxNiwgImF2ZyI6IDU4NDcuOTM4NTU2NDUzNTI2LCAidW5pdCI6
ICJydW5zL3MifSwgIkJpbmRpbmdzL2djLW1pbmktdHJlZTpKU0hlYXAiOiB7Im1pbiI6IDEwNjE1
NTI0LjAsICJtYXgiOiAxMzY2NDc2OC4wLCAibWVkaWFuIjogMTM2NjEzNTQuMCwgInZhbHVlcyI6
IFsxMzY2MTk2OC4wLCAxMzY2Mjk2NC4wLCAxMDYxNTUyNC4wLCAxMzY2MDAyNC4wLCAxMzY2MDQ4
OC4wLCAxMzY2MDkxNi4wLCAxMzY2MDk4OC4wLCAxMzY2MTMxNi4wLCAxMzY2MTA4NC4wLCAxMzY2
MTM5Mi4wLCAxMzY2MDk3Ni4wLCAxMzY1ODI2NC4wLCAxMzY2MjE5Mi4wLCAxMzY2MDUyMC4wLCAx
MzY2MTU0OC4wLCAxMzY2MjIyNC4wLCAxMzY2MjI0OC4wLCAxMzY2MTkzMi4wLCAxMzY2NDc2OC4w
LCAxMzY2MzA2OC4wXSwgInN0ZGV2IjogNjgxMTA2LjY4NTYwMDQ1ODYsICJhdmciOiAxMzUwOTIy
MC4yMDAwMDAwMDEsICJ1bml0IjogImJ5dGVzIn0sICJCaW5kaW5ncy9nYy10cmVlIjogeyJtaW4i
OiAxMTAxLjUwOTAwMDAwMDA3ODIsICJtYXgiOiAxMTMxLjQ4ODAwMDAxMzYzMjcsICJtZWRpYW4i
OiAxMTEyLjM5Njk5OTk4OTg2OSwgInZhbHVlcyI6IFsxMTAyLjYwOTAwMDAyMzIyMTYsIDExMDcu
MzU1OTk5OTkzMTYwNCwgMTEzMS40ODgwMDAwMTM2MzI3LCAxMTEzLjA4NTk5OTk5NzU2NTUsIDEx
MDUuMjEwOTk5OTg3MzIxLCAxMTA5Ljg5MTAwMDAwMDA2MTUsIDExMTUuMzU1OTk5OTk0NzkwMiwg
MTExMC4xMzA5OTk5OTM5OTg2LCAxMTA2LjE1OTk5OTk5NTcyNTIsIDExMDguMDAwMDAwMDA3NDUw
NiwgMTExNC4zNzY5OTk5OTA3ODE4LCAxMTE1LjM2NTAwMDAwNTExMywgMTExNi41NTkwMDAwMTY0
MjMsIDExMTUuNTM3MDAwMDA1MTMzNSwgMTExNi40ODEwMDAwMDQ1NjksIDExMTEuNzA3OTk5OTgy
MTcyNiwgMTExNS4wMDIwMDAwMDU5MTU4LCAxMTE1LjA2ODAwMDAxMzcwNzIsIDExMDEuNTA5MDAw
MDAwMDc4MiwgMTEwNi40NzQ5OTk5Nzg2NzI3XSwgInN0ZGV2IjogNi42MzAxNDI5MzY2MDgxOCwg
ImF2ZyI6IDExMTEuODY4NDUwMDAwNDc1LCAidW5pdCI6ICJtcyJ9LCAiRHJvbWFlby9kb20tdHJh
dmVyc2U6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRpYW4iOiAwLjAsICJ2
YWx1ZXMiOiBbMC4wXSwgInN0ZGV2IjogMC4wLCAiYXZnIjogMC4wLCAidW5pdCI6ICJieXRlcyJ9
LCAiRHJvbWFlby9kb20tdHJhdmVyc2U6SlNIZWFwIjogeyJtaW4iOiA1MDAxNTIwLjAsICJtYXgi
OiA1MDAxNTIwLjAsICJtZWRpYW4iOiA1MDAxNTIwLjAsICJ2YWx1ZXMiOiBbNTAwMTUyMC4wXSwg
InN0ZGV2IjogMC4wLCAiYXZnIjogNTAwMTUyMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiRHJvbWFl
by9kb20tYXR0cjpNYWxsb2MiOiB7Im1pbiI6IDAuMCwgIm1heCI6IDAuMCwgIm1lZGlhbiI6IDAu
MCwgInZhbHVlcyI6IFswLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5
dGVzIn0sICJCaW5kaW5ncy9nYy1mb3Jlc3QiOiB7Im1pbiI6IDgxNC4yMTUwMDAwMjAzNDAxLCAi
bWF4IjogODI4LjQzMTk5OTk4MDIzOTIsICJtZWRpYW4iOiA4MTcuNDcyNTAwMDEzNTM2OCwgInZh
bHVlcyI6IFs4MjguNDMxOTk5OTgwMjM5MiwgODE2LjcyNTk5OTk5MDAxMjUsIDgxNy44MjIwMDAw
MTE4MDE3LCA4MjIuNTIzMDAwMDA5ODIzNiwgODI0LjQzOTk5OTk5NjY4NDUsIDgxNC43OTYwMDAw
MjA1Nzg1LCA4MTYuNTc5OTk5OTg0MjQyLCA4MTYuNTQ2OTk5OTk0ODk4MiwgODIxLjQwNjAwMDAw
Mjc1MywgODE3LjY0NzAwMDAxODA0MTYsIDgyMS4yNjI5OTk5OTA3MjIyLCA4MTQuMzU0MDAwMDAx
OTEyOSwgODE5LjAzNzk5OTk4NjkwMzcsIDgxOS45OTY5OTk5ODQxNDE0LCA4MTQuNDc4OTk5OTkz
Mjk4MiwgODE0LjIyNjk5OTk5NTI5ODcsIDgxNC4yMTUwMDAwMjAzNDAxLCA4MTkuNDk2MDAwMDEw
OTg1OSwgODE3LjI5ODAwMDAwOTAzMiwgODE0Ljc4MzAwMDAwODkwMTZdLCAic3RkZXYiOiAzLjgz
NzAzOTYwODk5NTM0LCAiYXZnIjogODE4LjMwMzQ1MDAwMDUzMDgsICJ1bml0IjogIm1zIn0sICJC
aW5kaW5ncy9nYy1mb3Jlc3Q6TWFsbG9jIjogeyJtaW4iOiAwLjAsICJtYXgiOiAwLjAsICJtZWRp
YW4iOiAwLjAsICJ2YWx1ZXMiOiBbMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAw
LjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
LCAwLjBdLCAic3RkZXYiOiAwLjAsICJhdmciOiAwLjAsICJ1bml0IjogImJ5dGVzIn0sICJEcm9t
YWVvL2RvbS1tb2RpZnkiOiB7Im1pbiI6IDM1NjAuOTEyMjk5MjQ3NTQ1LCAibWF4IjogNDI1Ni4x
Mzc0NzM2Mzc0NzQsICJtZWRpYW4iOiAwLjAsICJzdGRldiI6IDE5OC4yNTA5MjYzODQ4Njk5Niwg
ImF2ZyI6IDM4ODMuNzYzMTc3MTc1NTM1NSwgInVuaXQiOiAicnVucy9zIn0sICJCaW5kaW5ncy9n
Yy1mb3Jlc3Q6SlNIZWFwIjogeyJtaW4iOiAxMDYxMzA1Ni4wLCAibWF4IjogMTM2NjE2NDAuMCwg
Im1lZGlhbiI6IDEzNjU4MzY4LjAsICJ2YWx1ZXMiOiBbMTM2NTk4OTIuMCwgMTM2NjEwMDguMCwg
MTA2MTMwNTYuMCwgMTM2NTc0MDguMCwgMTM2NTc1MjQuMCwgMTM2NTgwMTYuMCwgMTM2NTc4ODQu
MCwgMTM2NTgxMTYuMCwgMTM2NTgzNDQuMCwgMTM2NTgzOTIuMCwgMTM2NTgyNDQuMCwgMTM2NTYw
NjguMCwgMTM2NTk0NTYuMCwgMTM2NTc2MjQuMCwgMTM2NTg4NTIuMCwgMTM2NTg5NjguMCwgMTM2
NTkzODAuMCwgMTM2NTkxODguMCwgMTM2NjE2NDAuMCwgMTM2NTk3OTIuMF0sICJzdGRldiI6IDY4
MTAzMy43MzYzMjI3NTEsICJhdmciOiAxMzUwNjQ0Mi41OTk5OTk5OTgsICJ1bml0IjogImJ5dGVz
In0sICJEcm9tYWVvL2RvbS1tb2RpZnk6SlNIZWFwIjogeyJtaW4iOiAzMjE4NDYwNC4wLCAibWF4
IjogMzIxODQ2MDQuMCwgIm1lZGlhbiI6IDMyMTg0NjA0LjAsICJ2YWx1ZXMiOiBbMzIxODQ2MDQu
MF0sICJzdGRldiI6IDAuMCwgImF2ZyI6IDMyMTg0NjA0LjAsICJ1bml0IjogImJ5dGVzIn19LCAi
cGxhdGZvcm0iOiAiY2hyb21pdW0iLCAiYnJhbmNoIjogIndlYmtpdC10cnVuayIsICJjaHJvbWl1
bS1yZXZpc2lvbiI6ICIxNjMyOTcifV08L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170000</attachid>
            <date>2012-10-22 15:33:12 -0700</date>
            <delta_ts>2012-10-23 11:14:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97974-20121022153150.patch</filename>
            <type>text/plain</type>
            <size>15324</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNlNDgzMmJiNDliNzI2
NmEyZDMxNzYzYjI1ZTYyN2RhYTYwZjM5OC4uYTU5NjIzOGNjMTYxNDQyOGQ0ZDAzYjQ3MzQwYjVh
ODRiM2EyZTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDEyLTEwLTIyICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBTY3JpcHRXcmFwcGFi
bGUgc2hvdWxkIGhvbGQgdGhlIHdyYXBwZXIgaGFuZGxlIGRpcmVjdGx5IChEcm9tYWVvL2RvbS1t
b2RpZnkgYW5kIGRvbS10cmF2ZXJzZSBnZXQgfjIuNSUgZmFzdGVyKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc5NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSBzdG9yZWQgYSBw
b2ludGVyIHRvIGEgaGFuZGxlIHRvIGEgd3JhcHBlciBpbiBOb2RlLiBUaGF0CisgICAgICAgIGlz
IGFuIGV4dHJhIGxheWVyIG9mIGluZGlyZWN0aW9uIHRoYXQgc2xvd3MgZG93biBmaW5kaW5nIHRo
ZSB3cmFwcGVyCisgICAgICAgIGZvciB0aGUgbm9kZS4gQSBoYW5kbGUgaXMganVzdCBhIHBvaW50
ZXIsIHNvIHdlIG1pZ2h0IGFzIHdlIGp1c3Qgc3RvcmUKKyAgICAgICAgdGhlIGhhbmRsZSBpbiB0
aGUgTm9kZSBkaXJlY3RseS4gVGhhdCBzcGVlZHMgdXAgZG9tLW1vZGlmeSBhbmQKKyAgICAgICAg
ZG9tLXRyYXZlcnNlIGJ5IGFib3V0IDIuNSUuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxzbyBs
ZXRzIHVzIGdldCByaWQgb2YgdGhlIENodW5rZWRUYWJsZSB3ZSB3ZXJlIHVzaW5nIHRvCisgICAg
ICAgIHN0b3JlIGFsbCB0aGUgd3JhcHBlcnMgYmVjYXVzZSB0aGV5J3JlIG5vdyBzdG9yZWQgaW4g
dGhlIE5vZGVzCisgICAgICAgIGRpcmVjdGx5LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAg
ICogYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6SW50cnVzaXZlRE9NV3JhcHBlck1hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1
c2l2ZURPTVdyYXBwZXJNYXA6OnZpc2l0KToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURP
TVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRydXNp
dmVET01XcmFwcGVyTWFwOjpjbGVhcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OlNjcmlwdFdyYXBw
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6OndyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpzZXRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6ZGlzcG9zZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0V3JhcHBhYmxlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChTY3JpcHRX
cmFwcGFibGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKToKKworMjAxMi0xMC0y
MiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFtWOF0gRW51bWVy
YXRlIE5vZGVzIHZpYSB0aGUgVjggaGVhcCByYXRoZXIgdGhhbiB2aWEgYSBsaXN0IGluIFdlYkNv
cmUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAz
MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtCmluZGV4IDg1YjhiMDFkMzllOTNmOTUxNGY0NGI2MjM0YjVhNjQxMDBjNDVhYmMuLjBj
ZDI4NjlmODc3ODVlNzM1Njg5NWZmYTM0ZTI3NjgyODhhZmRiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC01NTYsOCAr
NTU2LDExIEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOEZhc3QoTm9kZSogbm9k
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbywKICAgICAvLyB3aGV0aGVyIHRoZSBob2xk
ZXIncyBpbmxpbmUgd3JhcHBlciBpcyB0aGUgc2FtZSB3cmFwcGVyIHdlIHNlZSBpbiB0aGUKICAg
ICAvLyB2ODo6QWNjZXNzb3JJbmZvLgogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVy
V3JhcHBlciA9IGluZm8uSG9sZGVyKCk7Ci0gICAgaWYgKGhvbGRlci0+d3JhcHBlcigpICYmICpo
b2xkZXItPndyYXBwZXIoKSA9PSBob2xkZXJXcmFwcGVyICYmIG5vZGUtPndyYXBwZXIoKSkKLSAg
ICAgICAgcmV0dXJuICpub2RlLT53cmFwcGVyKCk7CisgICAgaWYgKGhvbGRlci0+d3JhcHBlcigp
ID09IGhvbGRlcldyYXBwZXIpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gbm9kZS0+d3JhcHBlcigpOworICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisgICAgfQogICAgIHJldHVybiB0b1Y4U2xvdyhu
b2RlLCBob2xkZXJXcmFwcGVyLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiBFTkQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaAppbmRl
eCA2NzYwNTBhZDVkNTEwMTlkOTk2MzUxZTZiM2RkMDYxMTE2ZjNkYjVlLi5kNjZjNzYxNmNlZWQ5
MzU0NGI4Mzc4MmFjYjc0ZGQ3NDE4NmU3MjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCkBAIC0zMiwxOTkgKzMyLDk5IEBA
CiAjZGVmaW5lIEludHJ1c2l2ZURPTVdyYXBwZXJNYXBfaAogCiAjaW5jbHVkZSAiRE9NRGF0YVN0
b3JlLmgiCisjaW5jbHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOE5vZGUuaCIKICNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdGVtcGxhdGUgPGNsYXNzIFQsIGludCBDSFVOS19TSVpFLCBjbGFzcyBUcmFpdHM+Ci1j
bGFzcyBDaHVua2VkVGFibGUgewotICBwdWJsaWM6Ci0gICAgQ2h1bmtlZFRhYmxlKCkgOiBtX2No
dW5rcygwKSwgbV9jdXJyZW50KDApLCBtX2xhc3QoMCkgeyB9Ci0KLSAgICBUKiBhZGQoVCBlbGVt
ZW50KQorY2xhc3MgRE9NTm9kZVdyYXBwZXJNYXAgOiBwdWJsaWMgQWJzdHJhY3RXZWFrUmVmZXJl
bmNlTWFwPE5vZGUsIHY4OjpPYmplY3Q+IHsKK3B1YmxpYzoKKyAgICBET01Ob2RlV3JhcHBlck1h
cCh2ODo6V2Vha1JlZmVyZW5jZUNhbGxiYWNrIGNhbGxiYWNrKQorICAgICAgICA6IEFic3RyYWN0
V2Vha1JlZmVyZW5jZU1hcDxOb2RlLCB2ODo6T2JqZWN0PihjYWxsYmFjaykKICAgICB7Ci0gICAg
ICAgIGlmIChtX2N1cnJlbnQgPT0gbV9sYXN0KSB7Ci0gICAgICAgICAgICBtX2NodW5rcyA9IG5l
dyBDaHVuayhtX2NodW5rcyk7Ci0gICAgICAgICAgICBtX2N1cnJlbnQgPSBtX2NodW5rcy0+bV9l
bnRyaWVzOwotICAgICAgICAgICAgbV9sYXN0ID0gbV9jdXJyZW50ICsgQ0hVTktfU0laRTsKLSAg
ICAgICAgfQotICAgICAgICBBU1NFUlQoKG1fY2h1bmtzLT5tX2VudHJpZXMgPD0gbV9jdXJyZW50
KSAmJiAobV9jdXJyZW50IDwgbV9sYXN0KSk7Ci0gICAgICAgIFQqIHAgPSBtX2N1cnJlbnQrKzsK
LSAgICAgICAgKnAgPSBlbGVtZW50OwotICAgICAgICByZXR1cm4gcDsKICAgICB9CiAKLSAgICB2
b2lkIHJlbW92ZShUKiBlbGVtZW50KQorICAgIHZpcnR1YWwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gZ2V0KE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICBBU1NFUlQoZWxlbWVudCk7Ci0g
ICAgICAgIEFTU0VSVChtX2N1cnJlbnQgPiBtX2NodW5rcy0+bV9lbnRyaWVzKTsKLSAgICAgICAg
bV9jdXJyZW50LS07Ci0gICAgICAgIGlmIChlbGVtZW50ICE9IG1fY3VycmVudCkKLSAgICAgICAg
ICAgIFRyYWl0czo6bW92ZShlbGVtZW50LCBtX2N1cnJlbnQpOwotICAgICAgICBpZiAobV9jdXJy
ZW50ID09IG1fY2h1bmtzLT5tX2VudHJpZXMpIHsKLSAgICAgICAgICAgIENodW5rKiB0b0RlbGV0
ZSA9IG1fY2h1bmtzOwotICAgICAgICAgICAgbV9jaHVua3MgPSB0b0RlbGV0ZS0+bV9wcmV2aW91
czsKLSAgICAgICAgICAgIG1fY3VycmVudCA9IG1fbGFzdCA9IG1fY2h1bmtzID8gbV9jaHVua3Mt
Pm1fZW50cmllcyArIENIVU5LX1NJWkUgOiAwOwotICAgICAgICAgICAgZGVsZXRlIHRvRGVsZXRl
OwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVCghbV9jaHVua3MgfHwgKChtX2NodW5rcy0+bV9l
bnRyaWVzIDwgbV9jdXJyZW50KSAmJiAobV9jdXJyZW50IDw9IG1fbGFzdCkpKTsKKyAgICAgICAg
cmV0dXJuIG5vZGUtPndyYXBwZXIoKTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyKCkKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0KE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdy
YXBwZXIpCiAgICAgewotICAgICAgICBpZiAoIW1fY2h1bmtzKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGNsZWFyRW50cmllcyhtX2NodW5rcy0+bV9lbnRyaWVzLCBtX2N1cnJlbnQp
OwotICAgICAgICBDaHVuayogbGFzdCA9IG1fY2h1bmtzOwotICAgICAgICB3aGlsZSAodHJ1ZSkg
ewotICAgICAgICAgICAgQ2h1bmsqIHByZXZpb3VzID0gbGFzdC0+bV9wcmV2aW91czsKLSAgICAg
ICAgICAgIGlmICghcHJldmlvdXMpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBkZWxldGUgbGFzdDsKLSAgICAgICAgICAgIGNsZWFyRW50cmllcyhwcmV2aW91cy0+bV9lbnRy
aWVzLCBwcmV2aW91cy0+bV9lbnRyaWVzICsgQ0hVTktfU0laRSk7Ci0gICAgICAgICAgICBsYXN0
ID0gcHJldmlvdXM7Ci0gICAgICAgIH0KLQotICAgICAgICBtX2NodW5rcyA9IGxhc3Q7Ci0gICAg
ICAgIG1fY3VycmVudCA9IG1fY2h1bmtzLT5tX2VudHJpZXM7Ci0gICAgICAgIG1fbGFzdCA9IG1f
Y3VycmVudCArIENIVU5LX1NJWkU7CisgICAgICAgIEFTU0VSVChub2RlICYmIG5vZGUtPndyYXBw
ZXIoKS5Jc0VtcHR5KCkpOworICAgICAgICBBU1NFUlQod3JhcHBlci5XcmFwcGVyQ2xhc3NJZCgp
ID09IHY4RE9NU3VidHJlZUNsYXNzSWQpOworICAgICAgICBub2RlLT5zZXRXcmFwcGVyKHdyYXBw
ZXIpOworICAgICAgICB3cmFwcGVyLk1ha2VXZWFrKG5vZGUsIHdlYWtSZWZlcmVuY2VDYWxsYmFj
aygpKTsKICAgICB9CiAKLSAgICB2b2lkIHZpc2l0KERPTURhdGFTdG9yZSogc3RvcmUsIHR5cGVu
YW1lIFRyYWl0czo6VmlzaXRvciogdmlzaXRvcikKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMo
Tm9kZSogbm9kZSkKICAgICB7Ci0gICAgICAgIGlmICghbV9jaHVua3MpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgdmlzaXRFbnRyaWVzKHN0b3JlLCBtX2NodW5rcy0+bV9lbnRyaWVz
LCBtX2N1cnJlbnQsIHZpc2l0b3IpOwotICAgICAgICBmb3IgKENodW5rKiBjaHVuayA9IG1fY2h1
bmtzLT5tX3ByZXZpb3VzOyBjaHVuazsgY2h1bmsgPSBjaHVuay0+bV9wcmV2aW91cykKLSAgICAg
ICAgICAgIHZpc2l0RW50cmllcyhzdG9yZSwgY2h1bmstPm1fZW50cmllcywgY2h1bmstPm1fZW50
cmllcyArIENIVU5LX1NJWkUsIHZpc2l0b3IpOworICAgICAgICByZXR1cm4gIW5vZGUtPndyYXBw
ZXIoKS5Jc0VtcHR5KCk7CiAgICAgfQogCi0gICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgIHZpcnR1YWwgdm9pZCB2
aXNpdChET01EYXRhU3RvcmUqIHN0b3JlLCBWaXNpdG9yKiB2aXNpdG9yKQogICAgIHsKLSAgICAg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpCaW5kaW5nKTsKLSAgICAgICAgZm9yIChDaHVuayogY2h1bmsgPSBtX2NodW5r
czsgY2h1bms7IGNodW5rID0gY2h1bmstPm1fcHJldmlvdXMpCi0gICAgICAgICAgICBpbmZvLmFk
ZE1lbWJlcihjaHVuayk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAot
ICBwcml2YXRlOgotICAgIHN0cnVjdCBDaHVuayB7Ci0gICAgICAgIGV4cGxpY2l0IENodW5rKENo
dW5rKiBwcmV2aW91cykgOiBtX3ByZXZpb3VzKHByZXZpb3VzKSB7IH0KLSAgICAgICAgQ2h1bmsq
IGNvbnN0IG1fcHJldmlvdXM7Ci0gICAgICAgIFQgbV9lbnRyaWVzW0NIVU5LX1NJWkVdOwotICAg
IH07Ci0KLSAgICBzdGF0aWMgdm9pZCBjbGVhckVudHJpZXMoVCogZmlyc3QsIFQqIGxhc3QpCisg
ICAgdmlydHVhbCBib29sIHJlbW92ZUlmUHJlc2VudChOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVu
dDx2ODo6T2JqZWN0PiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGZvciAoVCogZW50cnkgPSBmaXJz
dDsgZW50cnkgPCBsYXN0OyBlbnRyeSsrKQotICAgICAgICAgICAgVHJhaXRzOjpjbGVhcihlbnRy
eSk7CisgICAgICAgIEFTU0VSVChub2RlKTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gd3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAgICAgaWYgKHdyYXBwZXIuSXNF
bXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAod3JhcHBlciAh
PSB2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbm9kZS0+ZGlzcG9z
ZVdyYXBwZXIoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc3RhdGljIHZv
aWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSogc3RvcmUsIFQqIGZpcnN0LCBUKiBsYXN0LCB0
eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCisgICAgdmlydHVhbCB2b2lkIGNsZWFy
KCkKICAgICB7Ci0gICAgICAgIGZvciAoVCogZW50cnkgPSBmaXJzdDsgZW50cnkgPCBsYXN0OyBl
bnRyeSsrKQotICAgICAgICAgICAgVHJhaXRzOjp2aXNpdChzdG9yZSwgZW50cnksIHZpc2l0b3Ip
OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBDaHVuayogbV9j
aHVua3M7Ci0gICAgVCogbV9jdXJyZW50OwotICAgIFQqIG1fbGFzdDsKLX07Ci0KLQotY2xhc3Mg
SW50cnVzaXZlRE9NV3JhcHBlck1hcCA6IHB1YmxpYyBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8
Tm9kZSwgdjg6Ok9iamVjdD4gewotcHVibGljOgotICAgIEludHJ1c2l2ZURPTVdyYXBwZXJNYXAo
djg6OldlYWtSZWZlcmVuY2VDYWxsYmFjayBjYWxsYmFjaykKLSAgICAgICAgOiBBYnN0cmFjdFdl
YWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4oY2FsbGJhY2spIHsgfQotCi0gICAgdmly
dHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBnZXQoTm9kZSogb2JqKQorICAgIHZpcnR1
YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdCBPVkVSUklERQogICAgIHsKLSAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4qIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKTsKLSAgICAgICAgcmV0dXJuIHdyYXBwZXIg
PyAqd3JhcHBlciA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCk7CisgICAgICAgIC8vIFRo
aXMgZGF0YSBzdHJ1Y3R1cmUgZG9lc24ndCB1c2UgYW55IGV4dHJhIG1lbW9yeS4KICAgICB9Cit9
OwogCi0gICAgdmlydHVhbCB2b2lkIHNldChOb2RlKiBvYmosIHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+IHdyYXBwZXIpCitjbGFzcyBBY3RpdmVET01Ob2RlV3JhcHBlck1hcCA6IHB1YmxpYyBE
T01XcmFwcGVyTWFwPE5vZGU+IHsKK3B1YmxpYzoKKyAgICBBY3RpdmVET01Ob2RlV3JhcHBlck1h
cCh2ODo6V2Vha1JlZmVyZW5jZUNhbGxiYWNrIGNhbGxiYWNrKQorICAgICAgICA6IERPTVdyYXBw
ZXJNYXA8Tm9kZT4oY2FsbGJhY2spCiAgICAgewotICAgICAgICBBU1NFUlQob2JqKTsKLSAgICAg
ICAgQVNTRVJUKCFvYmotPndyYXBwZXIoKSk7Ci0gICAgICAgIEFTU0VSVCh3cmFwcGVyLldyYXBw
ZXJDbGFzc0lkKCkgPT0gdjhET01TdWJ0cmVlQ2xhc3NJZCk7Ci0gICAgICAgIHY4OjpQZXJzaXN0
ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG1fdGFibGUuYWRkKHdyYXBwZXIpOwotICAgICAgICBv
YmotPnNldFdyYXBwZXIoZW50cnkpOwotICAgICAgICB3cmFwcGVyLk1ha2VXZWFrKG9iaiwgd2Vh
a1JlZmVyZW5jZUNhbGxiYWNrKCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjb250YWlu
cyhOb2RlKiBvYmopCisgICAgdmlydHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBnZXQo
Tm9kZSogbm9kZSkgT1ZFUlJJREUKICAgICB7Ci0gICAgICAgIHJldHVybiBvYmotPndyYXBwZXIo
KTsKKyAgICAgICAgcmV0dXJuIG5vZGUtPndyYXBwZXIoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgVmlzaXRvciogdmlzaXRvcikKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0KE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdy
YXBwZXIpIE9WRVJSSURFCiAgICAgewotICAgICAgICBtX3RhYmxlLnZpc2l0KHN0b3JlLCB2aXNp
dG9yKTsKKyAgICAgICAgQVNTRVJUKG5vZGUgJiYgbm9kZS0+d3JhcHBlcigpLklzRW1wdHkoKSk7
CisgICAgICAgIEFTU0VSVCh3cmFwcGVyLldyYXBwZXJDbGFzc0lkKCkgPT0gdjhET01TdWJ0cmVl
Q2xhc3NJZCk7CisgICAgICAgIG5vZGUtPnNldFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIERP
TVdyYXBwZXJNYXA8Tm9kZT46OnNldChub2RlLCB3cmFwcGVyKTsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgcmVtb3ZlSWZQcmVzZW50KE5vZGUqIG9iaiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4gdmFsdWUpCisgICAgdmlydHVhbCBib29sIHJlbW92ZUlmUHJlc2VudChOb2RlKiBub2Rl
LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB2YWx1ZSkgT1ZFUlJJREUKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChvYmopOwotICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50
cnkgPSBvYmotPndyYXBwZXIoKTsKLSAgICAgICAgaWYgKCFlbnRyeSkKKyAgICAgICAgaWYgKCFE
T01XcmFwcGVyTWFwPE5vZGU+OjpyZW1vdmVJZlByZXNlbnQobm9kZSwgdmFsdWUpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoKmVudHJ5ICE9IHZhbHVlKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBvYmotPmNsZWFyV3JhcHBlcigpOwotICAgICAg
ICBtX3RhYmxlLnJlbW92ZShlbnRyeSk7Ci0gICAgICAgIHZhbHVlLkRpc3Bvc2UoKTsKKyAgICAg
ICAgLy8gTm90aWNlIHRoYXQgd2UgY2FsbCAiY2xlYXJXcmFwcGVyIiBoZXJlIHJhdGhlciB0aGFu
IGRpc3Bvc2VXcmFwcGVyIGJlY2F1c2UKKyAgICAgICAgLy8gb3VyIGJhc2UgY2xhc3Mgd2lsbCBj
YWxsIERpc3Bvc2Ugb24gdGhlIHdyYXBwZXIgZm9yIHVzLgorICAgICAgICBub2RlLT5jbGVhcldy
YXBwZXIoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0KLSAgICB2aXJ0dWFsIHZv
aWQgY2xlYXIoKQotICAgIHsKLSAgICAgICAgbV90YWJsZS5jbGVhcigpOwotICAgIH0KLQotICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpIE9WRVJS
SURFCiAgICAgewotICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcpOwotICAgICAgICBpbmZvLmFkZE1l
bWJlcihtX3RhYmxlKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQotCi1w
cml2YXRlOgotICAgIHN0YXRpYyBpbnQgY29uc3QgbnVtYmVyT2ZFbnRyaWVzID0gKDEgPDwgMTAp
IC0gMTsKLQotICAgIHN0cnVjdCBDaHVua2VkVGFibGVUcmFpdHMgewotICAgICAgICB0eXBlZGVm
IEludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OlZpc2l0b3IgVmlzaXRvcjsKLQotICAgICAgICBzdGF0
aWMgdm9pZCBtb3ZlKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB0YXJnZXQsIHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+KiBzb3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgICp0YXJn
ZXQgPSAqc291cmNlOwotICAgICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUo
KnRhcmdldCk7Ci0gICAgICAgICAgICBBU1NFUlQobm9kZSk7Ci0gICAgICAgICAgICBub2RlLT5z
ZXRXcmFwcGVyKHRhcmdldCk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgdm9pZCBjbGVh
cih2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnkpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKCplbnRyeSk7Ci0gICAgICAgICAgICBB
U1NFUlQobm9kZS0+d3JhcHBlcigpID09IGVudHJ5KTsKLQotICAgICAgICAgICAgbm9kZS0+Y2xl
YXJXcmFwcGVyKCk7Ci0gICAgICAgICAgICBlbnRyeS0+RGlzcG9zZSgpOwotICAgICAgICB9Ci0K
LSAgICAgICAgc3RhdGljIHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5LCBWaXNpdG9yKiB2aXNpdG9yKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50cnkpOwotICAgICAg
ICAgICAgQVNTRVJUKG5vZGUtPndyYXBwZXIoKSA9PSBlbnRyeSk7Ci0KLSAgICAgICAgICAgIHZp
c2l0b3ItPnZpc2l0RE9NV3JhcHBlcihzdG9yZSwgbm9kZSwgKmVudHJ5KTsKLSAgICAgICAgfQot
ICAgIH07Ci0KLSAgICB0eXBlZGVmIENodW5rZWRUYWJsZTx2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiwgbnVtYmVyT2ZFbnRyaWVzLCBDaHVua2VkVGFibGVUcmFpdHM+IFRhYmxlOwotICAgIFRh
YmxlIG1fdGFibGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDI5MTVjYzdjOGU5MzIyNzQ2
ZDkwMzMzMDhkZmNkNGMyMDMxNzNlYjguLjRiMGRmMjE2Y2E5ZTVhODY5ZjljZjY5ZWJlNzhmZWVm
NjE4NDI3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdy
YXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJs
ZS5oCkBAIC0zOCwyOSArMzgsNDIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3Jp
cHRXcmFwcGFibGUgewogcHVibGljOgotICAgIFNjcmlwdFdyYXBwYWJsZSgpIDogbV93cmFwcGVy
KDApIHsgfQorICAgIFNjcmlwdFdyYXBwYWJsZSgpCisgICAgeworICAgIH0KIAotICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3cmFwcGVyKCkgY29uc3QKKyAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6T2JqZWN0PiB3cmFwcGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3dy
YXBwZXI7CiAgICAgfQogCi0gICAgdm9pZCBzZXRXcmFwcGVyKHY4OjpQZXJzaXN0ZW50PHY4OjpP
YmplY3Q+KiB3cmFwcGVyKQorICAgIHZvaWQgc2V0V3JhcHBlcih2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKHdyYXBwZXIpOworICAgICAg
ICBBU1NFUlQoIXdyYXBwZXIuSXNFbXB0eSgpKTsKICAgICAgICAgbV93cmFwcGVyID0gd3JhcHBl
cjsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyV3JhcHBlcigpIHsgbV93cmFwcGVyID0gMDsgfQor
ICAgIHZvaWQgY2xlYXJXcmFwcGVyKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV93cmFwcGVy
LklzRW1wdHkoKSk7CisgICAgICAgIG1fd3JhcHBlci5DbGVhcigpOworICAgIH0KKworICAgIHZv
aWQgZGlzcG9zZVdyYXBwZXIoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX3dyYXBwZXIuSXNF
bXB0eSgpKTsKKyAgICAgICAgbV93cmFwcGVyLkRpc3Bvc2UoKTsKKyAgICAgICAgbV93cmFwcGVy
LkNsZWFyKCk7CisgICAgfQogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAgTWVtb3J5Q2xh
c3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpE
T00pOwotICAgICAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fd3JhcHBlcik7CisgICAgICAgIGlu
Zm8uYWRkV2Vha1BvaW50ZXIoY29uc3RfY2FzdDx2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pio+
KCZtX3dyYXBwZXIpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4qIG1fd3JhcHBlcjsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBtX3dy
YXBwZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TdGF0aWNET01EYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1N0YXRpY0RPTURhdGFTdG9yZS5oCmluZGV4IGY5YzU3ZmMwZjllY2Y2YTcz
MmNiNDZkYWRlM2VmMmVmNTUyZWNiOGIuLjgxMDkzMDUwZWM3NjYxMDU5ZjhhZWMzNWQzYzJiNDFm
MTdkYmM0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1N0YXRpY0RP
TURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1N0YXRpY0RPTURh
dGFTdG9yZS5oCkBAIC01Miw4ICs1Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCiBwcml2
YXRlOgotICAgIEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgbV9zdGF0aWNEb21Ob2RlTWFwOwotICAg
IEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgbV9zdGF0aWNBY3RpdmVEb21Ob2RlTWFwOworICAgIERP
TU5vZGVXcmFwcGVyTWFwIG1fc3RhdGljRG9tTm9kZU1hcDsKKyAgICBBY3RpdmVET01Ob2RlV3Jh
cHBlck1hcCBtX3N0YXRpY0FjdGl2ZURvbU5vZGVNYXA7CiAgICAgRE9NV3JhcHBlck1hcDx2b2lk
PiBtX3N0YXRpY0RvbU9iamVjdE1hcDsKICAgICBET01XcmFwcGVyTWFwPHZvaWQ+IG1fc3RhdGlj
QWN0aXZlRG9tT2JqZWN0TWFwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmgKaW5kZXggYWQxYmNhZmQ5Y2UwZGNjMWUxYWQxN2FhNmVkNjFmYzUyYmRiMDMxMC4u
ZmFkODJjOTVkYjVkNDk0M2M3MWY0NDNjMWMxNDdkNWUzNmM5ZjgzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKQEAgLTExMywxOCArMTEzLDE1IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICAgICAgICAgIGlmIChMSUtFTFkoIURPTVdyYXBwZXJXb3JsZDo6aXNvbGF0ZWRX
b3JsZHNFeGlzdCgpKSkgewotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+KiB3cmFwcGVyID0gbm9kZS0+d3JhcHBlcigpOwotICAgICAgICAgICAgICAgIGlmIChMSUtF
TFkoISF3cmFwcGVyKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICp3cmFwcGVyOworICAg
ICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBub2RlLT53
cmFwcGVyKCk7CisgICAgICAgICAgICAgICAgaWYgKExJS0VMWSghd3JhcHBlci5Jc0VtcHR5KCkp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgVjhET01XaW5kb3dTaGVsbCogY29udGV4dCA9IFY4RE9NV2luZG93U2hlbGw6
OmdldEVudGVyZWQoKTsKLSAgICAgICAgICAgIGlmIChMSUtFTFkoIWNvbnRleHQpKSB7Ci0gICAg
ICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHdyYXBwZXIgPSBub2RlLT53
cmFwcGVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKCF3cmFwcGVyKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpOwotICAgICAgICAgICAgICAgIHJl
dHVybiAqd3JhcHBlcjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChMSUtFTFkoIWNv
bnRleHQpKQorICAgICAgICAgICAgICAgIHJldHVybiBub2RlLT53cmFwcGVyKCk7CisKICAgICAg
ICAgICAgIERPTURhdGFTdG9yZSogc3RvcmUgPSBjb250ZXh0LT53b3JsZCgpLT5kb21EYXRhU3Rv
cmUoKTsKICAgICAgICAgICAgIERPTU5vZGVNYXBwaW5nJiBkb21Ob2RlTWFwID0gbm9kZS0+aXNB
Y3RpdmVOb2RlKCkgPyBzdG9yZS0+YWN0aXZlRG9tTm9kZU1hcCgpIDogc3RvcmUtPmRvbU5vZGVN
YXAoKTsKICAgICAgICAgICAgIHJldHVybiBkb21Ob2RlTWFwLmdldChub2RlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>