<?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>44626</bug_id>
          
          <creation_ts>2010-08-25 11:14:26 -0700</creation_ts>
          <short_desc>Remove endTagRequirement now that the LegacyHTMLDocumentParser is dead</short_desc>
          <delta_ts>2011-02-25 13:18:51 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269366</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 11:14:26 -0700</bug_when>
    <thetext>Remove endTagRequirement now that the LegacyHTMLDocumentParser is dead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269376</commentid>
    <comment_count>1</comment_count>
      <attachid>65446</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 11:17:53 -0700</bug_when>
    <thetext>Created attachment 65446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269383</commentid>
    <comment_count>2</comment_count>
      <attachid>65446</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 11:22:23 -0700</bug_when>
    <thetext>Comment on attachment 65446
Patch

Well, this is an improvement.  There&apos;s still more work that needs to be done here, like adding tests and validating the list.

WebCore/ChangeLog:8
 +          Sterilization is covered by a bunch of tests.  innerHTML behavior is sadly not.
Sterilization ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269390</commentid>
    <comment_count>3</comment_count>
      <attachid>65448</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 11:27:52 -0700</bug_when>
    <thetext>Created attachment 65448
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269396</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-25 11:33:48 -0700</bug_when>
    <thetext>Attachment 65446 did not build on qt:
Build output: http://queues.webkit.org/results/3769690</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269399</commentid>
    <comment_count>5</comment_count>
      <attachid>65450</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 11:39:18 -0700</bug_when>
    <thetext>Created attachment 65450
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269400</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 11:39:51 -0700</bug_when>
    <thetext>Holy layering violations, Batman!  That Qt code is so wrong is hurts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269444</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-25 12:48:36 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Holy layering violations, Batman!  That Qt code is so wrong is hurts.

;-) It seems that our TODO list just keeps growing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269459</commentid>
    <comment_count>8</comment_count>
      <attachid>65450</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 13:18:10 -0700</bug_when>
    <thetext>Comment on attachment 65450
Patch for landing

Rejecting patch 65450 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--wait-for-httpd&apos;, &apos;--ignore-tests&apos;, &apos;compositing&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 20923 test cases.
animations/combo-transform-translate+scale.html -&gt; failed

Exiting early after 1 failures. 98 tests run.
41.40s total testing time

97 test cases (98%) succeeded
1 test case (1%) had incorrect layout

Full output: http://queues.webkit.org/results/3705632</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269614</commentid>
    <comment_count>9</comment_count>
      <attachid>65450</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 17:03:12 -0700</bug_when>
    <thetext>Comment on attachment 65450
Patch for landing

Clearing flags on attachment: 65450

Committed r66057: &lt;http://trac.webkit.org/changeset/66057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269615</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 17:03:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269632</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 17:33:50 -0700</bug_when>
    <thetext>Committed r66062: &lt;http://trac.webkit.org/changeset/66062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269672</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-25 18:52:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66057 might have broken GTK Linux 64-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/66056
http://trac.webkit.org/changeset/66057
http://trac.webkit.org/changeset/66058
http://trac.webkit.org/changeset/66060
http://trac.webkit.org/changeset/66053</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357985</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-25 09:53:28 -0800</bug_when>
    <thetext>From the ChangeLog - &quot;This is just moving code and should have no functional change&quot;

There was a somewhat massive functional change to HTMLElement::deprecatedCreateContextualFragment(), HTMLElement::setInnerText(), and HTMLElement::setOuterText() that broke a few real world sites.

I&apos;ll file a followup bug with a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358129</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-25 12:55:02 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; From the ChangeLog - &quot;This is just moving code and should have no functional change&quot;
&gt; 
&gt; There was a somewhat massive functional change to HTMLElement::deprecatedCreateContextualFragment(), HTMLElement::setInnerText(), and HTMLElement::setOuterText() that broke a few real world sites.
&gt; 
&gt; I&apos;ll file a followup bug with a test case.

Thanks!  If you post a bug and test I&apos;ll be happy to take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358143</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-25 13:18:51 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; From the ChangeLog - &quot;This is just moving code and should have no functional change&quot;
&gt; &gt; 
&gt; &gt; There was a somewhat massive functional change to HTMLElement::deprecatedCreateContextualFragment(), HTMLElement::setInnerText(), and HTMLElement::setOuterText() that broke a few real world sites.
&gt; &gt; 
&gt; &gt; I&apos;ll file a followup bug with a test case.
&gt; 
&gt; Thanks!  If you post a bug and test I&apos;ll be happy to take a look.

Yup, CC&apos;ed you on https://bugs.webkit.org/show_bug.cgi?id=55229</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65446</attachid>
            <date>2010-08-25 11:17:53 -0700</date>
            <delta_ts>2010-08-25 11:27:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44626-20100825111752.patch</filename>
            <type>text/plain</type>
            <size>39599</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2ExNTdlOThhZTE4MTMyMmI1N2Y5YjFiOGVjZWM3MmJiNDI0N2QzMy4uMzVjOTY5NDdlMmRkOGUz
