<?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>154683</bug_id>
          
          <creation_ts>2016-02-25 10:15:33 -0800</creation_ts>
          <short_desc>[DFG][FTL][B3] Support floor and ceil</short_desc>
          <delta_ts>2016-03-01 00:09:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>
          
          <blocked>153738</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1168125</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-25 10:15:33 -0800</bug_when>
    <thetext>Math.floor and Math.ceil are frequently called. builtin&apos;s @toInteger always calls @floor with @abs.
And SunSpider and V8 bench also calls the both (especially, Math.floor).
Similarly to the ArithRound, adding ArithFloor and ArithCeil is nice.

If it is added, we can convert DFG ArithFloor and ArithCeil to Identity if the given value is Int32!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168127</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-25 10:18:24 -0800</bug_when>
    <thetext>In x86 SSE 4.2 enabled environment, we can use x86 round op for ceil and floor.
This is already used for Math.round implementation.
And adding Floor B3 op is also nice. Ceil is already added to support Round operation. https://bugs.webkit.org/show_bug.cgi?id=152231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168547</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-26 10:03:43 -0800</bug_when>
    <thetext>*** Bug 154725 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168619</commentid>
    <comment_count>3</comment_count>
      <attachid>272355</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-26 12:31:15 -0800</bug_when>
    <thetext>Created attachment 272355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168621</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 12:34:39 -0800</bug_when>
    <thetext>Attachment 272355 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4422:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168625</commentid>
    <comment_count>5</comment_count>
      <attachid>272357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-26 12:43:04 -0800</bug_when>
    <thetext>Created attachment 272357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168627</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 12:45:46 -0800</bug_when>
    <thetext>Attachment 272357 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4422:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168628</commentid>
    <comment_count>7</comment_count>
      <attachid>272357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-26 12:45:57 -0800</bug_when>
    <thetext>Comment on attachment 272357
Patch

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

Added comments for the review.

&gt; Source/JavaScriptCore/b3/B3LowerMacrosAfterOptimizations.cpp:115
&gt; +

if rounding instruction is not supported, we change it to calling the function. This is the same strategy to Ceil.

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:1833
&gt; +        }

Lower to FloorDouble, FloorFloat.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1148
&gt; +            }

New strength reduction case for Ceil. Ceil(Floor(value)) =&gt; Floor(value).

&gt; Source/JavaScriptCore/b3/testb3.cpp:3371
&gt; +}

Floor(Ceil(value)) =&gt; Ceil(value)

&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:226
&gt; +        out.print(comma, &quot;Rounding:&quot;, node-&gt;arithRoundingMode());

Add ArithRoundingMode printing support.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4429
&gt; +            m_jit.branchConvertDoubleToInt32(resultFPR, resultGPR, failureCases, scratchFPR, shouldCheckNegativeZero(node-&gt;arithRoundingMode()));

Emit negative zero check operation only when `shouldCheckNegativeZero(node-&gt;arithRoundingMode())` == true.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4442
&gt; +            if (producesInteger(node-&gt;arithRoundingMode()) &amp;&amp; !shouldCheckNegativeZero(node-&gt;arithRoundingMode())) {

If the negative zero is not considered, we can use `floor(value + 0.5)` for `round(value)`.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:1886
&gt; +        if (producesInteger(m_node-&gt;arithRoundingMode()) &amp;&amp; !shouldCheckNegativeZero(m_node-&gt;arithRoundingMode())) {

Adding `floor(value + 0.5)` case to FTL.

&gt; Websites/webkit.org/docs/b3/intermediate-representation.html:277
&gt; +

Add new B3 IR, Floor!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168678</commentid>
    <comment_count>8</comment_count>
      <attachid>272357</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-02-26 14:12:10 -0800</bug_when>
    <thetext>Comment on attachment 272357
Patch

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

r=me

Probably good to get Ben or Phil to look at this too.

&gt; Source/JavaScriptCore/b3/B3LowerMacrosAfterOptimizations.cpp:117
&gt; +                double (*floorDouble)(double) = floor;

Does this need a local variable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168859</commentid>
    <comment_count>9</comment_count>
      <attachid>272412</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-27 01:14:34 -0800</bug_when>
    <thetext>Created attachment 272412
Performance results

Performance results. Looks neutral if Math.round, floor, ceil is not related.
Kraken audio oscillator shows better performance because it includes many Math.round, Math.floor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168860</commentid>
    <comment_count>10</comment_count>
      <attachid>272357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-27 01:15:52 -0800</bug_when>
    <thetext>Comment on attachment 272357
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/b3/B3LowerMacrosAfterOptimizations.cpp:117
&gt;&gt; +                double (*floorDouble)(double) = floor;
&gt; 
&gt; Does this need a local variable?

Unnecessary. I&apos;ll drop this and use floor directly (And I&apos;ll apply the same change to Ceil).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169207</commentid>
    <comment_count>11</comment_count>
      <attachid>272357</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-29 10:54:30 -0800</bug_when>
    <thetext>Comment on attachment 272357
Patch

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

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1191
&gt; +            // Turn this: Floor(Ceil(value))
&gt; +            // Into this: Ceil(value)
&gt; +            if (m_value-&gt;child(0)-&gt;opcode() == Ceil) {
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));
&gt; +                break;
&gt; +            }
&gt; +
&gt; +            // Turn this: Floor(IToD(value))
&gt; +            // Into this: IToD(value)
&gt; +            //
&gt; +            // That works for Int64 because both ARM64 and x86_64
&gt; +            // perform rounding when converting a 64bit integer to double.
&gt; +            if (m_value-&gt;child(0)-&gt;opcode() == IToD) {
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));
&gt; +                break;
&gt; +            }

Please restructure this code in terms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169209</commentid>
    <comment_count>12</comment_count>
      <attachid>272357</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-29 10:56:07 -0800</bug_when>
    <thetext>Comment on attachment 272357
Patch

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

&gt;&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1191
&gt;&gt; +            }
&gt; 
&gt; Please restructure this code in terms

Ugh.  I hate bugzilla sometimes.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1192
&gt; +            // Turn this: Floor(Floor(value))
&gt; +            // Into this: Floor(value)
&gt; +            if (m_value-&gt;child(0)-&gt;opcode() == Floor) {
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));
&gt; +                break;
&gt; +            }
&gt; +
&gt; +            // Turn this: Floor(Ceil(value))
&gt; +            // Into this: Ceil(value)
&gt; +            if (m_value-&gt;child(0)-&gt;opcode() == Ceil) {
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));
&gt; +                break;
&gt; +            }
&gt; +
&gt; +            // Turn this: Floor(IToD(value))
&gt; +            // Into this: IToD(value)
&gt; +            //
&gt; +            // That works for Int64 because both ARM64 and x86_64
&gt; +            // perform rounding when converting a 64bit integer to double.
&gt; +            if (m_value-&gt;child(0)-&gt;opcode() == IToD) {
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));
&gt; +                break;
&gt; +            }
&gt; +            break;

Please restructure this code around a single predicate: &quot;is a floating value already rounded?&quot;

You can add it as a method to B3::Value.  Then you can replace all of these rules with:

if (m_value-&gt;child(0)-&gt;isRounded()) {
    m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));
    m_changed = true;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169210</commentid>
    <comment_count>13</comment_count>
      <attachid>272357</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-29 10:58:03 -0800</bug_when>
    <thetext>Comment on attachment 272357
Patch

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

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1146
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));

This is wrong, it doesn&apos;t set m_changed to true.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1172
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));

This is wrong - it doesn&apos;t set m_changed to true.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1179
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));

Ditto.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1189
&gt; +                m_value-&gt;replaceWithIdentity(m_value-&gt;child(0));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169218</commentid>
    <comment_count>14</comment_count>
      <attachid>272506</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-29 11:39:41 -0800</bug_when>
    <thetext>Created attachment 272506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169220</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-29 11:42:46 -0800</bug_when>
    <thetext>Attachment 272506 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4422:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169223</commentid>
    <comment_count>16</comment_count>
      <attachid>272506</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-29 11:47:41 -0800</bug_when>
    <thetext>Comment on attachment 272506
Patch

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

Thanks for reviews! Updated the patch.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1090
&gt; +                replaceWithIdentity(m_value-&gt;child(0));

Hm, this also misses `m_change = true`.
To reduce such mistakes, I introduced `replaceWithIdentity(newNode)` member function for this pass.
It peforms `m_value-&gt;replaceWithIdentity(newNode)` and set `m_changed = true`.
This is similar to `replaceWithNewValue(newNode)`.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1122
&gt; +            if (m_value-&gt;child(0)-&gt;isRounded()) {

Restructure Ceil part.

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:1138
&gt; +            if (m_value-&gt;child(0)-&gt;isRounded()) {

Restructure Floor part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169224</commentid>
    <comment_count>17</comment_count>
      <attachid>272506</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-02-29 11:53:03 -0800</bug_when>
    <thetext>Comment on attachment 272506
Patch

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

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:2096
&gt; +    void replaceWithIdentity(Value* newValue)
&gt; +    {
&gt; +        m_value-&gt;replaceWithIdentity(newValue);
&gt; +        m_changed = true;
&gt; +    }

Nice!

&gt; Source/JavaScriptCore/b3/B3Value.cpp:366
&gt; +    switch (opcode()) {

Above here, you should ASSERT that isFloat(type()).

&gt; Source/JavaScriptCore/b3/B3Value.cpp:370
&gt; +        return true;

You should add cases for Const32Float and Const64Float, or add a FIXME about adding them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169226</commentid>
    <comment_count>18</comment_count>
      <attachid>272506</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-29 12:02:35 -0800</bug_when>
    <thetext>Comment on attachment 272506
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/b3/B3Value.cpp:366
&gt;&gt; +    switch (opcode()) {
&gt; 
&gt; Above here, you should ASSERT that isFloat(type()).

Oh! That&apos;s nice. Inserted.

&gt;&gt; Source/JavaScriptCore/b3/B3Value.cpp:370
&gt;&gt; +        return true;
&gt; 
&gt; You should add cases for Const32Float and Const64Float, or add a FIXME about adding them.

That&apos;s nice. When ConstFloat / ConstDouble comes, we can check the constant value is rounded or not by `constValue == ceil(constValue)` (double case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169336</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-29 18:30:43 -0800</bug_when>
    <thetext>Committed r197380: &lt;http://trac.webkit.org/changeset/197380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169383</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-03-01 00:09:03 -0800</bug_when>
    <thetext>Originally this patch is introduced for @toInteger. But it also optimizes kraken-oscillator! (Since it calls Math.round and Math.floor a lot!)
https://arewefastyet.com/#machine=29&amp;view=single&amp;suite=kraken&amp;subtest=oscillator</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272355</attachid>
            <date>2016-02-26 12:31:15 -0800</date>
            <delta_ts>2016-02-26 12:42:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154683-20160227053057.patch</filename>
            <type>text/plain</type>
            <size>99428</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZGJjYTc3ZmVhZDZhNjVjY2FkYTcwMTc5ZjhjYmMwNDdmYjQ0ZmQwLi41NzJlZjQwNjRlNmY2OTFl
MDljNjdhM2MwMDQzMGU4NzNiNDA0OTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDAgQEAKKzIwMTYtMDItMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0RGR11bRlRMXVtCM10gU3VwcG9ydCBmbG9vciBhbmQgY2VpbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIGFuZCBmaXhlcyB0aGUgZm9sbG93aW5nIHRoaW5ncy4KKworICAgICAgICAx
LiBJbXBsZW1lbnQgQ2VpbCBhbmQgRmxvb3IgaW4gREZHLCBGVEwgYW5kIEIzCisKKyAgICAgICAg
eDg2IFNTRSA0LjIgYW5kIEFSTTY0IGhhdmUgcm91bmQgaW5zdHJ1Y3Rpb25zIHRoYXQgY2FuIGRp
cmVjdGx5IHBlcmZvcm0gQ2VpbCBvciBGbG9vci4KKyAgICAgICAgVGhpcyBwYXRjaCBsZXZlcmFn
ZXMgdGhpcyBmdW5jdGlvbmFsaXR5LiBXZSBpbnRyb2R1Y2UgQXJpdGhGbG9vciBhbmQgQXJpdGhD
ZWlsLgorICAgICAgICBEdXJpbmcgREZHIHBoYXNlLCB0aGVzZSBub2RlcyBhdHRlbXB0IHRvIGNv
bnZlcnQgaXRzZWxmIHRvIElkZW50aXR5IChpbiBGaXh1cCBwaGFzZSkuCisgICAgICAgIEFzIHRo
ZSBzYW1lIHRvIEFyaXRoUm91bmQsIGl0IHRyYWNrcyBhcml0aCByb3VuZGluZyBtb2RlLgorICAg
ICAgICBBbmQgaWYgdGhlc2Ugbm9kZXMgYXJlIHJlcXVpcmVkIHRvIGVtaXQgbWFjaGluZSBjb2Rl
cywgd2UgZW1pdCByb3VuZGluZyBtYWNoaW5lIGNvZGUKKyAgICAgICAgaWYgaXQgaXMgc3VwcG9y
dGVkIGluIHRoZSBjdXJyZW50IG1hY2hpbmUuIEZvciBleGFtcGxlLCBpbiB4ODYsIHdlIGVtaXQg
YHJvdW5kYC4KKworICAgICAgICAyLiBJbXBsZW1lbnQgRmxvb3IgaW4gQjMgYW5kIEFpcgorCisg
ICAgICAgIEFzIHRoZSBzYW1lIHRvIENlaWwgaW4gQjMsIHdlIGFkZCBhIG5ldyBCMyBJUiBhbmQg
QWlyIG9wY29kZSwgRmxvb3IuCisgICAgICAgIFRoaXMgRmxvb3IgaXMgbGV2ZXJhZ2VkIHRvIGlt
cGxlbWVudCBBcml0aEZsb29yIGluIERGRy4KKworICAgICAgICAzLiBGaXggQXJpdGhSb3VuZCBv
cGVyYXRpb24KKworICAgICAgICBDdXJyZW50bHksIHdlIHVzZWQgY3Z0c2Qyc2kgKGluIHg4Nikg
dG8gY29udmVydCBkb3VibGUgdmFsdWUgdG8gaW50MzIuCisgICAgICAgIEFuZCB3ZSBhbHNvIHVz
ZWQgdGhpcyB0byBpbXBsZW1lbnQgTWF0aC5yb3VuZCwgbGlrZSwgY3Z0c2Qyc2kodmFsdWUgKyAw
LjUpLgorICAgICAgICBIb3dldmVyLCB0aGlzIGltcGxlbWVudGF0aW9uIGlzIG5vdCBjb3JyZWN0
LiBCZWNhdXNlIGN2dHNkMnNpIGlzIG5vdCBmbG9vciBvcGVyYXRpb24uCisgICAgICAgIEl0IGlz
IHRydWNhdGUgb3BlcmF0aW9uLiBUaGlzIGlzIE9LIGZvciBwb3NpdGl2ZSBudW1iZXJzLiBCdXQg
TkcgZm9yIG5lZ2F0aXZlIG51bWJlcnMuCisgICAgICAgIEZvciBleGFtcGxlLCB0aGUgY3VycmVu
dCBpbXBsZW1lbnRhdGlvbiBhY2NpZGVudGFsbHkgcm91bmRzIGAtMC42YCB0byBgLTAuMGAuIFRo
aXMgc2hvdWxkIGJlIGAtMS4wYC4KKyAgICAgICAgVXNpbmcgQ2VpbCBhbmQgRmxvb3IgaW5zdHJ1
Y3Rpb25zLCB3ZSBpbXBsZW1lbnQgY29ycmVjdCBBcml0aFJvdW5kLgorCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNOjpjZWlsRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk06OmZsb29yRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnN1cHBv
cnRzRmxvYXRpbmdQb2ludENlaWwpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN1
cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6Zmxvb3JGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OnN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk12Nzo6Y2VpbERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNdjc6OmZsb29yRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6
c3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCk6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6
OmNlaWxEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmZsb29yRG91
YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdXBwb3J0c0Zsb2F0aW5n
UG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9y
dHNGbG9hdGluZ1BvaW50Q2VpbCk6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyU0g0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdXBwb3J0
c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0
OjpjZWlsRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OmZsb29yRG91
YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRmxvYXRpbmdQ
b2ludENlaWwpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6Zmxvb3JE
b3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6Zmxvb3JGbG9h
dCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKTogRGVsZXRlZC4KKyAgICAgICAgKiBiMy9CM0Nv
bnN0RG91YmxlVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3REb3VibGVWYWx1ZTo6
Zmxvb3JDb25zdGFudCk6CisgICAgICAgICogYjMvQjNDb25zdERvdWJsZVZhbHVlLmg6CisgICAg
ICAgICogYjMvQjNDb25zdEZsb2F0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3RG
bG9hdFZhbHVlOjpmbG9vckNvbnN0YW50KToKKyAgICAgICAgKiBiMy9CM0NvbnN0RmxvYXRWYWx1
ZS5oOgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3NBZnRlck9wdGltaXphdGlvbnMuY3BwOgor
ICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxv
d2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChX
VEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICog
YjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9CM1Zh
bHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpmbG9vckNvbnN0YW50KToKKyAgICAg
ICAgKEpTQzo6QjM6OlZhbHVlOjplZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpr
ZXkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAgICAqIGIzL0Iz
VmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvdGVz
dGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckNlaWxBcmcpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEZsb29yQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckltbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEZsb29yRmxvb3JBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxGbG9vckFyZyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JJVG9ENjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEZsb29ySVRvRDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckFyZ1dpdGhVc2VsZXNz
RG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JBcmdXaXRoRWZm
ZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjpydW4pOgorICAgICAg
ICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0FyaXRoTW9kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50
SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdBcml0aE1vZGUuaDoKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgor
ICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0Mu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6Cisg
ICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZHVt
cCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6
OnJvdW5kU2hvdWxkU3BlY3VsYXRlSW50MzIpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6YXJpdGhOb2RlRmxhZ3MpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNBcml0aFJvdW5kaW5nTW9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAg
ICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAg
KiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1
dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW5nKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91bmQpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlQXJpdGhSb3VuZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVBcml0aEZsb29yKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUFyaXRoQ2VpbCk6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgor
ICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlRmxvb3IpOgorICAgICAgICAqIGppdC9U
aHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpjZWlsVGh1bmtHZW5lcmF0b3IpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYXJpdGgtcm91bmRpbmctbW9kZS5qczog
QWRkZWQuCisgICAgICAgIChmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KToKKyAgICAg
ICAgKGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk6CisgICAgICAgICh3YXJtdXAp
OgorICAgICAgICAodmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9tYXRoLWNlaWwtYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKG1hdGhDZWls
T25JbnRlZ2Vycyk6CisgICAgICAgIChtYXRoQ2VpbE9uRG91Ymxlcyk6CisgICAgICAgIChtYXRo
Q2VpbE9uQm9vbGVhbnMpOgorICAgICAgICAodXNlbGVzc01hdGhDZWlsKToKKyAgICAgICAgKG1h
dGhDZWlsV2l0aE92ZXJmbG93KToKKyAgICAgICAgKG1hdGhDZWlsQ29uc3VtZWRBc0RvdWJsZSk6
CisgICAgICAgIChtYXRoQ2VpbERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8pOgorICAgICAgICAo
bWF0aENlaWxOb0FyZ3VtZW50cyk6CisgICAgICAgIChtYXRoQ2VpbFRvb01hbnlBcmd1bWVudHMp
OgorICAgICAgICAodGVzdE1hdGhDZWlsT25Db25zdGFudHMpOgorICAgICAgICAobWF0aENlaWxT
dHJ1Y3RUcmFuc2l0aW9uKToKKyAgICAgICAgKE1hdGguY2VpbCk6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL21hdGgtZmxvb3ItYXJpdGgtcm91bmRpbmctbW9kZS5qczogQWRkZWQuCisgICAgICAg
IChmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KToKKyAgICAgICAgKGZpcnN0RG9Ob3RD
YXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk6CisgICAgICAgICh3YXJtdXApOgorICAgICAgICAodmVy
aWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRo
LWZsb29yLWJhc2ljcy5qczogQWRkZWQuCisgICAgICAgIChtYXRoRmxvb3JPbkludGVnZXJzKToK
KyAgICAgICAgKG1hdGhGbG9vck9uRG91Ymxlcyk6CisgICAgICAgIChtYXRoRmxvb3JPbkJvb2xl
YW5zKToKKyAgICAgICAgKHVzZWxlc3NNYXRoRmxvb3IpOgorICAgICAgICAobWF0aEZsb29yV2l0
aE92ZXJmbG93KToKKyAgICAgICAgKG1hdGhGbG9vckNvbnN1bWVkQXNEb3VibGUpOgorICAgICAg
ICAobWF0aEZsb29yRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyk6CisgICAgICAgIChtYXRoRmxv
b3JOb0FyZ3VtZW50cyk6CisgICAgICAgIChtYXRoRmxvb3JUb29NYW55QXJndW1lbnRzKToKKyAg
ICAgICAgKHRlc3RNYXRoRmxvb3JPbkNvbnN0YW50cyk6CisgICAgICAgIChtYXRoRmxvb3JTdHJ1
Y3RUcmFuc2l0aW9uKToKKyAgICAgICAgKE1hdGguZmxvb3IpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9tYXRoLXJvdW5kLXNob3VsZC1ub3QtdXNlLXRydW5jYXRlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKG1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8pOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9tYXRoLXJvdW5kaW5nLWluZmluaXR5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3Vs
ZEJlKToKKyAgICAgICAgKHRlc3RSb3VuZCk6CisgICAgICAgICh0ZXN0Rmxvb3IpOgorICAgICAg
ICAodGVzdENlaWwpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5hbi5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0Um91bmQpOgorICAg
ICAgICAodGVzdEZsb29yKToKKyAgICAgICAgKHRlc3RDZWlsKToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvbWF0aC1yb3VuZGluZy1uZWdhdGl2ZS16ZXJvLmpzOiBBZGRlZC4KKyAgICAgICAgKHNo
b3VsZEJlKToKKyAgICAgICAgKHRlc3RSb3VuZCk6CisgICAgICAgICh0ZXN0Rmxvb3IpOgorICAg
ICAgICAodGVzdENlaWwpOgorICAgICAgICAodGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvKToKKyAg
ICAgICAgKHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIpOgorCiAyMDE2LTAyLTI1ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbSlNDXSBUZW1wb3Jh
bCBEZWFkIFpvbmUgY2hlY2tzIG9uICJ0aGlzIiBhcmUgZWxpbWluYXRlZCB3aGVuIGRvaW5nIE9T
UiBFbnRyeSB0byBGVEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk0uaAppbmRleCBjNThjZjhhZWU3MjBmMzRkNzFjYmQ1ZTA2MDVkZTc3
ZDRjYjA2ZWY5Li45N2QyMTBlMjdiNGQ4OWUwMWFkMmE0NTcyNzc5YmZjOWZiMjdmYTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TS5oCkBAIC0xMTM5LDcgKzExMzksNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTSA6IHB1Ymxp
YyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFSTUFzc2VtYmxlciwgTWFjcm9Bc3NlbQogICAgICAg
ICByZXR1cm4gc19pc1ZGUFByZXNlbnQ7CiAgICAgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludEFicygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgdm9pZCBsb2FkRmxvYXQoQmFzZUluZGV4IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKQEAgLTExNjQsNyArMTE2NCwxMyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTSA6IHB1
YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFSTUFzc2VtYmxlciwgTWFjcm9Bc3NlbQogCiAg
ICAgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIGNlaWxEb3VibGUoRlBSZWdpc3RlcklELCBG
UFJlZ2lzdGVySUQpCiAgICAgewotICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRpbmdQb2lu
dENlaWwoKSk7CisgICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmco
KSk7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCisgICAgTk9fUkVUVVJOX0RVRV9UT19DUkFT
SCB2b2lkIGZsb29yRG91YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKCFzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKTsKICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggYTU5MGI0NDc3NzExZDI4Zjk1ODI4YjA5
NDc2NDY5ZDQ0OGE0ZDkzZi4uNTk3NzYxMzUzMjM3MjI4YTFhYWE4OWYyN2E4YWU4OTViNjUxNTNl
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmgKQEAgLTEzNDMsNyArMTM0Myw3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVy
QVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBUk02NEFzc2VtYmxlciwgTWFj
cm9BCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgp
IHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRB
YnMoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50Q2VpbCgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRSb3VuZGluZygpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGVudW0gQnJhbmNoVHJ1
bmNhdGVUeXBlIHsgQnJhbmNoSWZUcnVuY2F0ZUZhaWxlZCwgQnJhbmNoSWZUcnVuY2F0ZVN1Y2Nl
c3NmdWwgfTsKIApAQCAtMTM5OSw2ICsxMzk5LDExIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJN
NjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBUk02NEFzc2VtYmxlciwgTWFjcm9B
CiAgICAgICAgIG1fYXNzZW1ibGVyLmZyaW50bTw2ND4oZGVzdCwgc3JjKTsKICAgICB9CiAKKyAg
ICB2b2lkIGZsb29yRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCisg
ICAgeworICAgICAgICBtX2Fzc2VtYmxlci5mcmludG08MzI+KGRlc3QsIHNyYyk7CisgICAgfQor
CiAgICAgLy8gQ29udmVydCAnc3JjJyB0byBhbiBpbnRlZ2VyLCBhbmQgcGxhY2VzIHRoZSByZXN1
bHRpbmcgJ2Rlc3QnLgogICAgIC8vIElmIHRoZSByZXN1bHQgaXMgbm90IHJlcHJlc2VudGFibGUg
YXMgYSAzMiBiaXQgdmFsdWUsIGJyYW5jaC4KICAgICAvLyBNYXkgYWxzbyBicmFuY2ggZm9yIHNv
bWUgdmFsdWVzIHRoYXQgYXJlIHJlcHJlc2VudGFibGUgaW4gMzIgYml0cwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRl
eCBjMDc1ODUyMDRlMjVlZTk5ZWYzYzA5M2FlMzU4NTJhMDJkZmZiYzJhLi5mYzk0Yjg4OGRlMzVl
NTk3NGJjMDVkYjE2NTY0ODMxMjc5NWE3ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtODcwLDcgKzg3MCw3
IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNdjcgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBUk12N0Fzc2VtYmxlciwgTWFjcm9BCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9h
dGluZ1BvaW50VHJ1bmNhdGUoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50U3FydCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC0xMDYzLDcgKzEwNjMsMTMgQEAgY2xhc3MgTWFjcm9B
c3NlbWJsZXJBUk12NyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFSTXY3QXNzZW1i
bGVyLCBNYWNyb0EKIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBjZWlsRG91Ymxl
KEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRDZWlsKCkpOworICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRp
bmdQb2ludFJvdW5kaW5nKCkpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIE5PX1JF
VFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBmbG9vckRvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0
ZXJJRCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRp
bmcoKSk7CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCA5YjM3NTY0ZDUx
ZjhhZmE0NGFjNWQyODcyYTNkODkzYmI5YzYzNjdhLi43YzRiZDA4MGRmMTM0M2I4ZWFlZDBmNTAy
MjRkMmEyYTk5YmRlOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTY0OSw3ICs2NDksMTMgQEAgY2xhc3MgTWFj
cm9Bc3NlbWJsZXJNSVBTIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8TUlQU0Fzc2Vt
YmxlciwgTWFjcm9Bc3MKIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBjZWlsRG91
YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKCkpOworICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxv
YXRpbmdQb2ludFJvdW5kaW5nKCkpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIE5P
X1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBmbG9vckRvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVn
aXN0ZXJJRCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91
bmRpbmcoKSk7CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCkBAIC0xMjM3LDcgKzEyNDMsNyBA
QCBjbGFzcyBNYWNyb0Fzc2VtYmxlck1JUFMgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
cjxNSVBTQXNzZW1ibGVyLCBNYWNyb0FzcwogI2VuZGlmCiAgICAgfQogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gU3RhY2sgbWFuaXB1bGF0aW9uIG9wZXJhdGlvbnM6CiAgICAgLy8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJT
SDQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQu
aAppbmRleCAwZjQ2ZjhmNWEwMWI4NGUzZDJkODVlMzM5NzNhZmY4ZTFjMjUyYWUxLi43NTc1NjA5
NWI4MDAzOTBkZGE5ZWM3ZGU4MzE5OTAyNTdkNjEzYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyU0g0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oCkBAIC0xMDkxLDcgKzEw
OTEsNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclNINCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyPFNINEFzc2VtYmxlciwgTWFjcm9Bc3NlbQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHN0
YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKCkgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIHZvaWQgbW92ZURvdWJsZVRvSW50cyhGUFJlZ2lzdGVySUQgc3JjLCBS
ZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQogICAgIHsKQEAgLTE1NzcsNyArMTU3
NywxMyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclNINCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyPFNINEFzc2VtYmxlciwgTWFjcm9Bc3NlbQogCiAgICAgTk9fUkVUVVJOX0RVRV9UT19D
UkFTSCB2b2lkIGNlaWxEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpCiAgICAgewot
ICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSk7CisgICAgICAgIEFT
U0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSk7CisgICAgICAgIENSQVNIKCk7
CisgICAgfQorCisgICAgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIGZsb29yRG91YmxlKEZQ
UmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFzdXBwb3J0
c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKTsKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaAppbmRleCAzZWY5ODg1NjQxNTI2OGZkOTJhODA4MzU4MGY4ODZmZDE5OWM1
ZDZjLi45YjVhZjZhNDNiZWMzYzA4ZDIyZDU4MGQ5MWYyNTljZDdiNTIzMjE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCkBAIC02OTYsNiArNjk2LDI2IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8WDg2QXNzZW1ibGVyLCBNYWNyCiAg
ICAgICAgIG1fYXNzZW1ibGVyLnJvdW5kc3NfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRzdCwg
WDg2QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZEluZmluaXRpKTsKICAgICB9CiAKKyAg
ICB2b2lkIGZsb29yRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisg
ICAgeworICAgICAgICBtX2Fzc2VtYmxlci5yb3VuZHNkX3JyKHNyYywgZHN0LCBYODZBc3NlbWJs
ZXI6OlJvdW5kaW5nVHlwZTo6VG93YXJkTmVnYXRpdmVJbmZpbml0aSk7CisgICAgfQorCisgICAg
dm9pZCBmbG9vckRvdWJsZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLnJvdW5kc2RfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRzdCwg
WDg2QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZE5lZ2F0aXZlSW5maW5pdGkpOworICAg
IH0KKworICAgIHZvaWQgZmxvb3JGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQg
ZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucm91bmRzc19ycihzcmMsIGRzdCwgWDg2
QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZE5lZ2F0aXZlSW5maW5pdGkpOworICAgIH0K
KworICAgIHZvaWQgZmxvb3JGbG9hdChBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAg
ICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnJvdW5kc3NfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2Us
IGRzdCwgWDg2QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZE5lZ2F0aXZlSW5maW5pdGkp
OworICAgIH0KKwogICAgIC8vIE1lbW9yeSBhY2Nlc3Mgb3BlcmF0aW9uczoKICAgICAvLwogICAg
IC8vIExvYWRzIGFyZSBvZiB0aGUgZm9ybSBsb2FkKGFkZHJlc3MsIGRlc3RpbmF0aW9uKSBhbmQg
c3RvcmVzIG9mIHRoZSBmb3JtCkBAIC0yMzAwLDcgKzIzMjAsNyBAQCBjbGFzcyBNYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbiA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPFg4NkFzc2VtYmxl
ciwgTWFjcgogICAgICAgICByZXR1cm4gWDg2QXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRT
aXplKCk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2Vp
bCgpCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKQogICAg
IHsKICAgICAgICAgaWYgKHNfc3NlNF8xQ2hlY2tTdGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6Ok5v
dENoZWNrZWQpIHsKICAgICAgICAgICAgIGludCBmbGFncyA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwCmluZGV4IGY5Y2UyOTZlY2NmYzk4
YmM4NDE4YWI4NTY3MjA4ZDA1ZDVlMDg4NjUuLjQ2MTgzZjMzNGExZGI5ODNlNGI0MTg0Y2JhMzhk
OGFjODlkMmQ3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0
RG91YmxlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91
YmxlVmFsdWUuY3BwCkBAIC05Nyw2ICs5NywxMSBAQCBWYWx1ZSogQ29uc3REb3VibGVWYWx1ZTo6
Y2VpbENvbnN0YW50KFByb2NlZHVyZSYgcHJvYykgY29uc3QKICAgICByZXR1cm4gcHJvYy5hZGQ8
Q29uc3REb3VibGVWYWx1ZT4ob3JpZ2luKCksIGNlaWwobV92YWx1ZSkpOwogfQogCitWYWx1ZSog
Q29uc3REb3VibGVWYWx1ZTo6Zmxvb3JDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RG91YmxlVmFsdWU+KG9yaWdpbigpLCBmbG9vciht
X3ZhbHVlKSk7Cit9CisKIFZhbHVlKiBDb25zdERvdWJsZVZhbHVlOjpzcXJ0Q29uc3RhbnQoUHJv
Y2VkdXJlJiBwcm9jKSBjb25zdAogewogICAgIHJldHVybiBwcm9jLmFkZDxDb25zdERvdWJsZVZh
bHVlPihvcmlnaW4oKSwgc3FydChtX3ZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb25zdERvdWJsZVZhbHVlLmgKaW5kZXggYjJjYjI0NmVlNmVhZWI1MmM4ZjAyMjBiOTE0
ZGU2Y2IyNWFkZDcyZS4uZThlYTUzOWQ1MWFmNzZkOTViODBiNDIzNDBjOTBkYWFkNzZkZWU2YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91YmxlVmFsdWUuaApAQCAt
NTIsNiArNTIsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBDb25zdERvdWJsZVZhbHVlIDog
cHVibGljIFZhbHVlIHsKICAgICBWYWx1ZSogZG91YmxlVG9GbG9hdENvbnN0YW50KFByb2NlZHVy
ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFZhbHVlKiBhYnNDb25zdGFudChQcm9jZWR1cmUmKSBj
b25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSogY2VpbENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
IG92ZXJyaWRlOworICAgIFZhbHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFZhbHVlKiBzcXJ0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25z
dEZsb2F0VmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZh
bHVlLmNwcAppbmRleCA0NGY2NDAzMzc2ZGMzZTJjODdhOTYxMWFiZDIzMWQzMzRhY2VlZDQ1Li43
YzFiMzk1ZDUxNDMyN2MwOGExYTJjY2ZhMTllYmIxMTk3YTg1YjVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdEZsb2F0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRWYWx1ZS5jcHAKQEAgLTk3LDYgKzk3LDExIEBA
IFZhbHVlKiBDb25zdEZsb2F0VmFsdWU6OmNlaWxDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNv
bnN0CiAgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIGNlaWxm
KG1fdmFsdWUpKTsKIH0KIAorVmFsdWUqIENvbnN0RmxvYXRWYWx1ZTo6Zmxvb3JDb25zdGFudChQ
cm9jZWR1cmUmIHByb2MpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RmxvYXRW
YWx1ZT4ob3JpZ2luKCksIGZsb29yZihtX3ZhbHVlKSk7Cit9CisKIFZhbHVlKiBDb25zdEZsb2F0
VmFsdWU6OnNxcnRDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHByb2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIHN0YXRpY19jYXN0PGZsb2F0Pihz
cXJ0KG1fdmFsdWUpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b25zdEZsb2F0VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRW
YWx1ZS5oCmluZGV4IDQ0MGJkNjE4NjU2YzRkNjEwYzBhM2ExYWZmZTA2ZDk1MDA3NWNjYmMuLjM2
NjczY2FmZTcwNjYxNmJkYmJmMmNiNWVkZGE1NDZiOWFhMjk4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRWYWx1ZS5oCkBAIC01MSw2ICs1MSw3IEBAIGNsYXNz
IEpTX0VYUE9SVF9QUklWQVRFIENvbnN0RmxvYXRWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CiAgICAg
VmFsdWUqIGZsb2F0VG9Eb3VibGVDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsK
ICAgICBWYWx1ZSogYWJzQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
VmFsdWUqIGNlaWxDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKKyAgICBWYWx1
ZSogZmxvb3JDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSog
c3FydENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVHJpU3RhdGUg
ZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3NBZnRlck9wdGltaXph
dGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3NBZnRlck9w
dGltaXphdGlvbnMuY3BwCmluZGV4IDViMmQ5MGI2OTFmMjM3N2VmYjljYTM5ZmRjYzNkM2I4M2Ji
NjJjNmIuLjdlMzc4NWMzMmI3MzJiMjA1YTMzNTg0NTRkZTQ5MGNiNDgxNzQ5ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zQWZ0ZXJPcHRpbWl6YXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvc0FmdGVy
T3B0aW1pemF0aW9ucy5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgY2xhc3MgTG93ZXJNYWNyb3Mgewog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBD
ZWlsOiB7Ci0gICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRDZWlsKCkpCisgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyOjpzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgICAgIFZhbHVlKiBmdW5jdGlvbkFkZHJlc3MgPSBudWxscHRyOwpAQCAt
MTA5LDYgKzEwOSwyOCBAQCBjbGFzcyBMb3dlck1hY3JvcyB7CiAgICAgICAgICAgICAgICAgbV92
YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShyZXN1bHQpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBGbG9vcjogeworICAgICAgICAgICAg
ICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSkK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBWYWx1ZSogZnVu
Y3Rpb25BZGRyZXNzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBkb3VibGUgKCpmbG9vckRv
dWJsZSkoZG91YmxlKSA9IGZsb29yOworICAgICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT50eXBl
KCkgPT0gRG91YmxlKQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbkFkZHJlc3MgPSBtX2lu
c2VydGlvblNldC5pbnNlcnQ8Q29uc3RQdHJWYWx1ZT4obV9pbmRleCwgbV9vcmlnaW4sIGZsb29y
RG91YmxlKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChtX3ZhbHVlLT50eXBlKCkgPT0gRmxv
YXQpCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uQWRkcmVzcyA9IG1faW5zZXJ0aW9uU2V0
Lmluc2VydDxDb25zdFB0clZhbHVlPihtX2luZGV4LCBtX29yaWdpbiwgZmxvb3JmKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisKKyAgICAgICAgICAgICAgICBWYWx1ZSogcmVzdWx0ID0gbV9pbnNlcnRpb25T
ZXQuaW5zZXJ0PENDYWxsVmFsdWU+KG1faW5kZXgsCisgICAgICAgICAgICAgICAgICAgIG1fdmFs
dWUtPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vcmlnaW4sCisgICAgICAgICAgICAg
ICAgICAgIEVmZmVjdHM6Om5vbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25BZGRy
ZXNzLAorICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAg
ICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShyZXN1bHQpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBOZWc6IHsKICAgICAg
ICAgICAgICAgICBpZiAoIWlzRmxvYXQobV92YWx1ZS0+dHlwZSgpKSkKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmlu
ZGV4IDcxNzVkZTRkNDEzYTczMjhkMGMzZWU2NDk4MzRjYTYwZGNiMTk0YmMuLjFjZDU1N2I3ZDAw
OTM5MGI5MmU1ZjU0ODQyMGQyYzU3ZjA0YTM5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCkBAIC0xODI3LDYgKzE4MjcsMTEgQEAgY2xhc3MgTG93ZXJUb0Fp
ciB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIEZsb29y
OiB7CisgICAgICAgICAgICBhcHBlbmRVbk9wPEFpcjo6T29wcywgQWlyOjpPb3BzLCBGbG9vckRv
dWJsZSwgRmxvb3JGbG9hdD4obV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKICAgICAgICAgY2FzZSBTcXJ0OiB7CiAgICAgICAgICAgICBhcHBlbmRV
bk9wPEFpcjo6T29wcywgQWlyOjpPb3BzLCBTcXJ0RG91YmxlLCBTcXJ0RmxvYXQ+KG1fdmFsdWUt
PmNoaWxkKDApKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNP
cGNvZGUuY3BwCmluZGV4IDdjOTI1YWRjZGJlZGRmYzExM2IzNzAxOGVmYmQwMGZiMWE2YjUxMzQu
LmFlMGI5NDg4ZGZmODQ5NTBlZWRkODhlOTQ2YWViZGI4Y2U3MzE4ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApAQCAtMTYxLDYgKzE2MSw5IEBAIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogICAgIGNhc2UgQ2VpbDoKICAg
ICAgICAgb3V0LnByaW50KCJDZWlsIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZsb29y
OgorICAgICAgICBvdXQucHJpbnQoIkZsb29yIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IFNxcnQ6CiAgICAgICAgIG91dC5wcmludCgiU3FydCIpOwogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCmluZGV4IDlkOWJmMTgyNzViMjFlOWNmMGI4MmU3NWMy
NTZlOWJlYTZlMzc5YjQuLjc2YjkxYjYyNGM1ZjkwNDY0ZmQwYzBiNjYwZDNmMDBiOWI1OTIxNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCkBAIC05Nyw2ICs5Nyw3IEBAIGVudW0g
T3Bjb2RlIDogaW50MTZfdCB7CiAgICAgLy8gRmxvYXRpbmcgcG9pbnQgbWF0aC4KICAgICBBYnMs
CiAgICAgQ2VpbCwKKyAgICBGbG9vciwKICAgICBTcXJ0LAogCiAgICAgLy8gQ2FzdHMgYW5kIHN1
Y2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VEb3VibGVU
b0Zsb2F0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxv
YXQuY3BwCmluZGV4IGNiNDFmNzRiYTFjMzc3M2RkY2QzYmQzZmFlMGQ5MGVmZTdiMGVjZGEuLmQ4
ZTQzYjRlZWIwMTA2MjU1Yzg5YmY1MzZhNjAxMjZmMWJhODcyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCkBAIC01MCw2ICs1
MCw3IEBAIHZvaWQgYXR0ZW1wdFNpbXBsaWZpY2F0aW9uKFZhbHVlKiBjYW5kaWRhdGUpCiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQWJzOgogICAgIGNhc2UgQ2VpbDoKKyAgICBjYXNlIEZsb29y
OgogICAgIGNhc2UgU3FydDoKICAgICAgICAgaWYgKGNhbmRpZGF0ZS0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IEZsb2F0VG9Eb3VibGUpIHsKICAgICAgICAgICAgIGNhbmRpZGF0ZS0+Y2hpbGQoMCkg
PSBjYW5kaWRhdGUtPmNoaWxkKDApLT5jaGlsZCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAppbmRleCA4M2NiMjFmYjgyNTM2ODFmNmVhMTRiNWVi
MGI1ZjI2OTI0ODdjMTFhLi4xMjViOWY5YTA5NmNiZmZmNjdmZDViZTkwN2M0OWM0NTRjNGQ4MTM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCkBA
IC0xMTQwLDYgKzExNDAsMTMgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IENl
aWwoRmxvb3IodmFsdWUpKQorICAgICAgICAgICAgLy8gSW50byB0aGlzOiBGbG9vcih2YWx1ZSkK
KyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRmxvb3IpIHsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNo
aWxkKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgLy8gVHVybiB0aGlzOiBDZWlsKElUb0QodmFsdWUpKQogICAgICAgICAgICAgLy8gSW50
byB0aGlzOiBJVG9EKHZhbHVlKQogICAgICAgICAgICAgLy8KQEAgLTExNTEsNiArMTE1OCwzOSBA
QCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKIAorICAgICAgICBjYXNlIEZsb29yOgorICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBGbG9v
cihjb25zdGFudCkKKyAgICAgICAgICAgIC8vIEludG8gdGhpczogZmxvb3I8dmFsdWUtPnR5cGUo
KT4oY29uc3RhbnQpCisgICAgICAgICAgICBpZiAoVmFsdWUqIGNvbnN0YW50ID0gbV92YWx1ZS0+
Y2hpbGQoMCktPmZsb29yQ29uc3RhbnQobV9wcm9jKSkgeworICAgICAgICAgICAgICAgIHJlcGxh
Y2VXaXRoTmV3VmFsdWUoY29uc3RhbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEZsb29yKEZsb29yKHZhbHVlKSkK
KyAgICAgICAgICAgIC8vIEludG8gdGhpczogRmxvb3IodmFsdWUpCisgICAgICAgICAgICBpZiAo
bV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEZsb29yKSB7CisgICAgICAgICAgICAgICAg
bV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFR1cm4gdGhp
czogRmxvb3IoQ2VpbCh2YWx1ZSkpCisgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IENlaWwodmFs
dWUpCisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IENlaWwp
IHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUt
PmNoaWxkKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gVHVybiB0aGlzOiBGbG9vcihJVG9EKHZhbHVlKSkKKyAgICAgICAgICAgIC8v
IEludG8gdGhpczogSVRvRCh2YWx1ZSkKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBU
aGF0IHdvcmtzIGZvciBJbnQ2NCBiZWNhdXNlIGJvdGggQVJNNjQgYW5kIHg4Nl82NAorICAgICAg
ICAgICAgLy8gcGVyZm9ybSByb3VuZGluZyB3aGVuIGNvbnZlcnRpbmcgYSA2NGJpdCBpbnRlZ2Vy
IHRvIGRvdWJsZS4KKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkg
PT0gSVRvRCkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHko
bV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBTcXJ0OgogICAgICAgICAgICAg
Ly8gVHVybiB0aGlzOiBTcXJ0KGNvbnN0YW50KQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBz
cXJ0PHZhbHVlLT50eXBlKCk+KGNvbnN0YW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
aWRhdGUuY3BwCmluZGV4IDQ3YTQ5NGQyZDE0NDQ2MmIxMmRmNzMyYWMxYjU3MGFmODBlMDlhNTcu
LjI1ZjU1YzZlMzc3NTg1ZGJjNTdmNGU0ZWEwYTZmY2NmYjIyMTY4M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKQEAgLTI0MSw2ICsyNDEsNyBAQCBjbGFzcyBWYWxp
ZGF0ZXIgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBYnM6CiAg
ICAgICAgICAgICBjYXNlIENlaWw6CisgICAgICAgICAgICBjYXNlIEZsb29yOgogICAgICAgICAg
ICAgY2FzZSBTcXJ0OgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJl
bigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNG
bG9hdCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKaW5kZXggYzAyOGRhZGNiMmEzMWQ1NjMyNmJmODAyM2Ux
ZWJiNjczYzg2ZjU3Ny4uOWYxNDQ3NGVlZTdlMGVjOGNjZThmZjg4Y2U1NTYzNjIxZDc5YmE1OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcApAQCAtMjg3LDYgKzI4NywxMSBAQCBW
YWx1ZSogVmFsdWU6OmNlaWxDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdAogICAgIHJldHVybiBu
dWxscHRyOwogfQogCitWYWx1ZSogVmFsdWU6OmZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikgY29u
c3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogVmFsdWUqIFZhbHVlOjpzcXJ0Q29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQzMiw2ICs0
MzcsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIENsejoKICAg
ICBjYXNlIEFiczoKICAgICBjYXNlIENlaWw6CisgICAgY2FzZSBGbG9vcjoKICAgICBjYXNlIFNx
cnQ6CiAgICAgY2FzZSBCaXR3aXNlQ2FzdDoKICAgICBjYXNlIFNFeHQ4OgpAQCAtNTE0LDYgKzUy
MCw3IEBAIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogICAgIGNhc2UgSWRlbnRpdHk6CiAg
ICAgY2FzZSBBYnM6CiAgICAgY2FzZSBDZWlsOgorICAgIGNhc2UgRmxvb3I6CiAgICAgY2FzZSBT
cXJ0OgogICAgIGNhc2UgU0V4dDg6CiAgICAgY2FzZSBTRXh0MTY6CkBAIC02MjksNiArNjM2LDcg
QEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNvZGUgb3Bjb2RlLCBWYWx1ZSogZmlyc3RDaGlsZCwg
VmFsdWUqIHNlY29uZENoaWxkKQogICAgIGNhc2UgQ2x6OgogICAgIGNhc2UgQWJzOgogICAgIGNh
c2UgQ2VpbDoKKyAgICBjYXNlIEZsb29yOgogICAgIGNhc2UgU3FydDoKICAgICBjYXNlIENoZWNr
QWRkOgogICAgIGNhc2UgQ2hlY2tTdWI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAppbmRl
eCBjYmJmNjNjMGE2NWEzOTE2NjA4Y2FlM2E2N2U4ODUwOWI5YTNjZjAzLi4zZWQ2M2NiMDU0MGMz
MzFiNDZjODA2Y2Q5M2VjOGFjZTliMDE1MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
LmgKQEAgLTEzNyw2ICsxMzcsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSB7CiAg
ICAgdmlydHVhbCBWYWx1ZSogZmxvYXRUb0RvdWJsZUNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
OwogICAgIHZpcnR1YWwgVmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0OwogICAg
IHZpcnR1YWwgVmFsdWUqIGNlaWxDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdDsKKyAgICB2aXJ0
dWFsIFZhbHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0OwogICAgIHZpcnR1YWwg
VmFsdWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgVHJp
U3RhdGUgZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFs
bHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0
ZXJTdGFsbHMuY3BwCmluZGV4IGI0ODkzMDhkZDhhNDcwMzE2ZDYzMzNlMjg1ZWI0ZTIyNDg2ZmE4
NTUuLmMzNjQwZDYwZjk5NDE2M2U3ODg5OTQ1MWI2NjE0MGY0NWZlMGFhMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdp
c3RlclN0YWxscy5jcHAKQEAgLTU0LDYgKzU0LDggQEAgYm9vbCBoYXNQYXJ0aWFsWG1tUmVnVXBk
YXRlKGNvbnN0IEluc3QmIGluc3QpCiAgICAgY2FzZSBTcXJ0RmxvYXQ6CiAgICAgY2FzZSBDZWls
RG91YmxlOgogICAgIGNhc2UgQ2VpbEZsb2F0OgorICAgIGNhc2UgRmxvb3JEb3VibGU6CisgICAg
Y2FzZSBGbG9vckZsb2F0OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
T3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzCmluZGV4IDViNTA2ZDhkMWQwNTM3NTgxZDljY2U5NTFjMzg1NTk3YmMxNWUwMTkuLjFj
ZjkxYzJjNGJkYWM5YTQ1Mjk5Yzk1ODM4YjNkMmI4OWJjMGQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNDMyLDYgKzQzMiwxNCBA
QCBDZWlsRmxvYXQgVTpGOjMyLCBEOkY6MzIKICAgICBUbXAsIFRtcAogICAgIHg4NjogQWRkciwg
VG1wCiAKK0Zsb29yRG91YmxlIFU6Rjo2NCwgRDpGOjY0CisgICAgVG1wLCBUbXAKKyAgICB4ODY6
IEFkZHIsIFRtcAorCitGbG9vckZsb2F0IFU6RjozMiwgRDpGOjMyCisgICAgVG1wLCBUbXAKKyAg
ICB4ODY6IEFkZHIsIFRtcAorCiBTcXJ0RG91YmxlIFU6Rjo2NCwgRDpGOjY0CiAgICAgVG1wLCBU
bXAKICAgICB4ODY6IEFkZHIsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAppbmRl
eCAyZWMzMWY4OTU4NmU0YzNiOGFlNjdmYTI5NGVhYTBkMzBlN2I0ODc5Li4wN2ViMDIwZjJlZDFk
ZjhhOTRlYzYxZWZiMTI0NTMwNGI2MTk1YjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcApAQCAtMzM1OCw2ICszMzU4LDE4IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGRvdWJsZSBh
KQogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
Y2VpbChhKSkpOwogfQogCit2b2lkIHRlc3RGbG9vckNlaWxBcmcoZG91YmxlIGEpCit7CisgICAg
UHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWls
LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKKyAgICBWYWx1ZSogd3JhcHBp
bmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBm
aXJzdENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7Cit9CisKIHZvaWQgdGVzdENl
aWxJVG9ENjQoaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMzQ0MCw2ICsz
NDUyLDIwIEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGZsb2F0IGEpCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgY2VpbGYoYSkpKTsKIH0KIAordm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGZsb2F0IGEpCit7Cisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBWYWx1ZSogYXJndW1lbnQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
VHJ1bmMsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKKyAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgIFZhbHVlKiB3cmFw
cGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCks
IGZpcnN0Q2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWls
ZihhKSkpOworfQorCiB2b2lkIHRlc3RDZWlsQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9u
KGZsb2F0IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0zNDc3LDYgKzM1MDMsMjAxIEBA
IHZvaWQgdGVzdENlaWxBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbihmbG9hdCBhKQog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGVmZmVjdCwgY2VpbGYoYSkpKTsKIH0KIAordm9pZCB0ZXN0
Rmxvb3JBcmcoZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEZsb29yLCBPcmlnaW4oKSwKKyAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKK30KKwordm9pZCB0ZXN0
Rmxvb3JJbW0oZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOworICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwg
YXJndW1lbnQpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jKSwgZmxvb3IoYSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JNZW0oZG91YmxlIGEpCit7
CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlW
YWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CisK
KyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJmEpLCBm
bG9vcihhKSkpOworfQorCit2b2lkIHRlc3RGbG9vckZsb29yQXJnKGRvdWJsZSBhKQoreworICAg
IFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b29yLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKKyAgICBWYWx1ZSogc2Vj
b25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwg
Zmlyc3RGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOworfQorCit2b2lkIHRlc3RD
ZWlsRmxvb3JBcmcoZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAorICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCkpOworICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKKyAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwp
OworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEp
LCBmbG9vcihhKSkpOworfQorCit2b2lkIHRlc3RGbG9vcklUb0Q2NChpbnQ2NF90IGEpCit7Cisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgVmFsdWUqIGFy
Z3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdp
bigpLCBhcmd1bWVudCk7CisKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKKworICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3Ioc3Rh
dGljX2Nhc3Q8ZG91YmxlPihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JJVG9EMzIoaW50NjRf
dCBhKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAg
VmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CisKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsK
KworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
Zmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmco
ZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVudDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOworICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKworICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxv
b3JJbW0oZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKKyAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKKyAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisKKyAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7Cit9CisKK3Zv
aWQgdGVzdEZsb29yTWVtKGZsb2F0IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwor
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBP
cmlnaW4oKSwgbG9hZEZsb2F0KTsKKyAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
ICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0
Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CisgICAgVmFsdWUq
IGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4o
KSwgYXJndW1lbnQpOworICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKKyAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7
CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKK30KKwordm9pZCB0ZXN0Q2VpbEZs
b29yQXJnKGZsb2F0IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKKyAgICBWYWx1ZSogZmlyc3RG
bG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1
bWVudCk7CisgICAgVmFsdWUqIHdyYXBwaW5nQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CisKKyAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmdXaXRo
VXNlbGVzc0RvdWJsZUNvbnZlcnNpb24oZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsK
KyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1
bWVudDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7
CisgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhc0RvdWJsZSk7Cisg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVs
RG91YmxlQ29udmVyc2lvbihmbG9hdCBhKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKKyAgICBW
YWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3Vi
bGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICBWYWx1
ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCByZXN1bHQpOworICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Cisg
ICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91Ymxl
QWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworCisgICAgZG91YmxlIGVmZmVjdCA9IDA7CisgICAgaW50
MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKKyAgICBDSEVDSyhpc0lkZW50aWNhbChyZXN1bHRW
YWx1ZSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKKyAgICBDSEVDSyhpc0lk
ZW50aWNhbChlZmZlY3QsIGZsb29yZihhKSkpOworfQorCiB2b2lkIHRlc3RTcXJ0QXJnKGRvdWJs
ZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTExMjIsNiArMTEzNDMsNyBAQCB2b2lk
IHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOX1VOQVJZKHRlc3RDZWlsSW1tLCBmbG9h
dGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKICAgICBSVU5fVU5BUlkodGVzdENlaWxNZW0s
IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2Vp
bENlaWxBcmcsIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOworICAgIFJVTl9VTkFS
WSh0ZXN0Rmxvb3JDZWlsQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKICAg
ICBSVU5fVU5BUlkodGVzdENlaWxJVG9ENjQsIGludDY0T3BlcmFuZHMoKSk7CiAgICAgUlVOX1VO
QVJZKHRlc3RDZWlsSVRvRDMyLCBpbnQzMk9wZXJhbmRzKCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0
Q2VpbEFyZywgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKTsKQEAgLTExMTMxLDYgKzEx
MzUzLDIxIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVz
dENlaWxBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24sIGZsb2F0aW5nUG9pbnRPcGVyYW5k
czxmbG9hdD4oKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDZWlsQXJnV2l0aEVmZmVjdGZ1bERvdWJs
ZUNvbnZlcnNpb24sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CiAKKyAgICBSVU5f
VU5BUlkodGVzdEZsb29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKKyAg
ICBSVU5fVU5BUlkodGVzdEZsb29ySW1tLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigp
KTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29yTWVtLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91
YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29yRmxvb3JBcmcsIGZsb2F0aW5nUG9pbnRP
cGVyYW5kczxkb3VibGU+KCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbEZsb29yQXJnLCBmbG9h
dGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29ySVRv
RDY0LCBpbnQ2NE9wZXJhbmRzKCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Rmxvb3JJVG9EMzIsIGlu
dDMyT3BlcmFuZHMoKSk7CisgICAgUlVOX1VOQVJZKHRlc3RGbG9vckFyZywgZmxvYXRpbmdQb2lu
dE9wZXJhbmRzPGZsb2F0PigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29ySW1tLCBmbG9hdGlu
Z1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Rmxvb3JNZW0sIGZs
b2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CisgICAgUlVOX1VOQVJZKHRlc3RGbG9vckZs
b29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOworICAgIFJVTl9VTkFSWSh0
ZXN0Q2VpbEZsb29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOworICAgIFJV
Tl9VTkFSWSh0ZXN0Rmxvb3JBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24sIGZsb2F0aW5n
UG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CisgICAgUlVOX1VOQVJZKHRlc3RGbG9vckFyZ1dpdGhF
ZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkp
OworCiAgICAgUlVOX1VOQVJZKHRlc3RTcXJ0QXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91
YmxlPigpKTsKICAgICBSVU5fVU5BUlkodGVzdFNxcnRJbW0sIGZsb2F0aW5nUG9pbnRPcGVyYW5k
czxkb3VibGU+KCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0U3FydE1lbSwgZmxvYXRpbmdQb2ludE9w
ZXJhbmRzPGRvdWJsZT4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggZDdjMWJmZjg0M2NlNDg1
OTM2NWM1YTE0ODRmZmJhNjZiNmU5MzRhYi4uYTU0MWVmMmUyMjQ2NDczNTk0ODJlODM1ZDdlYzAw
NGUyYWVkOWVlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtODMzLDEwICs4MzMsMjAgQEAKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBBcml0aFJvdW5kOiB7CisgICAgY2FzZSBB
cml0aFJvdW5kOgorICAgIGNhc2UgQXJpdGhGbG9vcjoKKyAgICBjYXNlIEFyaXRoQ2VpbDogewog
ICAgICAgICBKU1ZhbHVlIG9wZXJhbmQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgp
OwogICAgICAgICBpZiAob3BlcmFuZCAmJiBvcGVyYW5kLmlzTnVtYmVyKCkpIHsKLSAgICAgICAg
ICAgIGRvdWJsZSByb3VuZGVkVmFsdWUgPSBqc1JvdW5kKG9wZXJhbmQuYXNOdW1iZXIoKSk7Cisg
ICAgICAgICAgICBkb3VibGUgcm91bmRlZFZhbHVlID0gMDsKKyAgICAgICAgICAgIGlmIChub2Rl
LT5vcCgpID09IEFyaXRoUm91bmQpCisgICAgICAgICAgICAgICAgcm91bmRlZFZhbHVlID0ganNS
b3VuZChvcGVyYW5kLmFzTnVtYmVyKCkpOworICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+b3Ao
KSA9PSBBcml0aEZsb29yKQorICAgICAgICAgICAgICAgIHJvdW5kZWRWYWx1ZSA9IGZsb29yKG9w
ZXJhbmQuYXNOdW1iZXIoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBB
U1NFUlQobm9kZS0+b3AoKSA9PSBBcml0aENlaWwpOworICAgICAgICAgICAgICAgIHJvdW5kZWRW
YWx1ZSA9IGNlaWwob3BlcmFuZC5hc051bWJlcigpKTsKKyAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKHByb2R1Y2VzSW50ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkgewog
ICAgICAgICAgICAgICAgIGludDMyX3Qgcm91bmRlZFZhbHVlQXNJbnQzMiA9IHN0YXRpY19jYXN0
PGludDMyX3Q+KHJvdW5kZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0FyaXRoTW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fy
aXRoTW9kZS5jcHAKaW5kZXggYzFkZmU3ZjgwMWY3NzZiZWQ5ZGRmNTk1MDZlOWJlNTg0N2I4OTY0
OS4uODRkZGFlMTkyYWRjNGZmNDZmMTFiZjg0NzVjZGEzNGY5ZWE1ODM5YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcml0aE1vZGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJpdGhNb2RlLmNwcApAQCAtNTUsNiArNTUsMjIgQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6REZHOjpBcml0aDo6TW9kZSBt
b2RlKQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQgcHJpbnRJ
bnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkRGRzo6QXJpdGg6OlJvdW5kaW5nTW9kZSBt
b2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgSlNDOjpERkc6OkFyaXRoOjpS
b3VuZGluZ01vZGU6OkludDMyOgorICAgICAgICBvdXQucHJpbnQoIkludDMyIik7CisgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIEpTQzo6REZHOjpBcml0aDo6Um91bmRpbmdNb2RlOjpJbnQzMldp
dGhOZWdhdGl2ZVplcm9DaGVjazoKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMldpdGhOZWdhdGl2
ZVplcm9DaGVjayIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OkRGRzo6QXJpdGg6
OlJvdW5kaW5nTW9kZTo6RG91YmxlOgorICAgICAgICBvdXQucHJpbnQoIkRvdWJsZSIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcml0aE1vZGUuaAppbmRleCA0ZTA5YWMzZTkzYWI3ZjY2
YTM5ZGVhNGI4Mzg0NjIxNWFhYWEyMDJmLi5hZWNmZTNlMThmYzM5ZDRmOTRhMzk3Mjc2Yzg2Zjg0
OTNiMTExMTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRo
TW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJpdGhNb2RlLmgKQEAg
LTE0Niw2ICsxNDYsNyBAQCBpbmxpbmUgYm9vbCBzaG91bGRDaGVja05lZ2F0aXZlWmVybyhBcml0
aDo6Um91bmRpbmdNb2RlIG1vZGUpCiAKIGNsYXNzIFByaW50U3RyZWFtOwogdm9pZCBwcmludElu
dGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpERkc6OkFyaXRoOjpNb2RlKTsKK3ZvaWQgcHJpbnRJ
bnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6REZHOjpBcml0aDo6Um91bmRpbmdNb2RlKTsKIAog
fSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKaW5kZXggOGVkYTQzOWQ1MzMzZDdmNTRmNzNjNTgyZjkwM2QzNjQ4
NmU4ZGEwNi4uODhlNmM5NDlmYWQxMjlhZmUxZGZjNDg1YzllMzNkMTAxYmEwNzllOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIx
ODgsNyArMjE4OCw5IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwo
aW50IHJlc3VsdE9wZXJhbmQsIEludHJpbnNpYyBpbnRyaW5zaWMsCiAgICAgICAgIAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBSb3VuZEludHJpbnNpYzogeworICAgIGNh
c2UgUm91bmRJbnRyaW5zaWM6CisgICAgY2FzZSBGbG9vckludHJpbnNpYzoKKyAgICBjYXNlIENl
aWxJbnRyaW5zaWM6IHsKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID09
IDEpIHsKICAgICAgICAgICAgIGluc2VydENoZWNrcygpOwogICAgICAgICAgICAgc2V0KFZpcnR1
YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgYWRkVG9HcmFwaChKU0NvbnN0YW50LCBPcEluZm8o
bV9jb25zdGFudE5hTikpKTsKQEAgLTIxOTcsNyArMjE5OSwxNiBAQCBib29sIEJ5dGVDb2RlUGFy
c2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKGludCByZXN1bHRPcGVyYW5kLCBJbnRyaW5zaWMgaW50
cmluc2ljLAogICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPT0gMikgewog
ICAgICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CiAgICAgICAgICAgICBOb2RlKiBvcGVyYW5kID0g
Z2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSk7Ci0gICAg
ICAgICAgICBOb2RlKiByb3VuZE5vZGUgPSBhZGRUb0dyYXBoKEFyaXRoUm91bmQsIE9wSW5mbygw
KSwgT3BJbmZvKHByZWRpY3Rpb24pLCBvcGVyYW5kKTsKKyAgICAgICAgICAgIE5vZGVUeXBlIG9w
OworICAgICAgICAgICAgaWYgKGludHJpbnNpYyA9PSBSb3VuZEludHJpbnNpYykKKyAgICAgICAg
ICAgICAgICBvcCA9IEFyaXRoUm91bmQ7CisgICAgICAgICAgICBlbHNlIGlmIChpbnRyaW5zaWMg
PT0gRmxvb3JJbnRyaW5zaWMpCisgICAgICAgICAgICAgICAgb3AgPSBBcml0aEZsb29yOworICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGludHJpbnNpYyA9PSBDZWls
SW50cmluc2ljKTsKKyAgICAgICAgICAgICAgICBvcCA9IEFyaXRoQ2VpbDsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIE5vZGUqIHJvdW5kTm9kZSA9IGFkZFRvR3JhcGgob3AsIE9wSW5mbygw
KSwgT3BJbmZvKHByZWRpY3Rpb24pLCBvcGVyYW5kKTsKICAgICAgICAgICAgIHNldChWaXJ0dWFs
UmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksIHJvdW5kTm9kZSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAppbmRleCAzNDNhNmRlOWMyOTA5YjkzZTA1MjhjZjAyNzg0YWFkOTRkMDFiNGQxLi40NTgwODZl
NDViNGUwNzIwOGQ1NTA1MjkyMWM0MGI4Mjg3M2UzNDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMjk3LDYgKzI5Nyw4IEBAIHZvaWQgY2xvYmJlcml6
ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25z
dCBXcml0ZUZ1CiAgICAgICAgIH0KIAogICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAgICBjYXNlIEFy
aXRoRmxvb3I6CisgICAgY2FzZSBBcml0aENlaWw6CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9k
ZSwgc3RhdGljX2Nhc3Q8dWludHB0cl90Pihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkpOwog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApp
bmRleCA3MDJkYTViZjFlN2MwZjFjOGZlNTVjNjQ4NDQ1OGZjYWQ4MWUyYWE1Li40NTIxYWRiYzBk
ZGZhNTkwNmJiOWY4NjNmMGExZTg3MWYxMjBjMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCkBAIC04Nyw2ICs4Nyw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEFyaXRoU3FydDoKICAgICBjYXNlIEFyaXRoUmFuZG9t
OgogICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAgICBjYXNlIEFyaXRoRmxvb3I6CisgICAgY2FzZSBB
cml0aENlaWw6CiAgICAgY2FzZSBBcml0aEZSb3VuZDoKICAgICBjYXNlIEFyaXRoU2luOgogICAg
IGNhc2UgQXJpdGhDb3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAppbmRleCA2YTRlYjEzYWVkMzJiYjk3ZThjNGRhODk3Mjg3NjA4NDJjNjA5Y2I5Li5mYjRk
MmM0N2UxYjQ3ODM1NGExNzkzMWNhZmI5Njc2MzM2ODZlY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTM2Myw3ICszNjMsOSBAQCBjbGFzcyBG
aXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAKLSAgICAgICAgY2FzZSBBcml0aFJvdW5kOiB7CisgICAgICAgIGNhc2UgQXJpdGhSb3VuZDoK
KyAgICAgICAgY2FzZSBBcml0aEZsb29yOgorICAgICAgICBjYXNlIEFyaXRoQ2VpbDogewogICAg
ICAgICAgICAgaWYgKG1fZ3JhcGgudW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUs
IEZpeHVwUGFzcykpIHsKICAgICAgICAgICAgICAgICBmaXhJbnRPckJvb2xlYW5FZGdlKG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBpbnNlcnRDaGVjazxJbnQzMlVzZT4obV9pbmRl
eEluQmxvY2ssIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCmluZGV4IDRjOWEzOGIxOTFhYTQ4YTYwMWQ1OGNiMTc2NDdiOTA2MjU0MmZm
YzAuLjU0MWM4NGViYjExMTc0MzBjODkyYjZmMzliNjBlNGViZjZkMWI2MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCkBAIC0yMjIsNiArMjIyLDggQEAgdm9pZCBHcmFw
aDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBjaGFyKiBwcmVmaXgsIE5vZGUqIG5vZGUs
IER1bXBDb250ZXh0KgogICAgICAgICBvdXQucHJpbnQoY29tbWEsIG5vZGUtPmFycmF5TW9kZSgp
KTsKICAgICBpZiAobm9kZS0+aGFzQXJpdGhNb2RlKCkpCiAgICAgICAgIG91dC5wcmludChjb21t
YSwgbm9kZS0+YXJpdGhNb2RlKCkpOworICAgIGlmIChub2RlLT5oYXNBcml0aFJvdW5kaW5nTW9k
ZSgpKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJSb3VuZGluZzoiLCBub2RlLT5hcml0aFJv
dW5kaW5nTW9kZSgpKTsKICAgICBpZiAobm9kZS0+aGFzU2NvcGVPZmZzZXQoKSkKICAgICAgICAg
b3V0LnByaW50KGNvbW1hLCBub2RlLT5zY29wZU9mZnNldCgpKTsKICAgICBpZiAobm9kZS0+aGFz
RGlyZWN0QXJndW1lbnRzT2Zmc2V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgK
aW5kZXggNjBkMTQ2YjMwNGM1NmZjYzUzZGQ3YzY4OGEyMDM3OWQyYjM1OGJmZi4uMWE0ZTJmN2Rk
YjRjNzIyYWM4OWVmNmM0NWU5NmEwY2RkYTg4YTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguaApAQCAtMzE2LDcgKzMxNiw3IEBAIGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1
YWwgU2Nhbm5hYmxlIHsKIAogICAgIGJvb2wgcm91bmRTaG91bGRTcGVjdWxhdGVJbnQzMihOb2Rl
KiBhcml0aFJvdW5kLCBQcmVkaWN0aW9uUGFzcyBwYXNzKQogICAgIHsKLSAgICAgICAgQVNTRVJU
KGFyaXRoUm91bmQtPm9wKCkgPT0gQXJpdGhSb3VuZCk7CisgICAgICAgIEFTU0VSVChhcml0aFJv
dW5kLT5vcCgpID09IEFyaXRoUm91bmQgfHwgYXJpdGhSb3VuZC0+b3AoKSA9PSBBcml0aEZsb29y
IHx8IGFyaXRoUm91bmQtPm9wKCkgPT0gQXJpdGhDZWlsKTsKICAgICAgICAgcmV0dXJuIGFyaXRo
Um91bmQtPmNhblNwZWN1bGF0ZUludDMyKHBhc3MpICYmICFoYXNFeGl0U2l0ZShhcml0aFJvdW5k
LT5vcmlnaW4uc2VtYW50aWMsIE92ZXJmbG93KSAmJiAhaGFzRXhpdFNpdGUoYXJpdGhSb3VuZC0+
b3JpZ2luLnNlbWFudGljLCBOZWdhdGl2ZVplcm8pOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNzYxMjg5NjMzYWEyOWY0OTFjOWMxNmY1NzY5YmUwOWFk
MGYxZDdiOC4uZDk2M2M0NmE5Zjg4YjdlZjBiODQ1MjRjM2M4ZmJhMjViMDEzY2U1YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTkyOCw3ICs5MjgsNyBAQCBzdHJ1Y3QgTm9k
ZSB7CiAgICAgTm9kZUZsYWdzIGFyaXRoTm9kZUZsYWdzKCkKICAgICB7CiAgICAgICAgIE5vZGVG
bGFncyByZXN1bHQgPSBtX2ZsYWdzICYgTm9kZUFyaXRoRmxhZ3NNYXNrOwotICAgICAgICBpZiAo
b3AoKSA9PSBBcml0aE11bCB8fCBvcCgpID09IEFyaXRoRGl2IHx8IG9wKCkgPT0gQXJpdGhNb2Qg
fHwgb3AoKSA9PSBBcml0aE5lZ2F0ZSB8fCBvcCgpID09IEFyaXRoUG93IHx8IG9wKCkgPT0gQXJp
dGhSb3VuZCB8fCBvcCgpID09IERvdWJsZUFzSW50MzIpCisgICAgICAgIGlmIChvcCgpID09IEFy
aXRoTXVsIHx8IG9wKCkgPT0gQXJpdGhEaXYgfHwgb3AoKSA9PSBBcml0aE1vZCB8fCBvcCgpID09
IEFyaXRoTmVnYXRlIHx8IG9wKCkgPT0gQXJpdGhQb3cgfHwgb3AoKSA9PSBBcml0aFJvdW5kIHx8
IG9wKCkgPT0gQXJpdGhGbG9vciB8fCBvcCgpID09IEFyaXRoQ2VpbCB8fCBvcCgpID09IERvdWJs
ZUFzSW50MzIpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICByZXR1cm4gcmVz
dWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVnWmVybzsKICAgICB9CkBAIC0xMzMxLDYgKzEzMzEs
OCBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKICAgICAg
ICAgY2FzZSBBcml0aFJvdW5kOgorICAgICAgICBjYXNlIEFyaXRoRmxvb3I6CisgICAgICAgIGNh
c2UgQXJpdGhDZWlsOgogICAgICAgICBjYXNlIEdldERpcmVjdFBuYW1lOgogICAgICAgICBjYXNl
IEdldEJ5SWQ6CiAgICAgICAgIGNhc2UgR2V0QnlJZEZsdXNoOgpAQCAtMTcxMiw3ICsxNzE0LDcg
QEAgc3RydWN0IE5vZGUgewogCiAgICAgYm9vbCBoYXNBcml0aFJvdW5kaW5nTW9kZSgpCiAgICAg
ewotICAgICAgICByZXR1cm4gb3AoKSA9PSBBcml0aFJvdW5kOworICAgICAgICByZXR1cm4gb3Ao
KSA9PSBBcml0aFJvdW5kIHx8IG9wKCkgPT0gQXJpdGhGbG9vciB8fCBvcCgpID09IEFyaXRoQ2Vp
bDsKICAgICB9CiAKICAgICBBcml0aDo6Um91bmRpbmdNb2RlIGFyaXRoUm91bmRpbmdNb2RlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBkZGQwYjk3Y2IyZmU2
OTI2MDQ1MTAzZjhhNzEwNzAwNDgyZTlmNmJkLi43MWMwNzVhNGNkYTBkMWIxZjJhZDY1N2Y4YWEx
ODYxOWNmMmQyYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBA
IC0xNTQsNiArMTU0LDggQEAKICAgICBtYWNybyhBcml0aFBvdywgTm9kZVJlc3VsdE51bWJlcikg
XAogICAgIG1hY3JvKEFyaXRoUmFuZG9tLCBOb2RlUmVzdWx0RG91YmxlIHwgTm9kZU11c3RHZW5l
cmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoUm91bmQsIE5vZGVSZXN1bHROdW1iZXIpIFwKKyAgICBt
YWNybyhBcml0aEZsb29yLCBOb2RlUmVzdWx0TnVtYmVyKSBcCisgICAgbWFjcm8oQXJpdGhDZWls
LCBOb2RlUmVzdWx0TnVtYmVyKSBcCiAgICAgbWFjcm8oQXJpdGhTcXJ0LCBOb2RlUmVzdWx0TnVt
YmVyKSBcCiAgICAgbWFjcm8oQXJpdGhTaW4sIE5vZGVSZXN1bHROdW1iZXIpIFwKICAgICBtYWNy
byhBcml0aENvcywgTm9kZVJlc3VsdE51bWJlcikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRl
eCBmYTQ4MjQ4NDI5YWIzY2QyMTNmNzU2M2ZiNGJmNzQ3M2JmMTAyOTAwLi40NTk2MDUzYjMyMjQw
YzQwODg2YjljNzQ1NjlhNmUxYzkyZTVmZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAt
Mzg2LDcgKzM4Niw5IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGlj
IFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBB
cml0aFJvdW5kOiB7CisgICAgICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAgICAgICAgY2FzZSBBcml0
aEZsb29yOgorICAgICAgICBjYXNlIEFyaXRoQ2VpbDogewogICAgICAgICAgICAgaWYgKGlzSW50
MzJPckJvb2xlYW5TcGVjdWxhdGlvbihub2RlLT5nZXRIZWFwUHJlZGljdGlvbigpKSAmJiBtX2dy
YXBoLnJvdW5kU2hvdWxkU3BlY3VsYXRlSW50MzIobm9kZSwgbV9wYXNzKSkKICAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rpb24oU3BlY0ludDMyKTsKICAgICAgICAgICAgIGVs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXgg
MjMwZWZlZGM0ODMxNTEyYmFjNTY4YmVlZmRiMjc2OTYxODcyMDk0Yy4uOTg1OTJjN2Q5ODQ2YmU5
MjRlOWRjNTM3NzkwZGQ1ZmJhYjQyMTJjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTE4MSw2ICsxODEsOCBAQCBib29sIHNhZmVUb0V4ZWN1
dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAg
ICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgY2FzZSBBcml0aEZSb3VuZDoKICAgICBjYXNlIEFyaXRo
Um91bmQ6CisgICAgY2FzZSBBcml0aEZsb29yOgorICAgIGNhc2UgQXJpdGhDZWlsOgogICAgIGNh
c2UgQXJpdGhTaW46CiAgICAgY2FzZSBBcml0aENvczoKICAgICBjYXNlIEFyaXRoTG9nOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA1
MDYyZjFlNTZhZjQ5NTQ3NDNiNzI5NzQyNjdhMmM3ODc4ZmY3NjBiLi5jNDZjZjQ1NjE5OTE2NGQ5
NWIwYmEyZDQ2YTNhY2E2MDgxNTJhZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDQxMiw0NiArNDQxMiw5MyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kKE5vZGUqIG5vZGUpCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhSb3VuZGluZyhOb2RlKiBub2RlKQogewogICAgIEFT
U0VSVChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gRG91YmxlUmVwVXNlKTsKIAogICAgIFNw
ZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEZQ
UlJlZyB2YWx1ZUZQUiA9IHZhbHVlLmZwcigpOwogCi0gICAgaWYgKHByb2R1Y2VzSW50ZWdlcihu
b2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSAmJiAhc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obm9k
ZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKLSAgICAgICAgRlBSVGVtcG9yYXJ5IG9uZUhhbGYo
dGhpcyk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByb3VuZGVkUmVzdWx0QXNJbnQzMih0aGlzKTsK
LSAgICAgICAgRlBSUmVnIG9uZUhhbGZGUFIgPSBvbmVIYWxmLmZwcigpOwotICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcm91bmRlZFJlc3VsdEFzSW50MzIuZ3ByKCk7CisgICAgYXV0byBzZXRS
ZXN1bHQgPSBbJl0gKEZQUlJlZyByZXN1bHRGUFIpIHsKKyAgICAgICAgaWYgKHByb2R1Y2VzSW50
ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkgeworICAgICAgICAgICAgR1BSVGVtcG9y
YXJ5IHJvdW5kZWRSZXN1bHRBc0ludDMyKHRoaXMpOworICAgICAgICAgICAgRlBSVGVtcG9yYXJ5
IHNjcmF0Y2godGhpcyk7CisgICAgICAgICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNjcmF0Y2gu
ZnByKCk7CisgICAgICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcm91bmRlZFJlc3VsdEFzSW50
MzIuZ3ByKCk7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3QgZmFpbHVyZUNhc2Vz
OworICAgICAgICAgICAgbV9qaXQuYnJhbmNoQ29udmVydERvdWJsZVRvSW50MzIocmVzdWx0RlBS
LCByZXN1bHRHUFIsIGZhaWx1cmVDYXNlcywgc2NyYXRjaEZQUiwgc2hvdWxkQ2hlY2tOZWdhdGl2
ZVplcm8obm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpOworICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwgZmFpbHVyZUNhc2VzKTsKKwor
ICAgICAgICAgICAgaW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0RlBSLCBub2RlKTsKKyAgICB9OwogCi0g
ICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgaGFsZkNvbnN0YW50ID0gMC41OwotICAgICAgICBt
X2ppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZoYWxmQ29uc3Rh
bnQpLCBvbmVIYWxmRlBSKTsKLSAgICAgICAgbV9qaXQuYWRkRG91YmxlKHZhbHVlRlBSLCBvbmVI
YWxmRlBSKTsKKyAgICBpZiAobV9qaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSkg
eworICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBBcml0aFJvdW5k
OiB7CisgICAgICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAg
RlBSUmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsKKyAgICAgICAgICAgIGlmIChwcm9kdWNl
c0ludGVnZXIobm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkgJiYgIXNob3VsZENoZWNrTmVnYXRp
dmVaZXJvKG5vZGUtPmFyaXRoUm91bmRpbmdNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBoYWxmQ29uc3RhbnQgPSAwLjU7CisgICAgICAgICAgICAgICAgbV9q
aXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmaGFsZkNvbnN0YW50
KSwgcmVzdWx0RlBSKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGREb3VibGUodmFsdWVGUFIs
IHJlc3VsdEZQUik7CisgICAgICAgICAgICAgICAgbV9qaXQuZmxvb3JEb3VibGUocmVzdWx0RlBS
LCByZXN1bHRGUFIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2pp
dC5jZWlsRG91YmxlKHZhbHVlRlBSLCByZXN1bHRGUFIpOworICAgICAgICAgICAgICAgIEZQUlRl
bXBvcmFyeSByZWFsUGFydCh0aGlzKTsKKyAgICAgICAgICAgICAgICBGUFJSZWcgcmVhbFBhcnRG
UFIgPSByZWFsUGFydC5mcHIoKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdWJEb3VibGUocmVz
dWx0RlBSLCB2YWx1ZUZQUiwgcmVhbFBhcnRGUFIpOwogCi0gICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIHRydW5jYXRpb25GYWlsZWQgPSBtX2ppdC5icmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIo
b25lSGFsZkZQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxv
dywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwgdHJ1bmNhdGlvbkZhaWxlZCk7Ci0gICAgICAgIGludDMy
UmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAg
ICAgICAgICAgRlBSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CisgICAgICAgICAgICAgICAgRlBS
UmVnIHNjcmF0Y2hGUFIgPSBzY3JhdGNoLmZwcigpOworICAgICAgICAgICAgICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgaGFsZkNvbnN0YW50ID0gMC41OworICAgICAgICAgICAgICAgIG1faml0Lmxv
YWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJmhhbGZDb25zdGFudCksIHNj
cmF0Y2hGUFIpOworCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2hvdWxkVXNl
Q2VpbGVkID0gbV9qaXQuYnJhbmNoRG91YmxlKEpJVENvbXBpbGVyOjpEb3VibGVMZXNzVGhhbk9y
RXF1YWwsIHJlYWxQYXJ0RlBSLCBzY3JhdGNoRlBSKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIG9uZUNvbnN0YW50ID0gLTEuMDsKKyAgICAgICAgICAgICAgICBtX2ppdC5s
b2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZvbmVDb25zdGFudCksIHNj
cmF0Y2hGUFIpOworICAgICAgICAgICAgICAgIG1faml0LmFkZERvdWJsZShzY3JhdGNoRlBSLCBy
ZXN1bHRGUFIpOworICAgICAgICAgICAgICAgIHNob3VsZFVzZUNlaWxlZC5saW5rKCZtX2ppdCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRSZXN1bHQocmVzdWx0RlBSKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBG
UFJSZXN1bHQgcm91bmRlZFJlc3VsdEFzRG91YmxlKHRoaXMpOwotICAgIEZQUlJlZyByZXN1bHRG
UFIgPSByb3VuZGVkUmVzdWx0QXNEb3VibGUuZnByKCk7Ci0gICAgY2FsbE9wZXJhdGlvbihqc1Jv
dW5kLCByZXN1bHRGUFIsIHZhbHVlRlBSKTsKLSAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwot
ICAgIGlmIChwcm9kdWNlc0ludGVnZXIobm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKLSAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJvdW5kZWRSZXN1bHRBc0ludDMyKHRoaXMpOwotICAgICAgICBG
UFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBz
Y3JhdGNoLmZwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcm91bmRlZFJlc3VsdEFz
SW50MzIuZ3ByKCk7Ci0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7
Ci0gICAgICAgIG1faml0LmJyYW5jaENvbnZlcnREb3VibGVUb0ludDMyKHJlc3VsdEZQUiwgcmVz
dWx0R1BSLCBmYWlsdXJlQ2FzZXMsIHNjcmF0Y2hGUFIpOwotICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCBub2RlLCBmYWlsdXJlQ2FzZXMpOworICAgICAg
ICBjYXNlIEFyaXRoRmxvb3I6IHsKKyAgICAgICAgICAgIEZQUlRlbXBvcmFyeSByb3VuZGVkKHRo
aXMpOworICAgICAgICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJvdW5kZWQuZnByKCk7CisgICAg
ICAgICAgICBtX2ppdC5mbG9vckRvdWJsZSh2YWx1ZUZQUiwgcmVzdWx0RlBSKTsKKyAgICAgICAg
ICAgIHNldFJlc3VsdChyZXN1bHRGUFIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAKLSAgICAgICAgaW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKLSAgICB9IGVsc2UKLSAg
ICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbm9kZSk7CisgICAgICAgIGNhc2UgQXJpdGhD
ZWlsOiB7CisgICAgICAgICAgICBGUFJUZW1wb3Jhcnkgcm91bmRlZCh0aGlzKTsKKyAgICAgICAg
ICAgIEZQUlJlZyByZXN1bHRGUFIgPSByb3VuZGVkLmZwcigpOworICAgICAgICAgICAgbV9qaXQu
Y2VpbERvdWJsZSh2YWx1ZUZQUiwgcmVzdWx0RlBSKTsKKyAgICAgICAgICAgIHNldFJlc3VsdChy
ZXN1bHRGUFIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IH0KKyAgICB9IGVsc2UgeworICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICBGUFJS
ZXN1bHQgcm91bmRlZFJlc3VsdEFzRG91YmxlKHRoaXMpOworICAgICAgICBGUFJSZWcgcmVzdWx0
RlBSID0gcm91bmRlZFJlc3VsdEFzRG91YmxlLmZwcigpOworICAgICAgICBpZiAobm9kZS0+b3Ao
KSA9PSBBcml0aFJvdW5kKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihqc1JvdW5kLCByZXN1
bHRGUFIsIHZhbHVlRlBSKTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+b3AoKSA9PSBBcml0aEZs
b29yKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihmbG9vciwgcmVzdWx0RlBSLCB2YWx1ZUZQ
Uik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gQXJp
dGhDZWlsKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oY2VpbCwgcmVzdWx0RlBSLCB2YWx1
ZUZQUik7CisgICAgICAgIH0KKyAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAg
ICAgc2V0UmVzdWx0KHJlc3VsdEZQUik7CisgICAgfQogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJpdGhTcXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggNzRiMDM0YWJkN2E2ZmI4MjY2MTQ5NTNkNzhm
NGU3NTM1MDM1ZWViOC4uNjJkMWIwYTcwYzVmMzE0OTU0NGQxMzc5NWQzZDAzNjg0NjllN2RkYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAt
MjI2Niw3ICsyMjY2LDkgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGls
ZUFyaXRoRGl2KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVBcml0aE1vZChOb2RlKik7CiAgICAg
dm9pZCBjb21waWxlQXJpdGhQb3coTm9kZSopOwotICAgIHZvaWQgY29tcGlsZUFyaXRoUm91bmQo
Tm9kZSopOworICAgIHZvaWQgY29tcGlsZUFyaXRoUm91bmRpbmcoTm9kZSopOworICAgIHZvaWQg
Y29tcGlsZUFyaXRoRmxvb3IoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUFyaXRoQ2VpbChOb2Rl
Kik7CiAgICAgdm9pZCBjb21waWxlQXJpdGhSYW5kb20oTm9kZSopOwogICAgIHZvaWQgY29tcGls
ZUFyaXRoU3FydChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQXJpdGhMb2coTm9kZSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKaW5kZXggMzhhMTI0MDU4MzBlYmZhZDA2YjM3MGRlNTU0YjExZjY2ZjI0NTUwNS4uMDg0MzI3
Nzg4MzM3ZDg1MDZlOTVlNDMwZThiZmI0ZDZiOGEzYjUxYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0yMjkyLDcg
KzIyOTIsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcml0aFJvdW5kOgotICAgICAgICBjb21waWxlQXJpdGhS
b3VuZChub2RlKTsKKyAgICBjYXNlIEFyaXRoRmxvb3I6CisgICAgY2FzZSBBcml0aENlaWw6Cisg
ICAgICAgIGNvbXBpbGVBcml0aFJvdW5kaW5nKG5vZGUpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQXJpdGhTaW46IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDhmNTY4OGE0NTUzNzhiMGUyOGM2MWU3ZDE4MTllMzRl
NGEzZDJhOTQuLjc5MjhkYThmZjgxMzZkODljYzViN2E1Mjk4ZmU2YWQ3NmZhZTlkZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApA
QCAtMjQxNSw3ICsyNDE1LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXJpdGhSb3VuZDoKLSAgICAgICAgY29t
cGlsZUFyaXRoUm91bmQobm9kZSk7CisgICAgY2FzZSBBcml0aEZsb29yOgorICAgIGNhc2UgQXJp
dGhDZWlsOgorICAgICAgICBjb21waWxlQXJpdGhSb3VuZGluZyhub2RlKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEFyaXRoU2luOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggODM0OGRjYzZjMjVjYjg5NWQzZmQwYThjM2VkN2Ni
MzIzZjJiZWQ1My4uNTRjYjBiNGJlYTNjNmYyNzRhODRlMTllNmYyNmQ2ZDUyN2MwYWU5YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtOTcs
NiArOTcsOCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICBjYXNlIEFyaXRoUG93OgogICAgIGNhc2UgQXJpdGhSYW5kb206CiAgICAgY2FzZSBBcml0
aFJvdW5kOgorICAgIGNhc2UgQXJpdGhGbG9vcjoKKyAgICBjYXNlIEFyaXRoQ2VpbDoKICAgICBj
YXNlIEFyaXRoU3FydDoKICAgICBjYXNlIEFyaXRoTG9nOgogICAgIGNhc2UgQXJpdGhGUm91bmQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXgg
YmE1MTAwMTA2OTI3NmY0ZWNhMWUwZWVmNzE2MjMzZGRlM2JiODA0Yy4uY2I2YjMwNGY2NjdmMGMz
MTMzYmQyMzhjMjZjZTIyZjkzZjdkZWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNTE3LDYgKzUxNywxMiBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICBjYXNlIEFyaXRoUm91bmQ6CiAgICAgICAgICAgICBjb21waWxlQXJp
dGhSb3VuZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhGbG9vcjoK
KyAgICAgICAgICAgIGNvbXBpbGVBcml0aEZsb29yKCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBcml0aENlaWw6CisgICAgICAgICAgICBjb21waWxlQXJpdGhDZWlsKCk7Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgICAgICAgICBj
b21waWxlQXJpdGhTcXJ0KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE4NzUsMjQgKzE4ODEs
MzEgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogICAgIHZvaWQgY29tcGlsZUFyaXRoUm91bmQo
KQogICAgIHsKLSAgICAgICAgTEJhc2ljQmxvY2sgcmVhbFBhcnRJc01vcmVUaGFuSGFsZiA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhSb3VuZCBzaG91bGQgcm91bmQgZG93biIpKTsKLSAg
ICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJB
cml0aFJvdW5kIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG51bGxw
dHI7CiAKLSAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkp
OwotICAgICAgICBMVmFsdWUgaW50ZWdlclZhbHVlID0gbV9vdXQuZG91YmxlQ2VpbCh2YWx1ZSk7
Ci0gICAgICAgIFZhbHVlRnJvbUJsb2NrIGludGVnZXJWYWx1ZVJlc3VsdCA9IG1fb3V0LmFuY2hv
cihpbnRlZ2VyVmFsdWUpOworICAgICAgICBpZiAocHJvZHVjZXNJbnRlZ2VyKG1fbm9kZS0+YXJp
dGhSb3VuZGluZ01vZGUoKSkgJiYgIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJp
dGhSb3VuZGluZ01vZGUoKSkpIHsKKyAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJs
ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmRvdWJsZUZs
b29yKG1fb3V0LmRvdWJsZUFkZCh2YWx1ZSwgbV9vdXQuY29uc3REb3VibGUoMC41KSkpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgTEJhc2ljQmxvY2sgcmVhbFBhcnRJc01vcmVUaGFu
SGFsZiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhSb3VuZCBzaG91bGQgcm91bmQgZG93
biIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxP
Q0sobV9vdXQsICgiQXJpdGhSb3VuZCBjb250aW51YXRpb24iKSk7CiAKLSAgICAgICAgTFZhbHVl
IHJlYWxQYXJ0ID0gbV9vdXQuZG91YmxlU3ViKGludGVnZXJWYWx1ZSwgdmFsdWUpOworICAgICAg
ICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgTFZhbHVlIGludGVnZXJWYWx1ZSA9IG1fb3V0LmRvdWJsZUNlaWwodmFsdWUpOworICAg
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW50ZWdlclZhbHVlUmVzdWx0ID0gbV9vdXQuYW5jaG9y
KGludGVnZXJWYWx1ZSk7CiAKLSAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmRvdWJsZUdyZWF0
ZXJUaGFuT3JVbm9yZGVyZWQocmVhbFBhcnQsIG1fb3V0LmNvbnN0RG91YmxlKDAuNSkpLCB1bnN1
cmUocmVhbFBhcnRJc01vcmVUaGFuSGFsZiksIHVuc3VyZShjb250aW51YXRpb24pKTsKKyAgICAg
ICAgICAgIExWYWx1ZSByZWFsUGFydCA9IG1fb3V0LmRvdWJsZVN1YihpbnRlZ2VyVmFsdWUsIHZh
bHVlKTsKIAotICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHJl
YWxQYXJ0SXNNb3JlVGhhbkhhbGYsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIExWYWx1ZSBpbnRl
Z2VyVmFsdWVSb3VuZGVkRG93biA9IG1fb3V0LmRvdWJsZVN1YihpbnRlZ2VyVmFsdWUsIG1fb3V0
LmNvbnN0RG91YmxlKDEpKTsKLSAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW50ZWdlclZhbHVlUm91
bmRlZERvd25SZXN1bHQgPSBtX291dC5hbmNob3IoaW50ZWdlclZhbHVlUm91bmRlZERvd24pOwot
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRv
KGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0
LmRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQocmVhbFBhcnQsIG1fb3V0LmNvbnN0RG91Ymxl
KDAuNSkpLCB1bnN1cmUocmVhbFBhcnRJc01vcmVUaGFuSGFsZiksIHVuc3VyZShjb250aW51YXRp
b24pKTsKKworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRU
byhyZWFsUGFydElzTW9yZVRoYW5IYWxmLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgTFZh
bHVlIGludGVnZXJWYWx1ZVJvdW5kZWREb3duID0gbV9vdXQuZG91YmxlU3ViKGludGVnZXJWYWx1
ZSwgbV9vdXQuY29uc3REb3VibGUoMSkpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW50
ZWdlclZhbHVlUm91bmRlZERvd25SZXN1bHQgPSBtX291dC5hbmNob3IoaW50ZWdlclZhbHVlUm91
bmRlZERvd24pOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAKLSAgICAgICAg
TFZhbHVlIHJlc3VsdCA9IG1fb3V0LnBoaShtX291dC5kb3VibGVUeXBlLCBpbnRlZ2VyVmFsdWVS
ZXN1bHQsIGludGVnZXJWYWx1ZVJvdW5kZWREb3duUmVzdWx0KTsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IG1fb3V0LnBoaShtX291dC5kb3VibGVUeXBlLCBpbnRlZ2VyVmFsdWVSZXN1bHQsIGludGVn
ZXJWYWx1ZVJvdW5kZWREb3duUmVzdWx0KTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChwcm9k
dWNlc0ludGVnZXIobV9ub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkgewogICAgICAgICAgICAg
TFZhbHVlIGludGVnZXJWYWx1ZSA9IGNvbnZlcnREb3VibGVUb0ludDMyKHJlc3VsdCwgc2hvdWxk
Q2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSk7CkBAIC0xOTAx
LDYgKzE5MTQsMjYgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIHNldERvdWJs
ZShyZXN1bHQpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZUFyaXRoRmxvb3IoKQorICAgIHsK
KyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICBMVmFsdWUgaW50ZWdlclZhbHVlID0gbV9vdXQuZG91YmxlRmxvb3IodmFsdWUpOworICAg
ICAgICBpZiAocHJvZHVjZXNJbnRlZ2VyKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpCisg
ICAgICAgICAgICBzZXRJbnQzMihjb252ZXJ0RG91YmxlVG9JbnQzMihpbnRlZ2VyVmFsdWUsIHNo
b3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc2V0RG91YmxlKGludGVnZXJWYWx1ZSk7CisgICAgfQor
CisgICAgdm9pZCBjb21waWxlQXJpdGhDZWlsKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSB2YWx1
ZSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGludGVnZXJW
YWx1ZSA9IG1fb3V0LmRvdWJsZUNlaWwodmFsdWUpOworICAgICAgICBpZiAocHJvZHVjZXNJbnRl
Z2VyKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpCisgICAgICAgICAgICBzZXRJbnQzMihj
b252ZXJ0RG91YmxlVG9JbnQzMihpbnRlZ2VyVmFsdWUsIHNob3VsZENoZWNrTmVnYXRpdmVaZXJv
KG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgc2V0RG91YmxlKGludGVnZXJWYWx1ZSk7CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlQXJp
dGhTcXJ0KCkgeyBzZXREb3VibGUobV9vdXQuZG91YmxlU3FydChsb3dEb3VibGUobV9ub2RlLT5j
aGlsZDEoKSkpKTsgfQogCiAgICAgdm9pZCBjb21waWxlQXJpdGhMb2coKSB7IHNldERvdWJsZSht
X291dC5kb3VibGVMb2cobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCmluZGV4IDEwY2Y4ZTQ1MDgyMzgxN2NjZjI2NTQ4OTQ5
NTA1NGZmNWUwNTQzNzIuLjIyYjFhY2JlNjkzMGZmZDE3OGZjY2E3MDRkZmI3YmI3MTg1M2RiOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaApAQCAtMTU1LDYgKzE1NSw3IEBA
IGNsYXNzIE91dHB1dCA6IHB1YmxpYyBDb21tb25WYWx1ZXMgewogICAgIExWYWx1ZSBtdWxXaXRo
T3ZlcmZsb3c2NChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IENSQVNIKCk7IH0KICAgICBM
VmFsdWUgZG91YmxlQWJzKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3
PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6QWJzLCBvcmlnaW4oKSwgdmFsdWUpOyB9CiAgICAgTFZh
bHVlIGRvdWJsZUNlaWwoTFZhbHVlIG9wZXJhbmQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5l
dzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OkNlaWwsIG9yaWdpbigpLCBvcGVyYW5kKTsgfQorICAg
IExWYWx1ZSBkb3VibGVGbG9vcihMVmFsdWUgb3BlcmFuZCkgeyByZXR1cm4gbV9ibG9jay0+YXBw
ZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6Rmxvb3IsIG9yaWdpbigpLCBvcGVyYW5kKTsg
fQogCiAgICAgTFZhbHVlIGRvdWJsZVNpbihMVmFsdWUgdmFsdWUpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IDdmNTQ2OWE2NWRl
OWE2YWNiNTk1Y2I1MDY0YTJhZjU2MTM5OWFkMWEuLjVjMDNkNzBhNDdhYzcwNzg4NTViYzYyNjI0
YTIyY2VkM2YzMzlkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2Vu
ZXJhdG9ycy5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2Vp
bFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRU
aHVua0pJVDo6cmVnVDApOwogICAgIG5vbkludEp1bXAubGluaygmaml0KTsKICAgICBqaXQubG9h
ZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICBpZiAoaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludENl
aWwoKSkKKyAgICBpZiAoaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKCkpCiAgICAg
ICAgIGppdC5jZWlsRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAgIGVsc2UKICAgICAgICAgaml0LmNhbGxEb3VibGVU
b0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5hcnlEb3VibGVPcFdyYXBwZXIoY2VpbCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYXJp
dGgtcm91bmRpbmctbW9kZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
bWF0aC1jZWlsLWFyaXRoLXJvdW5kaW5nLW1vZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ViZmNlYmYzYmYw
M2UwMDFmZjVhY2JjOGM1ODg1ZTQyMzkyZTMzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1jZWlsLWFyaXRoLXJvdW5kaW5nLW1vZGUu
anMKQEAgLTAsMCArMSw4NSBAQAorZnVuY3Rpb24gZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9l
c05vdChhKSB7CisgICAgdmFyIHJlc3VsdEEgPSBNYXRoLmNlaWwoYSk7CisgICAgdmFyIHJlc3Vs
dEIgPSBNYXRoLmNlaWwoYSl8MDsKKyAgICByZXR1cm4geyByZXN1bHRBOnJlc3VsdEEsIHJlc3Vs
dEI6cmVzdWx0QiB9OworfQorbm9JbmxpbmUoZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05v
dCk7CisKK2Z1bmN0aW9uIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyhhKSB7Cisg
ICAgdmFyIHJlc3VsdEEgPSBNYXRoLmNlaWwoYSl8MDsKKyAgICB2YXIgcmVzdWx0QiA9IE1hdGgu
Y2VpbChhKTsKKyAgICByZXR1cm4geyByZXN1bHRBOnJlc3VsdEEsIHJlc3VsdEI6cmVzdWx0QiB9
OworfQorbm9JbmxpbmUoZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKTsKKworLy8g
V2FybXVwIHdpdGggZG91YmxlcywgYnV0IG5vdGhpbmcgdGhhdCB3b3VsZCBjZWlsIHRvIC0wIHRv
IGVuc3VyZSB3ZSBuZXZlcgorLy8gc2VlIGEgZG91YmxlIGFzIHJlc3VsdC4gVGhlIHJlc3VsdCBt
dXN0IGJlIGludGVnZXJzLCB0aGUgaW5wdXQgaXMga2VwdCB0byBzbWFsbCB2YWx1ZXMuCitmdW5j
dGlvbiB3YXJtdXAoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAg
ICAgICBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDQyLjYgKyBpKTsKKyAgICAgICAg
Zmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDQyLjQgKyBpKTsKKyAgICB9Cit9Cit3
YXJtdXAoKTsKKworZnVuY3Rpb24gdmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQoKSB7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0MSA9
IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMSk7CisgICAgICAgIGlmICgxIC8g
cmVzdWx0MS5yZXN1bHRBICE9PSAtSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMSksIHJlc3Vs
dEEgPSAiICsgcmVzdWx0MS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJl
c3VsdDEucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMSksIHJlc3VsdEIg
PSAiICsgcmVzdWx0MS5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0MiA9
IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygtMC4xKTsKKyAgICAgICAgaWYgKDEg
LyByZXN1bHQyLnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSksIHJl
c3VsdEEgPSAiICsgcmVzdWx0MS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAv
IHJlc3VsdDIucmVzdWx0QiAhPT0gLUluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSksIHJl
c3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVz
dWx0MyA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCk7CisgICAgICAgIGlm
ICgxIC8gcmVzdWx0My5yZXN1bHRBICE9PSAtSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCks
IHJlc3VsdEEgPSAiICsgcmVzdWx0My5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
MSAvIHJlc3VsdDMucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJl
c3VsdEIgPSAiICsgcmVzdWx0My5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVz
dWx0NCA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygtMC4wKTsKKyAgICAgICAg
aWYgKDEgLyByZXN1bHQ0LnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAu
MCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NC5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoMSAvIHJlc3VsdDQucmVzdWx0QiAhPT0gLUluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAu
MCksIHJlc3VsdEIgPSAiICsgcmVzdWx0NC5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2
YXIgcmVzdWx0NSA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKTsKKyAgICAg
ICAgaWYgKDEgLyByZXN1bHQ1LnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAu
MCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoMSAvIHJlc3VsdDUucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKSwg
cmVzdWx0QiA9ICIgKyByZXN1bHQ1LnJlc3VsdEIpOworICAgICAgICB9CisgICAgICAgIHZhciBy
ZXN1bHQ2ID0gZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAuMCk7CisgICAgICAg
IGlmICgxIC8gcmVzdWx0Ni5yZXN1bHRBICE9PSBJbmZpbml0eSkgeworICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAu
MCksIHJlc3VsdEEgPSAiICsgcmVzdWx0Ni5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoMSAvIHJlc3VsdDYucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjAp
LCByZXN1bHRCID0gIiArIHJlc3VsdDYucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFy
IHJlc3VsdDcgPSBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMSk7CisgICAgICAg
IGlmICgxIC8gcmVzdWx0Ny5yZXN1bHRBICE9PSAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMSksIHJlc3Vs
dEEgPSAiICsgcmVzdWx0Ny5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJl
c3VsdDcucmVzdWx0QiAhPT0gMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWls
ZWQgZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdCgwLjEpLCByZXN1bHRCID0gIiArIHJl
c3VsdDcucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3VsdDggPSBmaXJzdERv
Tm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoMC4xKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ4
LnJlc3VsdEEgIT09IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZp
cnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEpLCByZXN1bHRBID0gIiArIHJlc3Vs
dDgucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQ4LnJlc3VsdEIg
IT09IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RD
YXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEpLCByZXN1bHRCID0gIiArIHJlc3VsdDgucmVzdWx0
Qik7CisgICAgICAgIH0KKyAgICB9Cit9Cit2ZXJpZnlOZWdhdGl2ZVplcm9Jc1ByZXNlcnZlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNl
aWwtYmFzaWNzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNl
aWwtYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyZDlmMjY2ZmRkYWY1YmRmOThkYzg3MzgwMjJiZTZi
MjU5NGJlYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL21hdGgtY2VpbC1iYXNpY3MuanMKQEAgLTAsMCArMSwyNTcgQEAKKworZnVuY3Rpb24g
bWF0aENlaWxPbkludGVnZXJzKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmNlaWwodmFsdWUp
OworfQorbm9JbmxpbmUobWF0aENlaWxPbkludGVnZXJzKTsKKworZnVuY3Rpb24gbWF0aENlaWxP
bkRvdWJsZXModmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9Citub0lu
bGluZShtYXRoQ2VpbE9uRG91Ymxlcyk7CisKK2Z1bmN0aW9uIG1hdGhDZWlsT25Cb29sZWFucyh2
YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVlKTsKK30KK25vSW5saW5lKG1hdGhD
ZWlsT25Cb29sZWFucyk7CisKKy8vIFRoZSB0cml2aWFsIGNhc2VzIGZpcnN0LgorZm9yICh2YXIg
aSA9IDE7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25J
bnRlZ2VycyhpKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigibWF0aENlaWxPbkludGVnZXJzKCIgKyBpICsgIikgPSAiICsgY2VpbGVkVmFsdWUp
OworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkludGVnZXJzKC1pKTsKKyAgICBp
ZiAoY2VpbGVkVmFsdWUgIT09IC1pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWls
T25JbnRlZ2VycygiICsgLWkgKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91
YmxlTG93ID0gaSArIDAuNDsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9uRG91Ymxl
cyhkb3VibGVMb3cpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gaSArIDEuMCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygiICsgZG91YmxlTG93ICsgIikgPSAi
ICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZUhpZ2ggPSBpICsgMC42OworICAgIHZh
ciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25Eb3VibGVzKGRvdWJsZUhpZ2gpOworICAgIGlmIChj
ZWlsZWRWYWx1ZSAhPT0gaSArIDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxP
bkRvdWJsZXMoIiArIGRvdWJsZUhpZ2ggKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2
YXIgZG91YmxlTWlkID0gaSArIDAuNTsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9u
RG91Ymxlcyhkb3VibGVNaWQpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gaSArIDEpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxPbkRvdWJsZXMoIiArIGRvdWJsZU1pZCArICIp
ID0gIiArIGNlaWxlZFZhbHVlKTsKKworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25E
b3VibGVzKC0wLjYpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gLTAuMCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygtMC42KSA9ICIgKyBjZWlsZWRWYWx1ZSk7
Cit9CisKKy8vIFNvbWUgbW9yZSBpbnRlcmVzdGluZyBjYXNlcywgc29tZSBvZiB0aGVtIHdlbGwg
T1NSIGV4aXQgd2hlbiB0aGUgcmV0dXJuIHZhbHVlIGlzIHplcm8uCitmb3IgKHZhciBpID0gMDsg
aSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkludGVnZXJz
KGkpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gaSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJtYXRoQ2VpbE9uSW50ZWdlcnMoIiArIGkgKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAg
ICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9uSW50ZWdlcnMoLWkpOworICAgIGlmIChjZWls
ZWRWYWx1ZSAhPT0gLWkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxPbkludGVn
ZXJzKC0iICsgaSArICIpID0gIiArIGNlaWxlZFZhbHVlKTsKKworICAgIHZhciBjZWlsZWRWYWx1
ZSA9IG1hdGhDZWlsT25Eb3VibGVzKC0wLjQpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gMCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygtMC40KSA9ICIgKyBj
ZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9uRG91Ymxlcygt
MC41KTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IDApCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigibWF0aENlaWxPbkRvdWJsZXMoLTAuNSkgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFy
IGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkRvdWJsZXMoLTApOworICAgIGlmICghKGNlaWxlZFZh
bHVlID09PSAwICYmICgxL2NlaWxlZFZhbHVlKSA9PT0gLUluZmluaXR5KSkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygtMCkgPSAiICsgY2VpbGVkVmFsdWUpOwor
CisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkRvdWJsZXMoTmFOKTsKKyAgICBpZiAo
Y2VpbGVkVmFsdWUgPT09IGNlaWxlZFZhbHVlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1h
dGhDZWlsT25Eb3VibGVzKE5hTikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxl
ZFZhbHVlID0gbWF0aENlaWxPbkRvdWJsZXMoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTsKKyAg
ICBpZiAoY2VpbGVkVmFsdWUgIT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcyhOdW1iZXIuUE9TSVRJVkVfSU5GSU5J
VFkpID0gIiArIGNlaWxlZFZhbHVlKTsKKworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWls
T25Eb3VibGVzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgaWYgKGNlaWxlZFZhbHVl
ICE9PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
bWF0aENlaWxPbkRvdWJsZXMoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSA9ICIgKyBjZWlsZWRW
YWx1ZSk7CisKKyAgICB2YXIgYm9vbGVhbiA9ICEhKGkgJSAyKTsKKyAgICB2YXIgY2VpbGVkQm9v
bGVhbiA9IG1hdGhDZWlsT25Cb29sZWFucyhib29sZWFuKTsKKyAgICBpZiAoY2VpbGVkQm9vbGVh
biAhPSBib29sZWFuKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsT25Eb3VibGVz
KCIgKyBib29sZWFuICsgIikgPSAiICsgY2VpbGVkQm9vbGVhbik7Cit9CisKK2Z1bmN0aW9uIHVz
ZWxlc3NNYXRoQ2VpbCh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVlfDApOwor
fQorbm9JbmxpbmUodXNlbGVzc01hdGhDZWlsKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7
ICsraSkgeworICAgIHZhciBjZWlsZWRWYWx1ZSA9IHVzZWxlc3NNYXRoQ2VpbChpKTsKKyAgICBp
ZiAoY2VpbGVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01h
dGhDZWlsKCIgKyBpICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZUxv
dyA9IGkgKyAwLjQ7CisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKGRvdWJs
ZUxvdyk7CisgICAgaWYgKGNlaWxlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoInVzZWxlc3NNYXRoQ2VpbCgiICsgZG91YmxlTG93ICsgIikgPSAiICsgY2VpbGVkVmFsdWUp
OworCisgICAgdmFyIGRvdWJsZUhpZ2ggPSBpICsgMC42OworICAgIHZhciBjZWlsZWRWYWx1ZSA9
IHVzZWxlc3NNYXRoQ2VpbChkb3VibGVIaWdoKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhDZWlsKCIgKyBkb3VibGVIaWdo
ICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZU1pZCA9IGkgKyAwLjU7
CisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKGRvdWJsZU1pZCk7CisgICAg
aWYgKGNlaWxlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVzZWxlc3NN
YXRoQ2VpbCgiICsgZG91YmxlTWlkICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFy
IGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKC0wLjQpOworICAgIGlmIChjZWlsZWRWYWx1
ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwoLTAuNCkg
PSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhD
ZWlsKC0wLjUpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwoLTAuNSkgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAg
dmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKC0wLjYpOworICAgIGlmIChjZWlsZWRW
YWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwoLTAu
NikgPSAiICsgY2VpbGVkVmFsdWUpOworfQorCitmdW5jdGlvbiBtYXRoQ2VpbFdpdGhPdmVyZmxv
dyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVlKTsKK30KK25vSW5saW5lKG1h
dGhDZWlsV2l0aE92ZXJmbG93KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgewor
ICAgIHZhciBiaWdWYWx1ZSA9IDEwMDAwMDAwMDAwMDA7CisgICAgdmFyIGNlaWxlZFZhbHVlID0g
bWF0aENlaWxXaXRoT3ZlcmZsb3coYmlnVmFsdWUpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0g
YmlnVmFsdWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxXaXRoT3ZlcmZsb3co
IiArIGJpZ1ZhbHVlICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworfQorCitmdW5jdGlvbiBtYXRo
Q2VpbENvbnN1bWVkQXNEb3VibGUodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1
ZSkgKiAwLjU7Cit9Citub0lubGluZShtYXRoQ2VpbENvbnN1bWVkQXNEb3VibGUpOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGRvdWJsZVZhbHVlID0gaSArIDAu
MTsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbENvbnN1bWVkQXNEb3VibGUoZG91Ymxl
VmFsdWUpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gKChpICsgMSkgKiAwLjUpKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsQ29uc3VtZWRBc0RvdWJsZSgiICsgZG91YmxlVmFs
dWUgKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91YmxlVmFsdWUgPSBpICsg
MC42OworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsQ29uc3VtZWRBc0RvdWJsZShkb3Vi
bGVWYWx1ZSk7CisgICAgaWYgKGNlaWxlZFZhbHVlICE9PSAoKGkgKyAxKSAqIDAuNSkpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxDb25zdW1lZEFzRG91YmxlKCIgKyBkb3VibGVW
YWx1ZSArICIpID0gIiArIGNlaWxlZFZhbHVlKTsKKworfQorCitmdW5jdGlvbiBtYXRoQ2VpbERv
ZXNOb3RDYXJlQWJvdXRNaW51c1plcm8odmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2
YWx1ZSl8MDsKK30KK25vSW5saW5lKG1hdGhDZWlsRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZG91YmxlTWlkID0g
aSArIDAuNTsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbERvZXNOb3RDYXJlQWJvdXRN
aW51c1plcm8oZG91YmxlTWlkKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkgKyAxKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsRG9lc05vdENhcmVBYm91dE1pbnVzWmVybygi
ICsgZG91YmxlTWlkICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworfQorCisKKy8vICoqKiBGdW5j
dGlvbiBhcmd1bWVudHMuICoqKgorZnVuY3Rpb24gbWF0aENlaWxOb0FyZ3VtZW50cygpCit7Cisg
ICAgcmV0dXJuIE1hdGguY2VpbCgpOworfQorbm9JbmxpbmUobWF0aENlaWxOb0FyZ3VtZW50cyk7
CisKK2Z1bmN0aW9uIG1hdGhDZWlsVG9vTWFueUFyZ3VtZW50cyhhLCBiLCBjKQoreworICAgIHJl
dHVybiBNYXRoLmNlaWwoYSwgYiwgYyk7Cit9Citub0lubGluZShtYXRoQ2VpbFRvb01hbnlBcmd1
bWVudHMpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIHZhbHVl
ID0gbWF0aENlaWxOb0FyZ3VtZW50cygpOworICAgIGlmICh2YWx1ZSA9PT0gdmFsdWUpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxOb0FyZ3VtZW50cygpID0gIiArIHZhbHVlKTsK
KworICAgIHZhciB2YWx1ZSA9IG1hdGhDZWlsVG9vTWFueUFyZ3VtZW50cygyLjEsIDMsIDUpOwor
ICAgIGlmICh2YWx1ZSAhPT0gMykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbFRv
b01hbnlBcmd1bWVudHMoKSA9ICIgKyB2YWx1ZSk7Cit9CisKKworLy8gKioqIENvbnN0YW50IGFz
IGFyZ3VtZW50cy4gKioqCitmdW5jdGlvbiB0ZXN0TWF0aENlaWxPbkNvbnN0YW50cygpCit7Cisg
ICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKDApOworICAgIGlmICh2YWx1ZSAhPT0gMCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwoMCkgPSAiICsgdmFsdWUpOworICAgIHZhciB2
YWx1ZSA9IE1hdGguY2VpbCgtMCk7CisgICAgaWYgKCEodmFsdWUgPT09IDAgJiYgKDEvdmFsdWUp
ID09PSAtSW5maW5pdHkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguY2VpbCgtMCkg
PSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguY2VpbCgxKTsKKyAgICBpZiAodmFs
dWUgIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5jZWlsKDEpID0gIiArIHZh
bHVlKTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmNlaWwoLTEpOworICAgIGlmICh2YWx1ZSAhPT0g
LTEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5jZWlsKC0xKSA9ICIgKyB2YWx1ZSk7
CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKDQyKTsKKyAgICBpZiAodmFsdWUgIT09IDQyKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguY2VpbCg0MikgPSAiICsgdmFsdWUpOworICAg
IHZhciB2YWx1ZSA9IE1hdGguY2VpbCgtNDIuMik7CisgICAgaWYgKHZhbHVlICE9PSAtNDIpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5jZWlsKC00Mi4yKSA9ICIgKyB2YWx1ZSk7Cisg
ICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE5hTik7CisgICAgaWYgKHZhbHVlID09PSB2YWx1ZSkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwoTmFOKSA9ICIgKyB2YWx1ZSk7Cisg
ICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE51bWJlci5QT1NJVElWRV9JTkZJTklUSSk7CisgICAg
aWYgKHZhbHVlID09PSB2YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwo
TnVtYmVyLlBPU0lUSVZFX0lORklOSVRJKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0g
TWF0aC5jZWlsKE51bWJlci5ORUdBVElWRV9JTkZJTklUSSk7CisgICAgaWYgKHZhbHVlID09PSB2
YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwoTnVtYmVyLk5FR0FUSVZF
X0lORklOSVRJKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE1hdGgu
RSk7CisgICAgaWYgKHZhbHVlICE9PSAzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGgu
Y2VpbChNYXRoLkUpID0gIiArIHZhbHVlKTsKK30KK25vSW5saW5lKHRlc3RNYXRoQ2VpbE9uQ29u
c3RhbnRzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHRlc3RNYXRo
Q2VpbE9uQ29uc3RhbnRzKCk7Cit9CisKKworLy8gKioqIFN0cnVjdCB0cmFuc2l0aW9uLiAqKioK
K2Z1bmN0aW9uIG1hdGhDZWlsU3RydWN0VHJhbnNpdGlvbih2YWx1ZSkKK3sKKyAgICByZXR1cm4g
TWF0aC5jZWlsKHZhbHVlKTsKK30KK25vSW5saW5lKG1hdGhDZWlsU3RydWN0VHJhbnNpdGlvbik7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgdmFsdWUgPSBtYXRo
Q2VpbFN0cnVjdFRyYW5zaXRpb24oNDIuNSk7CisgICAgaWYgKHZhbHVlICE9PSA0MykKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbFN0cnVjdFRyYW5zaXRpb24oNDIuNSkgPSAiICsg
dmFsdWUpOworfQorCitNYXRoLmNlaWwgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50c1sw
XSArIDU7IH0KKwordmFyIHZhbHVlID0gbWF0aENlaWxTdHJ1Y3RUcmFuc2l0aW9uKDQyKTsKK2lm
ICh2YWx1ZSAhPT0gNDcpCisgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbFN0cnVjdFRyYW5z
aXRpb24oNDIpIGFmdGVyIHRyYW5zaXRpb24gPSAiICsgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWZsb29yLWFyaXRoLXJvdW5kaW5n
LW1vZGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtZmxvb3It
YXJpdGgtcm91bmRpbmctbW9kZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzBlZDg5MGQzMTUwNzA2YTlhMDQ1
MjBkN2YwYTA5MjQwNzZmNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWZsb29yLWFyaXRoLXJvdW5kaW5nLW1vZGUuanMKQEAgLTAs
MCArMSw4NSBAQAorZnVuY3Rpb24gZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdChhKSB7
CisgICAgdmFyIHJlc3VsdEEgPSBNYXRoLmZsb29yKGEpOworICAgIHZhciByZXN1bHRCID0gTWF0
aC5mbG9vcihhKXwwOworICAgIHJldHVybiB7IHJlc3VsdEE6cmVzdWx0QSwgcmVzdWx0QjpyZXN1
bHRCIH07Cit9Citub0lubGluZShmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KTsKKwor
ZnVuY3Rpb24gZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKGEpIHsKKyAgICB2YXIg
cmVzdWx0QSA9IE1hdGguZmxvb3IoYSl8MDsKKyAgICB2YXIgcmVzdWx0QiA9IE1hdGguZmxvb3Io
YSk7CisgICAgcmV0dXJuIHsgcmVzdWx0QTpyZXN1bHRBLCByZXN1bHRCOnJlc3VsdEIgfTsKK30K
K25vSW5saW5lKGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk7CisKKy8vIFdhcm11
cCB3aXRoIGRvdWJsZXMsIGJ1dCBub3RoaW5nIHRoYXQgd291bGQgZmxvb3IgdG8gLTAgdG8gZW5z
dXJlIHdlIG5ldmVyCisvLyBzZWUgYSBkb3VibGUgYXMgcmVzdWx0LiBUaGUgcmVzdWx0IG11c3Qg
YmUgaW50ZWdlcnMsIHRoZSBpbnB1dCBpcyBrZXB0IHRvIHNtYWxsIHZhbHVlcy4KK2Z1bmN0aW9u
IHdhcm11cCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAg
IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoNDIuNiArIGkpOworICAgICAgICBmaXJz
dERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoNDIuNCArIGkpOworICAgIH0KK30KK3dhcm11
cCgpOworCitmdW5jdGlvbiB2ZXJpZnlOZWdhdGl2ZVplcm9Jc1ByZXNlcnZlZCgpIHsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQxID0gZmly
c3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdCgtMC4xKTsKKyAgICAgICAgaWYgKDEgLyByZXN1
bHQxLnJlc3VsdEEgIT09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxl
ZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KC0wLjEpLCByZXN1bHRBID0gIiArIHJl
c3VsdDEucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQxLnJlc3Vs
dEIgIT09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENh
cmVBYm91dFplcm9TZWNvbmREb2VzTm90KC0wLjEpLCByZXN1bHRCID0gIiArIHJlc3VsdDEucmVz
dWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3VsdDIgPSBmaXJzdERvTm90Q2FyZUFi
b3V0WmVyb1NlY29uZERvZXMoLTAuMSk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Mi5yZXN1bHRB
ICE9PSAtMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3REb05v
dENhcmVBYm91dFplcm9TZWNvbmREb2VzKC0wLjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDEucmVz
dWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQyLnJlc3VsdEIgIT09IC0x
KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFi
b3V0WmVyb1NlY29uZERvZXMoLTAuMSksIHJlc3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1bHRCKTsK
KyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0MyA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29u
ZERvZXNOb3QoLTAuMCk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0My5yZXN1bHRBICE9PSAtSW5m
aW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFi
b3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0My5yZXN1bHRB
KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDMucmVzdWx0QiAhPT0gSW5maW5p
dHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0
WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJlc3VsdEIgPSAiICsgcmVzdWx0My5yZXN1bHRCKTsK
KyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0NCA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJv
U2Vjb25kRG9lcygtMC4wKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ0LnJlc3VsdEEgIT09IElu
ZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90
Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NC5yZXN1
bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDQucmVzdWx0QiAhPT0gLUlu
ZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90
Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMCksIHJlc3VsdEIgPSAiICsgcmVzdWx0NC5yZXN1
bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0NSA9IGZpcnN0Q2FyZUFib3V0WmVy
b1NlY29uZERvZXNOb3QoMC4wKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ1LnJlc3VsdEEgIT09
IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENh
cmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NS5yZXN1
bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDUucmVzdWx0QiAhPT0gSW5m
aW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFi
b3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKSwgcmVzdWx0QiA9ICIgKyByZXN1bHQ1LnJlc3VsdEIp
OworICAgICAgICB9CisgICAgICAgIHZhciByZXN1bHQ2ID0gZmlyc3REb05vdENhcmVBYm91dFpl
cm9TZWNvbmREb2VzKDAuMCk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Ni5yZXN1bHRBICE9PSBJ
bmZpbml0eSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3REb05v
dENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0Ni5yZXN1
bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDYucmVzdWx0QiAhPT0gSW5m
aW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RD
YXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjApLCByZXN1bHRCID0gIiArIHJlc3VsdDYucmVzdWx0
Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3VsdDcgPSBmaXJzdENhcmVBYm91dFplcm9T
ZWNvbmREb2VzTm90KDAuMSk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Ny5yZXN1bHRBICE9PSBJ
bmZpbml0eSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3RDYXJl
QWJvdXRaZXJvU2Vjb25kRG9lc05vdCgwLjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDcucmVzdWx0
QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQ3LnJlc3VsdEIgIT09IEluZmlu
aXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91
dFplcm9TZWNvbmREb2VzTm90KDAuMSksIHJlc3VsdEIgPSAiICsgcmVzdWx0Ny5yZXN1bHRCKTsK
KyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0OCA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJv
U2Vjb25kRG9lcygwLjEpOworICAgICAgICBpZiAoMSAvIHJlc3VsdDgucmVzdWx0QSAhPT0gSW5m
aW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RD
YXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDgucmVzdWx0
QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQ4LnJlc3VsdEIgIT09IEluZmlu
aXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2Fy
ZUFib3V0WmVyb1NlY29uZERvZXMoMC4xKSwgcmVzdWx0QiA9ICIgKyByZXN1bHQ4LnJlc3VsdEIp
OworICAgICAgICB9CisgICAgfQorfQordmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1mbG9v
ci1iYXNpY3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtZmxv
b3ItYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0NDhlYjk5MjU4NTY3OTA5YTczYTVjN2Q4OTQ0ZWM3
OWQ2ZTBjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL21hdGgtZmxvb3ItYmFzaWNzLmpzCkBAIC0wLDAgKzEsMjU3IEBACisKK2Z1bmN0aW9u
IG1hdGhGbG9vck9uSW50ZWdlcnModmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguZmxvb3IodmFs
dWUpOworfQorbm9JbmxpbmUobWF0aEZsb29yT25JbnRlZ2Vycyk7CisKK2Z1bmN0aW9uIG1hdGhG
bG9vck9uRG91Ymxlcyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSk7Cit9
Citub0lubGluZShtYXRoRmxvb3JPbkRvdWJsZXMpOworCitmdW5jdGlvbiBtYXRoRmxvb3JPbkJv
b2xlYW5zKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKTsKK30KK25vSW5s
aW5lKG1hdGhGbG9vck9uQm9vbGVhbnMpOworCisvLyBUaGUgdHJpdmlhbCBjYXNlcyBmaXJzdC4K
K2ZvciAodmFyIGkgPSAxOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0g
bWF0aEZsb29yT25JbnRlZ2VycyhpKTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9PSBpKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoIiArIGkgKyAiKSA9ICIg
KyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9vck9uSW50
ZWdlcnMoLWkpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IC1pKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoIiArIC1pICsgIikgPSAiICsgZmxvb3JlZFZh
bHVlKTsKKworICAgIHZhciBkb3VibGVMb3cgPSBpICsgMC40OworICAgIHZhciBmbG9vcmVkVmFs
dWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoZG91YmxlTG93KTsKKyAgICBpZiAoZmxvb3JlZFZhbHVl
ICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcygiICsg
ZG91YmxlTG93ICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVIaWdo
ID0gaSArIDAuNjsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKGRv
dWJsZUhpZ2gpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigibWF0aEZsb29yT25Eb3VibGVzKCIgKyBkb3VibGVIaWdoICsgIikgPSAiICsgZmxv
b3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVNaWQgPSBpICsgMC41OworICAgIHZhciBmbG9v
cmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoZG91YmxlTWlkKTsKKyAgICBpZiAoZmxvb3Jl
ZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91Ymxl
cygiICsgZG91YmxlTWlkICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBmbG9v
cmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoLTAuNik7CisgICAgaWYgKGZsb29yZWRWYWx1
ZSAhPT0gLTEuMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JPbkRvdWJsZXMo
LTAuNikgPSAiICsgZmxvb3JlZFZhbHVlKTsKK30KKworLy8gU29tZSBtb3JlIGludGVyZXN0aW5n
IGNhc2VzLCBzb21lIG9mIHRoZW0gd2VsbCBPU1IgZXhpdCB3aGVuIHRoZSByZXR1cm4gdmFsdWUg
aXMgemVyby4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZmxvb3Jl
ZFZhbHVlID0gbWF0aEZsb29yT25JbnRlZ2VycyhpKTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9
PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoIiArIGkg
KyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhG
bG9vck9uSW50ZWdlcnMoLWkpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IC1pKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoLSIgKyBpICsgIikgPSAiICsg
Zmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJs
ZXMoLTAuNCk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gLTEuMDApCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigibWF0aEZsb29yT25Eb3VibGVzKC0wLjQpID0gIiArIGZsb29yZWRWYWx1ZSk7
CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKC0wLjUpOworICAg
IGlmIChmbG9vcmVkVmFsdWUgIT09IC0xLjApCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0
aEZsb29yT25Eb3VibGVzKC0wLjUpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxv
b3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKC0wKTsKKyAgICBpZiAoIShmbG9vcmVkVmFs
dWUgPT09IDAgJiYgKDEvZmxvb3JlZFZhbHVlKSA9PT0gLUluZmluaXR5KSkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJtYXRoRmxvb3JPbkRvdWJsZXMoLTApID0gIiArIGZsb29yZWRWYWx1ZSk7
CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKE5hTik7CisgICAg
aWYgKGZsb29yZWRWYWx1ZSA9PT0gZmxvb3JlZFZhbHVlKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIm1hdGhGbG9vck9uRG91YmxlcyhOYU4pID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2
YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKE51bWJlci5QT1NJVElWRV9JTkZJ
TklUWSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZ
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcyhOdW1iZXIuUE9T
SVRJVkVfSU5GSU5JVFkpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZh
bHVlID0gbWF0aEZsb29yT25Eb3VibGVzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7CisgICAg
aWYgKGZsb29yZWRWYWx1ZSAhPT0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcyhOdW1iZXIuTkVHQVRJVkVfSU5GSU5J
VFkpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgYm9vbGVhbiA9ICEhKGkgJSAyKTsK
KyAgICB2YXIgZmxvb3JlZEJvb2xlYW4gPSBtYXRoRmxvb3JPbkJvb2xlYW5zKGJvb2xlYW4pOwor
ICAgIGlmIChmbG9vcmVkQm9vbGVhbiAhPSBib29sZWFuKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIm1hdGhGbG9vck9uRG91YmxlcygiICsgYm9vbGVhbiArICIpID0gIiArIGZsb29yZWRCb29s
ZWFuKTsKK30KKworZnVuY3Rpb24gdXNlbGVzc01hdGhGbG9vcih2YWx1ZSkKK3sKKyAgICByZXR1
cm4gTWF0aC5mbG9vcih2YWx1ZXwwKTsKK30KK25vSW5saW5lKHVzZWxlc3NNYXRoRmxvb3IpOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGZsb29yZWRWYWx1ZSA9
IHVzZWxlc3NNYXRoRmxvb3IoaSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gaSkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aEZsb29yKCIgKyBpICsgIikgPSAiICsgZmxv
b3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVMb3cgPSBpICsgMC40OworICAgIHZhciBmbG9v
cmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZsb29yKGRvdWJsZUxvdyk7CisgICAgaWYgKGZsb29yZWRW
YWx1ZSAhPT0gaSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aEZsb29yKCIg
KyBkb3VibGVMb3cgKyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZUhp
Z2ggPSBpICsgMC42OworICAgIHZhciBmbG9vcmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZsb29yKGRv
dWJsZUhpZ2gpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigidXNlbGVzc01hdGhGbG9vcigiICsgZG91YmxlSGlnaCArICIpID0gIiArIGZsb29y
ZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91YmxlTWlkID0gaSArIDAuNTsKKyAgICB2YXIgZmxvb3Jl
ZFZhbHVlID0gdXNlbGVzc01hdGhGbG9vcihkb3VibGVNaWQpOworICAgIGlmIChmbG9vcmVkVmFs
dWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhGbG9vcigiICsg
ZG91YmxlTWlkICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBmbG9vcmVkVmFs
dWUgPSB1c2VsZXNzTWF0aEZsb29yKC0wLjQpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IDAp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhGbG9vcigtMC40KSA9ICIgKyBm
bG9vcmVkVmFsdWUpOworCisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IHVzZWxlc3NNYXRoRmxvb3Io
LTAuNSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJ1c2VsZXNzTWF0aEZsb29yKC0wLjUpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2
YXIgZmxvb3JlZFZhbHVlID0gdXNlbGVzc01hdGhGbG9vcigtMC42KTsKKyAgICBpZiAoZmxvb3Jl
ZFZhbHVlICE9PSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVzZWxlc3NNYXRoRmxvb3Io
LTAuNikgPSAiICsgZmxvb3JlZFZhbHVlKTsKK30KKworZnVuY3Rpb24gbWF0aEZsb29yV2l0aE92
ZXJmbG93KHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKTsKK30KK25vSW5s
aW5lKG1hdGhGbG9vcldpdGhPdmVyZmxvdyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyAr
K2kpIHsKKyAgICB2YXIgYmlnVmFsdWUgPSAxMDAwMDAwMDAwMDAwOworICAgIHZhciBmbG9vcmVk
VmFsdWUgPSBtYXRoRmxvb3JXaXRoT3ZlcmZsb3coYmlnVmFsdWUpOworICAgIGlmIChmbG9vcmVk
VmFsdWUgIT09IGJpZ1ZhbHVlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vcldp
dGhPdmVyZmxvdygiICsgYmlnVmFsdWUgKyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOworfQorCitm
dW5jdGlvbiBtYXRoRmxvb3JDb25zdW1lZEFzRG91YmxlKHZhbHVlKQoreworICAgIHJldHVybiBN
YXRoLmZsb29yKHZhbHVlKSAqIDAuNTsKK30KK25vSW5saW5lKG1hdGhGbG9vckNvbnN1bWVkQXNE
b3VibGUpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGRvdWJs
ZVZhbHVlID0gaSArIDAuMTsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yQ29uc3Vt
ZWRBc0RvdWJsZShkb3VibGVWYWx1ZSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gKGkgKiAw
LjUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vckNvbnN1bWVkQXNEb3VibGUo
IiArIGRvdWJsZVZhbHVlICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3Vi
bGVWYWx1ZSA9IGkgKyAwLjY7CisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9vckNvbnN1
bWVkQXNEb3VibGUoZG91YmxlVmFsdWUpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IChpICog
MC41KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JDb25zdW1lZEFzRG91Ymxl
KCIgKyBkb3VibGVWYWx1ZSArICIpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKK30KKworZnVuY3Rp
b24gbWF0aEZsb29yRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyh2YWx1ZSkKK3sKKyAgICByZXR1
cm4gTWF0aC5mbG9vcih2YWx1ZSl8MDsKK30KK25vSW5saW5lKG1hdGhGbG9vckRvZXNOb3RDYXJl
QWJvdXRNaW51c1plcm8pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAg
dmFyIGRvdWJsZU1pZCA9IGkgKyAwLjU7CisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9v
ckRvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8oZG91YmxlTWlkKTsKKyAgICBpZiAoZmxvb3JlZFZh
bHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vckRvZXNOb3RDYXJl
QWJvdXRNaW51c1plcm8oIiArIGRvdWJsZU1pZCArICIpID0gIiArIGZsb29yZWRWYWx1ZSk7Cit9
CisKKworLy8gKioqIEZ1bmN0aW9uIGFyZ3VtZW50cy4gKioqCitmdW5jdGlvbiBtYXRoRmxvb3JO
b0FyZ3VtZW50cygpCit7CisgICAgcmV0dXJuIE1hdGguZmxvb3IoKTsKK30KK25vSW5saW5lKG1h
dGhGbG9vck5vQXJndW1lbnRzKTsKKworZnVuY3Rpb24gbWF0aEZsb29yVG9vTWFueUFyZ3VtZW50
cyhhLCBiLCBjKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKGEsIGIsIGMpOworfQorbm9Jbmxp
bmUobWF0aEZsb29yVG9vTWFueUFyZ3VtZW50cyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICB2YXIgdmFsdWUgPSBtYXRoRmxvb3JOb0FyZ3VtZW50cygpOworICAgIGlm
ICh2YWx1ZSA9PT0gdmFsdWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aEZsb29yTm9B
cmd1bWVudHMoKSA9ICIgKyB2YWx1ZSk7CisKKyAgICB2YXIgdmFsdWUgPSBtYXRoRmxvb3JUb29N
YW55QXJndW1lbnRzKDIuMSwgMywgNSk7CisgICAgaWYgKHZhbHVlICE9PSAyKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vclRvb01hbnlBcmd1bWVudHMoKSA9ICIgKyB2YWx1ZSk7
Cit9CisKKworLy8gKioqIENvbnN0YW50IGFzIGFyZ3VtZW50cy4gKioqCitmdW5jdGlvbiB0ZXN0
TWF0aEZsb29yT25Db25zdGFudHMoKQoreworICAgIHZhciB2YWx1ZSA9IE1hdGguZmxvb3IoMCk7
CisgICAgaWYgKHZhbHVlICE9PSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguZmxv
b3IoMCkgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguZmxvb3IoLTApOworICAg
IGlmICghKHZhbHVlID09PSAwICYmICgxL3ZhbHVlKSA9PT0gLUluZmluaXR5KSkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJNYXRoLmZsb29yKC0wKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZh
bHVlID0gTWF0aC5mbG9vcigxKTsKKyAgICBpZiAodmFsdWUgIT09IDEpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiTWF0aC5mbG9vcigxKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0g
TWF0aC5mbG9vcigtMSk7CisgICAgaWYgKHZhbHVlICE9PSAtMSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJNYXRoLmZsb29yKC0xKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0
aC5mbG9vcig0Mik7CisgICAgaWYgKHZhbHVlICE9PSA0MikKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJNYXRoLmZsb29yKDQyKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5m
bG9vcigtNDIuMik7CisgICAgaWYgKHZhbHVlICE9PSAtNDMpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiTWF0aC5mbG9vcigtNDIuMikgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1h
dGguZmxvb3IoTmFOKTsKKyAgICBpZiAodmFsdWUgPT09IHZhbHVlKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIk1hdGguZmxvb3IoTmFOKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0g
TWF0aC5mbG9vcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVEkpOworICAgIGlmICh2YWx1ZSA9PT0g
dmFsdWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5mbG9vcihOdW1iZXIuUE9TSVRJ
VkVfSU5GSU5JVEkpID0gIiArIHZhbHVlKTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmZsb29yKE51
bWJlci5ORUdBVElWRV9JTkZJTklUSSk7CisgICAgaWYgKHZhbHVlID09PSB2YWx1ZSkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmZsb29yKE51bWJlci5ORUdBVElWRV9JTkZJTklUSSkg
PSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguZmxvb3IoTWF0aC5FKTsKKyAgICBp
ZiAodmFsdWUgIT09IDIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5mbG9vcihNYXRo
LkUpID0gIiArIHZhbHVlKTsKK30KK25vSW5saW5lKHRlc3RNYXRoRmxvb3JPbkNvbnN0YW50cyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB0ZXN0TWF0aEZsb29yT25D
b25zdGFudHMoKTsKK30KKworCisvLyAqKiogU3RydWN0IHRyYW5zaXRpb24uICoqKgorZnVuY3Rp
b24gbWF0aEZsb29yU3RydWN0VHJhbnNpdGlvbih2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5m
bG9vcih2YWx1ZSk7Cit9Citub0lubGluZShtYXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciB2YWx1ZSA9IG1hdGhGbG9v
clN0cnVjdFRyYW5zaXRpb24oNDIuNSk7CisgICAgaWYgKHZhbHVlICE9PSA0MikKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKDQyLjUpID0gIiArIHZh
bHVlKTsKK30KKworTWF0aC5mbG9vciA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzWzBd
ICsgNTsgfQorCit2YXIgdmFsdWUgPSBtYXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKDQyKTsKK2lm
ICh2YWx1ZSAhPT0gNDcpCisgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JTdHJ1Y3RUcmFu
c2l0aW9uKDQyKSBhZnRlciB0cmFuc2l0aW9uID0gIiArIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZC1zaG91bGQtbm90LXVz
ZS10cnVuY2F0ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1y
b3VuZC1zaG91bGQtbm90LXVzZS10cnVuY2F0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWUwNzgyZDM0MDIy
ZDc5ODVhZjM2YjY4NzQ5OTEzNzYzYzA2NGU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kLXNob3VsZC1ub3QtdXNlLXRydW5j
YXRlLmpzCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIG1hdGhSb3VuZERvZXNOb3RDYXJlQWJv
dXRNaW51c1plcm8odmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUpOworfQor
bm9JbmxpbmUobWF0aFJvdW5kRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZG91YmxlTWlkID0gLTk5MDEgLSAwLjY7
CisgICAgdmFyIHJvdW5kZWRWYWx1ZSA9IG1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1pl
cm8oZG91YmxlTWlkKTsKKyAgICBpZiAocm91bmRlZFZhbHVlICE9PSAtOTkwMikKKyAgICAgICAg
dGhyb3cgIm1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8oIiArIGRvdWJsZU1pZCAr
ICIpID0gIiArIHJvdW5kZWRWYWx1ZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1pbmZpbml0eS5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1pbmZpbml0eS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMWUwMjFlMDBiYzYxMDg1MGZjNDI5YjM2ZDZjNDgxY2RlZjdmYWQwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5n
LWluZmluaXR5LmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0Um91
bmQodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUpOworfQorbm9JbmxpbmUo
dGVzdFJvdW5kKTsKKworZnVuY3Rpb24gdGVzdEZsb29yKHZhbHVlKQoreworICAgIHJldHVybiBN
YXRoLmZsb29yKHZhbHVlKTsKK30KK25vSW5saW5lKHRlc3RGbG9vcik7CisKK2Z1bmN0aW9uIHRl
c3RDZWlsKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmNlaWwodmFsdWUpOworfQorbm9Jbmxp
bmUodGVzdENlaWwpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hv
dWxkQmUodGVzdFJvdW5kKEluZmluaXR5KSwgSW5maW5pdHkpOworICAgIHNob3VsZEJlKHRlc3RS
b3VuZCgtSW5maW5pdHkpLCAtSW5maW5pdHkpOworICAgIHNob3VsZEJlKHRlc3RGbG9vcihJbmZp
bml0eSksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZSh0ZXN0Rmxvb3IoLUluZmluaXR5KSwgLUlu
ZmluaXR5KTsKKyAgICBzaG91bGRCZSh0ZXN0Q2VpbChJbmZpbml0eSksIEluZmluaXR5KTsKKyAg
ICBzaG91bGRCZSh0ZXN0Q2VpbCgtSW5maW5pdHkpLCAtSW5maW5pdHkpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5hbi5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1uYW4u
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWNjY2RiYzdmN2Q2NjllNWUzZDg4OWYxNDUyYzhhM2RjYTE3Y2M1OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0
aC1yb3VuZGluZy1uYW4uanMKQEAgLTAsMCArMSwyOCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RSb3VuZCh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7Cit9Citub0lu
bGluZSh0ZXN0Um91bmQpOworCitmdW5jdGlvbiB0ZXN0Rmxvb3IodmFsdWUpCit7CisgICAgcmV0
dXJuIE1hdGguZmxvb3IodmFsdWUpOworfQorbm9JbmxpbmUodGVzdEZsb29yKTsKKworZnVuY3Rp
b24gdGVzdENlaWwodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9Citu
b0lubGluZSh0ZXN0Q2VpbCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAg
ICBzaG91bGRCZShOdW1iZXIuaXNOYU4odGVzdFJvdW5kKE5hTikpLCB0cnVlKTsKKyAgICBzaG91
bGRCZShOdW1iZXIuaXNOYU4odGVzdEZsb29yKE5hTikpLCB0cnVlKTsKKyAgICBzaG91bGRCZShO
dW1iZXIuaXNOYU4odGVzdENlaWwoTmFOKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5lZ2F0aXZlLXplcm8u
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtcm91bmRpbmctbmVn
YXRpdmUtemVyby5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmFlMjc4NTBjMDI5OTAyMTMzYzYwOTRkMWQ1YzI3
OTliYzU3YWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5lZ2F0aXZlLXplcm8uanMKQEAgLTAsMCArMSw3MCBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSb3VuZCh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5y
b3VuZCh2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Um91bmQpOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZCgtMC40KSwgLUluZmlu
aXR5KTsKKyAgICBzaG91bGRCZSgxIC8gdGVzdFJvdW5kKC0wLjUpLCAtSW5maW5pdHkpOworICAg
IHNob3VsZEJlKDEgLyB0ZXN0Um91bmQoLTAuNiksIC0xLjApOworICAgIHNob3VsZEJlKDEgLyB0
ZXN0Um91bmQoLTAuMCksIC1JbmZpbml0eSk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZCgw
LjEpLCBJbmZpbml0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGbG9vcih2YWx1ZSkKK3sKKyAgICBy
ZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Rmxvb3IpOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RGbG9vcigt
MC4wKSwgLUluZmluaXR5KTsKK30KKworZnVuY3Rpb24gdGVzdENlaWwodmFsdWUpCit7CisgICAg
cmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Q2VpbCk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBzaG91bGRCZSgxIC8gdGVzdENlaWwoLTAu
MCksIC1JbmZpbml0eSk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RDZWlsKC0wLjkpLCAtSW5maW5p
dHkpOworfQorCitmdW5jdGlvbiB0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8odmFsdWUpCit7Cisg
ICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUpIHwgMDsKK30KK25vSW5saW5lKHRlc3RSb3VuZE5v
bk5lZ2F0aXZlWmVybyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBz
aG91bGRCZSh0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8oMC40KSwgMCk7CisgICAgc2hvdWxkQmUo
dGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvKDAuNSksIDEpOworICAgIHNob3VsZEJlKHRlc3RSb3Vu
ZE5vbk5lZ2F0aXZlWmVybygwLjYpLCAxKTsKKyAgICBzaG91bGRCZSh0ZXN0Um91bmROb25OZWdh
dGl2ZVplcm8oMC4wKSwgMCk7CisgICAgc2hvdWxkQmUodGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJv
KDAuMSksIDApOworfQorc2hvdWxkQmUoMSAvIHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybygtMC40
KSwgSW5maW5pdHkpOworCitmdW5jdGlvbiB0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8yKHZhbHVl
KQoreworICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlKSB8IDA7Cit9Citub0lubGluZSh0ZXN0
Um91bmROb25OZWdhdGl2ZVplcm8yKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkg
eworICAgIHNob3VsZEJlKDEgLyB0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8yKC0wLjQpLCBJbmZp
bml0eSk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIoLTAuNSks
IEluZmluaXR5KTsKKyAgICBzaG91bGRCZSgxIC8gdGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvMigt
MC42KSwgLTEuMCk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIo
LTAuMCksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZSgxIC8gdGVzdFJvdW5kTm9uTmVnYXRpdmVa
ZXJvMigwLjEpLCBJbmZpbml0eSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0
Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwppbmRleCBiODE1
ZWFlZTI3YWViYmViMDQ1NGUxOWQ1YjkwZjVhMWQwYjQ3NWNiLi5hZWUwNTMzODU2MDI1OWI1ZTBi
NWE2ZDhkMzM3MTZjNDg2Yjg0NTI1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy93ZWJraXQub3JnL0No
YW5nZUxvZworKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDE2LTAyLTI2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFtERkddW0ZUTF1bQjNdIFN1cHBvcnQgZmxvb3IgYW5kIGNlaWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDY4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1l
ZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wMi0xNiAgSm9uYXRoYW4gRGF2aXMg
IDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSByZWRpcmVjdCBmb3IgQjMgZG9jdW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVk
aWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCmluZGV4IDZhNTNjNTQ3ZmEzOTA3YTJkMTVl
Y2VmOWRlM2FhNTgxNmEwZTdhZTQuLjhlODRiNDhlMzFhM2UxMzU3YTE0OGIxMjlmNmFiNDU0YWQx
M2ZmZWYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlh
dGUtcmVwcmVzZW50YXRpb24uaHRtbAorKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMv
aW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKQEAgLTI3Miw2ICsyNzIsOSBAQAogICAg
ICAgPGR0PlQgQ2VpbChUKTwvZHQ+CiAgICAgICA8ZGQ+Q2VpbGluZy4gIFZhbGlkIGZvciBGbG9h
dCBhbmQgRG91YmxlLjwvZGQ+CiAKKyAgICAgIDxkdD5UIEZsb29yKFQpPC9kdD4KKyAgICAgIDxk
ZD5GbG9vcmluZy4gIFZhbGlkIGZvciBGbG9hdCBhbmQgRG91YmxlLjwvZGQ+CisKICAgICAgIDxk
dD5UIFNxcnQoVCk8L2R0PgogICAgICAgPGRkPlNxdWFyZSByb290LiAgVmFsaWQgZm9yIEZsb2F0
IGFuZCBEb3VibGUuPC9kZD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272357</attachid>
            <date>2016-02-26 12:43:04 -0800</date>
            <delta_ts>2016-02-29 11:39:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154683-20160227054246.patch</filename>
            <type>text/plain</type>
            <size>99629</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZGJjYTc3ZmVhZDZhNjVjY2FkYTcwMTc5ZjhjYmMwNDdmYjQ0ZmQwLi41NzJlZjQwNjRlNmY2OTFl
MDljNjdhM2MwMDQzMGU4NzNiNDA0OTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDAgQEAKKzIwMTYtMDItMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0RGR11bRlRMXVtCM10gU3VwcG9ydCBmbG9vciBhbmQgY2VpbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIGFuZCBmaXhlcyB0aGUgZm9sbG93aW5nIHRoaW5ncy4KKworICAgICAgICAx
LiBJbXBsZW1lbnQgQ2VpbCBhbmQgRmxvb3IgaW4gREZHLCBGVEwgYW5kIEIzCisKKyAgICAgICAg
eDg2IFNTRSA0LjIgYW5kIEFSTTY0IGhhdmUgcm91bmQgaW5zdHJ1Y3Rpb25zIHRoYXQgY2FuIGRp
cmVjdGx5IHBlcmZvcm0gQ2VpbCBvciBGbG9vci4KKyAgICAgICAgVGhpcyBwYXRjaCBsZXZlcmFn
ZXMgdGhpcyBmdW5jdGlvbmFsaXR5LiBXZSBpbnRyb2R1Y2UgQXJpdGhGbG9vciBhbmQgQXJpdGhD
ZWlsLgorICAgICAgICBEdXJpbmcgREZHIHBoYXNlLCB0aGVzZSBub2RlcyBhdHRlbXB0IHRvIGNv
bnZlcnQgaXRzZWxmIHRvIElkZW50aXR5IChpbiBGaXh1cCBwaGFzZSkuCisgICAgICAgIEFzIHRo
ZSBzYW1lIHRvIEFyaXRoUm91bmQsIGl0IHRyYWNrcyBhcml0aCByb3VuZGluZyBtb2RlLgorICAg
ICAgICBBbmQgaWYgdGhlc2Ugbm9kZXMgYXJlIHJlcXVpcmVkIHRvIGVtaXQgbWFjaGluZSBjb2Rl
cywgd2UgZW1pdCByb3VuZGluZyBtYWNoaW5lIGNvZGUKKyAgICAgICAgaWYgaXQgaXMgc3VwcG9y
dGVkIGluIHRoZSBjdXJyZW50IG1hY2hpbmUuIEZvciBleGFtcGxlLCBpbiB4ODYsIHdlIGVtaXQg
YHJvdW5kYC4KKworICAgICAgICAyLiBJbXBsZW1lbnQgRmxvb3IgaW4gQjMgYW5kIEFpcgorCisg
ICAgICAgIEFzIHRoZSBzYW1lIHRvIENlaWwgaW4gQjMsIHdlIGFkZCBhIG5ldyBCMyBJUiBhbmQg
QWlyIG9wY29kZSwgRmxvb3IuCisgICAgICAgIFRoaXMgRmxvb3IgaXMgbGV2ZXJhZ2VkIHRvIGlt
cGxlbWVudCBBcml0aEZsb29yIGluIERGRy4KKworICAgICAgICAzLiBGaXggQXJpdGhSb3VuZCBv
cGVyYXRpb24KKworICAgICAgICBDdXJyZW50bHksIHdlIHVzZWQgY3Z0c2Qyc2kgKGluIHg4Nikg
dG8gY29udmVydCBkb3VibGUgdmFsdWUgdG8gaW50MzIuCisgICAgICAgIEFuZCB3ZSBhbHNvIHVz
ZWQgdGhpcyB0byBpbXBsZW1lbnQgTWF0aC5yb3VuZCwgbGlrZSwgY3Z0c2Qyc2kodmFsdWUgKyAw
LjUpLgorICAgICAgICBIb3dldmVyLCB0aGlzIGltcGxlbWVudGF0aW9uIGlzIG5vdCBjb3JyZWN0
LiBCZWNhdXNlIGN2dHNkMnNpIGlzIG5vdCBmbG9vciBvcGVyYXRpb24uCisgICAgICAgIEl0IGlz
IHRydWNhdGUgb3BlcmF0aW9uLiBUaGlzIGlzIE9LIGZvciBwb3NpdGl2ZSBudW1iZXJzLiBCdXQg
TkcgZm9yIG5lZ2F0aXZlIG51bWJlcnMuCisgICAgICAgIEZvciBleGFtcGxlLCB0aGUgY3VycmVu
dCBpbXBsZW1lbnRhdGlvbiBhY2NpZGVudGFsbHkgcm91bmRzIGAtMC42YCB0byBgLTAuMGAuIFRo
aXMgc2hvdWxkIGJlIGAtMS4wYC4KKyAgICAgICAgVXNpbmcgQ2VpbCBhbmQgRmxvb3IgaW5zdHJ1
Y3Rpb25zLCB3ZSBpbXBsZW1lbnQgY29ycmVjdCBBcml0aFJvdW5kLgorCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNOjpjZWlsRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk06OmZsb29yRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnN1cHBv
cnRzRmxvYXRpbmdQb2ludENlaWwpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN1
cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6Zmxvb3JGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OnN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk12Nzo6Y2VpbERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNdjc6OmZsb29yRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6
c3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCk6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6
OmNlaWxEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmZsb29yRG91
YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdXBwb3J0c0Zsb2F0aW5n
UG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3VwcG9y
dHNGbG9hdGluZ1BvaW50Q2VpbCk6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyU0g0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0OjpzdXBwb3J0
c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyU0g0
OjpjZWlsRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OmZsb29yRG91
YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJTSDQ6OnN1cHBvcnRzRmxvYXRpbmdQ
b2ludENlaWwpOiBEZWxldGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6Zmxvb3JE
b3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6Zmxvb3JGbG9h
dCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKTogRGVsZXRlZC4KKyAgICAgICAgKiBiMy9CM0Nv
bnN0RG91YmxlVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3REb3VibGVWYWx1ZTo6
Zmxvb3JDb25zdGFudCk6CisgICAgICAgICogYjMvQjNDb25zdERvdWJsZVZhbHVlLmg6CisgICAg
ICAgICogYjMvQjNDb25zdEZsb2F0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q29uc3RG
bG9hdFZhbHVlOjpmbG9vckNvbnN0YW50KToKKyAgICAgICAgKiBiMy9CM0NvbnN0RmxvYXRWYWx1
ZS5oOgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3NBZnRlck9wdGltaXphdGlvbnMuY3BwOgor
ICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxv
d2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChX
VEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICog
YjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcDoKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9CM1Zh
bHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpmbG9vckNvbnN0YW50KToKKyAgICAg
ICAgKEpTQzo6QjM6OlZhbHVlOjplZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpr
ZXkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAgICAqIGIzL0Iz
VmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvdGVz
dGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckNlaWxBcmcpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEZsb29yQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckltbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEZsb29yRmxvb3JBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxGbG9vckFyZyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JJVG9ENjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEZsb29ySVRvRDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckFyZ1dpdGhVc2VsZXNz
RG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JBcmdXaXRoRWZm
ZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjpydW4pOgorICAgICAg
ICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0FyaXRoTW9kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50
SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdBcml0aE1vZGUuaDoKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgor
ICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0Mu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6Cisg
ICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZHVt
cCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6
OnJvdW5kU2hvdWxkU3BlY3VsYXRlSW50MzIpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6YXJpdGhOb2RlRmxhZ3MpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNBcml0aFJvdW5kaW5nTW9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAg
ICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAg
KiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1
dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW5nKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91bmQpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlQXJpdGhSb3VuZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVBcml0aEZsb29yKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUFyaXRoQ2VpbCk6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgor
ICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlRmxvb3IpOgorICAgICAgICAqIGppdC9U
aHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpjZWlsVGh1bmtHZW5lcmF0b3IpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYXJpdGgtcm91bmRpbmctbW9kZS5qczog
QWRkZWQuCisgICAgICAgIChmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KToKKyAgICAg
ICAgKGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk6CisgICAgICAgICh3YXJtdXAp
OgorICAgICAgICAodmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9tYXRoLWNlaWwtYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKG1hdGhDZWls
T25JbnRlZ2Vycyk6CisgICAgICAgIChtYXRoQ2VpbE9uRG91Ymxlcyk6CisgICAgICAgIChtYXRo
Q2VpbE9uQm9vbGVhbnMpOgorICAgICAgICAodXNlbGVzc01hdGhDZWlsKToKKyAgICAgICAgKG1h
dGhDZWlsV2l0aE92ZXJmbG93KToKKyAgICAgICAgKG1hdGhDZWlsQ29uc3VtZWRBc0RvdWJsZSk6
CisgICAgICAgIChtYXRoQ2VpbERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8pOgorICAgICAgICAo
bWF0aENlaWxOb0FyZ3VtZW50cyk6CisgICAgICAgIChtYXRoQ2VpbFRvb01hbnlBcmd1bWVudHMp
OgorICAgICAgICAodGVzdE1hdGhDZWlsT25Db25zdGFudHMpOgorICAgICAgICAobWF0aENlaWxT
dHJ1Y3RUcmFuc2l0aW9uKToKKyAgICAgICAgKE1hdGguY2VpbCk6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL21hdGgtZmxvb3ItYXJpdGgtcm91bmRpbmctbW9kZS5qczogQWRkZWQuCisgICAgICAg
IChmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KToKKyAgICAgICAgKGZpcnN0RG9Ob3RD
YXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk6CisgICAgICAgICh3YXJtdXApOgorICAgICAgICAodmVy
aWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRo
LWZsb29yLWJhc2ljcy5qczogQWRkZWQuCisgICAgICAgIChtYXRoRmxvb3JPbkludGVnZXJzKToK
KyAgICAgICAgKG1hdGhGbG9vck9uRG91Ymxlcyk6CisgICAgICAgIChtYXRoRmxvb3JPbkJvb2xl
YW5zKToKKyAgICAgICAgKHVzZWxlc3NNYXRoRmxvb3IpOgorICAgICAgICAobWF0aEZsb29yV2l0
aE92ZXJmbG93KToKKyAgICAgICAgKG1hdGhGbG9vckNvbnN1bWVkQXNEb3VibGUpOgorICAgICAg
ICAobWF0aEZsb29yRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyk6CisgICAgICAgIChtYXRoRmxv
b3JOb0FyZ3VtZW50cyk6CisgICAgICAgIChtYXRoRmxvb3JUb29NYW55QXJndW1lbnRzKToKKyAg
ICAgICAgKHRlc3RNYXRoRmxvb3JPbkNvbnN0YW50cyk6CisgICAgICAgIChtYXRoRmxvb3JTdHJ1
Y3RUcmFuc2l0aW9uKToKKyAgICAgICAgKE1hdGguZmxvb3IpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9tYXRoLXJvdW5kLXNob3VsZC1ub3QtdXNlLXRydW5jYXRlLmpzOiBBZGRlZC4KKyAgICAg
ICAgKG1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8pOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9tYXRoLXJvdW5kaW5nLWluZmluaXR5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3Vs
ZEJlKToKKyAgICAgICAgKHRlc3RSb3VuZCk6CisgICAgICAgICh0ZXN0Rmxvb3IpOgorICAgICAg
ICAodGVzdENlaWwpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5hbi5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0Um91bmQpOgorICAg
ICAgICAodGVzdEZsb29yKToKKyAgICAgICAgKHRlc3RDZWlsKToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvbWF0aC1yb3VuZGluZy1uZWdhdGl2ZS16ZXJvLmpzOiBBZGRlZC4KKyAgICAgICAgKHNo
b3VsZEJlKToKKyAgICAgICAgKHRlc3RSb3VuZCk6CisgICAgICAgICh0ZXN0Rmxvb3IpOgorICAg
ICAgICAodGVzdENlaWwpOgorICAgICAgICAodGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvKToKKyAg
ICAgICAgKHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIpOgorCiAyMDE2LTAyLTI1ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbSlNDXSBUZW1wb3Jh
bCBEZWFkIFpvbmUgY2hlY2tzIG9uICJ0aGlzIiBhcmUgZWxpbWluYXRlZCB3aGVuIGRvaW5nIE9T
UiBFbnRyeSB0byBGVEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk0uaAppbmRleCBjNThjZjhhZWU3MjBmMzRkNzFjYmQ1ZTA2MDVkZTc3
ZDRjYjA2ZWY5Li45N2QyMTBlMjdiNGQ4OWUwMWFkMmE0NTcyNzc5YmZjOWZiMjdmYTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TS5oCkBAIC0xMTM5LDcgKzExMzksNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTSA6IHB1Ymxp
YyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFSTUFzc2VtYmxlciwgTWFjcm9Bc3NlbQogICAgICAg
ICByZXR1cm4gc19pc1ZGUFByZXNlbnQ7CiAgICAgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludEFicygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgdm9pZCBsb2FkRmxvYXQoQmFzZUluZGV4IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKQEAgLTExNjQsNyArMTE2NCwxMyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTSA6IHB1
YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFSTUFzc2VtYmxlciwgTWFjcm9Bc3NlbQogCiAg
ICAgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIGNlaWxEb3VibGUoRlBSZWdpc3RlcklELCBG
UFJlZ2lzdGVySUQpCiAgICAgewotICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRpbmdQb2lu
dENlaWwoKSk7CisgICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmco
KSk7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCisgICAgTk9fUkVUVVJOX0RVRV9UT19DUkFT
SCB2b2lkIGZsb29yRG91YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKCFzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKTsKICAgICAgICAg
Q1JBU0goKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggYTU5MGI0NDc3NzExZDI4Zjk1ODI4YjA5
NDc2NDY5ZDQ0OGE0ZDkzZi4uNTk3NzYxMzUzMjM3MjI4YTFhYWE4OWYyN2E4YWU4OTViNjUxNTNl
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmgKQEAgLTEzNDMsNyArMTM0Myw3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVy
QVJNNjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBUk02NEFzc2VtYmxlciwgTWFj
cm9BCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50U3FydCgp
IHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRB
YnMoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1Bv
aW50Q2VpbCgpIHsgcmV0dXJuIHRydWU7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRSb3VuZGluZygpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGVudW0gQnJhbmNoVHJ1
bmNhdGVUeXBlIHsgQnJhbmNoSWZUcnVuY2F0ZUZhaWxlZCwgQnJhbmNoSWZUcnVuY2F0ZVN1Y2Nl
c3NmdWwgfTsKIApAQCAtMTM5OSw2ICsxMzk5LDExIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJN
NjQgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBUk02NEFzc2VtYmxlciwgTWFjcm9B
CiAgICAgICAgIG1fYXNzZW1ibGVyLmZyaW50bTw2ND4oZGVzdCwgc3JjKTsKICAgICB9CiAKKyAg
ICB2b2lkIGZsb29yRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCisg
ICAgeworICAgICAgICBtX2Fzc2VtYmxlci5mcmludG08MzI+KGRlc3QsIHNyYyk7CisgICAgfQor
CiAgICAgLy8gQ29udmVydCAnc3JjJyB0byBhbiBpbnRlZ2VyLCBhbmQgcGxhY2VzIHRoZSByZXN1
bHRpbmcgJ2Rlc3QnLgogICAgIC8vIElmIHRoZSByZXN1bHQgaXMgbm90IHJlcHJlc2VudGFibGUg
YXMgYSAzMiBiaXQgdmFsdWUsIGJyYW5jaC4KICAgICAvLyBNYXkgYWxzbyBicmFuY2ggZm9yIHNv
bWUgdmFsdWVzIHRoYXQgYXJlIHJlcHJlc2VudGFibGUgaW4gMzIgYml0cwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRl
eCBjMDc1ODUyMDRlMjVlZTk5ZWYzYzA5M2FlMzU4NTJhMDJkZmZiYzJhLi5mYzk0Yjg4OGRlMzVl
NTk3NGJjMDVkYjE2NTY0ODMxMjc5NWE3ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtODcwLDcgKzg3MCw3
IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNdjcgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBUk12N0Fzc2VtYmxlciwgTWFjcm9BCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9h
dGluZ1BvaW50VHJ1bmNhdGUoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3Vw
cG9ydHNGbG9hdGluZ1BvaW50U3FydCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC0xMDYzLDcgKzEwNjMsMTMgQEAgY2xhc3MgTWFjcm9B
c3NlbWJsZXJBUk12NyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFSTXY3QXNzZW1i
bGVyLCBNYWNyb0EKIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBjZWlsRG91Ymxl
KEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRDZWlsKCkpOworICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRp
bmdQb2ludFJvdW5kaW5nKCkpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIE5PX1JF
VFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBmbG9vckRvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0
ZXJJRCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRp
bmcoKSk7CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCA5YjM3NTY0ZDUx
ZjhhZmE0NGFjNWQyODcyYTNkODkzYmI5YzYzNjdhLi43YzRiZDA4MGRmMTM0M2I4ZWFlZDBmNTAy
MjRkMmEyYTk5YmRlOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTY0OSw3ICs2NDksMTMgQEAgY2xhc3MgTWFj
cm9Bc3NlbWJsZXJNSVBTIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8TUlQU0Fzc2Vt
YmxlciwgTWFjcm9Bc3MKIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBjZWlsRG91
YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKCkpOworICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxv
YXRpbmdQb2ludFJvdW5kaW5nKCkpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIE5P
X1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBmbG9vckRvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVn
aXN0ZXJJRCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91
bmRpbmcoKSk7CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCkBAIC0xMjM3LDcgKzEyNDMsNyBA
QCBjbGFzcyBNYWNyb0Fzc2VtYmxlck1JUFMgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
cjxNSVBTQXNzZW1ibGVyLCBNYWNyb0FzcwogI2VuZGlmCiAgICAgfQogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gU3RhY2sgbWFuaXB1bGF0aW9uIG9wZXJhdGlvbnM6CiAgICAgLy8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJT
SDQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQu
aAppbmRleCAwZjQ2ZjhmNWEwMWI4NGUzZDJkODVlMzM5NzNhZmY4ZTFjMjUyYWUxLi43NTc1NjA5
NWI4MDAzOTBkZGE5ZWM3ZGU4MzE5OTAyNTdkNjEzYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyU0g0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oCkBAIC0xMDkxLDcgKzEw
OTEsNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclNINCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyPFNINEFzc2VtYmxlciwgTWFjcm9Bc3NlbQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHN0
YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKCkgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIHZvaWQgbW92ZURvdWJsZVRvSW50cyhGUFJlZ2lzdGVySUQgc3JjLCBS
ZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQogICAgIHsKQEAgLTE1NzcsNyArMTU3
NywxMyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclNINCA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyPFNINEFzc2VtYmxlciwgTWFjcm9Bc3NlbQogCiAgICAgTk9fUkVUVVJOX0RVRV9UT19D
UkFTSCB2b2lkIGNlaWxEb3VibGUoRlBSZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpCiAgICAgewot
ICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSk7CisgICAgICAgIEFT
U0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSk7CisgICAgICAgIENSQVNIKCk7
CisgICAgfQorCisgICAgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIGZsb29yRG91YmxlKEZQ
UmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFzdXBwb3J0
c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKTsKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaAppbmRleCAzZWY5ODg1NjQxNTI2OGZkOTJhODA4MzU4MGY4ODZmZDE5OWM1
ZDZjLi45YjVhZjZhNDNiZWMzYzA4ZDIyZDU4MGQ5MWYyNTljZDdiNTIzMjE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCkBAIC02OTYsNiArNjk2LDI2IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8WDg2QXNzZW1ibGVyLCBNYWNyCiAg
ICAgICAgIG1fYXNzZW1ibGVyLnJvdW5kc3NfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRzdCwg
WDg2QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZEluZmluaXRpKTsKICAgICB9CiAKKyAg
ICB2b2lkIGZsb29yRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisg
ICAgeworICAgICAgICBtX2Fzc2VtYmxlci5yb3VuZHNkX3JyKHNyYywgZHN0LCBYODZBc3NlbWJs
ZXI6OlJvdW5kaW5nVHlwZTo6VG93YXJkTmVnYXRpdmVJbmZpbml0aSk7CisgICAgfQorCisgICAg
dm9pZCBmbG9vckRvdWJsZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLnJvdW5kc2RfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2UsIGRzdCwg
WDg2QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZE5lZ2F0aXZlSW5maW5pdGkpOworICAg
IH0KKworICAgIHZvaWQgZmxvb3JGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQg
ZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucm91bmRzc19ycihzcmMsIGRzdCwgWDg2
QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZE5lZ2F0aXZlSW5maW5pdGkpOworICAgIH0K
KworICAgIHZvaWQgZmxvb3JGbG9hdChBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRzdCkKKyAg
ICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnJvdW5kc3NfbXIoc3JjLm9mZnNldCwgc3JjLmJhc2Us
IGRzdCwgWDg2QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZE5lZ2F0aXZlSW5maW5pdGkp
OworICAgIH0KKwogICAgIC8vIE1lbW9yeSBhY2Nlc3Mgb3BlcmF0aW9uczoKICAgICAvLwogICAg
IC8vIExvYWRzIGFyZSBvZiB0aGUgZm9ybSBsb2FkKGFkZHJlc3MsIGRlc3RpbmF0aW9uKSBhbmQg
c3RvcmVzIG9mIHRoZSBmb3JtCkBAIC0yMzAwLDcgKzIzMjAsNyBAQCBjbGFzcyBNYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbiA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPFg4NkFzc2VtYmxl
ciwgTWFjcgogICAgICAgICByZXR1cm4gWDg2QXNzZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRT
aXplKCk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2Vp
bCgpCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKQogICAg
IHsKICAgICAgICAgaWYgKHNfc3NlNF8xQ2hlY2tTdGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6Ok5v
dENoZWNrZWQpIHsKICAgICAgICAgICAgIGludCBmbGFncyA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwCmluZGV4IGY5Y2UyOTZlY2NmYzk4
YmM4NDE4YWI4NTY3MjA4ZDA1ZDVlMDg4NjUuLjQ2MTgzZjMzNGExZGI5ODNlNGI0MTg0Y2JhMzhk
OGFjODlkMmQ3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0
RG91YmxlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91
YmxlVmFsdWUuY3BwCkBAIC05Nyw2ICs5NywxMSBAQCBWYWx1ZSogQ29uc3REb3VibGVWYWx1ZTo6
Y2VpbENvbnN0YW50KFByb2NlZHVyZSYgcHJvYykgY29uc3QKICAgICByZXR1cm4gcHJvYy5hZGQ8
Q29uc3REb3VibGVWYWx1ZT4ob3JpZ2luKCksIGNlaWwobV92YWx1ZSkpOwogfQogCitWYWx1ZSog
Q29uc3REb3VibGVWYWx1ZTo6Zmxvb3JDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RG91YmxlVmFsdWU+KG9yaWdpbigpLCBmbG9vciht
X3ZhbHVlKSk7Cit9CisKIFZhbHVlKiBDb25zdERvdWJsZVZhbHVlOjpzcXJ0Q29uc3RhbnQoUHJv
Y2VkdXJlJiBwcm9jKSBjb25zdAogewogICAgIHJldHVybiBwcm9jLmFkZDxDb25zdERvdWJsZVZh
bHVlPihvcmlnaW4oKSwgc3FydChtX3ZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb25zdERvdWJsZVZhbHVlLmgKaW5kZXggYjJjYjI0NmVlNmVhZWI1MmM4ZjAyMjBiOTE0
ZGU2Y2IyNWFkZDcyZS4uZThlYTUzOWQ1MWFmNzZkOTViODBiNDIzNDBjOTBkYWFkNzZkZWU2YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91YmxlVmFsdWUuaApAQCAt
NTIsNiArNTIsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBDb25zdERvdWJsZVZhbHVlIDog
cHVibGljIFZhbHVlIHsKICAgICBWYWx1ZSogZG91YmxlVG9GbG9hdENvbnN0YW50KFByb2NlZHVy
ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFZhbHVlKiBhYnNDb25zdGFudChQcm9jZWR1cmUmKSBj
b25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSogY2VpbENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
IG92ZXJyaWRlOworICAgIFZhbHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFZhbHVlKiBzcXJ0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25z
dEZsb2F0VmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZh
bHVlLmNwcAppbmRleCA0NGY2NDAzMzc2ZGMzZTJjODdhOTYxMWFiZDIzMWQzMzRhY2VlZDQ1Li43
YzFiMzk1ZDUxNDMyN2MwOGExYTJjY2ZhMTllYmIxMTk3YTg1YjVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdEZsb2F0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRWYWx1ZS5jcHAKQEAgLTk3LDYgKzk3LDExIEBA
IFZhbHVlKiBDb25zdEZsb2F0VmFsdWU6OmNlaWxDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNv
bnN0CiAgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIGNlaWxm
KG1fdmFsdWUpKTsKIH0KIAorVmFsdWUqIENvbnN0RmxvYXRWYWx1ZTo6Zmxvb3JDb25zdGFudChQ
cm9jZWR1cmUmIHByb2MpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2MuYWRkPENvbnN0RmxvYXRW
YWx1ZT4ob3JpZ2luKCksIGZsb29yZihtX3ZhbHVlKSk7Cit9CisKIFZhbHVlKiBDb25zdEZsb2F0
VmFsdWU6OnNxcnRDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHByb2MuYWRkPENvbnN0RmxvYXRWYWx1ZT4ob3JpZ2luKCksIHN0YXRpY19jYXN0PGZsb2F0Pihz
cXJ0KG1fdmFsdWUpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b25zdEZsb2F0VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRW
YWx1ZS5oCmluZGV4IDQ0MGJkNjE4NjU2YzRkNjEwYzBhM2ExYWZmZTA2ZDk1MDA3NWNjYmMuLjM2
NjczY2FmZTcwNjYxNmJkYmJmMmNiNWVkZGE1NDZiOWFhMjk4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRWYWx1ZS5oCkBAIC01MSw2ICs1MSw3IEBAIGNsYXNz
IEpTX0VYUE9SVF9QUklWQVRFIENvbnN0RmxvYXRWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CiAgICAg
VmFsdWUqIGZsb2F0VG9Eb3VibGVDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsK
ICAgICBWYWx1ZSogYWJzQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
VmFsdWUqIGNlaWxDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKKyAgICBWYWx1
ZSogZmxvb3JDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSog
c3FydENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVHJpU3RhdGUg
ZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3NBZnRlck9wdGltaXph
dGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3NBZnRlck9w
dGltaXphdGlvbnMuY3BwCmluZGV4IDViMmQ5MGI2OTFmMjM3N2VmYjljYTM5ZmRjYzNkM2I4M2Ji
NjJjNmIuLjdlMzc4NWMzMmI3MzJiMjA1YTMzNTg0NTRkZTQ5MGNiNDgxNzQ5ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zQWZ0ZXJPcHRpbWl6YXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvc0FmdGVy
T3B0aW1pemF0aW9ucy5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgY2xhc3MgTG93ZXJNYWNyb3Mgewog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBD
ZWlsOiB7Ci0gICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRDZWlsKCkpCisgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyOjpzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgICAgIFZhbHVlKiBmdW5jdGlvbkFkZHJlc3MgPSBudWxscHRyOwpAQCAt
MTA5LDYgKzEwOSwyOCBAQCBjbGFzcyBMb3dlck1hY3JvcyB7CiAgICAgICAgICAgICAgICAgbV92
YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShyZXN1bHQpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBGbG9vcjogeworICAgICAgICAgICAg
ICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSkK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBWYWx1ZSogZnVu
Y3Rpb25BZGRyZXNzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBkb3VibGUgKCpmbG9vckRv
dWJsZSkoZG91YmxlKSA9IGZsb29yOworICAgICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT50eXBl
KCkgPT0gRG91YmxlKQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbkFkZHJlc3MgPSBtX2lu
c2VydGlvblNldC5pbnNlcnQ8Q29uc3RQdHJWYWx1ZT4obV9pbmRleCwgbV9vcmlnaW4sIGZsb29y
RG91YmxlKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChtX3ZhbHVlLT50eXBlKCkgPT0gRmxv
YXQpCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uQWRkcmVzcyA9IG1faW5zZXJ0aW9uU2V0
Lmluc2VydDxDb25zdFB0clZhbHVlPihtX2luZGV4LCBtX29yaWdpbiwgZmxvb3JmKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisKKyAgICAgICAgICAgICAgICBWYWx1ZSogcmVzdWx0ID0gbV9pbnNlcnRpb25T
ZXQuaW5zZXJ0PENDYWxsVmFsdWU+KG1faW5kZXgsCisgICAgICAgICAgICAgICAgICAgIG1fdmFs
dWUtPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vcmlnaW4sCisgICAgICAgICAgICAg
ICAgICAgIEVmZmVjdHM6Om5vbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25BZGRy
ZXNzLAorICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAg
ICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShyZXN1bHQpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBOZWc6IHsKICAgICAg
ICAgICAgICAgICBpZiAoIWlzRmxvYXQobV92YWx1ZS0+dHlwZSgpKSkKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmlu
ZGV4IDcxNzVkZTRkNDEzYTczMjhkMGMzZWU2NDk4MzRjYTYwZGNiMTk0YmMuLjFjZDU1N2I3ZDAw
OTM5MGI5MmU1ZjU0ODQyMGQyYzU3ZjA0YTM5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCkBAIC0xODI3LDYgKzE4MjcsMTEgQEAgY2xhc3MgTG93ZXJUb0Fp
ciB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIEZsb29y
OiB7CisgICAgICAgICAgICBhcHBlbmRVbk9wPEFpcjo6T29wcywgQWlyOjpPb3BzLCBGbG9vckRv
dWJsZSwgRmxvb3JGbG9hdD4obV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKICAgICAgICAgY2FzZSBTcXJ0OiB7CiAgICAgICAgICAgICBhcHBlbmRV
bk9wPEFpcjo6T29wcywgQWlyOjpPb3BzLCBTcXJ0RG91YmxlLCBTcXJ0RmxvYXQ+KG1fdmFsdWUt
PmNoaWxkKDApKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNP
cGNvZGUuY3BwCmluZGV4IDdjOTI1YWRjZGJlZGRmYzExM2IzNzAxOGVmYmQwMGZiMWE2YjUxMzQu
LmFlMGI5NDg4ZGZmODQ5NTBlZWRkODhlOTQ2YWViZGI4Y2U3MzE4ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApAQCAtMTYxLDYgKzE2MSw5IEBAIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogICAgIGNhc2UgQ2VpbDoKICAg
ICAgICAgb3V0LnByaW50KCJDZWlsIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEZsb29y
OgorICAgICAgICBvdXQucHJpbnQoIkZsb29yIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IFNxcnQ6CiAgICAgICAgIG91dC5wcmludCgiU3FydCIpOwogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCmluZGV4IDlkOWJmMTgyNzViMjFlOWNmMGI4MmU3NWMy
NTZlOWJlYTZlMzc5YjQuLjc2YjkxYjYyNGM1ZjkwNDY0ZmQwYzBiNjYwZDNmMDBiOWI1OTIxNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCkBAIC05Nyw2ICs5Nyw3IEBAIGVudW0g
T3Bjb2RlIDogaW50MTZfdCB7CiAgICAgLy8gRmxvYXRpbmcgcG9pbnQgbWF0aC4KICAgICBBYnMs
CiAgICAgQ2VpbCwKKyAgICBGbG9vciwKICAgICBTcXJ0LAogCiAgICAgLy8gQ2FzdHMgYW5kIHN1
Y2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VEb3VibGVU
b0Zsb2F0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxv
YXQuY3BwCmluZGV4IGNiNDFmNzRiYTFjMzc3M2RkY2QzYmQzZmFlMGQ5MGVmZTdiMGVjZGEuLmQ4
ZTQzYjRlZWIwMTA2MjU1Yzg5YmY1MzZhNjAxMjZmMWJhODcyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCkBAIC01MCw2ICs1
MCw3IEBAIHZvaWQgYXR0ZW1wdFNpbXBsaWZpY2F0aW9uKFZhbHVlKiBjYW5kaWRhdGUpCiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQWJzOgogICAgIGNhc2UgQ2VpbDoKKyAgICBjYXNlIEZsb29y
OgogICAgIGNhc2UgU3FydDoKICAgICAgICAgaWYgKGNhbmRpZGF0ZS0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IEZsb2F0VG9Eb3VibGUpIHsKICAgICAgICAgICAgIGNhbmRpZGF0ZS0+Y2hpbGQoMCkg
PSBjYW5kaWRhdGUtPmNoaWxkKDApLT5jaGlsZCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAppbmRleCA4M2NiMjFmYjgyNTM2ODFmNmVhMTRiNWVi
MGI1ZjI2OTI0ODdjMTFhLi4xMjViOWY5YTA5NmNiZmZmNjdmZDViZTkwN2M0OWM0NTRjNGQ4MTM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCkBA
IC0xMTQwLDYgKzExNDAsMTMgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IENl
aWwoRmxvb3IodmFsdWUpKQorICAgICAgICAgICAgLy8gSW50byB0aGlzOiBGbG9vcih2YWx1ZSkK
KyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRmxvb3IpIHsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNo
aWxkKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgLy8gVHVybiB0aGlzOiBDZWlsKElUb0QodmFsdWUpKQogICAgICAgICAgICAgLy8gSW50
byB0aGlzOiBJVG9EKHZhbHVlKQogICAgICAgICAgICAgLy8KQEAgLTExNTEsNiArMTE1OCwzOSBA
QCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKIAorICAgICAgICBjYXNlIEZsb29yOgorICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBGbG9v
cihjb25zdGFudCkKKyAgICAgICAgICAgIC8vIEludG8gdGhpczogZmxvb3I8dmFsdWUtPnR5cGUo
KT4oY29uc3RhbnQpCisgICAgICAgICAgICBpZiAoVmFsdWUqIGNvbnN0YW50ID0gbV92YWx1ZS0+
Y2hpbGQoMCktPmZsb29yQ29uc3RhbnQobV9wcm9jKSkgeworICAgICAgICAgICAgICAgIHJlcGxh
Y2VXaXRoTmV3VmFsdWUoY29uc3RhbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEZsb29yKEZsb29yKHZhbHVlKSkK
KyAgICAgICAgICAgIC8vIEludG8gdGhpczogRmxvb3IodmFsdWUpCisgICAgICAgICAgICBpZiAo
bV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEZsb29yKSB7CisgICAgICAgICAgICAgICAg
bV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFR1cm4gdGhp
czogRmxvb3IoQ2VpbCh2YWx1ZSkpCisgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IENlaWwodmFs
dWUpCisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IENlaWwp
IHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUt
PmNoaWxkKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gVHVybiB0aGlzOiBGbG9vcihJVG9EKHZhbHVlKSkKKyAgICAgICAgICAgIC8v
IEludG8gdGhpczogSVRvRCh2YWx1ZSkKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBU
aGF0IHdvcmtzIGZvciBJbnQ2NCBiZWNhdXNlIGJvdGggQVJNNjQgYW5kIHg4Nl82NAorICAgICAg
ICAgICAgLy8gcGVyZm9ybSByb3VuZGluZyB3aGVuIGNvbnZlcnRpbmcgYSA2NGJpdCBpbnRlZ2Vy
IHRvIGRvdWJsZS4KKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkg
PT0gSVRvRCkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHko
bV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBTcXJ0OgogICAgICAgICAgICAg
Ly8gVHVybiB0aGlzOiBTcXJ0KGNvbnN0YW50KQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBz
cXJ0PHZhbHVlLT50eXBlKCk+KGNvbnN0YW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
aWRhdGUuY3BwCmluZGV4IDQ3YTQ5NGQyZDE0NDQ2MmIxMmRmNzMyYWMxYjU3MGFmODBlMDlhNTcu
LjI1ZjU1YzZlMzc3NTg1ZGJjNTdmNGU0ZWEwYTZmY2NmYjIyMTY4M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKQEAgLTI0MSw2ICsyNDEsNyBAQCBjbGFzcyBWYWxp
ZGF0ZXIgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBBYnM6CiAg
ICAgICAgICAgICBjYXNlIENlaWw6CisgICAgICAgICAgICBjYXNlIEZsb29yOgogICAgICAgICAg
ICAgY2FzZSBTcXJ0OgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJl
bigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNG
bG9hdCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKaW5kZXggYzAyOGRhZGNiMmEzMWQ1NjMyNmJmODAyM2Ux
ZWJiNjczYzg2ZjU3Ny4uOWYxNDQ3NGVlZTdlMGVjOGNjZThmZjg4Y2U1NTYzNjIxZDc5YmE1OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcApAQCAtMjg3LDYgKzI4NywxMSBAQCBW
YWx1ZSogVmFsdWU6OmNlaWxDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdAogICAgIHJldHVybiBu
dWxscHRyOwogfQogCitWYWx1ZSogVmFsdWU6OmZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikgY29u
c3QKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogVmFsdWUqIFZhbHVlOjpzcXJ0Q29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQzMiw2ICs0
MzcsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIENsejoKICAg
ICBjYXNlIEFiczoKICAgICBjYXNlIENlaWw6CisgICAgY2FzZSBGbG9vcjoKICAgICBjYXNlIFNx
cnQ6CiAgICAgY2FzZSBCaXR3aXNlQ2FzdDoKICAgICBjYXNlIFNFeHQ4OgpAQCAtNTE0LDYgKzUy
MCw3IEBAIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogICAgIGNhc2UgSWRlbnRpdHk6CiAg
ICAgY2FzZSBBYnM6CiAgICAgY2FzZSBDZWlsOgorICAgIGNhc2UgRmxvb3I6CiAgICAgY2FzZSBT
cXJ0OgogICAgIGNhc2UgU0V4dDg6CiAgICAgY2FzZSBTRXh0MTY6CkBAIC02MjksNiArNjM2LDcg
QEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNvZGUgb3Bjb2RlLCBWYWx1ZSogZmlyc3RDaGlsZCwg
VmFsdWUqIHNlY29uZENoaWxkKQogICAgIGNhc2UgQ2x6OgogICAgIGNhc2UgQWJzOgogICAgIGNh
c2UgQ2VpbDoKKyAgICBjYXNlIEZsb29yOgogICAgIGNhc2UgU3FydDoKICAgICBjYXNlIENoZWNr
QWRkOgogICAgIGNhc2UgQ2hlY2tTdWI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAppbmRl
eCBjYmJmNjNjMGE2NWEzOTE2NjA4Y2FlM2E2N2U4ODUwOWI5YTNjZjAzLi4zZWQ2M2NiMDU0MGMz
MzFiNDZjODA2Y2Q5M2VjOGFjZTliMDE1MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
LmgKQEAgLTEzNyw2ICsxMzcsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSB7CiAg
ICAgdmlydHVhbCBWYWx1ZSogZmxvYXRUb0RvdWJsZUNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
OwogICAgIHZpcnR1YWwgVmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0OwogICAg
IHZpcnR1YWwgVmFsdWUqIGNlaWxDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdDsKKyAgICB2aXJ0
dWFsIFZhbHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0OwogICAgIHZpcnR1YWwg
VmFsdWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgVHJp
U3RhdGUgZXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFs
bHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0
ZXJTdGFsbHMuY3BwCmluZGV4IGI0ODkzMDhkZDhhNDcwMzE2ZDYzMzNlMjg1ZWI0ZTIyNDg2ZmE4
NTUuLmMzNjQwZDYwZjk5NDE2M2U3ODg5OTQ1MWI2NjE0MGY0NWZlMGFhMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdp
c3RlclN0YWxscy5jcHAKQEAgLTU0LDYgKzU0LDggQEAgYm9vbCBoYXNQYXJ0aWFsWG1tUmVnVXBk
YXRlKGNvbnN0IEluc3QmIGluc3QpCiAgICAgY2FzZSBTcXJ0RmxvYXQ6CiAgICAgY2FzZSBDZWls
RG91YmxlOgogICAgIGNhc2UgQ2VpbEZsb2F0OgorICAgIGNhc2UgRmxvb3JEb3VibGU6CisgICAg
Y2FzZSBGbG9vckZsb2F0OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
T3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzCmluZGV4IDViNTA2ZDhkMWQwNTM3NTgxZDljY2U5NTFjMzg1NTk3YmMxNWUwMTkuLjFj
ZjkxYzJjNGJkYWM5YTQ1Mjk5Yzk1ODM4YjNkMmI4OWJjMGQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtNDMyLDYgKzQzMiwxNCBA
QCBDZWlsRmxvYXQgVTpGOjMyLCBEOkY6MzIKICAgICBUbXAsIFRtcAogICAgIHg4NjogQWRkciwg
VG1wCiAKK0Zsb29yRG91YmxlIFU6Rjo2NCwgRDpGOjY0CisgICAgVG1wLCBUbXAKKyAgICB4ODY6
IEFkZHIsIFRtcAorCitGbG9vckZsb2F0IFU6RjozMiwgRDpGOjMyCisgICAgVG1wLCBUbXAKKyAg
ICB4ODY6IEFkZHIsIFRtcAorCiBTcXJ0RG91YmxlIFU6Rjo2NCwgRDpGOjY0CiAgICAgVG1wLCBU
bXAKICAgICB4ODY6IEFkZHIsIFRtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAppbmRl
eCAyZWMzMWY4OTU4NmU0YzNiOGFlNjdmYTI5NGVhYTBkMzBlN2I0ODc5Li45MGRmNjVlYjJhYmZj
MDk3MzNmYmYyNzI3M2U3Yzk0ZjA2NTk2ZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcApAQCAtMzM1OCw2ICszMzU4LDE4IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGRvdWJsZSBh
KQogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
Y2VpbChhKSkpOwogfQogCit2b2lkIHRlc3RGbG9vckNlaWxBcmcoZG91YmxlIGEpCit7CisgICAg
UHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWls
LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKKyAgICBWYWx1ZSogd3JhcHBp
bmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBm
aXJzdENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7Cit9CisKIHZvaWQgdGVzdENl
aWxJVG9ENjQoaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMzQ0MCw2ICsz
NDUyLDIwIEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGZsb2F0IGEpCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgY2VpbGYoYSkpKTsKIH0KIAordm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGZsb2F0IGEpCit7Cisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBWYWx1ZSogYXJndW1lbnQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
VHJ1bmMsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKKyAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgIFZhbHVlKiB3cmFw
cGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCks
IGZpcnN0Q2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWls
ZihhKSkpOworfQorCiB2b2lkIHRlc3RDZWlsQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9u
KGZsb2F0IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0zNDc3LDYgKzM1MDMsMjAxIEBA
IHZvaWQgdGVzdENlaWxBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbihmbG9hdCBhKQog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGVmZmVjdCwgY2VpbGYoYSkpKTsKIH0KIAordm9pZCB0ZXN0
Rmxvb3JBcmcoZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEZsb29yLCBPcmlnaW4oKSwKKyAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKK30KKwordm9pZCB0ZXN0
Rmxvb3JJbW0oZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOworICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwg
YXJndW1lbnQpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jKSwgZmxvb3IoYSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JNZW0oZG91YmxlIGEpCit7
CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlW
YWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CisK
KyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJmEpLCBm
bG9vcihhKSkpOworfQorCit2b2lkIHRlc3RGbG9vckZsb29yQXJnKGRvdWJsZSBhKQoreworICAg
IFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b29yLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKKyAgICBWYWx1ZSogc2Vj
b25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwg
Zmlyc3RGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOworfQorCit2b2lkIHRlc3RD
ZWlsRmxvb3JBcmcoZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAorICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCkpOworICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKKyAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwp
OworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEp
LCBmbG9vcihhKSkpOworfQorCit2b2lkIHRlc3RGbG9vcklUb0Q2NChpbnQ2NF90IGEpCit7Cisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgVmFsdWUqIGFy
Z3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdp
bigpLCBhcmd1bWVudCk7CisKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKKworICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3Ioc3Rh
dGljX2Nhc3Q8ZG91YmxlPihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JJVG9EMzIoaW50NjRf
dCBhKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAg
VmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CisKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsK
KworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
Zmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmco
ZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVudDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CisgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOworICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKworICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxv
b3JJbW0oZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKKyAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKKyAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisKKyAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7Cit9CisKK3Zv
aWQgdGVzdEZsb29yTWVtKGZsb2F0IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwor
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBP
cmlnaW4oKSwgbG9hZEZsb2F0KTsKKyAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
ICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0
Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CisgICAgVmFsdWUq
IGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4o
KSwgYXJndW1lbnQpOworICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKKyAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7
CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKK30KKwordm9pZCB0ZXN0Q2VpbEZs
b29yQXJnKGZsb2F0IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKKyAgICBWYWx1ZSogZmlyc3RG
bG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1
bWVudCk7CisgICAgVmFsdWUqIHdyYXBwaW5nQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CisKKyAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmdXaXRo
VXNlbGVzc0RvdWJsZUNvbnZlcnNpb24oZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsK
KyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1
bWVudDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7
CisgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhc0RvdWJsZSk7Cisg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVs
RG91YmxlQ29udmVyc2lvbihmbG9hdCBhKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKKyAgICBW
YWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3Vi
bGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICBWYWx1
ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCByZXN1bHQpOworICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Cisg
ICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91Ymxl
QWRkcmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworCisgICAgZG91YmxlIGVmZmVjdCA9IDA7CisgICAgaW50
MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKKyAgICBDSEVDSyhpc0lkZW50aWNhbChyZXN1bHRW
YWx1ZSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKKyAgICBDSEVDSyhpc0lk
ZW50aWNhbChlZmZlY3QsIGZsb29yZihhKSkpOworfQorCiB2b2lkIHRlc3RTcXJ0QXJnKGRvdWJs
ZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTExMjIsMTUgKzExMzQzLDMyIEBAIHZv
aWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU5fVU5BUlkodGVzdENlaWxJbW0sIGZs
b2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbE1l
bSwgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RD
ZWlsQ2VpbEFyZywgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSk7CisgICAgUlVOX1VO
QVJZKHRlc3RGbG9vckNlaWxBcmcsIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOwog
ICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbElUb0Q2NCwgaW50NjRPcGVyYW5kcygpKTsKICAgICBSVU5f
VU5BUlkodGVzdENlaWxJVG9EMzIsIGludDMyT3BlcmFuZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRl
c3RDZWlsQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOwogICAgIFJVTl9VTkFS
WSh0ZXN0Q2VpbEltbSwgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKTsKICAgICBSVU5f
VU5BUlkodGVzdENlaWxNZW0sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CiAgICAg
UlVOX1VOQVJZKHRlc3RDZWlsQ2VpbEFyZywgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0Pigp
KTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29yQ2VpbEFyZywgZmxvYXRpbmdQb2ludE9wZXJhbmRz
PGZsb2F0PigpKTsKICAgICBSVU5fVU5BUlkodGVzdENlaWxBcmdXaXRoVXNlbGVzc0RvdWJsZUNv
bnZlcnNpb24sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CiAgICAgUlVOX1VOQVJZ
KHRlc3RDZWlsQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24sIGZsb2F0aW5nUG9pbnRP
cGVyYW5kczxmbG9hdD4oKSk7CiAKKyAgICBSVU5fVU5BUlkodGVzdEZsb29yQXJnLCBmbG9hdGlu
Z1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29ySW1tLCBm
bG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29y
TWVtLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVz
dEZsb29yRmxvb3JBcmcsIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOworICAgIFJV
Tl9VTkFSWSh0ZXN0Q2VpbEZsb29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigp
KTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29ySVRvRDY0LCBpbnQ2NE9wZXJhbmRzKCkpOworICAg
IFJVTl9VTkFSWSh0ZXN0Rmxvb3JJVG9EMzIsIGludDMyT3BlcmFuZHMoKSk7CisgICAgUlVOX1VO
QVJZKHRlc3RGbG9vckFyZywgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKTsKKyAgICBS
VU5fVU5BUlkodGVzdEZsb29ySW1tLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOwor
ICAgIFJVTl9VTkFSWSh0ZXN0Rmxvb3JNZW0sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4o
KSk7CisgICAgUlVOX1VOQVJZKHRlc3RGbG9vckZsb29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFu
ZHM8ZmxvYXQ+KCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbEZsb29yQXJnLCBmbG9hdGluZ1Bv
aW50T3BlcmFuZHM8ZmxvYXQ+KCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Rmxvb3JBcmdXaXRoVXNl
bGVzc0RvdWJsZUNvbnZlcnNpb24sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7Cisg
ICAgUlVOX1VOQVJZKHRlc3RGbG9vckFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uLCBm
bG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOworCiAgICAgUlVOX1VOQVJZKHRlc3RTcXJ0
QXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKICAgICBSVU5fVU5BUlkodGVz
dFNxcnRJbW0sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOwogICAgIFJVTl9VTkFS
WSh0ZXN0U3FydE1lbSwgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKaW5kZXggZDdjMWJmZjg0M2NlNDg1OTM2NWM1YTE0ODRmZmJhNjZiNmU5MzRhYi4u
YTU0MWVmMmUyMjQ2NDczNTk0ODJlODM1ZDdlYzAwNGUyYWVkOWVlYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaApAQCAtODMzLDEwICs4MzMsMjAgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAg
Y2FzZSBBcml0aFJvdW5kOiB7CisgICAgY2FzZSBBcml0aFJvdW5kOgorICAgIGNhc2UgQXJpdGhG
bG9vcjoKKyAgICBjYXNlIEFyaXRoQ2VpbDogewogICAgICAgICBKU1ZhbHVlIG9wZXJhbmQgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBpZiAob3BlcmFuZCAmJiBv
cGVyYW5kLmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGRvdWJsZSByb3VuZGVkVmFsdWUgPSBq
c1JvdW5kKG9wZXJhbmQuYXNOdW1iZXIoKSk7CisgICAgICAgICAgICBkb3VibGUgcm91bmRlZFZh
bHVlID0gMDsKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IEFyaXRoUm91bmQpCisgICAg
ICAgICAgICAgICAgcm91bmRlZFZhbHVlID0ganNSb3VuZChvcGVyYW5kLmFzTnVtYmVyKCkpOwor
ICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+b3AoKSA9PSBBcml0aEZsb29yKQorICAgICAgICAg
ICAgICAgIHJvdW5kZWRWYWx1ZSA9IGZsb29yKG9wZXJhbmQuYXNOdW1iZXIoKSk7CisgICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBBcml0aENl
aWwpOworICAgICAgICAgICAgICAgIHJvdW5kZWRWYWx1ZSA9IGNlaWwob3BlcmFuZC5hc051bWJl
cigpKTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKHByb2R1Y2VzSW50ZWdlcihu
b2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkgewogICAgICAgICAgICAgICAgIGludDMyX3Qgcm91
bmRlZFZhbHVlQXNJbnQzMiA9IHN0YXRpY19jYXN0PGludDMyX3Q+KHJvdW5kZWRWYWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5jcHAKaW5kZXggYzFkZmU3Zjgw
MWY3NzZiZWQ5ZGRmNTk1MDZlOWJlNTg0N2I4OTY0OS4uODRkZGFlMTkyYWRjNGZmNDZmMTFiZjg0
NzVjZGEzNGY5ZWE1ODM5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcml0aE1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJpdGhN
b2RlLmNwcApAQCAtNTUsNiArNTUsMjIgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIEpTQzo6REZHOjpBcml0aDo6TW9kZSBtb2RlKQogICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBK
U0M6OkRGRzo6QXJpdGg6OlJvdW5kaW5nTW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkg
eworICAgIGNhc2UgSlNDOjpERkc6OkFyaXRoOjpSb3VuZGluZ01vZGU6OkludDMyOgorICAgICAg
ICBvdXQucHJpbnQoIkludDMyIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6REZH
OjpBcml0aDo6Um91bmRpbmdNb2RlOjpJbnQzMldpdGhOZWdhdGl2ZVplcm9DaGVjazoKKyAgICAg
ICAgb3V0LnByaW50KCJJbnQzMldpdGhOZWdhdGl2ZVplcm9DaGVjayIpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBKU0M6OkRGRzo6QXJpdGg6OlJvdW5kaW5nTW9kZTo6RG91YmxlOgorICAg
ICAgICBvdXQucHJpbnQoIkRvdWJsZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiAj
ZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0FyaXRoTW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcml0
aE1vZGUuaAppbmRleCA0ZTA5YWMzZTkzYWI3ZjY2YTM5ZGVhNGI4Mzg0NjIxNWFhYWEyMDJmLi5h
ZWNmZTNlMThmYzM5ZDRmOTRhMzk3Mjc2Yzg2Zjg0OTNiMTExMTY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJpdGhNb2RlLmgKQEAgLTE0Niw2ICsxNDYsNyBAQCBpbmxpbmUgYm9v
bCBzaG91bGRDaGVja05lZ2F0aXZlWmVybyhBcml0aDo6Um91bmRpbmdNb2RlIG1vZGUpCiAKIGNs
YXNzIFByaW50U3RyZWFtOwogdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpE
Rkc6OkFyaXRoOjpNb2RlKTsKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6
REZHOjpBcml0aDo6Um91bmRpbmdNb2RlKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggOGVk
YTQzOWQ1MzMzZDdmNTRmNzNjNTgyZjkwM2QzNjQ4NmU4ZGEwNi4uODhlNmM5NDlmYWQxMjlhZmUx
ZGZjNDg1YzllMzNkMTAxYmEwNzllOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIxODgsNyArMjE4OCw5IEBAIGJvb2wgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwoaW50IHJlc3VsdE9wZXJhbmQsIEludHJpbnNp
YyBpbnRyaW5zaWMsCiAgICAgICAgIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAg
Y2FzZSBSb3VuZEludHJpbnNpYzogeworICAgIGNhc2UgUm91bmRJbnRyaW5zaWM6CisgICAgY2Fz
ZSBGbG9vckludHJpbnNpYzoKKyAgICBjYXNlIENlaWxJbnRyaW5zaWM6IHsKICAgICAgICAgaWYg
KGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID09IDEpIHsKICAgICAgICAgICAgIGluc2VydENo
ZWNrcygpOwogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwg
YWRkVG9HcmFwaChKU0NvbnN0YW50LCBPcEluZm8obV9jb25zdGFudE5hTikpKTsKQEAgLTIxOTcs
NyArMjE5OSwxNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKGlu
dCByZXN1bHRPcGVyYW5kLCBJbnRyaW5zaWMgaW50cmluc2ljLAogICAgICAgICBpZiAoYXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMgPT0gMikgewogICAgICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7
CiAgICAgICAgICAgICBOb2RlKiBvcGVyYW5kID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3Vt
ZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSk7Ci0gICAgICAgICAgICBOb2RlKiByb3VuZE5vZGUgPSBh
ZGRUb0dyYXBoKEFyaXRoUm91bmQsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBvcGVy
YW5kKTsKKyAgICAgICAgICAgIE5vZGVUeXBlIG9wOworICAgICAgICAgICAgaWYgKGludHJpbnNp
YyA9PSBSb3VuZEludHJpbnNpYykKKyAgICAgICAgICAgICAgICBvcCA9IEFyaXRoUm91bmQ7Cisg
ICAgICAgICAgICBlbHNlIGlmIChpbnRyaW5zaWMgPT0gRmxvb3JJbnRyaW5zaWMpCisgICAgICAg
ICAgICAgICAgb3AgPSBBcml0aEZsb29yOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKGludHJpbnNpYyA9PSBDZWlsSW50cmluc2ljKTsKKyAgICAgICAgICAgICAg
ICBvcCA9IEFyaXRoQ2VpbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIHJvdW5k
Tm9kZSA9IGFkZFRvR3JhcGgob3AsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBvcGVy
YW5kKTsKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksIHJv
dW5kTm9kZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCAzNDNhNmRlOWMyOTA5YjkzZTA1
MjhjZjAyNzg0YWFkOTRkMDFiNGQxLi40NTgwODZlNDViNGUwNzIwOGQ1NTA1MjkyMWM0MGI4Mjg3
M2UzNDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAt
Mjk3LDYgKzI5Nyw4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUs
IGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIH0KIAogICAg
IGNhc2UgQXJpdGhSb3VuZDoKKyAgICBjYXNlIEFyaXRoRmxvb3I6CisgICAgY2FzZSBBcml0aENl
aWw6CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgc3RhdGljX2Nhc3Q8dWludHB0cl90Pihu
b2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkpOwogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCA3MDJkYTViZjFlN2MwZjFjOGZlNTVj
NjQ4NDQ1OGZjYWQ4MWUyYWE1Li40NTIxYWRiYzBkZGZhNTkwNmJiOWY4NjNmMGExZTg3MWYxMjBj
MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC04Nyw2ICs4
Nyw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEFy
aXRoU3FydDoKICAgICBjYXNlIEFyaXRoUmFuZG9tOgogICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAg
ICBjYXNlIEFyaXRoRmxvb3I6CisgICAgY2FzZSBBcml0aENlaWw6CiAgICAgY2FzZSBBcml0aEZS
b3VuZDoKICAgICBjYXNlIEFyaXRoU2luOgogICAgIGNhc2UgQXJpdGhDb3M6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA2YTRlYjEzYWVkMzJiYjk3
ZThjNGRhODk3Mjg3NjA4NDJjNjA5Y2I5Li5mYjRkMmM0N2UxYjQ3ODM1NGExNzkzMWNhZmI5Njc2
MzM2ODZlY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKQEAgLTM2Myw3ICszNjMsOSBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBBcml0aFJvdW5k
OiB7CisgICAgICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAgICAgICAgY2FzZSBBcml0aEZsb29yOgor
ICAgICAgICBjYXNlIEFyaXRoQ2VpbDogewogICAgICAgICAgICAgaWYgKG1fZ3JhcGgudW5hcnlB
cml0aFNob3VsZFNwZWN1bGF0ZUludDMyKG5vZGUsIEZpeHVwUGFzcykpIHsKICAgICAgICAgICAg
ICAgICBmaXhJbnRPckJvb2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAg
ICBpbnNlcnRDaGVjazxJbnQzMlVzZT4obV9pbmRleEluQmxvY2ssIG5vZGUtPmNoaWxkMSgpLm5v
ZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCmluZGV4IDRjOWEzOGIx
OTFhYTQ4YTYwMWQ1OGNiMTc2NDdiOTA2MjU0MmZmYzAuLjU0MWM4NGViYjExMTc0MzBjODkyYjZm
MzliNjBlNGViZjZkMWI2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3Bw
CkBAIC0yMjIsNiArMjIyLDggQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBj
b25zdCBjaGFyKiBwcmVmaXgsIE5vZGUqIG5vZGUsIER1bXBDb250ZXh0KgogICAgICAgICBvdXQu
cHJpbnQoY29tbWEsIG5vZGUtPmFycmF5TW9kZSgpKTsKICAgICBpZiAobm9kZS0+aGFzQXJpdGhN
b2RlKCkpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgbm9kZS0+YXJpdGhNb2RlKCkpOworICAg
IGlmIChub2RlLT5oYXNBcml0aFJvdW5kaW5nTW9kZSgpKQorICAgICAgICBvdXQucHJpbnQoY29t
bWEsICJSb3VuZGluZzoiLCBub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKTsKICAgICBpZiAobm9k
ZS0+aGFzU2NvcGVPZmZzZXQoKSkKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBub2RlLT5zY29w
ZU9mZnNldCgpKTsKICAgICBpZiAobm9kZS0+aGFzRGlyZWN0QXJndW1lbnRzT2Zmc2V0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKaW5kZXggNjBkMTQ2YjMwNGM1NmZjYzUzZGQ3
YzY4OGEyMDM3OWQyYjM1OGJmZi4uMWE0ZTJmN2RkYjRjNzIyYWM4OWVmNmM0NWU5NmEwY2RkYTg4
YTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaApAQCAtMzE2LDcgKzMxNiw3
IEBAIGNsYXNzIEdyYXBoIDogcHVibGljIHZpcnR1YWwgU2Nhbm5hYmxlIHsKIAogICAgIGJvb2wg
cm91bmRTaG91bGRTcGVjdWxhdGVJbnQzMihOb2RlKiBhcml0aFJvdW5kLCBQcmVkaWN0aW9uUGFz
cyBwYXNzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGFyaXRoUm91bmQtPm9wKCkgPT0gQXJpdGhS
b3VuZCk7CisgICAgICAgIEFTU0VSVChhcml0aFJvdW5kLT5vcCgpID09IEFyaXRoUm91bmQgfHwg
YXJpdGhSb3VuZC0+b3AoKSA9PSBBcml0aEZsb29yIHx8IGFyaXRoUm91bmQtPm9wKCkgPT0gQXJp
dGhDZWlsKTsKICAgICAgICAgcmV0dXJuIGFyaXRoUm91bmQtPmNhblNwZWN1bGF0ZUludDMyKHBh
c3MpICYmICFoYXNFeGl0U2l0ZShhcml0aFJvdW5kLT5vcmlnaW4uc2VtYW50aWMsIE92ZXJmbG93
KSAmJiAhaGFzRXhpdFNpdGUoYXJpdGhSb3VuZC0+b3JpZ2luLnNlbWFudGljLCBOZWdhdGl2ZVpl
cm8pOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNzYx
Mjg5NjMzYWEyOWY0OTFjOWMxNmY1NzY5YmUwOWFkMGYxZDdiOC4uZDk2M2M0NmE5Zjg4YjdlZjBi
ODQ1MjRjM2M4ZmJhMjViMDEzY2U1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
QEAgLTkyOCw3ICs5MjgsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgTm9kZUZsYWdzIGFyaXRoTm9k
ZUZsYWdzKCkKICAgICB7CiAgICAgICAgIE5vZGVGbGFncyByZXN1bHQgPSBtX2ZsYWdzICYgTm9k
ZUFyaXRoRmxhZ3NNYXNrOwotICAgICAgICBpZiAob3AoKSA9PSBBcml0aE11bCB8fCBvcCgpID09
IEFyaXRoRGl2IHx8IG9wKCkgPT0gQXJpdGhNb2QgfHwgb3AoKSA9PSBBcml0aE5lZ2F0ZSB8fCBv
cCgpID09IEFyaXRoUG93IHx8IG9wKCkgPT0gQXJpdGhSb3VuZCB8fCBvcCgpID09IERvdWJsZUFz
SW50MzIpCisgICAgICAgIGlmIChvcCgpID09IEFyaXRoTXVsIHx8IG9wKCkgPT0gQXJpdGhEaXYg
fHwgb3AoKSA9PSBBcml0aE1vZCB8fCBvcCgpID09IEFyaXRoTmVnYXRlIHx8IG9wKCkgPT0gQXJp
dGhQb3cgfHwgb3AoKSA9PSBBcml0aFJvdW5kIHx8IG9wKCkgPT0gQXJpdGhGbG9vciB8fCBvcCgp
ID09IEFyaXRoQ2VpbCB8fCBvcCgpID09IERvdWJsZUFzSW50MzIpCiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICByZXR1cm4gcmVzdWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVn
WmVybzsKICAgICB9CkBAIC0xMzMxLDYgKzEzMzEsOCBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewog
ICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKICAgICAgICAgY2FzZSBBcml0aFJvdW5kOgorICAgICAg
ICBjYXNlIEFyaXRoRmxvb3I6CisgICAgICAgIGNhc2UgQXJpdGhDZWlsOgogICAgICAgICBjYXNl
IEdldERpcmVjdFBuYW1lOgogICAgICAgICBjYXNlIEdldEJ5SWQ6CiAgICAgICAgIGNhc2UgR2V0
QnlJZEZsdXNoOgpAQCAtMTcxMiw3ICsxNzE0LDcgQEAgc3RydWN0IE5vZGUgewogCiAgICAgYm9v
bCBoYXNBcml0aFJvdW5kaW5nTW9kZSgpCiAgICAgewotICAgICAgICByZXR1cm4gb3AoKSA9PSBB
cml0aFJvdW5kOworICAgICAgICByZXR1cm4gb3AoKSA9PSBBcml0aFJvdW5kIHx8IG9wKCkgPT0g
QXJpdGhGbG9vciB8fCBvcCgpID09IEFyaXRoQ2VpbDsKICAgICB9CiAKICAgICBBcml0aDo6Um91
bmRpbmdNb2RlIGFyaXRoUm91bmRpbmdNb2RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaAppbmRleCBkZGQwYjk3Y2IyZmU2OTI2MDQ1MTAzZjhhNzEwNzAwNDgyZTlmNmJk
Li43MWMwNzVhNGNkYTBkMWIxZjJhZDY1N2Y4YWExODYxOWNmMmQyYzFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0xNTQsNiArMTU0LDggQEAKICAgICBtYWNy
byhBcml0aFBvdywgTm9kZVJlc3VsdE51bWJlcikgXAogICAgIG1hY3JvKEFyaXRoUmFuZG9tLCBO
b2RlUmVzdWx0RG91YmxlIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoUm91
bmQsIE5vZGVSZXN1bHROdW1iZXIpIFwKKyAgICBtYWNybyhBcml0aEZsb29yLCBOb2RlUmVzdWx0
TnVtYmVyKSBcCisgICAgbWFjcm8oQXJpdGhDZWlsLCBOb2RlUmVzdWx0TnVtYmVyKSBcCiAgICAg
bWFjcm8oQXJpdGhTcXJ0LCBOb2RlUmVzdWx0TnVtYmVyKSBcCiAgICAgbWFjcm8oQXJpdGhTaW4s
IE5vZGVSZXN1bHROdW1iZXIpIFwKICAgICBtYWNybyhBcml0aENvcywgTm9kZVJlc3VsdE51bWJl
cikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBmYTQ4MjQ4NDI5YWIzY2QyMTNmNzU2M2Zi
NGJmNzQ3M2JmMTAyOTAwLi40NTk2MDUzYjMyMjQwYzQwODg2YjljNzQ1NjlhNmUxYzkyZTVmZGNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMzg2LDcgKzM4Niw5IEBAIGNsYXNzIFByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBBcml0aFJvdW5kOiB7CisgICAgICAgIGNhc2Ug
QXJpdGhSb3VuZDoKKyAgICAgICAgY2FzZSBBcml0aEZsb29yOgorICAgICAgICBjYXNlIEFyaXRo
Q2VpbDogewogICAgICAgICAgICAgaWYgKGlzSW50MzJPckJvb2xlYW5TcGVjdWxhdGlvbihub2Rl
LT5nZXRIZWFwUHJlZGljdGlvbigpKSAmJiBtX2dyYXBoLnJvdW5kU2hvdWxkU3BlY3VsYXRlSW50
MzIobm9kZSwgbV9wYXNzKSkKICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rp
b24oU3BlY0ludDMyKTsKICAgICAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggMjMwZWZlZGM0ODMxNTEyYmFjNTY4YmVlZmRi
Mjc2OTYxODcyMDk0Yy4uOTg1OTJjN2Q5ODQ2YmU5MjRlOWRjNTM3NzkwZGQ1ZmJhYjQyMTJjYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTE4
MSw2ICsxODEsOCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRl
LCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgY2Fz
ZSBBcml0aEZSb3VuZDoKICAgICBjYXNlIEFyaXRoUm91bmQ6CisgICAgY2FzZSBBcml0aEZsb29y
OgorICAgIGNhc2UgQXJpdGhDZWlsOgogICAgIGNhc2UgQXJpdGhTaW46CiAgICAgY2FzZSBBcml0
aENvczoKICAgICBjYXNlIEFyaXRoTG9nOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA1MDYyZjFlNTZhZjQ5NTQ3NDNiNzI5NzQyNjdh
MmM3ODc4ZmY3NjBiLi5jNDZjZjQ1NjE5OTE2NGQ5NWIwYmEyZDQ2YTNhY2E2MDgxNTJhZDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApA
QCAtNDQxMiw0NiArNDQxMiw5MyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhN
b2QoTm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVB
cml0aFJvdW5kKE5vZGUqIG5vZGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhS
b3VuZGluZyhOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkgPT0gRG91YmxlUmVwVXNlKTsKIAogICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWUo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEZQUlJlZyB2YWx1ZUZQUiA9IHZhbHVlLmZwcigp
OwogCi0gICAgaWYgKHByb2R1Y2VzSW50ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSAm
JiAhc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsK
LSAgICAgICAgRlBSVGVtcG9yYXJ5IG9uZUhhbGYodGhpcyk7Ci0gICAgICAgIEdQUlRlbXBvcmFy
eSByb3VuZGVkUmVzdWx0QXNJbnQzMih0aGlzKTsKLSAgICAgICAgRlBSUmVnIG9uZUhhbGZGUFIg
PSBvbmVIYWxmLmZwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcm91bmRlZFJlc3Vs
dEFzSW50MzIuZ3ByKCk7CisgICAgYXV0byBzZXRSZXN1bHQgPSBbJl0gKEZQUlJlZyByZXN1bHRG
UFIpIHsKKyAgICAgICAgaWYgKHByb2R1Y2VzSW50ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9k
ZSgpKSkgeworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJvdW5kZWRSZXN1bHRBc0ludDMyKHRo
aXMpOworICAgICAgICAgICAgRlBSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CisgICAgICAgICAg
ICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNjcmF0Y2guZnByKCk7CisgICAgICAgICAgICBHUFJSZWcg
cmVzdWx0R1BSID0gcm91bmRlZFJlc3VsdEFzSW50MzIuZ3ByKCk7CisgICAgICAgICAgICBKSVRD
b21waWxlcjo6SnVtcExpc3QgZmFpbHVyZUNhc2VzOworICAgICAgICAgICAgbV9qaXQuYnJhbmNo
Q29udmVydERvdWJsZVRvSW50MzIocmVzdWx0RlBSLCByZXN1bHRHUFIsIGZhaWx1cmVDYXNlcywg
c2NyYXRjaEZQUiwgc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhSb3VuZGluZ01v
ZGUoKSkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJl
Z3MoKSwgbm9kZSwgZmFpbHVyZUNhc2VzKTsKKworICAgICAgICAgICAgaW50MzJSZXN1bHQocmVz
dWx0R1BSLCBub2RlKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBkb3VibGVSZXN1bHQo
cmVzdWx0RlBSLCBub2RlKTsKKyAgICB9OwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUg
aGFsZkNvbnN0YW50ID0gMC41OwotICAgICAgICBtX2ppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKCZoYWxmQ29uc3RhbnQpLCBvbmVIYWxmRlBSKTsKLSAgICAgICAg
bV9qaXQuYWRkRG91YmxlKHZhbHVlRlBSLCBvbmVIYWxmRlBSKTsKKyAgICBpZiAobV9qaXQuc3Vw
cG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSkgeworICAgICAgICBzd2l0Y2ggKG5vZGUtPm9w
KCkpIHsKKyAgICAgICAgY2FzZSBBcml0aFJvdW5kOiB7CisgICAgICAgICAgICBGUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5m
cHIoKTsKKyAgICAgICAgICAgIGlmIChwcm9kdWNlc0ludGVnZXIobm9kZS0+YXJpdGhSb3VuZGlu
Z01vZGUoKSkgJiYgIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRoUm91bmRpbmdN
b2RlKCkpKSB7CisgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBoYWxmQ29uc3Rh
bnQgPSAwLjU7CisgICAgICAgICAgICAgICAgbV9qaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cigmaGFsZkNvbnN0YW50KSwgcmVzdWx0RlBSKTsKKyAgICAgICAgICAg
ICAgICBtX2ppdC5hZGREb3VibGUodmFsdWVGUFIsIHJlc3VsdEZQUik7CisgICAgICAgICAgICAg
ICAgbV9qaXQuZmxvb3JEb3VibGUocmVzdWx0RlBSLCByZXN1bHRGUFIpOworICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2ppdC5jZWlsRG91YmxlKHZhbHVlRlBSLCByZXN1
bHRGUFIpOworICAgICAgICAgICAgICAgIEZQUlRlbXBvcmFyeSByZWFsUGFydCh0aGlzKTsKKyAg
ICAgICAgICAgICAgICBGUFJSZWcgcmVhbFBhcnRGUFIgPSByZWFsUGFydC5mcHIoKTsKKyAgICAg
ICAgICAgICAgICBtX2ppdC5zdWJEb3VibGUocmVzdWx0RlBSLCB2YWx1ZUZQUiwgcmVhbFBhcnRG
UFIpOwogCi0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIHRydW5jYXRpb25GYWlsZWQgPSBtX2pp
dC5icmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIob25lSGFsZkZQUiwgcmVzdWx0R1BSKTsKLSAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwgdHJ1
bmNhdGlvbkZhaWxlZCk7Ci0gICAgICAgIGludDMyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgICAgICAgICAgRlBSVGVtcG9yYXJ5IHNjcmF0
Y2godGhpcyk7CisgICAgICAgICAgICAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBzY3JhdGNoLmZw
cigpOworICAgICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgaGFsZkNvbnN0YW50ID0g
MC41OworICAgICAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW1QdHIoJmhhbGZDb25zdGFudCksIHNjcmF0Y2hGUFIpOworCisgICAgICAgICAgICAg
ICAgSklUQ29tcGlsZXI6Okp1bXAgc2hvdWxkVXNlQ2VpbGVkID0gbV9qaXQuYnJhbmNoRG91Ymxl
KEpJVENvbXBpbGVyOjpEb3VibGVMZXNzVGhhbk9yRXF1YWwsIHJlYWxQYXJ0RlBSLCBzY3JhdGNo
RlBSKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIG9uZUNvbnN0YW50ID0g
LTEuMDsKKyAgICAgICAgICAgICAgICBtX2ppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKCZvbmVDb25zdGFudCksIHNjcmF0Y2hGUFIpOworICAgICAgICAgICAgICAg
IG1faml0LmFkZERvdWJsZShzY3JhdGNoRlBSLCByZXN1bHRGUFIpOworICAgICAgICAgICAgICAg
IHNob3VsZFVzZUNlaWxlZC5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBzZXRSZXN1bHQocmVzdWx0RlBSKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
Ci0gICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBGUFJSZXN1bHQgcm91bmRlZFJlc3VsdEFzRG91
YmxlKHRoaXMpOwotICAgIEZQUlJlZyByZXN1bHRGUFIgPSByb3VuZGVkUmVzdWx0QXNEb3VibGUu
ZnByKCk7Ci0gICAgY2FsbE9wZXJhdGlvbihqc1JvdW5kLCByZXN1bHRGUFIsIHZhbHVlRlBSKTsK
LSAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwotICAgIGlmIChwcm9kdWNlc0ludGVnZXIobm9k
ZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJvdW5kZWRS
ZXN1bHRBc0ludDMyKHRoaXMpOwotICAgICAgICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsK
LSAgICAgICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBzY3JhdGNoLmZwcigpOwotICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcm91bmRlZFJlc3VsdEFzSW50MzIuZ3ByKCk7Ci0gICAgICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7Ci0gICAgICAgIG1faml0LmJyYW5jaENvbnZl
cnREb3VibGVUb0ludDMyKHJlc3VsdEZQUiwgcmVzdWx0R1BSLCBmYWlsdXJlQ2FzZXMsIHNjcmF0
Y2hGUFIpOwotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygp
LCBub2RlLCBmYWlsdXJlQ2FzZXMpOworICAgICAgICBjYXNlIEFyaXRoRmxvb3I6IHsKKyAgICAg
ICAgICAgIEZQUlRlbXBvcmFyeSByb3VuZGVkKHRoaXMpOworICAgICAgICAgICAgRlBSUmVnIHJl
c3VsdEZQUiA9IHJvdW5kZWQuZnByKCk7CisgICAgICAgICAgICBtX2ppdC5mbG9vckRvdWJsZSh2
YWx1ZUZQUiwgcmVzdWx0RlBSKTsKKyAgICAgICAgICAgIHNldFJlc3VsdChyZXN1bHRGUFIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgaW50MzJSZXN1bHQocmVz
dWx0R1BSLCBub2RlKTsKLSAgICB9IGVsc2UKLSAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQ
Uiwgbm9kZSk7CisgICAgICAgIGNhc2UgQXJpdGhDZWlsOiB7CisgICAgICAgICAgICBGUFJUZW1w
b3Jhcnkgcm91bmRlZCh0aGlzKTsKKyAgICAgICAgICAgIEZQUlJlZyByZXN1bHRGUFIgPSByb3Vu
ZGVkLmZwcigpOworICAgICAgICAgICAgbV9qaXQuY2VpbERvdWJsZSh2YWx1ZUZQUiwgcmVzdWx0
RlBSKTsKKyAgICAgICAgICAgIHNldFJlc3VsdChyZXN1bHRGUFIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBm
bHVzaFJlZ2lzdGVycygpOworICAgICAgICBGUFJSZXN1bHQgcm91bmRlZFJlc3VsdEFzRG91Ymxl
KHRoaXMpOworICAgICAgICBGUFJSZWcgcmVzdWx0RlBSID0gcm91bmRlZFJlc3VsdEFzRG91Ymxl
LmZwcigpOworICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBBcml0aFJvdW5kKQorICAgICAgICAg
ICAgY2FsbE9wZXJhdGlvbihqc1JvdW5kLCByZXN1bHRGUFIsIHZhbHVlRlBSKTsKKyAgICAgICAg
ZWxzZSBpZiAobm9kZS0+b3AoKSA9PSBBcml0aEZsb29yKQorICAgICAgICAgICAgY2FsbE9wZXJh
dGlvbihmbG9vciwgcmVzdWx0RlBSLCB2YWx1ZUZQUik7CisgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gQXJpdGhDZWlsKTsKKyAgICAgICAgICAgIGNhbGxP
cGVyYXRpb24oY2VpbCwgcmVzdWx0RlBSLCB2YWx1ZUZQUik7CisgICAgICAgIH0KKyAgICAgICAg
bV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgc2V0UmVzdWx0KHJlc3VsdEZQUik7Cisg
ICAgfQogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhTcXJ0KE5vZGUqIG5v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggNzRiMDM0YWJkN2E2ZmI4MjY2MTQ5NTNkNzhmNGU3NTM1MDM1ZWViOC4uNjJkMWIwYTcwYzVm
MzE0OTU0NGQxMzc5NWQzZDAzNjg0NjllN2RkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjI2Niw3ICsyMjY2LDkgQEAgY2xhc3MgU3Bl
Y3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2KE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVBcml0aE1vZChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQXJpdGhQb3coTm9kZSop
OwotICAgIHZvaWQgY29tcGlsZUFyaXRoUm91bmQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUFy
aXRoUm91bmRpbmcoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUFyaXRoRmxvb3IoTm9kZSopOwor
ICAgIHZvaWQgY29tcGlsZUFyaXRoQ2VpbChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQXJpdGhS
YW5kb20oTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUFyaXRoU3FydChOb2RlKik7CiAgICAgdm9p
ZCBjb21waWxlQXJpdGhMb2coTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMzhhMTI0MDU4MzBlYmZhZDA2
YjM3MGRlNTU0YjExZjY2ZjI0NTUwNS4uMDg0MzI3Nzg4MzM3ZDg1MDZlOTVlNDMwZThiZmI0ZDZi
OGEzYjUxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0yMjkyLDcgKzIyOTIsOSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcml0
aFJvdW5kOgotICAgICAgICBjb21waWxlQXJpdGhSb3VuZChub2RlKTsKKyAgICBjYXNlIEFyaXRo
Rmxvb3I6CisgICAgY2FzZSBBcml0aENlaWw6CisgICAgICAgIGNvbXBpbGVBcml0aFJvdW5kaW5n
KG5vZGUpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXJpdGhTaW46IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDhm
NTY4OGE0NTUzNzhiMGUyOGM2MWU3ZDE4MTllMzRlNGEzZDJhOTQuLjc5MjhkYThmZjgxMzZkODlj
YzViN2E1Mjk4ZmU2YWQ3NmZhZTlkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjQxNSw3ICsyNDE1LDkgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQXJpdGhSb3VuZDoKLSAgICAgICAgY29tcGlsZUFyaXRoUm91bmQobm9kZSk7CisgICAg
Y2FzZSBBcml0aEZsb29yOgorICAgIGNhc2UgQXJpdGhDZWlsOgorICAgICAgICBjb21waWxlQXJp
dGhSb3VuZGluZyhub2RlKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFyaXRoU2luOiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXgg
ODM0OGRjYzZjMjVjYjg5NWQzZmQwYThjM2VkN2NiMzIzZjJiZWQ1My4uNTRjYjBiNGJlYTNjNmYy
NzRhODRlMTllNmYyNmQ2ZDUyN2MwYWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtOTcsNiArOTcsOCBAQCBpbmxpbmUgQ2FwYWJpbGl0
eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIEFyaXRoUG93OgogICAgIGNh
c2UgQXJpdGhSYW5kb206CiAgICAgY2FzZSBBcml0aFJvdW5kOgorICAgIGNhc2UgQXJpdGhGbG9v
cjoKKyAgICBjYXNlIEFyaXRoQ2VpbDoKICAgICBjYXNlIEFyaXRoU3FydDoKICAgICBjYXNlIEFy
aXRoTG9nOgogICAgIGNhc2UgQXJpdGhGUm91bmQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggYmE1MTAwMTA2OTI3NmY0ZWNhMWUwZWVmNzE2
MjMzZGRlM2JiODA0Yy4uY2I2YjMwNGY2NjdmMGMzMTMzYmQyMzhjMjZjZTIyZjkzZjdkZWU3NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAt
NTE3LDYgKzUxNywxMiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIEFyaXRo
Um91bmQ6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhSb3VuZCgpOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQXJpdGhGbG9vcjoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aEZs
b29yKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcml0aENlaWw6CisgICAg
ICAgICAgICBjb21waWxlQXJpdGhDZWlsKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBcml0aFNxcnQ6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhTcXJ0KCk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTE4NzUsMjQgKzE4ODEsMzEgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
IAogICAgIHZvaWQgY29tcGlsZUFyaXRoUm91bmQoKQogICAgIHsKLSAgICAgICAgTEJhc2ljQmxv
Y2sgcmVhbFBhcnRJc01vcmVUaGFuSGFsZiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhS
b3VuZCBzaG91bGQgcm91bmQgZG93biIpKTsKLSAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aFJvdW5kIGNvbnRpbnVhdGlvbiIpKTsK
KyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG51bGxwdHI7CiAKLSAgICAgICAgTFZhbHVlIHZhbHVl
ID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBMVmFsdWUgaW50ZWdlclZh
bHVlID0gbV9vdXQuZG91YmxlQ2VpbCh2YWx1ZSk7Ci0gICAgICAgIFZhbHVlRnJvbUJsb2NrIGlu
dGVnZXJWYWx1ZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihpbnRlZ2VyVmFsdWUpOworICAgICAgICBp
ZiAocHJvZHVjZXNJbnRlZ2VyKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkgJiYgIXNob3Vs
ZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKKyAgICAg
ICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgIHJlc3VsdCA9IG1fb3V0LmRvdWJsZUZsb29yKG1fb3V0LmRvdWJsZUFkZCh2YWx1ZSwg
bV9vdXQuY29uc3REb3VibGUoMC41KSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
TEJhc2ljQmxvY2sgcmVhbFBhcnRJc01vcmVUaGFuSGFsZiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgiQXJpdGhSb3VuZCBzaG91bGQgcm91bmQgZG93biIpKTsKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhSb3VuZCBjb250
aW51YXRpb24iKSk7CiAKLSAgICAgICAgTFZhbHVlIHJlYWxQYXJ0ID0gbV9vdXQuZG91YmxlU3Vi
KGludGVnZXJWYWx1ZSwgdmFsdWUpOworICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91
YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIGludGVnZXJWYWx1ZSA9
IG1fb3V0LmRvdWJsZUNlaWwodmFsdWUpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW50
ZWdlclZhbHVlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGludGVnZXJWYWx1ZSk7CiAKLSAgICAgICAg
bV9vdXQuYnJhbmNoKG1fb3V0LmRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQocmVhbFBhcnQs
IG1fb3V0LmNvbnN0RG91YmxlKDAuNSkpLCB1bnN1cmUocmVhbFBhcnRJc01vcmVUaGFuSGFsZiks
IHVuc3VyZShjb250aW51YXRpb24pKTsKKyAgICAgICAgICAgIExWYWx1ZSByZWFsUGFydCA9IG1f
b3V0LmRvdWJsZVN1YihpbnRlZ2VyVmFsdWUsIHZhbHVlKTsKIAotICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKHJlYWxQYXJ0SXNNb3JlVGhhbkhhbGYsIGNvbnRp
bnVhdGlvbik7Ci0gICAgICAgIExWYWx1ZSBpbnRlZ2VyVmFsdWVSb3VuZGVkRG93biA9IG1fb3V0
LmRvdWJsZVN1YihpbnRlZ2VyVmFsdWUsIG1fb3V0LmNvbnN0RG91YmxlKDEpKTsKLSAgICAgICAg
VmFsdWVGcm9tQmxvY2sgaW50ZWdlclZhbHVlUm91bmRlZERvd25SZXN1bHQgPSBtX291dC5hbmNo
b3IoaW50ZWdlclZhbHVlUm91bmRlZERvd24pOwotICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVh
dGlvbik7Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwor
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVy
ZWQocmVhbFBhcnQsIG1fb3V0LmNvbnN0RG91YmxlKDAuNSkpLCB1bnN1cmUocmVhbFBhcnRJc01v
cmVUaGFuSGFsZiksIHVuc3VyZShjb250aW51YXRpb24pKTsKKworICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhyZWFsUGFydElzTW9yZVRoYW5IYWxmLCBj
b250aW51YXRpb24pOworICAgICAgICAgICAgTFZhbHVlIGludGVnZXJWYWx1ZVJvdW5kZWREb3du
ID0gbV9vdXQuZG91YmxlU3ViKGludGVnZXJWYWx1ZSwgbV9vdXQuY29uc3REb3VibGUoMSkpOwor
ICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW50ZWdlclZhbHVlUm91bmRlZERvd25SZXN1bHQg
PSBtX291dC5hbmNob3IoaW50ZWdlclZhbHVlUm91bmRlZERvd24pOworICAgICAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7CiAKLSAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LnBoaSht
X291dC5kb3VibGVUeXBlLCBpbnRlZ2VyVmFsdWVSZXN1bHQsIGludGVnZXJWYWx1ZVJvdW5kZWRE
b3duUmVzdWx0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LnBoaShtX291dC5kb3VibGVU
eXBlLCBpbnRlZ2VyVmFsdWVSZXN1bHQsIGludGVnZXJWYWx1ZVJvdW5kZWREb3duUmVzdWx0KTsK
KyAgICAgICAgfQogCiAgICAgICAgIGlmIChwcm9kdWNlc0ludGVnZXIobV9ub2RlLT5hcml0aFJv
dW5kaW5nTW9kZSgpKSkgewogICAgICAgICAgICAgTFZhbHVlIGludGVnZXJWYWx1ZSA9IGNvbnZl
cnREb3VibGVUb0ludDMyKHJlc3VsdCwgc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5h
cml0aFJvdW5kaW5nTW9kZSgpKSk7CkBAIC0xOTAxLDYgKzE5MTQsMjYgQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAgICAgICAgIHNldERvdWJsZShyZXN1bHQpOwogICAgIH0KIAorICAgIHZv
aWQgY29tcGlsZUFyaXRoRmxvb3IoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93
RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgaW50ZWdlclZhbHVlID0g
bV9vdXQuZG91YmxlRmxvb3IodmFsdWUpOworICAgICAgICBpZiAocHJvZHVjZXNJbnRlZ2VyKG1f
bm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpCisgICAgICAgICAgICBzZXRJbnQzMihjb252ZXJ0
RG91YmxlVG9JbnQzMihpbnRlZ2VyVmFsdWUsIHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9k
ZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0
RG91YmxlKGludGVnZXJWYWx1ZSk7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlQXJpdGhDZWls
KCkKKyAgICB7CisgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgTFZhbHVlIGludGVnZXJWYWx1ZSA9IG1fb3V0LmRvdWJsZUNlaWwodmFs
dWUpOworICAgICAgICBpZiAocHJvZHVjZXNJbnRlZ2VyKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01v
ZGUoKSkpCisgICAgICAgICAgICBzZXRJbnQzMihjb252ZXJ0RG91YmxlVG9JbnQzMihpbnRlZ2Vy
VmFsdWUsIHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUo
KSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0RG91YmxlKGludGVnZXJWYWx1ZSk7
CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlQXJpdGhTcXJ0KCkgeyBzZXREb3VibGUobV9vdXQu
ZG91YmxlU3FydChsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSkpKTsgfQogCiAgICAgdm9pZCBj
b21waWxlQXJpdGhMb2coKSB7IHNldERvdWJsZShtX291dC5kb3VibGVMb2cobG93RG91YmxlKG1f
bm9kZS0+Y2hpbGQxKCkpKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCmlu
ZGV4IDEwY2Y4ZTQ1MDgyMzgxN2NjZjI2NTQ4OTQ5NTA1NGZmNWUwNTQzNzIuLjIyYjFhY2JlNjkz
MGZmZDE3OGZjY2E3MDRkZmI3YmI3MTg1M2RiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPdXRwdXQuaApAQCAtMTU1LDYgKzE1NSw3IEBAIGNsYXNzIE91dHB1dCA6IHB1YmxpYyBDb21t
b25WYWx1ZXMgewogICAgIExWYWx1ZSBtdWxXaXRoT3ZlcmZsb3c2NChMVmFsdWUgbGVmdCwgTFZh
bHVlIHJpZ2h0KSB7IENSQVNIKCk7IH0KICAgICBMVmFsdWUgZG91YmxlQWJzKExWYWx1ZSB2YWx1
ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6QWJz
LCBvcmlnaW4oKSwgdmFsdWUpOyB9CiAgICAgTFZhbHVlIGRvdWJsZUNlaWwoTFZhbHVlIG9wZXJh
bmQpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OkNl
aWwsIG9yaWdpbigpLCBvcGVyYW5kKTsgfQorICAgIExWYWx1ZSBkb3VibGVGbG9vcihMVmFsdWUg
b3BlcmFuZCkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBC
Mzo6Rmxvb3IsIG9yaWdpbigpLCBvcGVyYW5kKTsgfQogCiAgICAgTFZhbHVlIGRvdWJsZVNpbihM
VmFsdWUgdmFsdWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9UaHVua0dlbmVyYXRvcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dl
bmVyYXRvcnMuY3BwCmluZGV4IDdmNTQ2OWE2NWRlOWE2YWNiNTk1Y2I1MDY0YTJhZjU2MTM5OWFk
MWEuLjVjMDNkNzBhNDdhYzcwNzg4NTViYzYyNjI0YTIyY2VkM2YzMzlkMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKQEAgLTgyOCw3ICs4Mjgs
NyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAg
ICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIG5vbklu
dEp1bXAubGluaygmaml0KTsKICAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICBp
ZiAoaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSkKKyAgICBpZiAoaml0LnN1cHBvcnRz
RmxvYXRpbmdQb2ludFJvdW5kaW5nKCkpCiAgICAgICAgIGppdC5jZWlsRG91YmxlKFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAg
IGVsc2UKICAgICAgICAgaml0LmNhbGxEb3VibGVUb0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5h
cnlEb3VibGVPcFdyYXBwZXIoY2VpbCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYXJpdGgtcm91bmRpbmctbW9kZS5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1jZWlsLWFyaXRoLXJvdW5kaW5nLW1v
ZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2ViZmNlYmYzYmYwM2UwMDFmZjVhY2JjOGM1ODg1ZTQyMzkyZTMz
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
bWF0aC1jZWlsLWFyaXRoLXJvdW5kaW5nLW1vZGUuanMKQEAgLTAsMCArMSw4NSBAQAorZnVuY3Rp
b24gZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdChhKSB7CisgICAgdmFyIHJlc3VsdEEg
PSBNYXRoLmNlaWwoYSk7CisgICAgdmFyIHJlc3VsdEIgPSBNYXRoLmNlaWwoYSl8MDsKKyAgICBy
ZXR1cm4geyByZXN1bHRBOnJlc3VsdEEsIHJlc3VsdEI6cmVzdWx0QiB9OworfQorbm9JbmxpbmUo
Zmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdCk7CisKK2Z1bmN0aW9uIGZpcnN0RG9Ob3RD
YXJlQWJvdXRaZXJvU2Vjb25kRG9lcyhhKSB7CisgICAgdmFyIHJlc3VsdEEgPSBNYXRoLmNlaWwo
YSl8MDsKKyAgICB2YXIgcmVzdWx0QiA9IE1hdGguY2VpbChhKTsKKyAgICByZXR1cm4geyByZXN1
bHRBOnJlc3VsdEEsIHJlc3VsdEI6cmVzdWx0QiB9OworfQorbm9JbmxpbmUoZmlyc3REb05vdENh
cmVBYm91dFplcm9TZWNvbmREb2VzKTsKKworLy8gV2FybXVwIHdpdGggZG91YmxlcywgYnV0IG5v
dGhpbmcgdGhhdCB3b3VsZCBjZWlsIHRvIC0wIHRvIGVuc3VyZSB3ZSBuZXZlcgorLy8gc2VlIGEg
ZG91YmxlIGFzIHJlc3VsdC4gVGhlIHJlc3VsdCBtdXN0IGJlIGludGVnZXJzLCB0aGUgaW5wdXQg
aXMga2VwdCB0byBzbWFsbCB2YWx1ZXMuCitmdW5jdGlvbiB3YXJtdXAoKSB7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICBmaXJzdENhcmVBYm91dFplcm9TZWNv
bmREb2VzTm90KDQyLjYgKyBpKTsKKyAgICAgICAgZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNv
bmREb2VzKDQyLjQgKyBpKTsKKyAgICB9Cit9Cit3YXJtdXAoKTsKKworZnVuY3Rpb24gdmVyaWZ5
TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7
ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0MSA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERv
ZXNOb3QoLTAuMSk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0MS5yZXN1bHRBICE9PSAtSW5maW5p
dHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0
WmVyb1NlY29uZERvZXNOb3QoLTAuMSksIHJlc3VsdEEgPSAiICsgcmVzdWx0MS5yZXN1bHRBKTsK
KyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDEucmVzdWx0QiAhPT0gSW5maW5pdHkp
IHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVy
b1NlY29uZERvZXNOb3QoLTAuMSksIHJlc3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1bHRCKTsKKyAg
ICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0MiA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vj
b25kRG9lcygtMC4xKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQyLnJlc3VsdEEgIT09IEluZmlu
aXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2Fy
ZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSksIHJlc3VsdEEgPSAiICsgcmVzdWx0MS5yZXN1bHRB
KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDIucmVzdWx0QiAhPT0gLUluZmlu
aXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2Fy
ZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSksIHJlc3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1bHRC
KTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0MyA9IGZpcnN0Q2FyZUFib3V0WmVyb1Nl
Y29uZERvZXNOb3QoLTAuMCk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0My5yZXN1bHRBICE9PSAt
SW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2Fy
ZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0My5yZXN1
bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDMucmVzdWx0QiAhPT0gSW5m
aW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFi
b3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJlc3VsdEIgPSAiICsgcmVzdWx0My5yZXN1bHRC
KTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0NCA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRa
ZXJvU2Vjb25kRG9lcygtMC4wKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ0LnJlc3VsdEEgIT09
IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERv
Tm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NC5y
ZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDQucmVzdWx0QiAhPT0g
LUluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERv
Tm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMCksIHJlc3VsdEIgPSAiICsgcmVzdWx0NC5y
ZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0NSA9IGZpcnN0Q2FyZUFib3V0
WmVyb1NlY29uZERvZXNOb3QoMC4wKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ1LnJlc3VsdEEg
IT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJz
dENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NS5y
ZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDUucmVzdWx0QiAhPT0g
SW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2Fy
ZUFib3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKSwgcmVzdWx0QiA9ICIgKyByZXN1bHQ1LnJlc3Vs
dEIpOworICAgICAgICB9CisgICAgICAgIHZhciByZXN1bHQ2ID0gZmlyc3REb05vdENhcmVBYm91
dFplcm9TZWNvbmREb2VzKDAuMCk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Ni5yZXN1bHRBICE9
PSBJbmZpbml0eSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3RE
b05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0Ni5y
ZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDYucmVzdWx0QiAhPT0g
SW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9O
b3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjApLCByZXN1bHRCID0gIiArIHJlc3VsdDYucmVz
dWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3VsdDcgPSBmaXJzdENhcmVBYm91dFpl
cm9TZWNvbmREb2VzTm90KDAuMSk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Ny5yZXN1bHRBICE9
PSAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91
dFplcm9TZWNvbmREb2VzTm90KDAuMSksIHJlc3VsdEEgPSAiICsgcmVzdWx0Ny5yZXN1bHRBKTsK
KyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDcucmVzdWx0QiAhPT0gMSkgeworICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25k
RG9lc05vdCgwLjEpLCByZXN1bHRCID0gIiArIHJlc3VsdDcucmVzdWx0Qik7CisgICAgICAgIH0K
KyAgICAgICAgdmFyIHJlc3VsdDggPSBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMo
MC4xKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ4LnJlc3VsdEEgIT09IDEpIHsKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25k
RG9lcygwLjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDgucmVzdWx0QSk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKDEgLyByZXN1bHQ4LnJlc3VsdEIgIT09IDEpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEp
LCByZXN1bHRCID0gIiArIHJlc3VsdDgucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICB9Cit9Cit2
ZXJpZnlOZWdhdGl2ZVplcm9Jc1ByZXNlcnZlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYmFzaWNzLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIy
ZDlmMjY2ZmRkYWY1YmRmOThkYzg3MzgwMjJiZTZiMjU5NGJlYzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtY2VpbC1iYXNpY3MuanMK
QEAgLTAsMCArMSwyNTcgQEAKKworZnVuY3Rpb24gbWF0aENlaWxPbkludGVnZXJzKHZhbHVlKQor
eworICAgIHJldHVybiBNYXRoLmNlaWwodmFsdWUpOworfQorbm9JbmxpbmUobWF0aENlaWxPbklu
dGVnZXJzKTsKKworZnVuY3Rpb24gbWF0aENlaWxPbkRvdWJsZXModmFsdWUpCit7CisgICAgcmV0
dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9Citub0lubGluZShtYXRoQ2VpbE9uRG91Ymxlcyk7CisK
K2Z1bmN0aW9uIG1hdGhDZWlsT25Cb29sZWFucyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5j
ZWlsKHZhbHVlKTsKK30KK25vSW5saW5lKG1hdGhDZWlsT25Cb29sZWFucyk7CisKKy8vIFRoZSB0
cml2aWFsIGNhc2VzIGZpcnN0LgorZm9yICh2YXIgaSA9IDE7IGkgPCAxZTQ7ICsraSkgeworICAg
IHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25JbnRlZ2VycyhpKTsKKyAgICBpZiAoY2VpbGVk
VmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxPbkludGVnZXJz
KCIgKyBpICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0g
bWF0aENlaWxPbkludGVnZXJzKC1pKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IC1pKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsT25JbnRlZ2VycygiICsgLWkgKyAiKSA9ICIg
KyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91YmxlTG93ID0gaSArIDAuNDsKKyAgICB2YXIg
Y2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9uRG91Ymxlcyhkb3VibGVMb3cpOworICAgIGlmIChjZWls
ZWRWYWx1ZSAhPT0gaSArIDEuMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9u
RG91YmxlcygiICsgZG91YmxlTG93ICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFy
IGRvdWJsZUhpZ2ggPSBpICsgMC42OworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25E
b3VibGVzKGRvdWJsZUhpZ2gpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gaSArIDEpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxPbkRvdWJsZXMoIiArIGRvdWJsZUhpZ2ggKyAi
KSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91YmxlTWlkID0gaSArIDAuNTsKKyAg
ICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9uRG91Ymxlcyhkb3VibGVNaWQpOworICAgIGlm
IChjZWlsZWRWYWx1ZSAhPT0gaSArIDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENl
aWxPbkRvdWJsZXMoIiArIGRvdWJsZU1pZCArICIpID0gIiArIGNlaWxlZFZhbHVlKTsKKworICAg
IHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25Eb3VibGVzKC0wLjYpOworICAgIGlmIChjZWls
ZWRWYWx1ZSAhPT0gLTAuMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91
YmxlcygtMC42KSA9ICIgKyBjZWlsZWRWYWx1ZSk7Cit9CisKKy8vIFNvbWUgbW9yZSBpbnRlcmVz
dGluZyBjYXNlcywgc29tZSBvZiB0aGVtIHdlbGwgT1NSIGV4aXQgd2hlbiB0aGUgcmV0dXJuIHZh
bHVlIGlzIHplcm8uCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGNl
aWxlZFZhbHVlID0gbWF0aENlaWxPbkludGVnZXJzKGkpOworICAgIGlmIChjZWlsZWRWYWx1ZSAh
PT0gaSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uSW50ZWdlcnMoIiArIGkg
KyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2Vp
bE9uSW50ZWdlcnMoLWkpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gLWkpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigibWF0aENlaWxPbkludGVnZXJzKC0iICsgaSArICIpID0gIiArIGNlaWxl
ZFZhbHVlKTsKKworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25Eb3VibGVzKC0wLjQp
OworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJt
YXRoQ2VpbE9uRG91YmxlcygtMC40KSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgY2Vp
bGVkVmFsdWUgPSBtYXRoQ2VpbE9uRG91YmxlcygtMC41KTsKKyAgICBpZiAoY2VpbGVkVmFsdWUg
IT09IDApCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxPbkRvdWJsZXMoLTAuNSkg
PSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkRv
dWJsZXMoLTApOworICAgIGlmICghKGNlaWxlZFZhbHVlID09PSAwICYmICgxL2NlaWxlZFZhbHVl
KSA9PT0gLUluZmluaXR5KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91
YmxlcygtMCkgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0
aENlaWxPbkRvdWJsZXMoTmFOKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgPT09IGNlaWxlZFZhbHVl
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsT25Eb3VibGVzKE5hTikgPSAiICsg
Y2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkRvdWJsZXMo
TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IE51bWJl
ci5QT1NJVElWRV9JTkZJTklUWSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9u
RG91YmxlcyhOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpID0gIiArIGNlaWxlZFZhbHVlKTsKKwor
ICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25Eb3VibGVzKE51bWJlci5ORUdBVElWRV9J
TkZJTklUWSk7CisgICAgaWYgKGNlaWxlZFZhbHVlICE9PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5J
VFkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxPbkRvdWJsZXMoTnVtYmVyLk5F
R0FUSVZFX0lORklOSVRZKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgYm9vbGVhbiA9
ICEhKGkgJSAyKTsKKyAgICB2YXIgY2VpbGVkQm9vbGVhbiA9IG1hdGhDZWlsT25Cb29sZWFucyhi
b29sZWFuKTsKKyAgICBpZiAoY2VpbGVkQm9vbGVhbiAhPSBib29sZWFuKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIm1hdGhDZWlsT25Eb3VibGVzKCIgKyBib29sZWFuICsgIikgPSAiICsgY2Vp
bGVkQm9vbGVhbik7Cit9CisKK2Z1bmN0aW9uIHVzZWxlc3NNYXRoQ2VpbCh2YWx1ZSkKK3sKKyAg
ICByZXR1cm4gTWF0aC5jZWlsKHZhbHVlfDApOworfQorbm9JbmxpbmUodXNlbGVzc01hdGhDZWls
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciBjZWlsZWRWYWx1
ZSA9IHVzZWxlc3NNYXRoQ2VpbChpKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhDZWlsKCIgKyBpICsgIikgPSAiICsgY2Vp
bGVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZUxvdyA9IGkgKyAwLjQ7CisgICAgdmFyIGNlaWxl
ZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKGRvdWJsZUxvdyk7CisgICAgaWYgKGNlaWxlZFZhbHVl
ICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVzZWxlc3NNYXRoQ2VpbCgiICsgZG91
YmxlTG93ICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZUhpZ2ggPSBp
ICsgMC42OworICAgIHZhciBjZWlsZWRWYWx1ZSA9IHVzZWxlc3NNYXRoQ2VpbChkb3VibGVIaWdo
KTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
dXNlbGVzc01hdGhDZWlsKCIgKyBkb3VibGVIaWdoICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOwor
CisgICAgdmFyIGRvdWJsZU1pZCA9IGkgKyAwLjU7CisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNl
bGVzc01hdGhDZWlsKGRvdWJsZU1pZCk7CisgICAgaWYgKGNlaWxlZFZhbHVlICE9PSBpKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoInVzZWxlc3NNYXRoQ2VpbCgiICsgZG91YmxlTWlkICsgIikg
PSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhD
ZWlsKC0wLjQpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwoLTAuNCkgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAg
dmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKC0wLjUpOworICAgIGlmIChjZWlsZWRW
YWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwoLTAu
NSkgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01h
dGhDZWlsKC0wLjYpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwoLTAuNikgPSAiICsgY2VpbGVkVmFsdWUpOworfQor
CitmdW5jdGlvbiBtYXRoQ2VpbFdpdGhPdmVyZmxvdyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0
aC5jZWlsKHZhbHVlKTsKK30KK25vSW5saW5lKG1hdGhDZWlsV2l0aE92ZXJmbG93KTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciBiaWdWYWx1ZSA9IDEwMDAwMDAw
MDAwMDA7CisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxXaXRoT3ZlcmZsb3coYmlnVmFs
dWUpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gYmlnVmFsdWUpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigibWF0aENlaWxXaXRoT3ZlcmZsb3coIiArIGJpZ1ZhbHVlICsgIikgPSAiICsgY2Vp
bGVkVmFsdWUpOworfQorCitmdW5jdGlvbiBtYXRoQ2VpbENvbnN1bWVkQXNEb3VibGUodmFsdWUp
Cit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSkgKiAwLjU7Cit9Citub0lubGluZShtYXRo
Q2VpbENvbnN1bWVkQXNEb3VibGUpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7
CisgICAgdmFyIGRvdWJsZVZhbHVlID0gaSArIDAuMTsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBt
YXRoQ2VpbENvbnN1bWVkQXNEb3VibGUoZG91YmxlVmFsdWUpOworICAgIGlmIChjZWlsZWRWYWx1
ZSAhPT0gKChpICsgMSkgKiAwLjUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWls
Q29uc3VtZWRBc0RvdWJsZSgiICsgZG91YmxlVmFsdWUgKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7
CisKKyAgICB2YXIgZG91YmxlVmFsdWUgPSBpICsgMC42OworICAgIHZhciBjZWlsZWRWYWx1ZSA9
IG1hdGhDZWlsQ29uc3VtZWRBc0RvdWJsZShkb3VibGVWYWx1ZSk7CisgICAgaWYgKGNlaWxlZFZh
bHVlICE9PSAoKGkgKyAxKSAqIDAuNSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENl
aWxDb25zdW1lZEFzRG91YmxlKCIgKyBkb3VibGVWYWx1ZSArICIpID0gIiArIGNlaWxlZFZhbHVl
KTsKKworfQorCitmdW5jdGlvbiBtYXRoQ2VpbERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8odmFs
dWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSl8MDsKK30KK25vSW5saW5lKG1hdGhD
ZWlsRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICB2YXIgZG91YmxlTWlkID0gaSArIDAuNTsKKyAgICB2YXIgY2VpbGVkVmFs
dWUgPSBtYXRoQ2VpbERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8oZG91YmxlTWlkKTsKKyAgICBp
ZiAoY2VpbGVkVmFsdWUgIT09IGkgKyAxKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhD
ZWlsRG9lc05vdENhcmVBYm91dE1pbnVzWmVybygiICsgZG91YmxlTWlkICsgIikgPSAiICsgY2Vp
bGVkVmFsdWUpOworfQorCisKKy8vICoqKiBGdW5jdGlvbiBhcmd1bWVudHMuICoqKgorZnVuY3Rp
b24gbWF0aENlaWxOb0FyZ3VtZW50cygpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCgpOworfQor
bm9JbmxpbmUobWF0aENlaWxOb0FyZ3VtZW50cyk7CisKK2Z1bmN0aW9uIG1hdGhDZWlsVG9vTWFu
eUFyZ3VtZW50cyhhLCBiLCBjKQoreworICAgIHJldHVybiBNYXRoLmNlaWwoYSwgYiwgYyk7Cit9
Citub0lubGluZShtYXRoQ2VpbFRvb01hbnlBcmd1bWVudHMpOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDFlNDsgKytpKSB7CisgICAgdmFyIHZhbHVlID0gbWF0aENlaWxOb0FyZ3VtZW50cygpOwor
ICAgIGlmICh2YWx1ZSA9PT0gdmFsdWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENl
aWxOb0FyZ3VtZW50cygpID0gIiArIHZhbHVlKTsKKworICAgIHZhciB2YWx1ZSA9IG1hdGhDZWls
VG9vTWFueUFyZ3VtZW50cygyLjEsIDMsIDUpOworICAgIGlmICh2YWx1ZSAhPT0gMykKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbFRvb01hbnlBcmd1bWVudHMoKSA9ICIgKyB2YWx1
ZSk7Cit9CisKKworLy8gKioqIENvbnN0YW50IGFzIGFyZ3VtZW50cy4gKioqCitmdW5jdGlvbiB0
ZXN0TWF0aENlaWxPbkNvbnN0YW50cygpCit7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKDAp
OworICAgIGlmICh2YWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNl
aWwoMCkgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguY2VpbCgtMCk7CisgICAg
aWYgKCEodmFsdWUgPT09IDAgJiYgKDEvdmFsdWUpID09PSAtSW5maW5pdHkpKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIk1hdGguY2VpbCgtMCkgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1
ZSA9IE1hdGguY2VpbCgxKTsKKyAgICBpZiAodmFsdWUgIT09IDEpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiTWF0aC5jZWlsKDEpID0gIiArIHZhbHVlKTsKKyAgICB2YXIgdmFsdWUgPSBNYXRo
LmNlaWwoLTEpOworICAgIGlmICh2YWx1ZSAhPT0gLTEpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiTWF0aC5jZWlsKC0xKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWls
KDQyKTsKKyAgICBpZiAodmFsdWUgIT09IDQyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1h
dGguY2VpbCg0MikgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguY2VpbCgtNDIu
Mik7CisgICAgaWYgKHZhbHVlICE9PSAtNDIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0
aC5jZWlsKC00Mi4yKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE5h
Tik7CisgICAgaWYgKHZhbHVlID09PSB2YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJN
YXRoLmNlaWwoTmFOKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE51
bWJlci5QT1NJVElWRV9JTkZJTklUSSk7CisgICAgaWYgKHZhbHVlID09PSB2YWx1ZSkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRJKSA9
ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE51bWJlci5ORUdBVElWRV9J
TkZJTklUSSk7CisgICAgaWYgKHZhbHVlID09PSB2YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJNYXRoLmNlaWwoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRJKSA9ICIgKyB2YWx1ZSk7Cisg
ICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE1hdGguRSk7CisgICAgaWYgKHZhbHVlICE9PSAzKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguY2VpbChNYXRoLkUpID0gIiArIHZhbHVlKTsK
K30KK25vSW5saW5lKHRlc3RNYXRoQ2VpbE9uQ29uc3RhbnRzKTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgIHRlc3RNYXRoQ2VpbE9uQ29uc3RhbnRzKCk7Cit9CisKKwor
Ly8gKioqIFN0cnVjdCB0cmFuc2l0aW9uLiAqKioKK2Z1bmN0aW9uIG1hdGhDZWlsU3RydWN0VHJh
bnNpdGlvbih2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVlKTsKK30KK25vSW5s
aW5lKG1hdGhDZWlsU3RydWN0VHJhbnNpdGlvbik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICB2YXIgdmFsdWUgPSBtYXRoQ2VpbFN0cnVjdFRyYW5zaXRpb24oNDIuNSk7
CisgICAgaWYgKHZhbHVlICE9PSA0MykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2Vp
bFN0cnVjdFRyYW5zaXRpb24oNDIuNSkgPSAiICsgdmFsdWUpOworfQorCitNYXRoLmNlaWwgPSBm
dW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50c1swXSArIDU7IH0KKwordmFyIHZhbHVlID0gbWF0
aENlaWxTdHJ1Y3RUcmFuc2l0aW9uKDQyKTsKK2lmICh2YWx1ZSAhPT0gNDcpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJtYXRoQ2VpbFN0cnVjdFRyYW5zaXRpb24oNDIpIGFmdGVyIHRyYW5zaXRpb24g
PSAiICsgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9tYXRoLWZsb29yLWFyaXRoLXJvdW5kaW5nLW1vZGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL21hdGgtZmxvb3ItYXJpdGgtcm91bmRpbmctbW9kZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMzBlZDg5MGQzMTUwNzA2YTlhMDQ1MjBkN2YwYTA5MjQwNzZmNmU1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWZsb29y
LWFyaXRoLXJvdW5kaW5nLW1vZGUuanMKQEAgLTAsMCArMSw4NSBAQAorZnVuY3Rpb24gZmlyc3RD
YXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdChhKSB7CisgICAgdmFyIHJlc3VsdEEgPSBNYXRoLmZs
b29yKGEpOworICAgIHZhciByZXN1bHRCID0gTWF0aC5mbG9vcihhKXwwOworICAgIHJldHVybiB7
IHJlc3VsdEE6cmVzdWx0QSwgcmVzdWx0QjpyZXN1bHRCIH07Cit9Citub0lubGluZShmaXJzdENh
cmVBYm91dFplcm9TZWNvbmREb2VzTm90KTsKKworZnVuY3Rpb24gZmlyc3REb05vdENhcmVBYm91
dFplcm9TZWNvbmREb2VzKGEpIHsKKyAgICB2YXIgcmVzdWx0QSA9IE1hdGguZmxvb3IoYSl8MDsK
KyAgICB2YXIgcmVzdWx0QiA9IE1hdGguZmxvb3IoYSk7CisgICAgcmV0dXJuIHsgcmVzdWx0QTpy
ZXN1bHRBLCByZXN1bHRCOnJlc3VsdEIgfTsKK30KK25vSW5saW5lKGZpcnN0RG9Ob3RDYXJlQWJv
dXRaZXJvU2Vjb25kRG9lcyk7CisKKy8vIFdhcm11cCB3aXRoIGRvdWJsZXMsIGJ1dCBub3RoaW5n
IHRoYXQgd291bGQgZmxvb3IgdG8gLTAgdG8gZW5zdXJlIHdlIG5ldmVyCisvLyBzZWUgYSBkb3Vi
bGUgYXMgcmVzdWx0LiBUaGUgcmVzdWx0IG11c3QgYmUgaW50ZWdlcnMsIHRoZSBpbnB1dCBpcyBr
ZXB0IHRvIHNtYWxsIHZhbHVlcy4KK2Z1bmN0aW9uIHdhcm11cCgpIHsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERv
ZXNOb3QoNDIuNiArIGkpOworICAgICAgICBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERv
ZXMoNDIuNCArIGkpOworICAgIH0KK30KK3dhcm11cCgpOworCitmdW5jdGlvbiB2ZXJpZnlOZWdh
dGl2ZVplcm9Jc1ByZXNlcnZlZCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytp
KSB7CisgICAgICAgIHZhciByZXN1bHQxID0gZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05v
dCgtMC4xKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQxLnJlc3VsdEEgIT09IC0xKSB7CisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmRE
b2VzTm90KC0wLjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDEucmVzdWx0QSk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKDEgLyByZXN1bHQxLnJlc3VsdEIgIT09IC0xKSB7CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KC0w
LjEpLCByZXN1bHRCID0gIiArIHJlc3VsdDEucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAgICAg
dmFyIHJlc3VsdDIgPSBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSk7Cisg
ICAgICAgIGlmICgxIC8gcmVzdWx0Mi5yZXN1bHRBICE9PSAtMSkgeworICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKC0w
LjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDEucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKDEgLyByZXN1bHQyLnJlc3VsdEIgIT09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSksIHJl
c3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVz
dWx0MyA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCk7CisgICAgICAgIGlm
ICgxIC8gcmVzdWx0My5yZXN1bHRBICE9PSAtSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCks
IHJlc3VsdEEgPSAiICsgcmVzdWx0My5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
MSAvIHJlc3VsdDMucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJl
c3VsdEIgPSAiICsgcmVzdWx0My5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVz
dWx0NCA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygtMC4wKTsKKyAgICAgICAg
aWYgKDEgLyByZXN1bHQ0LnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAu
MCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NC5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoMSAvIHJlc3VsdDQucmVzdWx0QiAhPT0gLUluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAu
MCksIHJlc3VsdEIgPSAiICsgcmVzdWx0NC5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2
YXIgcmVzdWx0NSA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKTsKKyAgICAg
ICAgaWYgKDEgLyByZXN1bHQ1LnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAu
MCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoMSAvIHJlc3VsdDUucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKSwg
cmVzdWx0QiA9ICIgKyByZXN1bHQ1LnJlc3VsdEIpOworICAgICAgICB9CisgICAgICAgIHZhciBy
ZXN1bHQ2ID0gZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAuMCk7CisgICAgICAg
IGlmICgxIC8gcmVzdWx0Ni5yZXN1bHRBICE9PSBJbmZpbml0eSkgeworICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAu
MCksIHJlc3VsdEEgPSAiICsgcmVzdWx0Ni5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoMSAvIHJlc3VsdDYucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjAp
LCByZXN1bHRCID0gIiArIHJlc3VsdDYucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFy
IHJlc3VsdDcgPSBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMSk7CisgICAgICAg
IGlmICgxIC8gcmVzdWx0Ny5yZXN1bHRBICE9PSBJbmZpbml0eSkgeworICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdCgwLjEp
LCByZXN1bHRBID0gIiArIHJlc3VsdDcucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KDEgLyByZXN1bHQ3LnJlc3VsdEIgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMSksIHJl
c3VsdEIgPSAiICsgcmVzdWx0Ny5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVz
dWx0OCA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEpOworICAgICAgICBp
ZiAoMSAvIHJlc3VsdDgucmVzdWx0QSAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEp
LCByZXN1bHRBID0gIiArIHJlc3VsdDgucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KDEgLyByZXN1bHQ4LnJlc3VsdEIgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoMC4xKSwg
cmVzdWx0QiA9ICIgKyByZXN1bHQ4LnJlc3VsdEIpOworICAgICAgICB9CisgICAgfQorfQordmVy
aWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1mbG9vci1iYXNpY3MuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtZmxvb3ItYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0
NDhlYjk5MjU4NTY3OTA5YTczYTVjN2Q4OTQ0ZWM3OWQ2ZTBjYWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtZmxvb3ItYmFzaWNzLmpz
CkBAIC0wLDAgKzEsMjU3IEBACisKK2Z1bmN0aW9uIG1hdGhGbG9vck9uSW50ZWdlcnModmFsdWUp
Cit7CisgICAgcmV0dXJuIE1hdGguZmxvb3IodmFsdWUpOworfQorbm9JbmxpbmUobWF0aEZsb29y
T25JbnRlZ2Vycyk7CisKK2Z1bmN0aW9uIG1hdGhGbG9vck9uRG91Ymxlcyh2YWx1ZSkKK3sKKyAg
ICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSk7Cit9Citub0lubGluZShtYXRoRmxvb3JPbkRvdWJs
ZXMpOworCitmdW5jdGlvbiBtYXRoRmxvb3JPbkJvb2xlYW5zKHZhbHVlKQoreworICAgIHJldHVy
biBNYXRoLmZsb29yKHZhbHVlKTsKK30KK25vSW5saW5lKG1hdGhGbG9vck9uQm9vbGVhbnMpOwor
CisvLyBUaGUgdHJpdmlhbCBjYXNlcyBmaXJzdC4KK2ZvciAodmFyIGkgPSAxOyBpIDwgMWU0OyAr
K2kpIHsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25JbnRlZ2VycyhpKTsKKyAg
ICBpZiAoZmxvb3JlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhG
bG9vck9uSW50ZWdlcnMoIiArIGkgKyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFy
IGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9vck9uSW50ZWdlcnMoLWkpOworICAgIGlmIChmbG9vcmVk
VmFsdWUgIT09IC1pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdl
cnMoIiArIC1pICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVMb3cg
PSBpICsgMC40OworICAgIHZhciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoZG91
YmxlTG93KTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcygiICsgZG91YmxlTG93ICsgIikgPSAiICsgZmxvb3Jl
ZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVIaWdoID0gaSArIDAuNjsKKyAgICB2YXIgZmxvb3Jl
ZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKGRvdWJsZUhpZ2gpOworICAgIGlmIChmbG9vcmVk
VmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aEZsb29yT25Eb3VibGVz
KCIgKyBkb3VibGVIaWdoICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3Vi
bGVNaWQgPSBpICsgMC41OworICAgIHZhciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJs
ZXMoZG91YmxlTWlkKTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcygiICsgZG91YmxlTWlkICsgIikgPSAiICsg
Zmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJs
ZXMoLTAuNik7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gLTEuMCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJtYXRoRmxvb3JPbkRvdWJsZXMoLTAuNikgPSAiICsgZmxvb3JlZFZhbHVlKTsK
K30KKworLy8gU29tZSBtb3JlIGludGVyZXN0aW5nIGNhc2VzLCBzb21lIG9mIHRoZW0gd2VsbCBP
U1IgZXhpdCB3aGVuIHRoZSByZXR1cm4gdmFsdWUgaXMgemVyby4KK2ZvciAodmFyIGkgPSAwOyBp
IDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25JbnRlZ2Vy
cyhpKTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoIiArIGkgKyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOwor
CisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9vck9uSW50ZWdlcnMoLWkpOworICAgIGlm
IChmbG9vcmVkVmFsdWUgIT09IC1pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9v
ck9uSW50ZWdlcnMoLSIgKyBpICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBm
bG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoLTAuNCk7CisgICAgaWYgKGZsb29yZWRW
YWx1ZSAhPT0gLTEuMDApCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aEZsb29yT25Eb3Vi
bGVzKC0wLjQpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0g
bWF0aEZsb29yT25Eb3VibGVzKC0wLjUpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IC0xLjAp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aEZsb29yT25Eb3VibGVzKC0wLjUpID0gIiAr
IGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3Vi
bGVzKC0wKTsKKyAgICBpZiAoIShmbG9vcmVkVmFsdWUgPT09IDAgJiYgKDEvZmxvb3JlZFZhbHVl
KSA9PT0gLUluZmluaXR5KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JPbkRv
dWJsZXMoLTApID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0g
bWF0aEZsb29yT25Eb3VibGVzKE5hTik7CisgICAgaWYgKGZsb29yZWRWYWx1ZSA9PT0gZmxvb3Jl
ZFZhbHVlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcyhOYU4p
ID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29y
T25Eb3VibGVzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgaWYgKGZsb29yZWRWYWx1
ZSAhPT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
Im1hdGhGbG9vck9uRG91YmxlcyhOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpID0gIiArIGZsb29y
ZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKE51
bWJlci5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gTnVtYmVy
Lk5FR0FUSVZFX0lORklOSVRZKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9u
RG91YmxlcyhOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpID0gIiArIGZsb29yZWRWYWx1ZSk7CisK
KyAgICB2YXIgYm9vbGVhbiA9ICEhKGkgJSAyKTsKKyAgICB2YXIgZmxvb3JlZEJvb2xlYW4gPSBt
YXRoRmxvb3JPbkJvb2xlYW5zKGJvb2xlYW4pOworICAgIGlmIChmbG9vcmVkQm9vbGVhbiAhPSBi
b29sZWFuKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcygiICsg
Ym9vbGVhbiArICIpID0gIiArIGZsb29yZWRCb29sZWFuKTsKK30KKworZnVuY3Rpb24gdXNlbGVz
c01hdGhGbG9vcih2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZXwwKTsKK30K
K25vSW5saW5lKHVzZWxlc3NNYXRoRmxvb3IpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsg
KytpKSB7CisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IHVzZWxlc3NNYXRoRmxvb3IoaSk7CisgICAg
aWYgKGZsb29yZWRWYWx1ZSAhPT0gaSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNz
TWF0aEZsb29yKCIgKyBpICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3Vi
bGVMb3cgPSBpICsgMC40OworICAgIHZhciBmbG9vcmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZsb29y
KGRvdWJsZUxvdyk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gaSkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJ1c2VsZXNzTWF0aEZsb29yKCIgKyBkb3VibGVMb3cgKyAiKSA9ICIgKyBmbG9v
cmVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZUhpZ2ggPSBpICsgMC42OworICAgIHZhciBmbG9v
cmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZsb29yKGRvdWJsZUhpZ2gpOworICAgIGlmIChmbG9vcmVk
VmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhGbG9vcigi
ICsgZG91YmxlSGlnaCArICIpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91Ymxl
TWlkID0gaSArIDAuNTsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gdXNlbGVzc01hdGhGbG9vcihk
b3VibGVNaWQpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigidXNlbGVzc01hdGhGbG9vcigiICsgZG91YmxlTWlkICsgIikgPSAiICsgZmxvb3Jl
ZFZhbHVlKTsKKworICAgIHZhciBmbG9vcmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZsb29yKC0wLjQp
OworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IDApCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
dXNlbGVzc01hdGhGbG9vcigtMC40KSA9ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGZs
b29yZWRWYWx1ZSA9IHVzZWxlc3NNYXRoRmxvb3IoLTAuNSk7CisgICAgaWYgKGZsb29yZWRWYWx1
ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aEZsb29yKC0wLjUp
ID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gdXNlbGVzc01h
dGhGbG9vcigtMC42KTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9PSAwKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoInVzZWxlc3NNYXRoRmxvb3IoLTAuNikgPSAiICsgZmxvb3JlZFZhbHVlKTsK
K30KKworZnVuY3Rpb24gbWF0aEZsb29yV2l0aE92ZXJmbG93KHZhbHVlKQoreworICAgIHJldHVy
biBNYXRoLmZsb29yKHZhbHVlKTsKK30KK25vSW5saW5lKG1hdGhGbG9vcldpdGhPdmVyZmxvdyk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgYmlnVmFsdWUgPSAx
MDAwMDAwMDAwMDAwOworICAgIHZhciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JXaXRoT3ZlcmZs
b3coYmlnVmFsdWUpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IGJpZ1ZhbHVlKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vcldpdGhPdmVyZmxvdygiICsgYmlnVmFsdWUgKyAi
KSA9ICIgKyBmbG9vcmVkVmFsdWUpOworfQorCitmdW5jdGlvbiBtYXRoRmxvb3JDb25zdW1lZEFz
RG91YmxlKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKSAqIDAuNTsKK30K
K25vSW5saW5lKG1hdGhGbG9vckNvbnN1bWVkQXNEb3VibGUpOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGRvdWJsZVZhbHVlID0gaSArIDAuMTsKKyAgICB2YXIg
Zmxvb3JlZFZhbHVlID0gbWF0aEZsb29yQ29uc3VtZWRBc0RvdWJsZShkb3VibGVWYWx1ZSk7Cisg
ICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gKGkgKiAwLjUpKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIm1hdGhGbG9vckNvbnN1bWVkQXNEb3VibGUoIiArIGRvdWJsZVZhbHVlICsgIikgPSAiICsg
Zmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVWYWx1ZSA9IGkgKyAwLjY7CisgICAgdmFy
IGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9vckNvbnN1bWVkQXNEb3VibGUoZG91YmxlVmFsdWUpOwor
ICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IChpICogMC41KSkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJtYXRoRmxvb3JDb25zdW1lZEFzRG91YmxlKCIgKyBkb3VibGVWYWx1ZSArICIpID0gIiAr
IGZsb29yZWRWYWx1ZSk7CisKK30KKworZnVuY3Rpb24gbWF0aEZsb29yRG9lc05vdENhcmVBYm91
dE1pbnVzWmVybyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSl8MDsKK30K
K25vSW5saW5lKG1hdGhGbG9vckRvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGRvdWJsZU1pZCA9IGkgKyAwLjU7Cisg
ICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9vckRvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8o
ZG91YmxlTWlkKTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIm1hdGhGbG9vckRvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8oIiArIGRvdWJsZU1p
ZCArICIpID0gIiArIGZsb29yZWRWYWx1ZSk7Cit9CisKKworLy8gKioqIEZ1bmN0aW9uIGFyZ3Vt
ZW50cy4gKioqCitmdW5jdGlvbiBtYXRoRmxvb3JOb0FyZ3VtZW50cygpCit7CisgICAgcmV0dXJu
IE1hdGguZmxvb3IoKTsKK30KK25vSW5saW5lKG1hdGhGbG9vck5vQXJndW1lbnRzKTsKKworZnVu
Y3Rpb24gbWF0aEZsb29yVG9vTWFueUFyZ3VtZW50cyhhLCBiLCBjKQoreworICAgIHJldHVybiBN
YXRoLmZsb29yKGEsIGIsIGMpOworfQorbm9JbmxpbmUobWF0aEZsb29yVG9vTWFueUFyZ3VtZW50
cyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgdmFsdWUgPSBt
YXRoRmxvb3JOb0FyZ3VtZW50cygpOworICAgIGlmICh2YWx1ZSA9PT0gdmFsdWUpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigibWF0aEZsb29yTm9Bcmd1bWVudHMoKSA9ICIgKyB2YWx1ZSk7CisK
KyAgICB2YXIgdmFsdWUgPSBtYXRoRmxvb3JUb29NYW55QXJndW1lbnRzKDIuMSwgMywgNSk7Cisg
ICAgaWYgKHZhbHVlICE9PSAyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vclRv
b01hbnlBcmd1bWVudHMoKSA9ICIgKyB2YWx1ZSk7Cit9CisKKworLy8gKioqIENvbnN0YW50IGFz
IGFyZ3VtZW50cy4gKioqCitmdW5jdGlvbiB0ZXN0TWF0aEZsb29yT25Db25zdGFudHMoKQorewor
ICAgIHZhciB2YWx1ZSA9IE1hdGguZmxvb3IoMCk7CisgICAgaWYgKHZhbHVlICE9PSAwKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguZmxvb3IoMCkgPSAiICsgdmFsdWUpOworICAgIHZh
ciB2YWx1ZSA9IE1hdGguZmxvb3IoLTApOworICAgIGlmICghKHZhbHVlID09PSAwICYmICgxL3Zh
bHVlKSA9PT0gLUluZmluaXR5KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmZsb29y
KC0wKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5mbG9vcigxKTsKKyAgICBp
ZiAodmFsdWUgIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5mbG9vcigxKSA9
ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5mbG9vcigtMSk7CisgICAgaWYgKHZh
bHVlICE9PSAtMSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmZsb29yKC0xKSA9ICIg
KyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5mbG9vcig0Mik7CisgICAgaWYgKHZhbHVl
ICE9PSA0MikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmZsb29yKDQyKSA9ICIgKyB2
YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5mbG9vcigtNDIuMik7CisgICAgaWYgKHZhbHVl
ICE9PSAtNDMpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5mbG9vcigtNDIuMikgPSAi
ICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguZmxvb3IoTmFOKTsKKyAgICBpZiAodmFs
dWUgPT09IHZhbHVlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguZmxvb3IoTmFOKSA9
ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5mbG9vcihOdW1iZXIuUE9TSVRJVkVf
SU5GSU5JVEkpOworICAgIGlmICh2YWx1ZSA9PT0gdmFsdWUpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiTWF0aC5mbG9vcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVEkpID0gIiArIHZhbHVlKTsK
KyAgICB2YXIgdmFsdWUgPSBNYXRoLmZsb29yKE51bWJlci5ORUdBVElWRV9JTkZJTklUSSk7Cisg
ICAgaWYgKHZhbHVlID09PSB2YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmZs
b29yKE51bWJlci5ORUdBVElWRV9JTkZJTklUSSkgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1
ZSA9IE1hdGguZmxvb3IoTWF0aC5FKTsKKyAgICBpZiAodmFsdWUgIT09IDIpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiTWF0aC5mbG9vcihNYXRoLkUpID0gIiArIHZhbHVlKTsKK30KK25vSW5s
aW5lKHRlc3RNYXRoRmxvb3JPbkNvbnN0YW50cyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICB0ZXN0TWF0aEZsb29yT25Db25zdGFudHMoKTsKK30KKworCisvLyAqKiog
U3RydWN0IHRyYW5zaXRpb24uICoqKgorZnVuY3Rpb24gbWF0aEZsb29yU3RydWN0VHJhbnNpdGlv
bih2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSk7Cit9Citub0lubGluZSht
YXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkgeworICAgIHZhciB2YWx1ZSA9IG1hdGhGbG9vclN0cnVjdFRyYW5zaXRpb24oNDIuNSk7Cisg
ICAgaWYgKHZhbHVlICE9PSA0MikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JT
dHJ1Y3RUcmFuc2l0aW9uKDQyLjUpID0gIiArIHZhbHVlKTsKK30KKworTWF0aC5mbG9vciA9IGZ1
bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzWzBdICsgNTsgfQorCit2YXIgdmFsdWUgPSBtYXRo
Rmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKDQyKTsKK2lmICh2YWx1ZSAhPT0gNDcpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJtYXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKDQyKSBhZnRlciB0cmFuc2l0aW9u
ID0gIiArIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbWF0aC1yb3VuZC1zaG91bGQtbm90LXVzZS10cnVuY2F0ZS5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZC1zaG91bGQtbm90LXVzZS10cnVuY2F0
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYWUwNzgyZDM0MDIyZDc5ODVhZjM2YjY4NzQ5OTEzNzYzYzA2NGU3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9t
YXRoLXJvdW5kLXNob3VsZC1ub3QtdXNlLXRydW5jYXRlLmpzCkBAIC0wLDAgKzEsMTIgQEAKK2Z1
bmN0aW9uIG1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8odmFsdWUpCit7CisgICAg
cmV0dXJuIE1hdGgucm91bmQodmFsdWUpOworfQorbm9JbmxpbmUobWF0aFJvdW5kRG9lc05vdENh
cmVBYm91dE1pbnVzWmVybyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAg
ICB2YXIgZG91YmxlTWlkID0gLTk5MDEgLSAwLjY7CisgICAgdmFyIHJvdW5kZWRWYWx1ZSA9IG1h
dGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8oZG91YmxlTWlkKTsKKyAgICBpZiAocm91
bmRlZFZhbHVlICE9PSAtOTkwMikKKyAgICAgICAgdGhyb3cgIm1hdGhSb3VuZERvZXNOb3RDYXJl
QWJvdXRNaW51c1plcm8oIiArIGRvdWJsZU1pZCArICIpID0gIiArIHJvdW5kZWRWYWx1ZTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3Vu
ZGluZy1pbmZpbml0eS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0
aC1yb3VuZGluZy1pbmZpbml0eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWUwMjFlMDBiYzYxMDg1MGZjNDI5
YjM2ZDZjNDgxY2RlZjdmYWQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLWluZmluaXR5LmpzCkBAIC0wLDAgKzEsMzEg
QEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBh
Y3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0Um91bmQodmFsdWUpCit7CisgICAgcmV0dXJuIE1h
dGgucm91bmQodmFsdWUpOworfQorbm9JbmxpbmUodGVzdFJvdW5kKTsKKworZnVuY3Rpb24gdGVz
dEZsb29yKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKTsKK30KK25vSW5s
aW5lKHRlc3RGbG9vcik7CisKK2Z1bmN0aW9uIHRlc3RDZWlsKHZhbHVlKQoreworICAgIHJldHVy
biBNYXRoLmNlaWwodmFsdWUpOworfQorbm9JbmxpbmUodGVzdENlaWwpOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdFJvdW5kKEluZmluaXR5KSwg
SW5maW5pdHkpOworICAgIHNob3VsZEJlKHRlc3RSb3VuZCgtSW5maW5pdHkpLCAtSW5maW5pdHkp
OworICAgIHNob3VsZEJlKHRlc3RGbG9vcihJbmZpbml0eSksIEluZmluaXR5KTsKKyAgICBzaG91
bGRCZSh0ZXN0Rmxvb3IoLUluZmluaXR5KSwgLUluZmluaXR5KTsKKyAgICBzaG91bGRCZSh0ZXN0
Q2VpbChJbmZpbml0eSksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZSh0ZXN0Q2VpbCgtSW5maW5p
dHkpLCAtSW5maW5pdHkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5hbi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1uYW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNjY2RiYzdmN2Q2
NjllNWUzZDg4OWYxNDUyYzhhM2RjYTE3Y2M1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1uYW4uanMKQEAgLTAsMCAr
MSwyOCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTog
JyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSb3VuZCh2YWx1ZSkKK3sKKyAgICByZXR1
cm4gTWF0aC5yb3VuZCh2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Um91bmQpOworCitmdW5jdGlv
biB0ZXN0Rmxvb3IodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguZmxvb3IodmFsdWUpOworfQor
bm9JbmxpbmUodGVzdEZsb29yKTsKKworZnVuY3Rpb24gdGVzdENlaWwodmFsdWUpCit7CisgICAg
cmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Q2VpbCk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBzaG91bGRCZShOdW1iZXIuaXNOYU4odGVz
dFJvdW5kKE5hTikpLCB0cnVlKTsKKyAgICBzaG91bGRCZShOdW1iZXIuaXNOYU4odGVzdEZsb29y
KE5hTikpLCB0cnVlKTsKKyAgICBzaG91bGRCZShOdW1iZXIuaXNOYU4odGVzdENlaWwoTmFOKSks
IHRydWUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9tYXRoLXJvdW5kaW5nLW5lZ2F0aXZlLXplcm8uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL21hdGgtcm91bmRpbmctbmVnYXRpdmUtemVyby5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YmFlMjc4NTBjMDI5OTAyMTMzYzYwOTRkMWQ1YzI3OTliYzU3YWI3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5lZ2F0
aXZlLXplcm8uanMKQEAgLTAsMCArMSw3MCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSb3Vu
ZCh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7Cit9Citub0lubGluZSh0
ZXN0Um91bmQpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxk
QmUoMSAvIHRlc3RSb3VuZCgtMC40KSwgLUluZmluaXR5KTsKKyAgICBzaG91bGRCZSgxIC8gdGVz
dFJvdW5kKC0wLjUpLCAtSW5maW5pdHkpOworICAgIHNob3VsZEJlKDEgLyB0ZXN0Um91bmQoLTAu
NiksIC0xLjApOworICAgIHNob3VsZEJlKDEgLyB0ZXN0Um91bmQoLTAuMCksIC1JbmZpbml0eSk7
CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZCgwLjEpLCBJbmZpbml0eSk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RGbG9vcih2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSk7Cit9
Citub0lubGluZSh0ZXN0Rmxvb3IpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7
CisgICAgc2hvdWxkQmUoMSAvIHRlc3RGbG9vcigtMC4wKSwgLUluZmluaXR5KTsKK30KKworZnVu
Y3Rpb24gdGVzdENlaWwodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9
Citub0lubGluZSh0ZXN0Q2VpbCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsK
KyAgICBzaG91bGRCZSgxIC8gdGVzdENlaWwoLTAuMCksIC1JbmZpbml0eSk7CisgICAgc2hvdWxk
QmUoMSAvIHRlc3RDZWlsKC0wLjkpLCAtSW5maW5pdHkpOworfQorCitmdW5jdGlvbiB0ZXN0Um91
bmROb25OZWdhdGl2ZVplcm8odmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUp
IHwgMDsKK30KK25vSW5saW5lKHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0Um91bmROb25OZWdhdGl2
ZVplcm8oMC40KSwgMCk7CisgICAgc2hvdWxkQmUodGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvKDAu
NSksIDEpOworICAgIHNob3VsZEJlKHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybygwLjYpLCAxKTsK
KyAgICBzaG91bGRCZSh0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8oMC4wKSwgMCk7CisgICAgc2hv
dWxkQmUodGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvKDAuMSksIDApOworfQorc2hvdWxkQmUoMSAv
IHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybygtMC40KSwgSW5maW5pdHkpOworCitmdW5jdGlvbiB0
ZXN0Um91bmROb25OZWdhdGl2ZVplcm8yKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLnJvdW5k
KHZhbHVlKSB8IDA7Cit9Citub0lubGluZSh0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8yKTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHNob3VsZEJlKDEgLyB0ZXN0Um91
bmROb25OZWdhdGl2ZVplcm8yKC0wLjQpLCBJbmZpbml0eSk7CisgICAgc2hvdWxkQmUoMSAvIHRl
c3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIoLTAuNSksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZSgx
IC8gdGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvMigtMC42KSwgLTEuMCk7CisgICAgc2hvdWxkQmUo
MSAvIHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIoLTAuMCksIEluZmluaXR5KTsKKyAgICBzaG91
bGRCZSgxIC8gdGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvMigwLjEpLCBJbmZpbml0eSk7Cit9CisK
KwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy93
ZWJraXQub3JnL0NoYW5nZUxvZwppbmRleCBiODE1ZWFlZTI3YWViYmViMDQ1NGUxOWQ1YjkwZjVh
MWQwYjQ3NWNiLi5hZWUwNTMzODU2MDI1OWI1ZTBiNWE2ZDhkMzM3MTZjNDg2Yjg0NTI1IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZworKysgYi9XZWJzaXRlcy93ZWJr
aXQub3JnL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2LTAyLTI2ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtERkddW0ZUTF1bQjNdIFN1
cHBvcnQgZmxvb3IgYW5kIGNlaWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NDY4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoK
KwogMjAxNi0wMi0xNiAgSm9uYXRoYW4gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYSByZWRpcmVjdCBmb3IgQjMgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sIGIv
V2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5o
dG1sCmluZGV4IDZhNTNjNTQ3ZmEzOTA3YTJkMTVlY2VmOWRlM2FhNTgxNmEwZTdhZTQuLjhlODRi
NDhlMzFhM2UxMzU3YTE0OGIxMjlmNmFiNDU0YWQxM2ZmZWYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAorKysg
Yi9XZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9u
Lmh0bWwKQEAgLTI3Miw2ICsyNzIsOSBAQAogICAgICAgPGR0PlQgQ2VpbChUKTwvZHQ+CiAgICAg
ICA8ZGQ+Q2VpbGluZy4gIFZhbGlkIGZvciBGbG9hdCBhbmQgRG91YmxlLjwvZGQ+CiAKKyAgICAg
IDxkdD5UIEZsb29yKFQpPC9kdD4KKyAgICAgIDxkZD5GbG9vcmluZy4gIFZhbGlkIGZvciBGbG9h
dCBhbmQgRG91YmxlLjwvZGQ+CisKICAgICAgIDxkdD5UIFNxcnQoVCk8L2R0PgogICAgICAgPGRk
PlNxdWFyZSByb290LiAgVmFsaWQgZm9yIEZsb2F0IGFuZCBEb3VibGUuPC9kZD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>272412</attachid>
            <date>2016-02-27 01:14:34 -0800</date>
            <delta_ts>2016-02-27 01:14:34 -0800</delta_ts>
            <desc>Performance results</desc>
            <filename>Baseline_Mine_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegress_yusuke_20160227_1806_report.txt</filename>
            <type>text/plain</type>
            <size>65581</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIGFuZCBKU1JlZ3Jlc3Mgb24geXVzdWtlIChNYWNCb29rUHJvOCwyKS4KClZN
cyB0ZXN0ZWQ6CiJCYXNlbGluZSIgYXQgL1VzZXJzL3l1c3VrZS9kZXYvV2ViS2l0L1dlYktpdEJ1
aWxkL251bWJlcnMtbWFzdGVyL1JlbGVhc2UvanNjCiJNaW5lIiBhdCAvVXNlcnMveXVzdWtlL2Rl
di9XZWJLaXQvV2ViS2l0QnVpbGQvbnVtYmVycy9SZWxlYXNlL2pzYwoKQ29sbGVjdGVkIDQgc2Ft
cGxlcyBwZXIgYmVuY2htYXJrL1ZNLCB3aXRoIDQgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFy
ay4gRW1pdHRlZCBhIGNhbGwgdG8gZ2MoKSBiZXR3ZWVuIHNhbXBsZSBtZWFzdXJlbWVudHMuClVz
ZWQgMSBiZW5jaG1hcmsgaXRlcmF0aW9uIHBlciBWTSBpbnZvY2F0aW9uIGZvciB3YXJtLXVwLiBV
c2VkIHRoZSBqc2Mtc3BlY2lmaWMgcHJlY2lzZVRpbWUoKSBmdW5jdGlvbiB0byBnZXQgbWljcm9z
ZWNvbmQtbGV2ZWwKdGltaW5nLiBSZXBvcnRpbmcgYmVuY2htYXJrIGV4ZWN1dGlvbiB0aW1lcyB3
aXRoIDk1JSBjb25maWRlbmNlIGludGVydmFscyBpbiBtaWxsaXNlY29uZHMuCgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlbGluZSAg
ICAgICAgICAgICAgICAgICAgTWluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIApTdW5TcGlkZXI6CiAgIDNkLWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuNDEwMistMC41NzIyICAgICAgICAgICAgNi4xNzk5Ky0wLjI0MjAgICAg
ICAgICAgbWlnaHQgYmUgMS4wMzczeCBmYXN0ZXIKICAgM2QtbW9ycGggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4yNzkyKy0wLjE0OTYgICAgID8gICAgICA2LjMy
MjQrLTAuNDE0MiAgICAgICAgPwogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3LjkxMzYrLTAuNzYzNCAgICAgICAgICAgIDcuNjQwNSstMC4yMTE2
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1N3ggZmFzdGVyCiAgIGFjY2Vzcy1iaW5hcnktdHJlZXMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTM4OCstMC44MDk3ICAgICAgICAgICAg
Mi42ODE4Ky0wLjA4NDEgICAgICAgICAgbWlnaHQgYmUgMS4wOTU4eCBmYXN0ZXIKICAgYWNjZXNz
LWZhbm5rdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy44NjgwKy0wLjM4
NzcgICAgID8gICAgICA4LjE4MTUrLTAuNDE3MSAgICAgICAgPyBtaWdodCBiZSAxLjAzOTh4IHNs
b3dlcgogICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjM4MjMrLTAuMDIyOSAgICAgICAgICAgIDMuMzcyMCstMC4wMzAwICAgICAgICAKICAgYWNj
ZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44NTYzKy0x
LjM4NzMgICAgICAgICAgICAzLjYxODArLTAuMjMwOCAgICAgICAgICBtaWdodCBiZSAxLjA2NTl4
IGZhc3RlcgogICBiaXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxLjYxMzYrLTAuMzgwNSAgICAgPyAgICAgIDEuNzI2MistMC40MDQ0ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDY5OHggc2xvd2VyCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuODkwMSstMC4wNzE4ICAgICA/ICAgICAgMy45MTQ5Ky0wLjE0
MTUgICAgICAgID8KICAgYml0b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi41MTQzKy0wLjA4MDkgICAgID8gICAgICAyLjU5OTIrLTAuMzE3NSAgICAgICAg
PyBtaWdodCBiZSAxLjAzMzh4IHNsb3dlcgogICBiaXRvcHMtbnNpZXZlLWJpdHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjIwNDgrLTAuOTY4NiAgICAgICAgICAgIDMuODkzMSst
MC4wMzY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDgwMXggZmFzdGVyCiAgIGNvbnRyb2xmbG93LXJl
Y3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTE4MCstMC4wNDA4ICAgICA/
ICAgICAgMy4yODM2Ky0xLjAxNjMgICAgICAgID8gbWlnaHQgYmUgMS4xMjUzeCBzbG93ZXIKICAg
Y3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4zMzQz
Ky0wLjMxNjEgICAgICAgICAgICA1LjIwNzMrLTAuMjQwNCAgICAgICAgICBtaWdodCBiZSAxLjAy
NDR4IGZhc3RlcgogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjc3OTgrLTEuMTI0NyAgICAgICAgICAgIDMuNjUyNistMS4yNTIwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDM0OHggZmFzdGVyCiAgIGNyeXB0by1zaGExICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuNjk0NCstMi4xMzU5ICAgICAgICAgICAgMi45NDU2Ky0w
LjA2NjAgICAgICAgICAgbWlnaHQgYmUgMS4yNTQyeCBmYXN0ZXIKICAgZGF0ZS1mb3JtYXQtdG9m
dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4wMjMxKy0zLjEzNzUgICAgICAg
ICAgIDEwLjYzNjArLTAuMzMyNCAgICAgICAgICBtaWdodCBiZSAxLjEzMDR4IGZhc3RlcgogICBk
YXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjkwMjcr
LTAuNDg1MiAgICAgPyAgICAgIDYuMjQ1NSstMC40ODUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDU4
MXggc2xvd2VyCiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuNjI5OSstMC4xMDc3ICAgICA/ICAgICAgNC4zMDg3Ky0yLjExNDEgICAgICAgID8g
bWlnaHQgYmUgMS4xODcweCBzbG93ZXIKICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNi4xMDI0Ky0wLjAzMDggICAgID8gICAgICA3LjEwNTcrLTMu
MTQ2MCAgICAgICAgPyBtaWdodCBiZSAxLjE2NDR4IHNsb3dlcgogICBtYXRoLXNwZWN0cmFsLW5v
cm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjcyNjkrLTAuMDM5OCAgICAgICAg
ICAgIDIuNjc3MSstMC4wMjQzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4NnggZmFzdGVyCiAgIHJl
Z2V4cC1kbmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMDMwMyst
MS4zMTY5ICAgICA/ICAgICAgOS4xMjQ2Ky00LjYyMjQgICAgICAgID8gbWlnaHQgYmUgMS4xMzYz
eCBzbG93ZXIKICAgc3RyaW5nLWJhc2U2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNS40NDMwKy0wLjE3OTQgICAgICAgICAgICA1LjMzMTYrLTAuMDU1NyAgICAgICAgICBt
aWdodCBiZSAxLjAyMDl4IGZhc3RlcgogICBzdHJpbmctZmFzdGEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA3LjM0NTgrLTAuMjU0OSAgICAgPyAgICAgIDcuNDc2MystMC4y
MjM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3OHggc2xvd2VyCiAgIHN0cmluZy10YWdjbG91ZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuOTM2MistMC4yODI2ICAgICA/ICAg
ICAxMC4xODg3Ky0xLjEzNzMgICAgICAgID8gbWlnaHQgYmUgMS4wMjU0eCBzbG93ZXIKICAgc3Ry
aW5nLXVucGFjay1jb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS43OTUxKy0w
LjgyODUgICAgICAgICAgIDIxLjQxNjQrLTAuMTc5NCAgICAgICAgICBtaWdodCBiZSAxLjAxNzd4
IGZhc3RlcgogICBzdHJpbmctdmFsaWRhdGUtaW5wdXQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1LjI5MDgrLTAuMTczMSAgICAgICAgICAgIDUuMTA0NCstMC4xMzI1ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDM2NXggZmFzdGVyCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1Ljk1NDgrLTAuMjAwMSAgICAgPyAgICAgIDUuOTU1MSstMC4y
MDk1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwMXggc2xvd2VyCgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlbGluZSAgICAgICAgICAg
ICAgICAgICAgTWluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApMb25n
U3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMDAxLjQ3OTMrLTIxLjQxMjcgICAgPyAgIDEwMTguMDkwMistOS42OTIzICAgICAgICA/IG1p
Z2h0IGJlIDEuMDE2Nnggc2xvd2VyCiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3MTQuMDU2MistOS42NTY1ICAgICAgICAgIDcxMy43MjE3Ky0yLjcx
NjYgICAgICAgIAogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNzgyLjI1OTcrLTEzLjY0MjAgICAgPyAgICA4MDEuNzA5MCstMjkuNTk5NiAgICAgICA/
IG1pZ2h0IGJlIDEuMDI0OXggc2xvd2VyCiAgIGFjY2Vzcy1iaW5hcnktdHJlZXMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDExMTguMDYwMCstMTIuNTE4MSAgICA/ICAgMTExOC4xMDgzKy0x
MC40MDQ4ICAgICAgID8KICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDM0NS42MDk3Ky01MS4yMTg4ICAgID8gICAgMzU0LjE4NTMrLTQ2LjM5NjggICAg
ICAgPyBtaWdodCBiZSAxLjAyNDh4IHNsb3dlcgogICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNjI4LjI4NjgrLTguNjIwNCAgICAgPyAgICA2MjguODc4
MystOC42NzUyICAgICAgICA/CiAgIGFjY2Vzcy1uc2lldmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1MTguMDgyNSstNC4zNjQ5ICAgICA/ICAgIDUxOS4zNDY5Ky00LjA3MzQg
ICAgICAgID8KICAgYml0b3BzLTNiaXQtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAg
ICAgICA0Mi41MjAxKy0xLjQ4NjEgICAgID8gICAgIDQyLjkwMjMrLTEuNTM5MCAgICAgICAgPwog
ICBiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTM4Ljg0
MDgrLTMuMjIyMiAgICAgICAgICAxMzMuNzc0NCstMy41NjY3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDM3OXggZmFzdGVyCiAgIGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0MzYuNzQzMistNi4yNTgzICAgICAgICAgIDQzNi4wNzU3Ky0xMC43NTQzICAgICAg
IAogICBjb250cm9sZmxvdy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTU5
LjU3MzgrLTE0LjA2NDQgICAgICAgICA1NTUuOTM1NystOC40NzE2ICAgICAgICAKICAgY3J5cHRv
LWFlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg2MS43ODE0Ky0yNy42
MjYwICAgICAgICAgODMzLjkxNTMrLTE4Ljc2MTQgICAgICAgICBtaWdodCBiZSAxLjAzMzR4IGZh
c3RlcgogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Nzc5Ljg4MDkrLTguMTIyNiAgICAgPyAgICA3ODAuMjcyNSstMjYuNzYwNSAgICAgICA/CiAgIGNy
eXB0by1zaGExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5MDYuOTk2MSst
MjYuNTcxNCAgICAgICAgIDkwMi4yNTU3Ky0yMy44NTA0ICAgICAgIAogICBkYXRlLWZvcm1hdC10
b2Z0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTE3LjU1MDUrLTIwLjkwNDYgICAg
ICAgICA5MDUuOTA0MSstMzQuMDM3MyAgICAgICAgIG1pZ2h0IGJlIDEuMDEyOXggZmFzdGVyCiAg
IGRhdGUtZm9ybWF0LXhwYXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ODAuOTI5
NistNjIuNDEzNSAgICAgICAgIDg3NS41Mjc3Ky01MS40Mjk2ICAgICAgIAogICBoYXNoLW1hcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTk3LjUwNjUrLTEwLjM2MTcg
ICAgICAgICAxOTUuMTA2MystMTQuMDA2NSAgICAgICAgIG1pZ2h0IGJlIDEuMDEyM3ggZmFzdGVy
CiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NTMu
OTAzMCstMzAuNjU4OSAgICAgICAgIDYyOC42NTc3Ky05LjIyNjQgICAgICAgICAgbWlnaHQgYmUg
MS4wNDAyeCBmYXN0ZXIKICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDU3MC44NzEyKy0xMS42MjI0ICAgICAgICAgNTY4LjAxMjcrLTUuOTY4OSAgICAg
ICAgCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
NTMuMzUwMystNy42NzU3ICAgICAgICAgIDg0MS40OTA1Ky0xMS4yMzExICAgICAgICAgbWlnaHQg
YmUgMS4wMTQxeCBmYXN0ZXIKICAgc3RyaW5nLWJhc2U2NCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQ2OS4wMzkxKy0xNC4xMzE1ICAgICAgICAgNDYxLjUyMzUrLTEwLjk2NjIg
ICAgICAgICBtaWdodCBiZSAxLjAxNjN4IGZhc3RlcgogICBzdHJpbmctZmFzdGEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDU0LjA5MDMrLTkuMTU3NCAgICAgPyAgICA0NTku
ODYyOCstMTYuODM2MyAgICAgICA/IG1pZ2h0IGJlIDEuMDEyN3ggc2xvd2VyCiAgIHN0cmluZy10
YWdjbG91ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDkuNzE1MSstMi40ODcz
ICAgICA/ICAgIDIxMi4wODkzKy0zLjk2MTEgICAgICAgID8gbWlnaHQgYmUgMS4wMTEzeCBzbG93
ZXIKCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
MDMuNDY5NSstNC40NDkxICAgICAgICAgIDUwMS41Njk3Ky0zLjA1MDEgICAgICAgICAgbWlnaHQg
YmUgMS4wMDM4eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJhc2VsaW5lICAgICAgICAgICAgICAgICAgICBNaW5lICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClY4U3BpZGVyOgogICBjcnlwdG8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ5Ljg1NDUrLTAuMjc2MCAg
ICAgPyAgICAgNDkuODU1MistMC41MDI5ICAgICAgICA/CiAgIGRlbHRhYmx1ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjIuNTU5NCstMy4yMzMwICAgICA/ICAgICA2
NC40NzYwKy0zLjYyMjcgICAgICAgID8gbWlnaHQgYmUgMS4wMzA2eCBzbG93ZXIKICAgZWFybGV5
LWJveWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MC43MTg5Ky0xLjU4
NDEgICAgID8gICAgIDUxLjM4MDUrLTIuNTY1MyAgICAgICAgPyBtaWdodCBiZSAxLjAxMzB4IHNs
b3dlcgogICByYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMzLjM4ODYrLTAuODUzNSAgICAgICAgICAgMzMuMTM5NistMC44Nzc2ICAgICAgICAKICAgcmVn
ZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3OS4wOTUzKy0w
LjY0MDcgICAgID8gICAgIDc5LjcxNDErLTEuMjY1MCAgICAgICAgPwogICByaWNoYXJkcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUzLjI3MzcrLTIuNzkxMCAgICAg
ICAgICAgNTIuMTE1MCstMC41NjkyICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyMnggZmFzdGVyCiAg
IHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMuMjE3
MCstNC40ODY1ICAgICA/ICAgICA0My45NTI5Ky0xLjg3MDMgICAgICAgID8gbWlnaHQgYmUgMS4w
MTcweCBzbG93ZXIKCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNTEuNDkyNistMS4yMTUyICAgICA/ICAgICA1MS43ODEwKy0wLjI2NzkgICAgICAg
ID8gbWlnaHQgYmUgMS4wMDU2eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2VsaW5lICAgICAgICAgICAgICAgICAgICBN
aW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk9jdGFuZToKICAgZW5j
cnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjIxMTE2Ky0w
LjAwNTc0ICAgID8gICAgIDAuMjE1NjIrLTAuMDA5MDEgICAgICAgPyBtaWdodCBiZSAxLjAyMTF4
IHNsb3dlcgogICBkZWNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuODMzNjcrLTAuMDU1NDIgICAgPyAgICAgMy44NTI0NCstMC4wMjc2NiAgICAgICA/CiAg
IGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC4xOTIx
MystMC4wMTY4NSAgICAgICAgICAwLjE4OTQ1Ky0wLjAyOTMxICAgICAgICAgbWlnaHQgYmUgMS4w
MTQxeCBmYXN0ZXIKICAgZWFybGV5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLjQxNTQzKy0wLjAxMDExICAgICAgICAgIDAuNDEzNDIrLTAuMDA5NzkgICAgICAg
CiAgIGJveWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4y
ODA2MystMC4xNTY3NiAgICA/ICAgICA2LjM1ODUwKy0wLjE0NTgzICAgICAgID8gbWlnaHQgYmUg
MS4wMTI0eCBzbG93ZXIKICAgbmF2aWVyLXN0b2tlcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4MiAgICAgICA1LjQwODcwKy0wLjA3NjQ2ICAgID8gICAgIDUuNDI1NzUrLTAuMDg4NzMgICAg
ICAgPwogICByYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAg
IDEuMjc2NjYrLTAuMDI3MTUgICAgPyAgICAgMS4zMDI3OCstMC4wNjAyOSAgICAgICA/IG1pZ2h0
IGJlIDEuMDIwNXggc2xvd2VyCiAgIHJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeDIgICAgICAgMC4xMDU4OSstMC4wMDE5NiAgICAgICAgICAwLjEwNTYwKy0wLjAwMjI0
ICAgICAgIAogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAg
ICAgIDAuNDUwNDUrLTAuMDA2MzUgICAgICAgICAgMC40NDk4MystMC4wMDg2NyAgICAgICAKICAg
cmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDMyLjIwMzU3
Ky0wLjY5MjE0ICAgID8gICAgMzIuMzY4NDYrLTAuNDcyNzQgICAgICAgPwogICBwZGZqcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgNDkuNTE4NzErLTAuNjA1NzIg
ICAgPyAgICA0OS43NTA5NystMS40NDA1MSAgICAgICA/CiAgIG1hbmRyZWVsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA1NS45Mjg4NCstMS41NzA3MSAgICAgICAgIDU0
LjQwNDc5Ky0wLjM2NDEwICAgICAgICAgbWlnaHQgYmUgMS4wMjgweCBmYXN0ZXIKICAgZ2JlbXUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDMzLjkzMjQzKy0wLjUz
NzAwICAgID8gICAgMzQuMjg5NTkrLTAuNjA2MjIgICAgICAgPyBtaWdodCBiZSAxLjAxMDV4IHNs
b3dlcgogICBjbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuNzQ0NzUrLTAuMDEwNTggICAgICAgICAgMC43NDQ3MistMC4wMjM4MyAgICAgICAKICAganF1
ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjY1MDM5Ky0w
LjE5MzU4ICAgICAgICAgIDkuNTY0MTUrLTAuMDE2NDQgICAgICAgCiAgIGJveDJkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAxMi4zMjIzMistMC4wNjAwNSAgICAg
ICAgIDEyLjI5OTIwKy0wLjIwOTc3ICAgICAgIAogICB6bGliICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHgyICAgICA0NDguOTE2MTYrLTkuOTg0MTYgICAgICAgIDQ0Mi4wNzM3
NystMjUuNDg3MjUgICAgICAgIG1pZ2h0IGJlIDEuMDE1NXggZmFzdGVyCiAgIHR5cGVzY3JpcHQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDg4OS42MTkyMCstMTYuNDkxMTQg
ICAgICAgODgyLjM3NTM3Ky0xNC40MjYwOCAgICAgIAoKICAgPGdlb21ldHJpYz4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljg4MDI5Ky0wLjA0NjAzICAgICAgICAgIDYu
ODcyMDUrLTAuMTAzNzggICAgICAgICBtaWdodCBiZSAxLjAwMTJ4IGZhc3RlcgoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZWxpbmUg
ICAgICAgICAgICAgICAgICAgIE1pbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKS3Jha2VuOgogICBhaS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwOC43MzIrLTMuMDE1ICAgICAgPyAgICAgMTA5LjE0OCstMi41NjIgICAgICAg
ICA/CiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDY2LjM4OCstMy4wNDAgICAgICAgICAgICAgNjUuNzI0Ky0xLjY5NCAgICAgICAgICAgbWlnaHQg
YmUgMS4wMTAxeCBmYXN0ZXIKICAgYXVkaW8tZGZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMTMuMDI2Ky0zLjExMyAgICAgICAgICAgIDExMS40MzArLTEuNTE5ICAg
ICAgICAgICBtaWdodCBiZSAxLjAxNDN4IGZhc3RlcgogICBhdWRpby1mZnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ni4yOTcrLTAuMTM2ICAgICAgICAgICAgIDQ2
LjIwOCstMC4yNjYgICAgICAgICAKICAgYXVkaW8tb3NjaWxsYXRvciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNjUuMTQ0Ky0wLjg0MiAgICAgIF4gICAgICA2MC42NzQrLTEuNDE2
ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDczN3ggZmFzdGVyCiAgIGltYWdpbmctZGFya3Jvb20g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc0LjYwNistNS4xNDggICAgICAgICAg
ICAgNzMuNjI5Ky0wLjMxMyAgICAgICAgICAgbWlnaHQgYmUgMS4wMTMzeCBmYXN0ZXIKICAgaW1h
Z2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjMuNjk3Ky0z
Ljg5MiAgICAgICAgICAgICA2Mi4wNDYrLTAuNTI3ICAgICAgICAgICBtaWdodCBiZSAxLjAyNjZ4
IGZhc3RlcgogICBpbWFnaW5nLWdhdXNzaWFuLWJsdXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5NC4wNDUrLTEyLjI1NyAgICAgPyAgICAgIDk5LjE1NCstNC4yMjQgICAgICAgICA/IG1p
Z2h0IGJlIDEuMDU0M3ggc2xvd2VyCiAgIGpzb24tcGFyc2UtZmluYW5jaWFsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDUwLjQyNSstNC4xMjQgICAgICAgICAgICAgNDkuNjYzKy0wLjc3
MSAgICAgICAgICAgbWlnaHQgYmUgMS4wMTUzeCBmYXN0ZXIKICAganNvbi1zdHJpbmdpZnktdGlu
ZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAuNTM0Ky00LjQ2MyAgICAgICAgICAg
ICAzMC4wNTYrLTQuODA2ICAgICAgICAgICBtaWdodCBiZSAxLjAxNTl4IGZhc3RlcgogICBzdGFu
Zm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MS4wMjUrLTku
OTk4ICAgICAgICAgICAgIDQ3LjYxMystMC42NTYgICAgICAgICAgIG1pZ2h0IGJlIDEuMDcxNngg
ZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0by1jY20gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQ2LjUwMSstMy40MzUgICAgICA/ICAgICAgNDkuNDk1Ky0zLjkzOSAgICAgICAgID8gbWln
aHQgYmUgMS4wNjQ0eCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMjEuOTg1Ky02LjQ1OSAgICAgICAgICAgIDEyMC42NjArLTguMTk1
ICAgICAgICAgICBtaWdodCBiZSAxLjAxMTB4IGZhc3RlcgogICBzdGFuZm9yZC1jcnlwdG8tc2hh
MjU2LWl0ZXJhdGl2ZSAgICAgICAgICAgICAgICAgICA0Ni44MzIrLTEuMTg2ICAgICAgICAgICAg
IDQ2LjM1MistMC42OTggICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwNHggZmFzdGVyCgogICA8YXJp
dGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2OS45NDUrLTEu
NTQ2ICAgICAgICAgICAgIDY5LjQxOCstMS4zMDEgICAgICAgICAgIG1pZ2h0IGJlIDEuMDA3Nngg
ZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBCYXNlbGluZSAgICAgICAgICAgICAgICAgICAgTWluZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFiYy1mb3J3YXJkLWxvb3AtZXF1
YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuMDg5NSstMC40NTM2ICAgICA/ICAgICA0
NS42MjQ1Ky0xLjg2MzYgICAgICAgID8gbWlnaHQgYmUgMS4wMTE5eCBzbG93ZXIKICAgYWJjLXBv
c3RmaXgtYmFja3dhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICA1OC40NzE4Ky0wLjY3
MTkgICAgID8gICAgIDYwLjU1OTYrLTQuOTEwMCAgICAgICAgPyBtaWdodCBiZSAxLjAzNTd4IHNs
b3dlcgogICBhYmMtc2ltcGxlLWJhY2t3YXJkLWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAg
IDQ0LjYwNzYrLTAuNjEwNiAgICAgICAgICAgNDQuNTQ3NSstMC4xMjY0ICAgICAgICAKICAgYWJj
LXNpbXBsZS1mb3J3YXJkLWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS4wMjU1Ky0w
LjM2MDEgICAgID8gICAgIDQ3LjM2OTMrLTUuMDEzNiAgICAgICAgPyBtaWdodCBiZSAxLjA1MjF4
IHNsb3dlcgogICBhYmMtc2tpcHB5LWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDM3LjU2OTYrLTAuNDA0MyAgICAgPyAgICAgMzguNDY4MystMi41Njk0ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIzOXggc2xvd2VyCiAgIGFicy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMzQ3OCstMS4xNzUxICAgICAgICAgICAgMy4wMDUzKy0wLjE0
MDIgICAgICAgICAgbWlnaHQgYmUgMS4xMTQweCBmYXN0ZXIKICAgYWRhcHQtdG8tZG91YmxlLWRp
dmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi42MTMwKy00LjU3NDUgICAgICAgICAg
IDE2LjQwMTkrLTMuMjM5NiAgICAgICAgICBtaWdodCBiZSAxLjAxMjl4IGZhc3RlcgogICBhbGlh
c2VkLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAxLjQ0NDkrLTAu
MDE0MiAgICAgPyAgICAgIDEuNTMwNSstMC4zNjg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU5Mngg
c2xvd2VyCiAgIGFsbG9jYXRlLWJpZy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMDg4MSstMC45MTU2ICAgICAgICAgICAgMy4wNjgwKy0wLjc2NTcgICAgICAgIAogICBh
cmd1bWVudHMtbmFtZWQtYW5kLXJlZmxlY3RpdmUgICAgICAgICAgICAgICAgICAgICA5LjQ5OTkr
LTAuMTQ1NiAgICAgPyAgICAgIDkuNTc4NCstMC4xNjYxICAgICAgICA/CiAgIGFyZ3VtZW50cy1v
dXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuODAwNistMC40NTcyICAg
ICA/ICAgICAxMC45ODQ0Ky0wLjI2MTUgICAgICAgID8gbWlnaHQgYmUgMS4wMTcweCBzbG93ZXIK
ICAgYXJndW1lbnRzLXN0cmljdC1tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ny40
MjQxKy0xLjQ5ODcgICAgID8gICAgIDU3LjQ3NjArLTEuMTkxNiAgICAgICAgPwogICBhcmd1bWVu
dHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjEzMTcrLTAuMDgw
NiAgICAgPyAgICAgIDguODg2MistMS4xOTAzICAgICAgICA/IG1pZ2h0IGJlIDEuMDkyOHggc2xv
d2VyCiAgIGFyaXR5LW1pc21hdGNoLWlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEuMTYyOCstMC4yNzUyICAgICA/ICAgICAgMS4zMTQzKy0wLjQyNjkgICAgICAgID8gbWlnaHQg
YmUgMS4xMzAzeCBzbG93ZXIKICAgYXJyYXktYWNjZXNzLXBvbHltb3JwaGljLXN0cnVjdHVyZSAg
ICAgICAgICAgICAgICAgOS4wMDA5Ky0wLjUxMTkgICAgICAgICAgICA4LjY4NzcrLTAuMTM5NCAg
ICAgICAgICBtaWdodCBiZSAxLjAzNjB4IGZhc3RlcgogICBhcnJheS1ub25hcnJheS1wb2x5bW9y
aHBpYy1hY2Nlc3MgICAgICAgICAgICAgICAgIDI4LjM2NjgrLTAuMTQ3NyAgICAgPyAgICAgMjgu
Njc0MSstMC45MDg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwOHggc2xvd2VyCiAgIGFycmF5LXBy
b3RvdHlwZS1ldmVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODEuOTU0NSstMS45MDMy
ICAgICA/ICAgICA4Mi41Mjc1Ky00LjI5NTQgICAgICAgID8KICAgYXJyYXktcHJvdG90eXBlLWZv
ckVhY2ggICAgICAgICAgICAgICAgICAgICAgICAgICA4NC4yMDU3Ky02LjkwOTkgICAgICAgICAg
IDgyLjg5OTQrLTEwLjEyNjggICAgICAgICBtaWdodCBiZSAxLjAxNTh4IGZhc3RlcgogICBhcnJh
eS1wcm90b3R5cGUtbWFwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg5LjI5MTkrLTQu
ODUwMSAgICAgPyAgICAgOTAuNDE5MSstMS45MTMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNngg
c2xvd2VyCiAgIGFycmF5LXByb3RvdHlwZS1yZWR1Y2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgODAuMzc4NCstNS44OTY5ICAgICAgICAgICA3OC4zMDMzKy0wLjgyMDYgICAgICAgICAgbWln
aHQgYmUgMS4wMjY1eCBmYXN0ZXIKICAgYXJyYXktcHJvdG90eXBlLXJlZHVjZVJpZ2h0ICAgICAg
ICAgICAgICAgICAgICAgICA5NS42NzM0Ky0xLjM3OTEgICAgID8gICAgIDk4LjMwNjArLTYuMzEw
NyAgICAgICAgPyBtaWdodCBiZSAxLjAyNzV4IHNsb3dlcgogICBhcnJheS1wcm90b3R5cGUtc29t
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgyLjc5NDUrLTEuOTU4MyAgICAgICAgICAg
ODEuMjU2NSstMC44OTAwICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4OXggZmFzdGVyCiAgIGFycmF5
LXNwbGljZS1jb250aWd1b3VzICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIuNTI5NSstNS41
MTA4ICAgICAgICAgICAyOC43MDU4Ky0wLjY2ODMgICAgICAgICAgbWlnaHQgYmUgMS4xMzMyeCBm
YXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC40NzQxKy0wLjM0MTMgICAgID8gICAgICA0LjcwOTMrLTEuMTY0MCAgICAgICAgPyBtaWdo
dCBiZSAxLjA1MjZ4IHNsb3dlcgogICBhcnJheS13aXRoLWRvdWJsZS1pbmNyZW1lbnQgICAgICAg
ICAgICAgICAgICAgICAgICAzLjc3NTYrLTAuNDI1MCAgICAgPyAgICAgIDQuMzc4NSstMS40ODQx
ICAgICAgICA/IG1pZ2h0IGJlIDEuMTU5N3ggc2xvd2VyCiAgIGFycmF5LXdpdGgtZG91YmxlLW11
bC1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMTI5NSstMC4xNjk0ICAgICAgICAgICAg
NS4wNDIwKy0wLjI0MjMgICAgICAgICAgbWlnaHQgYmUgMS4wMTc0eCBmYXN0ZXIKICAgYXJyYXkt
d2l0aC1kb3VibGUtc3VtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MzI4Ky0wLjE3
MDcgICAgID8gICAgICAzLjg1MTErLTAuNDA2NCAgICAgICAgPyBtaWdodCBiZSAxLjEyMTh4IHNs
b3dlcgogICBhcnJheS13aXRoLWludDMyLWFkZC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2LjM5NjArLTAuMTA5OSAgICAgPyAgICAgIDYuNjg5NystMS4xMzMwICAgICAgICA/IG1pZ2h0
IGJlIDEuMDQ1OXggc2xvd2VyCiAgIGFycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bSAgICAg
ICAgICAgICAgICAgICAgIDMuNzIzNCstMC4xODkzICAgICA/ICAgICAgNC4zNTQzKy0xLjU0Mzkg
ICAgICAgID8gbWlnaHQgYmUgMS4xNjk0eCBzbG93ZXIKICAgQXJyYXlCdWZmZXItRGF0YVZpZXct
YWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQxLjM4NjUrLTQuOTY4NSAgICAgICAgICAgNDAuNTM1OSst
NS4zMzI3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMHggZmFzdGVyCiAgIEFycmF5QnVmZmVyLURh
dGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgMTcuNTI1MystNC41MzI4ICAgICA/
ICAgICAxOC4wNTA3Ky01LjEzOTYgICAgICAgID8gbWlnaHQgYmUgMS4wMzAweCBzbG93ZXIKICAg
QXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0ICAgICAgICAgICAgICAgICAgNS40OTQ4
Ky0zLjIxMzcgICAgICAgICAgICA0LjUxMDArLTAuMTQ3MSAgICAgICAgICBtaWdodCBiZSAxLjIx
ODN4IGZhc3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZl
ZCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDM4LjgzNjUrLTAuODczMSAgICAgPyAgICAgNDEuMDA5MCstNS4zNDQwICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU1OXggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYy1sb25nLWxp
dmVkLWJ1ZmZlciAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI1LjAwMDUrLTAuNzUyMiAgICAgPyAgICAgMjUuNTU2NCstMS4zODYxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIyMnggc2xvd2VyCiAgIEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxv
Yy1sb25nLWxpdmVkICAgICAgICAgICAgMTUuNDM1MSstMC44NDk3ICAgICAgICAgICAxNS4yMDQ3
Ky0wLjQ4NjUgICAgICAgICAgbWlnaHQgYmUgMS4wMTUyeCBmYXN0ZXIKICAgQXJyYXlCdWZmZXIt
SW50OEFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAxMy4wMDQxKy0wLjM4NjAgICAg
ICAgICAgIDEyLjk0MTgrLTAuNzk2OSAgICAgICAgCiAgIGFycm93ZnVuY3Rpb24tY2FsbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuOTM3NystMy4yODgwICAgICAgICAgICAxMS45
ODkxKy0wLjA5MTggICAgICAgICAgbWlnaHQgYmUgMS4wNzkxeCBmYXN0ZXIKICAgYXNtanNfYm9v
bF9idWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4xOTEzKy0wLjk1MTIg
ICAgICAgICAgICA4LjgzMTcrLTAuNDI3MiAgICAgICAgICBtaWdodCBiZSAxLjA0MDd4IGZhc3Rl
cgogICBhc3NpZ24tY3VzdG9tLXNldHRlci1wb2x5bW9ycGhpYyAgICAgICAgICAgICAgICAgICAz
LjQxMDgrLTAuMTcyMiAgICAgPyAgICAgIDMuNDM0NSstMC4yNTMwICAgICAgICA/CiAgIGFzc2ln
bi1jdXN0b20tc2V0dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuOTIwOCstMy42
Mzk0ICAgICAgICAgICAgNS40NTk2Ky0yLjM5ODQgICAgICAgICAgbWlnaHQgYmUgMS4wODQ1eCBm
YXN0ZXIKICAgYmFzaWMtc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOS40NDY1Ky0xLjE1MTIgICAgID8gICAgIDEwLjAzMDMrLTMuMDgwOSAgICAgICAgPyBtaWdo
dCBiZSAxLjA2MTh4IHNsb3dlcgogICBiaWctaW50LW11bCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjg3MjYrLTAuMDUxMiAgICAgPyAgICAgIDQuMDIwOCstMC4xMjg4
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM4M3ggc2xvd2VyCiAgIGJvb2xlYW4tdGVzdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjkxMistMi40NDkzICAgICAgICAgICAg
NC4wMTg0Ky0wLjM2NTQgICAgICAgICAgbWlnaHQgYmUgMS4xNjc0eCBmYXN0ZXIKICAgYnJhbmNo
LWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40NDM0Ky0wLjA3
MjIgICAgICAgICAgICA0LjQxNjYrLTAuMDI0MSAgICAgICAgCiAgIGJyYW5jaC1vbi1zdHJpbmct
YXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgMjAuNzIxNSstNS4xMjc1ICAgICAgICAg
ICAxOS41ODA2Ky0yLjc0MzUgICAgICAgICAgbWlnaHQgYmUgMS4wNTgzeCBmYXN0ZXIKICAgYnkt
dmFsLWdlbmVyaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS43MDAwKy0w
Ljk5NDMgICAgICAgICAgICA1LjYxNjkrLTAuNTA1MCAgICAgICAgICBtaWdodCBiZSAxLjAxNDh4
IGZhc3RlcgogICBjYWxsLXNwcmVhZC1hcHBseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDU2LjM2NTQrLTEuMzkwOSAgICAgPyAgICAgNTYuMzc1NCstMS42NjI5ICAgICAgICA/CiAg
IGNhbGwtc3ByZWFkLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzMuODc5
NSstMTIuNjU2MSAgICAgICAgICA2Ny4xNzk0Ky00LjI4MjYgICAgICAgICAgbWlnaHQgYmUgMS4w
OTk3eCBmYXN0ZXIKICAgY2FwdHVyZWQtYXNzaWdubWVudHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC42NjQxKy0wLjI5MDQgICAgICAgICAgICAwLjYwNjMrLTAuMDEzOSAgICAgICAg
ICBtaWdodCBiZSAxLjA5NTN4IGZhc3RlcgogICBjYXN0LWludC10by1kb3VibGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1LjkwNzUrLTAuMzUwMSAgICAgPyAgICAgIDYuMjM1Mist
MS4zNDMwICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1NXggc2xvd2VyCiAgIGNlbGwtYXJndW1lbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDI0MCstMC4wMTExICAgICA/
ICAgICAgNC45NTM0Ky0xLjM4MTUgICAgICAgID8gbWlnaHQgYmUgMS4xMTk3eCBzbG93ZXIKICAg
Y2ZnLXNpbXBsaWZ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yMzEw
Ky0wLjAzOTAgICAgID8gICAgICAzLjI1NzQrLTAuMTQ1MiAgICAgICAgPwogICBjaGFpbi1nZXR0
ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjQ0MDYrLTMuMjk4NiAg
ICAgICAgICAgMTIuNDMzMCstMC40MjIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDgxMHggZmFzdGVy
CiAgIGNtcGVxLW9iai10by1vYmotb3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEu
ODI5NystMy4yNjY1ICAgICAgICAgICAxMS4zODI4Ky0yLjIwODggICAgICAgICAgbWlnaHQgYmUg
MS4wMzkzeCBmYXN0ZXIKICAgY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNS43NDE0Ky0xLjA3MTQgICAgICAgICAgICA1LjAwMTArLTAuMzMxMCAgICAg
ICAgICBtaWdodCBiZSAxLjE0ODF4IGZhc3RlcgogICBjcmVhdGUtbG90cy1vZi1mdW5jdGlvbnMg
ICAgICAgICAgICAgICAgICAgICAgICAgIDExLjE2MzErLTAuMTg2MyAgICAgPyAgICAgMTEuNjIw
NSstMC43OTE2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQxMHggc2xvd2VyCiAgIGNzZS1uZXctYXJy
YXktYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjY3MCstMC44ODczICAg
ICAgICAgICAgMi42NjEzKy0wLjEzMDMgICAgICAgICAgbWlnaHQgYmUgMS4yMjc2eCBmYXN0ZXIK
ICAgY3NlLW5ldy1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43
NjE5Ky0wLjA2MDggICAgID8gICAgICAyLjg4MDIrLTAuMzM2NCAgICAgICAgPyBtaWdodCBiZSAx
LjA0Mjh4IHNsb3dlcgogICBjdXN0b20tc2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkICAg
ICAgICAgICAgICAwLjY0NzArLTAuMDQ0MSAgICAgPyAgICAgIDAuOTM0OSstMC4zMDAyICAgICAg
ICA/IG1pZ2h0IGJlIDEuNDQ0OXggc2xvd2VyCiAgIERhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVz
ICAgICAgICAgICAgICAgICAgICAgICAgNDUuNDc0NistMS42MDI1ICAgICAgICAgICA0NS4yNTYw
Ky0yLjU1OTkgICAgICAgIAogICBkZWxheS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZSAg
ICAgICAgICAgICAgIDE1LjMwNTUrLTAuNzkwNCAgICAgICAgICAgMTUuMDI0NystMC44MTA5ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE4N3ggZmFzdGVyCiAgIGRlbHRhYmx1ZS12YXJhcmdzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNTIuMjEyMCstMC4zNDgwICAgICA/ICAgICA1Mi43
MjUzKy0xLjU1OTggICAgICAgID8KICAgZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE5OC43MTk1Ky0xMi45OTM4ICAgID8gICAgMjAxLjAxMDErLTguNDEz
OSAgICAgICAgPyBtaWdodCBiZSAxLjAxMTV4IHNsb3dlcgogICBkZXN0cnVjdHVyaW5nLXBhcmFt
ZXRlcnMtb3ZlcnJpZGRlbi1ieS1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjY4MDMrLTAuMjYyMCAgICAgPyAgICAgIDAu
NzAxNCstMC4yMDM2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxMHggc2xvd2VyCiAgIGRlc3RydWN0
dXJpbmctc3dhcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMzY0NCstMC4xNTA1
ICAgICA/ICAgICAgNS43NzU1Ky0xLjQ1MTEgICAgICAgID8gbWlnaHQgYmUgMS4wNzY2eCBzbG93
ZXIKICAgZGlyZWN0LWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAg
MS42NDQ0Ky0wLjQyMTQgICAgID8gICAgICAxLjY2MjIrLTAuNjY0NiAgICAgICAgPyBtaWdodCBi
ZSAxLjAxMDh4IHNsb3dlcgogICBkaXYtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0LjUxNjcrLTAuMDg5NCAgICAgPyAgICAgIDQuODYzOSstMC45MzE4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDc2OXggc2xvd2VyCiAgIGRpdi1ib29sZWFuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNjczMCstMC4wMzcwICAgICA/ICAgICAgNy43
ODAwKy0wLjE1NzcgICAgICAgID8gbWlnaHQgYmUgMS4wMTM5eCBzbG93ZXIKICAgZG91YmxlLWdl
dC1ieS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgNS4xNTcyKy0wLjIwMjAg
ICAgID8gICAgICA1LjI4NTYrLTAuNDU1MyAgICAgICAgPyBtaWdodCBiZSAxLjAyNDl4IHNsb3dl
cgogICBkb3VibGUtcG9sbHV0aW9uLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjEwNDIrLTAuNDYyNyAgICAgPyAgICAgIDkuMTA1NCstMC40MjAwICAgICAgICA/CiAgIGRvdWJs
ZS1wb2xsdXRpb24tcHV0YnlvZmZzZXQgICAgICAgICAgICAgICAgICAgICAgIDQuNDM1MCstMC4x
ODEyICAgICA/ICAgICAgNS4zMjgwKy0zLjMwNDQgICAgICAgID8gbWlnaHQgYmUgMS4yMDE0eCBz
bG93ZXIKICAgZG91YmxlLXJlYWwtdXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzMC45NjExKy0wLjQ3MzMgICAgID8gICAgIDMxLjA4MjUrLTAuMzg2MSAgICAgICAgPwogICBk
b3VibGUtdG8taW50MzItdHlwZWQtYXJyYXktbm8taW5saW5lICAgICAgICAgICAgICAyLjczMTkr
LTAuMzYyNSAgICAgICAgICAgIDIuNjI5NCstMC4yOTU0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM5
MHggZmFzdGVyCiAgIGRvdWJsZS10by1pbnQzMi10eXBlZC1hcnJheSAgICAgICAgICAgICAgICAg
ICAgICAgIDIuNjY2OSstMC4yMDEzICAgICAgICAgICAgMi41NzUwKy0wLjM0NTggICAgICAgICAg
bWlnaHQgYmUgMS4wMzU3eCBmYXN0ZXIKICAgZG91YmxlLXRvLXVpbnQzMi10eXBlZC1hcnJheS1u
by1pbmxpbmUgICAgICAgICAgICAgMi44MDI0Ky0wLjMxMDggICAgICAgICAgICAyLjc0NDArLTAu
MjYxMCAgICAgICAgICBtaWdodCBiZSAxLjAyMTN4IGZhc3RlcgogICBkb3VibGUtdG8tdWludDMy
LXR5cGVkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAyLjU5MTkrLTAuMjEyMSAgICAgICAg
ICAgIDIuNTY5OCstMC4yOTQzICAgICAgICAKICAgZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzMi41OTA3Ky0wLjEyMDEgICAgID8gICAgIDMzLjI3MTcr
LTAuOTM3OCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDl4IHNsb3dlcgogICBlbGlkYWJsZS1uZXct
b2JqZWN0LXJvZmxjb3B0ZXIgICAgICAgICAgICAgICAgICAgIDQ3Ljg3NTUrLTYuMDgyMSAgICAg
PyAgICAgNDkuNDAyOSstNS4xMzI3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxOXggc2xvd2VyCiAg
IGVsaWRhYmxlLW5ldy1vYmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAgICAgMjguNDU2
OSstMi43MTgxICAgICAgICAgICAyNy4wNDc3Ky0wLjY0ODMgICAgICAgICAgbWlnaHQgYmUgMS4w
NTIxeCBmYXN0ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAg
ICAgICAgICAzNC42NTYzKy0yLjAzMDIgICAgID8gICAgIDM1LjM0NDArLTMuMjI0MCAgICAgICAg
PyBtaWdodCBiZSAxLjAxOTh4IHNsb3dlcgogICBlbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2LjI0MzcrLTAuMzIxOSAgICAgPyAgICAgIDYuNzAwMyst
MC4yNDA4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDczMXggc2xvd2VyCiAgIGVtc2NyaXB0ZW4tY3Vi
ZTJoYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDEuOTcwMistMC41ODc3ICAgICAg
ICAgICA0MS42MjQ0Ky0wLjQzODggICAgICAgIAogICBleGl0LWxlbmd0aC1vbi1wbGFpbi1vYmpl
Y3QgICAgICAgICAgICAgICAgICAgICAgIDE4LjQ3OTgrLTAuNTI2MiAgICAgICAgICAgMTguMjk2
NistMC40ODkwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwMHggZmFzdGVyCiAgIGV4dGVybmFsLWFy
Z3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgIDEuNDgwMSstMC4xNTA3ICAg
ICAgICAgICAgMS40NzA2Ky0wLjE2MjAgICAgICAgIAogICBleHRlcm5hbC1hcmd1bWVudHMtcHV0
Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAyLjcxNjErLTAuMDU2NiAgICAgPyAgICAgIDIu
NzkwMistMC4wMzI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3M3ggc2xvd2VyCiAgIGZpeGVkLXR5
cGVkLWFycmF5LXN0b3JhZ2UtdmFyLWluZGV4ICAgICAgICAgICAgICAgIDEuNTc5NSstMC4zNjE2
ICAgICAgICAgICAgMS41NjM4Ky0wLjM3MTcgICAgICAgIAogICBmaXhlZC10eXBlZC1hcnJheS1z
dG9yYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMzOTIrLTAuNDY3OCAgICAgPyAgICAg
IDEuMzc5MCstMC4zMDY2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5N3ggc2xvd2VyCiAgIEZsb2F0
MzJBcnJheS1tYXRyaXgtbXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNzU4MCstMC4x
MTQzICAgICA/ICAgICAgNS45NjIzKy0wLjY0NzIgICAgICAgID8gbWlnaHQgYmUgMS4wMzU1eCBz
bG93ZXIKICAgRmxvYXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAgICAgICAgICAg
ICA1Ni4zNDI4Ky0yLjQwOTYgICAgICAgICAgIDU1LjQ0OTArLTEuNjg0NCAgICAgICAgICBtaWdo
dCBiZSAxLjAxNjF4IGZhc3RlcgogICBGbG9hdDY0QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAg
ICAgICAgICAgICAgICAgIDgwLjM1NzgrLTUuNzQxOCAgICAgPyAgICAgODAuNTY1OCstMy4zNDQw
ICAgICAgICA/CiAgIEZsb2F0NjRBcnJheS10by1JbnQxNkFycmF5LXNldCAgICAgICAgICAgICAg
ICAgICAgNzYuNDA4NSstNy41OTA3ICAgICAgICAgICA3My4zNzEwKy0xLjUyMzMgICAgICAgICAg
bWlnaHQgYmUgMS4wNDE0eCBmYXN0ZXIKICAgZm9sZC1kb3VibGUtdG8taW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxNy43MTA5Ky00Ljk4NzggICAgICAgICAgIDE1Ljg4NzkrLTAu
Mjg4MSAgICAgICAgICBtaWdodCBiZSAxLjExNDd4IGZhc3RlcgogICBmb2xkLWdldC1ieS1pZC10
by1tdWx0aS1nZXQtYnktb2Zmc2V0LXJhcmUtaW50ICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguODYyNSstMC4wOTE5ICAgICA/ICAgICAg
OS4xMzQ4Ky0wLjU1MTIgICAgICAgID8gbWlnaHQgYmUgMS4wMzA3eCBzbG93ZXIKICAgZm9sZC1n
ZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5LW9mZnNldCAgICAgICAgICAgICAgNy40OTQwKy0wLjEz
OTEgICAgID8gICAgICA3Ljg3MjcrLTAuNjU2MCAgICAgICAgPyBtaWdodCBiZSAxLjA1MDV4IHNs
b3dlcgogICBmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tZ2V0LWJ5LW9mZnNldCAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjI4Njkr
LTIuNTM4MSAgICAgPyAgICAgIDYuMzMwOSstMi42ODIzICAgICAgICA/CiAgIGZvbGQtbXVsdGkt
Z2V0LWJ5LW9mZnNldC10by1wb2x5LWdldC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4zMjgyKy0zLjMzNDkgICAgID8g
ICAgICA4LjI3NTUrLTIuOTc2NiAgICAgICAgPyBtaWdodCBiZSAxLjEyOTN4IHNsb3dlcgogICBm
b2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcG9seS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNzE1MCstMi45
MDM1ICAgICA/ICAgICAgNy43MjQwKy0yLjg3MTYgICAgICAgID8gbWlnaHQgYmUgMS4xNTAzeCBz
bG93ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXB1dC1ieS1vZmZzZXQgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS42MDkz
Ky0xLjgwNzMgICAgID8gICAgICA1Ljg4OTcrLTIuMzY5MCAgICAgICAgPyBtaWdodCBiZSAxLjA1
MDB4IHNsb3dlcgogICBmb2xkLW11bHRpLXB1dC1ieS1vZmZzZXQtdG8tcmVwbGFjZS1vci10cmFu
c2l0aW9uLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOS44ODAyKy0wLjMwNTMgICAgICAgICAgICA5LjgzNzArLTAu
NDI1MSAgICAgICAgCiAgIGZvbGQtcHV0LWJ5LWlkLXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAg
ICAgICAgICAgIDkuMjExOSstMS40MTM3ICAgICAgICAgICAgOC44NDgyKy0wLjIwMzIgICAgICAg
ICAgbWlnaHQgYmUgMS4wNDExeCBmYXN0ZXIKICAgZm9sZC1wdXQtYnktdmFsLXdpdGgtc3RyaW5n
LXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOS40NDEzKy0wLjM1MTIgICAgICAgICAgICA5LjI4NTIr
LTAuMTM5MyAgICAgICAgICBtaWdodCBiZSAxLjAxNjh4IGZhc3RlcgogICBmb2xkLXB1dC1ieS12
YWwtd2l0aC1zeW1ib2wtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjQ2NTIrLTAuNDA2NSAgICAg
ICAgICAgIDkuMzYyMistMC4zMzY3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExMHggZmFzdGVyCiAg
IGZvbGQtcHV0LXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjM0
NistMC4xOTIzICAgICA/ICAgICAgNC43NTkzKy0wLjI4ODMgICAgICAgID8gbWlnaHQgYmUgMS4w
MjY5eCBzbG93ZXIKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXktZW50cmllcyAgICAgICAgICAgICAg
ICAgICAgICAxMi40MTUzKy0xLjA2ODUgICAgICAgICAgIDEyLjAwOTMrLTAuMzYwOCAgICAgICAg
ICBtaWdodCBiZSAxLjAzMzh4IGZhc3RlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS1rZXlzICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjUzNzIrLTEuMjE4MCAgICAgICAgICAgIDQuNDI5Myst
MC4zMzAzICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0NHggZmFzdGVyCiAgIGZvci1vZi1pdGVyYXRl
LWFycmF5LXZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgIDQuMzMwOSstMS4wMzUzICAgICAg
ICAgICAgNC4wMjE2Ky0wLjE1ODQgICAgICAgICAgbWlnaHQgYmUgMS4wNzY5eCBmYXN0ZXIKICAg
ZnJvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4yNTYy
Ky0wLjU5NDcgICAgICAgICAgIDExLjk0OTYrLTAuMjYxMiAgICAgICAgICBtaWdodCBiZSAxLjAy
NTd4IGZhc3RlcgogICBmdGwtbGlicmFyeS1pbmxpbmluZy1kYXRhdmlldyAgICAgICAgICAgICAg
ICAgICAgIDc0LjEwMzcrLTAuNzUwOSAgICAgPyAgICAgNzUuNzk0NSstNS4xMTQzICAgICAgICA/
IG1pZ2h0IGJlIDEuMDIyOHggc2xvd2VyCiAgIGZ0bC1saWJyYXJ5LWlubGluaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjguMDYyMystMC40Njg5ICAgICA/ICAgICAyOS42MTAxKy00
LjY3MjMgICAgICAgID8gbWlnaHQgYmUgMS4wNTUyeCBzbG93ZXIKICAgZnRsLXBvbHltb3JwaGlj
LWJpdGFuZCAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1MS40MjU1Ky00LjE4MTQgICAgID8g
ICAgMTUyLjIyODUrLTUuMzA4NCAgICAgICAgPwogICBmdGwtcG9seW1vcnBoaWMtYml0b3IgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTU0LjYxMjQrLTIuOTQ0MiAgICAgICAgICAxNTIuNDg2
NistMi43OTQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzOXggZmFzdGVyCiAgIGZ0bC1wb2x5bW9y
cGhpYy1iaXR4b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAxNDkuNjU3NistMC40NDIwICAg
ICAhICAgIDE1Mi40NTY1Ky0xLjc1OTQgICAgICAgICEgZGVmaW5pdGVseSAxLjAxODd4IHNsb3dl
cgogICBmdGwtcG9seW1vcnBoaWMtZGl2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDgx
LjAzNjkrLTYuNTgwNSAgICAgPyAgICA0ODIuNjQxNSstNi4zOTA0ICAgICAgICA/CiAgIGZ0bC1w
b2x5bW9ycGhpYy1sc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTguMTM4NSstMC45
NzM4ICAgICA/ICAgIDE2MS44MTUxKy0zLjg1NzMgICAgICAgID8gbWlnaHQgYmUgMS4wMjMyeCBz
bG93ZXIKICAgZnRsLXBvbHltb3JwaGljLW11bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIzOS41NTk4Ky0wLjk1NzQgICAgID8gICAgMjQyLjMyMDArLTguMDA1NSAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMTV4IHNsb3dlcgogICBmdGwtcG9seW1vcnBoaWMtcnNoaWZ0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTYxLjQ3NDIrLTcuNzk4NyAgICAgPyAgICAxNjMuOTcxNCstNy44NDcz
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1NXggc2xvd2VyCiAgIGZ0bC1wb2x5bW9ycGhpYy1TdHJp
bmdGcm9tQ2hhckNvZGUgICAgICAgICAgICAgICAgNTAuODM0NystMC45MjAyICAgICA/ICAgICA1
MS4zMTQ4Ky0xLjEwNzIgICAgICAgID8KICAgZnRsLXBvbHltb3JwaGljLXN1YiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE4Ny44Mjc1Ky04Ljg1NjAgICAgID8gICAgMTkyLjM1MzIrLTMu
NzMzMCAgICAgICAgPyBtaWdodCBiZSAxLjAyNDF4IHNsb3dlcgogICBmdGwtcG9seW1vcnBoaWMt
dXJzaGlmdCAgICAgICAgICAgICAgICAgICAgICAgICAgMTc2Ljc5MjIrLTMuMDQzNCAgICAgPyAg
ICAxNzkuNDEwOCstMi44NjA4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0OHggc2xvd2VyCiAgIGZ1
bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMjYzNyst
MC40NzY0ICAgICA/ICAgICAxMy45OTAwKy0zLjM0MzggICAgICAgID8gbWlnaHQgYmUgMS4xNDA4
eCBzbG93ZXIKICAgZnVuY3Rpb24tZG90LWFwcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi42MTYwKy0wLjEwNDUgICAgID8gICAgICAzLjM0MzYrLTIuMTM0NCAgICAgICAgPyBt
aWdodCBiZSAxLjI3ODF4IHNsb3dlcgogICBmdW5jdGlvbi10ZXN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjk4NjErLTAuNDAxMCAgICAgPyAgICAgIDQuMzQ1MistMS40
Mjk0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDkwMXggc2xvd2VyCiAgIGZ1bmN0aW9uLXdpdGgtZXZh
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjIuNjUxOSstMTcuNDk1MiAgICAgICAg
IDEyMC44NzQyKy01LjMyMDUgICAgICAgICAgbWlnaHQgYmUgMS4wMTQ3eCBmYXN0ZXIKICAgZ2Nz
ZS1wb2x5LWdldC1sZXNzLW9idmlvdXMgICAgICAgICAgICAgICAgICAgICAgICAxMy4yMTc0Ky0y
LjEyNDUgICAgICAgICAgIDEzLjAwNjgrLTIuOTA2OSAgICAgICAgICBtaWdodCBiZSAxLjAxNjJ4
IGZhc3RlcgogICBnY3NlLXBvbHktZ2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDE0LjIwODYrLTIuMzYzMiAgICAgPyAgICAgMTQuNTM0OSstNC4xNDU2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIzMHggc2xvd2VyCiAgIGdjc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuMjY4NistMC4wNzE4ICAgICA/ICAgICAgNC4yOTA4Ky0wLjA4
MjkgICAgICAgID8KICAgZ2VuZXJhdG9yLWNyZWF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC45NjAzKy0wLjA4ODEgICAgID8gICAgICAxLjA0ODArLTAuMzcyOSAgICAgICAg
PyBtaWdodCBiZSAxLjA5MTR4IHNsb3dlcgogICBnZW5lcmF0b3ItZmliICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTI2LjQ1NTMrLTUuNjY0NiAgICAgICAgICAxMjQuOTA3Nyst
Mi44ODg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyNHggZmFzdGVyCiAgIGdlbmVyYXRvci1mdW5j
dGlvbi1jcmVhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMjc4MCstMS4wMDEzICAgICAg
ICAgICAgNS41ODU1Ky0xLjEzODkgICAgICAgICAgbWlnaHQgYmUgMS4xMjQweCBmYXN0ZXIKICAg
Z2VuZXJhdG9yLXN1bnNwaWRlci1hY2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgICAgNi43NzE3
Ky0wLjE4MDYgICAgID8gICAgICA3LjE4MzUrLTEuMjI5MiAgICAgICAgPyBtaWdodCBiZSAxLjA2
MDh4IHNsb3dlcgogICBnZW5lcmF0b3Itd2l0aC1zZXZlcmFsLXR5cGVzICAgICAgICAgICAgICAg
ICAgICAgNDE4LjYwMjgrLTE1LjA5NjkgICAgPyAgICA0MjMuNDU2OCstMzQuNzU2OCAgICAgICA/
IG1pZ2h0IGJlIDEuMDExNnggc2xvd2VyCiAgIGdldC1ieS1pZC1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk1MzgrLTAuMzAyMSAgICAgICAgICAgIDIuODYz
NCstMC4wNTEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxNnggZmFzdGVyCiAgIGdldC1ieS1pZC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTcyMystMC4yMzMzICAgICA/
ICAgICAgNS41NzcwKy0wLjM1MDQgICAgICAgID8KICAgZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5
LWJsb2NrICAgICAgICAgICAgICAgICAgICAgMy4wNDEyKy0xLjMwNzYgICAgICAgICAgICAyLjkz
OTIrLTEuMDE5OSAgICAgICAgICBtaWdodCBiZSAxLjAzNDd4IGZhc3RlcgogICBnZXQtYnktaWQt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgICAgICAgICAgICA0LjIxNTUrLTAuNDQ1NyAg
ICAgICAgICAgIDMuOTA4OSstMC4zNTU0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc4NHggZmFzdGVy
CiAgIGdldC1ieS1pZC1wcm90by1vci1zZWxmICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUu
NTE3NystNC40MTM4ICAgICAgICAgICAxMy4wNzM1Ky0xLjI5OTAgICAgICAgICAgbWlnaHQgYmUg
MS4xODcweCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy42MjAyKy0xLjI1NjAgICAgICAgICAgICAzLjU0OTArLTAuOTA4
NCAgICAgICAgICBtaWdodCBiZSAxLjAyMDF4IGZhc3RlcgogICBnZXQtYnktaWQtc2VsZi1vci1w
cm90byAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjM1MTMrLTIuNTY0MiAgICAgPyAgICAg
MTQuNjQzNSstNS4xNTQ3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwNHggc2xvd2VyCiAgIGdldC1i
eS12YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMjQ2MystMS4x
OTY0ICAgICAgICAgICAgNS4yMzIxKy0wLjQxMDIgICAgICAgIAogICBnZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzcw
OCstMC4wOTI0ICAgICA/ICAgICAgMy43OTM1Ky0wLjE2MjcgICAgICAgID8KICAgZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNjg5
NistMC4xNTc5ICAgICA/ICAgICAgNy44NTEwKy0wLjA3OTAgICAgICAgID8gbWlnaHQgYmUgMS4w
MjEweCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9j
ayAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyLjcxOTQrLTAuMjEwNCAgICAgPyAgICAgIDMuMTE1OSstMS4wNTg2ICAgICAgICA/IG1pZ2h0
IGJlIDEuMTQ1OHggc2xvd2VyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuODE4MystMC4wNTcyICAgICA/ICAgICAgNi45OTc0Ky0wLjc2NzYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjYzeCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1wcm90by1vci1zZWxmICAgICAgICAgICAgICAxMy40NzM1Ky0wLjc2MDUgICAgID8gICAgIDEz
LjcwNDgrLTEuMzE1MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNzJ4IHNsb3dlcgogICBnZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC43NjY3Ky0wLjI0NjkgICAgID8gICAgICA0Ljg0ODMrLTAuMDc1NiAgICAgICAgPyBt
aWdodCBiZSAxLjAxNzF4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3It
cHJvdG8gICAgICAgICAgICAgIDEzLjE1OTQrLTAuMTM3NCAgICAgICAgICAgMTMuMTU0MSstMC40
NzM2ICAgICAgICAKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjg4NzUrLTAuMzU5NiAgICAgICAgICAgIDMuNzQ5
MSstMC4zNDUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2OXggZmFzdGVyCiAgIGdldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjUxOTUr
LTAuOTc3NCAgICAgICAgICAgMTIuMzEzMCstMC4zNjgzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2
OHggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2sg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi42OTIwKy0wLjE2NzYgICAgID8gICAgICAyLjg3NzIrLTAuMzM1NCAgICAgICAgPyBtaWdodCBi
ZSAxLjA2ODh4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA5LjcyMjIrLTAuMzcxOSAgICAgICAgICAgIDkuNTc2OSstMC4zMjc2ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDE1MnggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wt
cHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgMTQuNDAwOCstMy4wMzIyICAgICA/ICAgICAxNC44
NzIwKy0yLjg2ODAgICAgICAgID8gbWlnaHQgYmUgMS4wMzI3eCBzbG93ZXIKICAgZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDQuNDE0NSstMC4yOTI4ICAgICA/ICAgICAgNC41NTI1Ky0wLjc2NzIgICAgICAgID8gbWln
aHQgYmUgMS4wMzEzeCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXBy
b3RvICAgICAgICAgICAgICAxMy45ODU3Ky0xLjIwMjcgICAgICAgICAgIDEzLjM3MjMrLTAuOTQw
MSAgICAgICAgICBtaWdodCBiZSAxLjA0NTl4IGZhc3RlcgogICBnZXRfY2FsbGVlX21vbm9tb3Jw
aGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE1MDMrLTAuOTIxNyAgICAgPyAgICAg
IDMuMjc5MSstMC43ODQxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQwOXggc2xvd2VyCiAgIGdldF9j
YWxsZWVfcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzA4NCstMS4x
OTMyICAgICAgICAgICAgMy45NDc1Ky0wLjIxMjAgICAgICAgICAgbWlnaHQgYmUgMS4wOTE0eCBm
YXN0ZXIKICAgZ2V0dGVyLW5vLWFjdGl2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC4xMTMwKy0wLjA1NzMgICAgID8gICAgICA0LjIyNDErLTAuMjU5MCAgICAgICAgPyBtaWdo
dCBiZSAxLjAyNzB4IHNsb3dlcgogICBnZXR0ZXItcHJvdG90eXBlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3LjkwMTIrLTAuMjE3OSAgICAgICAgICAgIDcuODQ1MystMC4wOTky
ICAgICAgICAKICAgZ2V0dGVyLXJpY2hhcmRzLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAg
ICAgMTQyMS40NTY4Ky0xNDcuODQ1MyAgID8gICAxNDUxLjc5OTcrLTM0LjQwMDggICAgICAgPyBt
aWdodCBiZSAxLjAyMTN4IHNsb3dlcgogICBnZXR0ZXItcmljaGFyZHMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDg3LjQ1MDUrLTUuNTkzNCAgICAgICAgICAgODUuODY2MCstNS45
NzgxICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4NXggZmFzdGVyCiAgIGdldHRlciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzc4NSstMC4yODQzICAgICAgICAg
ICAgNC4zNzQ0Ky0wLjI2MjEgICAgICAgIAogICBnbG9iYWwtb2JqZWN0LWFjY2Vzcy13aXRoLW11
dGF0aW5nLXN0cnVjdHVyZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1Ljk2OTQrLTAuNDk1OCAgICAgICAgICAgIDUuODk3NSstMC4xNTc3
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyMnggZmFzdGVyCiAgIGdsb2JhbC12YXItY29uc3QtaW5m
ZXItZmlyZS1mcm9tLW9wdCAgICAgICAgICAgICAgIDEuMTc1NCstMC4yNjYwICAgICAgICAgICAg
MS4wMjYwKy0wLjIyNDcgICAgICAgICAgbWlnaHQgYmUgMS4xNDU2eCBmYXN0ZXIKICAgZ2xvYmFs
LXZhci1jb25zdC1pbmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wMTE1Ky0wLjI5
NDIgICAgICAgICAgICAxLjAwODMrLTAuMzAyNiAgICAgICAgCiAgIGhhcmQtb3ZlcmZsb3ctY2hl
Y2stZXF1YWwgICAgICAgICAgICAgICAgICAgICAgICAgMzYuMTk2NSstMC4zMzgwICAgICA/ICAg
ICAzOC40NTQ4Ky01LjA2MjcgICAgICAgID8gbWlnaHQgYmUgMS4wNjI0eCBzbG93ZXIKICAgaGFy
ZC1vdmVyZmxvdy1jaGVjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNi4yODkwKy0w
LjYxODQgICAgID8gICAgIDM3LjYzNDIrLTQuMTE5NyAgICAgICAgPyBtaWdodCBiZSAxLjAzNzF4
IHNsb3dlcgogICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0ZS1rZXlzICAgICAgICAgICAgICAgICAg
ICAgIDI3Ljk1NjArLTAuMzgyMCAgICAgICAgICAgMjcuNzM2MCstMC4xNzU3ICAgICAgICAKICAg
SGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAyNy44MTg3
Ky0wLjU0MTYgICAgID8gICAgIDI3LjkyNjIrLTAuNzk0NCAgICAgICAgPwogICBIYXNoTWFwLXN0
cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgIDMyLjU0MTIrLTEuNDM5NCAg
ICAgPyAgICAgMzIuOTM5NistMy4xOTYxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMnggc2xvd2Vy
CiAgIGhvaXN0LW1ha2Utcm9wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUu
MTAzMystMC41MTc3ICAgICAgICAgICAgNS4wOTgzKy0wLjY4ODMgICAgICAgIAogICBob2lzdC1w
b2x5LWNoZWNrLXN0cnVjdHVyZS1lZmZlY3RmdWwtbG9vcCAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYxNDcrLTAuMjIxMCAgICAgICAg
ICAgIDQuNTUzNSstMC4yMDQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzNHggZmFzdGVyCiAgIGhv
aXN0LXBvbHktY2hlY2stc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDE4Nyst
MS4wODQ5ICAgICAgICAgICAgMi42OTQ4Ky0wLjAyMTggICAgICAgICAgbWlnaHQgYmUgMS4xMjAy
eCBmYXN0ZXIKICAgaW11bC1kb3VibGUtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy43MDEwKy0wLjAyMTUgICAgID8gICAgICAzLjc3MDArLTAuMDUyNSAgICAgICAgPyBt
aWdodCBiZSAxLjAxODZ4IHNsb3dlcgogICBpbXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2LjE1MzErLTAuNjM5NCAgICAgICAgICAgIDYuMDAwOCstMC4y
NzkwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1NHggZmFzdGVyCiAgIGltdWwtbWl4ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjA1NSstMC4yNTQ3ICAgICAgICAg
ICAgNC4xMjIyKy0wLjA5MzUgICAgICAgICAgbWlnaHQgYmUgMS4wMjAyeCBmYXN0ZXIKICAgaW4t
Zm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOS43Njc1Ky00
LjQ4MTMgICAgICAgICAgIDE4LjI3MDgrLTAuNTQ3NiAgICAgICAgICBtaWdodCBiZSAxLjA4MTl4
IGZhc3RlcgogICBpbi1vbmUtY2FzZS1mYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEwLjc0NDUrLTAuNTAzMCAgICAgPyAgICAgMTAuODIwMSstMC4zMTE3ICAgICAgICA/CiAg
IGluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNjU3
MistMC4zNjc0ICAgICA/ICAgICAxMC44OTc3Ky0wLjQ1MzcgICAgICAgID8gbWlnaHQgYmUgMS4w
MjI2eCBzbG93ZXIKICAgaW4tdHdvLWNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMC45MjYwKy0wLjI3MTYgICAgID8gICAgIDExLjUxNDArLTEuMzU5OSAgICAgICAg
PyBtaWdodCBiZSAxLjA1Mzh4IHNsb3dlcgogICBpbmRleGVkLXByb3BlcnRpZXMtaW4tb2JqZWN0
cyAgICAgICAgICAgICAgICAgICAgICAzLjMwNzErLTAuMzkzMCAgICAgPyAgICAgIDMuMzEwMist
MC4yNjE2ICAgICAgICA/CiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3Ytbm8taW5saW5l
ICAgICAgICAgICAgIDMuODE2OCstMC4xNjQ1ICAgICA/ICAgICAgMy44NDU4Ky0wLjE4NTQgICAg
ICAgID8KICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdiAgICAgICAgICAgICAgICAgICAg
ICAxMS4yMTczKy0wLjE2MzcgICAgID8gICAgIDEzLjU3MTArLTMuMjU1MiAgICAgICAgPyBtaWdo
dCBiZSAxLjIwOTh4IHNsb3dlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNj
b3BlLW5vLWlubGluZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE1LjcyODIrLTQuNjkwNSAgICAgICAgICAgMTQuNTI3OCstNC4yODgxICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDgyNnggZmFzdGVyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhl
bi1wdXQtdG8tc2NvcGUgICAgICAgICAgICAgMjQuOTY4MCstMi42NTIzICAgICA/ICAgICAyNi41
MDcwKy01LjQ3MjMgICAgICAgID8gbWlnaHQgYmUgMS4wNjE2eCBzbG93ZXIKICAgaW5mZXItY2xv
c3VyZS1jb25zdC10aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjUuODc0NCstMC41OTU4ICAgICA/ICAg
ICA2NS45OTI4Ky0xLjQyNTcgICAgICAgID8KICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXJl
ZW50ZXIgICAgICAgICAgICAgICAgICAyNC44Nzk0Ky0xLjIzMzUgICAgID8gICAgIDI2LjEzNTUr
LTQuMDQ4MiAgICAgICAgPyBtaWdodCBiZSAxLjA1MDV4IHNsb3dlcgogICBpbmZlci1jb25zdGFu
dC1nbG9iYWwtcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAzLjgyODMrLTAuMTg3MiAgICAg
PyAgICAgIDQuMjkxOSstMS40MzI3ICAgICAgICA/IG1pZ2h0IGJlIDEuMTIxMXggc2xvd2VyCiAg
IGluZmVyLWNvbnN0YW50LXByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODQ1
MCstMC4wMTU4ICAgICA/ICAgICAgMy4wMjcyKy0wLjM0MDEgICAgICAgID8gbWlnaHQgYmUgMS4w
NjQxeCBzbG93ZXIKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10ZW4tdmFycyAgICAgICAgICAg
ICAgICAgICAxMC42NDc3Ky0wLjIxODYgICAgID8gICAgIDExLjE5NDcrLTEuNTQyMyAgICAgICAg
PyBtaWdodCBiZSAxLjA1MTR4IHNsb3dlcgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12
YXJzICAgICAgICAgICAgICAgICAgIDEwLjM3NDUrLTAuMzMzNCAgICAgPyAgICAgMTAuNzg0Nist
MS4yNjQzICAgICAgICA/IG1pZ2h0IGJlIDEuMDM5NXggc2xvd2VyCiAgIGluZmVyLW9uZS10aW1l
LWNsb3N1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNDU4NystMC41NDM1ICAgICAg
ICAgICAxMC4zNTMxKy0wLjM0MjQgICAgICAgICAgbWlnaHQgYmUgMS4wMTAyeCBmYXN0ZXIKICAg
aW5mZXItb25lLXRpbWUtZGVlcC1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAyMC43MDI5
Ky00LjE0MzYgICAgID8gICAgIDIzLjU1NjgrLTQuOTUwMSAgICAgICAgPyBtaWdodCBiZSAxLjEz
Nzh4IHNsb3dlcgogICBpbmxpbmUtYXJndW1lbnRzLWFjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjU4NzIrLTAuMjQ5MyAgICAgPyAgICAgIDQuNjEyMistMC4zNDQyICAgICAgICA/
CiAgIGlubGluZS1hcmd1bWVudHMtYWxpYXNlZC1hY2Nlc3MgICAgICAgICAgICAgICAgICAgIDUu
MDU2MystMS41NjM0ICAgICAgICAgICAgNC41Njc4Ky0wLjAxMTggICAgICAgICAgbWlnaHQgYmUg
MS4xMDY5eCBmYXN0ZXIKICAgaW5saW5lLWFyZ3VtZW50cy1sb2NhbC1lc2NhcGUgICAgICAgICAg
ICAgICAgICAgICAgNC41NDgyKy0wLjAyNzQgICAgID8gICAgICA0LjU4MjArLTAuMDI5NCAgICAg
ICAgPwogICBpbmxpbmUtZ2V0LXNjb3BlZC12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjQ2MzkrLTAuMzE2OSAgICAgICAgICAgIDMuNDE4OCstMC4xMzQ4ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDEzMnggZmFzdGVyCiAgIGlubGluZWQtcHV0LWJ5LWlkLXRyYW5zaXRpb24gICAgICAg
ICAgICAgICAgICAgICAgMTEuNDc5OCstMC42MTczICAgICAgICAgICAxMS4xOTY4Ky0wLjI5ODIg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjUzeCBmYXN0ZXIKICAgaW5saW5lZC1wdXQtYnktdmFsLXdp
dGgtc3RyaW5nLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1OS4yMDA3Ky0xMC45NzE2ICAgICAgICAgIDU2LjI1MjQrLTQu
MjczMyAgICAgICAgICBtaWdodCBiZSAxLjA1MjR4IGZhc3RlcgogICBpbmxpbmVkLXB1dC1ieS12
YWwtd2l0aC1zeW1ib2wtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDU1LjQ4MzArLTQuMjcxMiAgICAgPyAgICAgNTcuMTIx
NCstMy43MjUxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5NXggc2xvd2VyCiAgIGluc3RhbmNlb2Yt
Ym91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuMTUxOCstMS4zMDIwICAg
ICA/ICAgICAyNS4wMTE5Ky00LjgzODcgICAgICAgID8gbWlnaHQgYmUgMS4wMzU2eCBzbG93ZXIK
ICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNi4x
NzY1Ky0yLjUwMTUgICAgICAgICAgICA1Ljc5NzcrLTEuMzAwMSAgICAgICAgICBtaWdodCBiZSAx
LjA2NTN4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAg
ICAgICAgICAgIDIxLjc0MzUrLTQuOTUzOCAgICAgICAgICAgMjEuNDc1MistMy40NzcxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDEyNXggZmFzdGVyCiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQt
YnktdmFsICAgICAgICAgICAgICAgICAgIDUuNjU5NSstMC4xMDkyICAgICA/ICAgICAgNi4zMzQ3
Ky0xLjE0OTAgICAgICAgID8gbWlnaHQgYmUgMS4xMTkzeCBzbG93ZXIKICAgaW50LW9yLW90aGVy
LWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41NjI1Ky0wLjA1ODkgICAg
ID8gICAgICA2LjgwMTArLTIuNTM5MCAgICAgICAgPyBtaWdodCBiZSAxLjIyMjZ4IHNsb3dlcgog
ICBpbnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA1LjA2
NjIrLTEuNDExNyAgICAgICAgICAgIDQuODA5OSstMS4zMzQyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDUzM3ggZmFzdGVyCiAgIGludC1vci1vdGhlci1tYXgtdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgICAgICAgIDQuOTQyMSstMS40NDA4ICAgICA/ICAgICAgNS41MDgwKy0xLjU3OTYgICAgICAg
ID8gbWlnaHQgYmUgMS4xMTQ1eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1i
eS12YWwgICAgICAgICAgICAgICAgICAgNS4xMzY3Ky0xLjQwOTcgICAgICAgICAgICA1LjA4Njkr
LTEuMjk3NSAgICAgICAgCiAgIGludC1vci1vdGhlci1tb2QtdGhlbi1nZXQtYnktdmFsICAgICAg
ICAgICAgICAgICAgIDQuMTg0NSstMC4xMjYxICAgICA/ICAgICAgNC42NDU3Ky0xLjM1MTMgICAg
ICAgID8gbWlnaHQgYmUgMS4xMTAyeCBzbG93ZXIKICAgaW50LW9yLW90aGVyLW11bC10aGVuLWdl
dC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC4zNDAyKy0wLjI3NjEgICAgID8gICAgICA0Ljkz
MzgrLTIuMjUyNiAgICAgICAgPyBtaWdodCBiZSAxLjEzNjh4IHNsb3dlcgogICBpbnQtb3Itb3Ro
ZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICA0Ljc2MzErLTAuMDI0NiAg
ICAgPyAgICAgIDUuNjQ5NCstMS42NzU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTg2MXggc2xvd2Vy
CiAgIGludC1vci1vdGhlci1uZWctemVyby10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgMjAu
MjIwOCstMS4xOTYwICAgICAgICAgICAxOS41NzM1Ky0wLjIzOTggICAgICAgICAgbWlnaHQgYmUg
MS4wMzMxeCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLXN1Yi10aGVuLWdldC1ieS12YWwgICAgICAg
ICAgICAgICAgICAgNS45ODAwKy0wLjE3NzkgICAgID8gICAgICA2LjA1NDQrLTAuNDMwMiAgICAg
ICAgPyBtaWdodCBiZSAxLjAxMjV4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItc3ViICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0LjkyNDYrLTEuNDcwNCAgICAgICAgICAgIDQuNTY0
MCstMC4yMTk1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc5MHggZmFzdGVyCiAgIGludC1vdmVyZmxv
dy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMDQzMistMC4wMjE0ICAg
ICA/ICAgICAgNS4xMzQzKy0wLjIzMTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTgxeCBzbG93ZXIK
ICAgSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICA1Ny4x
MjY4Ky00LjUxMDggICAgICAgICAgIDU2LjA1ODkrLTMuMzQ0NyAgICAgICAgICBtaWdodCBiZSAx
LjAxOTB4IGZhc3RlcgogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAg
ICAgICAgICAgIDIzLjc0NTgrLTAuNTI5OSAgICAgICAgICAgMjMuMzY0NystMi4xNDA5ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDE2M3ggZmFzdGVyCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjEuOTE1NistMC4zNDUwICAgICA/ICAgICAyMi4wMDIx
Ky0xLjI5ODcgICAgICAgID8KICAgSW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMS44OTI5Ky0wLjA4ODggICAgID8gICAgICAxLjk1MzUrLTAuMzA2NCAg
ICAgICAgPyBtaWdodCBiZSAxLjAzMjB4IHNsb3dlcgogICBJbnQxNkFycmF5LXRvLUludDMyQXJy
YXktc2V0ICAgICAgICAgICAgICAgICAgICAgIDU0LjgwNDMrLTAuOTgyMyAgICAgPyAgICAgNTgu
Mzk2MCstNC4wNDAwICAgICAgICA/IG1pZ2h0IGJlIDEuMDY1NXggc2xvd2VyCiAgIEludDMyQXJy
YXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcuOTIzMistMy4wMTYx
ICAgICAgICAgICAyNi44MTUyKy0xLjQ4ODkgICAgICAgICAgbWlnaHQgYmUgMS4wNDEzeCBmYXN0
ZXIKICAgSW50MzJBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICA2
My41NDMyKy02LjI2OTggICAgICAgICAgIDYxLjY4MTUrLTMuODE2MSAgICAgICAgICBtaWdodCBi
ZSAxLjAzMDJ4IGZhc3RlcgogICBJbnQzMkFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjc2NzUrLTAuMTcyMCAgICAgICAgICAgIDMuNzE4NistMC4wODg4ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDEzMXggZmFzdGVyCiAgIEludDMyQXJyYXktSW50OEFycmF5LXZp
ZXctYWxsb2MgICAgICAgICAgICAgICAgICAgIDguMTUyNystMS4yMzEzICAgICAgICAgICAgNy42
Mzc3Ky0wLjI2MDkgICAgICAgICAgbWlnaHQgYmUgMS4wNjc0eCBmYXN0ZXIKICAgaW50NTItc3Bp
bGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4zODkyKy0xLjAyNzYg
ICAgICAgICAgICA2LjI4ODkrLTEuMjIxMiAgICAgICAgICBtaWdodCBiZSAxLjAxNTl4IGZhc3Rl
cgogICBJbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgIDQ4
LjY4MjArLTMuMTcwNCAgICAgPyAgICAgNDkuODExMistMi4xODk0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIzMnggc2xvd2VyCiAgIEludDhBcnJheS1sb2FkLXdpdGgtYnl0ZUxlbmd0aCAgICAgICAg
ICAgICAgICAgICAgIDQuMDIxNCstMC4xNjIzICAgICA/ICAgICAgNC45MTE3Ky0yLjkzNTggICAg
ICAgID8gbWlnaHQgYmUgMS4yMjE0eCBzbG93ZXIKICAgSW50OEFycmF5LWxvYWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4xMDgzKy0wLjE3ODcgICAgICAgICAgICA0LjA3
MTcrLTAuMTI1NiAgICAgICAgCiAgIGludGVnZXItZGl2aWRlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQuMDY0MSstMi42MjUyICAgICAgICAgICAxMi43NzEyKy0zLjAyNTYg
ICAgICAgICAgbWlnaHQgYmUgMS4xMDEyeCBmYXN0ZXIKICAgaW50ZWdlci1tb2R1bG8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40OTQ5Ky0wLjgxNzIgICAgID8gICAgICAy
LjUxMjIrLTAuMzA3MSAgICAgICAgPwogICBpcy1ib29sZWFuLWZvbGQtdHJpY2t5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLjk1MDIrLTAuMTE4MyAgICAgPyAgICAgIDMuOTU2OSstMC4x
NDcxICAgICAgICA/CiAgIGlzLWJvb2xlYW4tZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuMzY4MistMS4yMjcxICAgICA/ICAgICAgMy40MTQ4Ky0xLjQwNjkgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTM4eCBzbG93ZXIKICAgaXMtZnVuY3Rpb24tZm9sZC10cmlja3ktaW50
ZXJuYWwtZnVuY3Rpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMi44MDg1Ky0wLjE3MTQgICAgID8gICAgIDEzLjY3OTUrLTMuMDYxNyAg
ICAgICAgPyBtaWdodCBiZSAxLjA2ODB4IHNsb3dlcgogICBpcy1mdW5jdGlvbi1mb2xkLXRyaWNr
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjAxMTArLTAuMTU2NyAgICAgPyAgICAgIDQu
MDM3MCstMC4wNzAxICAgICAgICA/CiAgIGlzLWZ1bmN0aW9uLWZvbGQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuOTk0OCstMC4wNDg4ICAgICA/ICAgICAgMy4xOTYzKy0wLjQ0
MDIgICAgICAgID8gbWlnaHQgYmUgMS4wNjczeCBzbG93ZXIKICAgaXMtbnVtYmVyLWZvbGQtdHJp
Y2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45MzEzKy0wLjEyNzYgICAgID8gICAg
ICA0LjAxNzgrLTAuMTU4MCAgICAgICAgPyBtaWdodCBiZSAxLjAyMjB4IHNsb3dlcgogICBpcy1u
dW1iZXItZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk3ODcrLTAu
MTc0MSAgICAgPyAgICAgIDMuNTIzNistMS42MTkyICAgICAgICA/IG1pZ2h0IGJlIDEuMTgyOXgg
c2xvd2VyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtZnVuY3Rpb25zICAgICAgICAgICAgICAg
ICAgIDMuMDMxMistMC4wNDA1ICAgICA/ICAgICAgMy4xOTI0Ky0wLjMzMDkgICAgICAgID8gbWln
aHQgYmUgMS4wNTMyeCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZC1sZXNzLXRyaWNr
eSAgICAgICAgICAgICAgICAgNC40NjY1Ky0xLjM0MjQgICAgICAgICAgICA0LjAxNTYrLTAuMTc4
OCAgICAgICAgICBtaWdodCBiZSAxLjExMjN4IGZhc3RlcgogICBpcy1vYmplY3Qtb3ItbnVsbC1m
b2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICA0LjgzNjcrLTEuMzk5NSAgICAgICAgICAg
IDQuNTU0MystMC4zMDc2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYyMHggZmFzdGVyCiAgIGlzLW9i
amVjdC1vci1udWxsLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTc5MistMC4w
MzAyICAgICA/ICAgICAgMy4wNjIwKy0wLjMwNjYgICAgICAgID8gbWlnaHQgYmUgMS4wMjc4eCBz
bG93ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2tpZXItZnVuY3Rpb24gICAgICAgICAgICAg
ICAgNC4wODUxKy0wLjE1NDMgICAgID8gICAgICA0LjEwNjMrLTAuMTg2MyAgICAgICAgPwogICBp
cy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjE2MDIrLTIuMDk2
NiAgICAgPyAgICAgMTUuMTExMCstNC4yOTI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMTQ4Mnggc2xv
d2VyCiAgIGlzLW9iamVjdC1vci1udWxsLXRyaWNreS1mdW5jdGlvbiAgICAgICAgICAgICAgICAg
IDQuMTIxMystMC4yODcyICAgICAgICAgICAgNC4xMjEwKy0wLjExNzEgICAgICAgIAogICBpcy1v
YmplY3Qtb3ItbnVsbC10cmlja3ktaW50ZXJuYWwtZnVuY3Rpb24gICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC43OTUwKy0wLjUyNDAgICAg
ICAgICAgICA4LjcwMDErLTAuMDgwNSAgICAgICAgICBtaWdodCBiZSAxLjAxMDl4IGZhc3Rlcgog
ICBpcy1zdHJpbmctZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjky
NjkrLTAuMDgwMSAgICAgPyAgICAgIDQuMzA4OSstMS4zOTkyICAgICAgICA/IG1pZ2h0IGJlIDEu
MDk3M3ggc2xvd2VyCiAgIGlzLXN0cmluZy1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuOTM5MystMC4xMTQxICAgICAgICAgICAgMi45MzI0Ky0wLjAzNDQgICAgICAg
IAogICBpcy11bmRlZmluZWQtZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjQxMjUrLTAuMDk2MyAgICAgPyAgICAgIDMuODQ0MSstMS4yODM0ICAgICAgICA/IG1pZ2h0IGJl
IDEuMTI2NXggc2xvd2VyCiAgIGlzLXVuZGVmaW5lZC1mb2xkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuOTQwMistMC4wMjkyICAgICA/ICAgICAgMy4wMzI4Ky0wLjI3NDUgICAg
ICAgID8gbWlnaHQgYmUgMS4wMzE1eCBzbG93ZXIKICAgSlNPTlAtbmVnYXRpdmUtMCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40MTY3Ky0wLjE2MzcgICAgID8gICAgICAwLjQ1
NTkrLTAuMTc0MCAgICAgICAgPyBtaWdodCBiZSAxLjA5Mzl4IHNsb3dlcgogICBsYXJnZS1pbnQt
Y2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjA5NzArLTEuMTUzNCAg
ICAgICAgICAgIDMuODE5MCstMC4zNDcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDcyOHggZmFzdGVy
CiAgIGxhcmdlLWludC1uZWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcu
MjcwMCstNC45MzI5ICAgICAgICAgICAxNS42NTE0Ky0wLjI5MDggICAgICAgICAgbWlnaHQgYmUg
MS4xMDM0eCBmYXN0ZXIKICAgbGFyZ2UtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxNC41Nzg2Ky0zLjU3MjkgICAgICAgICAgIDEzLjc2MjgrLTAuMjg3NSAgICAg
ICAgICBtaWdodCBiZSAxLjA1OTN4IGZhc3RlcgogICBsb2FkLXZhcmFyZ3MtZWxpbWluYXRpb24g
ICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjEwNDUrLTAuNDA5NiAgICAgPyAgICAgMjMuMTkx
MystMS42NTUyICAgICAgICA/CiAgIGxvZ2ljYWwtbm90LXdlaXJkLXR5cGVzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMuOTAzOSstMi4xNzQzICAgICAgICAgICAgMy4zNTAyKy0wLjI2Mjcg
ICAgICAgICAgbWlnaHQgYmUgMS4xNjUzeCBmYXN0ZXIKICAgbG9naWNhbC1ub3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43MTczKy0wLjI1MDEgICAgID8gICAgICA1
LjEyNzQrLTEuMjk0NyAgICAgICAgPyBtaWdodCBiZSAxLjA4Njl4IHNsb3dlcgogICBsb3RzLW9m
LWZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjMyNTArLTAuMjQ3
NyAgICAgICAgICAgMTEuOTcwMCstMC40MDM0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5N3ggZmFz
dGVyCiAgIG1ha2UtaW5kZXhlZC1zdG9yYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuNDYzMystMC4wNzY3ICAgICAgICAgICAgMy40MDIwKy0wLjQ1OTkgICAgICAgICAgbWlnaHQg
YmUgMS4wMTgweCBmYXN0ZXIKICAgbWFrZS1yb3BlLWNzZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNS45NDg0Ky0xLjY0NDYgICAgICAgICAgICA1LjYzMzErLTEuNjczNSAg
ICAgICAgICBtaWdodCBiZSAxLjA1NjB4IGZhc3RlcgogICBtYXAtZm9yLWVhY2ggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljg1MzYrLTEuMjMxMyAgICAgICAgICAgIDYu
NjgwMystMS40MTI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1OXggZmFzdGVyCiAgIG1hcC1mb3It
b2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuOTg0NistMC4zMzcw
ICAgICA/ICAgICAyMC43NzU4Ky01LjUwOTIgICAgICAgID8gbWlnaHQgYmUgMS4wMzk2eCBzbG93
ZXIKICAgbWFyc2FnbGlhLWxhcmdlci1pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
My41NzY4Ky0wLjI0NTAgICAgICAgICAgIDQzLjUwOTUrLTAuMTgwMyAgICAgICAgCiAgIG1hcnNh
Z2xpYS1vc3ItZW50cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuNjY4MistMC4y
NDUyICAgICA/ICAgICAyMy42MDIyKy0zLjQyODAgICAgICAgID8gbWlnaHQgYmUgMS4wNDEyeCBz
bG93ZXIKICAgbWF0aC1yYW5kb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNi4yOTg0Ky0wLjMxNTEgICAgID8gICAgIDE3LjIyMTgrLTIuNzI5MCAgICAgICAgPyBtaWdo
dCBiZSAxLjA1Njd4IHNsb3dlcgogICBtYXRoLXdpdGgtb3V0LW9mLWJvdW5kcy1hcnJheS12YWx1
ZXMgICAgICAgICAgICAgIDMwLjg4NTArLTAuMzAxNyAgICAgPyAgICAgMzAuOTMwNCstMC4xNjMx
ICAgICAgICA/CiAgIG1heC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuMDU2OCstMC4zNjIzICAgICAgICAgICAgMy4wMDY0Ky0wLjM0MzQgICAgICAgICAg
bWlnaHQgYmUgMS4wMTY4eCBmYXN0ZXIKICAgbWV0aG9kLW9uLW51bWJlciAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMC41NzMyKy0yLjQ4NTIgICAgICAgICAgIDE5LjM4MDUrLTAu
MzUxMCAgICAgICAgICBtaWdodCBiZSAxLjA2MTV4IGZhc3RlcgogICBtaW4tYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjg3MDQrLTAuMDkyOCAgICAgPyAg
ICAgIDIuOTM4NSstMC4zMjE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzN3ggc2xvd2VyCiAgIG1p
bnVzLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzI2Nyst
MC4wOTk3ICAgICA/ICAgICAgMi44NDg5Ky0wLjMxNTIgICAgICAgID8gbWlnaHQgYmUgMS4wNDQ4
eCBzbG93ZXIKICAgbWludXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi42MDI0Ky0wLjA0MTEgICAgID8gICAgICAyLjYxNDErLTAuMDMxOSAgICAgICAgPwog
ICBtaXNjLXN0cmljdC1lcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjM5
NDArLTMuMDg0MCAgICAgPyAgICAgMjYuMjI3OCstNS42MDc1ICAgICAgICA/IG1pZ2h0IGJlIDEu
MTIxMXggc2xvd2VyCiAgIG1vZC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTIuODc0OSstNi4yMTI1ICAgICAgICAgICAgOS40OTE5Ky0wLjI2NTMgICAgICAg
ICAgbWlnaHQgYmUgMS4zNTY0eCBmYXN0ZXIKICAgbW9kLWJvb2xlYW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNy41MjA2Ky0wLjQ1NDEgICAgICAgICAgICA3LjQ0MTIr
LTAuMjQwMiAgICAgICAgICBtaWdodCBiZSAxLjAxMDd4IGZhc3RlcgogICBtdWwtYm9vbGVhbi1k
b3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjIwNDIrLTAuMTc2MyAgICAg
PyAgICAgIDMuNTY2NystMS4zODc4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTEzMXggc2xvd2VyCiAg
IG11bC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODI2
OCstMC4wMTA2ICAgICA/ICAgICAgMi45MzYyKy0wLjI2ODYgICAgICAgID8gbWlnaHQgYmUgMS4w
Mzg3eCBzbG93ZXIKICAgbmVnLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy4wNzY5Ky0wLjQ0NzIgICAgICAgICAgICAyLjk1NDArLTAuMDQ3MiAgICAgICAg
ICBtaWdodCBiZSAxLjA0MTZ4IGZhc3RlcgogICBuZWdhdGl2ZS16ZXJvLWRpdmlkZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjY3NjgrLTAuMTg0NSAgICAgICAgICAgIDAuNTUxNSst
MC4xNzQ1ICAgICAgICAgIG1pZ2h0IGJlIDEuMjI3MnggZmFzdGVyCiAgIG5lZ2F0aXZlLXplcm8t
bW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNTU2MistMC4xOTM5ICAgICA/
ICAgICAgMC41OTc3Ky0wLjIyNTAgICAgICAgID8gbWlnaHQgYmUgMS4wNzQ1eCBzbG93ZXIKICAg
bmVnYXRpdmUtemVyby1uZWdhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41ODk4
Ky0wLjIyNDcgICAgICAgICAgICAwLjU4NzUrLTAuMjM5NCAgICAgICAgCiAgIG5lc3RlZC1mdW5j
dGlvbi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMuMTA5MystMC44NDEwICAg
ICAgICAgICA0Mi42MDkyKy0wLjI2ODYgICAgICAgICAgbWlnaHQgYmUgMS4wMTE3eCBmYXN0ZXIK
ICAgbmV3LWFycmF5LWJ1ZmZlci1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNy41
NTU5Ky0xOS40OTI4ICAgICAgICAgMTE2LjM5NjUrLTkuNzQ2OCAgICAgICAgCiAgIG5ldy1hcnJh
eS1idWZmZXItcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMTYxMCstMC4yNTMy
ICAgICAgICAgICAgNy4wMjkxKy0wLjA4NjcgICAgICAgICAgbWlnaHQgYmUgMS4wMTg4eCBmYXN0
ZXIKICAgbmV3LWFycmF5LWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
My4yMTE5Ky0zLjYwNjcgICAgICAgICAgIDEyLjI5NjArLTEuNDQ3MiAgICAgICAgICBtaWdodCBi
ZSAxLjA3NDV4IGZhc3RlcgogICBuZXctYXJyYXktcHVzaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0Ljg4NTcrLTAuMjg1NyAgICAgPyAgICAgIDUuMTAwNistMS4wMTg4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDQ0MHggc2xvd2VyCiAgIG5vLWlubGluZS1jb25zdHJ1Y3RvciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuMzU2MystMS4wMjc4ICAgICAgICAgICA0My4y
NzEwKy00LjgwNzUgICAgICAgICAgbWlnaHQgYmUgMS4wNDgyeCBmYXN0ZXIKICAgbnVtYmVyLXRl
c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42MjM0Ky0yLjM1MDgg
ICAgICAgICAgICA0LjAxNjUrLTAuMjc5OCAgICAgICAgICBtaWdodCBiZSAxLjE1MTF4IGZhc3Rl
cgogICBvYmplY3QtY2xvc3VyZS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjM3ODArLTAuMTI1NyAgICAgPyAgICAgIDYuNDE5NistMC4zNDE1ICAgICAgICA/CiAgIG9iamVj
dC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMtb24tbGFyZ2UtYXJyYXkgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45ODg5Ky0wLjQ2OTQg
ICAgICAgICAgICAzLjc3MTUrLTAuMDg0MCAgICAgICAgICBtaWdodCBiZSAxLjA1NzZ4IGZhc3Rl
cgogICBvYmplY3QtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
Ljg0OTIrLTAuMzE3NiAgICAgPyAgICAgIDMuOTA3NistMC4yOTY2ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE1Mnggc2xvd2VyCiAgIG9idmlvdXMtc2luay1wYXRob2xvZ3ktdGFrZW4gICAgICAgICAg
ICAgICAgICAgICAxNzUuNTI4NCstNC4yNzE4ICAgICAgICAgIDE3MC4xNzE1Ky0xNy43MjQ0ICAg
ICAgICAgbWlnaHQgYmUgMS4wMzE1eCBmYXN0ZXIKICAgb2J2aW91cy1zaW5rLXBhdGhvbG9neSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyOS43Nzg2Ky00LjkyNTcgICAgICAgICAgIDI3LjAy
NjArLTAuNzQ3MiAgICAgICAgICBtaWdodCBiZSAxLjEwMTl4IGZhc3RlcgogICBvYnZpb3VzbHkt
ZWxpZGFibGUtbmV3LW9iamVjdCAgICAgICAgICAgICAgICAgICAgIDI1LjM1NzErLTEuMzc2MiAg
ICAgICAgICAgMjUuMDIwOSstMC4yNzI4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzNHggZmFzdGVy
CiAgIHBsdXMtYm9vbGVhbi1hcml0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
NzE3NSstMC4wMjUwICAgICAgICAgICAgMi43MTEyKy0wLjA5NzggICAgICAgIAogICBwbHVzLWJv
b2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUwMzUrLTEuNzc2
MSAgICAgPyAgICAgIDMuODgzMSstMS45MDU5ICAgICAgICA/IG1pZ2h0IGJlIDEuMTA4M3ggc2xv
d2VyCiAgIHBsdXMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuNzE0NCstMC4wMzM2ICAgICA/ICAgICAgMi43NTA1Ky0wLjA2NTcgICAgICAgID8gbWlnaHQg
YmUgMS4wMTMzeCBzbG93ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVyZW50LXByb3RvdHlw
ZXMtc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuMzYwNCstMS4wNDY5ICAgICAgICAgICAgMy4wODIzKy0wLjEzMjQgICAgICAg
ICAgbWlnaHQgYmUgMS4wOTAyeCBmYXN0ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVyZW50
LXByb3RvdHlwZXMgICAgICAgICAgICAgMy42MjU2Ky0xLjgyMzQgICAgICAgICAgICAzLjU4MjUr
LTEuMjY1NSAgICAgICAgICBtaWdodCBiZSAxLjAxMjB4IGZhc3RlcgogICBwb2x5LWNoYWluLWFj
Y2Vzcy1zaW1wbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMxNzArLTAuODc1MyAgICAg
ICAgICAgIDMuMTg2OSstMC4zMTEzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQwOHggZmFzdGVyCiAg
IHBvbHktY2hhaW4tYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDky
MCstMC4xMTM2ICAgICAgICAgICAgMy4wNDk0Ky0wLjAyMTggICAgICAgICAgbWlnaHQgYmUgMS4w
MTQweCBmYXN0ZXIKICAgcG9seS1zdHJpY3RlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA2OS40MjgyKy04LjExMDQgICAgID8gICAgIDcwLjA2ODIrLTUuMTIyNiAgICAgICAg
PwogICBwb2x5bW9ycGhpYy1hcnJheS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LjY1NTIrLTAuMzUxNiAgICAgICAgICAgIDEuNTMwMCstMC4wNDAyICAgICAgICAgIG1pZ2h0IGJl
IDEuMDgxOXggZmFzdGVyCiAgIHBvbHltb3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuMjAxMistMS40NzM3ICAgICA/ICAgICAgMy42MDc4Ky0xLjg4OTQgICAg
ICAgID8gbWlnaHQgYmUgMS4xMjcweCBzbG93ZXIKICAgcG9seW1vcnBoaWMtcHV0LWJ5LWlkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0NS4wNTk5Ky03LjMwNzggICAgICAgICAgIDM5LjI4
OTMrLTAuMTk2OCAgICAgICAgICBtaWdodCBiZSAxLjE0Njl4IGZhc3RlcgogICBwb2x5bW9ycGhp
Yy1wdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgIDQwLjk3MDMrLTQuMjYwMiAg
ICAgPyAgICAgNDEuMjA1OSstMy4yNTE2ICAgICAgICA/CiAgIHBvbHltb3JwaGljLXB1dC1ieS12
YWwtd2l0aC1zeW1ib2wgICAgICAgICAgICAgICAgNDEuMzU1NystNC40MzkyICAgICAgICAgICAz
OS45MTE1Ky0wLjI0MjMgICAgICAgICAgbWlnaHQgYmUgMS4wMzYyeCBmYXN0ZXIKICAgcG9seW1v
cnBoaWMtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC45NjQ4Ky0wLjEx
NjMgICAgICAgICAgIDE0Ljg4NjArLTAuNTQzNSAgICAgICAgCiAgIHBvbHl2YXJpYW50LW1vbm9t
b3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAgICAgIDUuMzM3NSstMC4xODk5ICAgICA/ICAg
ICAgNS40MjkzKy0wLjQ2OTIgICAgICAgID8gbWlnaHQgYmUgMS4wMTcyeCBzbG93ZXIKICAgcHJv
dG8tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi40NjIwKy0w
LjIzMjcgICAgID8gICAgIDE0LjE4NTErLTMuNDk2NiAgICAgICAgPyBtaWdodCBiZSAxLjEzODN4
IHNsb3dlcgogICBwcm90b3R5cGUtYWNjZXNzLXdpdGgtbXV0YXRpbmctcHJvdG90eXBlICAgICAg
ICAgICA1LjQ2MzcrLTAuMTI3MyAgICAgPyAgICAgIDYuMDA2NystMS40MjAzICAgICAgICA/IG1p
Z2h0IGJlIDEuMDk5NHggc2xvd2VyCiAgIHB1dC1ieS1pZC1yZXBsYWNlLWFuZC10cmFuc2l0aW9u
ICAgICAgICAgICAgICAgICAgIDkuNDQ1NystMS4xNTQyICAgICAgICAgICAgOS4xMzg0Ky0wLjQ2
ODUgICAgICAgICAgbWlnaHQgYmUgMS4wMzM2eCBmYXN0ZXIKICAgcHV0LWJ5LWlkLXNsaWdodGx5
LXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgICAgMy4wOTgzKy0wLjExNTQgICAgICAgICAg
ICAyLjk1MjArLTAuMDM0NiAgICAgICAgICBtaWdodCBiZSAxLjA0OTZ4IGZhc3RlcgogICBwdXQt
YnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjQyMTkrLTAu
MzAwOSAgICAgICAgICAgMTQuMzYxNystMC4zOTkzICAgICAgICAKICAgcHV0LWJ5LXZhbC1kaXJl
Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43MDEwKy0wLjI4NjMgICAgICAg
ICAgICAwLjUzMzgrLTAuMDIyOCAgICAgICAgICBtaWdodCBiZSAxLjMxMzJ4IGZhc3RlcgogICBw
dXQtYnktdmFsLWxhcmdlLWluZGV4LWJsYW5rLWluZGV4aW5nLXR5cGUgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4zMzQ1Ky0wLjQwMjcg
ICAgID8gICAgICA2LjUxNTkrLTAuNDg4OCAgICAgICAgPyBtaWdodCBiZSAxLjAyODZ4IHNsb3dl
cgogICBwdXQtYnktdmFsLW1hY2hpbmUtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjExMDQrLTAuMzA5NiAgICAgICAgICAgIDMuMDgxNystMC4wOTY4ICAgICAgICAKICAgcHV0LWJ5
LXZhbC13aXRoLXN0cmluZy1yZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuNTY2NCstMC4wNzMyICAg
ICAgICAgICAxNS4zMjk3Ky0wLjQ0NzYgICAgICAgICAgbWlnaHQgYmUgMS4wMTU0eCBmYXN0ZXIK
ICAgcHV0LWJ5LXZhbC13aXRoLXN0cmluZy1zbGlnaHRseS1wb2x5bW9ycGhpYyAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjMxMTUrLTAu
MDUyNyAgICAgICAgICAgIDQuMjgyMCstMC4wMzU5ICAgICAgICAKICAgcHV0LWJ5LXZhbC13aXRo
LXN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC43NzI3Ky0wLjQ5OTcgICAgID8g
ICAgIDE1Ljc2NDArLTMuNDE3NCAgICAgICAgPyBtaWdodCBiZSAxLjA2NzF4IHNsb3dlcgogICBw
dXQtYnktdmFsLXdpdGgtc3ltYm9sLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy45NTE1Ky0wLjMw
MzIgICAgID8gICAgIDE0LjAyMzMrLTAuMzA4NyAgICAgICAgPwogICBwdXQtYnktdmFsLXdpdGgt
c3ltYm9sLXNsaWdodGx5LXBvbHltb3JwaGljICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTU0NSstMS4yNjczICAgICAgICAgICAgMy41
MTE0Ky0wLjA4MjMgICAgICAgICAgbWlnaHQgYmUgMS4xMjYyeCBmYXN0ZXIKICAgcHV0LWJ5LXZh
bC13aXRoLXN5bWJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS4zMDAyKy0xLjYzMjcg
ICAgICAgICAgIDE0LjgzOTgrLTAuMzY5NCAgICAgICAgICBtaWdodCBiZSAxLjAzMTB4IGZhc3Rl
cgogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1
LjM3ODYrLTAuNTM5MyAgICAgPyAgICAgMTUuNjgzMistMS41Mzc4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE5OHggc2xvd2VyCiAgIHJheXRyYWNlLXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAg
ICAgICAgICAgICAgIDguNjY5NistMS42NjEyICAgICAgICAgICAgNy45NjYzKy0wLjI0NzYgICAg
ICAgICAgbWlnaHQgYmUgMS4wODgzeCBmYXN0ZXIKICAgcmF5dHJhY2Utd2l0aC10cnktY2F0Y2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMi41NTY3Ky0wLjM2NDMgICAgID8gICAgIDEyLjY5
NzUrLTAuMjI0NyAgICAgICAgPyBtaWdodCBiZSAxLjAxMTJ4IHNsb3dlcgogICByZWdpc3Rlci1w
cmVzc3VyZS1mcm9tLW9zciAgICAgICAgICAgICAgICAgICAgICAgIDIxLjU4MjUrLTEuNjM5NyAg
ICAgICAgICAgMjEuMzYwMCstMC41MjMyICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwNHggZmFzdGVy
CiAgIHJlcGVhdC1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgMjIu
NjE0MystMC4yMTU3ICAgICA/ICAgICAyNC4xODcxKy0zLjU5ODEgICAgICAgID8gbWlnaHQgYmUg
MS4wNjk1eCBzbG93ZXIKICAgcmljaGFyZHMtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAg
ICAgICAgICAgICA1OC4yMTg5Ky0wLjgzOTIgICAgICAgICAgIDU3LjU4MDMrLTAuNDkyOCAgICAg
ICAgICBtaWdodCBiZSAxLjAxMTF4IGZhc3RlcgogICByaWNoYXJkcy10cnktY2F0Y2ggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjU4LjEzMzcrLTYuNTMyOSAgICAgPyAgICAyNjQuMDEy
MystOS45MTUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyOHggc2xvd2VyCiAgIHNldC1mb3ItZWFj
aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNzk1NystMC41NzI0ICAg
ICA/ICAgICAgNi4wNjM2Ky0xLjM1NzEgICAgICAgID8gbWlnaHQgYmUgMS4wNDYyeCBzbG93ZXIK
ICAgc2V0LWZvci1vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4x
NzgyKy0wLjQyMzYgICAgICAgICAgICA5LjkyMjIrLTAuMTY5NCAgICAgICAgICBtaWdodCBiZSAx
LjAyNTh4IGZhc3RlcgogICBzZXR0ZXItcHJvdG90eXBlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA1LjM4MjErLTAuMTYwNiAgICAgPyAgICAgIDUuNjAyOCstMC41MTEyICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDQxMHggc2xvd2VyCiAgIHNldHRlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzYwOCstMC4wMzc4ICAgICA/ICAgICAgNC44MzU1
Ky0wLjE1MTggICAgICAgID8gbWlnaHQgYmUgMS4wMTU3eCBzbG93ZXIKICAgc2ltcGxlLWFjdGl2
YXRpb24tZGVtbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS42NzMzKy0wLjExNTAgICAg
IF4gICAgIDI0LjkyNTIrLTAuMjUyNyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDMwMHggZmFzdGVy
CiAgIHNpbXBsZS1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAu
MzMxNCstNC45MDM1ICAgICAgICAgICAxOC45NTMzKy0wLjQzMDkgICAgICAgICAgbWlnaHQgYmUg
MS4wNzI3eCBmYXN0ZXIKICAgc2ltcGxlLXBvbHktY2FsbC1uZXN0ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNS4yNzQyKy0wLjI0MzggICAgICAgICAgICA1LjA4OTcrLTAuMTIwMiAgICAg
ICAgICBtaWdodCBiZSAxLjAzNjN4IGZhc3RlcgogICBzaW1wbGUtcG9seS1jYWxsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxLjcxNDUrLTAuNDE4NyAgICAgICAgICAgIDEuNDgx
OCstMC4wNDA0ICAgICAgICAgIG1pZ2h0IGJlIDEuMTU3MXggZmFzdGVyCiAgIHNpbi1ib29sZWFu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguODM0NSstMC40OTE2ICAg
ICA/ICAgICAgOS4xMjU4Ky0xLjQ2NzggICAgICAgID8gbWlnaHQgYmUgMS4wMzMweCBzbG93ZXIK
ICAgc2luZ2xldG9uLXNjb3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NS4z
MDM4Ky0wLjE5MjcgICAgID8gICAgIDY1LjQ3OTUrLTAuNDc2NSAgICAgICAgPwogICBzaW5rLWZ1
bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQ4MDUrLTEuMTY1
NiAgICAgICAgICAgIDcuMzYxMystMC4zNDA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2MnggZmFz
dGVyCiAgIHNpbmstaHVnZS1hY3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTUuNDU0MCstNC45OTYzICAgICA/ICAgICAxNS40ODY1Ky00LjAzMTMgICAgICAgID8KICAgc2lu
a2FibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAgICA2NC41NjUwKy0z
LjQwMDUgICAgICAgICAgIDYwLjkyMjArLTkuODczMCAgICAgICAgICBtaWdodCBiZSAxLjA1OTh4
IGZhc3RlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0LXRha2VuICAgICAgICAgICAgICAgICAgICAg
ICAgIDQ0LjczOTQrLTMuMDE4MyAgICAgICAgICAgNDMuOTg2MCstMC41MTY3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE3MXggZmFzdGVyCiAgIHNpbmthYmxlLW5ldy1vYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjcuNTc1NystMi43Nzc4ICAgICA/ICAgICAyOC44NzMwKy01LjU0
ODggICAgICAgID8gbWlnaHQgYmUgMS4wNDcweCBzbG93ZXIKICAgc2xvdy1hcnJheS1wcm9maWxl
LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgMy41NzkyKy0xLjQzMzkgICAgICAgICAg
ICAzLjIwMTgrLTAuMzE4NyAgICAgICAgICBtaWdodCBiZSAxLjExNzl4IGZhc3RlcgogICBzbG93
LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQwNjErLTAu
NDA2NSAgICAgICAgICAgIDMuMjYxMSstMC4yMTQxICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ0NXgg
ZmFzdGVyCiAgIHNsb3ctdGVybmFyaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjAuMDYwNSstMC40NjUyICAgICA/ICAgICAyMS4yNTQ4Ky0zLjc4MDQgICAgICAgID8gbWln
aHQgYmUgMS4wNTk1eCBzbG93ZXIKICAgc29ydGluZy1iZW5jaG1hcmsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyMi4wNjI1Ky0wLjcyOTYgICAgICAgICAgIDIxLjk3MjUrLTAuODUw
MyAgICAgICAgCiAgIHNwYXJzZS1jb25kaXRpb25hbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuNTcyMCstMC4yOTY0ICAgICA/ICAgICAgMS41OTE4Ky0wLjMzMDEgICAgICAgID8g
bWlnaHQgYmUgMS4wMTI2eCBzbG93ZXIKICAgc3BsaWNlLXRvLXJlbW92ZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMC40NDUwKy01LjA1MDUgICAgID8gICAgIDIzLjMwNTUrLTYu
MTkxMSAgICAgICAgPyBtaWdodCBiZSAxLjEzOTl4IHNsb3dlcgogICBzdHJpbmctY2hhci1jb2Rl
LWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjU2MDQrLTAuMzQ1OSAgICAgXiAg
ICAgMTYuNjMyNistMC40MzE3ICAgICAgICBeIGRlZmluaXRlbHkgMS4xNzYweCBmYXN0ZXIKICAg
c3RyaW5nLWNvbmNhdC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43ODM4
Ky0wLjI4NTMgICAgICAgICAgICAyLjcxMDMrLTAuMDYwNSAgICAgICAgICBtaWdodCBiZSAxLjAy
NzF4IGZhc3RlcgogICBzdHJpbmctY29uY2F0LXBhaXItb2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjYwMTkrLTAuMDE5NiAgICAgPyAgICAgIDIuNjA1MCstMC4wMjU0ICAgICAgICA/
CiAgIHN0cmluZy1jb25jYXQtcGFpci1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgMTMu
NTg2MistMC41Njk0ICAgICA/ICAgICAxMy43NjQzKy0wLjM3MzcgICAgICAgID8gbWlnaHQgYmUg
MS4wMTMxeCBzbG93ZXIKICAgc3RyaW5nLWNvbmNhdC1zaW1wbGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxNS4xODE1Ky0zLjgyNTggICAgICAgICAgIDE0LjE3MTArLTAuNjI4OSAgICAg
ICAgICBtaWdodCBiZSAxLjA3MTN4IGZhc3RlcgogICBzdHJpbmctY29ucy1yZXBlYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA5LjA2NDYrLTAuMzY4MSAgICAgPyAgICAgIDkuMTM4
OSstMC41Njg4ICAgICAgICA/CiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDkuMDEyMistMC4zOTAzICAgICAgICAgICAgOC44OTA4Ky0wLjQxMjUg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTM3eCBmYXN0ZXIKICAgc3RyaW5nLWVxdWFsaXR5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi4xMDA1Ky0wLjM0MzcgICAgID8gICAgIDIy
LjM0OTMrLTAuNTkyNiAgICAgICAgPyBtaWdodCBiZSAxLjAxMTN4IHNsb3dlcgogICBzdHJpbmct
ZnJvbS1jaGFyLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjU5MjErLTAuMTI2
NyAgICAgICAgICAgMTAuMzAwMystMC41NjczICAgICAgICAgIG1pZ2h0IGJlIDEuMDI4M3ggZmFz
dGVyCiAgIHN0cmluZy1nZXQtYnktdmFsLWJpZy1jaGFyICAgICAgICAgICAgICAgICAgICAgICAg
IDUuNTQ4NSstMC4xMTgyICAgICA/ICAgICAgNS41ODM0Ky0wLjE4NTQgICAgICAgID8KICAgc3Ry
aW5nLWdldC1ieS12YWwtb3V0LW9mLWJvdW5kcy1pbnNhbmUgICAgICAgICAgICAgNS4yMTg4Ky0z
LjMxNDEgICAgICAgICAgICA0LjIwMjcrLTAuMDY3OCAgICAgICAgICBtaWdodCBiZSAxLjI0MTh4
IGZhc3RlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAg
ICAgICA1LjY4MDQrLTAuMjQwMSAgICAgICAgICAgIDUuNjM3NystMC4xOTI1ICAgICAgICAKICAg
c3RyaW5nLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43NDgw
Ky0wLjI1NTUgICAgID8gICAgICAyLjgxNDArLTAuMzQ0OSAgICAgICAgPyBtaWdodCBiZSAxLjAy
NDB4IHNsb3dlcgogICBzdHJpbmctaGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjU0ODkrLTAuMDM1MyAgICAgICAgICAgIDIuNTM5NystMC4zMjk0ICAgICAgICAK
ICAgc3RyaW5nLWxvbmctaWRlbnQtZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAxOC4z
ODIzKy0wLjg0NDUgICAgID8gICAgIDE5LjA1NjIrLTMuMDIwNSAgICAgICAgPyBtaWdodCBiZSAx
LjAzNjd4IHNsb3dlcgogICBzdHJpbmctb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwLjY2MzgrLTAuMjA5MCAgICAgPyAgICAgMTIuOTk3NystNC4wOTEzICAgICAg
ICA/IG1pZ2h0IGJlIDEuMjE4OXggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQtYXJpdGggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjcuNTgwMCstMi43MzkwICAgICA/ICAgICAyOC4xMTIz
Ky0xLjQ3NDAgICAgICAgID8gbWlnaHQgYmUgMS4wMTkzeCBzbG93ZXIKICAgc3RyaW5nLXJvcGUt
d2l0aC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAyNC4zMjI3Ky0xLjE4NzcgICAg
ID8gICAgIDI0LjY0NjcrLTIuMzIyOCAgICAgICAgPyBtaWdodCBiZSAxLjAxMzN4IHNsb3dlcgog
ICBzdHJpbmctc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LjI0
NzMrLTAuMzc5OCAgICAgISAgICAgNDYuMzY2NSstMC43Nzg3ICAgICAgICAhIGRlZmluaXRlbHkg
MS4wNDc5eCBzbG93ZXIKICAgc3RyaW5nLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC4yMjU0Ky0xLjU3NTcgICAgICAgICAgICAzLjg3NjUrLTAuMzEyNiAgICAg
ICAgICBtaWdodCBiZSAxLjA5MDB4IGZhc3RlcgogICBzdHJpbmctdmFyLWVxdWFsaXR5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDM3Ljg3MzkrLTAuMzMyNiAgICAgICAgICAgMzcuODYz
MystMC4zMDE4ICAgICAgICAKICAgc3RydWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlvbnMgICAg
ICAgICAgICAgICAgICAgMi45NDMyKy0wLjI2NTMgICAgICAgICAgICAyLjg3OTQrLTAuMDk5MiAg
ICAgICAgICBtaWdodCBiZSAxLjAyMjJ4IGZhc3RlcgogICBzdWJzdHJpbmctY29uY2F0LXdlaXJk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4LjU2OTMrLTMuODc5NyAgICAgICAgICAgNDcu
MjI0MistMC41MzIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI4NXggZmFzdGVyCiAgIHN1YnN0cmlu
Zy1jb25jYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAuODgzMystMi4zMDU4
ICAgICA/ICAgICA1Mi4wOTMxKy01LjE1MzQgICAgICAgID8gbWlnaHQgYmUgMS4wMjM4eCBzbG93
ZXIKICAgc3Vic3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
Ni4xNzEwKy0wLjYxNzggICAgID8gICAgIDU3LjUzMzErLTQuNTk2MSAgICAgICAgPyBtaWdodCBi
ZSAxLjAyNDJ4IHNsb3dlcgogICBzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjc4NDUrLTAuMDM0OSAgICAgPyAgICAgIDIuNzk2NistMC4wNzYxICAg
ICAgICA/CiAgIHN3aXRjaC1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuMTI1OCstMC40OTYxICAgICAgICAgICAgNi4wMTY2Ky0wLjA0ODMgICAgICAgICAgbWln
aHQgYmUgMS4wMTgxeCBmYXN0ZXIKICAgc3dpdGNoLWNvbnN0YW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNS4wOTgwKy0xLjEzMTUgICAgICAgICAgICA0Ljk3OTErLTEuMDE3
NCAgICAgICAgICBtaWdodCBiZSAxLjAyMzl4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2lj
LWJpZy12YXIgICAgICAgICAgICAgICAgICAgICAgIDE3LjcwNzkrLTAuODg3MCAgICAgPyAgICAg
MTguMTA4MistMy4wMjM5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyNnggc2xvd2VyCiAgIHN3aXRj
aC1zdHJpbmctYmFzaWMtYmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcuODcxOSstNC41
MTE4ICAgICAgICAgICAxNS4yNDk4Ky0wLjM4NTIgICAgICAgICAgbWlnaHQgYmUgMS4xNzE5eCBm
YXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy12YXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNy4zNjQxKy0wLjM4NTEgICAgID8gICAgIDE4LjI5NjIrLTMuOTMxNiAgICAgICAgPyBtaWdo
dCBiZSAxLjA1Mzd4IHNsb3dlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE1LjE3MDUrLTMuOTc2MSAgICAgICAgICAgMTMuOTkzMistMC4wNDQ5
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg0MXggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctYmlnLWxl
bmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgMjIuNjA3MystMS4xMzA1ICAgICAgICAgICAy
Mi4xMDkzKy0wLjI0OTAgICAgICAgICAgbWlnaHQgYmUgMS4wMjI1eCBmYXN0ZXIKICAgc3dpdGNo
LXN0cmluZy1sZW5ndGgtdG93ZXItdmFyICAgICAgICAgICAgICAgICAgICAyMC4yNjk3Ky0yLjA3
ODcgICAgID8gICAgIDIwLjkzMjQrLTQuOTAzOSAgICAgICAgPyBtaWdodCBiZSAxLjAzMjd4IHNs
b3dlcgogICBzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dlciAgICAgICAgICAgICAgICAgICAgICAg
IDE0Ljk4MTQrLTMuOTcwOCAgICAgICAgICAgMTMuNjQ5MCstMC4yMzg4ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDk3NnggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctc2hvcnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQuOTQwMCstMy44MDM1ICAgICA/ICAgICAxNS43NzY1Ky01LjcyMDEg
ICAgICAgID8gbWlnaHQgYmUgMS4wNTYweCBzbG93ZXIKICAgc3dpdGNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy45NjIxKy0wLjYyNDQgICAgID8gICAgICA4
LjI4MDMrLTAuNzk4NyAgICAgICAgPyBtaWdodCBiZSAxLjA0MDB4IHNsb3dlcgogICBzeW1ib2wt
dG9zdHJpbmd0YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjA2NjErLTAuMTQ2
MiAgICAgPyAgICAgIDQuMTk0NistMC4yNTE5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxNnggc2xv
d2VyCiAgIHRlYXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuMzE4MSstMS4yMDc0ICAgICAgICAgICAgMy4wMjA5Ky0wLjAzMzEgICAgICAgICAgbWlnaHQg
YmUgMS4wOTg0eCBmYXN0ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC40Mjk1Ky0wLjY5OTkgICAgID8gICAgICA0LjY1NTMrLTEuNjM3MyAg
ICAgICAgPyBtaWdodCBiZSAxLjA1MTB4IHNsb3dlcgogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjA1MTUrLTQuMzYxNSAgICAgICAgICAgMTQu
Mjg2NCstMC4yNzI5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTkzNXggZmFzdGVyCiAgIHRvLWludDMy
LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuNTIwMistNC4xMTY1
ICAgICAgICAgICAxNy4yODE2Ky0wLjI5MjcgICAgICAgICAgbWlnaHQgYmUgMS4xMjk1eCBmYXN0
ZXIKICAgdHJ5LWNhdGNoLWdldC1ieS12YWwtY2xvbmVkLWFyZ3VtZW50cyAgICAgICAgICAgICAg
OC40ODQ3Ky0wLjMxMjYgICAgID8gICAgICA5LjU1ODIrLTIuMzE3NiAgICAgICAgPyBtaWdodCBi
ZSAxLjEyNjV4IHNsb3dlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1kaXJlY3QtYXJndW1lbnRz
ICAgICAgICAgICAgICAyLjU2NjgrLTAuMDY2NSAgICAgPyAgICAgIDIuNjU1NistMC4wODExICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDM0Nnggc2xvd2VyCiAgIHRyeS1jYXRjaC1nZXQtYnktdmFsLXNj
b3BlZC1hcmd1bWVudHMgICAgICAgICAgICAgIDUuMzUwOSstMC4yOTgzICAgICA/ICAgICAgNS4z
NzcwKy0wLjI3MTMgICAgICAgID8KICAgdHlwZWQtYXJyYXktZ2V0LXNldC1ieS12YWwtcHJvZmls
aW5nICAgICAgICAgICAgICAyMy4xMTUxKy0wLjQ0NDUgICAgID8gICAgIDI2LjE2OTcrLTguODU2
MyAgICAgICAgPyBtaWdodCBiZSAxLjEzMjJ4IHNsb3dlcgogICB1bmRlZmluZWQtcHJvcGVydHkt
YWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgNDA5LjAzMzQrLTUuMDMxMiAgICAgPyAgICA0
MTMuNjQyNSstMTAuNzIyOCAgICAgICA/IG1pZ2h0IGJlIDEuMDExM3ggc2xvd2VyCiAgIHVuZGVm
aW5lZC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTg1MCstMS4x
NzEzICAgICAgICAgICAgMy45Nzc5Ky0wLjEwMzkgICAgICAgICAgbWlnaHQgYmUgMS4xNTI2eCBm
YXN0ZXIKICAgdW5wcm9maWxlZC1saWNtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMC42MzkwKy0wLjM3MDUgICAgICAgICAgIDEwLjU5NjkrLTAuMjA4MCAgICAgICAgCiAgIHVu
dHlwZWQtc3RyaW5nLWZyb20tY2hhci1jb2RlICAgICAgICAgICAgICAgICAgICAgMTMuMDAyOSst
MS45MDA2ICAgICAgICAgICAxMi4zMDQ5Ky0wLjI4MzcgICAgICAgICAgbWlnaHQgYmUgMS4wNTY3
eCBmYXN0ZXIKICAgdjgtcmF5dHJhY2Utd2l0aC1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAg
ICAgICA2NC44MTY3Ky0wLjg2MzcgICAgICAgICAgIDY0LjQwMTYrLTAuMTg1NyAgICAgICAgCiAg
IHY4LXJheXRyYWNlLXdpdGgtdHJ5LWNhdGNoLWhpZ2gtZnJlcXVlbmN5LXRocm93cyAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDk4LjA5NzQr
LTEyLjY2MzMgICAgICAgICA0OTEuNjY0NCstMTcuNzI1MiAgICAgICAgIG1pZ2h0IGJlIDEuMDEz
MXggZmFzdGVyCiAgIHY4LXJheXRyYWNlLXdpdGgtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAg
ICAgICAgODYuMTMzMCstNC4zNDEwICAgICAgICAgICA4NS43ODE3Ky00Ljc1OTYgICAgICAgIAog
ICB2OC1yZWdleHAtc2VhcmNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0Ljk2
MDYrLTAuMTk0OCAgICAgPyAgICAgNjUuMDA0NSstMC40NTA2ICAgICAgICA/CiAgIHZhcmFyZ3Mt
Y2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuNDE4NCstNC41ODY1
ICAgICA/ICAgICAxNy42NTg0Ky01LjA1OTUgICAgICAgID8gbWlnaHQgYmUgMS4wNzU1eCBzbG93
ZXIKICAgdmFyYXJncy1jb25zdHJ1Y3QtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgICAy
NS4yNTI3Ky0wLjI0MjYgICAgID8gICAgIDI2Ljc2OTgrLTMuMDk4MiAgICAgICAgPyBtaWdodCBi
ZSAxLjA2MDF4IHNsb3dlcgogICB2YXJhcmdzLWNvbnN0cnVjdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI4LjkzNTMrLTAuMzAzNiAgICAgPyAgICAgMjguOTU2NystMC4zNjI1ICAg
ICAgICA/CiAgIHZhcmFyZ3MtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDkuODczNSstMC45MDU0ICAgICA/ICAgICAxMS4wNjA1Ky00LjIyNzcgICAgICAgID8gbWln
aHQgYmUgMS4xMjAyeCBzbG93ZXIKICAgdmFyYXJncy1zdHJpY3QtbW9kZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMS40MzQ0Ky0wLjQ1NzEgICAgID8gICAgIDExLjQ1NDQrLTAuMzI3
NyAgICAgICAgPwogICB2YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDExLjM0MjMrLTAuNDIxMiAgICAgICAgICAgMTEuMzM4OCstMC41NTQ2ICAgICAgICAK
ICAgd2VpcmQtaW5saW5pbmctY29uc3QtcHJvcCAgICAgICAgICAgICAgICAgICAgICAgICAgMi45
NjE1Ky0xLjI1OTcgICAgICAgICAgICAyLjU0NjkrLTAuMDkxOSAgICAgICAgICBtaWdodCBiZSAx
LjE2Mjh4IGZhc3RlcgoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMC4zMzkzKy0wLjE2MjkgICAgID8gICAgIDEwLjM2MTArLTAuMDY3OCAgICAg
ICAgPyBtaWdodCBiZSAxLjAwMjF4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZWxpbmUgICAgICAgICAgICAgICAgICAg
IE1pbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKR2VvbWVhbiBvZiBw
cmVmZXJyZWQgbWVhbnM6CiAgIDxzY2FsZWQtcmVzdWx0PiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMzAuMjYxMystMC4zMzY2ICAgICAgICAgICAzMC4yMzc0Ky0wLjI4NjEgICAg
ICAgICAgbWlnaHQgYmUgMS4wMDA4eCBmYXN0ZXIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272506</attachid>
            <date>2016-02-29 11:39:41 -0800</date>
            <delta_ts>2016-02-29 11:53:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154683-20160301043924.patch</filename>
            <type>text/plain</type>
            <size>113969</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Y2VjZTJmZTdjYjU3NTE5MTgwOGRhMjNkMTQ2ZDU2MTFlYWYwNGVjLi5iNzA0NTM4MmY1YmYyMTAw
YjU4NTMxM2IyZjkzNWQ0MjUzZmNmNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDYgQEAKKzIwMTYtMDItMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0RGR11bRlRMXVtCM10gU3VwcG9ydCBmbG9vciBhbmQgY2VpbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIGFuZCBmaXhlcyB0aGUgZm9sbG93aW5nIHRoaW5ncy4KKworICAgICAgICAx
LiBJbXBsZW1lbnQgQ2VpbCBhbmQgRmxvb3IgaW4gREZHLCBGVEwgYW5kIEIzCisKKyAgICAgICAg
eDg2IFNTRSA0LjIgYW5kIEFSTTY0IGhhdmUgcm91bmQgaW5zdHJ1Y3Rpb25zIHRoYXQgY2FuIGRp
cmVjdGx5IHBlcmZvcm0gQ2VpbCBvciBGbG9vci4KKyAgICAgICAgVGhpcyBwYXRjaCBsZXZlcmFn
ZXMgdGhpcyBmdW5jdGlvbmFsaXR5LiBXZSBpbnRyb2R1Y2UgQXJpdGhGbG9vciBhbmQgQXJpdGhD
ZWlsLgorICAgICAgICBEdXJpbmcgREZHIHBoYXNlLCB0aGVzZSBub2RlcyBhdHRlbXB0IHRvIGNv
bnZlcnQgaXRzZWxmIHRvIElkZW50aXR5IChpbiBGaXh1cCBwaGFzZSkuCisgICAgICAgIEFzIHRo
ZSBzYW1lIHRvIEFyaXRoUm91bmQsIGl0IHRyYWNrcyBhcml0aCByb3VuZGluZyBtb2RlLgorICAg
ICAgICBBbmQgaWYgdGhlc2Ugbm9kZXMgYXJlIHJlcXVpcmVkIHRvIGVtaXQgbWFjaGluZSBjb2Rl
cywgd2UgZW1pdCByb3VuZGluZyBtYWNoaW5lIGNvZGUKKyAgICAgICAgaWYgaXQgaXMgc3VwcG9y
dGVkIGluIHRoZSBjdXJyZW50IG1hY2hpbmUuIEZvciBleGFtcGxlLCBpbiB4ODYsIHdlIGVtaXQg
YHJvdW5kYC4KKworICAgICAgICBUaGlzIGBGbG9vcmAgZnVuY3Rpb25hbGl0eSBpcyBuaWNlIGZv
ciBAdG9JbnRlZ2VyIGluIGJ1aWx0aW4uCisgICAgICAgIFRoYXQgaXMgdXNlZCBmb3IgQXJyYXku
cHJvdG90eXBlLntmb3JFYWNoLCBtYXAsIGV2ZXJ5LCBzb21lLCByZWR1Y2UuLi59CisgICAgICAg
IEFuZCBhY2NvcmRpbmcgdG8gdGhlIGJlbmNobWFyayByZXN1bHRzLCBLcmFrZW4gYXVkaW8tb3Nj
aWxsYXRvciBpcyBzbGlnaHRseSBpbXByb3ZlZAorICAgICAgICBkdWUgdG8gaXRzIGZyZXF1ZW50
IE1hdGgucm91bmQgYW5kIE1hdGguZmxvb3IgY2FsbHMuCisKKyAgICAgICAgMi4gSW1wbGVtZW50
IEZsb29yIGluIEIzIGFuZCBBaXIKKworICAgICAgICBBcyB0aGUgc2FtZSB0byBDZWlsIGluIEIz
LCB3ZSBhZGQgYSBuZXcgQjMgSVIgYW5kIEFpciBvcGNvZGUsIEZsb29yLgorICAgICAgICBUaGlz
IEZsb29yIGlzIGxldmVyYWdlZCB0byBpbXBsZW1lbnQgQXJpdGhGbG9vciBpbiBERkcuCisKKyAg
ICAgICAgMy4gRml4IEFyaXRoUm91bmQgb3BlcmF0aW9uCisKKyAgICAgICAgQ3VycmVudGx5LCB3
ZSB1c2VkIGN2dHNkMnNpIChpbiB4ODYpIHRvIGNvbnZlcnQgZG91YmxlIHZhbHVlIHRvIGludDMy
LgorICAgICAgICBBbmQgd2UgYWxzbyB1c2VkIHRoaXMgdG8gaW1wbGVtZW50IE1hdGgucm91bmQs
IGxpa2UsIGN2dHNkMnNpKHZhbHVlICsgMC41KS4KKyAgICAgICAgSG93ZXZlciwgdGhpcyBpbXBs
ZW1lbnRhdGlvbiBpcyBub3QgY29ycmVjdC4gQmVjYXVzZSBjdnRzZDJzaSBpcyBub3QgZmxvb3Ig
b3BlcmF0aW9uLgorICAgICAgICBJdCBpcyB0cnVjYXRlIG9wZXJhdGlvbi4gVGhpcyBpcyBPSyBm
b3IgcG9zaXRpdmUgbnVtYmVycy4gQnV0IE5HIGZvciBuZWdhdGl2ZSBudW1iZXJzLgorICAgICAg
ICBGb3IgZXhhbXBsZSwgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYWNjaWRlbnRhbGx5IHJv
dW5kcyBgLTAuNmAgdG8gYC0wLjBgLiBUaGlzIHNob3VsZCBiZSBgLTEuMGAuCisgICAgICAgIFVz
aW5nIENlaWwgYW5kIEZsb29yIGluc3RydWN0aW9ucywgd2UgaW1wbGVtZW50IGNvcnJlY3QgQXJp
dGhSb3VuZC4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRp
bmcpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6Y2VpbERvdWJsZSk6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpmbG9vckRvdWJsZSk6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKTogRGVsZXRlZC4K
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmZsb29yRmxvYXQpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGlu
Zyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmNlaWxEb3VibGUpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpmbG9vckRvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwpOiBEZWxl
dGVkLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpjZWlsRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJNSVBTOjpmbG9vckRvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyTUlQUzo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlck1JUFM6OnN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwpOiBEZWxldGVkLgor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclNINDo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlclNINDo6Y2VpbERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyU0g0OjpmbG9vckRvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyU0g0OjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKTogRGVsZXRlZC4KKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OmZsb29yRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OmZsb29yRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCk6IERl
bGV0ZWQuCisgICAgICAgICogYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OkNvbnN0RG91YmxlVmFsdWU6OmZsb29yQ29uc3RhbnQpOgorICAgICAgICAqIGIzL0Iz
Q29uc3REb3VibGVWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ29uc3RGbG9hdFZhbHVlLmNwcDoK
KyAgICAgICAgKEpTQzo6QjM6OkNvbnN0RmxvYXRWYWx1ZTo6Zmxvb3JDb25zdGFudCk6CisgICAg
ICAgICogYjMvQjNDb25zdEZsb2F0VmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9z
QWZ0ZXJPcHRpbWl6YXRpb25zLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgor
ICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpsb3dlcik6CisgICAgICAgICogYjMv
QjNPcGNvZGUuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBi
My9CM09wY29kZS5oOgorICAgICAgICAqIGIzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHA6Cisg
ICAgICAgICogYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvQjNWYWxpZGF0
ZS5jcHA6CisgICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpWYWx1
ZTo6Zmxvb3JDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6aXNSb3VuZGVkKToK
KyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjplZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAgICAq
IGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3Rh
bGxzLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICog
YjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckNlaWxBcmcpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEZsb29yQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9v
ckltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JNZW0pOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEZsb29yRmxvb3JBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxGbG9vckFy
Zyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JJVG9ENjQpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEZsb29ySVRvRDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckFyZ1dpdGhV
c2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JBcmdX
aXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjpydW4pOgor
ICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0FyaXRoTW9kZS5jcHA6CisgICAgICAgIChXVEY6
OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdBcml0aE1vZGUuaDoKKyAgICAgICAg
KiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2Rl
UGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6
ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdE
b2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9k
ZSk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFw
aDo6ZHVtcCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmg6CisgICAgICAgIChKU0M6OkRGRzo6
R3JhcGg6OnJvdW5kU2hvdWxkU3BlY3VsYXRlSW50MzIpOgorICAgICAgICAqIGRmZy9ERkdOb2Rl
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6YXJpdGhOb2RlRmxhZ3MpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNBcml0aFJvdW5kaW5nTW9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAg
ICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVU
b0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW5nKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91bmQpOiBEZWxldGVk
LgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlQXJpdGhSb3VuZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVBcml0aEZsb29yKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZUFyaXRoQ2VpbCk6CisgICAgICAgICogZnRsL0ZUTE91dHB1
dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZG91YmxlRmxvb3IpOgorICAgICAgICAq
IGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpjZWlsVGh1bmtHZW5lcmF0
b3IpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYXJpdGgtcm91bmRpbmctbW9k
ZS5qczogQWRkZWQuCisgICAgICAgIChmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KToK
KyAgICAgICAgKGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk6CisgICAgICAgICh3
YXJtdXApOgorICAgICAgICAodmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQpOgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy9tYXRoLWNlaWwtYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKG1h
dGhDZWlsT25JbnRlZ2Vycyk6CisgICAgICAgIChtYXRoQ2VpbE9uRG91Ymxlcyk6CisgICAgICAg
IChtYXRoQ2VpbE9uQm9vbGVhbnMpOgorICAgICAgICAodXNlbGVzc01hdGhDZWlsKToKKyAgICAg
ICAgKG1hdGhDZWlsV2l0aE92ZXJmbG93KToKKyAgICAgICAgKG1hdGhDZWlsQ29uc3VtZWRBc0Rv
dWJsZSk6CisgICAgICAgIChtYXRoQ2VpbERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8pOgorICAg
ICAgICAobWF0aENlaWxOb0FyZ3VtZW50cyk6CisgICAgICAgIChtYXRoQ2VpbFRvb01hbnlBcmd1
bWVudHMpOgorICAgICAgICAodGVzdE1hdGhDZWlsT25Db25zdGFudHMpOgorICAgICAgICAobWF0
aENlaWxTdHJ1Y3RUcmFuc2l0aW9uKToKKyAgICAgICAgKE1hdGguY2VpbCk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL21hdGgtZmxvb3ItYXJpdGgtcm91bmRpbmctbW9kZS5qczogQWRkZWQuCisg
ICAgICAgIChmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KToKKyAgICAgICAgKGZpcnN0
RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk6CisgICAgICAgICh3YXJtdXApOgorICAgICAg
ICAodmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9tYXRoLWZsb29yLWJhc2ljcy5qczogQWRkZWQuCisgICAgICAgIChtYXRoRmxvb3JPbkludGVn
ZXJzKToKKyAgICAgICAgKG1hdGhGbG9vck9uRG91Ymxlcyk6CisgICAgICAgIChtYXRoRmxvb3JP
bkJvb2xlYW5zKToKKyAgICAgICAgKHVzZWxlc3NNYXRoRmxvb3IpOgorICAgICAgICAobWF0aEZs
b29yV2l0aE92ZXJmbG93KToKKyAgICAgICAgKG1hdGhGbG9vckNvbnN1bWVkQXNEb3VibGUpOgor
ICAgICAgICAobWF0aEZsb29yRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyk6CisgICAgICAgICht
YXRoRmxvb3JOb0FyZ3VtZW50cyk6CisgICAgICAgIChtYXRoRmxvb3JUb29NYW55QXJndW1lbnRz
KToKKyAgICAgICAgKHRlc3RNYXRoRmxvb3JPbkNvbnN0YW50cyk6CisgICAgICAgIChtYXRoRmxv
b3JTdHJ1Y3RUcmFuc2l0aW9uKToKKyAgICAgICAgKE1hdGguZmxvb3IpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9tYXRoLXJvdW5kLXNob3VsZC1ub3QtdXNlLXRydW5jYXRlLmpzOiBBZGRlZC4K
KyAgICAgICAgKG1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLWluZmluaXR5LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKHRlc3RSb3VuZCk6CisgICAgICAgICh0ZXN0Rmxvb3IpOgor
ICAgICAgICAodGVzdENlaWwpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5n
LW5hbi5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0Um91bmQp
OgorICAgICAgICAodGVzdEZsb29yKToKKyAgICAgICAgKHRlc3RDZWlsKToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1uZWdhdGl2ZS16ZXJvLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3RSb3VuZCk6CisgICAgICAgICh0ZXN0Rmxvb3Ip
OgorICAgICAgICAodGVzdENlaWwpOgorICAgICAgICAodGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJv
KToKKyAgICAgICAgKHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIpOgorCiAyMDE2LTAyLTI4ICBB
bmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEpTRnVuY3Rp
b24ubmFtZSBhbGxvY2F0aW9uIGZ1bGx5IGxhenkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5kZXggYzU4Y2Y4YWVlNzIwZjM0
ZDcxY2JkNWUwNjA1ZGU3N2Q0Y2IwNmVmOS4uOTdkMjEwZTI3YjRkODllMDFhZDJhNDU3Mjc3OWJm
YzlmYjI3ZmE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAtMTEzOSw3ICsxMTM5LDcgQEAgY2xhc3MgTWFjcm9Bc3Nl
bWJsZXJBUk0gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBUk1Bc3NlbWJsZXIsIE1h
Y3JvQXNzZW0KICAgICAgICAgcmV0dXJuIHNfaXNWRlBQcmVzZW50OwogICAgIH0KICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMoKSB7IHJldHVybiBmYWxzZTsgfQotICAg
IHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKCkgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9hZEZsb2F0KEJhc2VJbmRleCBhZGRyZXNzLCBGUFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC0xMTY0LDcgKzExNjQsMTMgQEAgY2xhc3MgTWFjcm9B
c3NlbWJsZXJBUk0gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBUk1Bc3NlbWJsZXIs
IE1hY3JvQXNzZW0KIAogICAgIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBjZWlsRG91Ymxl
KEZQUmVnaXN0ZXJJRCwgRlBSZWdpc3RlcklEKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRDZWlsKCkpOworICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRp
bmdQb2ludFJvdW5kaW5nKCkpOworICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIE5PX1JF
VFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBmbG9vckRvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0
ZXJJRCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRp
bmcoKSk7CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IGE1OTBiNDQ3
NzcxMWQyOGY5NTgyOGIwOTQ3NjQ2OWQ0NDhhNGQ5M2YuLjU5Nzc2MTM1MzIzNzIyOGExYWFhODlm
MjdhOGFlODk1YjY1MTUzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xMzQzLDcgKzEzNDMsNyBAQCBjbGFz
cyBNYWNyb0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QVJN
NjRBc3NlbWJsZXIsIE1hY3JvQQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2lu
dFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxv
YXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHN0YXRpYyBib29sIHN1
cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICBlbnVtIEJyYW5jaFRydW5jYXRlVHlwZSB7IEJyYW5jaElmVHJ1bmNhdGVGYWlsZWQsIEJyYW5j
aElmVHJ1bmNhdGVTdWNjZXNzZnVsIH07CiAKQEAgLTEzOTksNiArMTM5OSwxMSBAQCBjbGFzcyBN
YWNyb0Fzc2VtYmxlckFSTTY0IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QVJNNjRB
c3NlbWJsZXIsIE1hY3JvQQogICAgICAgICBtX2Fzc2VtYmxlci5mcmludG08NjQ+KGRlc3QsIHNy
Yyk7CiAgICAgfQogCisgICAgdm9pZCBmbG9vckZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuZnJpbnRtPDMyPihkZXN0
LCBzcmMpOworICAgIH0KKwogICAgIC8vIENvbnZlcnQgJ3NyYycgdG8gYW4gaW50ZWdlciwgYW5k
IHBsYWNlcyB0aGUgcmVzdWx0aW5nICdkZXN0Jy4KICAgICAvLyBJZiB0aGUgcmVzdWx0IGlzIG5v
dCByZXByZXNlbnRhYmxlIGFzIGEgMzIgYml0IHZhbHVlLCBicmFuY2guCiAgICAgLy8gTWF5IGFs
c28gYnJhbmNoIGZvciBzb21lIHZhbHVlcyB0aGF0IGFyZSByZXByZXNlbnRhYmxlIGluIDMyIGJp
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKaW5kZXggYzA3NTg1MjA0ZTI1ZWU5OWVmM2MwOTNhZTM1ODUyYTAyZGZmYmMy
YS4uZmM5NGI4ODhkZTM1ZTU5NzRiYzA1ZGIxNjU2NDgzMTI3OTVhNzgzNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgK
QEAgLTg3MCw3ICs4NzAsNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTXY3IDogcHVibGljIEFi
c3RyYWN0TWFjcm9Bc3NlbWJsZXI8QVJNdjdBc3NlbWJsZXIsIE1hY3JvQQogICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB7IHJldHVybiB0cnVlOyB9
CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5n
KCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9hZERvdWJsZShJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtMTA2Myw3ICsxMDYzLDEz
IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNdjcgOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBUk12N0Fzc2VtYmxlciwgTWFjcm9BCiAKICAgICBOT19SRVRVUk5fRFVFX1RPX0NSQVNI
IHZvaWQgY2VpbERvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJRCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpKTsKKyAgICAgICAgQVNTRVJU
KCFzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKTsKKyAgICAgICAgQ1JBU0goKTsKKyAg
ICB9CisKKyAgICBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgZmxvb3JEb3VibGUoRlBSZWdp
c3RlcklELCBGUFJlZ2lzdGVySUQpCisgICAgeworICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxv
YXRpbmdQb2ludFJvdW5kaW5nKCkpOwogICAgICAgICBDUkFTSCgpOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgK
aW5kZXggOWIzNzU2NGQ1MWY4YWZhNDRhYzVkMjg3MmEzZDg5M2JiOWM2MzY3YS4uN2M0YmQwODBk
ZjEzNDNiOGVhZWQwZjUwMjI0ZDJhMmE5OWJkZTk5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBAIC02NDksNyArNjQ5
LDEzIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyTUlQUyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyPE1JUFNBc3NlbWJsZXIsIE1hY3JvQXNzCiAKICAgICBOT19SRVRVUk5fRFVFX1RPX0NS
QVNIIHZvaWQgY2VpbERvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJRCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Q2VpbCgpKTsKKyAgICAgICAgQVNT
RVJUKCFzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKTsKKyAgICAgICAgQ1JBU0goKTsK
KyAgICB9CisKKyAgICBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgZmxvb3JEb3VibGUoRlBS
ZWdpc3RlcklELCBGUFJlZ2lzdGVySUQpCisgICAgeworICAgICAgICBBU1NFUlQoIXN1cHBvcnRz
RmxvYXRpbmdQb2ludFJvdW5kaW5nKCkpOwogICAgICAgICBDUkFTSCgpOwogICAgIH0KIApAQCAt
MTIzNyw3ICsxMjQzLDcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJNSVBTIDogcHVibGljIEFic3Ry
YWN0TWFjcm9Bc3NlbWJsZXI8TUlQU0Fzc2VtYmxlciwgTWFjcm9Bc3MKICNlbmRpZgogICAgIH0K
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRBYnMoKSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludENlaWwoKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5n
KCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFN0YWNrIG1hbmlwdWxhdGlvbiBvcGVyYXRp
b25zOgogICAgIC8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyU0g0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyU0g0LmgKaW5kZXggMGY0NmY4ZjVhMDFiODRlM2QyZDg1ZTMzOTczYWZmOGUx
YzI1MmFlMS4uNzU3NTYwOTViODAwMzkwZGRhOWVjN2RlODMxOTkwMjU3ZDYxM2JmNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQu
aApAQCAtMTA5MSw3ICsxMDkxLDcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJTSDQgOiBwdWJsaWMg
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxTSDRBc3NlbWJsZXIsIE1hY3JvQXNzZW0KICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIHRydWU7IH0K
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicygpIHsgcmV0dXJu
IHRydWU7IH0KLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3Vu
ZGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIG1vdmVEb3VibGVUb0ludHMoRlBS
ZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0MSwgUmVnaXN0ZXJJRCBkZXN0MikKICAgICB7
CkBAIC0xNTc3LDcgKzE1NzcsMTMgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXJTSDQgOiBwdWJsaWMg
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxTSDRBc3NlbWJsZXIsIE1hY3JvQXNzZW0KIAogICAgIE5P
X1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBjZWlsRG91YmxlKEZQUmVnaXN0ZXJJRCwgRlBSZWdp
c3RlcklEKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWls
KCkpOworICAgICAgICBBU1NFUlQoIXN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKCkpOwor
ICAgICAgICBDUkFTSCgpOworICAgIH0KKworICAgIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9p
ZCBmbG9vckRvdWJsZShGUFJlZ2lzdGVySUQsIEZQUmVnaXN0ZXJJRCkKKyAgICB7CisgICAgICAg
IEFTU0VSVCghc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSk7CiAgICAgICAgIENSQVNI
KCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5kZXggMDhlYTU3NTlkN2Q5MWRkNjE4YzQ4
OWJiMThmYTUzODFmMzgwNzQwOS4uODA4NTUzMGJjNjYyOGI2YzNlMDRkYTVkY2FlYTIyMjI2ZjM4
ZWU4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaApAQCAtNjk2LDYgKzY5NiwyNiBAQCBjbGFzcyBNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbiA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPFg4NkFz
c2VtYmxlciwgTWFjcgogICAgICAgICBtX2Fzc2VtYmxlci5yb3VuZHNzX21yKHNyYy5vZmZzZXQs
IHNyYy5iYXNlLCBkc3QsIFg4NkFzc2VtYmxlcjo6Um91bmRpbmdUeXBlOjpUb3dhcmRJbmZpbml0
aSk7CiAgICAgfQogCisgICAgdm9pZCBmbG9vckRvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJl
Z2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucm91bmRzZF9ycihzcmMs
IGRzdCwgWDg2QXNzZW1ibGVyOjpSb3VuZGluZ1R5cGU6OlRvd2FyZE5lZ2F0aXZlSW5maW5pdGkp
OworICAgIH0KKworICAgIHZvaWQgZmxvb3JEb3VibGUoQWRkcmVzcyBzcmMsIEZQUmVnaXN0ZXJJ
RCBkc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5yb3VuZHNkX21yKHNyYy5vZmZzZXQs
IHNyYy5iYXNlLCBkc3QsIFg4NkFzc2VtYmxlcjo6Um91bmRpbmdUeXBlOjpUb3dhcmROZWdhdGl2
ZUluZmluaXRpKTsKKyAgICB9CisKKyAgICB2b2lkIGZsb29yRmxvYXQoRlBSZWdpc3RlcklEIHNy
YywgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnJvdW5kc3Nf
cnIoc3JjLCBkc3QsIFg4NkFzc2VtYmxlcjo6Um91bmRpbmdUeXBlOjpUb3dhcmROZWdhdGl2ZUlu
ZmluaXRpKTsKKyAgICB9CisKKyAgICB2b2lkIGZsb29yRmxvYXQoQWRkcmVzcyBzcmMsIEZQUmVn
aXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5yb3VuZHNzX21yKHNyYy5v
ZmZzZXQsIHNyYy5iYXNlLCBkc3QsIFg4NkFzc2VtYmxlcjo6Um91bmRpbmdUeXBlOjpUb3dhcmRO
ZWdhdGl2ZUluZmluaXRpKTsKKyAgICB9CisKICAgICAvLyBNZW1vcnkgYWNjZXNzIG9wZXJhdGlv
bnM6CiAgICAgLy8KICAgICAvLyBMb2FkcyBhcmUgb2YgdGhlIGZvcm0gbG9hZChhZGRyZXNzLCBk
ZXN0aW5hdGlvbikgYW5kIHN0b3JlcyBvZiB0aGUgZm9ybQpAQCAtMjMwMCw3ICsyMzIwLDcgQEAg
Y2xhc3MgTWFjcm9Bc3NlbWJsZXJYODZDb21tb24gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxYODZBc3NlbWJsZXIsIE1hY3IKICAgICAgICAgcmV0dXJuIFg4NkFzc2VtYmxlcjo6bWF4
SnVtcFJlcGxhY2VtZW50U2l6ZSgpOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludENlaWwoKQorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2lu
dFJvdW5kaW5nKCkKICAgICB7CiAgICAgICAgIGlmIChzX3NzZTRfMUNoZWNrU3RhdGUgPT0gQ1BV
SURDaGVja1N0YXRlOjpOb3RDaGVja2VkKSB7CiAgICAgICAgICAgICBpbnQgZmxhZ3MgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1ZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcAppbmRl
eCBmOWNlMjk2ZWNjZmM5OGJjODQxOGFiODU2NzIwOGQwNWQ1ZTA4ODY1Li40NjE4M2YzMzRhMWRi
OTgzZTRiNDE4NGNiYTM4ZDhhYzg5ZDJkN2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcApAQCAtOTcsNiArOTcsMTEgQEAgVmFsdWUqIENv
bnN0RG91YmxlVmFsdWU6OmNlaWxDb25zdGFudChQcm9jZWR1cmUmIHByb2MpIGNvbnN0CiAgICAg
cmV0dXJuIHByb2MuYWRkPENvbnN0RG91YmxlVmFsdWU+KG9yaWdpbigpLCBjZWlsKG1fdmFsdWUp
KTsKIH0KIAorVmFsdWUqIENvbnN0RG91YmxlVmFsdWU6OmZsb29yQ29uc3RhbnQoUHJvY2VkdXJl
JiBwcm9jKSBjb25zdAoreworICAgIHJldHVybiBwcm9jLmFkZDxDb25zdERvdWJsZVZhbHVlPihv
cmlnaW4oKSwgZmxvb3IobV92YWx1ZSkpOworfQorCiBWYWx1ZSogQ29uc3REb3VibGVWYWx1ZTo6
c3FydENvbnN0YW50KFByb2NlZHVyZSYgcHJvYykgY29uc3QKIHsKICAgICByZXR1cm4gcHJvYy5h
ZGQ8Q29uc3REb3VibGVWYWx1ZT4ob3JpZ2luKCksIHNxcnQobV92YWx1ZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1ZS5oCmluZGV4IGIyY2IyNDZlZTZl
YWViNTJjOGYwMjIwYjkxNGRlNmNiMjVhZGQ3MmUuLmU4ZWE1MzlkNTFhZjc2ZDk1YjgwYjQyMzQw
YzkwZGFhZDc2ZGVlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bnN0RG91YmxlVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERv
dWJsZVZhbHVlLmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29u
c3REb3VibGVWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CiAgICAgVmFsdWUqIGRvdWJsZVRvRmxvYXRD
b25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSogYWJzQ29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgVmFsdWUqIGNlaWxDb25zdGFudChQ
cm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKKyAgICBWYWx1ZSogZmxvb3JDb25zdGFudChQcm9j
ZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKICAgICBWYWx1ZSogc3FydENvbnN0YW50KFByb2NlZHVy
ZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVHJpU3RhdGUgZXF1YWxDb25zdGFudChjb25zdCBW
YWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0NvbnN0RmxvYXRWYWx1ZS5jcHAKaW5kZXggNDRmNjQwMzM3NmRjM2UyYzg3YTk2MTFhYmQy
MzFkMzM0YWNlZWQ0NS4uN2MxYjM5NWQ1MTQzMjdjMDhhMWEyY2NmYTE5ZWJiMTE5N2E4NWI1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdEZsb2F0VmFsdWUuY3BwCkBA
IC05Nyw2ICs5NywxMSBAQCBWYWx1ZSogQ29uc3RGbG9hdFZhbHVlOjpjZWlsQ29uc3RhbnQoUHJv
Y2VkdXJlJiBwcm9jKSBjb25zdAogICAgIHJldHVybiBwcm9jLmFkZDxDb25zdEZsb2F0VmFsdWU+
KG9yaWdpbigpLCBjZWlsZihtX3ZhbHVlKSk7CiB9CiAKK1ZhbHVlKiBDb25zdEZsb2F0VmFsdWU6
OmZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJiBwcm9jKSBjb25zdAoreworICAgIHJldHVybiBwcm9j
LmFkZDxDb25zdEZsb2F0VmFsdWU+KG9yaWdpbigpLCBmbG9vcmYobV92YWx1ZSkpOworfQorCiBW
YWx1ZSogQ29uc3RGbG9hdFZhbHVlOjpzcXJ0Q29uc3RhbnQoUHJvY2VkdXJlJiBwcm9jKSBjb25z
dAogewogICAgIHJldHVybiBwcm9jLmFkZDxDb25zdEZsb2F0VmFsdWU+KG9yaWdpbigpLCBzdGF0
aWNfY2FzdDxmbG9hdD4oc3FydChtX3ZhbHVlKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb25zdEZsb2F0VmFsdWUuaAppbmRleCA0NDBiZDYxODY1NmM0ZDYxMGMwYTNhMWFmZmUw
NmQ5NTAwNzVjY2JjLi4zNjY3M2NhZmU3MDY2MTZiZGJiZjJjYjVlZGRhNTQ2YjlhYTI5ODFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdEZsb2F0VmFsdWUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdEZsb2F0VmFsdWUuaApAQCAtNTEs
NiArNTEsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBDb25zdEZsb2F0VmFsdWUgOiBwdWJs
aWMgVmFsdWUgewogICAgIFZhbHVlKiBmbG9hdFRvRG91YmxlQ29uc3RhbnQoUHJvY2VkdXJlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgVmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIFZhbHVlKiBjZWlsQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgVmFsdWUqIGZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgVmFsdWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFj
cm9zQWZ0ZXJPcHRpbWl6YXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyTWFjcm9zQWZ0ZXJPcHRpbWl6YXRpb25zLmNwcAppbmRleCA1YjJkOTBiNjkxZjIzNzdlZmI5
Y2EzOWZkY2MzZDNiODNiYjYyYzZiLi5lMDNkNWY0MmMxNDA2OTJiMTE0MGExNWQ5MmMwZDc5OTBj
MTg3ODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jv
c0FmdGVyT3B0aW1pemF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
TG93ZXJNYWNyb3NBZnRlck9wdGltaXphdGlvbnMuY3BwCkBAIC04OCwxMyArODgsMTIgQEAgY2xh
c3MgTG93ZXJNYWNyb3MgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgY2FzZSBDZWlsOiB7Ci0gICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1i
bGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRDZWlsKCkpCisgICAgICAgICAgICAgICAgaWYgKE1h
Y3JvQXNzZW1ibGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZygpKQogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgIFZhbHVlKiBmdW5jdGlvbkFkZHJl
c3MgPSBudWxscHRyOwotICAgICAgICAgICAgICAgIGRvdWJsZSAoKmNlaWxEb3VibGUpKGRvdWJs
ZSkgPSBjZWlsOwogICAgICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT50eXBlKCkgPT0gRG91Ymxl
KQotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbkFkZHJlc3MgPSBtX2luc2VydGlvblNldC5p
bnNlcnQ8Q29uc3RQdHJWYWx1ZT4obV9pbmRleCwgbV9vcmlnaW4sIGNlaWxEb3VibGUpOworICAg
ICAgICAgICAgICAgICAgICBmdW5jdGlvbkFkZHJlc3MgPSBtX2luc2VydGlvblNldC5pbnNlcnQ8
Q29uc3RQdHJWYWx1ZT4obV9pbmRleCwgbV9vcmlnaW4sIGNlaWwpOwogICAgICAgICAgICAgICAg
IGVsc2UgaWYgKG1fdmFsdWUtPnR5cGUoKSA9PSBGbG9hdCkKICAgICAgICAgICAgICAgICAgICAg
ZnVuY3Rpb25BZGRyZXNzID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PENvbnN0UHRyVmFsdWU+KG1f
aW5kZXgsIG1fb3JpZ2luLCBjZWlsZik7CiAgICAgICAgICAgICAgICAgZWxzZQpAQCAtMTA5LDYg
KzEwOCwyNyBAQCBjbGFzcyBMb3dlck1hY3JvcyB7CiAgICAgICAgICAgICAgICAgbV92YWx1ZS0+
cmVwbGFjZVdpdGhJZGVudGl0eShyZXN1bHQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBGbG9vcjogeworICAgICAgICAgICAgICAgIGlm
IChNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKSkKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBWYWx1ZSogZnVuY3Rpb25B
ZGRyZXNzID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAobV92YWx1ZS0+dHlwZSgpID09
IERvdWJsZSkKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25BZGRyZXNzID0gbV9pbnNlcnRp
b25TZXQuaW5zZXJ0PENvbnN0UHRyVmFsdWU+KG1faW5kZXgsIG1fb3JpZ2luLCBmbG9vcik7Cisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAobV92YWx1ZS0+dHlwZSgpID09IEZsb2F0KQorICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbkFkZHJlc3MgPSBtX2luc2VydGlvblNldC5pbnNlcnQ8Q29u
c3RQdHJWYWx1ZT4obV9pbmRleCwgbV9vcmlnaW4sIGZsb29yZik7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
CisgICAgICAgICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxD
Q2FsbFZhbHVlPihtX2luZGV4LAorICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlLT50eXBlKCks
CisgICAgICAgICAgICAgICAgICAgIG1fb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBFZmZl
Y3RzOjpub25lKCksCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uQWRkcmVzcywKKyAgICAg
ICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIG1fdmFs
dWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgTmVnOiB7CiAgICAgICAgICAgICAgICAg
aWYgKCFpc0Zsb2F0KG1fdmFsdWUtPnR5cGUoKSkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCA3MTc1ZGU0
ZDQxM2E3MzI4ZDBjM2VlNjQ5ODM0Y2E2MGRjYjE5NGJjLi4xY2Q1NTdiN2QwMDkzOTBiOTJlNWY1
NDg0MjBkMmM1N2YwNGEzOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlclRvQWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRv
QWlyLmNwcApAQCAtMTgyNyw2ICsxODI3LDExIEBAIGNsYXNzIExvd2VyVG9BaXIgewogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBGbG9vcjogeworICAgICAg
ICAgICAgYXBwZW5kVW5PcDxBaXI6Ok9vcHMsIEFpcjo6T29wcywgRmxvb3JEb3VibGUsIEZsb29y
RmxvYXQ+KG1fdmFsdWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCiAgICAgICAgIGNhc2UgU3FydDogewogICAgICAgICAgICAgYXBwZW5kVW5PcDxBaXI6Ok9v
cHMsIEFpcjo6T29wcywgU3FydERvdWJsZSwgU3FydEZsb2F0PihtX3ZhbHVlLT5jaGlsZCgwKSk7
CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNPcGNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApp
bmRleCA3YzkyNWFkY2RiZWRkZmMxMTNiMzcwMThlZmJkMDBmYjFhNmI1MTM0Li5hZTBiOTQ4OGRm
Zjg0OTUwZWVkZDg4ZTk0NmFlYmRiOGNlNzMxOGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5jcHAKQEAgLTE2MSw2ICsxNjEsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgT3Bjb2RlIG9wY29kZSkKICAgICBjYXNlIENlaWw6CiAgICAgICAgIG91dC5w
cmludCgiQ2VpbCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBGbG9vcjoKKyAgICAgICAg
b3V0LnByaW50KCJGbG9vciIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTcXJ0OgogICAg
ICAgICBvdXQucHJpbnQoIlNxcnQiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNPcGNvZGUuaAppbmRleCA5ZDliZjE4Mjc1YjIxZTljZjBiODJlNzVjMjU2ZTliZWE2ZTM3
OWI0Li43NmI5MWI2MjRjNWY5MDQ2NGZkMGMwYjY2MGQzZjAwYjliNTkyMTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNPcGNvZGUuaApAQCAtOTcsNiArOTcsNyBAQCBlbnVtIE9wY29kZSA6IGlu
dDE2X3QgewogICAgIC8vIEZsb2F0aW5nIHBvaW50IG1hdGguCiAgICAgQWJzLAogICAgIENlaWws
CisgICAgRmxvb3IsCiAgICAgU3FydCwKIAogICAgIC8vIENhc3RzIGFuZCBzdWNoLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcAppbmRl
eCBjYjQxZjc0YmExYzM3NzNkZGNkM2JkM2ZhZTBkOTBlZmU3YjBlY2RhLi5kOGU0M2I0ZWViMDEw
NjI1NWM4OWJmNTM2YTYwMTI2ZjFiYTg3MmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcApAQCAtNTAsNiArNTAsNyBAQCB2b2lk
IGF0dGVtcHRTaW1wbGlmaWNhdGlvbihWYWx1ZSogY2FuZGlkYXRlKQogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEFiczoKICAgICBjYXNlIENlaWw6CisgICAgY2FzZSBGbG9vcjoKICAgICBjYXNl
IFNxcnQ6CiAgICAgICAgIGlmIChjYW5kaWRhdGUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBGbG9h
dFRvRG91YmxlKSB7CiAgICAgICAgICAgICBjYW5kaWRhdGUtPmNoaWxkKDApID0gY2FuZGlkYXRl
LT5jaGlsZCgwKS0+Y2hpbGQoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1
Y2VTdHJlbmd0aC5jcHAKaW5kZXggODNjYjIxZmI4MjUzNjgxZjZlYTE0YjVlYjBiNWYyNjkyNDg3
YzExYS4uNDM2M2I5ZTJjMjVlYzc4MzBkZmY5ZGE1MWIxZDUzMTEzMzZlMmEwOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcApAQCAtNTEwLDggKzUx
MCw3IEBAIGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgIC8vICAgIC0wICsgMCA9
IDAKICAgICAgICAgICAgIC8vICAgIC0wICsgLTAgPSAtMAogICAgICAgICAgICAgaWYgKG1fdmFs
dWUtPmNoaWxkKDEpLT5pc0ludCgwKSB8fCBtX3ZhbHVlLT5jaGlsZCgxKS0+aXNOZWdhdGl2ZVpl
cm8oKSkgewotICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkobV92
YWx1ZS0+Y2hpbGQoMCkpOwotICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgcmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKQEAgLTU2Niw4ICs1NjUsNyBAQCBj
bGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IE5lZyhOZWco
dmFsdWUpKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiB2YWx1ZQogICAgICAgICAgICAgaWYg
KG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBOZWcpIHsKLSAgICAgICAgICAgICAgICBt
X3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKSk7
Ci0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXBs
YWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTU5MSwxNiArNTg5
LDE0IEBAIGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgICAgICAvLyBOb3RlIHRo
YXQgd2UgZG9uJ3QgZG8gdGhpcyBmb3IgZG91YmxlcyBiZWNhdXNlIHRoYXQncyB3cm9uZy4gRm9y
IGV4YW1wbGUsIC0xICogMAogICAgICAgICAgICAgICAgIC8vIGFuZCAxICogMCB5aWVsZCBkaWZm
ZXJlbnQgcmVzdWx0cy4KICAgICAgICAgICAgICAgICBpZiAoIWZhY3RvcikgewotICAgICAgICAg
ICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDEp
KTsKLSAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgxKSk7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIC8v
IFR1cm4gdGhpczogTXVsKHZhbHVlLCAxKQogICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczog
dmFsdWUKICAgICAgICAgICAgICAgICBpZiAoZmFjdG9yID09IDEpIHsKLSAgICAgICAgICAgICAg
ICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAg
IHJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTYzMiw3ICs2MjgsNyBAQCBjbGFz
cyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBNdWwodmFs
dWUsIDEpCiAgICAgICAgICAgICAgICAgLy8gSW50byB0aGlzOiB2YWx1ZQogICAgICAgICAgICAg
ICAgIGlmIChmYWN0b3IgPT0gMSkgewotICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBs
YWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTY2MywxMyAr
NjU5LDEzIEBAIGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgICAgICAgICAgLy8g
SW50byB0aGlzOiAwCiAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBkbyB0aGlzIGJlY2F1
c2UgaXQncyBwcmVjaXNlbHkgY29ycmVjdCBmb3IgQ2hpbGxEaXYgYW5kIGZvciBEaXYgd2UKICAg
ICAgICAgICAgICAgICAgICAgLy8gYXJlIGFsbG93ZWQgdG8gZG8gd2hhdGV2ZXIgd2Ugd2FudC4K
LSAgICAgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVl
LT5jaGlsZCgxKSk7CisgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkobV92
YWx1ZS0+Y2hpbGQoMSkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAg
ICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBEaXYodmFs
dWUsIDEpCiAgICAgICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczogdmFsdWUKLSAgICAgICAg
ICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgw
KSk7CisgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hp
bGQoMCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CkBAIC03MTUsNyArNzExLDcgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydDxDb25zdDMyVmFsdWU+
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2luZGV4LCBtX3ZhbHVlLT5vcmln
aW4oKSwgbWFnaWMuc2hpZnQpKTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KAorICAgICAgICAgICAgICAgICAg
ICByZXBsYWNlV2l0aElkZW50aXR5KAogICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnNlcnRp
b25TZXQuaW5zZXJ0PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2luZGV4
LCBBZGQsIG1fdmFsdWUtPm9yaWdpbigpLCBtYWdpY1F1b3RpZW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oCkBAIC03MjQsOCArNzIw
LDYgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9pbmRleCwgbV92YWx1ZS0+b3JpZ2luKCksIDMxKSkpKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgbV9j
aGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtNzQ2LDcgKzc0MCw3IEBAIGNsYXNzIFJlZHVjZVN0cmVuZ3Ro
IHsKICAgICAgICAgICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBNb2QodmFsdWUsIDApCiAgICAg
ICAgICAgICAgICAgICAgIC8vIEludG8gdGhpczogMAogICAgICAgICAgICAgICAgICAgICAvLyBU
aGlzIGlzIGNvcnJlY3QgYWNjb3JkaW5nIHRvIENoaWxsTW9kIHNlbWFudGljcy4KLSAgICAgICAg
ICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgx
KSk7CisgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hp
bGQoMSkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CkBAIC03ODIsNyArNzc2LDcgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KAorICAgICAgICAgICAg
ICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KAogICAgICAgICAgICAgICAgICAgICAgICAgbV9p
bnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X2luZGV4LCBTdWIsIG1fdmFsdWUtPm9yaWdpbigpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fdmFsdWUtPmNoaWxkKDApLApAQCAtNzk0LDggKzc4OCw2IEBAIGNsYXNzIFJlZHVjZVN0
cmVuZ3RoIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQo
MSkpKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04MjYsMTYg
KzgxOCwxNCBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgICAgICAvLyBUdXJuIHRo
aXM6IEJpdEFuZCh2YWx1ZVgsIHZhbHVlWCkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogdmFs
dWVYLgogICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApID09IG1fdmFsdWUtPmNoaWxk
KDEpKSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3Zh
bHVlLT5jaGlsZCgwKSk7Ci0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0
aGlzOiBCaXRBbmQodmFsdWUsIHplcm8tY29uc3RhbnQpCiAgICAgICAgICAgICAvLyBJbnRvIHRo
aXM6IHplcm8tY29uc3RhbnQuCiAgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMSktPmlz
SW50KDApKSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eSht
X3ZhbHVlLT5jaGlsZCgxKSk7Ci0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDEpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApAQCAtODQzLDggKzgzMyw3IEBA
IGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgIC8vIEludG8gdGhpczogdmFsdWUu
CiAgICAgICAgICAgICBpZiAoKG1fdmFsdWUtPnR5cGUoKSA9PSBJbnQ2NCAmJiBtX3ZhbHVlLT5j
aGlsZCgxKS0+aXNJbnQoMHhmZmZmZmZmZmZmZmZmZmZmKSkKICAgICAgICAgICAgICAgICB8fCAo
bV92YWx1ZS0+dHlwZSgpID09IEludDMyICYmIG1fdmFsdWUtPmNoaWxkKDEpLT5pc0ludCgweGZm
ZmZmZmZmKSkpIHsKLSAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5
KG1fdmFsdWUtPmNoaWxkKDApKTsKLSAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQoMCkpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCkBAIC04NTQsOCArODQzLDcg
QEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAgICAgIFZhbHVlKiBuZXdWYWx1
ZSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1f
aW5kZXgsIFpFeHQzMiwgbV92YWx1ZS0+b3JpZ2luKCksCiAgICAgICAgICAgICAgICAgICAgIG1f
aW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4obV9pbmRleCwgVHJ1bmMsIG1fdmFsdWUtPm9yaWdp
bigpLCBtX3ZhbHVlLT5jaGlsZCgwKSkpOwotICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxh
Y2VXaXRoSWRlbnRpdHkobmV3VmFsdWUpOwotICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhJZGVudGl0eShuZXdWYWx1ZSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKQEAgLTkzMiwxNiArOTIwLDE0IEBA
IGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQml0T3Io
dmFsdWVYLCB2YWx1ZVgpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IHZhbHVlWC4KICAgICAg
ICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKSA9PSBtX3ZhbHVlLT5jaGlsZCgxKSkgewotICAg
ICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQo
MCkpOwotICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAg
cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQml0T3Io
dmFsdWUsIHplcm8tY29uc3RhbnQpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IHZhbHVlLgog
ICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDEpLT5pc0ludCgwKSkgewotICAgICAgICAg
ICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQoMCkpOwot
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcmVwbGFj
ZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAKQEAgLTk0OSw4ICs5MzUsNyBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0
aCB7CiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IGFsbC1vbmVzLgogICAgICAgICAgICAgaWYg
KChtX3ZhbHVlLT50eXBlKCkgPT0gSW50NjQgJiYgbV92YWx1ZS0+Y2hpbGQoMSktPmlzSW50KDB4
ZmZmZmZmZmZmZmZmZmZmZikpCiAgICAgICAgICAgICAgICAgfHwgKG1fdmFsdWUtPnR5cGUoKSA9
PSBJbnQzMiAmJiBtX3ZhbHVlLT5jaGlsZCgxKS0+aXNJbnQoMHhmZmZmZmZmZikpKSB7Ci0gICAg
ICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgx
KSk7Ci0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBy
ZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIApAQCAtOTk3LDggKzk4Miw3IEBAIGNsYXNzIFJlZHVjZVN0
cmVuZ3RoIHsKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQml0WG9yKHZhbHVlLCB6ZXJvLWNv
bnN0YW50KQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiB2YWx1ZS4KICAgICAgICAgICAgIGlm
IChtX3ZhbHVlLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAgICBtX3ZhbHVl
LT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKLSAgICAgICAgICAgICAg
ICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHko
bV92YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogCkBAIC0xMTAzLDcgKzEwODcsNyBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAg
ICAgICAvLyBUdXJuIHRoaXM6IEFicyhBYnModmFsdWUpKQogICAgICAgICAgICAgLy8gSW50byB0
aGlzOiBBYnModmFsdWUpCiAgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IEFicykgewotICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRp
dHkobV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRp
dHkobV92YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogCkBAIC0xMTIwLDcgKzExMDQsNyBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAg
ICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKSwKICAgICAgICAgICAg
ICAgICAgICAgbWFzayk7CiAgICAgICAgICAgICAgICAgVmFsdWUqIGNhc3QgPSBtX2luc2VydGlv
blNldC5pbnNlcnQ8VmFsdWU+KG1faW5kZXgsIEJpdHdpc2VDYXN0LCBtX3ZhbHVlLT5vcmlnaW4o
KSwgYml0QW5kKTsKLSAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5
KGNhc3QpOworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkoY2FzdCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAg
LTExMzMsMjAgKzExMTcsMjYgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBUdXJuIHRoaXM6IENl
aWwoQ2VpbCh2YWx1ZSkpCi0gICAgICAgICAgICAvLyBJbnRvIHRoaXM6IENlaWwodmFsdWUpCi0g
ICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IENlaWwpIHsKLSAg
ICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxk
KDApKTsKKyAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQ2VpbChyb3VuZGVkVmFsdWUpCisgICAg
ICAgICAgICAvLyBJbnRvIHRoaXM6IHJvdW5kZWRWYWx1ZQorICAgICAgICAgICAgaWYgKG1fdmFs
dWUtPmNoaWxkKDApLT5pc1JvdW5kZWQoKSkgeworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRo
SWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIC8vIFR1cm4gdGhp
czogQ2VpbChJVG9EKHZhbHVlKSkKLSAgICAgICAgICAgIC8vIEludG8gdGhpczogSVRvRCh2YWx1
ZSkKLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyBUaGF0IHdvcmtzIGZvciBJbnQ2NCBi
ZWNhdXNlIGJvdGggQVJNNjQgYW5kIHg4Nl82NAotICAgICAgICAgICAgLy8gcGVyZm9ybSByb3Vu
ZGluZyB3aGVuIGNvbnZlcnRpbmcgYSA2NGJpdCBpbnRlZ2VyIHRvIGRvdWJsZS4KLSAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gSVRvRCkgewotICAgICAgICAg
ICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQoMCkpOwor
ICAgICAgICBjYXNlIEZsb29yOgorICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBGbG9vcihjb25z
dGFudCkKKyAgICAgICAgICAgIC8vIEludG8gdGhpczogZmxvb3I8dmFsdWUtPnR5cGUoKT4oY29u
c3RhbnQpCisgICAgICAgICAgICBpZiAoVmFsdWUqIGNvbnN0YW50ID0gbV92YWx1ZS0+Y2hpbGQo
MCktPmZsb29yQ29uc3RhbnQobV9wcm9jKSkgeworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRo
TmV3VmFsdWUoY29uc3RhbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEZsb29yKHJvdW5kZWRWYWx1ZSkKKyAgICAg
ICAgICAgIC8vIEludG8gdGhpczogcm91bmRlZFZhbHVlCisgICAgICAgICAgICBpZiAobV92YWx1
ZS0+Y2hpbGQoMCktPmlzUm91bmRlZCgpKSB7CisgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhJ
ZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTExNzEsOCArMTE2MSw3IEBAIGNsYXNz
IFJlZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQml0d2lzZUNhc3Qo
Qml0d2lzZUNhc3QodmFsdWUpKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiB2YWx1ZQogICAg
ICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXR3aXNlQ2FzdCkg
ewotICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+
Y2hpbGQoMCktPmNoaWxkKDApKTsKLSAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDApKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMTIzOCw4ICsxMjI3LDcgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewog
ICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBTRXh0MTYoU0V4dDgodmFsdWUpKQogICAgICAgICAg
ICAgLy8gSW50byB0aGlzOiBTRXh0OCh2YWx1ZSkKICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5j
aGlsZCgwKS0+b3Bjb2RlKCkgPT0gU0V4dDgpIHsKLSAgICAgICAgICAgICAgICBtX3ZhbHVlLT5y
ZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKLSAgICAgICAgICAgICAgICBt
X2NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkobV92
YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
CkBAIC0xMzExLDggKzEyOTksNyBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgICAg
ICAvLyBUdXJuIHRoaXM6IFRydW5jKFNFeHQzMih2YWx1ZSkpIG9yIFRydW5jKFpFeHQzMih2YWx1
ZSkpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IHZhbHVlCiAgICAgICAgICAgICBpZiAobV92
YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IFNFeHQzMiB8fCBtX3ZhbHVlLT5jaGlsZCgwKS0+
b3Bjb2RlKCkgPT0gWkV4dDMyKSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdp
dGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCkpOwotICAgICAgICAgICAgICAg
IG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhJZGVudGl0eSht
X3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogCkBAIC0xMzUwLDggKzEzMzcsNyBAQCBjbGFzcyBSZWR1Y2VTdHJlbmd0aCB7
CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IERvdWJsZVRvRmxvYXQoRmxvYXRUb0RvdWJsZSh2
YWx1ZSkpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IHZhbHVlCiAgICAgICAgICAgICBpZiAo
bV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEZsb2F0VG9Eb3VibGUpIHsKLSAgICAgICAg
ICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKSk7Ci0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICByZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKQEAgLTEzNjcsOSArMTM1Myw4
IEBAIGNsYXNzIFJlZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU2Vs
ZWN0KGNvbnN0YW50LCBhLCBiKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBjb25zdGFudCA/
IGEgOiBiCiAgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPmhhc0ludDMyKCkpIHsK
LSAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KAorICAgICAgICAg
ICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkoCiAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWUt
PmNoaWxkKDApLT5hc0ludDMyKCkgPyBtX3ZhbHVlLT5jaGlsZCgxKSA6IG1fdmFsdWUtPmNoaWxk
KDIpKTsKLSAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogCkBAIC0xNDA3LDggKzEzOTIsNyBAQCBjbGFzcyBSZWR1
Y2VTdHJlbmd0aCB7CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IFNlbGVjdChzdHVmZiwgeCwg
eCkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogeAogICAgICAgICAgICAgaWYgKG1fdmFsdWUt
PmNoaWxkKDEpID09IG1fdmFsdWUtPmNoaWxkKDIpKSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1
ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgxKSk7Ci0gICAgICAgICAgICAg
ICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5
KG1fdmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTQ5MSw4ICsxNDc1LDcgQEAgY2xhc3MgUmVkdWNl
U3RyZW5ndGggewogICAgICAgICAgICAgLy8gVHVybiB0aGlzIEVxdWFsKGJvb2wsIDEpCiAgICAg
ICAgICAgICAvLyBJbnRvIHRoaXM6IGJvb2wKICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGls
ZCgwKS0+cmV0dXJuc0Jvb2woKSAmJiBtX3ZhbHVlLT5jaGlsZCgxKS0+aXNJbnQzMigxKSkgewot
ICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hp
bGQoMCkpOwotICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgcmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKQEAgLTE1MTEsOCArMTQ5NCw3IEBAIGNsYXNzIFJl
ZHVjZVN0cmVuZ3RoIHsKICAgICAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IE5vdEVxdWFsKGJv
b2wsIDApCiAgICAgICAgICAgICAgICAgLy8gSW50byB0aGlzOiBib29sCiAgICAgICAgICAgICAg
ICAgaWYgKG1fdmFsdWUtPmNoaWxkKDEpLT5pc0ludDMyKDApKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkobV92YWx1ZS0+Y2hpbGQoMCkpOwotICAg
ICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBy
ZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIApAQCAtMTYxMyw4
ICsxNTk1LDcgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAgaGFuZGxlQ29t
bXV0YXRpdml0eSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hp
bGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJ
ZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7Ci0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxk
KDApKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApAQCAtMTYzMyw4
ICsxNjE0LDcgQEAgY2xhc3MgUmVkdWNlU3RyZW5ndGggewogICAgICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAg
ICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgw
KSk7Ci0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBy
ZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDApKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIApAQCAtMTY2OSw4ICsxNjQ5LDcgQEAgY2xhc3MgUmVkdWNl
U3RyZW5ndGggewogICAgICAgICAgICAgICAgICAgICByZXBsYWNlV2l0aE5ld1ZhbHVlKG1fcHJv
Yy5hZGRJbnRDb25zdGFudChtX3ZhbHVlLCAwKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAgbV92YWx1ZS0+
cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRl
bnRpdHkobV92YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWUtPmFzPENo
ZWNrVmFsdWU+KCktPmNvbnZlcnRUb0FkZCgpOwpAQCAtMjExMCwxMiArMjA4OSwxNyBAQCBjbGFz
cyBSZWR1Y2VTdHJlbmd0aCB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHZv
aWQgcmVwbGFjZVdpdGhJZGVudGl0eShWYWx1ZSogbmV3VmFsdWUpCisgICAgeworICAgICAgICBt
X3ZhbHVlLT5yZXBsYWNlV2l0aElkZW50aXR5KG5ld1ZhbHVlKTsKKyAgICAgICAgbV9jaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICB9CisKICAgICBib29sIGhhbmRsZVNoaWZ0QW1vdW50KCkKICAgICB7CiAg
ICAgICAgIC8vIFNoaWZ0IGFueXRoaW5nIGJ5IHplcm8gaXMgaWRlbnRpdHkuCiAgICAgICAgIGlm
IChtX3ZhbHVlLT5jaGlsZCgxKS0+aXNJbnQzMigwKSkgewotICAgICAgICAgICAgbV92YWx1ZS0+
cmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5jaGlsZCgwKSk7Ci0gICAgICAgICAgICBtX2No
YW5nZWQgPSB0cnVlOworICAgICAgICAgICAgcmVwbGFjZVdpdGhJZGVudGl0eShtX3ZhbHVlLT5j
aGlsZCgwKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKaW5kZXggNDdhNDk0ZDJkMTQ0NDYyYjEyZGY3
MzJhYzFiNTcwYWY4MGUwOWE1Ny4uMjVmNTVjNmUzNzc1ODVkYmM1N2Y0ZTRlYTBhNmZjY2ZiMjIx
NjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcApAQCAtMjQxLDYg
KzI0MSw3IEBAIGNsYXNzIFZhbGlkYXRlciB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIEFiczoKICAgICAgICAgICAgIGNhc2UgQ2VpbDoKKyAgICAgICAgICAgIGNh
c2UgRmxvb3I6CiAgICAgICAgICAgICBjYXNlIFNxcnQ6CiAgICAgICAgICAgICAgICAgVkFMSURB
VEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAg
ICAgICAgICBWQUxJREFURShpc0Zsb2F0KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAi
LCAqdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAppbmRleCBjMDI4ZGFk
Y2IyYTMxZDU2MzI2YmY4MDIzZTFlYmI2NzNjODZmNTc3Li5kYjUyMzBlMGRlNWJkYzJjNjRlZTc4
YmFlNDQwZjQwMjUxZjMxOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCkBA
IC0yODcsNiArMjg3LDExIEBAIFZhbHVlKiBWYWx1ZTo6Y2VpbENvbnN0YW50KFByb2NlZHVyZSYp
IGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK1ZhbHVlKiBWYWx1ZTo6Zmxvb3JDb25z
dGFudChQcm9jZWR1cmUmKSBjb25zdAoreworICAgIHJldHVybiBudWxscHRyOworfQorCiBWYWx1
ZSogVmFsdWU6OnNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdAogewogICAgIHJldHVybiBu
dWxscHRyOwpAQCAtMzU2LDYgKzM2MSwxOCBAQCBWYWx1ZSogVmFsdWU6OmludmVydGVkQ29tcGFy
ZShQcm9jZWR1cmUmIHByb2MpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2Jvb2wg
VmFsdWU6OmlzUm91bmRlZCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChvcGNvZGUoKSkgeworICAg
IGNhc2UgRmxvb3I6CisgICAgY2FzZSBDZWlsOgorICAgIGNhc2UgSVRvRDoKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30K
KwogYm9vbCBWYWx1ZTo6cmV0dXJuc0Jvb2woKSBjb25zdAogewogICAgIGlmICh0eXBlKCkgIT0g
SW50MzIpCkBAIC00MzIsNiArNDQ5LDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0
CiAgICAgY2FzZSBDbHo6CiAgICAgY2FzZSBBYnM6CiAgICAgY2FzZSBDZWlsOgorICAgIGNhc2Ug
Rmxvb3I6CiAgICAgY2FzZSBTcXJ0OgogICAgIGNhc2UgQml0d2lzZUNhc3Q6CiAgICAgY2FzZSBT
RXh0ODoKQEAgLTUxNCw2ICs1MzIsNyBAQCBWYWx1ZUtleSBWYWx1ZTo6a2V5KCkgY29uc3QKICAg
ICBjYXNlIElkZW50aXR5OgogICAgIGNhc2UgQWJzOgogICAgIGNhc2UgQ2VpbDoKKyAgICBjYXNl
IEZsb29yOgogICAgIGNhc2UgU3FydDoKICAgICBjYXNlIFNFeHQ4OgogICAgIGNhc2UgU0V4dDE2
OgpAQCAtNjI5LDYgKzY0OCw3IEBAIFR5cGUgVmFsdWU6OnR5cGVGb3IoT3Bjb2RlIG9wY29kZSwg
VmFsdWUqIGZpcnN0Q2hpbGQsIFZhbHVlKiBzZWNvbmRDaGlsZCkKICAgICBjYXNlIENsejoKICAg
ICBjYXNlIEFiczoKICAgICBjYXNlIENlaWw6CisgICAgY2FzZSBGbG9vcjoKICAgICBjYXNlIFNx
cnQ6CiAgICAgY2FzZSBDaGVja0FkZDoKICAgICBjYXNlIENoZWNrU3ViOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbHVlLmgKaW5kZXggY2JiZjYzYzBhNjVhMzkxNjYwOGNhZTNhNjdlODg1MDliOWEz
Y2YwMy4uOTgxZjAwN2FmODhmNGYyOGI0ZTZlZmNlMWQxMWY0ZTZjZjJmNjcxNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5oCkBAIC0xMzcsNiArMTM3LDcgQEAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgVmFsdWUgewogICAgIHZpcnR1YWwgVmFsdWUqIGZsb2F0VG9Eb3VibGVDb25zdGFu
dChQcm9jZWR1cmUmKSBjb25zdDsKICAgICB2aXJ0dWFsIFZhbHVlKiBhYnNDb25zdGFudChQcm9j
ZWR1cmUmKSBjb25zdDsKICAgICB2aXJ0dWFsIFZhbHVlKiBjZWlsQ29uc3RhbnQoUHJvY2VkdXJl
JikgY29uc3Q7CisgICAgdmlydHVhbCBWYWx1ZSogZmxvb3JDb25zdGFudChQcm9jZWR1cmUmKSBj
b25zdDsKICAgICB2aXJ0dWFsIFZhbHVlKiBzcXJ0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVy
KSBjb25zdDsKQEAgLTE5MCw2ICsxOTEsOCBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBWYWx1
ZSB7CiAKICAgICBib29sIGlzTmVnYXRpdmVaZXJvKCkgY29uc3Q7CiAKKyAgICBib29sIGlzUm91
bmRlZCgpIGNvbnN0OworCiAgICAgVHJpU3RhdGUgYXNUcmlTdGF0ZSgpIGNvbnN0OwogICAgIGJv
b2wgaXNMaWtlWmVybygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBGYWxzZVRyaVN0
YXRlOyB9CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0
ZSgpID09IFRydWVUcmlTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwCmluZGV4IGI0ODkz
MDhkZDhhNDcwMzE2ZDYzMzNlMjg1ZWI0ZTIyNDg2ZmE4NTUuLmMzNjQwZDYwZjk5NDE2M2U3ODg5
OTQ1MWI2NjE0MGY0NWZlMGFhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAKQEAgLTU0LDYg
KzU0LDggQEAgYm9vbCBoYXNQYXJ0aWFsWG1tUmVnVXBkYXRlKGNvbnN0IEluc3QmIGluc3QpCiAg
ICAgY2FzZSBTcXJ0RmxvYXQ6CiAgICAgY2FzZSBDZWlsRG91YmxlOgogICAgIGNhc2UgQ2VpbEZs
b2F0OgorICAgIGNhc2UgRmxvb3JEb3VibGU6CisgICAgY2FzZSBGbG9vckZsb2F0OgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IDViNTA2ZDhkMWQw
NTM3NTgxZDljY2U5NTFjMzg1NTk3YmMxNWUwMTkuLjFjZjkxYzJjNGJkYWM5YTQ1Mjk5Yzk1ODM4
YjNkMmI4OWJjMGQxNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJP
cGNvZGUub3Bjb2RlcwpAQCAtNDMyLDYgKzQzMiwxNCBAQCBDZWlsRmxvYXQgVTpGOjMyLCBEOkY6
MzIKICAgICBUbXAsIFRtcAogICAgIHg4NjogQWRkciwgVG1wCiAKK0Zsb29yRG91YmxlIFU6Rjo2
NCwgRDpGOjY0CisgICAgVG1wLCBUbXAKKyAgICB4ODY6IEFkZHIsIFRtcAorCitGbG9vckZsb2F0
IFU6RjozMiwgRDpGOjMyCisgICAgVG1wLCBUbXAKKyAgICB4ODY6IEFkZHIsIFRtcAorCiBTcXJ0
RG91YmxlIFU6Rjo2NCwgRDpGOjY0CiAgICAgVG1wLCBUbXAKICAgICB4ODY6IEFkZHIsIFRtcApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAppbmRleCA2MzE1NDNlNjJiZWU3MzdmOGRkNDcw
YzZiMmFmNGRkMGI4ZWM1NDdmLi4wNzRkOTFjZjRkZDdmODgxNDI0Y2FmYWRlMzIyZGM5ZWFlYTBm
YjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcApAQCAtMzM3Nyw2ICszMzc3LDE4
IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGRvdWJsZSBhKQogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwogfQogCit2b2lkIHRl
c3RGbG9vckNlaWxBcmcoZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogZmlyc3RDZWlsID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApKTsKKyAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOworICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxv
b3IpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2Ms
IGEpLCBjZWlsKGEpKSk7Cit9CisKIHZvaWQgdGVzdENlaWxJVG9ENjQoaW50NjRfdCBhKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMzQ1OSw2ICszNDcxLDIwIEBAIHZvaWQgdGVzdENlaWxD
ZWlsQXJnKGZsb2F0IGEpCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9h
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgY2VpbGYoYSkpKTsKIH0KIAordm9p
ZCB0ZXN0Rmxvb3JDZWlsQXJnKGZsb2F0IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAorICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOworICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKKyAgICBW
YWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmln
aW4oKSwgYXJndW1lbnQpOworICAgIFZhbHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdG
bG9vcik7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWlsZihhKSkpOworfQorCiB2b2lkIHRlc3RD
ZWlsQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKGZsb2F0IGEpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CkBAIC0zNDk2LDYgKzM1MjIsMjAxIEBAIHZvaWQgdGVzdENlaWxBcmdXaXRoRWZm
ZWN0ZnVsRG91YmxlQ29udmVyc2lvbihmbG9hdCBhKQogICAgIENIRUNLKGlzSWRlbnRpY2FsKGVm
ZmVjdCwgY2VpbGYoYSkpKTsKIH0KIAordm9pZCB0ZXN0Rmxvb3JBcmcoZG91YmxlIGEpCit7Cisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIEZsb29yLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCkpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9j
LCBhKSwgZmxvb3IoYSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JJbW0oZG91YmxlIGEpCit7Cisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKKworICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgZmxvb3IoYSkpKTsKK30K
Kwordm9pZCB0ZXN0Rmxvb3JNZW0oZG91YmxlIGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7Cisg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRk
cmVzcyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJmEpLCBmbG9vcihhKSkpOworfQorCit2b2lkIHRl
c3RGbG9vckZsb29yQXJnKGRvdWJsZSBhKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGZpcnN0Rmxvb3Ig
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjApKTsKKyAgICBWYWx1ZSogc2Vjb25kRmxvb3IgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7CisgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxv
b3IpOworCisgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2Ms
IGEpLCBmbG9vcihhKSkpOworfQorCit2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZG91YmxlIGEpCit7
CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvb3IsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOworICAgIFZhbHVl
KiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdp
bigpLCBmaXJzdEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworCisgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOworfQorCit2b2lk
IHRlc3RGbG9vcklUb0Q2NChpbnQ2NF90IGEpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CisgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CisKKyAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2lu
KCksIGFyZ3VtZW50QXNEb3VibGUpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPihhKSkpKTsK
K30KKwordm9pZCB0ZXN0Rmxvb3JJVG9EMzIoaW50NjRfdCBhKQoreworICAgIFByb2NlZHVyZSBw
cm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7
CisKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9v
ciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3Ioc3RhdGljX2Nhc3Q8ZG91Ymxl
PihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmcoZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1
cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIFZh
bHVlKiBhcmd1bWVudDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MzIpOworICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKworICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JJbW0oZmxvYXQgYSkKK3sKKyAgICBQ
cm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwor
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihmbG9vcmYoYSkpKSk7Cit9CisKK3ZvaWQgdGVzdEZsb29yTWVtKGZsb2F0IGEp
Cit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBNZW1v
cnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOworICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKKyAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisKKyAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGZsb29yZihhKSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQor
eworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CisgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgIFZhbHVl
KiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLCBmaXJzdEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisKKyAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBm
bG9vcmYoYSkpKTsKK30KKwordm9pZCB0ZXN0Q2VpbEZsb29yQXJnKGZsb2F0IGEpCit7CisgICAg
UHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBWYWx1ZSogYXJndW1lbnQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDMyKTsKKyAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CisgICAgVmFsdWUqIHdyYXBw
aW5nQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZp
cnN0Rmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CisKKyAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYo
YSkpKTsKK30KKwordm9pZCB0ZXN0Rmxvb3JBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24o
ZmxvYXQgYSkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOworICAgIFZhbHVlKiBhcmd1bWVudDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CisgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CisgICAgVmFsdWUqIGFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSk7CisgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvb3IsIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKworICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKK30K
Kwordm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbihmbG9hdCBh
KQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZ3VtZW50MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBW
YWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKKyAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVl
KTsKKyAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9v
ciwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
CisgICAgZG91YmxlIGVmZmVjdCA9IDA7CisgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0
KTsKKyAgICBDSEVDSyhpc0lkZW50aWNhbChyZXN1bHRWYWx1ZSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGZsb29yZihhKSkpKTsKKyAgICBDSEVDSyhpc0lkZW50aWNhbChlZmZlY3QsIGZsb29yZihh
KSkpOworfQorCiB2b2lkIHRlc3RTcXJ0QXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwpAQCAtMTExNDIsMTUgKzExMzYzLDMyIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRl
cikKICAgICBSVU5fVU5BUlkodGVzdENlaWxJbW0sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3Vi
bGU+KCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbE1lbSwgZmxvYXRpbmdQb2ludE9wZXJhbmRz
PGRvdWJsZT4oKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDZWlsQ2VpbEFyZywgZmxvYXRpbmdQb2lu
dE9wZXJhbmRzPGRvdWJsZT4oKSk7CisgICAgUlVOX1VOQVJZKHRlc3RGbG9vckNlaWxBcmcsIGZs
b2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbElU
b0Q2NCwgaW50NjRPcGVyYW5kcygpKTsKICAgICBSVU5fVU5BUlkodGVzdENlaWxJVG9EMzIsIGlu
dDMyT3BlcmFuZHMoKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDZWlsQXJnLCBmbG9hdGluZ1BvaW50
T3BlcmFuZHM8ZmxvYXQ+KCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbEltbSwgZmxvYXRpbmdQ
b2ludE9wZXJhbmRzPGZsb2F0PigpKTsKICAgICBSVU5fVU5BUlkodGVzdENlaWxNZW0sIGZsb2F0
aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDZWlsQ2VpbEFy
ZywgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZs
b29yQ2VpbEFyZywgZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKTsKICAgICBSVU5fVU5B
UlkodGVzdENlaWxBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24sIGZsb2F0aW5nUG9pbnRP
cGVyYW5kczxmbG9hdD4oKSk7CiAgICAgUlVOX1VOQVJZKHRlc3RDZWlsQXJnV2l0aEVmZmVjdGZ1
bERvdWJsZUNvbnZlcnNpb24sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CiAKKyAg
ICBSVU5fVU5BUlkodGVzdEZsb29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigp
KTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29ySW1tLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91
YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29yTWVtLCBmbG9hdGluZ1BvaW50T3BlcmFu
ZHM8ZG91YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29yRmxvb3JBcmcsIGZsb2F0aW5n
UG9pbnRPcGVyYW5kczxkb3VibGU+KCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Q2VpbEZsb29yQXJn
LCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZs
b29ySVRvRDY0LCBpbnQ2NE9wZXJhbmRzKCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Rmxvb3JJVG9E
MzIsIGludDMyT3BlcmFuZHMoKSk7CisgICAgUlVOX1VOQVJZKHRlc3RGbG9vckFyZywgZmxvYXRp
bmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKTsKKyAgICBSVU5fVU5BUlkodGVzdEZsb29ySW1tLCBm
bG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOworICAgIFJVTl9VTkFSWSh0ZXN0Rmxvb3JN
ZW0sIGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CisgICAgUlVOX1VOQVJZKHRlc3RG
bG9vckZsb29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOworICAgIFJVTl9V
TkFSWSh0ZXN0Q2VpbEZsb29yQXJnLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpOwor
ICAgIFJVTl9VTkFSWSh0ZXN0Rmxvb3JBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24sIGZs
b2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSk7CisgICAgUlVOX1VOQVJZKHRlc3RGbG9vckFy
Z1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uLCBmbG9hdGluZ1BvaW50T3BlcmFuZHM8Zmxv
YXQ+KCkpOworCiAgICAgUlVOX1VOQVJZKHRlc3RTcXJ0QXJnLCBmbG9hdGluZ1BvaW50T3BlcmFu
ZHM8ZG91YmxlPigpKTsKICAgICBSVU5fVU5BUlkodGVzdFNxcnRJbW0sIGZsb2F0aW5nUG9pbnRP
cGVyYW5kczxkb3VibGU+KCkpOwogICAgIFJVTl9VTkFSWSh0ZXN0U3FydE1lbSwgZmxvYXRpbmdQ
b2ludE9wZXJhbmRzPGRvdWJsZT4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggZDdjMWJmZjg0
M2NlNDg1OTM2NWM1YTE0ODRmZmJhNjZiNmU5MzRhYi4uYTU0MWVmMmUyMjQ2NDczNTk0ODJlODM1
ZDdlYzAwNGUyYWVkOWVlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtODMzLDEwICs4MzMsMjAg
QEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBBcml0aFJvdW5kOiB7CisgICAg
Y2FzZSBBcml0aFJvdW5kOgorICAgIGNhc2UgQXJpdGhGbG9vcjoKKyAgICBjYXNlIEFyaXRoQ2Vp
bDogewogICAgICAgICBKU1ZhbHVlIG9wZXJhbmQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52
YWx1ZSgpOwogICAgICAgICBpZiAob3BlcmFuZCAmJiBvcGVyYW5kLmlzTnVtYmVyKCkpIHsKLSAg
ICAgICAgICAgIGRvdWJsZSByb3VuZGVkVmFsdWUgPSBqc1JvdW5kKG9wZXJhbmQuYXNOdW1iZXIo
KSk7CisgICAgICAgICAgICBkb3VibGUgcm91bmRlZFZhbHVlID0gMDsKKyAgICAgICAgICAgIGlm
IChub2RlLT5vcCgpID09IEFyaXRoUm91bmQpCisgICAgICAgICAgICAgICAgcm91bmRlZFZhbHVl
ID0ganNSb3VuZChvcGVyYW5kLmFzTnVtYmVyKCkpOworICAgICAgICAgICAgZWxzZSBpZiAobm9k
ZS0+b3AoKSA9PSBBcml0aEZsb29yKQorICAgICAgICAgICAgICAgIHJvdW5kZWRWYWx1ZSA9IGZs
b29yKG9wZXJhbmQuYXNOdW1iZXIoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBBcml0aENlaWwpOworICAgICAgICAgICAgICAgIHJv
dW5kZWRWYWx1ZSA9IGNlaWwob3BlcmFuZC5hc051bWJlcigpKTsKKyAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgaWYgKHByb2R1Y2VzSW50ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgp
KSkgewogICAgICAgICAgICAgICAgIGludDMyX3Qgcm91bmRlZFZhbHVlQXNJbnQzMiA9IHN0YXRp
Y19jYXN0PGludDMyX3Q+KHJvdW5kZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0FyaXRoTW9kZS5jcHAKaW5kZXggYzFkZmU3ZjgwMWY3NzZiZWQ5ZGRmNTk1MDZlOWJlNTg0
N2I4OTY0OS4uODRkZGFlMTkyYWRjNGZmNDZmMTFiZjg0NzVjZGEzNGY5ZWE1ODM5YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcml0aE1vZGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJpdGhNb2RlLmNwcApAQCAtNTUsNiArNTUsMjIg
QEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6REZHOjpBcml0aDo6
TW9kZSBtb2RlKQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQg
cHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkRGRzo6QXJpdGg6OlJvdW5kaW5n
TW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgSlNDOjpERkc6OkFy
aXRoOjpSb3VuZGluZ01vZGU6OkludDMyOgorICAgICAgICBvdXQucHJpbnQoIkludDMyIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6REZHOjpBcml0aDo6Um91bmRpbmdNb2RlOjpJ
bnQzMldpdGhOZWdhdGl2ZVplcm9DaGVjazoKKyAgICAgICAgb3V0LnByaW50KCJJbnQzMldpdGhO
ZWdhdGl2ZVplcm9DaGVjayIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OkRGRzo6
QXJpdGg6OlJvdW5kaW5nTW9kZTo6RG91YmxlOgorICAgICAgICBvdXQucHJpbnQoIkRvdWJsZSIp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyaXRoTW9kZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcml0aE1vZGUuaAppbmRleCA0ZTA5YWMzZTkz
YWI3ZjY2YTM5ZGVhNGI4Mzg0NjIxNWFhYWEyMDJmLi5hZWNmZTNlMThmYzM5ZDRmOTRhMzk3Mjc2
Yzg2Zjg0OTNiMTExMTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0FyaXRoTW9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJpdGhNb2Rl
LmgKQEAgLTE0Niw2ICsxNDYsNyBAQCBpbmxpbmUgYm9vbCBzaG91bGRDaGVja05lZ2F0aXZlWmVy
byhBcml0aDo6Um91bmRpbmdNb2RlIG1vZGUpCiAKIGNsYXNzIFByaW50U3RyZWFtOwogdm9pZCBw
cmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpERkc6OkFyaXRoOjpNb2RlKTsKK3ZvaWQg
cHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6REZHOjpBcml0aDo6Um91bmRpbmdNb2Rl
KTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggOGVkYTQzOWQ1MzMzZDdmNTRmNzNjNTgyZjkw
M2QzNjQ4NmU4ZGEwNi4uODhlNmM5NDlmYWQxMjlhZmUxZGZjNDg1YzllMzNkMTAxYmEwNzllOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
QEAgLTIxODgsNyArMjE4OCw5IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNp
Y0NhbGwoaW50IHJlc3VsdE9wZXJhbmQsIEludHJpbnNpYyBpbnRyaW5zaWMsCiAgICAgICAgIAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgY2FzZSBSb3VuZEludHJpbnNpYzogewor
ICAgIGNhc2UgUm91bmRJbnRyaW5zaWM6CisgICAgY2FzZSBGbG9vckludHJpbnNpYzoKKyAgICBj
YXNlIENlaWxJbnRyaW5zaWM6IHsKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzID09IDEpIHsKICAgICAgICAgICAgIGluc2VydENoZWNrcygpOwogICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgYWRkVG9HcmFwaChKU0NvbnN0YW50LCBP
cEluZm8obV9jb25zdGFudE5hTikpKTsKQEAgLTIxOTcsNyArMjE5OSwxNiBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKGludCByZXN1bHRPcGVyYW5kLCBJbnRyaW5z
aWMgaW50cmluc2ljLAogICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPT0g
MikgewogICAgICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CiAgICAgICAgICAgICBOb2RlKiBvcGVy
YW5kID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSk7
Ci0gICAgICAgICAgICBOb2RlKiByb3VuZE5vZGUgPSBhZGRUb0dyYXBoKEFyaXRoUm91bmQsIE9w
SW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBvcGVyYW5kKTsKKyAgICAgICAgICAgIE5vZGVU
eXBlIG9wOworICAgICAgICAgICAgaWYgKGludHJpbnNpYyA9PSBSb3VuZEludHJpbnNpYykKKyAg
ICAgICAgICAgICAgICBvcCA9IEFyaXRoUm91bmQ7CisgICAgICAgICAgICBlbHNlIGlmIChpbnRy
aW5zaWMgPT0gRmxvb3JJbnRyaW5zaWMpCisgICAgICAgICAgICAgICAgb3AgPSBBcml0aEZsb29y
OworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGludHJpbnNpYyA9
PSBDZWlsSW50cmluc2ljKTsKKyAgICAgICAgICAgICAgICBvcCA9IEFyaXRoQ2VpbDsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIHJvdW5kTm9kZSA9IGFkZFRvR3JhcGgob3AsIE9w
SW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBvcGVyYW5kKTsKICAgICAgICAgICAgIHNldChW
aXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksIHJvdW5kTm9kZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaAppbmRleCAzNDNhNmRlOWMyOTA5YjkzZTA1MjhjZjAyNzg0YWFkOTRkMDFiNGQxLi40
NTgwODZlNDViNGUwNzIwOGQ1NTA1MjkyMWM0MGI4Mjg3M2UzNDY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMjk3LDYgKzI5Nyw4IEBAIHZvaWQgY2xv
YmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFk
LCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIH0KIAogICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAgICBj
YXNlIEFyaXRoRmxvb3I6CisgICAgY2FzZSBBcml0aENlaWw6CiAgICAgICAgIGRlZihQdXJlVmFs
dWUobm9kZSwgc3RhdGljX2Nhc3Q8dWludHB0cl90Pihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgp
KSkpOwogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcAppbmRleCA3MDJkYTViZjFlN2MwZjFjOGZlNTVjNjQ4NDQ1OGZjYWQ4MWUyYWE1Li40NTIx
YWRiYzBkZGZhNTkwNmJiOWY4NjNmMGExZTg3MWYxMjBjMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC04Nyw2ICs4Nyw4IEBAIGJvb2wgZG9lc0dDKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEFyaXRoU3FydDoKICAgICBjYXNlIEFyaXRo
UmFuZG9tOgogICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAgICBjYXNlIEFyaXRoRmxvb3I6CisgICAg
Y2FzZSBBcml0aENlaWw6CiAgICAgY2FzZSBBcml0aEZSb3VuZDoKICAgICBjYXNlIEFyaXRoU2lu
OgogICAgIGNhc2UgQXJpdGhDb3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAppbmRleCAyMjY1YzEwMGU4ZmRlNzE4ODJjMTExYTJlYWFjM2ZmMDQwYmM3OTZi
Li5mMDFjMTQ2YmE5NjMxMjhhZjQ0ZjVmMTgxMzQ4NDNjZTE3OThhM2RhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTM2Myw3ICszNjMsOSBAQCBj
bGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAKLSAgICAgICAgY2FzZSBBcml0aFJvdW5kOiB7CisgICAgICAgIGNhc2UgQXJpdGhS
b3VuZDoKKyAgICAgICAgY2FzZSBBcml0aEZsb29yOgorICAgICAgICBjYXNlIEFyaXRoQ2VpbDog
ewogICAgICAgICAgICAgaWYgKG1fZ3JhcGgudW5hcnlBcml0aFNob3VsZFNwZWN1bGF0ZUludDMy
KG5vZGUsIEZpeHVwUGFzcykpIHsKICAgICAgICAgICAgICAgICBmaXhJbnRPckJvb2xlYW5FZGdl
KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBpbnNlcnRDaGVjazxJbnQzMlVzZT4o
bV9pbmRleEluQmxvY2ssIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguY3BwCmluZGV4IDRjOWEzOGIxOTFhYTQ4YTYwMWQ1OGNiMTc2NDdiOTA2
MjU0MmZmYzAuLjU0MWM4NGViYjExMTc0MzBjODkyYjZmMzliNjBlNGViZjZkMWI2MjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCkBAIC0yMjIsNiArMjIyLDggQEAgdm9p
ZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBjaGFyKiBwcmVmaXgsIE5vZGUq
IG5vZGUsIER1bXBDb250ZXh0KgogICAgICAgICBvdXQucHJpbnQoY29tbWEsIG5vZGUtPmFycmF5
TW9kZSgpKTsKICAgICBpZiAobm9kZS0+aGFzQXJpdGhNb2RlKCkpCiAgICAgICAgIG91dC5wcmlu
dChjb21tYSwgbm9kZS0+YXJpdGhNb2RlKCkpOworICAgIGlmIChub2RlLT5oYXNBcml0aFJvdW5k
aW5nTW9kZSgpKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJSb3VuZGluZzoiLCBub2RlLT5h
cml0aFJvdW5kaW5nTW9kZSgpKTsKICAgICBpZiAobm9kZS0+aGFzU2NvcGVPZmZzZXQoKSkKICAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCBub2RlLT5zY29wZU9mZnNldCgpKTsKICAgICBpZiAobm9k
ZS0+aGFzRGlyZWN0QXJndW1lbnRzT2Zmc2V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgKaW5kZXggNjBkMTQ2YjMwNGM1NmZjYzUzZGQ3YzY4OGEyMDM3OWQyYjM1OGJmZi4uMWE0
ZTJmN2RkYjRjNzIyYWM4OWVmNmM0NWU5NmEwY2RkYTg4YTMxNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguaApAQCAtMzE2LDcgKzMxNiw3IEBAIGNsYXNzIEdyYXBoIDogcHVibGlj
IHZpcnR1YWwgU2Nhbm5hYmxlIHsKIAogICAgIGJvb2wgcm91bmRTaG91bGRTcGVjdWxhdGVJbnQz
MihOb2RlKiBhcml0aFJvdW5kLCBQcmVkaWN0aW9uUGFzcyBwYXNzKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKGFyaXRoUm91bmQtPm9wKCkgPT0gQXJpdGhSb3VuZCk7CisgICAgICAgIEFTU0VSVChh
cml0aFJvdW5kLT5vcCgpID09IEFyaXRoUm91bmQgfHwgYXJpdGhSb3VuZC0+b3AoKSA9PSBBcml0
aEZsb29yIHx8IGFyaXRoUm91bmQtPm9wKCkgPT0gQXJpdGhDZWlsKTsKICAgICAgICAgcmV0dXJu
IGFyaXRoUm91bmQtPmNhblNwZWN1bGF0ZUludDMyKHBhc3MpICYmICFoYXNFeGl0U2l0ZShhcml0
aFJvdW5kLT5vcmlnaW4uc2VtYW50aWMsIE92ZXJmbG93KSAmJiAhaGFzRXhpdFNpdGUoYXJpdGhS
b3VuZC0+b3JpZ2luLnNlbWFudGljLCBOZWdhdGl2ZVplcm8pOwogICAgIH0KICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNzYxMjg5NjMzYWEyOWY0OTFjOWMxNmY1NzY5
YmUwOWFkMGYxZDdiOC4uZDk2M2M0NmE5Zjg4YjdlZjBiODQ1MjRjM2M4ZmJhMjViMDEzY2U1YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTkyOCw3ICs5MjgsNyBAQCBzdHJ1
Y3QgTm9kZSB7CiAgICAgTm9kZUZsYWdzIGFyaXRoTm9kZUZsYWdzKCkKICAgICB7CiAgICAgICAg
IE5vZGVGbGFncyByZXN1bHQgPSBtX2ZsYWdzICYgTm9kZUFyaXRoRmxhZ3NNYXNrOwotICAgICAg
ICBpZiAob3AoKSA9PSBBcml0aE11bCB8fCBvcCgpID09IEFyaXRoRGl2IHx8IG9wKCkgPT0gQXJp
dGhNb2QgfHwgb3AoKSA9PSBBcml0aE5lZ2F0ZSB8fCBvcCgpID09IEFyaXRoUG93IHx8IG9wKCkg
PT0gQXJpdGhSb3VuZCB8fCBvcCgpID09IERvdWJsZUFzSW50MzIpCisgICAgICAgIGlmIChvcCgp
ID09IEFyaXRoTXVsIHx8IG9wKCkgPT0gQXJpdGhEaXYgfHwgb3AoKSA9PSBBcml0aE1vZCB8fCBv
cCgpID09IEFyaXRoTmVnYXRlIHx8IG9wKCkgPT0gQXJpdGhQb3cgfHwgb3AoKSA9PSBBcml0aFJv
dW5kIHx8IG9wKCkgPT0gQXJpdGhGbG9vciB8fCBvcCgpID09IEFyaXRoQ2VpbCB8fCBvcCgpID09
IERvdWJsZUFzSW50MzIpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICByZXR1
cm4gcmVzdWx0ICYgfk5vZGVCeXRlY29kZU5lZWRzTmVnWmVybzsKICAgICB9CkBAIC0xMzMxLDYg
KzEzMzEsOCBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsK
ICAgICAgICAgY2FzZSBBcml0aFJvdW5kOgorICAgICAgICBjYXNlIEFyaXRoRmxvb3I6CisgICAg
ICAgIGNhc2UgQXJpdGhDZWlsOgogICAgICAgICBjYXNlIEdldERpcmVjdFBuYW1lOgogICAgICAg
ICBjYXNlIEdldEJ5SWQ6CiAgICAgICAgIGNhc2UgR2V0QnlJZEZsdXNoOgpAQCAtMTcxMiw3ICsx
NzE0LDcgQEAgc3RydWN0IE5vZGUgewogCiAgICAgYm9vbCBoYXNBcml0aFJvdW5kaW5nTW9kZSgp
CiAgICAgewotICAgICAgICByZXR1cm4gb3AoKSA9PSBBcml0aFJvdW5kOworICAgICAgICByZXR1
cm4gb3AoKSA9PSBBcml0aFJvdW5kIHx8IG9wKCkgPT0gQXJpdGhGbG9vciB8fCBvcCgpID09IEFy
aXRoQ2VpbDsKICAgICB9CiAKICAgICBBcml0aDo6Um91bmRpbmdNb2RlIGFyaXRoUm91bmRpbmdN
b2RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBkZGQwYjk3
Y2IyZmU2OTI2MDQ1MTAzZjhhNzEwNzAwNDgyZTlmNmJkLi43MWMwNzVhNGNkYTBkMWIxZjJhZDY1
N2Y4YWExODYxOWNmMmQyYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCkBAIC0xNTQsNiArMTU0LDggQEAKICAgICBtYWNybyhBcml0aFBvdywgTm9kZVJlc3VsdE51
bWJlcikgXAogICAgIG1hY3JvKEFyaXRoUmFuZG9tLCBOb2RlUmVzdWx0RG91YmxlIHwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFyaXRoUm91bmQsIE5vZGVSZXN1bHROdW1iZXIpIFwK
KyAgICBtYWNybyhBcml0aEZsb29yLCBOb2RlUmVzdWx0TnVtYmVyKSBcCisgICAgbWFjcm8oQXJp
dGhDZWlsLCBOb2RlUmVzdWx0TnVtYmVyKSBcCiAgICAgbWFjcm8oQXJpdGhTcXJ0LCBOb2RlUmVz
dWx0TnVtYmVyKSBcCiAgICAgbWFjcm8oQXJpdGhTaW4sIE5vZGVSZXN1bHROdW1iZXIpIFwKICAg
ICBtYWNybyhBcml0aENvcywgTm9kZVJlc3VsdE51bWJlcikgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cAppbmRleCBmYTQ4MjQ4NDI5YWIzY2QyMTNmNzU2M2ZiNGJmNzQ3M2JmMTAyOTAwLi40NTk2MDUz
YjMyMjQwYzQwODg2YjljNzQ1NjlhNmUxYzkyZTVmZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cApAQCAtMzg2LDcgKzM4Niw5IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDog
cHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAg
Y2FzZSBBcml0aFJvdW5kOiB7CisgICAgICAgIGNhc2UgQXJpdGhSb3VuZDoKKyAgICAgICAgY2Fz
ZSBBcml0aEZsb29yOgorICAgICAgICBjYXNlIEFyaXRoQ2VpbDogewogICAgICAgICAgICAgaWYg
KGlzSW50MzJPckJvb2xlYW5TcGVjdWxhdGlvbihub2RlLT5nZXRIZWFwUHJlZGljdGlvbigpKSAm
JiBtX2dyYXBoLnJvdW5kU2hvdWxkU3BlY3VsYXRlSW50MzIobm9kZSwgbV9wYXNzKSkKICAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rpb24oU3BlY0ludDMyKTsKICAgICAgICAg
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
aW5kZXggMjMwZWZlZGM0ODMxNTEyYmFjNTY4YmVlZmRiMjc2OTYxODcyMDk0Yy4uOTg1OTJjN2Q5
ODQ2YmU5MjRlOWRjNTM3NzkwZGQ1ZmJhYjQyMTJjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTE4MSw2ICsxODEsOCBAQCBib29sIHNhZmVU
b0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgY2FzZSBBcml0aEZSb3VuZDoKICAgICBjYXNl
IEFyaXRoUm91bmQ6CisgICAgY2FzZSBBcml0aEZsb29yOgorICAgIGNhc2UgQXJpdGhDZWlsOgog
ICAgIGNhc2UgQXJpdGhTaW46CiAgICAgY2FzZSBBcml0aENvczoKICAgICBjYXNlIEFyaXRoTG9n
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCA1MDYyZjFlNTZhZjQ5NTQ3NDNiNzI5NzQyNjdhMmM3ODc4ZmY3NjBiLi5jNDZjZjQ1NjE5
OTE2NGQ5NWIwYmEyZDQ2YTNhY2E2MDgxNTJhZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDQxMiw0NiArNDQxMiw5MyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNb2QoTm9kZSogbm9kZSkKICAgICB9CiB9
CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kKE5vZGUqIG5vZGUpCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhSb3VuZGluZyhOb2RlKiBub2RlKQogewog
ICAgIEFTU0VSVChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gRG91YmxlUmVwVXNlKTsKIAog
ICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwog
ICAgIEZQUlJlZyB2YWx1ZUZQUiA9IHZhbHVlLmZwcigpOwogCi0gICAgaWYgKHByb2R1Y2VzSW50
ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSAmJiAhc2hvdWxkQ2hlY2tOZWdhdGl2ZVpl
cm8obm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKLSAgICAgICAgRlBSVGVtcG9yYXJ5IG9u
ZUhhbGYodGhpcyk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSByb3VuZGVkUmVzdWx0QXNJbnQzMih0
aGlzKTsKLSAgICAgICAgRlBSUmVnIG9uZUhhbGZGUFIgPSBvbmVIYWxmLmZwcigpOwotICAgICAg
ICBHUFJSZWcgcmVzdWx0R1BSID0gcm91bmRlZFJlc3VsdEFzSW50MzIuZ3ByKCk7CisgICAgYXV0
byBzZXRSZXN1bHQgPSBbJl0gKEZQUlJlZyByZXN1bHRGUFIpIHsKKyAgICAgICAgaWYgKHByb2R1
Y2VzSW50ZWdlcihub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkgeworICAgICAgICAgICAgR1BS
VGVtcG9yYXJ5IHJvdW5kZWRSZXN1bHRBc0ludDMyKHRoaXMpOworICAgICAgICAgICAgRlBSVGVt
cG9yYXJ5IHNjcmF0Y2godGhpcyk7CisgICAgICAgICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNj
cmF0Y2guZnByKCk7CisgICAgICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcm91bmRlZFJlc3Vs
dEFzSW50MzIuZ3ByKCk7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3QgZmFpbHVy
ZUNhc2VzOworICAgICAgICAgICAgbV9qaXQuYnJhbmNoQ29udmVydERvdWJsZVRvSW50MzIocmVz
dWx0RlBSLCByZXN1bHRHUFIsIGZhaWx1cmVDYXNlcywgc2NyYXRjaEZQUiwgc2hvdWxkQ2hlY2tO
ZWdhdGl2ZVplcm8obm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpOworICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwgZmFpbHVyZUNhc2Vz
KTsKKworICAgICAgICAgICAgaW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0RlBSLCBub2RlKTsKKyAgICB9
OwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgaGFsZkNvbnN0YW50ID0gMC41OwotICAg
ICAgICBtX2ppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZoYWxm
Q29uc3RhbnQpLCBvbmVIYWxmRlBSKTsKLSAgICAgICAgbV9qaXQuYWRkRG91YmxlKHZhbHVlRlBS
LCBvbmVIYWxmRlBSKTsKKyAgICBpZiAobV9qaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRp
bmcoKSkgeworICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgY2FzZSBBcml0
aFJvdW5kOiB7CisgICAgICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAg
ICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsKKyAgICAgICAgICAgIGlmIChw
cm9kdWNlc0ludGVnZXIobm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkgJiYgIXNob3VsZENoZWNr
TmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRoUm91bmRpbmdNb2RlKCkpKSB7CisgICAgICAgICAgICAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBoYWxmQ29uc3RhbnQgPSAwLjU7CisgICAgICAgICAgICAg
ICAgbV9qaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cigmaGFsZkNv
bnN0YW50KSwgcmVzdWx0RlBSKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGREb3VibGUodmFs
dWVGUFIsIHJlc3VsdEZQUik7CisgICAgICAgICAgICAgICAgbV9qaXQuZmxvb3JEb3VibGUocmVz
dWx0RlBSLCByZXN1bHRGUFIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBtX2ppdC5jZWlsRG91YmxlKHZhbHVlRlBSLCByZXN1bHRGUFIpOworICAgICAgICAgICAgICAg
IEZQUlRlbXBvcmFyeSByZWFsUGFydCh0aGlzKTsKKyAgICAgICAgICAgICAgICBGUFJSZWcgcmVh
bFBhcnRGUFIgPSByZWFsUGFydC5mcHIoKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdWJEb3Vi
bGUocmVzdWx0RlBSLCB2YWx1ZUZQUiwgcmVhbFBhcnRGUFIpOwogCi0gICAgICAgIEpJVENvbXBp
bGVyOjpKdW1wIHRydW5jYXRpb25GYWlsZWQgPSBtX2ppdC5icmFuY2hUcnVuY2F0ZURvdWJsZVRv
SW50MzIob25lSGFsZkZQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhP
dmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwgdHJ1bmNhdGlvbkZhaWxlZCk7Ci0gICAgICAg
IGludDMyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgICAgICAgICAgICAgRlBSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CisgICAgICAgICAgICAg
ICAgRlBSUmVnIHNjcmF0Y2hGUFIgPSBzY3JhdGNoLmZwcigpOworICAgICAgICAgICAgICAgIHN0
YXRpYyBjb25zdCBkb3VibGUgaGFsZkNvbnN0YW50ID0gMC41OworICAgICAgICAgICAgICAgIG1f
aml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoJmhhbGZDb25zdGFu
dCksIHNjcmF0Y2hGUFIpOworCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgc2hv
dWxkVXNlQ2VpbGVkID0gbV9qaXQuYnJhbmNoRG91YmxlKEpJVENvbXBpbGVyOjpEb3VibGVMZXNz
VGhhbk9yRXF1YWwsIHJlYWxQYXJ0RlBSLCBzY3JhdGNoRlBSKTsKKyAgICAgICAgICAgICAgICBz
dGF0aWMgY29uc3QgZG91YmxlIG9uZUNvbnN0YW50ID0gLTEuMDsKKyAgICAgICAgICAgICAgICBt
X2ppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZvbmVDb25zdGFu
dCksIHNjcmF0Y2hGUFIpOworICAgICAgICAgICAgICAgIG1faml0LmFkZERvdWJsZShzY3JhdGNo
RlBSLCByZXN1bHRGUFIpOworICAgICAgICAgICAgICAgIHNob3VsZFVzZUNlaWxlZC5saW5rKCZt
X2ppdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRSZXN1bHQocmVzdWx0RlBSKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsK
LSAgICBGUFJSZXN1bHQgcm91bmRlZFJlc3VsdEFzRG91YmxlKHRoaXMpOwotICAgIEZQUlJlZyBy
ZXN1bHRGUFIgPSByb3VuZGVkUmVzdWx0QXNEb3VibGUuZnByKCk7Ci0gICAgY2FsbE9wZXJhdGlv
bihqc1JvdW5kLCByZXN1bHRGUFIsIHZhbHVlRlBSKTsKLSAgICBtX2ppdC5leGNlcHRpb25DaGVj
aygpOwotICAgIGlmIChwcm9kdWNlc0ludGVnZXIobm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkp
IHsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJvdW5kZWRSZXN1bHRBc0ludDMyKHRoaXMpOwotICAg
ICAgICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKLSAgICAgICAgRlBSUmVnIHNjcmF0Y2hG
UFIgPSBzY3JhdGNoLmZwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcm91bmRlZFJl
c3VsdEFzSW50MzIuZ3ByKCk7Ci0gICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBmYWlsdXJl
Q2FzZXM7Ci0gICAgICAgIG1faml0LmJyYW5jaENvbnZlcnREb3VibGVUb0ludDMyKHJlc3VsdEZQ
UiwgcmVzdWx0R1BSLCBmYWlsdXJlQ2FzZXMsIHNjcmF0Y2hGUFIpOwotICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKE92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCBub2RlLCBmYWlsdXJlQ2FzZXMpOwor
ICAgICAgICBjYXNlIEFyaXRoRmxvb3I6IHsKKyAgICAgICAgICAgIEZQUlRlbXBvcmFyeSByb3Vu
ZGVkKHRoaXMpOworICAgICAgICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJvdW5kZWQuZnByKCk7
CisgICAgICAgICAgICBtX2ppdC5mbG9vckRvdWJsZSh2YWx1ZUZQUiwgcmVzdWx0RlBSKTsKKyAg
ICAgICAgICAgIHNldFJlc3VsdChyZXN1bHRGUFIpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CiAKLSAgICAgICAgaW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKLSAgICB9IGVs
c2UKLSAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbm9kZSk7CisgICAgICAgIGNhc2Ug
QXJpdGhDZWlsOiB7CisgICAgICAgICAgICBGUFJUZW1wb3Jhcnkgcm91bmRlZCh0aGlzKTsKKyAg
ICAgICAgICAgIEZQUlJlZyByZXN1bHRGUFIgPSByb3VuZGVkLmZwcigpOworICAgICAgICAgICAg
bV9qaXQuY2VpbERvdWJsZSh2YWx1ZUZQUiwgcmVzdWx0RlBSKTsKKyAgICAgICAgICAgIHNldFJl
c3VsdChyZXN1bHRGUFIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAg
ICBGUFJSZXN1bHQgcm91bmRlZFJlc3VsdEFzRG91YmxlKHRoaXMpOworICAgICAgICBGUFJSZWcg
cmVzdWx0RlBSID0gcm91bmRlZFJlc3VsdEFzRG91YmxlLmZwcigpOworICAgICAgICBpZiAobm9k
ZS0+b3AoKSA9PSBBcml0aFJvdW5kKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihqc1JvdW5k
LCByZXN1bHRGUFIsIHZhbHVlRlBSKTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+b3AoKSA9PSBB
cml0aEZsb29yKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihmbG9vciwgcmVzdWx0RlBSLCB2
YWx1ZUZQUik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkg
PT0gQXJpdGhDZWlsKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oY2VpbCwgcmVzdWx0RlBS
LCB2YWx1ZUZQUik7CisgICAgICAgIH0KKyAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsK
KyAgICAgICAgc2V0UmVzdWx0KHJlc3VsdEZQUik7CisgICAgfQogfQogCiB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlQXJpdGhTcXJ0KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggNzRiMDM0YWJkN2E2ZmI4MjY2MTQ5
NTNkNzhmNGU3NTM1MDM1ZWViOC4uNjJkMWIwYTcwYzVmMzE0OTU0NGQxMzc5NWQzZDAzNjg0Njll
N2RkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aApAQCAtMjI2Niw3ICsyMjY2LDkgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQg
Y29tcGlsZUFyaXRoRGl2KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVBcml0aE1vZChOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlQXJpdGhQb3coTm9kZSopOwotICAgIHZvaWQgY29tcGlsZUFyaXRo
Um91bmQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUFyaXRoUm91bmRpbmcoTm9kZSopOworICAg
IHZvaWQgY29tcGlsZUFyaXRoRmxvb3IoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUFyaXRoQ2Vp
bChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQXJpdGhSYW5kb20oTm9kZSopOwogICAgIHZvaWQg
Y29tcGlsZUFyaXRoU3FydChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQXJpdGhMb2coTm9kZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKaW5kZXggMThhNzg4NTk0NTZkNmExZjFmYTVjMjU0YmI2NWY2YTI2YzBjNGI5My4u
MzY2MDc2NDM3MDY5NWJlZDg5NTM4NzFjMjBmNjI0MWM5YjU3N2JiZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0y
MjkyLDcgKzIyOTIsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUp
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcml0aFJvdW5kOgotICAgICAgICBjb21waWxl
QXJpdGhSb3VuZChub2RlKTsKKyAgICBjYXNlIEFyaXRoRmxvb3I6CisgICAgY2FzZSBBcml0aENl
aWw6CisgICAgICAgIGNvbXBpbGVBcml0aFJvdW5kaW5nKG5vZGUpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQXJpdGhTaW46IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDhmNTY4OGE0NTUzNzhiMGUyOGM2MWU3ZDE4
MTllMzRlNGEzZDJhOTQuLjc5MjhkYThmZjgxMzZkODljYzViN2E1Mjk4ZmU2YWQ3NmZhZTlkZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcApAQCAtMjQxNSw3ICsyNDE1LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXJpdGhSb3VuZDoKLSAgICAg
ICAgY29tcGlsZUFyaXRoUm91bmQobm9kZSk7CisgICAgY2FzZSBBcml0aEZsb29yOgorICAgIGNh
c2UgQXJpdGhDZWlsOgorICAgICAgICBjb21waWxlQXJpdGhSb3VuZGluZyhub2RlKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEFyaXRoU2luOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggODM0OGRjYzZjMjVjYjg5NWQzZmQwYThj
M2VkN2NiMzIzZjJiZWQ1My4uNTRjYjBiNGJlYTNjNmYyNzRhODRlMTllNmYyNmQ2ZDUyN2MwYWU5
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApA
QCAtOTcsNiArOTcsOCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICBjYXNlIEFyaXRoUG93OgogICAgIGNhc2UgQXJpdGhSYW5kb206CiAgICAgY2Fz
ZSBBcml0aFJvdW5kOgorICAgIGNhc2UgQXJpdGhGbG9vcjoKKyAgICBjYXNlIEFyaXRoQ2VpbDoK
ICAgICBjYXNlIEFyaXRoU3FydDoKICAgICBjYXNlIEFyaXRoTG9nOgogICAgIGNhc2UgQXJpdGhG
Um91bmQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
aW5kZXggMTMxMTNjNmUwMWQ1Y2YzZTYwN2ExYTIyODdkZjBjYmY5NmE0N2U3Yi4uMmM4ZDAwODll
ZGZjOWYxZmUyMjQ0YmI4ZDFjNjMzMmNiZTJhYWNkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNTIzLDYgKzUyMywxMiBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIEFyaXRoUm91bmQ6CiAgICAgICAgICAgICBjb21w
aWxlQXJpdGhSb3VuZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhG
bG9vcjoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aEZsb29yKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBcml0aENlaWw6CisgICAgICAgICAgICBjb21waWxlQXJpdGhDZWls
KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgICAg
ICAgICBjb21waWxlQXJpdGhTcXJ0KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE4ODEsMjQg
KzE4ODcsMzEgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogICAgIHZvaWQgY29tcGlsZUFyaXRo
Um91bmQoKQogICAgIHsKLSAgICAgICAgTEJhc2ljQmxvY2sgcmVhbFBhcnRJc01vcmVUaGFuSGFs
ZiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhSb3VuZCBzaG91bGQgcm91bmQgZG93biIp
KTsKLSAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJBcml0aFJvdW5kIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9
IG51bGxwdHI7CiAKLSAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKG1fbm9kZS0+Y2hp
bGQxKCkpOwotICAgICAgICBMVmFsdWUgaW50ZWdlclZhbHVlID0gbV9vdXQuZG91YmxlQ2VpbCh2
YWx1ZSk7Ci0gICAgICAgIFZhbHVlRnJvbUJsb2NrIGludGVnZXJWYWx1ZVJlc3VsdCA9IG1fb3V0
LmFuY2hvcihpbnRlZ2VyVmFsdWUpOworICAgICAgICBpZiAocHJvZHVjZXNJbnRlZ2VyKG1fbm9k
ZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkgJiYgIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9k
ZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpIHsKKyAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxv
d0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fb3V0LmRv
dWJsZUZsb29yKG1fb3V0LmRvdWJsZUFkZCh2YWx1ZSwgbV9vdXQuY29uc3REb3VibGUoMC41KSkp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTEJhc2ljQmxvY2sgcmVhbFBhcnRJc01v
cmVUaGFuSGFsZiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhSb3VuZCBzaG91bGQgcm91
bmQgZG93biIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9O
RVdfQkxPQ0sobV9vdXQsICgiQXJpdGhSb3VuZCBjb250aW51YXRpb24iKSk7CiAKLSAgICAgICAg
TFZhbHVlIHJlYWxQYXJ0ID0gbV9vdXQuZG91YmxlU3ViKGludGVnZXJWYWx1ZSwgdmFsdWUpOwor
ICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICAgICAgTFZhbHVlIGludGVnZXJWYWx1ZSA9IG1fb3V0LmRvdWJsZUNlaWwodmFsdWUp
OworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW50ZWdlclZhbHVlUmVzdWx0ID0gbV9vdXQu
YW5jaG9yKGludGVnZXJWYWx1ZSk7CiAKLSAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmRvdWJs
ZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQocmVhbFBhcnQsIG1fb3V0LmNvbnN0RG91YmxlKDAuNSkp
LCB1bnN1cmUocmVhbFBhcnRJc01vcmVUaGFuSGFsZiksIHVuc3VyZShjb250aW51YXRpb24pKTsK
KyAgICAgICAgICAgIExWYWx1ZSByZWFsUGFydCA9IG1fb3V0LmRvdWJsZVN1YihpbnRlZ2VyVmFs
dWUsIHZhbHVlKTsKIAotICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKHJlYWxQYXJ0SXNNb3JlVGhhbkhhbGYsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIExWYWx1
ZSBpbnRlZ2VyVmFsdWVSb3VuZGVkRG93biA9IG1fb3V0LmRvdWJsZVN1YihpbnRlZ2VyVmFsdWUs
IG1fb3V0LmNvbnN0RG91YmxlKDEpKTsKLSAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW50ZWdlclZh
bHVlUm91bmRlZERvd25SZXN1bHQgPSBtX291dC5hbmNob3IoaW50ZWdlclZhbHVlUm91bmRlZERv
d24pOwotICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIG1fb3V0LmFw
cGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KG1fb3V0LmRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQocmVhbFBhcnQsIG1fb3V0LmNvbnN0
RG91YmxlKDAuNSkpLCB1bnN1cmUocmVhbFBhcnRJc01vcmVUaGFuSGFsZiksIHVuc3VyZShjb250
aW51YXRpb24pKTsKKworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5h
cHBlbmRUbyhyZWFsUGFydElzTW9yZVRoYW5IYWxmLCBjb250aW51YXRpb24pOworICAgICAgICAg
ICAgTFZhbHVlIGludGVnZXJWYWx1ZVJvdW5kZWREb3duID0gbV9vdXQuZG91YmxlU3ViKGludGVn
ZXJWYWx1ZSwgbV9vdXQuY29uc3REb3VibGUoMSkpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgaW50ZWdlclZhbHVlUm91bmRlZERvd25SZXN1bHQgPSBtX291dC5hbmNob3IoaW50ZWdlclZh
bHVlUm91bmRlZERvd24pOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwor
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAKLSAg
ICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LnBoaShtX291dC5kb3VibGVUeXBlLCBpbnRlZ2Vy
VmFsdWVSZXN1bHQsIGludGVnZXJWYWx1ZVJvdW5kZWREb3duUmVzdWx0KTsKKyAgICAgICAgICAg
IHJlc3VsdCA9IG1fb3V0LnBoaShtX291dC5kb3VibGVUeXBlLCBpbnRlZ2VyVmFsdWVSZXN1bHQs
IGludGVnZXJWYWx1ZVJvdW5kZWREb3duUmVzdWx0KTsKKyAgICAgICAgfQogCiAgICAgICAgIGlm
IChwcm9kdWNlc0ludGVnZXIobV9ub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSkgewogICAgICAg
ICAgICAgTFZhbHVlIGludGVnZXJWYWx1ZSA9IGNvbnZlcnREb3VibGVUb0ludDMyKHJlc3VsdCwg
c2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aFJvdW5kaW5nTW9kZSgpKSk7CkBA
IC0xOTA3LDYgKzE5MjAsMjYgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIHNl
dERvdWJsZShyZXN1bHQpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZUFyaXRoRmxvb3IoKQor
ICAgIHsKKyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICBMVmFsdWUgaW50ZWdlclZhbHVlID0gbV9vdXQuZG91YmxlRmxvb3IodmFsdWUp
OworICAgICAgICBpZiAocHJvZHVjZXNJbnRlZ2VyKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUo
KSkpCisgICAgICAgICAgICBzZXRJbnQzMihjb252ZXJ0RG91YmxlVG9JbnQzMihpbnRlZ2VyVmFs
dWUsIHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0RG91YmxlKGludGVnZXJWYWx1ZSk7Cisg
ICAgfQorCisgICAgdm9pZCBjb21waWxlQXJpdGhDZWlsKCkKKyAgICB7CisgICAgICAgIExWYWx1
ZSB2YWx1ZSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGlu
dGVnZXJWYWx1ZSA9IG1fb3V0LmRvdWJsZUNlaWwodmFsdWUpOworICAgICAgICBpZiAocHJvZHVj
ZXNJbnRlZ2VyKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpCisgICAgICAgICAgICBzZXRJ
bnQzMihjb252ZXJ0RG91YmxlVG9JbnQzMihpbnRlZ2VyVmFsdWUsIHNob3VsZENoZWNrTmVnYXRp
dmVaZXJvKG1fbm9kZS0+YXJpdGhSb3VuZGluZ01vZGUoKSkpKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgc2V0RG91YmxlKGludGVnZXJWYWx1ZSk7CisgICAgfQorCiAgICAgdm9pZCBjb21w
aWxlQXJpdGhTcXJ0KCkgeyBzZXREb3VibGUobV9vdXQuZG91YmxlU3FydChsb3dEb3VibGUobV9u
b2RlLT5jaGlsZDEoKSkpKTsgfQogCiAgICAgdm9pZCBjb21waWxlQXJpdGhMb2coKSB7IHNldERv
dWJsZShtX291dC5kb3VibGVMb2cobG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCmluZGV4IDc4YTVjYTU1YTNmZjExY2U1OGVl
NzJhNjAzZjc0N2E1ZjkxMmQ1OTAuLmE2NDg3ZTVlZWU1NjAxN2QxODA3N2M0ZWE5ZmNkYzNkZjFk
MWU0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaApAQCAtMTU1LDYgKzE1
NSw3IEBAIGNsYXNzIE91dHB1dCA6IHB1YmxpYyBDb21tb25WYWx1ZXMgewogICAgIExWYWx1ZSBt
dWxXaXRoT3ZlcmZsb3c2NChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7IENSQVNIKCk7IH0K
ICAgICBMVmFsdWUgZG91YmxlQWJzKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBw
ZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6QWJzLCBvcmlnaW4oKSwgdmFsdWUpOyB9CiAg
ICAgTFZhbHVlIGRvdWJsZUNlaWwoTFZhbHVlIG9wZXJhbmQpIHsgcmV0dXJuIG1fYmxvY2stPmFw
cGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJvYywgQjM6OkNlaWwsIG9yaWdpbigpLCBvcGVyYW5kKTsg
fQorICAgIExWYWx1ZSBkb3VibGVGbG9vcihMVmFsdWUgb3BlcmFuZCkgeyByZXR1cm4gbV9ibG9j
ay0+YXBwZW5kTmV3PEIzOjpWYWx1ZT4obV9wcm9jLCBCMzo6Rmxvb3IsIG9yaWdpbigpLCBvcGVy
YW5kKTsgfQogCiAgICAgTFZhbHVlIGRvdWJsZVNpbihMVmFsdWUgdmFsdWUpCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IDdmNTQ2
OWE2NWRlOWE2YWNiNTk1Y2I1MDY0YTJhZjU2MTM5OWFkMWEuLjVjMDNkNzBhNDdhYzcwNzg4NTVi
YzYyNjI0YTIyY2VkM2YzMzlkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2VpbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lh
bGl6ZWRUaHVua0pJVDo6cmVnVDApOwogICAgIG5vbkludEp1bXAubGluaygmaml0KTsKICAgICBq
aXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKLSAgICBpZiAoaml0LnN1cHBvcnRzRmxvYXRpbmdQ
b2ludENlaWwoKSkKKyAgICBpZiAoaml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludFJvdW5kaW5nKCkp
CiAgICAgICAgIGppdC5jZWlsRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogICAgIGVsc2UKICAgICAgICAgaml0LmNhbGxE
b3VibGVUb0RvdWJsZVByZXNlcnZpbmdSZXR1cm4oVW5hcnlEb3VibGVPcFdyYXBwZXIoY2VpbCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNl
aWwtYXJpdGgtcm91bmRpbmctbW9kZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbWF0aC1jZWlsLWFyaXRoLXJvdW5kaW5nLW1vZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ViZmNl
YmYzYmYwM2UwMDFmZjVhY2JjOGM1ODg1ZTQyMzkyZTMzNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1jZWlsLWFyaXRoLXJvdW5kaW5n
LW1vZGUuanMKQEAgLTAsMCArMSw4NSBAQAorZnVuY3Rpb24gZmlyc3RDYXJlQWJvdXRaZXJvU2Vj
b25kRG9lc05vdChhKSB7CisgICAgdmFyIHJlc3VsdEEgPSBNYXRoLmNlaWwoYSk7CisgICAgdmFy
IHJlc3VsdEIgPSBNYXRoLmNlaWwoYSl8MDsKKyAgICByZXR1cm4geyByZXN1bHRBOnJlc3VsdEEs
IHJlc3VsdEI6cmVzdWx0QiB9OworfQorbm9JbmxpbmUoZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25k
RG9lc05vdCk7CisKK2Z1bmN0aW9uIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyhh
KSB7CisgICAgdmFyIHJlc3VsdEEgPSBNYXRoLmNlaWwoYSl8MDsKKyAgICB2YXIgcmVzdWx0QiA9
IE1hdGguY2VpbChhKTsKKyAgICByZXR1cm4geyByZXN1bHRBOnJlc3VsdEEsIHJlc3VsdEI6cmVz
dWx0QiB9OworfQorbm9JbmxpbmUoZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKTsK
KworLy8gV2FybXVwIHdpdGggZG91YmxlcywgYnV0IG5vdGhpbmcgdGhhdCB3b3VsZCBjZWlsIHRv
IC0wIHRvIGVuc3VyZSB3ZSBuZXZlcgorLy8gc2VlIGEgZG91YmxlIGFzIHJlc3VsdC4gVGhlIHJl
c3VsdCBtdXN0IGJlIGludGVnZXJzLCB0aGUgaW5wdXQgaXMga2VwdCB0byBzbWFsbCB2YWx1ZXMu
CitmdW5jdGlvbiB3YXJtdXAoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkg
eworICAgICAgICBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDQyLjYgKyBpKTsKKyAg
ICAgICAgZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDQyLjQgKyBpKTsKKyAgICB9
Cit9Cit3YXJtdXAoKTsKKworZnVuY3Rpb24gdmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2ZWQo
KSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0MSA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMSk7CisgICAgICAgIGlm
ICgxIC8gcmVzdWx0MS5yZXN1bHRBICE9PSAtSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMSks
IHJlc3VsdEEgPSAiICsgcmVzdWx0MS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
MSAvIHJlc3VsdDEucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMSksIHJl
c3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVz
dWx0MiA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygtMC4xKTsKKyAgICAgICAg
aWYgKDEgLyByZXN1bHQyLnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAu
MSksIHJlc3VsdEEgPSAiICsgcmVzdWx0MS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoMSAvIHJlc3VsdDIucmVzdWx0QiAhPT0gLUluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAu
MSksIHJlc3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2
YXIgcmVzdWx0MyA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCk7CisgICAg
ICAgIGlmICgxIC8gcmVzdWx0My5yZXN1bHRBICE9PSAtSW5maW5pdHkpIHsKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3Qo
LTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0My5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoMSAvIHJlc3VsdDMucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAu
MCksIHJlc3VsdEIgPSAiICsgcmVzdWx0My5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2
YXIgcmVzdWx0NCA9IGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygtMC4wKTsKKyAg
ICAgICAgaWYgKDEgLyByZXN1bHQ0LnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERv
ZXMoLTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NC5yZXN1bHRBKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoMSAvIHJlc3VsdDQucmVzdWx0QiAhPT0gLUluZmluaXR5KSB7CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERv
ZXMoLTAuMCksIHJlc3VsdEIgPSAiICsgcmVzdWx0NC5yZXN1bHRCKTsKKyAgICAgICAgfQorICAg
ICAgICB2YXIgcmVzdWx0NSA9IGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKTsK
KyAgICAgICAgaWYgKDEgLyByZXN1bHQ1LnJlc3VsdEEgIT09IEluZmluaXR5KSB7CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2Vz
Tm90KDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0NS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoMSAvIHJlc3VsdDUucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3Qo
MC4wKSwgcmVzdWx0QiA9ICIgKyByZXN1bHQ1LnJlc3VsdEIpOworICAgICAgICB9CisgICAgICAg
IHZhciByZXN1bHQ2ID0gZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAuMCk7Cisg
ICAgICAgIGlmICgxIC8gcmVzdWx0Ni5yZXN1bHRBICE9PSBJbmZpbml0eSkgeworICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmRE
b2VzKDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0Ni5yZXN1bHRBKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoMSAvIHJlc3VsdDYucmVzdWx0QiAhPT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9l
cygwLjApLCByZXN1bHRCID0gIiArIHJlc3VsdDYucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAg
ICAgdmFyIHJlc3VsdDcgPSBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMSk7Cisg
ICAgICAgIGlmICgxIC8gcmVzdWx0Ny5yZXN1bHRBICE9PSAxKSB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMSks
IHJlc3VsdEEgPSAiICsgcmVzdWx0Ny5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
MSAvIHJlc3VsdDcucmVzdWx0QiAhPT0gMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJGYWlsZWQgZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdCgwLjEpLCByZXN1bHRCID0g
IiArIHJlc3VsdDcucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3VsdDggPSBm
aXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoMC4xKTsKKyAgICAgICAgaWYgKDEgLyBy
ZXN1bHQ4LnJlc3VsdEEgIT09IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFp
bGVkIGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEpLCByZXN1bHRBID0gIiAr
IHJlc3VsdDgucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQ4LnJl
c3VsdEIgIT09IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0
RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEpLCByZXN1bHRCID0gIiArIHJlc3VsdDgu
cmVzdWx0Qik7CisgICAgICAgIH0KKyAgICB9Cit9Cit2ZXJpZnlOZWdhdGl2ZVplcm9Jc1ByZXNl
cnZlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9t
YXRoLWNlaWwtYmFzaWNzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9t
YXRoLWNlaWwtYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyZDlmMjY2ZmRkYWY1YmRmOThkYzg3Mzgw
MjJiZTZiMjU5NGJlYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL21hdGgtY2VpbC1iYXNpY3MuanMKQEAgLTAsMCArMSwyNTcgQEAKKworZnVu
Y3Rpb24gbWF0aENlaWxPbkludGVnZXJzKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmNlaWwo
dmFsdWUpOworfQorbm9JbmxpbmUobWF0aENlaWxPbkludGVnZXJzKTsKKworZnVuY3Rpb24gbWF0
aENlaWxPbkRvdWJsZXModmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9
Citub0lubGluZShtYXRoQ2VpbE9uRG91Ymxlcyk7CisKK2Z1bmN0aW9uIG1hdGhDZWlsT25Cb29s
ZWFucyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVlKTsKK30KK25vSW5saW5l
KG1hdGhDZWlsT25Cb29sZWFucyk7CisKKy8vIFRoZSB0cml2aWFsIGNhc2VzIGZpcnN0LgorZm9y
ICh2YXIgaSA9IDE7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhD
ZWlsT25JbnRlZ2VycyhpKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigibWF0aENlaWxPbkludGVnZXJzKCIgKyBpICsgIikgPSAiICsgY2VpbGVk
VmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkludGVnZXJzKC1pKTsK
KyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IC1pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1h
dGhDZWlsT25JbnRlZ2VycygiICsgLWkgKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2
YXIgZG91YmxlTG93ID0gaSArIDAuNDsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9u
RG91Ymxlcyhkb3VibGVMb3cpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gaSArIDEuMCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygiICsgZG91YmxlTG93ICsg
IikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZUhpZ2ggPSBpICsgMC42Owor
ICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsT25Eb3VibGVzKGRvdWJsZUhpZ2gpOworICAg
IGlmIChjZWlsZWRWYWx1ZSAhPT0gaSArIDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0
aENlaWxPbkRvdWJsZXMoIiArIGRvdWJsZUhpZ2ggKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisK
KyAgICB2YXIgZG91YmxlTWlkID0gaSArIDAuNTsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRo
Q2VpbE9uRG91Ymxlcyhkb3VibGVNaWQpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gaSArIDEp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxPbkRvdWJsZXMoIiArIGRvdWJsZU1p
ZCArICIpID0gIiArIGNlaWxlZFZhbHVlKTsKKworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhD
ZWlsT25Eb3VibGVzKC0wLjYpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gLTAuMCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygtMC42KSA9ICIgKyBjZWlsZWRW
YWx1ZSk7Cit9CisKKy8vIFNvbWUgbW9yZSBpbnRlcmVzdGluZyBjYXNlcywgc29tZSBvZiB0aGVt
IHdlbGwgT1NSIGV4aXQgd2hlbiB0aGUgcmV0dXJuIHZhbHVlIGlzIHplcm8uCitmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbklu
dGVnZXJzKGkpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gaSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJtYXRoQ2VpbE9uSW50ZWdlcnMoIiArIGkgKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7
CisKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9uSW50ZWdlcnMoLWkpOworICAgIGlm
IChjZWlsZWRWYWx1ZSAhPT0gLWkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxP
bkludGVnZXJzKC0iICsgaSArICIpID0gIiArIGNlaWxlZFZhbHVlKTsKKworICAgIHZhciBjZWls
ZWRWYWx1ZSA9IG1hdGhDZWlsT25Eb3VibGVzKC0wLjQpOworICAgIGlmIChjZWlsZWRWYWx1ZSAh
PT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygtMC40KSA9
ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbE9uRG91
YmxlcygtMC41KTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IDApCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigibWF0aENlaWxPbkRvdWJsZXMoLTAuNSkgPSAiICsgY2VpbGVkVmFsdWUpOworCisg
ICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkRvdWJsZXMoLTApOworICAgIGlmICghKGNl
aWxlZFZhbHVlID09PSAwICYmICgxL2NlaWxlZFZhbHVlKSA9PT0gLUluZmluaXR5KSkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcygtMCkgPSAiICsgY2VpbGVkVmFs
dWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkRvdWJsZXMoTmFOKTsKKyAg
ICBpZiAoY2VpbGVkVmFsdWUgPT09IGNlaWxlZFZhbHVlKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIm1hdGhDZWlsT25Eb3VibGVzKE5hTikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFy
IGNlaWxlZFZhbHVlID0gbWF0aENlaWxPbkRvdWJsZXMoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZ
KTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbE9uRG91YmxlcyhOdW1iZXIuUE9TSVRJVkVf
SU5GSU5JVFkpID0gIiArIGNlaWxlZFZhbHVlKTsKKworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1h
dGhDZWlsT25Eb3VibGVzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgaWYgKGNlaWxl
ZFZhbHVlICE9PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigibWF0aENlaWxPbkRvdWJsZXMoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSA9ICIgKyBj
ZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgYm9vbGVhbiA9ICEhKGkgJSAyKTsKKyAgICB2YXIgY2Vp
bGVkQm9vbGVhbiA9IG1hdGhDZWlsT25Cb29sZWFucyhib29sZWFuKTsKKyAgICBpZiAoY2VpbGVk
Qm9vbGVhbiAhPSBib29sZWFuKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsT25E
b3VibGVzKCIgKyBib29sZWFuICsgIikgPSAiICsgY2VpbGVkQm9vbGVhbik7Cit9CisKK2Z1bmN0
aW9uIHVzZWxlc3NNYXRoQ2VpbCh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVl
fDApOworfQorbm9JbmxpbmUodXNlbGVzc01hdGhDZWlsKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxZTQ7ICsraSkgeworICAgIHZhciBjZWlsZWRWYWx1ZSA9IHVzZWxlc3NNYXRoQ2VpbChpKTsK
KyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNl
bGVzc01hdGhDZWlsKCIgKyBpICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGRv
dWJsZUxvdyA9IGkgKyAwLjQ7CisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWls
KGRvdWJsZUxvdyk7CisgICAgaWYgKGNlaWxlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoInVzZWxlc3NNYXRoQ2VpbCgiICsgZG91YmxlTG93ICsgIikgPSAiICsgY2VpbGVk
VmFsdWUpOworCisgICAgdmFyIGRvdWJsZUhpZ2ggPSBpICsgMC42OworICAgIHZhciBjZWlsZWRW
YWx1ZSA9IHVzZWxlc3NNYXRoQ2VpbChkb3VibGVIaWdoKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUg
IT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhDZWlsKCIgKyBkb3Vi
bGVIaWdoICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGRvdWJsZU1pZCA9IGkg
KyAwLjU7CisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKGRvdWJsZU1pZCk7
CisgICAgaWYgKGNlaWxlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVz
ZWxlc3NNYXRoQ2VpbCgiICsgZG91YmxlTWlkICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworCisg
ICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKC0wLjQpOworICAgIGlmIChjZWls
ZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwo
LTAuNCkgPSAiICsgY2VpbGVkVmFsdWUpOworCisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVz
c01hdGhDZWlsKC0wLjUpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aENlaWwoLTAuNSkgPSAiICsgY2VpbGVkVmFsdWUpOwor
CisgICAgdmFyIGNlaWxlZFZhbHVlID0gdXNlbGVzc01hdGhDZWlsKC0wLjYpOworICAgIGlmIChj
ZWlsZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aENl
aWwoLTAuNikgPSAiICsgY2VpbGVkVmFsdWUpOworfQorCitmdW5jdGlvbiBtYXRoQ2VpbFdpdGhP
dmVyZmxvdyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVlKTsKK30KK25vSW5s
aW5lKG1hdGhDZWlsV2l0aE92ZXJmbG93KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkgeworICAgIHZhciBiaWdWYWx1ZSA9IDEwMDAwMDAwMDAwMDA7CisgICAgdmFyIGNlaWxlZFZh
bHVlID0gbWF0aENlaWxXaXRoT3ZlcmZsb3coYmlnVmFsdWUpOworICAgIGlmIChjZWlsZWRWYWx1
ZSAhPT0gYmlnVmFsdWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxXaXRoT3Zl
cmZsb3coIiArIGJpZ1ZhbHVlICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworfQorCitmdW5jdGlv
biBtYXRoQ2VpbENvbnN1bWVkQXNEb3VibGUodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2Vp
bCh2YWx1ZSkgKiAwLjU7Cit9Citub0lubGluZShtYXRoQ2VpbENvbnN1bWVkQXNEb3VibGUpOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGRvdWJsZVZhbHVlID0g
aSArIDAuMTsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbENvbnN1bWVkQXNEb3VibGUo
ZG91YmxlVmFsdWUpOworICAgIGlmIChjZWlsZWRWYWx1ZSAhPT0gKChpICsgMSkgKiAwLjUpKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsQ29uc3VtZWRBc0RvdWJsZSgiICsgZG91
YmxlVmFsdWUgKyAiKSA9ICIgKyBjZWlsZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91YmxlVmFsdWUg
PSBpICsgMC42OworICAgIHZhciBjZWlsZWRWYWx1ZSA9IG1hdGhDZWlsQ29uc3VtZWRBc0RvdWJs
ZShkb3VibGVWYWx1ZSk7CisgICAgaWYgKGNlaWxlZFZhbHVlICE9PSAoKGkgKyAxKSAqIDAuNSkp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxDb25zdW1lZEFzRG91YmxlKCIgKyBk
b3VibGVWYWx1ZSArICIpID0gIiArIGNlaWxlZFZhbHVlKTsKKworfQorCitmdW5jdGlvbiBtYXRo
Q2VpbERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8odmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGgu
Y2VpbCh2YWx1ZSl8MDsKK30KK25vSW5saW5lKG1hdGhDZWlsRG9lc05vdENhcmVBYm91dE1pbnVz
WmVybyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZG91Ymxl
TWlkID0gaSArIDAuNTsKKyAgICB2YXIgY2VpbGVkVmFsdWUgPSBtYXRoQ2VpbERvZXNOb3RDYXJl
QWJvdXRNaW51c1plcm8oZG91YmxlTWlkKTsKKyAgICBpZiAoY2VpbGVkVmFsdWUgIT09IGkgKyAx
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhDZWlsRG9lc05vdENhcmVBYm91dE1pbnVz
WmVybygiICsgZG91YmxlTWlkICsgIikgPSAiICsgY2VpbGVkVmFsdWUpOworfQorCisKKy8vICoq
KiBGdW5jdGlvbiBhcmd1bWVudHMuICoqKgorZnVuY3Rpb24gbWF0aENlaWxOb0FyZ3VtZW50cygp
Cit7CisgICAgcmV0dXJuIE1hdGguY2VpbCgpOworfQorbm9JbmxpbmUobWF0aENlaWxOb0FyZ3Vt
ZW50cyk7CisKK2Z1bmN0aW9uIG1hdGhDZWlsVG9vTWFueUFyZ3VtZW50cyhhLCBiLCBjKQorewor
ICAgIHJldHVybiBNYXRoLmNlaWwoYSwgYiwgYyk7Cit9Citub0lubGluZShtYXRoQ2VpbFRvb01h
bnlBcmd1bWVudHMpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFy
IHZhbHVlID0gbWF0aENlaWxOb0FyZ3VtZW50cygpOworICAgIGlmICh2YWx1ZSA9PT0gdmFsdWUp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aENlaWxOb0FyZ3VtZW50cygpID0gIiArIHZh
bHVlKTsKKworICAgIHZhciB2YWx1ZSA9IG1hdGhDZWlsVG9vTWFueUFyZ3VtZW50cygyLjEsIDMs
IDUpOworICAgIGlmICh2YWx1ZSAhPT0gMykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRo
Q2VpbFRvb01hbnlBcmd1bWVudHMoKSA9ICIgKyB2YWx1ZSk7Cit9CisKKworLy8gKioqIENvbnN0
YW50IGFzIGFyZ3VtZW50cy4gKioqCitmdW5jdGlvbiB0ZXN0TWF0aENlaWxPbkNvbnN0YW50cygp
Cit7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKDApOworICAgIGlmICh2YWx1ZSAhPT0gMCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwoMCkgPSAiICsgdmFsdWUpOworICAg
IHZhciB2YWx1ZSA9IE1hdGguY2VpbCgtMCk7CisgICAgaWYgKCEodmFsdWUgPT09IDAgJiYgKDEv
dmFsdWUpID09PSAtSW5maW5pdHkpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguY2Vp
bCgtMCkgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguY2VpbCgxKTsKKyAgICBp
ZiAodmFsdWUgIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5jZWlsKDEpID0g
IiArIHZhbHVlKTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmNlaWwoLTEpOworICAgIGlmICh2YWx1
ZSAhPT0gLTEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5jZWlsKC0xKSA9ICIgKyB2
YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKDQyKTsKKyAgICBpZiAodmFsdWUgIT09
IDQyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hdGguY2VpbCg0MikgPSAiICsgdmFsdWUp
OworICAgIHZhciB2YWx1ZSA9IE1hdGguY2VpbCgtNDIuMik7CisgICAgaWYgKHZhbHVlICE9PSAt
NDIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5jZWlsKC00Mi4yKSA9ICIgKyB2YWx1
ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE5hTik7CisgICAgaWYgKHZhbHVlID09PSB2
YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwoTmFOKSA9ICIgKyB2YWx1
ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWlsKE51bWJlci5QT1NJVElWRV9JTkZJTklUSSk7
CisgICAgaWYgKHZhbHVlID09PSB2YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRo
LmNlaWwoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRJKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZh
bHVlID0gTWF0aC5jZWlsKE51bWJlci5ORUdBVElWRV9JTkZJTklUSSk7CisgICAgaWYgKHZhbHVl
ID09PSB2YWx1ZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmNlaWwoTnVtYmVyLk5F
R0FUSVZFX0lORklOSVRJKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jZWls
KE1hdGguRSk7CisgICAgaWYgKHZhbHVlICE9PSAzKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
Ik1hdGguY2VpbChNYXRoLkUpID0gIiArIHZhbHVlKTsKK30KK25vSW5saW5lKHRlc3RNYXRoQ2Vp
bE9uQ29uc3RhbnRzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHRl
c3RNYXRoQ2VpbE9uQ29uc3RhbnRzKCk7Cit9CisKKworLy8gKioqIFN0cnVjdCB0cmFuc2l0aW9u
LiAqKioKK2Z1bmN0aW9uIG1hdGhDZWlsU3RydWN0VHJhbnNpdGlvbih2YWx1ZSkKK3sKKyAgICBy
ZXR1cm4gTWF0aC5jZWlsKHZhbHVlKTsKK30KK25vSW5saW5lKG1hdGhDZWlsU3RydWN0VHJhbnNp
dGlvbik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgdmFsdWUg
PSBtYXRoQ2VpbFN0cnVjdFRyYW5zaXRpb24oNDIuNSk7CisgICAgaWYgKHZhbHVlICE9PSA0MykK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbFN0cnVjdFRyYW5zaXRpb24oNDIuNSkg
PSAiICsgdmFsdWUpOworfQorCitNYXRoLmNlaWwgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3Vt
ZW50c1swXSArIDU7IH0KKwordmFyIHZhbHVlID0gbWF0aENlaWxTdHJ1Y3RUcmFuc2l0aW9uKDQy
KTsKK2lmICh2YWx1ZSAhPT0gNDcpCisgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoQ2VpbFN0cnVj
dFRyYW5zaXRpb24oNDIpIGFmdGVyIHRyYW5zaXRpb24gPSAiICsgdmFsdWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWZsb29yLWFyaXRoLXJv
dW5kaW5nLW1vZGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgt
Zmxvb3ItYXJpdGgtcm91bmRpbmctbW9kZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzBlZDg5MGQzMTUwNzA2
YTlhMDQ1MjBkN2YwYTA5MjQwNzZmNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWZsb29yLWFyaXRoLXJvdW5kaW5nLW1vZGUuanMK
QEAgLTAsMCArMSw4NSBAQAorZnVuY3Rpb24gZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05v
dChhKSB7CisgICAgdmFyIHJlc3VsdEEgPSBNYXRoLmZsb29yKGEpOworICAgIHZhciByZXN1bHRC
ID0gTWF0aC5mbG9vcihhKXwwOworICAgIHJldHVybiB7IHJlc3VsdEE6cmVzdWx0QSwgcmVzdWx0
QjpyZXN1bHRCIH07Cit9Citub0lubGluZShmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90
KTsKKworZnVuY3Rpb24gZmlyc3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKGEpIHsKKyAg
ICB2YXIgcmVzdWx0QSA9IE1hdGguZmxvb3IoYSl8MDsKKyAgICB2YXIgcmVzdWx0QiA9IE1hdGgu
Zmxvb3IoYSk7CisgICAgcmV0dXJuIHsgcmVzdWx0QTpyZXN1bHRBLCByZXN1bHRCOnJlc3VsdEIg
fTsKK30KK25vSW5saW5lKGZpcnN0RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcyk7CisKKy8v
IFdhcm11cCB3aXRoIGRvdWJsZXMsIGJ1dCBub3RoaW5nIHRoYXQgd291bGQgZmxvb3IgdG8gLTAg
dG8gZW5zdXJlIHdlIG5ldmVyCisvLyBzZWUgYSBkb3VibGUgYXMgcmVzdWx0LiBUaGUgcmVzdWx0
IG11c3QgYmUgaW50ZWdlcnMsIHRoZSBpbnB1dCBpcyBrZXB0IHRvIHNtYWxsIHZhbHVlcy4KK2Z1
bmN0aW9uIHdhcm11cCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7Cisg
ICAgICAgIGZpcnN0Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoNDIuNiArIGkpOworICAgICAg
ICBmaXJzdERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoNDIuNCArIGkpOworICAgIH0KK30K
K3dhcm11cCgpOworCitmdW5jdGlvbiB2ZXJpZnlOZWdhdGl2ZVplcm9Jc1ByZXNlcnZlZCgpIHsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQx
ID0gZmlyc3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdCgtMC4xKTsKKyAgICAgICAgaWYgKDEg
LyByZXN1bHQxLnJlc3VsdEEgIT09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkZhaWxlZCBmaXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KC0wLjEpLCByZXN1bHRBID0g
IiArIHJlc3VsdDEucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQx
LnJlc3VsdEIgIT09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBm
aXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KC0wLjEpLCByZXN1bHRCID0gIiArIHJlc3Vs
dDEucmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3VsdDIgPSBmaXJzdERvTm90
Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Mi5y
ZXN1bHRBICE9PSAtMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmly
c3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKC0wLjEpLCByZXN1bHRBID0gIiArIHJlc3Vs
dDEucmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQyLnJlc3VsdEIg
IT09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERvTm90
Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMSksIHJlc3VsdEIgPSAiICsgcmVzdWx0MS5yZXN1
bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0MyA9IGZpcnN0Q2FyZUFib3V0WmVy
b1NlY29uZERvZXNOb3QoLTAuMCk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0My5yZXN1bHRBICE9
PSAtSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0
Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0My5y
ZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDMucmVzdWx0QiAhPT0g
SW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0Q2Fy
ZUFib3V0WmVyb1NlY29uZERvZXNOb3QoLTAuMCksIHJlc3VsdEIgPSAiICsgcmVzdWx0My5yZXN1
bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0NCA9IGZpcnN0RG9Ob3RDYXJlQWJv
dXRaZXJvU2Vjb25kRG9lcygtMC4wKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ0LnJlc3VsdEEg
IT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJz
dERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0
NC5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDQucmVzdWx0QiAh
PT0gLUluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJz
dERvTm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoLTAuMCksIHJlc3VsdEIgPSAiICsgcmVzdWx0
NC5yZXN1bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0NSA9IGZpcnN0Q2FyZUFi
b3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKTsKKyAgICAgICAgaWYgKDEgLyByZXN1bHQ1LnJlc3Vs
dEEgIT09IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBm
aXJzdENhcmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0
NS5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDUucmVzdWx0QiAh
PT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0
Q2FyZUFib3V0WmVyb1NlY29uZERvZXNOb3QoMC4wKSwgcmVzdWx0QiA9ICIgKyByZXN1bHQ1LnJl
c3VsdEIpOworICAgICAgICB9CisgICAgICAgIHZhciByZXN1bHQ2ID0gZmlyc3REb05vdENhcmVB
Ym91dFplcm9TZWNvbmREb2VzKDAuMCk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Ni5yZXN1bHRB
ICE9PSBJbmZpbml0eSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmly
c3REb05vdENhcmVBYm91dFplcm9TZWNvbmREb2VzKDAuMCksIHJlc3VsdEEgPSAiICsgcmVzdWx0
Ni5yZXN1bHRBKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMSAvIHJlc3VsdDYucmVzdWx0QiAh
PT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0
RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjApLCByZXN1bHRCID0gIiArIHJlc3VsdDYu
cmVzdWx0Qik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3VsdDcgPSBmaXJzdENhcmVBYm91
dFplcm9TZWNvbmREb2VzTm90KDAuMSk7CisgICAgICAgIGlmICgxIC8gcmVzdWx0Ny5yZXN1bHRB
ICE9PSBJbmZpbml0eSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgZmly
c3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lc05vdCgwLjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDcu
cmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQ3LnJlc3VsdEIgIT09
IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdENh
cmVBYm91dFplcm9TZWNvbmREb2VzTm90KDAuMSksIHJlc3VsdEIgPSAiICsgcmVzdWx0Ny5yZXN1
bHRCKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcmVzdWx0OCA9IGZpcnN0RG9Ob3RDYXJlQWJv
dXRaZXJvU2Vjb25kRG9lcygwLjEpOworICAgICAgICBpZiAoMSAvIHJlc3VsdDgucmVzdWx0QSAh
PT0gSW5maW5pdHkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRmFpbGVkIGZpcnN0
RG9Ob3RDYXJlQWJvdXRaZXJvU2Vjb25kRG9lcygwLjEpLCByZXN1bHRBID0gIiArIHJlc3VsdDgu
cmVzdWx0QSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKDEgLyByZXN1bHQ4LnJlc3VsdEIgIT09
IEluZmluaXR5KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCBmaXJzdERv
Tm90Q2FyZUFib3V0WmVyb1NlY29uZERvZXMoMC4xKSwgcmVzdWx0QiA9ICIgKyByZXN1bHQ4LnJl
c3VsdEIpOworICAgICAgICB9CisgICAgfQorfQordmVyaWZ5TmVnYXRpdmVaZXJvSXNQcmVzZXJ2
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0
aC1mbG9vci1iYXNpY3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21h
dGgtZmxvb3ItYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0NDhlYjk5MjU4NTY3OTA5YTczYTVjN2Q4
OTQ0ZWM3OWQ2ZTBjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL21hdGgtZmxvb3ItYmFzaWNzLmpzCkBAIC0wLDAgKzEsMjU3IEBACisKK2Z1
bmN0aW9uIG1hdGhGbG9vck9uSW50ZWdlcnModmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguZmxv
b3IodmFsdWUpOworfQorbm9JbmxpbmUobWF0aEZsb29yT25JbnRlZ2Vycyk7CisKK2Z1bmN0aW9u
IG1hdGhGbG9vck9uRG91Ymxlcyh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5mbG9vcih2YWx1
ZSk7Cit9Citub0lubGluZShtYXRoRmxvb3JPbkRvdWJsZXMpOworCitmdW5jdGlvbiBtYXRoRmxv
b3JPbkJvb2xlYW5zKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKTsKK30K
K25vSW5saW5lKG1hdGhGbG9vck9uQm9vbGVhbnMpOworCisvLyBUaGUgdHJpdmlhbCBjYXNlcyBm
aXJzdC4KK2ZvciAodmFyIGkgPSAxOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZmxvb3JlZFZh
bHVlID0gbWF0aEZsb29yT25JbnRlZ2VycyhpKTsKKyAgICBpZiAoZmxvb3JlZFZhbHVlICE9PSBp
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoIiArIGkgKyAi
KSA9ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9v
ck9uSW50ZWdlcnMoLWkpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IC1pKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoIiArIC1pICsgIikgPSAiICsgZmxv
b3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVMb3cgPSBpICsgMC40OworICAgIHZhciBmbG9v
cmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoZG91YmxlTG93KTsKKyAgICBpZiAoZmxvb3Jl
ZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91Ymxl
cygiICsgZG91YmxlTG93ICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3Vi
bGVIaWdoID0gaSArIDAuNjsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3Vi
bGVzKGRvdWJsZUhpZ2gpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IGkpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigibWF0aEZsb29yT25Eb3VibGVzKCIgKyBkb3VibGVIaWdoICsgIikgPSAi
ICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVNaWQgPSBpICsgMC41OworICAgIHZh
ciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoZG91YmxlTWlkKTsKKyAgICBpZiAo
Zmxvb3JlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9u
RG91YmxlcygiICsgZG91YmxlTWlkICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZh
ciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JPbkRvdWJsZXMoLTAuNik7CisgICAgaWYgKGZsb29y
ZWRWYWx1ZSAhPT0gLTEuMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JPbkRv
dWJsZXMoLTAuNikgPSAiICsgZmxvb3JlZFZhbHVlKTsKK30KKworLy8gU29tZSBtb3JlIGludGVy
ZXN0aW5nIGNhc2VzLCBzb21lIG9mIHRoZW0gd2VsbCBPU1IgZXhpdCB3aGVuIHRoZSByZXR1cm4g
dmFsdWUgaXMgemVyby4KK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIg
Zmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25JbnRlZ2VycyhpKTsKKyAgICBpZiAoZmxvb3JlZFZh
bHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMo
IiArIGkgKyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGZsb29yZWRWYWx1ZSA9
IG1hdGhGbG9vck9uSW50ZWdlcnMoLWkpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IC1pKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uSW50ZWdlcnMoLSIgKyBpICsgIikg
PSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBmbG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JP
bkRvdWJsZXMoLTAuNCk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gLTEuMDApCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigibWF0aEZsb29yT25Eb3VibGVzKC0wLjQpID0gIiArIGZsb29yZWRW
YWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKC0wLjUp
OworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IC0xLjApCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigibWF0aEZsb29yT25Eb3VibGVzKC0wLjUpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2
YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKC0wKTsKKyAgICBpZiAoIShmbG9v
cmVkVmFsdWUgPT09IDAgJiYgKDEvZmxvb3JlZFZhbHVlKSA9PT0gLUluZmluaXR5KSkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JPbkRvdWJsZXMoLTApID0gIiArIGZsb29yZWRW
YWx1ZSk7CisKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKE5hTik7
CisgICAgaWYgKGZsb29yZWRWYWx1ZSA9PT0gZmxvb3JlZFZhbHVlKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcyhOYU4pID0gIiArIGZsb29yZWRWYWx1ZSk7CisK
KyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKE51bWJlci5QT1NJVElW
RV9JTkZJTklUWSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gTnVtYmVyLlBPU0lUSVZFX0lO
RklOSVRZKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcyhOdW1i
ZXIuUE9TSVRJVkVfSU5GSU5JVFkpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZmxv
b3JlZFZhbHVlID0gbWF0aEZsb29yT25Eb3VibGVzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7
CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcyhOdW1iZXIuTkVHQVRJVkVf
SU5GSU5JVFkpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgYm9vbGVhbiA9ICEhKGkg
JSAyKTsKKyAgICB2YXIgZmxvb3JlZEJvb2xlYW4gPSBtYXRoRmxvb3JPbkJvb2xlYW5zKGJvb2xl
YW4pOworICAgIGlmIChmbG9vcmVkQm9vbGVhbiAhPSBib29sZWFuKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIm1hdGhGbG9vck9uRG91YmxlcygiICsgYm9vbGVhbiArICIpID0gIiArIGZsb29y
ZWRCb29sZWFuKTsKK30KKworZnVuY3Rpb24gdXNlbGVzc01hdGhGbG9vcih2YWx1ZSkKK3sKKyAg
ICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZXwwKTsKK30KK25vSW5saW5lKHVzZWxlc3NNYXRoRmxv
b3IpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFyIGZsb29yZWRW
YWx1ZSA9IHVzZWxlc3NNYXRoRmxvb3IoaSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gaSkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aEZsb29yKCIgKyBpICsgIikgPSAi
ICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBkb3VibGVMb3cgPSBpICsgMC40OworICAgIHZh
ciBmbG9vcmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZsb29yKGRvdWJsZUxvdyk7CisgICAgaWYgKGZs
b29yZWRWYWx1ZSAhPT0gaSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ1c2VsZXNzTWF0aEZs
b29yKCIgKyBkb3VibGVMb3cgKyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGRv
dWJsZUhpZ2ggPSBpICsgMC42OworICAgIHZhciBmbG9vcmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZs
b29yKGRvdWJsZUhpZ2gpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09IGkpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhGbG9vcigiICsgZG91YmxlSGlnaCArICIpID0gIiAr
IGZsb29yZWRWYWx1ZSk7CisKKyAgICB2YXIgZG91YmxlTWlkID0gaSArIDAuNTsKKyAgICB2YXIg
Zmxvb3JlZFZhbHVlID0gdXNlbGVzc01hdGhGbG9vcihkb3VibGVNaWQpOworICAgIGlmIChmbG9v
cmVkVmFsdWUgIT09IGkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhGbG9v
cigiICsgZG91YmxlTWlkICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZhciBmbG9v
cmVkVmFsdWUgPSB1c2VsZXNzTWF0aEZsb29yKC0wLjQpOworICAgIGlmIChmbG9vcmVkVmFsdWUg
IT09IDApCisgICAgICAgIHRocm93IG5ldyBFcnJvcigidXNlbGVzc01hdGhGbG9vcigtMC40KSA9
ICIgKyBmbG9vcmVkVmFsdWUpOworCisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IHVzZWxlc3NNYXRo
Rmxvb3IoLTAuNSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJ1c2VsZXNzTWF0aEZsb29yKC0wLjUpID0gIiArIGZsb29yZWRWYWx1ZSk7CisK
KyAgICB2YXIgZmxvb3JlZFZhbHVlID0gdXNlbGVzc01hdGhGbG9vcigtMC42KTsKKyAgICBpZiAo
Zmxvb3JlZFZhbHVlICE9PSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInVzZWxlc3NNYXRo
Rmxvb3IoLTAuNikgPSAiICsgZmxvb3JlZFZhbHVlKTsKK30KKworZnVuY3Rpb24gbWF0aEZsb29y
V2l0aE92ZXJmbG93KHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKHZhbHVlKTsKK30K
K25vSW5saW5lKG1hdGhGbG9vcldpdGhPdmVyZmxvdyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MWU0OyArK2kpIHsKKyAgICB2YXIgYmlnVmFsdWUgPSAxMDAwMDAwMDAwMDAwOworICAgIHZhciBm
bG9vcmVkVmFsdWUgPSBtYXRoRmxvb3JXaXRoT3ZlcmZsb3coYmlnVmFsdWUpOworICAgIGlmIChm
bG9vcmVkVmFsdWUgIT09IGJpZ1ZhbHVlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhG
bG9vcldpdGhPdmVyZmxvdygiICsgYmlnVmFsdWUgKyAiKSA9ICIgKyBmbG9vcmVkVmFsdWUpOwor
fQorCitmdW5jdGlvbiBtYXRoRmxvb3JDb25zdW1lZEFzRG91YmxlKHZhbHVlKQoreworICAgIHJl
dHVybiBNYXRoLmZsb29yKHZhbHVlKSAqIDAuNTsKK30KK25vSW5saW5lKG1hdGhGbG9vckNvbnN1
bWVkQXNEb3VibGUpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgdmFy
IGRvdWJsZVZhbHVlID0gaSArIDAuMTsKKyAgICB2YXIgZmxvb3JlZFZhbHVlID0gbWF0aEZsb29y
Q29uc3VtZWRBc0RvdWJsZShkb3VibGVWYWx1ZSk7CisgICAgaWYgKGZsb29yZWRWYWx1ZSAhPT0g
KGkgKiAwLjUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vckNvbnN1bWVkQXNE
b3VibGUoIiArIGRvdWJsZVZhbHVlICsgIikgPSAiICsgZmxvb3JlZFZhbHVlKTsKKworICAgIHZh
ciBkb3VibGVWYWx1ZSA9IGkgKyAwLjY7CisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1hdGhGbG9v
ckNvbnN1bWVkQXNEb3VibGUoZG91YmxlVmFsdWUpOworICAgIGlmIChmbG9vcmVkVmFsdWUgIT09
IChpICogMC41KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JDb25zdW1lZEFz
RG91YmxlKCIgKyBkb3VibGVWYWx1ZSArICIpID0gIiArIGZsb29yZWRWYWx1ZSk7CisKK30KKwor
ZnVuY3Rpb24gbWF0aEZsb29yRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyh2YWx1ZSkKK3sKKyAg
ICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSl8MDsKK30KK25vSW5saW5lKG1hdGhGbG9vckRvZXNO
b3RDYXJlQWJvdXRNaW51c1plcm8pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7
CisgICAgdmFyIGRvdWJsZU1pZCA9IGkgKyAwLjU7CisgICAgdmFyIGZsb29yZWRWYWx1ZSA9IG1h
dGhGbG9vckRvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8oZG91YmxlTWlkKTsKKyAgICBpZiAoZmxv
b3JlZFZhbHVlICE9PSBpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vckRvZXNO
b3RDYXJlQWJvdXRNaW51c1plcm8oIiArIGRvdWJsZU1pZCArICIpID0gIiArIGZsb29yZWRWYWx1
ZSk7Cit9CisKKworLy8gKioqIEZ1bmN0aW9uIGFyZ3VtZW50cy4gKioqCitmdW5jdGlvbiBtYXRo
Rmxvb3JOb0FyZ3VtZW50cygpCit7CisgICAgcmV0dXJuIE1hdGguZmxvb3IoKTsKK30KK25vSW5s
aW5lKG1hdGhGbG9vck5vQXJndW1lbnRzKTsKKworZnVuY3Rpb24gbWF0aEZsb29yVG9vTWFueUFy
Z3VtZW50cyhhLCBiLCBjKQoreworICAgIHJldHVybiBNYXRoLmZsb29yKGEsIGIsIGMpOworfQor
bm9JbmxpbmUobWF0aEZsb29yVG9vTWFueUFyZ3VtZW50cyk7CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMWU0OyArK2kpIHsKKyAgICB2YXIgdmFsdWUgPSBtYXRoRmxvb3JOb0FyZ3VtZW50cygpOwor
ICAgIGlmICh2YWx1ZSA9PT0gdmFsdWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibWF0aEZs
b29yTm9Bcmd1bWVudHMoKSA9ICIgKyB2YWx1ZSk7CisKKyAgICB2YXIgdmFsdWUgPSBtYXRoRmxv
b3JUb29NYW55QXJndW1lbnRzKDIuMSwgMywgNSk7CisgICAgaWYgKHZhbHVlICE9PSAyKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIm1hdGhGbG9vclRvb01hbnlBcmd1bWVudHMoKSA9ICIgKyB2
YWx1ZSk7Cit9CisKKworLy8gKioqIENvbnN0YW50IGFzIGFyZ3VtZW50cy4gKioqCitmdW5jdGlv
biB0ZXN0TWF0aEZsb29yT25Db25zdGFudHMoKQoreworICAgIHZhciB2YWx1ZSA9IE1hdGguZmxv
b3IoMCk7CisgICAgaWYgKHZhbHVlICE9PSAwKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1h
dGguZmxvb3IoMCkgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguZmxvb3IoLTAp
OworICAgIGlmICghKHZhbHVlID09PSAwICYmICgxL3ZhbHVlKSA9PT0gLUluZmluaXR5KSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmZsb29yKC0wKSA9ICIgKyB2YWx1ZSk7CisgICAg
dmFyIHZhbHVlID0gTWF0aC5mbG9vcigxKTsKKyAgICBpZiAodmFsdWUgIT09IDEpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiTWF0aC5mbG9vcigxKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZh
bHVlID0gTWF0aC5mbG9vcigtMSk7CisgICAgaWYgKHZhbHVlICE9PSAtMSkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJNYXRoLmZsb29yKC0xKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVl
ID0gTWF0aC5mbG9vcig0Mik7CisgICAgaWYgKHZhbHVlICE9PSA0MikKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJNYXRoLmZsb29yKDQyKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZhbHVlID0g
TWF0aC5mbG9vcigtNDIuMik7CisgICAgaWYgKHZhbHVlICE9PSAtNDMpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiTWF0aC5mbG9vcigtNDIuMikgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1
ZSA9IE1hdGguZmxvb3IoTmFOKTsKKyAgICBpZiAodmFsdWUgPT09IHZhbHVlKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIk1hdGguZmxvb3IoTmFOKSA9ICIgKyB2YWx1ZSk7CisgICAgdmFyIHZh
bHVlID0gTWF0aC5mbG9vcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVEkpOworICAgIGlmICh2YWx1
ZSA9PT0gdmFsdWUpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5mbG9vcihOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVEkpID0gIiArIHZhbHVlKTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmZs
b29yKE51bWJlci5ORUdBVElWRV9JTkZJTklUSSk7CisgICAgaWYgKHZhbHVlID09PSB2YWx1ZSkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNYXRoLmZsb29yKE51bWJlci5ORUdBVElWRV9JTkZJ
TklUSSkgPSAiICsgdmFsdWUpOworICAgIHZhciB2YWx1ZSA9IE1hdGguZmxvb3IoTWF0aC5FKTsK
KyAgICBpZiAodmFsdWUgIT09IDIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWF0aC5mbG9v
cihNYXRoLkUpID0gIiArIHZhbHVlKTsKK30KK25vSW5saW5lKHRlc3RNYXRoRmxvb3JPbkNvbnN0
YW50cyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB0ZXN0TWF0aEZs
b29yT25Db25zdGFudHMoKTsKK30KKworCisvLyAqKiogU3RydWN0IHRyYW5zaXRpb24uICoqKgor
ZnVuY3Rpb24gbWF0aEZsb29yU3RydWN0VHJhbnNpdGlvbih2YWx1ZSkKK3sKKyAgICByZXR1cm4g
TWF0aC5mbG9vcih2YWx1ZSk7Cit9Citub0lubGluZShtYXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9u
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciB2YWx1ZSA9IG1h
dGhGbG9vclN0cnVjdFRyYW5zaXRpb24oNDIuNSk7CisgICAgaWYgKHZhbHVlICE9PSA0MikKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKDQyLjUpID0g
IiArIHZhbHVlKTsKK30KKworTWF0aC5mbG9vciA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1l
bnRzWzBdICsgNTsgfQorCit2YXIgdmFsdWUgPSBtYXRoRmxvb3JTdHJ1Y3RUcmFuc2l0aW9uKDQy
KTsKK2lmICh2YWx1ZSAhPT0gNDcpCisgICAgdGhyb3cgbmV3IEVycm9yKCJtYXRoRmxvb3JTdHJ1
Y3RUcmFuc2l0aW9uKDQyKSBhZnRlciB0cmFuc2l0aW9uID0gIiArIHZhbHVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZC1zaG91bGQt
bm90LXVzZS10cnVuY2F0ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
bWF0aC1yb3VuZC1zaG91bGQtbm90LXVzZS10cnVuY2F0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWUwNzgy
ZDM0MDIyZDc5ODVhZjM2YjY4NzQ5OTEzNzYzYzA2NGU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kLXNob3VsZC1ub3QtdXNl
LXRydW5jYXRlLmpzCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIG1hdGhSb3VuZERvZXNOb3RD
YXJlQWJvdXRNaW51c1plcm8odmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUp
OworfQorbm9JbmxpbmUobWF0aFJvdW5kRG9lc05vdENhcmVBYm91dE1pbnVzWmVybyk7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2YXIgZG91YmxlTWlkID0gLTk5MDEg
LSAwLjY7CisgICAgdmFyIHJvdW5kZWRWYWx1ZSA9IG1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRN
aW51c1plcm8oZG91YmxlTWlkKTsKKyAgICBpZiAocm91bmRlZFZhbHVlICE9PSAtOTkwMikKKyAg
ICAgICAgdGhyb3cgIm1hdGhSb3VuZERvZXNOb3RDYXJlQWJvdXRNaW51c1plcm8oIiArIGRvdWJs
ZU1pZCArICIpID0gIiArIHJvdW5kZWRWYWx1ZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1pbmZpbml0eS5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGluZy1pbmZpbml0eS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMWUwMjFlMDBiYzYxMDg1MGZjNDI5YjM2ZDZjNDgxY2RlZjdmYWQwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJv
dW5kaW5nLWluZmluaXR5LmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0
ZXN0Um91bmQodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUpOworfQorbm9J
bmxpbmUodGVzdFJvdW5kKTsKKworZnVuY3Rpb24gdGVzdEZsb29yKHZhbHVlKQoreworICAgIHJl
dHVybiBNYXRoLmZsb29yKHZhbHVlKTsKK30KK25vSW5saW5lKHRlc3RGbG9vcik7CisKK2Z1bmN0
aW9uIHRlc3RDZWlsKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmNlaWwodmFsdWUpOworfQor
bm9JbmxpbmUodGVzdENlaWwpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7Cisg
ICAgc2hvdWxkQmUodGVzdFJvdW5kKEluZmluaXR5KSwgSW5maW5pdHkpOworICAgIHNob3VsZEJl
KHRlc3RSb3VuZCgtSW5maW5pdHkpLCAtSW5maW5pdHkpOworICAgIHNob3VsZEJlKHRlc3RGbG9v
cihJbmZpbml0eSksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZSh0ZXN0Rmxvb3IoLUluZmluaXR5
KSwgLUluZmluaXR5KTsKKyAgICBzaG91bGRCZSh0ZXN0Q2VpbChJbmZpbml0eSksIEluZmluaXR5
KTsKKyAgICBzaG91bGRCZSh0ZXN0Q2VpbCgtSW5maW5pdHkpLCAtSW5maW5pdHkpOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5n
LW5hbi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1yb3VuZGlu
Zy1uYW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNjY2RiYzdmN2Q2NjllNWUzZDg4OWYxNDUyYzhhM2RjYTE3
Y2M1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvbWF0aC1yb3VuZGluZy1uYW4uanMKQEAgLTAsMCArMSwyOCBAQAorZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RSb3VuZCh2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7Cit9
Citub0lubGluZSh0ZXN0Um91bmQpOworCitmdW5jdGlvbiB0ZXN0Rmxvb3IodmFsdWUpCit7Cisg
ICAgcmV0dXJuIE1hdGguZmxvb3IodmFsdWUpOworfQorbm9JbmxpbmUodGVzdEZsb29yKTsKKwor
ZnVuY3Rpb24gdGVzdENlaWwodmFsdWUpCit7CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7
Cit9Citub0lubGluZSh0ZXN0Q2VpbCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kp
IHsKKyAgICBzaG91bGRCZShOdW1iZXIuaXNOYU4odGVzdFJvdW5kKE5hTikpLCB0cnVlKTsKKyAg
ICBzaG91bGRCZShOdW1iZXIuaXNOYU4odGVzdEZsb29yKE5hTikpLCB0cnVlKTsKKyAgICBzaG91
bGRCZShOdW1iZXIuaXNOYU4odGVzdENlaWwoTmFOKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5lZ2F0aXZl
LXplcm8uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21hdGgtcm91bmRp
bmctbmVnYXRpdmUtemVyby5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmFlMjc4NTBjMDI5OTAyMTMzYzYwOTRk
MWQ1YzI3OTliYzU3YWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9tYXRoLXJvdW5kaW5nLW5lZ2F0aXZlLXplcm8uanMKQEAgLTAsMCArMSw3
MCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSb3VuZCh2YWx1ZSkKK3sKKyAgICByZXR1cm4g
TWF0aC5yb3VuZCh2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Um91bmQpOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZCgtMC40KSwg
LUluZmluaXR5KTsKKyAgICBzaG91bGRCZSgxIC8gdGVzdFJvdW5kKC0wLjUpLCAtSW5maW5pdHkp
OworICAgIHNob3VsZEJlKDEgLyB0ZXN0Um91bmQoLTAuNiksIC0xLjApOworICAgIHNob3VsZEJl
KDEgLyB0ZXN0Um91bmQoLTAuMCksIC1JbmZpbml0eSk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RS
b3VuZCgwLjEpLCBJbmZpbml0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGbG9vcih2YWx1ZSkKK3sK
KyAgICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Rmxvb3IpOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RG
bG9vcigtMC4wKSwgLUluZmluaXR5KTsKK30KKworZnVuY3Rpb24gdGVzdENlaWwodmFsdWUpCit7
CisgICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSk7Cit9Citub0lubGluZSh0ZXN0Q2VpbCk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBzaG91bGRCZSgxIC8gdGVzdENl
aWwoLTAuMCksIC1JbmZpbml0eSk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RDZWlsKC0wLjkpLCAt
SW5maW5pdHkpOworfQorCitmdW5jdGlvbiB0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8odmFsdWUp
Cit7CisgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUpIHwgMDsKK30KK25vSW5saW5lKHRlc3RS
b3VuZE5vbk5lZ2F0aXZlWmVybyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsK
KyAgICBzaG91bGRCZSh0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8oMC40KSwgMCk7CisgICAgc2hv
dWxkQmUodGVzdFJvdW5kTm9uTmVnYXRpdmVaZXJvKDAuNSksIDEpOworICAgIHNob3VsZEJlKHRl
c3RSb3VuZE5vbk5lZ2F0aXZlWmVybygwLjYpLCAxKTsKKyAgICBzaG91bGRCZSh0ZXN0Um91bmRO
b25OZWdhdGl2ZVplcm8oMC4wKSwgMCk7CisgICAgc2hvdWxkQmUodGVzdFJvdW5kTm9uTmVnYXRp
dmVaZXJvKDAuMSksIDApOworfQorc2hvdWxkQmUoMSAvIHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVy
bygtMC40KSwgSW5maW5pdHkpOworCitmdW5jdGlvbiB0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8y
KHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlKSB8IDA7Cit9Citub0lubGlu
ZSh0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8yKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7
ICsraSkgeworICAgIHNob3VsZEJlKDEgLyB0ZXN0Um91bmROb25OZWdhdGl2ZVplcm8yKC0wLjQp
LCBJbmZpbml0eSk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZE5vbk5lZ2F0aXZlWmVybzIo
LTAuNSksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZSgxIC8gdGVzdFJvdW5kTm9uTmVnYXRpdmVa
ZXJvMigtMC42KSwgLTEuMCk7CisgICAgc2hvdWxkQmUoMSAvIHRlc3RSb3VuZE5vbk5lZ2F0aXZl
WmVybzIoLTAuMCksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZSgxIC8gdGVzdFJvdW5kTm9uTmVn
YXRpdmVaZXJvMigwLjEpLCBJbmZpbml0eSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
d2Via2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwppbmRl
eCBiODE1ZWFlZTI3YWViYmViMDQ1NGUxOWQ1YjkwZjVhMWQwYjQ3NWNiLi4zNGMxN2QyMDhlZWQz
NmEwZWYzNTRlMDRkYjJlY2MwNmI4ODYzMGJmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZworKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE2LTAyLTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIFtERkddW0ZUTF1bQjNdIFN1cHBvcnQgZmxvb3IgYW5kIGNlaWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDY4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZG9jcy9iMy9p
bnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wMi0xNiAgSm9uYXRoYW4g
RGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSByZWRpcmVjdCBmb3IgQjMg
ZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sIGIvV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2Nz
L2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCmluZGV4IDZhNTNjNTQ3ZmEzOTA3
YTJkMTVlY2VmOWRlM2FhNTgxNmEwZTdhZTQuLjhlODRiNDhlMzFhM2UxMzU3YTE0OGIxMjlmNmFi
NDU0YWQxM2ZmZWYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRl
cm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAorKysgYi9XZWJzaXRlcy93ZWJraXQub3JnL2Rv
Y3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKQEAgLTI3Miw2ICsyNzIsOSBA
QAogICAgICAgPGR0PlQgQ2VpbChUKTwvZHQ+CiAgICAgICA8ZGQ+Q2VpbGluZy4gIFZhbGlkIGZv
ciBGbG9hdCBhbmQgRG91YmxlLjwvZGQ+CiAKKyAgICAgIDxkdD5UIEZsb29yKFQpPC9kdD4KKyAg
ICAgIDxkZD5GbG9vcmluZy4gIFZhbGlkIGZvciBGbG9hdCBhbmQgRG91YmxlLjwvZGQ+CisKICAg
ICAgIDxkdD5UIFNxcnQoVCk8L2R0PgogICAgICAgPGRkPlNxdWFyZSByb290LiAgVmFsaWQgZm9y
IEZsb2F0IGFuZCBEb3VibGUuPC9kZD4KIAo=
</data>
<flag name="review"
          id="297289"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>