NTcyOWYyMzlmNTE1NGUxYjZkODkzOTM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAxMC0wOC0yNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGVuZFRhZ1JlcXVpcmVtZW50IG5vdyB0aGF0IHRo
ZSBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIgaXMgZGVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2MjYKKworICAgICAgICBTdGVyaWxpemF0aW9u
IGlzIGNvdmVyZWQgYnkgYSBidW5jaCBvZiB0ZXN0cy4gIGlubmVySFRNTCBiZWhhdmlvciBpcyBz
YWRseSBub3QuCisgICAgICAgIEluIGVpdGhlciBjYXNlLCB0aGlzIGlzIGp1c3QgbW92aW5nIGNv
ZGUgYW5kIHNob3VsZCBoYXZlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlLgorCisgICAgICAgICogZWRp
dGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudENhbm5vdEhhdmVFbmRU
YWcpOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNob3VsZFNlbGZDbG9z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kTWFya3Vw
KToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMpOgorICAg
ICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBcmVh
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJSRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEJhc2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MQmxvY2txdW90ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxCb2R5RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxETGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEYXRhR3JpZENlbGxFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGF0YUdyaWRDb2xFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERpdkVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbGVtZW50Ojpub2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVu
dDo6aWVGb3JiaWRzSW5zZXJ0SFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6
ZGVwcmVjYXRlZENyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
OjpzZXRPdXRlclRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb250RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MSFJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSGVhZEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxIZWFkaW5nRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEh0
bWxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElzSW5kZXhFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MTElFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNYXBFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFy
cXVlZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZW51RWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTW9kRWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9MaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTY3Jp
cHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWJsZUNvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVUxpc3RFbGVtZW50
Lmg6CisKIDIwMTAtMDgtMjUgIERhd2l0IEFsZW1heWVodSAgPGFkYXdpdEBrZGUub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFyaXlhIEhpZGF5YXQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDIzZGE5
NGFjMmM0OTdhY2Y2MDRjNWY1YjVhZjZkNjViN2JlMWMxOWEuLjFiYWYxYmM2YTY3MjRkZmQ0MGI4
YTVjY2I4ODdkM2M2MGNiMjY3NjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC02OTUsMTMgKzY5NSwxNiBA
QCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFydE1hcmt1cChWZWN0b3I8VUNoYXI+
JiByZXN1bHQsIGNvbnN0IE5vZGUqIG5vZAogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29s
IGRvZXNIVE1MRm9yYmlkRW5kVGFnKGNvbnN0IE5vZGUgKm5vZGUpCitzdGF0aWMgaW5saW5lIGJv
b2wgZWxlbWVudENhbm5vdEhhdmVFbmRUYWcoY29uc3QgTm9kZSAqbm9kZSkKIHsKLSAgICBpZiAo
bm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7Ci0gICAgICAgIGNvbnN0IEhUTUxFbGVtZW50KiBodG1s
RWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnQqPihub2RlKTsKLSAgICAgICAgcmV0
dXJuIChodG1sRWx0LT5lbmRUYWdSZXF1aXJlbWVudCgpID09IFRhZ1N0YXR1c0ZvcmJpZGRlbik7
Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW5vZGUtPmlzSFRNTEVsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRklYTUU6IGllRm9yYmlkc0luc2Vy
dEhUTUwgbWF5IG5vdCBiZSB0aGUgcmlnaHQgZnVuY3Rpb24gdG8gY2FsbCBoZXJlCisgICAgLy8g
aWVGb3JiaWRzSW5zZXJ0SFRNTCBpcyB1c2VkIHRvIGRpc2FsbG93IHNldHRpbmcgaW5uZXJIVE1M
L291dGVySFRNTAorICAgIC8vIG9yIGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudC4gIEl0IGRvZXMg
bm90IG5lY2Vzc2FyaWx5IGFsaWduIHdpdGgKKyAgICAvLyB3aGljaCBlbGVtZW50cyBzaG91bGQg
YmUgc2VyaWFsaXplZCB3L28gZW5kIHRhZ3MuCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IEhUTUxFbGVtZW50Kj4obm9kZSktPmllRm9yYmlkc0luc2VydEhUTUwoKTsKIH0KIAogLy8gUnVs
ZXMgb2Ygc2VsZi1jbG9zdXJlCkBAIC03MTUsMTQgKzcxOCwxNCBAQCBib29sIE1hcmt1cEFjY3Vt
dWxhdG9yOjpzaG91bGRTZWxmQ2xvc2UoY29uc3QgTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmIChub2RlLT5oYXNDaGlsZE5vZGVzKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmICFkb2VzSFRNTEZvcmJpZEVu
ZFRhZyhub2RlKSkKKyAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmICFlbGVtZW50Q2Fu
bm90SGF2ZUVuZFRhZyhub2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0
cnVlOwogfQogCiB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRNYXJrdXAoVmVjdG9y
PFVDaGFyPiYgcmVzdWx0LCBjb25zdCBOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZS0+aXNF
bGVtZW50Tm9kZSgpIHx8IHNob3VsZFNlbGZDbG9zZShub2RlKSB8fCAoIW5vZGUtPmhhc0NoaWxk
Tm9kZXMoKSAmJiBkb2VzSFRNTEZvcmJpZEVuZFRhZyhub2RlKSkpCisgICAgaWYgKCFub2RlLT5p
c0VsZW1lbnROb2RlKCkgfHwgc2hvdWxkU2VsZkNsb3NlKG5vZGUpIHx8ICghbm9kZS0+aGFzQ2hp
bGROb2RlcygpICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKG5vZGUpKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgcmVzdWx0LmFwcGVuZCgnPCcpOwpAQCAtMTExOCw3ICsxMTIxLDcgQEAgc3Rh
dGljIHZvaWQgc2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyhNYXJrdXBBY2N1bXVsYXRvciYg
YWNjdW11bGF0b3IsIE5vZGUqIG4KICAgICBpZiAoIWNoaWxkcmVuT25seSkKICAgICAgICAgYWNj
dW11bGF0b3IuYXBwZW5kU3RhcnRUYWcobm9kZSwgJm5hbWVzcGFjZUhhc2gpOwogCi0gICAgaWYg
KCEobm9kZS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSAmJiBkb2VzSFRNTEZvcmJpZEVu
ZFRhZyhub2RlKSkpIHsKKyAgICBpZiAoIShub2RlLT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVu
dCgpICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKG5vZGUpKSkgewogICAgICAgICBmb3IgKE5v
ZGUqIGN1cnJlbnQgPSBub2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJy
ZW50LT5uZXh0U2libGluZygpKQogICAgICAgICAgICAgc2VyaWFsaXplTm9kZXNXaXRoTmFtZXNw
YWNlcyhhY2N1bXVsYXRvciwgY3VycmVudCwgbm9kZVRvU2tpcCwgSW5jbHVkZU5vZGUsICZuYW1l
c3BhY2VIYXNoKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IGNlMzhhMjY0
YjA1YzE5NjdhNTU1OWY5Y2E4MDI5OWU0NTliZWVhM2UuLmE1ZWYxNjdjODBiYmY5ZTBhMjBiYWM2
N2Y0YTMxMjdmN2NjOGUxNzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC05Nyw3ICs5
Nyw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUo
QXR0cmlidXRlKik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRh
Z1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc01v
dXNlRm9jdXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxB
cmVhRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCmluZGV4IGNhYzAw
ZTI4ZWVjOWY2MTgzZGExZmZhYWQxOTc2ZTc0MmUxODc1OGYuLjEwNzg0YzNiNjE0ODMxOTg0NzNj
MjE4ZWJjMGNlNjI4NzQ3NWQ3NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKQEAgLTUwLDcgKzUw
LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MQXJlYUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFn
UmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyB0YXJnZXQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmggYi9XZWJD
b3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCmluZGV4IGRmZDg0Zjg0M2VlMDI4YmZjZGVhMGNhYWI4
ZGQ4ZDM2N2EwMGNhZWYuLjA1ZGY4ZjZmNmQxYmFlYWNkNTMxNTFlYzYxMWE3NzczYjIzNDg0NWQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxCUkVsZW1lbnQuaApAQCAtMzYsOCArMzYsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxCUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAg
ICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVy
biBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1M
QmFzZUVsZW1lbnQuaAppbmRleCA2ZmRkMWUxNDA1MTliZGJhODUzOWMxOTcxNWJlMTA4NTVmYzJh
NGJmLi5hYTE0NTRmMzI0ZTc5MzM3NTdiYjc5NzVkYjNjMDRjMjZmYTQ2Y2NhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRN
TEJhc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmly
dHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFn
U3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFsIFN0cmluZyB0YXJnZXQoKSBjb25zdCB7
IHJldHVybiBtX3RhcmdldDsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVs
ZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmgKaW5kZXggZWVhMzA2
NTBiMWM2NjliYzhlMTZmNmQ4OTkyYzBhMTM1MTI2NWNjMy4uNzU3MzA0NWYzMWI0NmY3NzFmODMw
NmYzZjVmNGVkMDJmODgyM2YzOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9u
dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5oCkBAIC0z
Myw4ICszMyw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBIVE1MQmFzZUZvbnRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1MVGFn
U3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlk
ZGVuOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxCbG9ja3F1b3RlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxCbG9ja3F1b3RlRWxlbWVu
dC5oCmluZGV4IGNhODE2MTIwNTZiNzk0YzAyNzNmMmQzODczYmRiN2Q0MjNkMGU1NDMuLjE5NGZl
NTQzYjBmY2NlZmE5N2FmMmVkMTRiODQ3YWI3NWZlNzQ4NTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MQmxvY2txdW90ZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJsb2Nr
cXVvdGVFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IEhUTUxCbG9ja3F1b3RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
LQotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmggYi9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmgKaW5kZXggNjUyNmFjYTRiOTMxN2VhNGYxZDFjM2EyMmEzNDAx
OGE5NmVhNzk5Yi4uZDZlZjE4NWU2ODg4OTIyOTk3YjViMWQ4YzFjNDg1MTEyZTFmZWUzNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuaApAQCAtNjksOCArNjksNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxCb2R5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAot
ICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShj
b25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDE3ZmI2ZThiNWY4YWIzMzJiMGM4MWNlMDRlM2I4Mjli
ZDUyNDE5ZmYuLjc0NjM1NTFkNmEyZTkwOThhOWJlNDRhMDk1Yzk4NmQxZWNjMzdmOGMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtOTcsMTkgKzk3LDYgQEAgSFRNTENhbnZhc0Vs
ZW1lbnQ6On5IVE1MQ2FudmFzRWxlbWVudCgpCiAgICAgICAgIG1fb2JzZXJ2ZXItPmNhbnZhc0Rl
c3Ryb3llZCh0aGlzKTsKIH0KIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLQotSFRN
TFRhZ1N0YXR1cyBIVE1MQ2FudmFzRWxlbWVudDo6ZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCAK
LXsKLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwotICAg
IGlmIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+dXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJp
bGl0eU1vZGUoKSkKLSAgICAgICAgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgCi0KLSAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OmVuZFRhZ1JlcXVpcmVtZW50KCk7Ci19Ci0KLSNlbmRpZgotCiB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0
dHIpCiB7CiAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUgPSBhdHRyLT5uYW1lKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDUyMzJlMDNhZDQ4ZmMwMmNhYzEzMDI5N2Zm
ZmEwN2Y4MGExOGViODYuLmZlZWY5ZDAwNGU3NjcwM2ExZGUzZWM5NzM2YTZmM2IxNTQyNThlNTIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xMTgsMTAgKzExOCw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAKLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0gICAgdmlydHVhbCBI
VE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3Q7Ci0jZW5kaWYKLQogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFs
IFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSop
OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oIGIvV2ViQ29y
ZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaAppbmRleCAyMGRjYTlmMjJiYWZmZWUwOWVlNWY5NjIz
Y2UwNjE2MjNmNzQ5MjI0Li4yNTY5N2ExMWNkNjdmMjhiODk3NTJmOTBhYTZkYTU5OGRkYzljZGY5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIEhUTUxETGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7Ci0KLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBj
b25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogfTsKIAogfSAvL25hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZENlbGxFbGVtZW50LmggYi9XZWJD
b3JlL2h0bWwvSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQuaAppbmRleCA3NjdmN2Q4ZjkzODI3MzFk
Njg5YjdmMDE0MDMzNDU1MThhY2I2NjZmLi42MGFmMTU1ODFlYjgzMzI2ZDdiYTNlMTQ0ZmRkOTdi
ZTY4N2I4NmM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkQ2VsbEVsZW1l
bnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQuaApAQCAtNTMs
OSArNTMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSFRNTERhdGFHcmlkQ2VsbEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLSAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3Ji
aWRkZW47IH0KLSAgICAKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRDb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRN
TERhdGFHcmlkQ29sRWxlbWVudC5oCmluZGV4IDExNmUzZWE1M2EwOTk1ZjdkYzNkNmJhNjY0MDAy
M2EwNTFkYTI1ZTUuLjUxOTgxOTBmN2E1MzIyMmYzMzI1MmM0OTFiYjI5YmIwOWFhMDA2ODggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRDb2xFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxEYXRhR3JpZENvbEVsZW1lbnQuaApAQCAtNjAsNyArNjAsNiBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVx
dWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KICAgICB2aXJ0
dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZShib29sIC8qZGVlcCovKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlZEZyb21UcmVlKGJvb2wgLypkZWVwKi8pOwogICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MRGlyZWN0b3J5RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50
LmgKaW5kZXggNmRmMWI0MzUxNGNjMjBmYjQxYWJlY2JiOTAzMGVmOTYzNzM3MTQ0NS4uYWZkMzg3
NjA4MjMzOTA3NGRlZmI5NTNhZWFjNmE0OTA1ODA5MzlmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEaXJlY3Rv
cnlFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhU
TUxEaXJlY3RvcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi0g
ICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1
cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmgKaW5kZXggMjI2MjUxZDYwMjY0MWEyNTYyMGE3MGQyNTY3Njg2ZGZmNGI4ZDZkNi4uMmUy
YjQxNzEwMjNhZjc2MzFkN2NkMjcyMTBmMjdiYWUzMTZjN2YxOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50
LmgKQEAgLTM2LDggKzM2LDYgQEAgcHJvdGVjdGVkOgogICAgIEhUTUxEaXZFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgSFRN
TFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1Jl
cXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXgg
YmU2YmRkY2Q1YTI4MjQ2OTUxZTUxYzcwMzNkZGVmYzBiNzFmM2UwMC4uZjQwNDg5YjMzNTdjYmQ0
OWJiOTg4NmFhOWJkZDk3Nzg4ZTJmZDdlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC02OCwxNiAr
NjgsNDggQEAgU3RyaW5nIEhUTUxFbGVtZW50Ojpub2RlTmFtZSgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiB0YWdRTmFtZSgpLmxvY2FsTmFtZVVwcGVyKCk7CiAgICAgcmV0dXJuIEVsZW1lbnQ6Om5v
ZGVOYW1lKCk7CiB9Ci0gICAgCi1IVE1MVGFnU3RhdHVzIEhUTUxFbGVtZW50OjplbmRUYWdSZXF1
aXJlbWVudCgpIGNvbnN0Ci17Ci0gICAgaWYgKGhhc0xvY2FsTmFtZSh3YnJUYWcpKQotICAgICAg
ICByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOwotICAgIGlmIChoYXNMb2NhbE5hbWUoZHRUYWcp
IHx8IGhhc0xvY2FsTmFtZShkZFRhZykgfHwgaGFzTG9jYWxOYW1lKHJwVGFnKSB8fCBoYXNMb2Nh
bE5hbWUocnRUYWcpKQotICAgICAgICByZXR1cm4gVGFnU3RhdHVzT3B0aW9uYWw7CiAKLSAgICAv
LyBTYW1lIHZhbHVlcyBhcyA8c3Bhbj4uICBUaGlzIHdheSBjdXN0b20gdGFnIG5hbWUgZWxlbWVu
dHMgd2lsbCBiZWhhdmUgbGlrZSBpbmxpbmUgc3BhbnMuCi0gICAgcmV0dXJuIFRhZ1N0YXR1c1Jl
cXVpcmVkOworYm9vbCBIVE1MRWxlbWVudDo6aWVGb3JiaWRzSW5zZXJ0SFRNTCgpIGNvbnN0Cit7
CisgICAgLy8gRklYTUU6IFN1cHBvc2VkbHkgSUUgZGlzYWxsb3dzIHNldHR0aW5nIGlubmVySFRN
TCwgb3V0ZXJIVE1MCisgICAgLy8gYW5kIGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCBvbiB0aGVz
ZSB0YWdzLiAgV2UgaGF2ZSBubyB0ZXN0cyB0bworICAgIC8vIHZlcmlmeSB0aGlzIGhvd2V2ZXIs
IHNvIHRoaXMgbGlzdCBjb3VsZCBiZSB0b3RhbGx5IHdyb25nLgorICAgIC8vIFRoaXMgbGlzdCB3
YXMgbW92ZWQgZnJvbSB0aGUgcHJldmlvdXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBpbXBsZW1lbnRh
dGlvbi4KKyAgICAvLyBUaGlzIGlzIGFsc28gY2FsbGVkIGZyb20gZWRpdGluZyBhbmQgYXNzdW1l
ZCB0byBiZSB0aGUgbGlzdCBvZiB0YWdzCisgICAgLy8gZm9yIHdoaWNoIG5vIGVuZCB0YWcgc2hv
dWxkIGJlIHNlcmlhbGl6ZWQuIEl0J3MgdW5jbGVhciBpZiB0aGUgbGlzdCBmb3IKKyAgICAvLyBJ
RSBjb21wYXQgYW5kIHRoZSBsaXN0IGZvciBzZXJpYWxpemF0aW9uIHNhbml0eSBhcmUgdGhlIHNh
bWUuCisgICAgaWYgKGhhc0xvY2FsTmFtZShhcmVhVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5h
bWUoYmFzZVRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGJhc2Vmb250VGFnKQorICAgICAg
ICB8fCBoYXNMb2NhbE5hbWUoYnJUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShjb2xUYWcp
CisjaWYgRU5BQkxFKERBVEFHUklEKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUoZGNlbGxUYWcp
CisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShkY29sVGFnKQorI2VuZGlmCisgICAgICAgIHx8IGhh
c0xvY2FsTmFtZShlbWJlZFRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGZyYW1lVGFnKQor
ICAgICAgICB8fCBoYXNMb2NhbE5hbWUoaHJUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShp
bWFnZVRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGltZ1RhZykKKyAgICAgICAgfHwgaGFz
TG9jYWxOYW1lKGlucHV0VGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUoaXNpbmRleFRhZykK
KyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGxpbmtUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFt
ZShtZXRhVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUocGFyYW1UYWcpCisgICAgICAgIHx8
IGhhc0xvY2FsTmFtZShzb3VyY2VUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZSh3YnJUYWcp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAvLyBGSVhNRTogSSdtIG5vdCBzdXJlIHdoeSBk
YXNoYm9hcmQgbW9kZSB3b3VsZCB3YW50IHRvIGNoYW5nZSB0aGUKKyAgICAvLyBzZXJpYWxpemF0
aW9uIG9mIDxjYW52YXM+LCB0aGF0IHNlZW1zIGxpa2UgYSBiYWQgaWRlYS4KKyNpZiBFTkFCTEUo
REFTSEJPQVJEX1NVUFBPUlQpCisgICAgaWYgKGhhc0xvY2FsTmFtZShjYW52YXNUYWcpKSB7Cisg
ICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7CisgICAg
ICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+dXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0
aWJpbGl0eU1vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBIVE1MRWxlbWVudDo6bWFwVG9FbnRyeShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgTWFwcGVkQXR0cmlidXRlRW50cnkmIHJlc3VsdCkg
Y29uc3QKQEAgLTIzOSw3ICsyNzEsNyBAQCBzdGF0aWMgYm9vbCB1c2VMZWdhY3lUcmVlQnVpbGRl
cihEb2N1bWVudCopCiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEhUTUxFbGVtZW50Ojpk
ZXByZWNhdGVkQ3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwLCBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKIHsKICAgICAv
LyBUaGUgZm9sbG93aW5nIGlzIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgZGVmaW5pdGlvbiBhcyB1
c2VkIGJ5IElFLgotICAgIGlmIChlbmRUYWdSZXF1aXJlbWVudCgpID09IFRhZ1N0YXR1c0ZvcmJp
ZGRlbikKKyAgICBpZiAoaWVGb3JiaWRzSW5zZXJ0SFRNTCgpKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIGlmIChoYXNMb2NhbE5hbWUoY29sVGFnKSB8fCBoYXNMb2NhbE5hbWUoY29sZ3JvdXBU
YWcpIHx8IGhhc0xvY2FsTmFtZShmcmFtZXNldFRhZykKQEAgLTM1OSw4ICszOTEsNyBAQCB2b2lk
IEhUTUxFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25D
b2RlJiBlYykKIAogdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cmluZyYg
dGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gRm9sbG93IHRoZSBJRSBzcGVjcyBh
Ym91dCB3aGVuIHRoaXMgaXMgYWxsb3dlZC4KLSAgICBpZiAoZW5kVGFnUmVxdWlyZW1lbnQoKSA9
PSBUYWdTdGF0dXNGb3JiaWRkZW4pIHsKKyAgICBpZiAoaWVGb3JiaWRzSW5zZXJ0SFRNTCgpKSB7
CiAgICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtNDI5LDggKzQ2MCw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVy
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiB2b2lkIEhUTUxF
bGVtZW50OjpzZXRPdXRlclRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICAvLyBGb2xsb3cgdGhlIElFIHNwZWNzIGFib3V0IHdoZW4gdGhpcyBpcyBhbGxv
d2VkLgotICAgIGlmIChlbmRUYWdSZXF1aXJlbWVudCgpID09IFRhZ1N0YXR1c0ZvcmJpZGRlbikg
eworICAgIGlmIChpZUZvcmJpZHNJbnNlcnRIVE1MKCkpIHsKICAgICAgICAgZWMgPSBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5o
CmluZGV4IDVmMDhkMzhkZWQzNjZmNzc0ZWYzY2MyNDRlNjI1MWZmOTNiMzRhOTMuLjZlZGY1YzMw
ZmMyNzA3NmVhNTIwY2Y4MDc1MjQ1YjQyMDYzZGM4MGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC03Miw3
ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9v
bCBzZW5kVG9BbnlFbGVtZW50KTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdS
ZXF1aXJlbWVudCgpIGNvbnN0OworICAgIGJvb2wgaWVGb3JiaWRzSW5zZXJ0SFRNTCgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKICAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggOTdmYzNjM2ZiOWZlOTdhNmUy
MzAwODJjMjM4YzdlNDFjMGViNzYxZS4uNWY0ZGY2NzUyNGVkOTFmN2QwNWUxM2IyOTBjNTA2ZDdi
ODg4YjVkMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSFRNTEVtYmVkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQotCiAgICAgdmlydHVhbCBi
b29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJp
YnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb250
RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oCmluZGV4IGU3ZDk1Yjk1
MzQ5ZGMwNjBmNDgxZWZjYWQ5ZDExOGQzNjMxMGMyNWUuLmY5N2FiMDgwYWI1Y2RlZTBkZjFkOWJm
YmJjOWE5MTE0Nzk1NzdiZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1l
bnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmgKQEAgLTM2LDggKzM2LDYg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxGb250RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKLSAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5k
VGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogCiAg
ICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0
dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXgg
YzdiNzI4MGI1NDVlOWM4ZjRlY2E4NmQxODQ2ZjllYzNjZjgwYTY4Ni4uMjM1MjE4MjUzNTdlMTc5
YTdlNWI5Y2Y0ZmZlZDg3ZTgxMzg4OGM5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oCkBAIC0xMjIsOCArMTIyLDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBy
ZWNhbGNXaWxsVmFsaWRhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1
aXJlZDsgfQotCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sTmFt
ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAppbmRleCBjZDY3Yjg1YTU1ZjE3
ZTYzOGFmMTZiZWIxNmJhYjI1ODE0NjZjZmJmLi4xNTFiMmU4OWFiNDJkZDY0MWYxMzczZjgxMjBm
ODFlYjcxOTIxMzQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0xMTQsOCArMTE0LDYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MRm9ybUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWly
ZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1
bWVudCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKaW5kZXggM2I0OWE3NjljYzY2YWYwNmU1ODg1
N2FhZDU2YzA3NjA5NDI2OTIyNC4uZDhjZjUwOWRlYmQ3ZjkxZmIzNmFhYWY4ODE3YjE4Zjk0OTRj
NzA5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCkBAIC0zOSw4ICszOSw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTEZyYW1lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQotICAKICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJT
dHlsZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKaW5kZXggYzQ4NDI4ZjBkNGQ2NDBj
MjhiMWQ3M2ZiYjlkMmJlYWIyNTI3MmYxMS4uYzc2MTQxNDg3ZWZmNzBjMTJhNmMzMjI3N2NhM2Nm
M2Y2YTMxNDE2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC02Nyw4ICs2Nyw2
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEZyYW1lU2V0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRU
YWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAg
ICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwg
TWFwcGVkQXR0cmlidXRlRW50cnkmIHJlc3VsdCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTEhSRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaAppbmRleCA2
OGY5ZjQ1NjEzZTU2M2EzYmUwYTRkODE1Y2ZjYTc5YzM4MDI2Y2JjLi5lODZiYjU2NWIzYTFhOGVk
ODcyMjc5MGEyOGZjZjVjYWZkMjU0Zjg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEhS
RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgKQEAgLTM1LDggKzM1
LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MSFJFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogICAgIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRU
YWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQotICAg
IAogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBNYXBw
ZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEhl
YWRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmgKaW5kZXggZThmMzQ5
MmUzMTM0MWY3MjI3OTNmZThjOGQwODMxMTIzMjI1YzU3Ny4uMWE1ZGY4NjRjNmU2YmQyMTJkODNl
NzM0YTNmZjljNjhiZjFiZWU5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaApAQCAtMzUsOCArMzUs
NiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSFRNTEhlYWRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRh
Z1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzT3B0aW9uYWw7IH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVt
ZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmgKaW5kZXggOGQ4MzkwNTMx
YTI3NWUzZTg3YTY3YmM1OTM5MGU0NmUyMjI3ZWQyOC4uZjA5Y2ZlM2IxMDhjOTA5M2I3YTcyZTM5
NTVjYTNlYjRmMGVhOGQ4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuaApAQCAtMzMsOCAr
MzMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSFRNTEhlYWRpbmdFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVz
IGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MSHRtbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAppbmRleCA1
YTc0YjNkYWNhYWUzZmZhZjdjNzkyZDNjMGJkMzkwZTBlYTg4OGRjLi5lODU0ZmIxMDcwZWVkMjY2
NDZmMWMxMDQzMTRjZTNkZDA2YTFjM2EyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEh0
bWxFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCkBAIC0zNiw4
ICszNiw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEh0bWxFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVu
ZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KLQog
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgdmlydHVhbCB2b2lkIGlu
c2VydGVkSW50b0RvY3VtZW50KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5k
ZXggOGM1NGZlMGI0YTkwYjE2NDIxODViYWY4ZjAzY2NjOTczOTMwMjA3Yy4uNjFjZDZiNjhlZDY0
OGEzMjI1OWVmNDU3YmVlNDg4MDU3MzBmMzcyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxJRnJhbWVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgK
QEAgLTM1LDggKzM1LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MSUZyYW1lRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRh
Z1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVp
cmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1l
JiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VN
YXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4
IDIzYWE2Yzc5YTA2OWY5ZTlmNTUxN2Y5MjFlNTA0ZWVkOGU3NzgyY2UuLjdmMzgyMTY0ZjlmNzZl
OGQyOGRiNjkxOTEyMGM1MWNjNThkZGY1Y2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAt
ODAsOCArODAsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxNb3ZlVG9OZXdP
d25lckRvY3VtZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVu
ZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9Ci0K
ICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSwgTWFwcGVkQXR0cmlidXRlRW50cnkmIHJlc3VsdCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAppbmRleCBmNWJlNDZhN2U0OWQ3NTNjYzYxYmEzODQ2ZWE2YzI4NmRjNTVmMTQ0Li5lNmNkZGEz
YzNiOWVhNzE3NjM3NmFlODk3NGU4NDkzNDdlODRiZDlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKQEAgLTIxOCw4ICsyMTgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92
ZVRvTmV3T3duZXJEb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdPd25l
ckRvY3VtZW50KCk7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1l
bnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLQogICAgIHZpcnR1YWwg
Ym9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0Vu
dW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIGlucHV0VHlwZSgpICE9IElNQUdFOyB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwv
SFRNTElzSW5kZXhFbGVtZW50LmgKaW5kZXggZDY2YzBlZGVhZGEzNzNlZmQ0NjQxOGZlZTM4OGVh
ODY0NTFjZDBhYi4uODU3ZWY3NTc4N2IyMzRhYjhmZjg0ZjlmOWMwN2NhODRkMWYzYTI2YSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJc0luZGV4RWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuaApAQCAtMzYsNyArMzYsNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIEhUTUxJc0luZGV4RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRU
YWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQogICAg
IHZpcnR1YWwgYm9vbCBjYW5UcmlnZ2VySW1wbGljaXRTdWJtaXNzaW9uKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MTElFbGVtZW50LmgKaW5kZXggMjE3NGZlOGQ2NjkzZDMxNjUzMjllMWJiMmY3
ZmVhYWNiMTdhMmY2MC4uYWQxMmI2N2Y0N2ZmNTM2YTM0NmMxMWU5MmMzNGEyMDRkZTI4ODEwYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTExJRWxlbWVudC5oCkBAIC0zNSw4ICszNSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgSFRNTExJRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAg
IHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IFRhZ1N0YXR1c09wdGlvbmFsOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25z
dCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuaAppbmRleCA2ZTQ2MGUwYjNjMDExNjVkNjVmOGIzMGQzZTM5Mjg4YzVjNTZiNzdiLi4y
ZmI3NTI1OTMwYmFkZGY2MTU4MTRlZjU4ZGZjNjVhY2E0YzM1YWUxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5oCkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzSWNvbigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVsQXR0cmlidXRlLm1faXNJY29uOyB9CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFn
U3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKik7CiAKICAgICB2b2lkIHByb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgK
aW5kZXggOGZmMzkyZmM0YjRkNzA0NjJmNzY3NDhkZDYzZGYyOTY0ZGUyNzg3MC4uYzBjMTM5NTc5
MDk3YjY3ZWRjZGI2ZjdkYTQ3MTg1ZmE3YWU2MzhiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxNYXBFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKQEAg
LTQ3LDggKzQ3LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MTWFwRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1
cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9
Ci0KICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVl
ZUVsZW1lbnQuaAppbmRleCAzMTdiMTM4NGJhNDcxZjI4ZjFlNDRlMmYwYjg4ZTk0NWVkYjU4MjA1
Li4xYjMyMjlhNDAwMWM0ZWNjNTU3NjM1MmQxNGFjNDQ4NGI1ZWY4NDk0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxN
YXJxdWVlRWxlbWVudC5oCkBAIC00Myw4ICs0Myw2IEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6
CiAgICAgSFRNTE1hcnF1ZWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwotICAgIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgbWFw
VG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwv
SFRNTE1lbnVFbGVtZW50LmgKaW5kZXggNzUzYTI4ZGVlYzMxZTUzMjVhZDU3MWUwNDJiOTFhNjI0
Yjc4Y2E2YS4uNmI1ODhlY2IxZDA2NWRjMThlYzBlMmY0OWY0ZjQzN2E4MWJjZDEzMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MTWVudUVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRl
OgogICAgIEhUTUxNZW51RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
LSAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25z
dCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxNZXRhRWxlbWVudC5oCmluZGV4IDZlZTcxOTEzMzg2Mzc5MTNiMWQzMzYxYmViZGY3OWIzMWY3
ODA4YzguLjliMDE3OGU5YjQ1YmZkNzcwMmMyMTE2ZmNmMjQ2NDUxZGY3ZmU3NGMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TE1ldGFFbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBI
VE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2
aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBU
YWdTdGF0dXNGb3JiaWRkZW47IH0KLQogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQo
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmggYi9XZWJDb3Jl
L2h0bWwvSFRNTE1vZEVsZW1lbnQuaAppbmRleCA0MjkyMDA2ODdjYmExYmZiYzZjMTYwMDA3ZDZk
YzlkOTk5NDdhMjZlLi4yYjA5ZTIxODA1ZWI3MTVkYjdkOWE3ZDk0NGU2NjZlNzdhM2Y3YWJlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTE1vZEVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgSFRNTE1vZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0K
LSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MT0xp
c3RFbGVtZW50LmgKaW5kZXggNjJlMmFlMTExOGRiM2ZmZjM5MTg0ZGI3ZDhlMDY2Yjk5YjgwMzcz
Yy4uMTc5ZmVjMGIzNzllMTc4NDZhMWU4N2NlMzZmOWNhZTEyYzVjYmU0MiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE9M
aXN0RWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRN
TE9MaXN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAg
Ci0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaAppbmRleCBjOGI5YzJhYWFkNmQ0ZWE2YTE0YTliZDdjMzNhMWU0NGJi
NTFjMmJjLi5jMTc5MWQ3MDA5ZjIyNjg4OWNiNjA3NGFhZmYyMmZjZWU4MmFlM2U0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtNjYsNyArNjYsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxPcHRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhU
TUxGb3JtRWxlbWVudCogPSAwKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdS
ZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c09wdGlvbmFsOyB9CiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1
c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJT
dHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFBh
cmFncmFwaEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCmlu
ZGV4IDhmZmY2MmRjMTdmODUxYWY0MzU1NGJiOTc3NDhlMTk1NDM3Nzk5N2MuLjZkYmYwNzExMDc5
ZGI1NTY4ZDM2ZmVmMzc0MTNhMzhkMjBlZWM1YWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MUGFyYWdyYXBoRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxl
bWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFBhcmFn
cmFwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0
dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdT
dGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxl
bWVudC5oCmluZGV4IDYwYjkwYTQ3ZjYyNjQxYjQyNmY1YjJlNGEzOWU0YjNlOTRjZjFiZWEuLmYx
M2Y4ZmE2MGMwOTM5ZDk0OWQ4YTc4ZTM2MjRkNDNhOWY3NTBiNTYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaApAQCAtMzcsMTkgKzM3LDE4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFBh
cmFtRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1
YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0
YXR1c0ZvcmJpZGRlbjsgfQotCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSopOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0
ZSopIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJM
cyhMaXN0SGFzaFNldDxLVVJMPiYpIGNvbnN0OwogCisgICAgLy8gRklYTUU6IFRoZXNlIGRvbid0
IG5lZWQgdG8gYmUgc3RvcmVkIGFzIG1lbWJlcnMgYW5kIGluc3RlYWQKKyAgICAvLyBuYW1lKCkg
dmFsdWUoKSBjb3VsZCB1c2UgZ2V0QXR0cmlidXRlKG5hbWVBdHRyL3ZhbHVlQXR0cikuCiAgICAg
QXRvbWljU3RyaW5nIG1fbmFtZTsKICAgICBBdG9taWNTdHJpbmcgbV92YWx1ZTsKIH07CiAKLQot
fQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmgKaW5kZXggZjJmODM1MWUyYWM1ZDI5OGRjMmIyMDg3ZGYwMTFjNzEyOTQ2MWY1Ni4uOGE3OTFi
MTczOGVmY2M1NjFiNDhhZjBkODQ4ZmZiZGE5Y2ViMWVkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmgKQEAgLTY1LDggKzY1LDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgUmVuZGVyV2lk
Z2V0KiByZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVh
bCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3Rh
dHVzUmVxdWlyZWQ7IH0KLQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXaWRnZXQoKSB7IH0KIAog
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmggYi9X
ZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaAppbmRleCBjZjQ4MTgwOTU3ZDAyNDVmMGViMmY1
YTYzNDk1MDA0N2E5NjNkMzVkLi4zY2NkYjg2MDMxZjkxZDRhZTI2NTBiZmI5ODE2NzE5YmQyYTc3
ZGQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIEhUTUxQcmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3Qg
eyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0Vu
dHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIH07CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxRdW90ZUVsZW1lbnQuaAppbmRleCA5YmFiZDhlYzEzNmQ3YTQwYWQxMDRkYjJmYTVlMjhi
YjA3NWE5ZWI2Li4yMjVkZGU4Yjc3N2Q1OTI2ZWU2MTE0NzJkYjZjMTI1NjdmYzljZWQ5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MUXVvdGVFbGVtZW50LmgKQEAgLTM2LDggKzM2LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MUXVvdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwog
ICAgIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0
ZWRJbnRvRG9jdW1lbnQoKTsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMjll
Yjk3ZGM4MDgzYjlhNjBhMTA0MmU0ZTc0NGZlMWUyN2U4MDQ0NS4uYTU2MjllZWQ1MzNiYTI2ZmRi
MmVkY2IzZjkzYmYyZjBmZmYxMzE5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTQ5
LDggKzQ5LDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIHNjcmlwdENvbnRlbnQo
KSBjb25zdDsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oIGIvV2ViQ29y
ZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggYTBkZDk1Mjg4ZTE4NjZkOWQ4NzQ0YzY4
ODQzNTU1ZGNjYzY5MTYxYy4uOGFhMWQwNmNmMzkwNTZhZWNjYzgyMDAxNTUzZjgzOWM2NmJhYjJm
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKQEAgLTQ4LDggKzQ4LDYgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIEhUTUxTb3VyY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50
KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0
cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXggZDY4
YmFiNGE1OTg0N2ZlMzg5MWI0NmRiNzc5OTdlMTJiYTBmMTUyMi4uYjQwMTNiODRjZjNiNGM4ZjQ1
OGIwMzM3OGE5MDhiOGZiMjBmYTEzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTdHls
ZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCkBAIC00MSw4
ICs0MSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFN0eWxlRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICB2
aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBU
YWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgLy8gb3ZlcmxvYWQgZnJvbSBIVE1MRWxlbWVudAog
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2
aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNh
cHRpb25FbGVtZW50LmgKaW5kZXggYjc4ZDhiMGI1N2E4Yjk4ZGM2OWM0ZDVlYWVlZjk0ZDM0MDE0
YWIyYi4uYTJkZDJmYWFlMGIxNTU5MGE5MmE5ODM3ODgyMDQ3NjAzNTk4NmE0ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKQEAgLTM3LDggKzM3LDYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBIVE1MVGFibGVDYXB0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKICAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVx
dWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotICAgIAogICAg
IHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBNYXBwZWRBdHRy
aWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShBdHRyaWJ1dGUqKTsKIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oCmluZGV4IGE5
MzdjOTY3OGQzMmJiMjFmNGJjOGQ0OTEyYTY5ZDA2NDk2NDc4MjcuLjBjOTc0MTNmMDUzZTdlY2Uz
ZjNmYTBkZWEwNTJiYzdhZmEwMzQ5OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDZWxsRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5o
CkBAIC01Niw4ICs1Niw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhU
TUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNP
cHRpb25hbDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxl
bWVudC5jcHAKaW5kZXggNTA3MThiMDcxYzZiNzQ5NDgwNmI4MzAwOTkyOWJkOWJmZGI2NjMzMS4u
MjBiMGYzNjJhYmJiMWJmY2QyODkyZTViNDk4OGZhZWYwYTQ0YWM2YyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVDb2xFbGVtZW50LmNwcApAQCAtNDcsMTEgKzQ3LDYgQEAgUGFzc1JlZlB0cjxIVE1MVGFi
bGVDb2xFbGVtZW50PiBIVE1MVGFibGVDb2xFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUYWJsZUNvbEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAotSFRNTFRhZ1N0YXR1cyBIVE1MVGFibGVDb2xFbGVtZW50Ojpl
bmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGhhc0xvY2FsTmFtZShjb2xU
YWcpID8gVGFnU3RhdHVzRm9yYmlkZGVuIDogVGFnU3RhdHVzT3B0aW9uYWw7Ci19Ci0KIGJvb2wg
SFRNTFRhYmxlQ29sRWxlbWVudDo6bWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSwgTWFwcGVkQXR0cmlidXRlRW50cnkmIHJlc3VsdCkgY29uc3QKIHsKICAgICBpZiAoYXR0
ck5hbWUgPT0gd2lkdGhBdHRyKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q29sRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaAppbmRleCAx
YTczZWM2MDE1MmMyNTZhMzUxYjQyMWUwOWY0NjdhM2ZhNTA2ZDcyLi5jNzUxN2QxMGFjZTYwNDNj
ZDJhZjE3NzhmZGZlYjk1ZDYzM2ExODkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ29sRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgK
QEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVDb2xFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0
dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50
cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmli
dXRlKik7CiAgICAgdmlydHVhbCBib29sIGNhbkhhdmVBZGRpdGlvbmFsQXR0cmlidXRlU3R5bGVE
ZWNscygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4
IDgwZjRhNDI1NjdkY2M3Njk3NjllZGY3ZTBlNGU4MTg3MmJmMjQwNmIuLmRhM2RjMzAzZmQ0YTdk
NThmYmFhZTJmMDljNTk3NTY4NmZlMzhiZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaApAQCAt
NzEsOCArNzEsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUYWJsZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0
dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsg
fQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYsIE1h
cHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVk
QXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShB
dHRyaWJ1dGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCmluZGV4IGNhMjQx
ZDg2NmQ5MDNjYzhjY2JhODJiZDQwZTM5ZWJlZjBmMWFiMWMuLmM0MzM2NzdhYzg0NzhmYzYzN2Jj
YjQ3ZjAyNDIxMGEwMTI3MjliOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVS
b3dFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaApAQCAt
NDksOCArNDksNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlUm93RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRh
Z1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c09wdGlv
bmFsOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuaAppbmRleCAyMjQ4ZTcyY2M0MDk5MjYwMGI3OTgxNDUwZDJlYzM2ODEwODFhMTVmLi5h
ODRjYmRlNmQ1ODRjNjg1MTMyNTcxNmEyOWNlOWY4OWM4ZTFlY2Y4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaApAQCAtNTYsNyArNTYsNiBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWly
ZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNPcHRpb25hbDsgfQogICAgIHZpcnR1YWwg
Ym9vbCBjYW5IYXZlQWRkaXRpb25hbEF0dHJpYnV0ZVN0eWxlRGVjbHMoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZURlY2xz
KFZlY3RvcjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbio+Jik7CiB9OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RF
bGVtZW50LmgKaW5kZXggYzZkNmQwMjgxODJjNTI4MzFmMmJiMzVhODNmYmEzNTk5OTA5MDBiYy4u
ZjkxYmYxYzNiNjFmM2IzZTg3ZjI1NjMyNTA0NzAyYmI2Y2RlZTIxZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0
RWxlbWVudC5oCkBAIC0zNSw4ICszNSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFVM
aXN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1
YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0
YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFs
aWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65448</attachid>
            <date>2010-08-25 11:27:52 -0700</date>
            <delta_ts>2010-08-25 11:39:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-44626-20100825112751.patch</filename>
            <type>text/plain</type>
            <size>39600</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGY2NjJlNzM0OTg4YTE5MzE3NjJjMjk0Y2UwNTZkODZjNDAyZmI4Mi4uNTAxMTcxOTUzYTY0OWU2
NjNjNDViN2MwZDQ5ZTQwOTVkNzU2ZGFmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAxMC0wOC0yNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBSZW1vdmUgZW5kVGFnUmVxdWlyZW1lbnQgbm93IHRoYXQgdGhlIExl
Z2FjeUhUTUxEb2N1bWVudFBhcnNlciBpcyBkZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDYyNgorCisgICAgICAgIFNlcmlhbGl6YXRpb24gaXMg
Y292ZXJlZCBieSBhIGJ1bmNoIG9mIHRlc3RzLiAgaW5uZXJIVE1MIGJlaGF2aW9yIGlzIHNhZGx5
IG5vdC4KKyAgICAgICAgSW4gZWl0aGVyIGNhc2UsIHRoaXMgaXMganVzdCBtb3ZpbmcgY29kZSBh
bmQgc2hvdWxkIGhhdmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBlZGl0aW5n
L21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyk6
CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6c2hvdWxkU2VsZkNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRNYXJrdXApOgor
ICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyk6CisgICAgICAg
ICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEFyZWFFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQlJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MQmFzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxCbG9ja3F1b3RlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTEJvZHlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TERMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxEYXRhR3JpZENvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6Om5vZGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojpp
ZUZvcmJpZHNJbnNlcnRIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpkZXBy
ZWNhdGVkQ3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxF
bGVtZW50OjpzZXRJbm5lclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNl
dE91dGVyVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxIUkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxIZWFkRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTEhlYWRpbmdFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxMSUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNYXJxdWVl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lbnVFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNb2RFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MT0xpc3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxQYXJhbUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUHJlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFRh
YmxlQ29sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxVTGlzdEVsZW1lbnQuaDoK
KwogMjAxMC0wOC0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCAyM2Rh
OTRhYzJjNDk3YWNmNjA0YzVmNWI1YWY2ZDY1YjdiZTFjMTlhLi4xYmFmMWJjNmE2NzI0ZGZkNDBi
OGE1Y2NiODg3ZDNjNjBjYjI2NzY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtNjk1LDEzICs2OTUsMTYg
QEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoVmVjdG9yPFVDaGFy
PiYgcmVzdWx0LCBjb25zdCBOb2RlKiBub2QKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBkb2VzSFRNTEZvcmJpZEVuZFRhZyhjb25zdCBOb2RlICpub2RlKQorc3RhdGljIGlubGluZSBi
b29sIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKGNvbnN0IE5vZGUgKm5vZGUpCiB7Ci0gICAgaWYg
KG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewotICAgICAgICBjb25zdCBIVE1MRWxlbWVudCogaHRt
bEVsdCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxFbGVtZW50Kj4obm9kZSk7Ci0gICAgICAgIHJl
dHVybiAoaHRtbEVsdC0+ZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0dXNGb3JiaWRkZW4p
OwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFub2RlLT5pc0hUTUxFbGVtZW50
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBpZUZvcmJpZHNJbnNl
cnRIVE1MIG1heSBub3QgYmUgdGhlIHJpZ2h0IGZ1bmN0aW9uIHRvIGNhbGwgaGVyZQorICAgIC8v
IGllRm9yYmlkc0luc2VydEhUTUwgaXMgdXNlZCB0byBkaXNhbGxvdyBzZXR0aW5nIGlubmVySFRN
TC9vdXRlckhUTUwKKyAgICAvLyBvciBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQuICBJdCBkb2Vz
IG5vdCBuZWNlc3NhcmlseSBhbGlnbiB3aXRoCisgICAgLy8gd2hpY2ggZWxlbWVudHMgc2hvdWxk
IGJlIHNlcmlhbGl6ZWQgdy9vIGVuZCB0YWdzLgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25z
dCBIVE1MRWxlbWVudCo+KG5vZGUpLT5pZUZvcmJpZHNJbnNlcnRIVE1MKCk7CiB9CiAKIC8vIFJ1
bGVzIG9mIHNlbGYtY2xvc3VyZQpAQCAtNzE1LDE0ICs3MTgsMTQgQEAgYm9vbCBNYXJrdXBBY2N1
bXVsYXRvcjo6c2hvdWxkU2VsZkNsb3NlKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBpZiAobm9kZS0+aGFzQ2hpbGROb2RlcygpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiAhZG9lc0hUTUxGb3JiaWRF
bmRUYWcobm9kZSkpCisgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiAhZWxlbWVudENh
bm5vdEhhdmVFbmRUYWcobm9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kTWFya3VwKFZlY3Rv
cjxVQ2hhcj4mIHJlc3VsdCwgY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUtPmlz
RWxlbWVudE5vZGUoKSB8fCBzaG91bGRTZWxmQ2xvc2Uobm9kZSkgfHwgKCFub2RlLT5oYXNDaGls
ZE5vZGVzKCkgJiYgZG9lc0hUTUxGb3JiaWRFbmRUYWcobm9kZSkpKQorICAgIGlmICghbm9kZS0+
aXNFbGVtZW50Tm9kZSgpIHx8IHNob3VsZFNlbGZDbG9zZShub2RlKSB8fCAoIW5vZGUtPmhhc0No
aWxkTm9kZXMoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhub2RlKSkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIHJlc3VsdC5hcHBlbmQoJzwnKTsKQEAgLTExMTgsNyArMTEyMSw3IEBAIHN0
YXRpYyB2b2lkIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTWFya3VwQWNjdW11bGF0b3Im
IGFjY3VtdWxhdG9yLCBOb2RlKiBuCiAgICAgaWYgKCFjaGlsZHJlbk9ubHkpCiAgICAgICAgIGFj
Y3VtdWxhdG9yLmFwcGVuZFN0YXJ0VGFnKG5vZGUsICZuYW1lc3BhY2VIYXNoKTsKIAotICAgIGlm
ICghKG5vZGUtPmRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkgJiYgZG9lc0hUTUxGb3JiaWRF
bmRUYWcobm9kZSkpKSB7CisgICAgaWYgKCEobm9kZS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1l
bnQoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhub2RlKSkpIHsKICAgICAgICAgZm9yIChO
b2RlKiBjdXJyZW50ID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3Vy
cmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVz
cGFjZXMoYWNjdW11bGF0b3IsIGN1cnJlbnQsIG5vZGVUb1NraXAsIEluY2x1ZGVOb2RlLCAmbmFt
ZXNwYWNlSGFzaCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCBjZTM4YTI2
NGIwNWMxOTY3YTU1NTlmOWNhODAyOTllNDU5YmVlYTNlLi5hNWVmMTY3YzgwYmJmOWUwYTIwYmFj
NjdmNGEzMTI3ZjdjYzhlMTc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtOTcsNyAr
OTcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSopOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRU
YWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9CiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNN
b3VzZUZvY3VzYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNh
YmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAppbmRleCBjYWMw
MGUyOGVlYzlmNjE4M2RhMWZmYWFkMTk3NmU3NDJlMTg3NThmLi4xMDc4NGMzYjYxNDgzMTk4NDcz
YzIxOGViYzBjZTYyODc0NzVkNzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFF
bGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBAIC01MCw3ICs1
MCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEFyZWFFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRh
Z1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgdGFyZ2V0
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaAppbmRleCBkZmQ4NGY4NDNlZTAyOGJmY2RlYTBjYWFi
OGRkOGQzNjdhMDBjYWVmLi4wNWRmOGY2ZjZkMWJhZWFjZDUzMTUxZWM2MTFhNzc3M2IyMzQ4NDVk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MQlJFbGVtZW50LmgKQEAgLTM2LDggKzM2LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MQlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0g
ICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1
cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShj
b25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRN
TEJhc2VFbGVtZW50LmgKaW5kZXggNmZkZDFlMTQwNTE5YmRiYTg1MzljMTk3MTViZTEwODU1ZmMy
YTRiZi4uYWExNDU0ZjMyNGU3OTMzNzU3YmI3OTc1ZGIzYzA0YzI2ZmE0NmNjYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
QmFzZUVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhU
TUxCYXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZp
cnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRh
Z1N0YXR1c0ZvcmJpZGRlbjsgfQotCiAgICAgdmlydHVhbCBTdHJpbmcgdGFyZ2V0KCkgY29uc3Qg
eyByZXR1cm4gbV90YXJnZXQ7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5oCmluZGV4IGVlYTMw
NjUwYjFjNjY5YmM4ZTE2ZjZkODk5MmMwYTEzNTEyNjVjYzMuLjc1NzMwNDVmMzFiNDZmNzcxZjgz
MDZmM2Y1ZjRlZDAyZjg4MjNmMzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZv
bnRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaApAQCAt
MzMsOCArMzMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSFRNTEJhc2VGb250RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRh
Z1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJp
ZGRlbjsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MQmxvY2txdW90ZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MQmxvY2txdW90ZUVsZW1l
bnQuaAppbmRleCBjYTgxNjEyMDU2Yjc5NGMwMjczZjJkMzg3M2JkYjdkNDIzZDBlNTQzLi4xOTRm
ZTU0M2IwZmNjZWZhOTdhZjJlZDE0Yjg0N2FiNzVmZTc0ODUyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCbG9j
a3F1b3RlRWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBIVE1MQmxvY2txdW90ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
Ci0KLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7
IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oIGIvV2ViQ29yZS9o
dG1sL0hUTUxCb2R5RWxlbWVudC5oCmluZGV4IDY1MjZhY2E0YjkzMTdlYTRmMWQxYzNhMjJhMzQw
MThhOTZlYTc5OWIuLmQ2ZWYxODVlNjg4ODkyMjk5N2I1YjFkOGMxYzQ4NTExMmUxZmVlMzQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmgKQEAgLTY5LDggKzY5LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MQm9keUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAK
LSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnko
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAppbmRleCAxN2ZiNmU4YjVmOGFiMzMyYjBjODFjZTA0ZTNiODI5
YmQ1MjQxOWZmLi43NDYzNTUxZDZhMmU5MDk4YTliZTQ0YTA5NWM5ODZkMWVjYzM3ZjhjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTk3LDE5ICs5Nyw2IEBAIEhUTUxDYW52YXNF
bGVtZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQogICAgICAgICBtX29ic2VydmVyLT5jYW52YXNE
ZXN0cm95ZWQodGhpcyk7CiB9CiAKLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0KLUhU
TUxUYWdTdGF0dXMgSFRNTENhbnZhc0VsZW1lbnQ6OmVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3Qg
Ci17Ci0gICAgU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKLSAg
ICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGli
aWxpdHlNb2RlKCkpCi0gICAgICAgIHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IAotCi0gICAg
cmV0dXJuIEhUTUxFbGVtZW50OjplbmRUYWdSZXF1aXJlbWVudCgpOwotfQotCi0jZW5kaWYKLQog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyKQogewogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA1MjMyZTAzYWQ0OGZjMDJjYWMxMzAyOTdm
ZmZhMDdmODBhMThlYjg2Li5mZWVmOWQwMDRlNzY3MDNhMWRlM2VjOTczNmE2ZjNiMTU0MjU4ZTUy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTE4LDEwICsxMTgsNiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgIHZpcnR1YWwg
SFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0OwotI2VuZGlmCi0KICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmgKaW5kZXggMjBkY2E5ZjIyYmFmZmVlMDllZTVmOTYy
M2NlMDYxNjIzZjc0OTIyNC4uMjU2OTdhMTFjZDY3ZjI4Yjg5NzUyZjkwYWE2ZGE1OThkZGM5Y2Rm
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBIVE1MRExpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkg
Y29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxEYXRhR3JpZENlbGxFbGVtZW50LmgKaW5kZXggNzY3ZjdkOGY5MzgyNzMx
ZDY4OWI3ZjAxNDAzMzQ1NTE4YWNiNjY2Zi4uNjBhZjE1NTgxZWI4MzMyNmQ3YmEzZTE0NGZkZDk3
YmU2ODdiODZjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZENlbGxFbGVt
ZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZENlbGxFbGVtZW50LmgKQEAgLTUz
LDkgKzUzLDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxEYXRhR3JpZENlbGxFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1M
VGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9y
YmlkZGVuOyB9Ci0gICAgCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxEYXRhR3JpZENvbEVsZW1lbnQuaAppbmRleCAxMTZlM2VhNTNhMDk5NWY3ZGMzZDZiYTY2NDAw
MjNhMDUxZGEyNWU1Li41MTk4MTkwZjdhNTMyMjJmMzMyNTJjNDkxYmIyOWJiMDlhYTAwNjg4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRDb2xFbGVtZW50LmgKQEAgLTYwLDcgKzYwLDYgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBIVE1MRGF0YUdyaWRDb2xFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1Jl
cXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9CiAgICAgdmly
dHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCAvKmRlZXAqLyk7CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIC8qZGVlcCovKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVu
dC5oCmluZGV4IDZkZjFiNDM1MTRjYzIwZmI0MWFiZWNiYjkwMzBlZjk2MzczNzE0NDUuLmFmZDM4
NzYwODIzMzkwNzRkZWZiOTUzYWVhYzZhNDkwNTgwOTM5ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0
b3J5RWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBI
VE1MRGlyZWN0b3J5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQot
ICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxl
bWVudC5oCmluZGV4IDIyNjI1MWQ2MDI2NDFhMjU2MjBhNzBkMjU2NzY4NmRmZjRiOGQ2ZDYuLjJl
MmI0MTcxMDIzYWY3NjMxZDdjZDI3MjEwZjI3YmFlMzE2YzdmMTggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVu
dC5oCkBAIC0zNiw4ICszNiw2IEBAIHByb3RlY3RlZDoKICAgICBIVE1MRGl2RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIEhU
TUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNS
ZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4
IGJlNmJkZGNkNWEyODI0Njk1MWU1MWM3MDMzZGRlZmMwYjcxZjNlMDAuLmY0MDQ4OWIzMzU3Y2Jk
NDliYjk4ODZhYTliZGQ5Nzc4OGUyZmQ3ZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNjgsMTYg
KzY4LDQ4IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6bm9kZU5hbWUoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gdGFnUU5hbWUoKS5sb2NhbE5hbWVVcHBlcigpOwogICAgIHJldHVybiBFbGVtZW50Ojpu
b2RlTmFtZSgpOwogfQotICAgIAotSFRNTFRhZ1N0YXR1cyBIVE1MRWxlbWVudDo6ZW5kVGFnUmVx
dWlyZW1lbnQoKSBjb25zdAotewotICAgIGlmIChoYXNMb2NhbE5hbWUod2JyVGFnKSkKLSAgICAg
ICAgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsKLSAgICBpZiAoaGFzTG9jYWxOYW1lKGR0VGFn
KSB8fCBoYXNMb2NhbE5hbWUoZGRUYWcpIHx8IGhhc0xvY2FsTmFtZShycFRhZykgfHwgaGFzTG9j
YWxOYW1lKHJ0VGFnKSkKLSAgICAgICAgcmV0dXJuIFRhZ1N0YXR1c09wdGlvbmFsOwogCi0gICAg
Ly8gU2FtZSB2YWx1ZXMgYXMgPHNwYW4+LiAgVGhpcyB3YXkgY3VzdG9tIHRhZyBuYW1lIGVsZW1l
bnRzIHdpbGwgYmVoYXZlIGxpa2UgaW5saW5lIHNwYW5zLgotICAgIHJldHVybiBUYWdTdGF0dXNS
ZXF1aXJlZDsKK2Jvb2wgSFRNTEVsZW1lbnQ6OmllRm9yYmlkc0luc2VydEhUTUwoKSBjb25zdAor
eworICAgIC8vIEZJWE1FOiBTdXBwb3NlZGx5IElFIGRpc2FsbG93cyBzZXR0dGluZyBpbm5lckhU
TUwsIG91dGVySFRNTAorICAgIC8vIGFuZCBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQgb24gdGhl
c2UgdGFncy4gIFdlIGhhdmUgbm8gdGVzdHMgdG8KKyAgICAvLyB2ZXJpZnkgdGhpcyBob3dldmVy
LCBzbyB0aGlzIGxpc3QgY291bGQgYmUgdG90YWxseSB3cm9uZy4KKyAgICAvLyBUaGlzIGxpc3Qg
d2FzIG1vdmVkIGZyb20gdGhlIHByZXZpb3VzIGVuZFRhZ1JlcXVpcmVtZW50KCkgaW1wbGVtZW50
YXRpb24uCisgICAgLy8gVGhpcyBpcyBhbHNvIGNhbGxlZCBmcm9tIGVkaXRpbmcgYW5kIGFzc3Vt
ZWQgdG8gYmUgdGhlIGxpc3Qgb2YgdGFncworICAgIC8vIGZvciB3aGljaCBubyBlbmQgdGFnIHNo
b3VsZCBiZSBzZXJpYWxpemVkLiBJdCdzIHVuY2xlYXIgaWYgdGhlIGxpc3QgZm9yCisgICAgLy8g
SUUgY29tcGF0IGFuZCB0aGUgbGlzdCBmb3Igc2VyaWFsaXphdGlvbiBzYW5pdHkgYXJlIHRoZSBz
YW1lLgorICAgIGlmIChoYXNMb2NhbE5hbWUoYXJlYVRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxO
YW1lKGJhc2VUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShiYXNlZm9udFRhZykKKyAgICAg
ICAgfHwgaGFzTG9jYWxOYW1lKGJyVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUoY29sVGFn
KQorI2lmIEVOQUJMRShEQVRBR1JJRCkKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGRjZWxsVGFn
KQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUoZGNvbFRhZykKKyNlbmRpZgorICAgICAgICB8fCBo
YXNMb2NhbE5hbWUoZW1iZWRUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShmcmFtZVRhZykK
KyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGhyVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUo
aW1hZ2VUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShpbWdUYWcpCisgICAgICAgIHx8IGhh
c0xvY2FsTmFtZShpbnB1dFRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGlzaW5kZXhUYWcp
CisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShsaW5rVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5h
bWUobWV0YVRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKHBhcmFtVGFnKQorICAgICAgICB8
fCBoYXNMb2NhbE5hbWUoc291cmNlVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUod2JyVGFn
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gRklYTUU6IEknbSBub3Qgc3VyZSB3aHkg
ZGFzaGJvYXJkIG1vZGUgd291bGQgd2FudCB0byBjaGFuZ2UgdGhlCisgICAgLy8gc2VyaWFsaXph
dGlvbiBvZiA8Y2FudmFzPiwgdGhhdCBzZWVtcyBsaWtlIGEgYmFkIGlkZWEuCisjaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQorICAgIGlmIChoYXNMb2NhbE5hbWUoY2FudmFzVGFnKSkgewor
ICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOworICAg
ICAgICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBh
dGliaWxpdHlNb2RlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYK
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgSFRNTEVsZW1lbnQ6Om1hcFRvRW50cnkoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQp
IGNvbnN0CkBAIC0yMzksNyArMjcxLDcgQEAgc3RhdGljIGJvb2wgdXNlTGVnYWN5VHJlZUJ1aWxk
ZXIoRG9jdW1lbnQqKQogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBIVE1MRWxlbWVudDo6
ZGVwcmVjYXRlZENyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChjb25zdCBTdHJpbmcmIG1hcmt1cCwg
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAg
Ly8gVGhlIGZvbGxvd2luZyBpcyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGRlZmluaXRpb24gYXMg
dXNlZCBieSBJRS4KLSAgICBpZiAoZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0dXNGb3Ji
aWRkZW4pCisgICAgaWYgKGllRm9yYmlkc0luc2VydEhUTUwoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBpZiAoaGFzTG9jYWxOYW1lKGNvbFRhZykgfHwgaGFzTG9jYWxOYW1lKGNvbGdyb3Vw
VGFnKSB8fCBoYXNMb2NhbE5hbWUoZnJhbWVzZXRUYWcpCkBAIC0zNTksOCArMzkxLDcgQEAgdm9p
ZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAKIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVyVGV4dChjb25zdCBTdHJpbmcm
IHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIC8vIEZvbGxvdyB0aGUgSUUgc3BlY3Mg
YWJvdXQgd2hlbiB0aGlzIGlzIGFsbG93ZWQuCi0gICAgaWYgKGVuZFRhZ1JlcXVpcmVtZW50KCkg
PT0gVGFnU3RhdHVzRm9yYmlkZGVuKSB7CisgICAgaWYgKGllRm9yYmlkc0luc2VydEhUTUwoKSkg
ewogICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTQyOSw4ICs0NjAsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5l
clRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogdm9pZCBIVE1M
RWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgLy8gRm9sbG93IHRoZSBJRSBzcGVjcyBhYm91dCB3aGVuIHRoaXMgaXMgYWxs
b3dlZC4KLSAgICBpZiAoZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0dXNGb3JiaWRkZW4p
IHsKKyAgICBpZiAoaWVGb3JiaWRzSW5zZXJ0SFRNTCgpKSB7CiAgICAgICAgIGVjID0gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aAppbmRleCA1ZjA4ZDM4ZGVkMzY2Zjc3NGVmM2NjMjQ0ZTYyNTFmZjkzYjM0YTkzLi42ZWRmNWMz
MGZjMjcwNzZlYTUyMGNmODA3NTI0NWI0MjA2M2RjODBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtNzIs
NyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJv
b2wgc2VuZFRvQW55RWxlbWVudCk7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFn
UmVxdWlyZW1lbnQoKSBjb25zdDsKKyAgICBib29sIGllRm9yYmlkc0luc2VydEhUTUwoKSBjb25z
dDsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7CiAg
ICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVu
ZGVyU3R5bGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmluZGV4IDk3ZmMzYzNmYjlmZTk3YTZl
MjMwMDgyYzIzOGM3ZTQxYzBlYjc2MWUuLjVmNGRmNjc1MjRlZDkxZjdkMDVlMTNiMjkwYzUwNmQ3
Yjg4OGI1ZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtMzYsOCArMzYsNiBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1l
bnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLQogICAgIHZpcnR1YWwg
Ym9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRy
aWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9u
dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAppbmRleCBlN2Q5NWI5
NTM0OWRjMDYwZjQ4MWVmY2FkOWQxMThkMzYzMTBjMjVlLi5mOTdhYjA4MGFiNWNkZWUwZGYxZDli
ZmJiYzlhOTExNDc5NTc3YmVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVt
ZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oCkBAIC0zNiw4ICszNiw2
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBIVE1MRm9udEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7Ci0gICAgCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVu
ZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBNYXBwZWRB
dHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4
IGM3YjcyODBiNTQ1ZTljOGY0ZWNhODZkMTg0NmY5ZWMzY2Y4MGE2ODYuLjIzNTIxODI1MzU3ZTE3
OWE3ZTViOWNmNGZmZWQ4N2U4MTM4ODhjOTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaApAQCAtMTIyLDggKzEyMiw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wg
cmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBIVE1M
VGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVx
dWlyZWQ7IH0KLQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbE5h
bWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggY2Q2N2I4NWE1NWYx
N2U2MzhhZjE2YmViMTZiYWIyNTgxNDY2Y2ZiZi4uMTUxYjJlODlhYjQyZGQ2NDFmMTM3M2Y4MTIw
ZjgxZWI3MTkyMTM0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5o
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMTE0LDggKzExNCw2IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEZvcm1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVp
cmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lk
IGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9j
dW1lbnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmggYi9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDNiNDlhNzY5Y2M2NmFmMDZlNTg4
NTdhYWQ1NmMwNzYwOTQyNjkyMjQuLmQ4Y2Y1MDlkZWJkN2Y5MWZiMzZhYWFmODgxN2IxOGY5NDk0
YzcwOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaApAQCAtMzksOCArMzksNiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEhUTUxGcmFtZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQo
KSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLSAgCiAgICAgdmlydHVhbCB2
b2lkIGF0dGFjaCgpOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVy
U3R5bGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IGM0ODQyOGYwZDRkNjQw
YzI4YjFkNzNmYmI5ZDJiZWFiMjUyNzJmMTEuLmM3NjE0MTQ4N2VmZjcwYzEyYTZjMzIyNzdjYTNj
ZjNmNmEzMTQxNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtNjcsOCArNjcs
NiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxGcmFtZVNldEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5k
VGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAg
ICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUs
IE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxIUkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgKaW5kZXgg
NjhmOWY0NTYxM2U1NjNhM2JlMGE0ZDgxNWNmY2E3OWMzODAyNmNiYy4uZTg2YmI1NjViM2ExYThl
ZDg3MjI3OTBhMjhmY2Y1Y2FmZDI1NGY4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxI
UkVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5oCkBAIC0zNSw4ICsz
NSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEhSRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5k
VGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLSAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFw
cGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxI
ZWFkRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5oCmluZGV4IGU4ZjM0
OTJlMzEzNDFmNzIyNzkzZmU4YzhkMDgzMTEyMzIyNWM1NzcuLjFhNWRmODY0YzZlNmJkMjEyZDgz
ZTczNGEzZmY5YzY4YmYxYmVlOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmgKQEAgLTM1LDggKzM1
LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxIZWFkRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRU
YWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c09wdGlvbmFsOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxl
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5oCmluZGV4IDhkODM5MDUz
MWEyNzVlM2U4N2E2N2JjNTkzOTBlNDZlMjIyN2VkMjguLmYwOWNmZTNiMTA4YzkwOTNiN2E3MmUz
OTU1Y2EzZWI0ZjBlYThkODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0Vs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmgKQEAgLTMzLDgg
KzMzLDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxIZWFkaW5nRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1
cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTEh0bWxFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKaW5kZXgg
NWE3NGIzZGFjYWFlM2ZmYWY3Yzc5MmQzYzBiZDM5MGUwZWE4ODhkYy4uZTg1NGZiMTA3MGVlZDI2
NjQ2ZjFjMTA0MzE0Y2UzZGQwNmExYzNhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaApAQCAtMzYs
OCArMzYsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxIdG1sRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBl
bmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0K
ICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCBp
bnNlcnRlZEludG9Eb2N1bWVudCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmlu
ZGV4IDhjNTRmZTBiNGE5MGIxNjQyMTg1YmFmOGYwM2NjYzk3MzkzMDIwN2MuLjYxY2Q2YjY4ZWQ2
NDhhMzIyNTllZjQ1N2JlZTQ4ODA1NzMwZjM3MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5o
CkBAIC0zNSw4ICszNSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTElGcmFtZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1
aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNl
TWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRl
eCAyM2FhNmM3OWEwNjlmOWU5ZjU1MTdmOTIxZTUwNGVlZDhlNzc4MmNlLi43ZjM4MjE2NGY5Zjc2
ZThkMjhkYjY5MTkxMjBjNTFjYzU4ZGRmNWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAg
LTgwLDggKzgwLDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92ZVRvTmV3
T3duZXJEb2N1bWVudCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBl
bmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQot
CiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKaW5kZXggZjViZTQ2YTdlNDlkNzUzY2M2MWJhMzg0NmVhNmMyODZkYzU1ZjE0NC4uZTZjZGRh
M2MzYjllYTcxNzYzNzZhZTg5NzRlODQ5MzQ3ZTg0YmQ5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yMTgsOCArMjE4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbE1v
dmVUb05ld093bmVyRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3T3du
ZXJEb2N1bWVudCgpOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVt
ZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFs
IGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNF
bnVtZXJhdGFibGUoKSBjb25zdCB7IHJldHVybiBpbnB1dFR5cGUoKSAhPSBJTUFHRTsgfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJc0luZGV4RWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxJc0luZGV4RWxlbWVudC5oCmluZGV4IGQ2NmMwZWRlYWRhMzczZWZkNDY0MThmZWUzODhl
YTg2NDUxY2QwYWIuLjg1N2VmNzU3ODdiMjM0YWI4ZmY4NGY5ZjljMDdjYTg0ZDFmM2EyNmEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuaAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBIVE1MSXNJbmRleEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5k
VGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KICAg
ICB2aXJ0dWFsIGJvb2wgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmggYi9XZWJD
b3JlL2h0bWwvSFRNTExJRWxlbWVudC5oCmluZGV4IDIxNzRmZThkNjY5M2QzMTY1MzI5ZTFiYjJm
N2ZlYWFjYjE3YTJmNjAuLmFkMTJiNjdmNDdmZjUzNmEzNDZjMTFlOTJjMzRhMjA0ZGUyODgxMGMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxMSUVsZW1lbnQuaApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxMSUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAg
ICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVy
biBUYWdTdGF0dXNPcHRpb25hbDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmgKaW5kZXggNmU0NjBlMGIzYzAxMTY1ZDY1ZjhiMzBkM2UzOTI4OGM1YzU2Yjc3Yi4u
MmZiNzUyNTkzMGJhZGRmNjE1ODE0ZWY1OGRmYzY1YWNhNGMzNWFlMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuaApAQCAtNzUsOCArNzUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ljb24oKSBjb25z
dCB7IHJldHVybiBtX3JlbEF0dHJpYnV0ZS5tX2lzSWNvbjsgfQogCiBwcml2YXRlOgotICAgIHZp
cnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRh
Z1N0YXR1c0ZvcmJpZGRlbjsgfQotCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSopOwogCiAgICAgdm9pZCBwcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5o
CmluZGV4IDhmZjM5MmZjNGI0ZDcwNDYyZjc2NzQ4ZGQ2M2RmMjk2NGRlMjc4NzAuLmMwYzEzOTU3
OTA5N2I2N2VkY2RiNmY3ZGE0NzE4NWZhN2FlNjM4YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MTWFwRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBA
IC00Nyw4ICs0Nyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE1hcEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0
dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsg
fQotCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwog
CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1
ZWVFbGVtZW50LmgKaW5kZXggMzE3YjEzODRiYTQ3MWYyOGYxZTQ0ZTJmMGI4OGU5NDVlZGI1ODIw
NS4uMWIzMjI5YTQwMDFjNGVjYzU1NzYzNTJkMTRhYzQ0ODRiNWVmODQ5NCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRl
OgogICAgIEhUTUxNYXJxdWVlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKLSAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBj
b25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogCiAgICAgdmlydHVhbCBib29sIG1h
cFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxNZW51RWxlbWVudC5oCmluZGV4IDc1M2EyOGRlZWMzMWU1MzI1YWQ1NzFlMDQyYjkxYTYy
NGI3OGNhNmEuLjZiNTg4ZWNiMWQwNjVkYzE4ZWMwZTJmNDlmNGY0MzdhODFiY2QxMzAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTE1lbnVFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHVibGljOgogICAgIAogcHJpdmF0
ZToKICAgICBIVE1MTWVudUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
Ci0gICAgCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29u
c3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaAppbmRleCA2ZWU3MTkxMzM4NjM3OTEzYjFkMzM2MWJlYmRmNzliMzFm
NzgwOGM4Li45YjAxNzhlOWI0NWJmZDc3MDJjMjExNmZjZjI0NjQ1MWRmN2ZlNzRjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxNZXRhRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
SFRNTE1ldGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAg
dmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4g
VGFnU3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50
KCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5oIGIvV2ViQ29y
ZS9odG1sL0hUTUxNb2RFbGVtZW50LmgKaW5kZXggNDI5MjAwNjg3Y2JhMWJmYmM2YzE2MDAwN2Q2
ZGM5ZDk5OTQ3YTI2ZS4uMmIwOWUyMTgwNWViNzE1ZGI3ZDlhN2Q5NDRlNjY2ZTc3YTNmN2FiZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxNb2RFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIEhUTUxNb2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwot
Ci0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE9M
aXN0RWxlbWVudC5oCmluZGV4IDYyZTJhZTExMThkYjNmZmYzOTE4NGRiN2Q4ZTA2NmI5OWI4MDM3
M2MuLjE3OWZlYzBiMzc5ZTE3ODQ2YTFlODdjZTM2ZjljYWUxMmM1Y2JlNDIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxP
TGlzdEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhU
TUxPTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAg
IAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRy
eShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmgKaW5kZXggYzhiOWMyYWFhZDZkNGVhNmExNGE5YmQ3YzMzYTFlNDRi
YjUxYzJiYy4uYzE3OTFkNzAwOWYyMjY4ODljYjYwNzRhYWZmMjJmY2VlODJhZTNlNCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmgKQEAgLTY2LDcgKzY2LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MT3B0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBI
VE1MRm9ybUVsZW1lbnQqID0gMCk7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFn
UmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNPcHRpb25hbDsgfQogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRm9j
dXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVy
U3R5bGUqKSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxQ
YXJhZ3JhcGhFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaApp
bmRleCA4ZmZmNjJkYzE3Zjg1MWFmNDM1NTRiYjk3NzQ4ZTE5NTQzNzc5OTdjLi42ZGJmMDcxMTA3
OWRiNTU2OGQzNmZlZjM3NDEzYTM4ZDIwZWVjNWFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTFBhcmFncmFwaEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVs
ZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxQYXJh
Z3JhcGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmly
dHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFn
U3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIH07CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaAppbmRleCA2MGI5MGE0N2Y2MjY0MWI0MjZmNWIyZTRhMzllNGIzZTk0Y2YxYmVhLi5m
MTNmOGZhNjBjMDkzOWQ5NDlkOGE3OGUzNjI0ZDQzYTlmNzUwYjU2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1F
bGVtZW50LmgKQEAgLTM3LDE5ICszNywxOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxQ
YXJhbUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0
dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdT
dGF0dXNGb3JiaWRkZW47IH0KLQogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShBdHRyaWJ1dGUqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1
dGUqKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBkb24n
dCBuZWVkIHRvIGJlIHN0b3JlZCBhcyBtZW1iZXJzIGFuZCBpbnN0ZWFkCisgICAgLy8gbmFtZSgp
IHZhbHVlKCkgY291bGQgdXNlIGdldEF0dHJpYnV0ZShuYW1lQXR0ci92YWx1ZUF0dHIpLgogICAg
IEF0b21pY1N0cmluZyBtX25hbWU7CiAgICAgQXRvbWljU3RyaW5nIG1fdmFsdWU7CiB9OwogCi0K
LX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5oCmluZGV4IGYyZjgzNTFlMmFjNWQyOThkYzJiMjA4N2RmMDExYzcxMjk0NjFmNTYuLjhhNzkx
YjE3MzhlZmNjNTYxYjQ4YWYwZDg0OGZmYmRhOWNlYjFlZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJlbmRlcldp
ZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1
YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0
YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV2lkZ2V0KCkgeyB9CiAK
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5oIGIv
V2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKaW5kZXggY2Y0ODE4MDk1N2QwMjQ1ZjBlYjJm
NWE2MzQ5NTAwNDdhOTYzZDM1ZC4uM2NjZGI4NjAzMWY5MWQ0YWUyNjUwYmZiOTgxNjcxOWJkMmE3
N2RkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBIVE1MUHJlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9F
bnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiB9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRt
bC9IVE1MUXVvdGVFbGVtZW50LmgKaW5kZXggOWJhYmQ4ZWMxMzZkN2E0MGFkMTA0ZGIyZmE1ZTI4
YmIwNzVhOWViNi4uMjI1ZGRlOGI3NzdkNTkyNmVlNjExNDcyZGI2YzEyNTY3ZmM5Y2VkOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTFF1b3RlRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgSFRNTFF1b3RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
ICAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25z
dCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dGVkSW50b0RvY3VtZW50KCk7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDI5
ZWI5N2RjODA4M2I5YTYwYTEwNDJlNGU3NDRmZTFlMjdlODA0NDUuLmE1NjI5ZWVkNTMzYmEyNmZk
YjJlZGNiM2Y5M2JmMmYwZmZmMTMxOTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC00
OSw4ICs0OSw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBzY3JpcHRDb250ZW50
KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQo
KSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgdm9pZCBpbnNl
cnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCmluZGV4IGEwZGQ5NTI4OGUxODY2ZDlkODc0NGM2
ODg0MzU1NWRjY2M2OTE2MWMuLjhhYTFkMDZjZjM5MDU2YWVjY2M4MjAwMTU1M2Y4MzljNjZiYWIy
ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCkBAIC00OCw4ICs0OCw2IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBIVE1MU291cmNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
U3R5bGVFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCmluZGV4IGQ2
OGJhYjRhNTk4NDdmZTM4OTFiNDZkYjc3OTk3ZTEyYmEwZjE1MjIuLmI0MDEzYjg0Y2YzYjRjOGY0
NThiMDMzNzhhOTA4YjhmYjIwZmExM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU3R5
bGVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNDEs
OCArNDEsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxTdHlsZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCi0gICAg
dmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4g
VGFnU3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIC8vIG92ZXJsb2FkIGZyb20gSFRNTEVsZW1lbnQK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAg
dmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5oCmluZGV4IGI3OGQ4YjBiNTdhOGI5OGRjNjljNGQ1ZWFlZWY5NGQzNDAx
NGFiMmIuLmEyZGQyZmFhZTBiMTU1OTBhOTJhOTgzNzg4MjA0NzYwMzU5ODZhNGQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC0zNyw4ICszNyw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CiAgICAgCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1Jl
cXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KLSAgICAKICAg
ICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0
cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAppbmRleCBh
OTM3Yzk2NzhkMzJiYjIxZjRiYzhkNDkxMmE2OWQwNjQ5NjQ3ODI3Li4wYzk3NDEzZjA1M2U3ZWNl
M2YzZmEwZGVhMDUyYmM3YWZhMDM0OTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ2VsbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aApAQCAtNTYsOCArNTYsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUYWJsZUNlbGxF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBI
VE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVz
T3B0aW9uYWw7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVs
ZW1lbnQuY3BwCmluZGV4IDUwNzE4YjA3MWM2Yjc0OTQ4MDZiODMwMDk5MjliZDliZmRiNjYzMzEu
LjIwYjBmMzYyYWJiYjFiZmNkMjg5MmU1YjQ5ODhmYWVmMGE0NGFjNmMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ29sRWxlbWVudC5jcHAKQEAgLTQ3LDExICs0Nyw2IEBAIFBhc3NSZWZQdHI8SFRNTFRh
YmxlQ29sRWxlbWVudD4gSFRNTFRhYmxlQ29sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVDb2xFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLUhUTUxUYWdTdGF0dXMgSFRNTFRhYmxlQ29sRWxlbWVudDo6
ZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBoYXNMb2NhbE5hbWUoY29s
VGFnKSA/IFRhZ1N0YXR1c0ZvcmJpZGRlbiA6IFRhZ1N0YXR1c09wdGlvbmFsOwotfQotCiBib29s
IEhUTUxUYWJsZUNvbEVsZW1lbnQ6Om1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgaWYgKGF0
dHJOYW1lID09IHdpZHRoQXR0cikgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKaW5kZXgg
MWE3M2VjNjAxNTJjMjU2YTM1MWI0MjFlMDlmNDY3YTNmYTUwNmQ3Mi4uYzc1MTdkMTBhY2U2MDQz
Y2QyYWYxNzc4ZmRmZWI5NWQ2MzNhMTg5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5o
CkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlQ29sRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCi0gICAgdmly
dHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVu
dHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSopOwogICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQWRkaXRpb25hbEF0dHJpYnV0ZVN0eWxl
RGVjbHMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRl
eCA4MGY0YTQyNTY3ZGNjNzY5NzY5ZWRmN2UwZTRlODE4NzJiZjI0MDZiLi5kYTNkYzMwM2ZkNGE3
ZDU4ZmJhYWUyZjA5YzU5NzU2ODZmZTM4YmYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAg
LTcxLDggKzcxLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3Rh
dHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7
IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBN
YXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAppbmRleCBjYTI0
MWQ4NjZkOTAzY2M4Y2NiYTgyYmQ0MGUzOWViZWYwZjFhYjFjLi5jNDMzNjc3YWM4NDc4ZmM2Mzdi
Y2I0N2YwMjQyMTBhMDEyNzI5YjljIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgKQEAg
LTQ5LDggKzQ5LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxUYWJsZVJvd0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLSAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNPcHRp
b25hbDsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmgKaW5kZXggMjI0OGU3MmNjNDA5OTI2MDBiNzk4MTQ1MGQyZWMzNjgxMDgxYTE1Zi4u
YTg0Y2JkZTZkNTg0YzY4NTEzMjU3MTZhMjljZTlmODljOGUxZWNmOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKQEAgLTU2LDcgKzU2LDYgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVp
cmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzT3B0aW9uYWw7IH0KICAgICB2aXJ0dWFs
IGJvb2wgY2FuSGF2ZUFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZURlY2xzKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhZGRpdGlvbmFsQXR0cmlidXRlU3R5bGVEZWNs
cyhWZWN0b3I8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPiYpOwogfTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0
RWxlbWVudC5oCmluZGV4IGM2ZDZkMDI4MTgyYzUyODMxZjJiYjM1YTgzZmJhMzU5OTkwOTAwYmMu
LmY5MWJmMWMzYjYxZjNiM2U4N2YyNTYzMjUwNDcwMmJiNmNkZWUyMWUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxVTGlz
dEVsZW1lbnQuaApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxV
TGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0
dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdT
dGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65450</attachid>
            <date>2010-08-25 11:39:18 -0700</date>
            <delta_ts>2010-08-25 17:03:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-44626-20100825113917.patch</filename>
            <type>text/plain</type>
            <size>40648</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGY2NjJlNzM0OTg4YTE5MzE3NjJjMjk0Y2UwNTZkODZjNDAyZmI4Mi4uNTAxMTcxOTUzYTY0OWU2
NjNjNDViN2MwZDQ5ZTQwOTVkNzU2ZGFmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAxMC0wOC0yNSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KKworICAgICAgICBSZW1vdmUgZW5kVGFnUmVxdWlyZW1lbnQgbm93IHRoYXQgdGhlIExl
Z2FjeUhUTUxEb2N1bWVudFBhcnNlciBpcyBkZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDYyNgorCisgICAgICAgIFNlcmlhbGl6YXRpb24gaXMg
Y292ZXJlZCBieSBhIGJ1bmNoIG9mIHRlc3RzLiAgaW5uZXJIVE1MIGJlaGF2aW9yIGlzIHNhZGx5
IG5vdC4KKyAgICAgICAgSW4gZWl0aGVyIGNhc2UsIHRoaXMgaXMganVzdCBtb3ZpbmcgY29kZSBh
bmQgc2hvdWxkIGhhdmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBlZGl0aW5n
L21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyk6
CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6c2hvdWxkU2VsZkNsb3NlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRNYXJrdXApOgor
ICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyk6CisgICAgICAg
ICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEFyZWFFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQlJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MQmFzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxCbG9ja3F1b3RlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTEJvZHlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRN
TERMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxEYXRhR3JpZENvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6Om5vZGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojpp
ZUZvcmJpZHNJbnNlcnRIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpkZXBy
ZWNhdGVkQ3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxF
bGVtZW50OjpzZXRJbm5lclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNl
dE91dGVyVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxIUkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxIZWFkRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTEhlYWRpbmdFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxMSUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNYXJxdWVl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lbnVFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNb2RFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MT0xpc3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxQYXJhbUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUHJlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFRh
YmxlQ29sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxVTGlzdEVsZW1lbnQuaDoK
KwogMjAxMC0wOC0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCAyM2Rh
OTRhYzJjNDk3YWNmNjA0YzVmNWI1YWY2ZDY1YjdiZTFjMTlhLi4xYmFmMWJjNmE2NzI0ZGZkNDBi
OGE1Y2NiODg3ZDNjNjBjYjI2NzY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtNjk1LDEzICs2OTUsMTYg
QEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kU3RhcnRNYXJrdXAoVmVjdG9yPFVDaGFy
PiYgcmVzdWx0LCBjb25zdCBOb2RlKiBub2QKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBkb2VzSFRNTEZvcmJpZEVuZFRhZyhjb25zdCBOb2RlICpub2RlKQorc3RhdGljIGlubGluZSBi
b29sIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKGNvbnN0IE5vZGUgKm5vZGUpCiB7Ci0gICAgaWYg
KG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewotICAgICAgICBjb25zdCBIVE1MRWxlbWVudCogaHRt
bEVsdCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxFbGVtZW50Kj4obm9kZSk7Ci0gICAgICAgIHJl
dHVybiAoaHRtbEVsdC0+ZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0dXNGb3JiaWRkZW4p
OwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFub2RlLT5pc0hUTUxFbGVtZW50
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBpZUZvcmJpZHNJbnNl
cnRIVE1MIG1heSBub3QgYmUgdGhlIHJpZ2h0IGZ1bmN0aW9uIHRvIGNhbGwgaGVyZQorICAgIC8v
IGllRm9yYmlkc0luc2VydEhUTUwgaXMgdXNlZCB0byBkaXNhbGxvdyBzZXR0aW5nIGlubmVySFRN
TC9vdXRlckhUTUwKKyAgICAvLyBvciBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQuICBJdCBkb2Vz
IG5vdCBuZWNlc3NhcmlseSBhbGlnbiB3aXRoCisgICAgLy8gd2hpY2ggZWxlbWVudHMgc2hvdWxk
IGJlIHNlcmlhbGl6ZWQgdy9vIGVuZCB0YWdzLgorICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25z
dCBIVE1MRWxlbWVudCo+KG5vZGUpLT5pZUZvcmJpZHNJbnNlcnRIVE1MKCk7CiB9CiAKIC8vIFJ1
bGVzIG9mIHNlbGYtY2xvc3VyZQpAQCAtNzE1LDE0ICs3MTgsMTQgQEAgYm9vbCBNYXJrdXBBY2N1
bXVsYXRvcjo6c2hvdWxkU2VsZkNsb3NlKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBpZiAobm9kZS0+aGFzQ2hpbGROb2RlcygpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiAhZG9lc0hUTUxGb3JiaWRF
bmRUYWcobm9kZSkpCisgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiAhZWxlbWVudENh
bm5vdEhhdmVFbmRUYWcobm9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kTWFya3VwKFZlY3Rv
cjxVQ2hhcj4mIHJlc3VsdCwgY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUtPmlz
RWxlbWVudE5vZGUoKSB8fCBzaG91bGRTZWxmQ2xvc2Uobm9kZSkgfHwgKCFub2RlLT5oYXNDaGls
ZE5vZGVzKCkgJiYgZG9lc0hUTUxGb3JiaWRFbmRUYWcobm9kZSkpKQorICAgIGlmICghbm9kZS0+
aXNFbGVtZW50Tm9kZSgpIHx8IHNob3VsZFNlbGZDbG9zZShub2RlKSB8fCAoIW5vZGUtPmhhc0No
aWxkTm9kZXMoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhub2RlKSkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIHJlc3VsdC5hcHBlbmQoJzwnKTsKQEAgLTExMTgsNyArMTEyMSw3IEBAIHN0
YXRpYyB2b2lkIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTWFya3VwQWNjdW11bGF0b3Im
IGFjY3VtdWxhdG9yLCBOb2RlKiBuCiAgICAgaWYgKCFjaGlsZHJlbk9ubHkpCiAgICAgICAgIGFj
Y3VtdWxhdG9yLmFwcGVuZFN0YXJ0VGFnKG5vZGUsICZuYW1lc3BhY2VIYXNoKTsKIAotICAgIGlm
ICghKG5vZGUtPmRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkgJiYgZG9lc0hUTUxGb3JiaWRF
bmRUYWcobm9kZSkpKSB7CisgICAgaWYgKCEobm9kZS0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1l
bnQoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhub2RlKSkpIHsKICAgICAgICAgZm9yIChO
b2RlKiBjdXJyZW50ID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3Vy
cmVudC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVz
cGFjZXMoYWNjdW11bGF0b3IsIGN1cnJlbnQsIG5vZGVUb1NraXAsIEluY2x1ZGVOb2RlLCAmbmFt
ZXNwYWNlSGFzaCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCBjZTM4YTI2
NGIwNWMxOTY3YTU1NTlmOWNhODAyOTllNDU5YmVlYTNlLi5hNWVmMTY3YzgwYmJmOWUwYTIwYmFj
NjdmNGEzMTI3ZjdjYzhlMTc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtOTcsNyAr
OTcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSopOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRU
YWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9CiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNN
b3VzZUZvY3VzYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNh
YmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAppbmRleCBjYWMw
MGUyOGVlYzlmNjE4M2RhMWZmYWFkMTk3NmU3NDJlMTg3NThmLi4xMDc4NGMzYjYxNDgzMTk4NDcz
YzIxOGViYzBjZTYyODc0NzVkNzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFF
bGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBAIC01MCw3ICs1
MCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEFyZWFFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRh
Z1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgdGFyZ2V0
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaAppbmRleCBkZmQ4NGY4NDNlZTAyOGJmY2RlYTBjYWFi
OGRkOGQzNjdhMDBjYWVmLi4wNWRmOGY2ZjZkMWJhZWFjZDUzMTUxZWM2MTFhNzc3M2IyMzQ4NDVk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MQlJFbGVtZW50LmgKQEAgLTM2LDggKzM2LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MQlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0g
ICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1
cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShj
b25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRN
TEJhc2VFbGVtZW50LmgKaW5kZXggNmZkZDFlMTQwNTE5YmRiYTg1MzljMTk3MTViZTEwODU1ZmMy
YTRiZi4uYWExNDU0ZjMyNGU3OTMzNzU3YmI3OTc1ZGIzYzA0YzI2ZmE0NmNjYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
QmFzZUVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhU
TUxCYXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZp
cnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRh
Z1N0YXR1c0ZvcmJpZGRlbjsgfQotCiAgICAgdmlydHVhbCBTdHJpbmcgdGFyZ2V0KCkgY29uc3Qg
eyByZXR1cm4gbV90YXJnZXQ7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5oCmluZGV4IGVlYTMw
NjUwYjFjNjY5YmM4ZTE2ZjZkODk5MmMwYTEzNTEyNjVjYzMuLjc1NzMwNDVmMzFiNDZmNzcxZjgz
MDZmM2Y1ZjRlZDAyZjg4MjNmMzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZv
bnRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaApAQCAt
MzMsOCArMzMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSFRNTEJhc2VGb250RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRh
Z1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJp
ZGRlbjsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MQmxvY2txdW90ZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MQmxvY2txdW90ZUVsZW1l
bnQuaAppbmRleCBjYTgxNjEyMDU2Yjc5NGMwMjczZjJkMzg3M2JkYjdkNDIzZDBlNTQzLi4xOTRm
ZTU0M2IwZmNjZWZhOTdhZjJlZDE0Yjg0N2FiNzVmZTc0ODUyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCbG9j
a3F1b3RlRWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBIVE1MQmxvY2txdW90ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
Ci0KLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7
IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oIGIvV2ViQ29yZS9o
dG1sL0hUTUxCb2R5RWxlbWVudC5oCmluZGV4IDY1MjZhY2E0YjkzMTdlYTRmMWQxYzNhMjJhMzQw
MThhOTZlYTc5OWIuLmQ2ZWYxODVlNjg4ODkyMjk5N2I1YjFkOGMxYzQ4NTExMmUxZmVlMzQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmgKQEAgLTY5LDggKzY5LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MQm9keUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAK
LSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnko
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAppbmRleCAxN2ZiNmU4YjVmOGFiMzMyYjBjODFjZTA0ZTNiODI5
YmQ1MjQxOWZmLi43NDYzNTUxZDZhMmU5MDk4YTliZTQ0YTA5NWM5ODZkMWVjYzM3ZjhjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTk3LDE5ICs5Nyw2IEBAIEhUTUxDYW52YXNF
bGVtZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQogICAgICAgICBtX29ic2VydmVyLT5jYW52YXNE
ZXN0cm95ZWQodGhpcyk7CiB9CiAKLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0KLUhU
TUxUYWdTdGF0dXMgSFRNTENhbnZhc0VsZW1lbnQ6OmVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3Qg
Ci17Ci0gICAgU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKLSAg
ICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGli
aWxpdHlNb2RlKCkpCi0gICAgICAgIHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IAotCi0gICAg
cmV0dXJuIEhUTUxFbGVtZW50OjplbmRUYWdSZXF1aXJlbWVudCgpOwotfQotCi0jZW5kaWYKLQog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyKQogewogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA1MjMyZTAzYWQ0OGZjMDJjYWMxMzAyOTdm
ZmZhMDdmODBhMThlYjg2Li5mZWVmOWQwMDRlNzY3MDNhMWRlM2VjOTczNmE2ZjNiMTU0MjU4ZTUy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTE4LDEwICsxMTgsNiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgIHZpcnR1YWwg
SFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0OwotI2VuZGlmCi0KICAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmgKaW5kZXggMjBkY2E5ZjIyYmFmZmVlMDllZTVmOTYy
M2NlMDYxNjIzZjc0OTIyNC4uMjU2OTdhMTFjZDY3ZjI4Yjg5NzUyZjkwYWE2ZGE1OThkZGM5Y2Rm
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBIVE1MRExpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkg
Y29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxEYXRhR3JpZENlbGxFbGVtZW50LmgKaW5kZXggNzY3ZjdkOGY5MzgyNzMx
ZDY4OWI3ZjAxNDAzMzQ1NTE4YWNiNjY2Zi4uNjBhZjE1NTgxZWI4MzMyNmQ3YmEzZTE0NGZkZDk3
YmU2ODdiODZjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZENlbGxFbGVt
ZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZENlbGxFbGVtZW50LmgKQEAgLTUz
LDkgKzUzLDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxEYXRhR3JpZENlbGxFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBIVE1M
VGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9y
YmlkZGVuOyB9Ci0gICAgCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxEYXRhR3JpZENvbEVsZW1lbnQuaAppbmRleCAxMTZlM2VhNTNhMDk5NWY3ZGMzZDZiYTY2NDAw
MjNhMDUxZGEyNWU1Li41MTk4MTkwZjdhNTMyMjJmMzMyNTJjNDkxYmIyOWJiMDlhYTAwNjg4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkQ29sRWxlbWVudC5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRDb2xFbGVtZW50LmgKQEAgLTYwLDcgKzYwLDYgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBIVE1MRGF0YUdyaWRDb2xFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1Jl
cXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9CiAgICAgdmly
dHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCAvKmRlZXAqLyk7CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIC8qZGVlcCovKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVu
dC5oCmluZGV4IDZkZjFiNDM1MTRjYzIwZmI0MWFiZWNiYjkwMzBlZjk2MzczNzE0NDUuLmFmZDM4
NzYwODIzMzkwNzRkZWZiOTUzYWVhYzZhNDkwNTgwOTM5ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0
b3J5RWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBI
VE1MRGlyZWN0b3J5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQot
ICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxl
bWVudC5oCmluZGV4IDIyNjI1MWQ2MDI2NDFhMjU2MjBhNzBkMjU2NzY4NmRmZjRiOGQ2ZDYuLjJl
MmI0MTcxMDIzYWY3NjMxZDdjZDI3MjEwZjI3YmFlMzE2YzdmMTggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVu
dC5oCkBAIC0zNiw4ICszNiw2IEBAIHByb3RlY3RlZDoKICAgICBIVE1MRGl2RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIEhU
TUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNS
ZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4
IGJlNmJkZGNkNWEyODI0Njk1MWU1MWM3MDMzZGRlZmMwYjcxZjNlMDAuLmY0MDQ4OWIzMzU3Y2Jk
NDliYjk4ODZhYTliZGQ5Nzc4OGUyZmQ3ZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNjgsMTYg
KzY4LDQ4IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6bm9kZU5hbWUoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gdGFnUU5hbWUoKS5sb2NhbE5hbWVVcHBlcigpOwogICAgIHJldHVybiBFbGVtZW50Ojpu
b2RlTmFtZSgpOwogfQotICAgIAotSFRNTFRhZ1N0YXR1cyBIVE1MRWxlbWVudDo6ZW5kVGFnUmVx
dWlyZW1lbnQoKSBjb25zdAotewotICAgIGlmIChoYXNMb2NhbE5hbWUod2JyVGFnKSkKLSAgICAg
ICAgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsKLSAgICBpZiAoaGFzTG9jYWxOYW1lKGR0VGFn
KSB8fCBoYXNMb2NhbE5hbWUoZGRUYWcpIHx8IGhhc0xvY2FsTmFtZShycFRhZykgfHwgaGFzTG9j
YWxOYW1lKHJ0VGFnKSkKLSAgICAgICAgcmV0dXJuIFRhZ1N0YXR1c09wdGlvbmFsOwogCi0gICAg
Ly8gU2FtZSB2YWx1ZXMgYXMgPHNwYW4+LiAgVGhpcyB3YXkgY3VzdG9tIHRhZyBuYW1lIGVsZW1l
bnRzIHdpbGwgYmVoYXZlIGxpa2UgaW5saW5lIHNwYW5zLgotICAgIHJldHVybiBUYWdTdGF0dXNS
ZXF1aXJlZDsKK2Jvb2wgSFRNTEVsZW1lbnQ6OmllRm9yYmlkc0luc2VydEhUTUwoKSBjb25zdAor
eworICAgIC8vIEZJWE1FOiBTdXBwb3NlZGx5IElFIGRpc2FsbG93cyBzZXR0dGluZyBpbm5lckhU
TUwsIG91dGVySFRNTAorICAgIC8vIGFuZCBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQgb24gdGhl
c2UgdGFncy4gIFdlIGhhdmUgbm8gdGVzdHMgdG8KKyAgICAvLyB2ZXJpZnkgdGhpcyBob3dldmVy
LCBzbyB0aGlzIGxpc3QgY291bGQgYmUgdG90YWxseSB3cm9uZy4KKyAgICAvLyBUaGlzIGxpc3Qg
d2FzIG1vdmVkIGZyb20gdGhlIHByZXZpb3VzIGVuZFRhZ1JlcXVpcmVtZW50KCkgaW1wbGVtZW50
YXRpb24uCisgICAgLy8gVGhpcyBpcyBhbHNvIGNhbGxlZCBmcm9tIGVkaXRpbmcgYW5kIGFzc3Vt
ZWQgdG8gYmUgdGhlIGxpc3Qgb2YgdGFncworICAgIC8vIGZvciB3aGljaCBubyBlbmQgdGFnIHNo
b3VsZCBiZSBzZXJpYWxpemVkLiBJdCdzIHVuY2xlYXIgaWYgdGhlIGxpc3QgZm9yCisgICAgLy8g
SUUgY29tcGF0IGFuZCB0aGUgbGlzdCBmb3Igc2VyaWFsaXphdGlvbiBzYW5pdHkgYXJlIHRoZSBz
YW1lLgorICAgIGlmIChoYXNMb2NhbE5hbWUoYXJlYVRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxO
YW1lKGJhc2VUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShiYXNlZm9udFRhZykKKyAgICAg
ICAgfHwgaGFzTG9jYWxOYW1lKGJyVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUoY29sVGFn
KQorI2lmIEVOQUJMRShEQVRBR1JJRCkKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGRjZWxsVGFn
KQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUoZGNvbFRhZykKKyNlbmRpZgorICAgICAgICB8fCBo
YXNMb2NhbE5hbWUoZW1iZWRUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShmcmFtZVRhZykK
KyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGhyVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUo
aW1hZ2VUYWcpCisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShpbWdUYWcpCisgICAgICAgIHx8IGhh
c0xvY2FsTmFtZShpbnB1dFRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKGlzaW5kZXhUYWcp
CisgICAgICAgIHx8IGhhc0xvY2FsTmFtZShsaW5rVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5h
bWUobWV0YVRhZykKKyAgICAgICAgfHwgaGFzTG9jYWxOYW1lKHBhcmFtVGFnKQorICAgICAgICB8
fCBoYXNMb2NhbE5hbWUoc291cmNlVGFnKQorICAgICAgICB8fCBoYXNMb2NhbE5hbWUod2JyVGFn
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gRklYTUU6IEknbSBub3Qgc3VyZSB3aHkg
ZGFzaGJvYXJkIG1vZGUgd291bGQgd2FudCB0byBjaGFuZ2UgdGhlCisgICAgLy8gc2VyaWFsaXph
dGlvbiBvZiA8Y2FudmFzPiwgdGhhdCBzZWVtcyBsaWtlIGEgYmFkIGlkZWEuCisjaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQorICAgIGlmIChoYXNMb2NhbE5hbWUoY2FudmFzVGFnKSkgewor
ICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOworICAg
ICAgICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBh
dGliaWxpdHlNb2RlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYK
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgSFRNTEVsZW1lbnQ6Om1hcFRvRW50cnkoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQp
IGNvbnN0CkBAIC0yMzksNyArMjcxLDcgQEAgc3RhdGljIGJvb2wgdXNlTGVnYWN5VHJlZUJ1aWxk
ZXIoRG9jdW1lbnQqKQogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBIVE1MRWxlbWVudDo6
ZGVwcmVjYXRlZENyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChjb25zdCBTdHJpbmcmIG1hcmt1cCwg
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAg
Ly8gVGhlIGZvbGxvd2luZyBpcyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGRlZmluaXRpb24gYXMg
dXNlZCBieSBJRS4KLSAgICBpZiAoZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0dXNGb3Ji
aWRkZW4pCisgICAgaWYgKGllRm9yYmlkc0luc2VydEhUTUwoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBpZiAoaGFzTG9jYWxOYW1lKGNvbFRhZykgfHwgaGFzTG9jYWxOYW1lKGNvbGdyb3Vw
VGFnKSB8fCBoYXNMb2NhbE5hbWUoZnJhbWVzZXRUYWcpCkBAIC0zNTksOCArMzkxLDcgQEAgdm9p
ZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAKIHZvaWQgSFRNTEVsZW1lbnQ6OnNldElubmVyVGV4dChjb25zdCBTdHJpbmcm
IHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIC8vIEZvbGxvdyB0aGUgSUUgc3BlY3Mg
YWJvdXQgd2hlbiB0aGlzIGlzIGFsbG93ZWQuCi0gICAgaWYgKGVuZFRhZ1JlcXVpcmVtZW50KCkg
PT0gVGFnU3RhdHVzRm9yYmlkZGVuKSB7CisgICAgaWYgKGllRm9yYmlkc0luc2VydEhUTUwoKSkg
ewogICAgICAgICBlYyA9IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTQyOSw4ICs0NjAsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5l
clRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogdm9pZCBIVE1M
RWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgLy8gRm9sbG93IHRoZSBJRSBzcGVjcyBhYm91dCB3aGVuIHRoaXMgaXMgYWxs
b3dlZC4KLSAgICBpZiAoZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0dXNGb3JiaWRkZW4p
IHsKKyAgICBpZiAoaWVGb3JiaWRzSW5zZXJ0SFRNTCgpKSB7CiAgICAgICAgIGVjID0gTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aAppbmRleCA1ZjA4ZDM4ZGVkMzY2Zjc3NGVmM2NjMjQ0ZTYyNTFmZjkzYjM0YTkzLi42ZWRmNWMz
MGZjMjcwNzZlYTUyMGNmODA3NTI0NWI0MjA2M2RjODBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtNzIs
NyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJv
b2wgc2VuZFRvQW55RWxlbWVudCk7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFn
UmVxdWlyZW1lbnQoKSBjb25zdDsKKyAgICBib29sIGllRm9yYmlkc0luc2VydEhUTUwoKSBjb25z
dDsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7CiAg
ICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVu
ZGVyU3R5bGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmluZGV4IDk3ZmMzYzNmYjlmZTk3YTZl
MjMwMDgyYzIzOGM3ZTQxYzBlYjc2MWUuLjVmNGRmNjc1MjRlZDkxZjdkMDVlMTNiMjkwYzUwNmQ3
Yjg4OGI1ZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtMzYsOCArMzYsNiBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1l
bnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLQogICAgIHZpcnR1YWwg
Ym9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRy
aWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9u
dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAppbmRleCBlN2Q5NWI5
NTM0OWRjMDYwZjQ4MWVmY2FkOWQxMThkMzYzMTBjMjVlLi5mOTdhYjA4MGFiNWNkZWUwZGYxZDli
ZmJiYzlhOTExNDc5NTc3YmVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVt
ZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oCkBAIC0zNiw4ICszNiw2
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBIVE1MRm9udEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7Ci0gICAgCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVu
ZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBNYXBwZWRB
dHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4
IGM3YjcyODBiNTQ1ZTljOGY0ZWNhODZkMTg0NmY5ZWMzY2Y4MGE2ODYuLjIzNTIxODI1MzU3ZTE3
OWE3ZTViOWNmNGZmZWQ4N2U4MTM4ODhjOTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaApAQCAtMTIyLDggKzEyMiw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wg
cmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBIVE1M
VGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVx
dWlyZWQ7IH0KLQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbE5h
bWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggY2Q2N2I4NWE1NWYx
N2U2MzhhZjE2YmViMTZiYWIyNTgxNDY2Y2ZiZi4uMTUxYjJlODlhYjQyZGQ2NDFmMTM3M2Y4MTIw
ZjgxZWI3MTkyMTM0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5o
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMTE0LDggKzExNCw2IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEZvcm1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVp
cmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lk
IGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9j
dW1lbnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmggYi9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDNiNDlhNzY5Y2M2NmFmMDZlNTg4
NTdhYWQ1NmMwNzYwOTQyNjkyMjQuLmQ4Y2Y1MDlkZWJkN2Y5MWZiMzZhYWFmODgxN2IxOGY5NDk0
YzcwOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaApAQCAtMzksOCArMzksNiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIEhUTUxGcmFtZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQo
KSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLSAgCiAgICAgdmlydHVhbCB2
b2lkIGF0dGFjaCgpOwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVy
U3R5bGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IGM0ODQyOGYwZDRkNjQw
YzI4YjFkNzNmYmI5ZDJiZWFiMjUyNzJmMTEuLmM3NjE0MTQ4N2VmZjcwYzEyYTZjMzIyNzdjYTNj
ZjNmNmEzMTQxNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtNjcsOCArNjcs
NiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxGcmFtZVNldEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5k
VGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAg
ICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUs
IE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxIUkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgKaW5kZXgg
NjhmOWY0NTYxM2U1NjNhM2JlMGE0ZDgxNWNmY2E3OWMzODAyNmNiYy4uZTg2YmI1NjViM2ExYThl
ZDg3MjI3OTBhMjhmY2Y1Y2FmZDI1NGY4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxI
UkVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5oCkBAIC0zNSw4ICsz
NSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEhSRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5k
VGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KLSAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFw
cGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxI
ZWFkRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5oCmluZGV4IGU4ZjM0
OTJlMzEzNDFmNzIyNzkzZmU4YzhkMDgzMTEyMzIyNWM1NzcuLjFhNWRmODY0YzZlNmJkMjEyZDgz
ZTczNGEzZmY5YzY4YmYxYmVlOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmgKQEAgLTM1LDggKzM1
LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxIZWFkRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRU
YWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c09wdGlvbmFsOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxl
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5oCmluZGV4IDhkODM5MDUz
MWEyNzVlM2U4N2E2N2JjNTkzOTBlNDZlMjIyN2VkMjguLmYwOWNmZTNiMTA4YzkwOTNiN2E3MmUz
OTU1Y2EzZWI0ZjBlYThkODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0Vs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEhlYWRpbmdFbGVtZW50LmgKQEAgLTMzLDgg
KzMzLDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxIZWFkaW5nRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1
cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTEh0bWxFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKaW5kZXgg
NWE3NGIzZGFjYWFlM2ZmYWY3Yzc5MmQzYzBiZDM5MGUwZWE4ODhkYy4uZTg1NGZiMTA3MGVlZDI2
NjQ2ZjFjMTA0MzE0Y2UzZGQwNmExYzNhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaApAQCAtMzYs
OCArMzYsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxIdG1sRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBl
bmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0K
ICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCBp
bnNlcnRlZEludG9Eb2N1bWVudCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmlu
ZGV4IDhjNTRmZTBiNGE5MGIxNjQyMTg1YmFmOGYwM2NjYzk3MzkzMDIwN2MuLjYxY2Q2YjY4ZWQ2
NDhhMzIyNTllZjQ1N2JlZTQ4ODA1NzMwZjM3MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5o
CkBAIC0zNSw4ICszNSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTElGcmFtZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1
aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNl
TWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRl
eCAyM2FhNmM3OWEwNjlmOWU5ZjU1MTdmOTIxZTUwNGVlZDhlNzc4MmNlLi43ZjM4MjE2NGY5Zjc2
ZThkMjhkYjY5MTkxMjBjNTFjYzU4ZGRmNWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAg
LTgwLDggKzgwLDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92ZVRvTmV3
T3duZXJEb2N1bWVudCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBl
bmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQot
CiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKaW5kZXggZjViZTQ2YTdlNDlkNzUzY2M2MWJhMzg0NmVhNmMyODZkYzU1ZjE0NC4uZTZjZGRh
M2MzYjllYTcxNzYzNzZhZTg5NzRlODQ5MzQ3ZTg0YmQ5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yMTgsOCArMjE4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbE1v
dmVUb05ld093bmVyRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3T3du
ZXJEb2N1bWVudCgpOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVt
ZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFs
IGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNF
bnVtZXJhdGFibGUoKSBjb25zdCB7IHJldHVybiBpbnB1dFR5cGUoKSAhPSBJTUFHRTsgfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJc0luZGV4RWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxJc0luZGV4RWxlbWVudC5oCmluZGV4IGQ2NmMwZWRlYWRhMzczZWZkNDY0MThmZWUzODhl
YTg2NDUxY2QwYWIuLjg1N2VmNzU3ODdiMjM0YWI4ZmY4NGY5ZjljMDdjYTg0ZDFmM2EyNmEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuaAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTElzSW5kZXhFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBIVE1MSXNJbmRleEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5k
VGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNGb3JiaWRkZW47IH0KICAg
ICB2aXJ0dWFsIGJvb2wgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmggYi9XZWJD
b3JlL2h0bWwvSFRNTExJRWxlbWVudC5oCmluZGV4IDIxNzRmZThkNjY5M2QzMTY1MzI5ZTFiYjJm
N2ZlYWFjYjE3YTJmNjAuLmFkMTJiNjdmNDdmZjUzNmEzNDZjMTFlOTJjMzRhMjA0ZGUyODgxMGMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxMSUVsZW1lbnQuaApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxMSUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAg
ICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVy
biBUYWdTdGF0dXNPcHRpb25hbDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmgKaW5kZXggNmU0NjBlMGIzYzAxMTY1ZDY1ZjhiMzBkM2UzOTI4OGM1YzU2Yjc3Yi4u
MmZiNzUyNTkzMGJhZGRmNjE1ODE0ZWY1OGRmYzY1YWNhNGMzNWFlMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuaApAQCAtNzUsOCArNzUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ljb24oKSBjb25z
dCB7IHJldHVybiBtX3JlbEF0dHJpYnV0ZS5tX2lzSWNvbjsgfQogCiBwcml2YXRlOgotICAgIHZp
cnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRh
Z1N0YXR1c0ZvcmJpZGRlbjsgfQotCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSopOwogCiAgICAgdm9pZCBwcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5o
CmluZGV4IDhmZjM5MmZjNGI0ZDcwNDYyZjc2NzQ4ZGQ2M2RmMjk2NGRlMjc4NzAuLmMwYzEzOTU3
OTA5N2I2N2VkY2RiNmY3ZGE0NzE4NWZhN2FlNjM4YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MTWFwRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBA
IC00Nyw4ICs0Nyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE1hcEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0
dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsg
fQotCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwog
CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1
ZWVFbGVtZW50LmgKaW5kZXggMzE3YjEzODRiYTQ3MWYyOGYxZTQ0ZTJmMGI4OGU5NDVlZGI1ODIw
NS4uMWIzMjI5YTQwMDFjNGVjYzU1NzYzNTJkMTRhYzQ0ODRiNWVmODQ5NCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRl
OgogICAgIEhUTUxNYXJxdWVlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKLSAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBj
b25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQogCiAgICAgdmlydHVhbCBib29sIG1h
cFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxNZW51RWxlbWVudC5oCmluZGV4IDc1M2EyOGRlZWMzMWU1MzI1YWQ1NzFlMDQyYjkxYTYy
NGI3OGNhNmEuLjZiNTg4ZWNiMWQwNjVkYzE4ZWMwZTJmNDlmNGY0MzdhODFiY2QxMzAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTE1lbnVFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHVibGljOgogICAgIAogcHJpdmF0
ZToKICAgICBIVE1MTWVudUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
Ci0gICAgCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29u
c3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaAppbmRleCA2ZWU3MTkxMzM4NjM3OTEzYjFkMzM2MWJlYmRmNzliMzFm
NzgwOGM4Li45YjAxNzhlOWI0NWJmZDc3MDJjMjExNmZjZjI0NjQ1MWRmN2ZlNzRjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxNZXRhRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
SFRNTE1ldGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAg
dmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4g
VGFnU3RhdHVzRm9yYmlkZGVuOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKik7CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50
KCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5oIGIvV2ViQ29y
ZS9odG1sL0hUTUxNb2RFbGVtZW50LmgKaW5kZXggNDI5MjAwNjg3Y2JhMWJmYmM2YzE2MDAwN2Q2
ZGM5ZDk5OTQ3YTI2ZS4uMmIwOWUyMTgwNWViNzE1ZGI3ZDlhN2Q5NDRlNjY2ZTc3YTNmN2FiZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxNb2RFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIEhUTUxNb2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwot
Ci0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE9M
aXN0RWxlbWVudC5oCmluZGV4IDYyZTJhZTExMThkYjNmZmYzOTE4NGRiN2Q4ZTA2NmI5OWI4MDM3
M2MuLjE3OWZlYzBiMzc5ZTE3ODQ2YTFlODdjZTM2ZjljYWUxMmM1Y2JlNDIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxP
TGlzdEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhU
TUxPTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAg
IAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRy
eShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmgKaW5kZXggYzhiOWMyYWFhZDZkNGVhNmExNGE5YmQ3YzMzYTFlNDRi
YjUxYzJiYy4uYzE3OTFkNzAwOWYyMjY4ODljYjYwNzRhYWZmMjJmY2VlODJhZTNlNCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmgKQEAgLTY2LDcgKzY2LDYgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MT3B0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBI
VE1MRm9ybUVsZW1lbnQqID0gMCk7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFn
UmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNPcHRpb25hbDsgfQogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRm9j
dXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVy
U3R5bGUqKSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxQ
YXJhZ3JhcGhFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaApp
bmRleCA4ZmZmNjJkYzE3Zjg1MWFmNDM1NTRiYjk3NzQ4ZTE5NTQzNzc5OTdjLi42ZGJmMDcxMTA3
OWRiNTU2OGQzNmZlZjM3NDEzYTM4ZDIwZWVjNWFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTFBhcmFncmFwaEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVs
ZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxQYXJh
Z3JhcGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmly
dHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFn
U3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIH07CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaAppbmRleCA2MGI5MGE0N2Y2MjY0MWI0MjZmNWIyZTRhMzllNGIzZTk0Y2YxYmVhLi5m
MTNmOGZhNjBjMDkzOWQ5NDlkOGE3OGUzNjI0ZDQzYTlmNzUwYjU2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1F
bGVtZW50LmgKQEAgLTM3LDE5ICszNywxOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxQ
YXJhbUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0
dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdT
dGF0dXNGb3JiaWRkZW47IH0KLQogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShBdHRyaWJ1dGUqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1
dGUqKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBkb24n
dCBuZWVkIHRvIGJlIHN0b3JlZCBhcyBtZW1iZXJzIGFuZCBpbnN0ZWFkCisgICAgLy8gbmFtZSgp
IHZhbHVlKCkgY291bGQgdXNlIGdldEF0dHJpYnV0ZShuYW1lQXR0ci92YWx1ZUF0dHIpLgogICAg
IEF0b21pY1N0cmluZyBtX25hbWU7CiAgICAgQXRvbWljU3RyaW5nIG1fdmFsdWU7CiB9OwogCi0K
LX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5oCmluZGV4IGYyZjgzNTFlMmFjNWQyOThkYzJiMjA4N2RmMDExYzcxMjk0NjFmNTYuLjhhNzkx
YjE3MzhlZmNjNTYxYjQ4YWYwZDg0OGZmYmRhOWNlYjFlZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJlbmRlcldp
ZGdldCogcmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5ncygpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1
YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0
YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV2lkZ2V0KCkgeyB9CiAK
IHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5oIGIv
V2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKaW5kZXggY2Y0ODE4MDk1N2QwMjQ1ZjBlYjJm
NWE2MzQ5NTAwNDdhOTYzZDM1ZC4uM2NjZGI4NjAzMWY5MWQ0YWUyNjUwYmZiOTgxNjcxOWJkMmE3
N2RkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBIVE1MUHJlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKIAotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIFRhZ1N0YXR1c1JlcXVpcmVkOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9F
bnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiB9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRt
bC9IVE1MUXVvdGVFbGVtZW50LmgKaW5kZXggOWJhYmQ4ZWMxMzZkN2E0MGFkMTA0ZGIyZmE1ZTI4
YmIwNzVhOWViNi4uMjI1ZGRlOGI3NzdkNTkyNmVlNjExNDcyZGI2YzEyNTY3ZmM5Y2VkOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTFF1b3RlRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgSFRNTFF1b3RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
ICAgICAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25z
dCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dGVkSW50b0RvY3VtZW50KCk7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDI5
ZWI5N2RjODA4M2I5YTYwYTEwNDJlNGU3NDRmZTFlMjdlODA0NDUuLmE1NjI5ZWVkNTMzYmEyNmZk
YjJlZGNiM2Y5M2JmMmYwZmZmMTMxOTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC00
OSw4ICs0OSw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBzY3JpcHRDb250ZW50
KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQo
KSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgIHZpcnR1YWwgdm9pZCBpbnNl
cnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCmluZGV4IGEwZGQ5NTI4OGUxODY2ZDlkODc0NGM2
ODg0MzU1NWRjY2M2OTE2MWMuLjhhYTFkMDZjZjM5MDU2YWVjY2M4MjAwMTU1M2Y4MzljNjZiYWIy
ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCkBAIC00OCw4ICs0OCw2IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBIVE1MU291cmNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgSFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1c0ZvcmJpZGRlbjsgfQogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
U3R5bGVFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCmluZGV4IGQ2
OGJhYjRhNTk4NDdmZTM4OTFiNDZkYjc3OTk3ZTEyYmEwZjE1MjIuLmI0MDEzYjg0Y2YzYjRjOGY0
NThiMDMzNzhhOTA4YjhmYjIwZmExM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU3R5
bGVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNDEs
OCArNDEsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxTdHlsZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCi0gICAg
dmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4g
VGFnU3RhdHVzUmVxdWlyZWQ7IH0KLQogICAgIC8vIG92ZXJsb2FkIGZyb20gSFRNTEVsZW1lbnQK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAg
dmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5oCmluZGV4IGI3OGQ4YjBiNTdhOGI5OGRjNjljNGQ1ZWFlZWY5NGQzNDAx
NGFiMmIuLmEyZGQyZmFhZTBiMTU1OTBhOTJhOTgzNzg4MjA0NzYwMzU5ODZhNGQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC0zNyw4ICszNyw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CiAgICAgCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1Jl
cXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7IH0KLSAgICAKICAg
ICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiwgTWFwcGVkQXR0
cmlidXRlRW50cnkmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAppbmRleCBh
OTM3Yzk2NzhkMzJiYjIxZjRiYzhkNDkxMmE2OWQwNjQ5NjQ3ODI3Li4wYzk3NDEzZjA1M2U3ZWNl
M2YzZmEwZGVhMDUyYmM3YWZhMDM0OTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ2VsbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aApAQCAtNTYsOCArNTYsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUYWJsZUNlbGxF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBI
VE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVz
T3B0aW9uYWw7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVs
ZW1lbnQuY3BwCmluZGV4IDUwNzE4YjA3MWM2Yjc0OTQ4MDZiODMwMDk5MjliZDliZmRiNjYzMzEu
LjIwYjBmMzYyYWJiYjFiZmNkMjg5MmU1YjQ5ODhmYWVmMGE0NGFjNmMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ29sRWxlbWVudC5jcHAKQEAgLTQ3LDExICs0Nyw2IEBAIFBhc3NSZWZQdHI8SFRNTFRh
YmxlQ29sRWxlbWVudD4gSFRNTFRhYmxlQ29sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVDb2xFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLUhUTUxUYWdTdGF0dXMgSFRNTFRhYmxlQ29sRWxlbWVudDo6
ZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBoYXNMb2NhbE5hbWUoY29s
VGFnKSA/IFRhZ1N0YXR1c0ZvcmJpZGRlbiA6IFRhZ1N0YXR1c09wdGlvbmFsOwotfQotCiBib29s
IEhUTUxUYWJsZUNvbEVsZW1lbnQ6Om1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgaWYgKGF0
dHJOYW1lID09IHdpZHRoQXR0cikgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKaW5kZXgg
MWE3M2VjNjAxNTJjMjU2YTM1MWI0MjFlMDlmNDY3YTNmYTUwNmQ3Mi4uYzc1MTdkMTBhY2U2MDQz
Y2QyYWYxNzc4ZmRmZWI5NWQ2MzNhMTg5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5o
CkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlQ29sRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCi0gICAgdmly
dHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVu
dHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSopOwogICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQWRkaXRpb25hbEF0dHJpYnV0ZVN0eWxl
RGVjbHMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRl
eCA4MGY0YTQyNTY3ZGNjNzY5NzY5ZWRmN2UwZTRlODE4NzJiZjI0MDZiLi5kYTNkYzMwM2ZkNGE3
ZDU4ZmJhYWUyZjA5YzU5NzU2ODZmZTM4YmYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAg
LTcxLDggKzcxLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3Rh
dHVzIGVuZFRhZ1JlcXVpcmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzUmVxdWlyZWQ7
IH0KLQogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBN
YXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAppbmRleCBjYTI0
MWQ4NjZkOTAzY2M4Y2NiYTgyYmQ0MGUzOWViZWYwZjFhYjFjLi5jNDMzNjc3YWM4NDc4ZmM2Mzdi
Y2I0N2YwMjQyMTBhMDEyNzI5YjljIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgKQEAg
LTQ5LDggKzQ5LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhUTUxUYWJsZVJvd0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7Ci0KLSAgICB2aXJ0dWFsIEhUTUxU
YWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdTdGF0dXNPcHRp
b25hbDsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmgKaW5kZXggMjI0OGU3MmNjNDA5OTI2MDBiNzk4MTQ1MGQyZWMzNjgxMDgxYTE1Zi4u
YTg0Y2JkZTZkNTg0YzY4NTEzMjU3MTZhMjljZTlmODljOGUxZWNmOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKQEAgLTU2LDcgKzU2LDYgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBIVE1MVGFnU3RhdHVzIGVuZFRhZ1JlcXVp
cmVtZW50KCkgY29uc3QgeyByZXR1cm4gVGFnU3RhdHVzT3B0aW9uYWw7IH0KICAgICB2aXJ0dWFs
IGJvb2wgY2FuSGF2ZUFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZURlY2xzKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhZGRpdGlvbmFsQXR0cmlidXRlU3R5bGVEZWNs
cyhWZWN0b3I8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPiYpOwogfTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0
RWxlbWVudC5oCmluZGV4IGM2ZDZkMDI4MTgyYzUyODMxZjJiYjM1YTgzZmJhMzU5OTkwOTAwYmMu
LmY5MWJmMWMzYjYxZjNiM2U4N2YyNTYzMjUwNDcwMmJiNmNkZWUyMWUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxVTGlz
dEVsZW1lbnQuaApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxV
TGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0
dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdCB7IHJldHVybiBUYWdT
dGF0dXNSZXF1aXJlZDsgfQotCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuY3BwIGIvV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVudC5j
cHAKaW5kZXggMWRkNDE1MGI3NDdlNmE5ZDUwNjVkOGIwZmQzOTMyNDkwNmI1ZjgwMy4uODNlZTQ1
MTNlZWM2MzZjYjI5MTQxOGIyZGJmNGQ5NWRiZTc4ZmNmNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L0FwaS9xd2ViZWxlbWVudC5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVudC5jcHAK
QEAgLTExOTAsNiArMTE5MCw4IEBAIHZvaWQgUVdlYkVsZW1lbnQ6OnJlbW92ZUFsbENoaWxkcmVu
KCkKICAgICBtX2VsZW1lbnQtPnJlbW92ZUFsbENoaWxkcmVuKCk7CiB9CiAKKy8vIEZJWE1FOiBU
aGlzIGNvZGUsIGFuZCBhbGwgY2FsbGVycyBhcmUgd3JvbmcsIGFuZCBoYXZlIG5vIHBsYWNlIGlu
IGEKKy8vIFdlYktpdCBpbXBsZW1lbnRhdGlvbi4gIFRoZXNlIHNob3VsZCBiZSByZXBsYWNlZCB3
aXRoIFdlYkNvcmUgaW1wbGVtZW50YXRpb25zLgogc3RhdGljIFJlZlB0cjxOb2RlPiBmaW5kSW5z
ZXJ0aW9uUG9pbnQoUGFzc1JlZlB0cjxOb2RlPiByb290KQogewogICAgIFJlZlB0cjxOb2RlPiBu
b2RlID0gcm9vdDsKQEAgLTEyMDUsNyArMTIwNyw3IEBAIHN0YXRpYyBSZWZQdHI8Tm9kZT4gZmlu
ZEluc2VydGlvblBvaW50KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdCkKICAgICAgICAgLy8gVGhlIGlu
c2VydCBwb2ludCBjb3VsZCBiZSBhIG5vbi1lbmNsb3NhYmxlIHRhZyBhbmQgaXQgY2FuIHRodXMK
ICAgICAgICAgLy8gbmV2ZXIgaGF2ZSBjaGlsZHJlbiwgc28gZ28gb25lIHVwLiBHZXQgdGhlIHBh
cmVudCBlbGVtZW50LCBhbmQgbm90CiAgICAgICAgIC8vIG5vdGUgYXMgYSByb290IG5vdGUgd2ls
bCBhbHdheXMgZXhpc3QuCi0gICAgICAgIGlmIChlbGVtZW50LT5lbmRUYWdSZXF1aXJlbWVudCgp
ID09IFRhZ1N0YXR1c0ZvcmJpZGRlbikKKyAgICAgICAgaWYgKGVsZW1lbnQtPmllRm9yYmlkc0lu
c2VydEhUTUwoKSkKICAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRFbGVtZW50KCk7CiAg
ICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>