<?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>81170</bug_id>
          
          <creation_ts>2012-03-14 16:45:01 -0700</creation_ts>
          <short_desc>REGRESSION(r110641): Causes an ASAN failure (Requested by abarth on #webkit).</short_desc>
          <delta_ts>2012-03-14 16:57:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80880</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>578933</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 16:45:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/110641 broke the build:
Causes an ASAN failure (Requested by abarth on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578934</commentid>
    <comment_count>1</comment_count>
      <attachid>131957</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 16:45:47 -0700</bug_when>
    <thetext>Created attachment 131957
ROLLOUT of r110641

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578935</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-14 16:46:12 -0700</bug_when>
    <thetext>AllUrlsApiTest.WhitelistedExtension: 
[6008:6008:0314/155218:1809070530:WARNING:zygote_host_impl_linux.cc(154)] Running without the SUID sandbox! See http://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[6008:6008:0314/155219:1810342920:WARNING:CONSOLE(2109)] &quot;Missing string for id: login_status_message&quot;, source: chrome://newtab/ (2109)
[6008:6008:0314/155219:1810343124:WARNING:CONSOLE(2109)] &quot;Missing string for id: ntp4_intro_message&quot;, source: chrome://newtab/ (2109)
[6008:6008:0314/155219:1810343207:WARNING:CONSOLE(2109)] &quot;Missing string for id: serverpromo&quot;, source: chrome://newtab/ (2109)
ASAN:SIGSEGV
==6041== ERROR: AddressSanitizer crashed on unknown address 0x000000000000 (pc 0x00000396c3e9 sp 0x7fffeab329f0 bp 0x7fffeab32a20 T0)
AddressSanitizer can not provide additional info. ABORTING
    #0 0x396c3e9 in v8::Context::Global() ???:0
    #1 0x5a4e8ec in WebCore::DOMData::getCurrentStore() ???:0
    #2 0x52242d9 in WebCore::getDOMNodeMap() ???:0
    #3 0x659e806 in WebCore::V8DOMTokenList::visitDOMWrapper(WebCore::DOMDataStore*, void*, v8::Persistent&lt;v8::Object&gt;) ???:0
    #4 0x5a5634f in WebCore::WeakReferenceMap&lt;void, v8::Object&gt;::visit(WebCore::DOMDataStore*, WebCore::AbstractWeakReferenceMap&lt;void, v8::Object&gt;::Visitor*) ???:0
    #5 0x5224eb8 in WebCore::visitDOMObjects(WebCore::AbstractWeakReferenceMap&lt;void, v8::Object&gt;::Visitor*) ???:0
    #6 0x522e4b6 in WebCore::V8GCController::gcPrologue() ???:0
    #7 0x3a6c83e in v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GCTracer*) ???:0
Stats: 35M malloced (47M for red zones) by 142313 calls
Stats: 0M realloced by 258 calls
Stats: 29M freed by 81525 calls
Stats: 0M really freed by 0 calls
Stats: 112M (28687 full pages) mmaped in 28 calls
  mmaps   by size class: 8:131064; 9:16382; 10:8190; 11:2047; 12:1024; 13:1024; 14:512; 15:128; 16:128; 17:96; 18:32; 19:8; 20:4;
  mallocs by size class: 8:124488; 9:9231; 10:6162; 11:801; 12:317; 13:680; 14:334; 15:115; 16:72; 17:79; 18:26; 19:7; 20:1;
  frees   by size class: 8:67711; 9:6245; 10:5667; 11:547; 12:251; 13:546; 14:291; 15:103; 16:60; 17:70; 18:26; 19:7; 20:1;
  rfrees  by size class:
Stats: malloc large: 113 small slow: 511
Killed (timed out).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578946</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-14 16:57:26 -0700</bug_when>
    <thetext>Committed r110788: &lt;http://trac.webkit.org/changeset/110788&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131957</attachid>
            <date>2012-03-14 16:45:47 -0700</date>
            <delta_ts>2012-03-14 16:46:18 -0700</delta_ts>
            <desc>ROLLOUT of r110641</desc>
            <filename>bug-81170-20120314234816.patch</filename>
            <type>text/plain</type>
            <size>52351</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNjM2ZiMGZjODQwMGIz
ZWVlYmJjYTYyYTNkOGQ3YmIxY2Q1MmU3Ny4uZTUxNjNjMTkyZDNjOGU3NGI3ZWY3ODU1Mzc5NGFj
MmEzOWRkYjNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEyLTAzLTE0ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEwNjQxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTA2NDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMTcwCisKKyAgICAgICAgQ2F1c2VzIGFuIEFTQU4gZmFpbHVyZSAoUmVxdWVz
dGVkIGJ5IGFiYXJ0aCBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAg
ICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6
CisgICAgICAgIChHZW5lcmF0ZU5hbWVkQ29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0
NjRBcnJheS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaDoKKyAgICAgICAgKFY4RmxvYXQ2NEFycmF5KToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKFY4VGVzdEFjdGl2ZURPTU9i
amVjdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5oOgorICAgICAgICAoVjhUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmg6CisgICAg
ICAgIChWOFRlc3RFdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAg
ICAgIChWOFRlc3RFdmVudFRhcmdldCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgIChWOFRl
c3RJbnRlcmZhY2UpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6
CisgICAgICAgIChWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmg6
CisgICAgICAgIChWOFRlc3RPYmopOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAoVjhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om5wT2JqZWN0VHlwZUluZm8pOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdyb3VwZXJWaXNpdG9y
Ojp2aXNpdERPTVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5m
by5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXcmFwcGVyVHlwZUluZm8pOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3Vz
dG9tLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVN
YXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0Lmlk
bDoKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldC5pZGw6CisgICAgICAgICogZG9tL0RPTVN0cmlu
Z01hcC5pZGw6CisgICAgICAgICogZG9tL05hbWVkTm9kZU1hcC5pZGw6CisgICAgICAgICogaHRt
bC9ET01Ub2tlbkxpc3QuaWRsOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5j
cHA6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbDoKKwogMjAxMi0wMy0x
MyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgU2VwYXJhdGUgTk9USUZJ
Q0FUSU9OUyBhbmQgTEVHQUNZX05PVElGSUNBVElPTlMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDJiYzk1YzNj
Yjk1YzEyNjRhZWE4NzY1N2FlM2YwNzFkYWQ2NTI4Y2EuLmVjZmQ2NDc0NjUxNjQ5MzY3YTgzNDAw
NzAzMTBkYTY2MDExYjBlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTYwLDYgKzE2MCw3IEBAIHY4IHsK
ICAgICAgICAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NSdWxlQ3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0
b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3Rv
bS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NWYWx1ZUN1c3RvbS5jcHAg
XAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4ZWxBcnJh
eUN1c3RvbS5jcHAgXApAQCAtMTY5LDcgKzE3MCw4IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgXAogICAgICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIFwKLSAgICAg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAorICAgICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwIFwKKyAgICAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcAogCiAgICAgU09VUkNFUyAr
PSBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVNRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2suY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKaW5kZXggMWMyMzI2YmY5OTdhMDM3MGQ4ZDNhM2Yx
NjY5YzAyOTVhM2IyMDg1NC4uMDlmMjkwOGVmOTdkMTBmY2M1NDE4OWI2Mzk1NmVkMzlmYjlkM2M1
YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvVXNlVjguY21ha2UKQEAgLTczLDYgKzczLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1J1bGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENTU1ZhbHVlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1Bp
eGVsQXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQ3VzdG9tLmNwcApAQCAtODQsNiArODUsNyBAQCBMSVNUKEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAorICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0
YVZpZXdDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGVkaWNhdGVkV29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5Y2RkZjFiZTBiYTAwNjQwODdi
ZTVkZmYyNDUxODUxYzdiOTBiMWYyLi43NWYwYzhmMDViY2NmNGViODkyYWJiODBiZjI3ZGI2OTJk
MjBmMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDE1LDYgKzIwMTUsNyBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEJsb2JDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhDU1NSdWxlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAnLAorICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlU2hlZXRDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDU1NWYWx1ZUN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDdXN0b20uY3BwJywKQEAgLTIwMjgsNiArMjAyOSw3IEBACiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCcsCisgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Q3VzdG9t
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IDc3ZGM3ZGY5MjI1MjBmZDY2NDA5MDhkZDVjMmMxMDBlZTBlYTEyMjcu
LmI2YzFjYmFiYTFhOTliNDZiZjMxNWU5YWY4ZGFkZDIxMDhmOTc1YjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zODEs
MTggKzM4MSw2IEBAIHN1YiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcgogICAgIH0KIH0KIAot
c3ViIEdldEdlbmVyYXRlSXNSZWFjaGFibGUKLXsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
LSAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVJc1Jl
YWNoYWJsZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVJ
c1JlYWNoYWJsZSJ9OwotfQotCi1zdWIgR2V0Q3VzdG9tSXNSZWFjaGFibGUKLXsKLSAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsKLSAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tSXNSZWFjaGFibGUifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0N1c3RvbUlzUmVhY2hhYmxlIn07Ci19Ci0KIHN1YiBHZW5lcmF0ZUNvbmRpdGlvbmFs
U3RyaW5nCiB7CiAgICAgbXkgJG5vZGUgPSBzaGlmdDsKQEAgLTk5Miw4ICs5ODAsOCBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICB9CiAKICAgICBpZiAoISRoYXNQYXJlbnQgfHwKLSAgICAgICAg
R2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8Ci0gICAgICAgIEdldEN1c3RvbUlz
UmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwKKyAgICAgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSlNHZW5lcmF0ZUlzUmVhY2hhYmxlIn0gfHwgCisgICAgICAgICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tSXNSZWFjaGFibGUifSB8fCAKICAgICAgICAg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21GaW5hbGl6ZSJ9IHx8CiAg
ICAgICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9
KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyBKUyR7aW1wbENsYXNzTmFt
ZX1Pd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7XG4iKTsKQEAgLTIyODAsNyAr
MjI2OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBpZiAoKCEkaGFzUGFyZW50ICYmICFHZXRDdXN0b21Jc1JlYWNoYWJsZSgkZGF0YU5vZGUp
KXx8IEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkgeworICAgIGlmICgoISRoYXNQYXJl
bnQgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tSXNSZWFjaGFi
bGUifSl8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlSXNSZWFj
aGFibGUifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmpl
Y3QifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0YXRpYyBpbmxpbmUgYm9vbCBp
c09ic2VydmFibGUoSlMke2ltcGxDbGFzc05hbWV9KiBqcyR7aW1wbENsYXNzTmFtZX0pXG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKGpzJHtpbXBsQ2xhc3NOYW1lfS0+aGFzQ3VzdG9tUHJvcGVydGllcygp
KVxuIik7CkBAIC0yMzA4LDIxICsyMjk2LDIxIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFpc09ic2Vy
dmFibGUoanMke2ltcGxDbGFzc05hbWV9KSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIik7Ci0gICAgICAgIGlmIChHZXRHZW5lcmF0ZUlz
UmVhY2hhYmxlKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVJc1JlYWNoYWJsZSJ9KSB7CiAgICAgICAgICAgICBteSAk
cm9vdFN0cmluZzsKLSAgICAgICAgICAgIGlmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRh
Tm9kZSkgZXEgIkltcGwiKSB7CisgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZUlzUmVhY2hhYmxlIn0gZXEgIkltcGwiKSB7CiAgICAgICAg
ICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICAke2ltcGxUeXBlfSogcm9vdCA9IGpzJHtpbXBs
Q2xhc3NOYW1lfS0+aW1wbCgpO1xuIjsKLSAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRl
SXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAiSW1wbENvbnRleHQiKSB7CisgICAgICAgICAgICB9
IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlSXNSZWFj
aGFibGUifSBlcSAiSW1wbENvbnRleHQiKSB7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcg
ID0gIiAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIHJvb3QgPSBqcyR7aW1wbENsYXNzTmFtZX0t
PmltcGwoKS0+Y29udGV4dCgpO1xuIjsKLSAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRl
SXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAiSW1wbEZyYW1lIikgeworICAgICAgICAgICAgfSBl
bHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZUlzUmVhY2hh
YmxlIn0gZXEgIkltcGxGcmFtZSIpIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAi
ICAgIEZyYW1lKiByb290ID0ganMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCktPmZyYW1lKCk7XG4i
OwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYgKCFyb290KVxuIjsKICAg
ICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iOwot
ICAgICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVx
ICJJbXBsRG9jdW1lbnQiKSB7CisgICAgICAgICAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlSXNSZWFjaGFibGUifSBlcSAiSW1wbERvY3VtZW50
IikgewogICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgRG9jdW1lbnQqIHJvb3Qg
PSBqcyR7aW1wbENsYXNzTmFtZX0tPmltcGwoKS0+ZG9jdW1lbnQoKTtcbiI7CiAgICAgICAgICAg
ICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoIXJvb3QpXG4iOwogICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nIC49ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7Ci0gICAgICAgICAgICB9
IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxFbGVtZW50
Um9vdCIpIHsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkpTR2VuZXJhdGVJc1JlYWNoYWJsZSJ9IGVxICJJbXBsRWxlbWVudFJvb3QiKSB7CiAg
ICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICBFbGVtZW50KiBlbGVtZW50ID0ganMk
e2ltcGxDbGFzc05hbWV9LT5pbXBsKCktPmVsZW1lbnQoKTtcbiI7CiAgICAgICAgICAgICAgICAg
JHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoIWVsZW1lbnQpXG4iOwogICAgICAgICAgICAgICAgICRy
b290U3RyaW5nIC49ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7CkBAIC0yMzQ2LDggKzIzMzQs
OCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgaWYgKCEkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUZpbmFsaXplIn0gJiYKICAgICAgICAgKCEkaGFz
UGFyZW50IHx8Ci0gICAgICAgICBHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwK
LSAgICAgICAgIEdldEN1c3RvbUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwKKyAgICAgICAgICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVJc1JlYWNoYWJsZSJ9IHx8
CisgICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUlzUmVh
Y2hhYmxlIn0gfHwKICAgICAgICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFj
dGl2ZURPTU9iamVjdCJ9KSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgSlMk
e2ltcGxDbGFzc05hbWV9T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiBjb250ZXh0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCmluZGV4IGFlYjM5ZWE2NmNjMmZiYjNjOWQwYWYyOTMyNzkyMmNhZGUyYzY1MGYu
LjU3N2VmZTM5MTI1MzY5NDBhNDIyMTljYjk4MWRiNDAyNmVmZTVmNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xOTIs
NjMgKzE5Miw2IEBAIHN1YiBHZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nCiAgICAgfQogfQogCi1z
dWIgTmVlZHNUb1Zpc2l0RE9NV3JhcHBlcgotewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owot
ICAgIHJldHVybiBHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgR2V0Q3VzdG9t
SXNSZWFjaGFibGUoJGRhdGFOb2RlKTsKLX0KLQotc3ViIEdldEdlbmVyYXRlSXNSZWFjaGFibGUK
LXsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVJc1JlYWNoYWJsZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlY4R2VuZXJhdGVJc1JlYWNoYWJsZSJ9IHx8ICIiCi19Ci0KLXN1
YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQotewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAg
IHJldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Jc1JlYWNoYWJs
ZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9tSXNSZWFjaGFi
bGUifTsKLX0KLQotc3ViIEdlbmVyYXRlVmlzaXRET01XcmFwcGVyCi17Ci0gICAgbXkgKCRkYXRh
Tm9kZSwgJGltcGxDbGFzc05hbWUpID0gQF87Ci0KLSAgICBpZiAoR2V0Q3VzdG9tSXNSZWFjaGFi
bGUoJGRhdGFOb2RlKSkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKLXZvaWQgVjgke2ltcGxDbGFzc05hbWV9Ojp2aXNpdERPTVdyYXBw
ZXIoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdm9pZCogb2JqZWN0LCB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVyKQotewotICAgICR7aW1wbENsYXNzTmFtZX0qIGltcGwgPSBzdGF0aWNf
Y2FzdDwke2ltcGxDbGFzc05hbWV9Kj4ob2JqZWN0KTsKLUVORAotICAgIGlmIChHZXRHZW5lcmF0
ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgICJJbXBsRWxlbWVudFJvb3QiIHx8Ci0gICAgICAg
IEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAgIkltcGxPd25lclJvb3QiIHx8
Ci0gICAgICAgIEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAgIkltcGxPd25l
ck5vZGVSb290IikgewotCi0gICAgICAgIG15ICRtZXRob2ROYW1lOwotICAgICAgICAkbWV0aG9k
TmFtZSA9ICJlbGVtZW50IiBpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVx
ICJJbXBsRWxlbWVudFJvb3QiKTsKLSAgICAgICAgJG1ldGhvZE5hbWUgPSAib3duZXIiIGlmIChH
ZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxPd25lclJvb3QiKTsKLSAg
ICAgICAgJG1ldGhvZE5hbWUgPSAib3duZXJOb2RlIiBpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJs
ZSgkZGF0YU5vZGUpIGVxICJJbXBsT3duZXJOb2RlUm9vdCIpOwotCi0gICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCA8PEVORCk7Ci0gICAgaWYgKE5vZGUqIG93bmVyID0gaW1wbC0+JHttZXRob2RO
YW1lfSgpKSB7Ci0gICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG93bmVyV3JhcHBl
ciA9IGdldERPTU5vZGVNYXAoKS5nZXQob3duZXIpOwotICAgICAgICBpZiAoIW93bmVyV3JhcHBl
ci5Jc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gdmFs
dWUgPSB3cmFwcGVyOwotICAgICAgICAgICAgdjg6OlY4OjpBZGRJbXBsaWNpdFJlZmVyZW5jZXMo
b3duZXJXcmFwcGVyLCAmdmFsdWUsIDEpOwotICAgICAgICB9Ci0gICAgfQotRU5ECi0gICAgfQot
Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLX0KLQotRU5ECi19Ci0KIHN1YiBHZXRT
VkdQcm9wZXJ0eVR5cGVzCiB7CiAgICAgbXkgJGltcGxUeXBlID0gc2hpZnQ7CkBAIC0zMDMsOCAr
MjQ2LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgJGNvZGVHZW5lcmF0b3ItPkFkZE1ldGhv
ZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJGRhdGFOb2RlLCBcQGFs
bFBhcmVudHMsIDEpOwogICAgICRjb2RlR2VuZXJhdG9yLT5MaW5rT3ZlcmxvYWRlZEZ1bmN0aW9u
cygkZGF0YU5vZGUpOwogCi0gICAgbXkgJGhhc0RlcGVuZGVudExpZmV0aW1lID0gJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhEZXBlbmRlbnRMaWZldGltZSJ9IHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9Ci0gICAgICAgICB8fCBH
ZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgfHwgJGNsYXNzTmFtZSA9fiAvU1ZHLzsK
KyAgICBteSAkaGFzRGVwZW5kZW50TGlmZXRpbWUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJWOERlcGVuZGVudExpZmV0aW1lIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0gfHwgJGNsYXNzTmFtZSA9fiAvU1ZHLzsKICAgICBp
ZiAoISRoYXNEZXBlbmRlbnRMaWZldGltZSkgewogICAgICAgICBmb3JlYWNoIChAeyRkYXRhTm9k
ZS0+cGFyZW50c30pIHsKICAgICAgICAgICAgIG15ICRwYXJlbnQgPSAkY29kZUdlbmVyYXRvci0+
U3RyaXBNb2R1bGUoJF8pOwpAQCAtMzk4LDcgKzM0MCw2IEBAIEVORAogICAgIH0KICAgICBpbmxp
bmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcCgke25hdGl2ZVR5cGV9KiR7Zm9y
Y2VOZXdPYmplY3RQYXJhbWV0ZXJ9KTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lk
Kik7Ci0gICAgc3RhdGljIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQq
LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5m
byBpbmZvOwogRU5ECiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFj
dGl2ZURPTU9iamVjdCJ9KSB7CkBAIC0xODU1LDEyICsxNzk2LDEyIEBAIHN1YiBHZW5lcmF0ZU5h
bWVkQ29uc3RydWN0b3JDYWxsYmFjawogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7Ci1XcmFwcGVyVHlwZUluZm8gVjgke2ltcGxDbGFzc05hbWV9Q29uc3RydWN0b3I6
OmluZm8gPSB7IFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSwgVjgk
e2ltcGxDbGFzc05hbWV9OjpkZXJlZk9iamVjdCwgVjgke2ltcGxDbGFzc05hbWV9Ojp0b0FjdGl2
ZURPTU9iamVjdCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4JHtpbXBsQ2xhc3NOYW1lfUNv
bnN0cnVjdG9yOjppbmZvID0geyBWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6R2V0VGVt
cGxhdGUsIFY4JHtpbXBsQ2xhc3NOYW1lfTo6ZGVyZWZPYmplY3QsIFY4JHtpbXBsQ2xhc3NOYW1l
fTo6dG9BY3RpdmVET01PYmplY3QsIDAgfTsKIAogRU5ECiAgICAgfSBlbHNlIHsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLVdyYXBwZXJUeXBlSW5mbyBWOCR7aW1wbENsYXNz
TmFtZX1Db25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjgke2ltcGxDbGFzc05hbWV9Q29uc3RydWN0b3I6
OkdldFRlbXBsYXRlLCAwLCAwLCAwLCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjgke2ltcGxDbGFz
c05hbWV9Q29uc3RydWN0b3I6OmluZm8gPSB7IFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9y
OjpHZXRUZW1wbGF0ZSwgMCwgMCwgMCB9OwogCiBFTkQKICAgICB9CkBAIC0yMzA1LDcgKzIyNDYs
NiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgk
aW50ZXJmYWNlTmFtZSk7CiAKICAgICBteSAkdG9BY3RpdmUgPSAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSA/ICIke2NsYXNzTmFtZX06OnRvQWN0aXZl
RE9NT2JqZWN0IiA6ICIwIjsKLSAgICBteSAkZG9tVmlzaXRvciA9IE5lZWRzVG9WaXNpdERPTVdy
YXBwZXIoJGRhdGFOb2RlKSA/ICIke2NsYXNzTmFtZX06OnZpc2l0RE9NV3JhcHBlciIgOiAiMCI7
CiAKICAgICAjIEZpbmQgdGhlIHN1cGVyIGRlc2NyaXB0b3IuCiAgICAgbXkgJHBhcmVudENsYXNz
ID0gIiI7CkBAIC0yMzIyLDcgKzIyNjIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgIH0KICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAibmFtZXNwYWNlIFdlYkNvcmUge1xu
XG4iKTsKICAgICBteSAkcGFyZW50Q2xhc3NJbmZvID0gJHBhcmVudENsYXNzID8gIiYke3BhcmVu
dENsYXNzfTo6aW5mbyIgOiAiMCI7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIldyYXBw
ZXJUeXBlSW5mbyAke2NsYXNzTmFtZX06OmluZm8gPSB7ICR7Y2xhc3NOYW1lfTo6R2V0VGVtcGxh
dGUsICR7Y2xhc3NOYW1lfTo6ZGVyZWZPYmplY3QsICR7dG9BY3RpdmV9LCAke2RvbVZpc2l0b3J9
LCAke3BhcmVudENsYXNzSW5mb30gfTtcblxuIik7ICAgCisgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIldyYXBwZXJUeXBlSW5mbyAke2NsYXNzTmFtZX06OmluZm8gPSB7ICR7Y2xhc3NOYW1l
fTo6R2V0VGVtcGxhdGUsICR7Y2xhc3NOYW1lfTo6ZGVyZWZPYmplY3QsICR7dG9BY3RpdmV9LCAk
e3BhcmVudENsYXNzSW5mb30gfTtcblxuIik7ICAgCiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIm5hbWVzcGFjZSAke2ludGVyZmFjZU5hbWV9SW50ZXJuYWwge1xuXG4iKTsKICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAidGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgVjhfVVNFKFQp
IHsgfVxuXG4iKTsKIApAQCAtMjM3NSwxMCArMjMxNSw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3JHZXR0ZXIoJGRhdGFOb2RlLCAkaW1w
bENsYXNzTmFtZSk7CiAgICAgfQogCi0gICAgaWYgKE5lZWRzVG9WaXNpdERPTVdyYXBwZXIoJGRh
dGFOb2RlKSkgewotICAgICAgICBHZW5lcmF0ZVZpc2l0RE9NV3JhcHBlcigkZGF0YU5vZGUsICRp
bXBsQ2xhc3NOYW1lKTsKLSAgICB9Ci0KICAgICBteSAkaW5kZXhlcjsKICAgICBteSAkbmFtZWRQ
cm9wZXJ0eUdldHRlcjsKICAgICAjIEdlbmVyYXRlIG1ldGhvZHMgZm9yIGZ1bmN0aW9ucy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0Cmlu
ZGV4IDViNmE1MzA1YmJmOTlkOTc0MTUxODYyMzI1MTUyN2E5YzIwOTY1MjIuLmQxMDVlMDg3Mjdk
ZTkxMTc3ZWY1MTkyMGQ3MTc0NGZmNzkwZDljOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApAQCAtMzgsNyArMzgsNiBAQCBDdXN0
b21FbnVtZXJhdGVQcm9wZXJ0eQogQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90CiBDdXN0b21HZXR0
ZXIKIEN1c3RvbUluZGV4ZWRTZXR0ZXIKLUN1c3RvbUlzUmVhY2hhYmxlCiBDdXN0b21OYW1lZEdl
dHRlcgogQ3VzdG9tTmFtZWRTZXR0ZXIKIEN1c3RvbVB1dEZ1bmN0aW9uCkBAIC01MiwxMiArNTEs
MTEgQEAgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXIKIERvTm90Q2hlY2tTZWN1cml0eU9uU2V0
dGVyCiBFdmVudFRhcmdldAogRXh0ZW5kc0RPTUdsb2JhbE9iamVjdAotR2VuZXJhdGVJc1JlYWNo
YWJsZT18SW1wbHxJbXBsQ29udGV4dHxJbXBsRG9jdW1lbnR8SW1wbEVsZW1lbnRSb290fEltcGxG
cmFtZQogSW1tdXRhYmxlCiBJbXBsZW1lbnRlZEFzPSoKIEluZGV4ZWRHZXR0ZXIKLUluaXRpYWxp
emVkQnlFdmVudENvbnN0cnVjdG9yCiBJbnRlcmZhY2VOYW1lPSoKK0luaXRpYWxpemVkQnlFdmVu
dENvbnN0cnVjdG9yCiBJc0luZGV4CiBJc1dvcmtlckNvbnRleHQKIEpTQ3VzdG9tCkBAIC0xMDYs
MTIgKzEwNCwxMCBAQCBVUkwKIFY4Q3VzdG9tCiBWOEN1c3RvbUNvbnN0cnVjdG9yCiBWOEN1c3Rv
bUdldHRlcgotVjhDdXN0b21Jc1JlYWNoYWJsZQogVjhDdXN0b21TZXR0ZXIKIFY4Q3VzdG9tVG9K
U09iamVjdAogVjhEZXBlbmRlbnRMaWZldGltZQogVjhEb05vdENoZWNrU2lnbmF0dXJlCiBWOEVu
YWJsZWRBdFJ1bnRpbWU9KgotVjhHZW5lcmF0ZUlzUmVhY2hhYmxlPXxJbXBsRWxlbWVudFJvb3R8
SW1wbE93bmVyUm9vdHxJbXBsT3duZXJOb2RlUm9vdAogVjhSZWFkT25seQogVjhVbmZvcmdlYWJs
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
RmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOEZsb2F0NjRBcnJheS5jcHAKaW5kZXggNGQwNGI1MTQ5Njc4ZmVjZGUyNmE4OWRiNDM2YWUz
YzcxNGViOGJiZS4uYmRjNjAyOGJlOGFkYjY2ZTY0ZTlmY2NlZjQ4MjI3MmYwNjczNjE4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2
NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhGbG9hdDY0QXJyYXkuY3BwCkBAIC00Miw3ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotV3JhcHBlclR5cGVJbmZvIFY4RmxvYXQ2NEFycmF5OjppbmZvID0geyBWOEZsb2F0NjRB
cnJheTo6R2V0VGVtcGxhdGUsIFY4RmxvYXQ2NEFycmF5OjpkZXJlZk9iamVjdCwgMCwgMCwgJlY4
QXJyYXlCdWZmZXJWaWV3OjppbmZvIH07CitXcmFwcGVyVHlwZUluZm8gVjhGbG9hdDY0QXJyYXk6
OmluZm8gPSB7IFY4RmxvYXQ2NEFycmF5OjpHZXRUZW1wbGF0ZSwgVjhGbG9hdDY0QXJyYXk6OmRl
cmVmT2JqZWN0LCAwLCAmVjhBcnJheUJ1ZmZlclZpZXc6OmluZm8gfTsKIAogbmFtZXNwYWNlIEZs
b2F0NjRBcnJheUludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaAppbmRleCA4MmQyZmMzNWI5ZTJh
NzAyOTllMGNhMmU2N2Y0YThhYmQzMmRjZDU5Li5mMzJkYzQzYWYyZTNmMzg4MWMzNzgyZjRiMTFm
N2E2ZTM2ZTczYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaApAQCAtNDMsNyArNDMsNiBAQCBwdWJsaWM6
CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKEZs
b2F0NjRBcnJheSopOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKLSAgICBz
dGF0aWMgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAg
ICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3Vu
dCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCBiNGU1NWQ2OWE2ODczMTI4NDM1NTE0ODU1NDkzZDA4
NGQ0Y2E4MzEyLi5mZmM5N2U0NjI4Mjg3OTkxYWRjMTg0YmU3NmFiMzAyY2U0OTk2ZDIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0
aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRlc3RBY3RpdmVET01PYmplY3Q6
OmluZm8gPSB7IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6R2V0VGVtcGxhdGUsIFY4VGVzdEFjdGl2
ZURPTU9iamVjdDo6ZGVyZWZPYmplY3QsIDAsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOFRl
c3RBY3RpdmVET01PYmplY3Q6OmluZm8gPSB7IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6R2V0VGVt
cGxhdGUsIFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6ZGVyZWZPYmplY3QsIDAsIDAgfTsKIAogbmFt
ZXNwYWNlIFRlc3RBY3RpdmVET01PYmplY3RJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVE
T01PYmplY3QuaAppbmRleCBkYmQxNGUyZDNhNDIzYzJkMDUxZTEzNTAyN2RhNDU5NjU1ZDExMDhm
Li5mYmQ0MGYzZWEwNzU4YmZhNjMzYzlmZWY4YjMyNTFjNTVlZWE0MWY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEFjdGl2ZURPTU9iamVjdC5oCkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICB9CiAgICAg
aW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEFjdGl2ZURPTU9i
amVjdCopOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKLSAgICBzdGF0aWMg
dm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3Rh
dGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50ZXJu
YWxGaWVsZENvdW50ICsgMDsKICAgICBzdGF0aWMgYm9vbCBuYW1lZFNlY3VyaXR5Q2hlY2sodjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGtleSwgdjg6OkFj
Y2Vzc1R5cGUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0
b21OYW1lZEdldHRlci5jcHAKaW5kZXggMjQ2YjA0ZTA4ODc0MTRjZmRjNzBlODM2MTlkODQ5Yjg2
MzFmOTc2MS4uY2JmZjZkNGU3Yzg5YTlkMDA3YjFiNDZlYTEzZGJhN2U0OTIyNzZmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJbmZvIFY4VGVzdEN1c3RvbU5hbWVkR2V0
dGVyOjppbmZvID0geyBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6R2V0VGVtcGxhdGUsIFY4VGVz
dEN1c3RvbU5hbWVkR2V0dGVyOjpkZXJlZk9iamVjdCwgMCwgMCwgMCB9OworV3JhcHBlclR5cGVJ
bmZvIFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjppbmZvID0geyBWOFRlc3RDdXN0b21OYW1lZEdl
dHRlcjo6R2V0VGVtcGxhdGUsIFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpkZXJlZk9iamVjdCwg
MCwgMCB9OwogCiBuYW1lc3BhY2UgVGVzdEN1c3RvbU5hbWVkR2V0dGVySW50ZXJuYWwgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5oCmluZGV4IDNkNmRlNjE3NzU4Zjg3ZDAwZmIw
MzUzMjg0NjYyMWNkMDZjNDA3ZTYuLjUwMmNiY2Q5OTY2NTcxMjFhMWEwNGIwNGQzNzczNmRmMDVl
NTQxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5oCkBAIC00Miw3ICs0Miw2
IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IHdyYXAoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKik7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZP
YmplY3Qodm9pZCopOwotICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3Rv
cmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBXcmFw
cGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5hbWVk
UHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+LCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1
bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcAppbmRleCAxOGEyYjBlM2RhZGY2OTIxMTk1ZmExNmFiNGVjN2Y4MjM3ZDNkZmFj
Li5hMzkwNmQxMTQ4YTAzNjUwMWM0NjI4ZWQ1OWQzNTliMDQ4ZThjZWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJbmZvIFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OmluZm8g
PSB7IFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlLCBWOFRlc3RFdmVudENvbnN0
cnVjdG9yOjpkZXJlZk9iamVjdCwgMCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4VGVzdEV2
ZW50Q29uc3RydWN0b3I6OmluZm8gPSB7IFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OkdldFRlbXBs
YXRlLCBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpkZXJlZk9iamVjdCwgMCwgMCB9OwogCiBuYW1l
c3BhY2UgVGVzdEV2ZW50Q29uc3RydWN0b3JJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRD
b25zdHJ1Y3Rvci5oCmluZGV4IDBiZWQ3ZmQ2YTVhOWI2NDBmNDIyZjY0NDU3MDJjYmNkMmM0YzAy
OGIuLmEyMmQ1NDFlNTE3MmIwZGU1NTU1ZGQyMTI3YjM3NjRiMGRmZmU0YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtNDMsNyArNDMsNiBAQCBwdWJsaWM6CiAgICAgfQog
ICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RFdmVudENv
bnN0cnVjdG9yKik7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwotICAgIHN0
YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAg
ICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYpOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50
ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50
VGFyZ2V0LmNwcAppbmRleCBiMTZkZGU1ZmZmMzQyZmY4MDAyZWMwN2MyNTZiYWNiODNiMDUwYWJi
Li4xZTZmYmZhNTM1M2RkOWJlN2ZmOTNhZTMyNmYxNDJjNDY0MzkwM2UyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudFRhcmdldC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1XcmFwcGVyVHlwZUluZm8gVjhUZXN0RXZlbnRUYXJnZXQ6OmluZm8gPSB7IFY4VGVzdEV2ZW50
VGFyZ2V0OjpHZXRUZW1wbGF0ZSwgVjhUZXN0RXZlbnRUYXJnZXQ6OmRlcmVmT2JqZWN0LCAwLCAw
LCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0RXZlbnRUYXJnZXQ6OmluZm8gPSB7IFY4VGVz
dEV2ZW50VGFyZ2V0OjpHZXRUZW1wbGF0ZSwgVjhUZXN0RXZlbnRUYXJnZXQ6OmRlcmVmT2JqZWN0
LCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0RXZlbnRUYXJnZXRJbnRlcm5hbCB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVu
dFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV2ZW50VGFyZ2V0LmgKaW5kZXggOTU5YTAwZTJiNDZhMTlmYzBlYzE5OTFjZTY3MmJjOThkNWJi
ZTU0MS4uNTA4NmY2ZWRkNjQ2YjNmZTIxOTY5MTBhNTQ1ZTY0YjI1MGRiYjZkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFy
Z2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV2ZW50VGFyZ2V0LmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgogICAgIH0KICAgICBpbmxp
bmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0RXZlbnRUYXJnZXQqKTsK
ICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7Ci0gICAgc3RhdGljIHZvaWQgdmlz
aXRET01XcmFwcGVyKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gaW5kZXhlZFByb3BlcnR5R2V0dGVyKHVpbnQzMl90LCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJik7CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBuYW1l
ZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAppbmRleCAxZGI4YWU1NzA3MGFiYTE0ODJlZjg2
ZGI4NmM2MGEzNGFmMTBmN2RjLi5hMmM1NTE4NjBiZjA5MDBjZDYxZmE2MTIzMTU2NDc0NTAyODU5
NmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcApAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRlc3RJbnRlcmZhY2U6OmluZm8gPSB7
IFY4VGVzdEludGVyZmFjZTo6R2V0VGVtcGxhdGUsIFY4VGVzdEludGVyZmFjZTo6ZGVyZWZPYmpl
Y3QsIFY4VGVzdEludGVyZmFjZTo6dG9BY3RpdmVET01PYmplY3QsIDAsIDAgfTsKK1dyYXBwZXJU
eXBlSW5mbyBWOFRlc3RJbnRlcmZhY2U6OmluZm8gPSB7IFY4VGVzdEludGVyZmFjZTo6R2V0VGVt
cGxhdGUsIFY4VGVzdEludGVyZmFjZTo6ZGVyZWZPYmplY3QsIFY4VGVzdEludGVyZmFjZTo6dG9B
Y3RpdmVET01PYmplY3QsIDAgfTsKIAogbmFtZXNwYWNlIFRlc3RJbnRlcmZhY2VJbnRlcm5hbCB7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RJbnRlcmZhY2UuaAppbmRleCBiNzk1NTc4M2JlYWMyYzQwZDI5NGFhMzQ5OGZjNWE3
YmZhMmQ0ZTkyLi4yZDdjZDZiZGY5Yzg4Mjc3YjkxODQyNzcxMTA4YmYwZWI3YTAxOTNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEludGVyZmFjZS5oCkBAIC00NCw3ICs0NCw2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5s
aW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEludGVyZmFjZSopOwog
ICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCB2aXNp
dERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIEFjdGl2
ZURPTU9iamVjdCogdG9BY3RpdmVET01PYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CiAg
ICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcAppbmRleCBmYjgyNzJiMjFkNDJlZWM3MmM0MjEyNDFlZTZhZjRmNzA4ODJkMzAwLi45
MzRmNjY4MzljYjg2YjI1NGU2MjdhOTM5ZTEzNmFiNTQxMzU1NDA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJbmZvIFY4VGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OmluZm8gPSB7IFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OkdldFRlbXBs
YXRlLCBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpkZXJlZk9iamVjdCwgMCwgMCwgMCB9
OworV3JhcHBlclR5cGVJbmZvIFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmluZm8gPSB7
IFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OkdldFRlbXBsYXRlLCBWOFRlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyOjpkZXJlZk9iamVjdCwgMCwgMCB9OwogCiBuYW1lc3BhY2UgVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDVlZTM3N2I3NTE1MjZiZDZjZWNiMTM3ZTc5YWRhOGM3
MmIyODA1ZDUuLjEyZGI4ZWM5MzMzZTAxMTBiNjgyMTFjYWU0MmFlMjY1MTc4NWVkN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtNDIsNyArNDIsNiBA
QCBwdWJsaWM6CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwKFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7CiAgICAgc3RhdGljIHZvaWQgZGVy
ZWZPYmplY3Qodm9pZCopOwotICAgIHN0YXRpYyB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRh
U3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBX
cmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRD
b3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCA5ZWJkODZmOTE5ODNmNzc4
YmJkYjFmZGQyYTU1ZWFhNjc5Y2IyMmEyLi41YWJjZTBlN2RlOGM1ODYyYjE4NjM3ZDIwNGM2MjZl
NWVkMTI2OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0zMyw3
ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJbmZvIFY4VGVz
dE5hbWVkQ29uc3RydWN0b3I6OmluZm8gPSB7IFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OkdldFRl
bXBsYXRlLCBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjpkZXJlZk9iamVjdCwgVjhUZXN0TmFtZWRD
b25zdHJ1Y3Rvcjo6dG9BY3RpdmVET01PYmplY3QsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBW
OFRlc3ROYW1lZENvbnN0cnVjdG9yOjppbmZvID0geyBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjpH
ZXRUZW1wbGF0ZSwgVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6ZGVyZWZPYmplY3QsIFY4VGVzdE5h
bWVkQ29uc3RydWN0b3I6OnRvQWN0aXZlRE9NT2JqZWN0LCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0
TmFtZWRDb25zdHJ1Y3RvckludGVybmFsIHsKIApAQCAtNDEsNyArNDEsNyBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gdm9pZCBWOF9VU0UoVCkgeyB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3ROYW1l
ZENvbnN0cnVjdG9ySW50ZXJuYWwKIAotV3JhcHBlclR5cGVJbmZvIFY4VGVzdE5hbWVkQ29uc3Ry
dWN0b3JDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yOjpHZXRUZW1wbGF0ZSwgVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6ZGVyZWZPYmplY3QsIFY4
VGVzdE5hbWVkQ29uc3RydWN0b3I6OnRvQWN0aXZlRE9NT2JqZWN0LCAwLCAwIH07CitXcmFwcGVy
VHlwZUluZm8gVjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjppbmZvID0geyBWOFRl
c3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OkdldFRlbXBsYXRlLCBWOFRlc3ROYW1lZENv
bnN0cnVjdG9yOjpkZXJlZk9iamVjdCwgVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9BY3RpdmVE
T01PYmplY3QsIDAgfTsKIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3ROYW1l
ZENvbnN0cnVjdG9yQ29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggYmY1NTU4MjBiNTc5NWQ4
MTUwYjkxYmVhN2IwMzFkMDhkOWRlNWZlOS4uNDM3Yjg2NjA4MTFjNWIxMjhhNzA1ODRlMjIyM2U1
ZjExNmQ4OWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC00OCw3ICs0
OCw2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IHdyYXAoVGVzdE5hbWVkQ29uc3RydWN0b3IqKTsKICAgICBzdGF0aWMgdm9pZCBkZXJl
Zk9iamVjdCh2b2lkKik7Ci0gICAgc3RhdGljIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFT
dG9yZSosIHZvaWQqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIFdy
YXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyBBY3RpdmVET01PYmplY3QqIHRvQWN0aXZl
RE9NT2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOwogICAgIHN0YXRpYyBjb25zdCBpbnQg
aW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCAr
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwCmluZGV4IDFmY2ZmYmI2ZWIyZDc1ZmM0ZDZhODk3OGViZTQ0NTc0NTgzNzQx
MWEuLjAyMzE3ODg3MDAwYzY2NTU0ZGMwN2FkMGVhM2M3MjYyYmVlODNhM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CkBAIC03MSw3ICs3MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJ
bmZvIFY4VGVzdE9iajo6aW5mbyA9IHsgVjhUZXN0T2JqOjpHZXRUZW1wbGF0ZSwgVjhUZXN0T2Jq
OjpkZXJlZk9iamVjdCwgMCwgMCwgMCB9OworV3JhcHBlclR5cGVJbmZvIFY4VGVzdE9iajo6aW5m
byA9IHsgVjhUZXN0T2JqOjpHZXRUZW1wbGF0ZSwgVjhUZXN0T2JqOjpkZXJlZk9iamVjdCwgMCwg
MCB9OwogCiBuYW1lc3BhY2UgVGVzdE9iakludGVybmFsIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCmluZGV4IDc3NjQwMzdi
MWQ2MGFhYWZmNDVkYmE3OTFkMzNlMzJmYTU5NzU0MWMuLjM0MmFlNzMwYzM2OGViYTU0MzBhNGMw
ZGZhYjIwYTZjMDlhMjIwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgogICAg
IH0KICAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0T2Jq
Kik7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwotICAgIHN0YXRpYyB2b2lk
IHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD4pOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGN1c3RvbU1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmKTsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGN1c3RvbU1ldGhvZFdp
dGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCBkOWJkN2Vk
YzJkOGUyZWI3MGVkNzYxYjVhZDFkYTRlNDIyMmE4OTMxLi5mMzI5YWIwZjMzNTQ1ZjIyNGI0OGI2
MmQ2NDA4NWNkOTUyNDYwNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVdyYXBwZXJUeXBlSW5mbyBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2U6OmluZm8gPSB7IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZTo6R2V0VGVtcGxhdGUsIFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6ZGVy
ZWZPYmplY3QsIDAsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2U6OmluZm8gPSB7IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZTo6R2V0VGVtcGxhdGUsIFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZTo6ZGVyZWZPYmplY3QsIDAsIDAgfTsKIAogbmFtZXNwYWNlIFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VJbnRlcm5hbCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCA4ZTU1NzFiMzRiMGViOWEyOTI1OGI5
NGE0MjU5OWNhMzMyNjdmNmFiLi5jYzdlNzU4NWNmMmIwYjYwMDk1MGM1ZTE1N2RmMWJlMjRiZGI5
NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5oCkBAIC00NCw3ICs0NCw2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgaW5saW5lIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSopOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKLSAgICBz
dGF0aWMgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+KTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAg
ICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3Vu
dCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcAppbmRleCAwNzk2NjE3MDMzZmIyNmIxZDllY2Fm
MGE2MjUwNjg3ODk4YzBkYWZlLi5kZmI5OGNlMzk3ZjQxNmM1MDcxMjhmNTI4OTNmNTBlNDcyMTU5
MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcApAQCAtNTMs
NyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdyYXBwZXJUeXBlSW5mbyogbnBPYmpl
Y3RUeXBlSW5mbygpCiB7Ci0gICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyB0eXBlSW5mbyA9IHsg
MCwgMCwgMCwgMCwgMCB9OworICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gdHlwZUluZm8gPSB7
IDAsIDAsIDAsIDAgfTsKICAgICByZXR1cm4gJnR5cGVJbmZvOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXggNmU2MmE1YTM2MzI2ZTIw
YzY1NWUwMzExN2VjNWYxMzEwNWIzMTQ2MS4uNTQwMzEyNDMyZTJkZDg3ZDM4MThiY2M3OThmZWQz
MzliMDg1NGQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcApAQCAtMzM2LDkgKzMzNiw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdmlzaXRET01X
cmFwcGVyKERPTURhdGFTdG9yZSogc3RvcmUsIHZvaWQqIG9iamVjdCwgdjg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD4gd3JhcHBlcikKICAgICB7Ci0gICAgICAgIFdyYXBwZXJUeXBlSW5mbyogaW5m
byA9IFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUod3JhcHBlcik7Ci0gICAgICAgIGlmIChp
bmZvLT5kb21XcmFwcGVyVmlzaXRvckZ1bmN0aW9uKQotICAgICAgICAgICAgaW5mby0+ZG9tV3Jh
cHBlclZpc2l0b3JGdW5jdGlvbihzdG9yZSwgb2JqZWN0LCB3cmFwcGVyKTsKICAgICB9CiAKICAg
ICB2b2lkIGFwcGx5R3JvdXBpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV3JhcHBlclR5cGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFw
cGVyVHlwZUluZm8uaAppbmRleCA2NmI3YWE0OTNmYjJjNGU5NDY0ODU1NGEzYjUyNzM1ZGM4MzMx
YTMyLi5jMjY4NGQ2NmJlNjY3ZmIyMDkzN2Q0NWQ5M2FiY2Y3Mjc2YTE1Y2NjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaApAQCAtMzYsNyArMzYsNiBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogICAgIGNsYXNzIEFjdGl2ZURPTU9iamVjdDsK
LSAgICBjbGFzcyBET01EYXRhU3RvcmU7CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IGludCB2OERP
TVdyYXBwZXJUeXBlSW5kZXggPSAwOwogICAgIHN0YXRpYyBjb25zdCBpbnQgdjhET01XcmFwcGVy
T2JqZWN0SW5kZXggPSAxOwpAQCAtNDcsNyArNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgdHlwZWRlZiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gKCpHZXRUZW1w
bGF0ZUZ1bmN0aW9uKSgpOwogICAgIHR5cGVkZWYgdm9pZCAoKkRlcmVmT2JqZWN0RnVuY3Rpb24p
KHZvaWQqKTsKICAgICB0eXBlZGVmIEFjdGl2ZURPTU9iamVjdCogKCpUb0FjdGl2ZURPTU9iamVj
dEZ1bmN0aW9uKSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKLSAgICB0eXBlZGVmIHZvaWQgKCpE
T01XcmFwcGVyVmlzaXRvckZ1bmN0aW9uKShET01EYXRhU3RvcmUqLCB2b2lkKiwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4pOwogICAgIAogICAgIC8vIFRoaXMgc3RydWN0IHByb3ZpZGVzIGEg
d2F5IHRvIHN0b3JlIGEgYnVuY2ggb2YgaW5mb3JtYXRpb24gdGhhdCBpcyBoZWxwZnVsIHdoZW4g
dW53cmFwcGluZwogICAgIC8vIHY4IG9iamVjdHMuIEVhY2ggdjggYmluZGluZ3MgY2xhc3MgaGFz
IGV4YWN0bHkgb25lIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gbWVtYmVyLCBzbwpAQCAtOTMsNyAr
OTEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEdldFRlbXBsYXRlRnVu
Y3Rpb24gZ2V0VGVtcGxhdGVGdW5jdGlvbjsKICAgICAgICAgY29uc3QgRGVyZWZPYmplY3RGdW5j
dGlvbiBkZXJlZk9iamVjdEZ1bmN0aW9uOwogICAgICAgICBjb25zdCBUb0FjdGl2ZURPTU9iamVj
dEZ1bmN0aW9uIHRvQWN0aXZlRE9NT2JqZWN0RnVuY3Rpb247Ci0gICAgICAgIGNvbnN0IERPTVdy
YXBwZXJWaXNpdG9yRnVuY3Rpb24gZG9tV3JhcHBlclZpc2l0b3JGdW5jdGlvbjsKICAgICAgICAg
Y29uc3QgV3JhcHBlclR5cGVJbmZvKiBwYXJlbnRDbGFzczsKICAgICB9OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZVNoZWV0
Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjI5ODhiN2VhZWEzYjRiYjE0ODA5YmVmZDg1NDcxZWUw
OTdjMmUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4Q1NTU3R5bGVTaGVldEN1c3RvbS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJWOENTU1N0eWxlU2hlZXQuaCIKKworI2luY2x1ZGUgIlY4RE9N
V3JhcHBlci5oIgorI2luY2x1ZGUgIlY4Tm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KENTU1N0eWxlU2hlZXQqIGltcGwpCit7CisgICAg
aWYgKCFpbXBsKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBwZXIgPSBWOENTU1N0eWxlU2hlZXQ6OndyYXAoaW1wbCk7CisgICAgLy8g
QWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHN0eWxlc2hlZXQgb2JqZWN0IHRvIGl0cyBvd25l
ciBub2RlLgorICAgIE5vZGUqIG93bmVyTm9kZSA9IGltcGwtPm93bmVyTm9kZSgpOworICAgIGlm
IChvd25lck5vZGUgJiYgIXdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAgICBWOERPTVdyYXBwZXI6
OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KG93bmVy
Tm9kZSkpOworICAgIHJldHVybiB3cmFwcGVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJp
bmdNYXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
U3RyaW5nTWFwQ3VzdG9tLmNwcAppbmRleCBhZTlhNjFkODUxMzYxMjdhYzFkMzYxOThhOTFmYzFk
NTIyMjBjYWZkLi5kZGYyMmE3NDZhMjFjZmMzNzg2ZTgwY2E0NDQ5NzQ0OGFjMjc3YzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0
cmluZ01hcEN1c3RvbS5jcHAKQEAgLTg0LDQgKzg0LDE5IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOERPTVN0cmluZ01hcDo6bmFtZWRQcm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4KICAgICByZXR1cm4gdmFsdWU7CiB9CiAKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERP
TVN0cmluZ01hcCogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NU3RyaW5n
TWFwOjp3cmFwKGltcGwpOworICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUg
ZWxlbWVudCB0byB0aGUgRE9NU3RyaW5nTWFwLgorICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBs
LT5lbGVtZW50KCk7CisgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KSB7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbGVtZW50VmFsdWUgPSB0b1Y4KGVsZW1lbnQp
OworICAgICAgICBpZiAoIWVsZW1lbnRWYWx1ZS5Jc0VtcHR5KCkgJiYgZWxlbWVudFZhbHVlLT5J
c09iamVjdCgpKQorICAgICAgICAgICAgZWxlbWVudFZhbHVlLkFzPHY4OjpPYmplY3Q+KCktPlNl
dEhpZGRlblZhbHVlKFY4SGlkZGVuUHJvcGVydHlOYW1lOjpkb21TdHJpbmdNYXAoKSwgd3JhcHBl
cik7CisgICAgfQorICAgIHJldHVybiB3cmFwcGVyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01U
b2tlbkxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjNkYTQ4MTBlM2YxNjM3ZWFiMmFi
NTg5NTBmMDJiNWRhYWNlYmE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDU2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4RE9NVG9rZW5MaXN0LmgiCisKKyNpbmNs
dWRlICJET01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJW
OERPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJWOEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChET01Ub2tlbkxpc3QqIGltcGwpCit7
CisgICAgaWYgKCFpbXBsKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOERPTVRva2VuTGlzdDo6d3JhcChpbXBsKTsKKyAg
ICAvLyBBZGQgYSBoaWRkZW4gcmVmZXJlbmNlIGZyb20gdGhlIGVsZW1lbnQgdG8gdGhlIERPTVRv
a2VuTGlzdC4KKyAgICBFbGVtZW50KiBlbGVtZW50ID0gaW1wbC0+ZWxlbWVudCgpOworICAgIGlm
ICghd3JhcHBlci5Jc0VtcHR5KCkgJiYgZWxlbWVudCkgeworICAgICAgICB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gZWxlbWVudFZhbHVlID0gdG9WOChlbGVtZW50KTsKKyAgICAgICAgaWYgKCFlbGVt
ZW50VmFsdWUuSXNFbXB0eSgpICYmIGVsZW1lbnRWYWx1ZS0+SXNPYmplY3QoKSkKKyAgICAgICAg
ICAgIGVsZW1lbnRWYWx1ZS5Bczx2ODo6T2JqZWN0PigpLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRl
blByb3BlcnR5TmFtZTo6ZG9tVG9rZW5MaXN0KCksIHdyYXBwZXIpOworICAgIH0KKyAgICByZXR1
cm4gd3JhcHBlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVs
ZW1lbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggN2ZkMTI4YmY2NmIyMDE5NTFmNGYwMWZmZjhlODU0
M2NlZTJkYzlkOS4uNjdiOWQxYTUyNDNjYjJlMTk3NjI0OTU5NTM0Yjg0ZTVlNThhODMzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxl
bWVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCkBAIC00NCw3ICs0NCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV3JhcHBlclR5cGVJbmZvIFY4SFRNTEltYWdlRWxlbWVu
dENvbnN0cnVjdG9yOjppbmZvID0geyBWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcjo6R2V0
VGVtcGxhdGUsIDAsIDAsIDAsIDAgfTsKK1dyYXBwZXJUeXBlSW5mbyBWOEhUTUxJbWFnZUVsZW1l
bnRDb25zdHJ1Y3Rvcjo6aW5mbyA9IHsgVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3I6Okdl
dFRlbXBsYXRlLCAwLCAwLCAwIH07CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhI
VE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKaW5kZXggYjk3ZWRhYzhmOTgyNTU2ODhjNWQ4YTQ4
OGU0ODY0NTg3MDMzNDVmZi4uZjMwMzEyOGUwODc0MDdjYzA4YWNkODUyNzFjMjk1OWRjZTk5ZWY3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWRO
b2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCkBAIC03MSw0ICs3MSwxNiBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhOYW1lZE5vZGVNYXA6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+CiAgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7CiB9CiAKK3Y4OjpI
YW5kbGU8djg6OlZhbHVlPiB0b1Y4KE5hbWVkTm9kZU1hcCogaW1wbCkKK3sKKyAgICBpZiAoIWlt
cGwpCisgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IFY4TmFtZWROb2RlTWFwOjp3cmFwKGltcGwpOworICAgIC8vIEFkZCBhIGhp
ZGRlbiByZWZlcmVuY2UgZnJvbSBuYW1lZCBub2RlIG1hcCB0byBpdHMgb3duZXIgbm9kZS4KKyAg
ICBFbGVtZW50KiBlbGVtZW50ID0gaW1wbC0+ZWxlbWVudCgpOworICAgIGlmICghd3JhcHBlci5J
c0VtcHR5KCkgJiYgZWxlbWVudCkKKyAgICAgICAgd3JhcHBlci0+U2V0SGlkZGVuVmFsdWUoVjhI
aWRkZW5Qcm9wZXJ0eU5hbWU6Om93bmVyTm9kZSgpLCB0b1Y4KGVsZW1lbnQpKTsKKyAgICByZXR1
cm4gd3JhcHBlcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcApp
bmRleCA3YjgzNTk2ZTQwY2YwOWI4NWZkODk3N2VjMmVhMGJhNzkzMjQ4YTM1Li4wZmU2YWY4NTBh
ZDMzOTM4MzUwZGI2ZmFiZmJkMDNhYTFkNzdmOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcApAQCAtNDMs
NyArNDMsMTIgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoU3R5bGVTaGVldCogaW1wbCkK
ICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CiAgICAgaWYgKGltcGwtPmlzQ1NTU3R5bGVTaGVl
dCgpKQogICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oaW1w
bCkpOwotICAgIHJldHVybiBWOFN0eWxlU2hlZXQ6OndyYXAoaW1wbCk7CisgICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhTdHlsZVNoZWV0Ojp3cmFwKGltcGwpOworICAgIC8v
IEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSBzdHlsZXNoZWV0IG9iamVjdCB0byBpdHMgb3du
ZXIgbm9kZS4KKyAgICBOb2RlKiBvd25lck5vZGUgPSBpbXBsLT5vd25lck5vZGUoKTsKKyAgICBp
ZiAob3duZXJOb2RlICYmICF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgVjhET01XcmFwcGVy
OjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh3cmFwcGVyLCAib3duZXJOb2RlIiwgdG9WOChvd25l
ck5vZGUpKTsKKyAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaWRsIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaWRsCmluZGV4IDc4MmRiNTg2Y2U0OTFiOGIz
NDRiMjViMWQxNmQ1MTA5MTRkYjc4MjcuLjk2MmM5ZGJkY2NmOTI0NDM1YjJlZjZjZDE1MmJmN2Jl
YzNhZGEwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5pZGwKQEAgLTIyLDcgKzIy
LDcgQEAgbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgog
ICAgIGludGVyZmFjZSBbCi0gICAgICAgIFY4R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsT3duZXJO
b2RlUm9vdAorICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKICAgICBdIENTU1N0eWxlU2hlZXQg
OiBTdHlsZVNoZWV0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGUgICAgICAg
ICAgb3duZXJSdWxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZUxpc3QgICAg
ICBjc3NSdWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0LmlkbAppbmRleCBiODU2OGJmYjIwNTIy
M2Q3YTRiOTkxY2JjOWE2ZTFlOGI0ODg2NDllLi45ZTIwZDg0YWNjM2IwZTQyMWM3MWIxZTM2OWUy
MGEyMTMzM2I3NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuaWRsCkBAIC0yNiw3ICsyNiw3
IEBAIG1vZHVsZSBzdHlsZXNoZWV0cyB7CiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZSwK
ICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgT2JqQ1BvbHltb3JwaGljLAotICAg
ICAgICBWOEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbE93bmVyTm9kZVJvb3QKKyAgICAgICAgVjhE
ZXBlbmRlbnRMaWZldGltZQogICAgIF0gU3R5bGVTaGVldCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAg
IHR5cGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGRpc2Fi
bGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTWFwLmlkbAppbmRleCAwNDVkNTIyMzIyOWYyYzI5
YmE3ZjYxNjY2YjQ2YzU5ZWJhODJhY2VlLi45ODBkMDQ0Y2QwMmFiMWFmNWY3YTk2ZTdhNmUyYzU5
NjMzZThjM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTWFwLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTWFwLmlkbApAQCAtMjYsMTEgKzI2
LDEyIEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwKKyAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hh
YmxlPUltcGxFbGVtZW50Um9vdCwKICAgICAgICAgTmFtZWRHZXR0ZXIsCiAgICAgICAgIEN1c3Rv
bURlbGV0ZVByb3BlcnR5LAogICAgICAgICBDdXN0b21FbnVtZXJhdGVQcm9wZXJ0eSwKLSAgICAg
ICAgQ3VzdG9tTmFtZWRTZXR0ZXIKKyAgICAgICAgQ3VzdG9tTmFtZWRTZXR0ZXIsCisgICAgICAg
IFY4Q3VzdG9tVG9KU09iamVjdAogICAgIF0gRE9NU3RyaW5nTWFwIHsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCmluZGV4IDdlZTZiNzU2NzdhYTMyOGRlMWIxMzRjZjQw
YzU1ZDIzNWNhYmRjZGUuLjg4ODIwYzAxNzJmNTYzYzY0NDY2NTUzMjFjYzQ1YThkZWViNjRhYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCkBAIC0yMSwxMCArMjEsMTEgQEAKIG1v
ZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIEdlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbEVsZW1lbnRSb290LAotICAgICAgICBJbmRleGVkR2V0dGVyLAorICAgICAgICBKU0dl
bmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAogICAgICAgICBKU0N1c3RvbU1hcmtG
dW5jdGlvbiwKLSAgICAgICAgTmFtZWRHZXR0ZXIKKyAgICAgICAgSW5kZXhlZEdldHRlciwKKyAg
ICAgICAgTmFtZWRHZXR0ZXIsCisgICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAogICAgIF0gTmFt
ZWROb2RlTWFwIHsKIAogICAgICAgICBOb2RlIGdldE5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5pZGwKaW5kZXggY2Y1N2UxYWVlZjk2ZTI5Njc1MDBlZTE3ZTUwZjQyZmQwODljNjcyYi4u
NTViNjM2ZjdkN2E1YWIxYTYwMzM1NmFhMjJkN2Y2NGU5ODlhY2RlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmlkbApAQCAtMjUsOCArMjUsOSBAQAogbW9kdWxlIGNvcmUgewogCiAg
ICAgaW50ZXJmYWNlIFsKLSAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJv
b3QsCi0gICAgICAgIEluZGV4ZWRHZXR0ZXIKKyAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxl
PUltcGxFbGVtZW50Um9vdCwKKyAgICAgICAgSW5kZXhlZEdldHRlciwKKyAgICAgICAgVjhDdXN0
b21Ub0pTT2JqZWN0CiAgICAgXSBET01Ub2tlbkxpc3QgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0
cmluZ0FzPU51bGxdIERPTVN0cmluZyBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5jcHAKaW5kZXggNmQ3MmFhMGFl
YTc5MzlkODYyMjU5M2EzNjQ5MzRlYmMxZDYyMjgzNS4uNzA4MWQ5N2JhZmM1MWYxNjA3M2ZiMmM0
MDIwZTMwM2Y3ZDVhNGUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0xpc3QuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiVGV4dFRyYWNrTGlzdC5oIgog
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2suaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0xpc3QuaWRsCmluZGV4IGFkNGU4NjIxYzY4NDg4NjYzN2M4ODkyMjIy
ZjllOGM2NDE1Yjc4M2EuLmFlZGRhMmUwNzRkYmM4NzFlNDFjZmNlNjAwZjk5NjFiNGVmZjMzYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbApAQCAtMzEs
OCArMzEsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAg
IEV2ZW50VGFyZ2V0LAogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKLSAgICAgICAgSlND
dXN0b21Jc1JlYWNoYWJsZSwKLSAgICAgICAgVjhHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxPd25l
clJvb3QKKyAgICAgICAgSlNDdXN0b21Jc1JlYWNoYWJsZQogICAgIF0gVGV4dFRyYWNrTGlzdCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAg
ICAgVGV4dFRyYWNrIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDViM2Qx
ZDczMWZmMWU1N2ZjZDJlZWE0MTNkYWZiYjM1YjM5NzY3Zi4uYjZhM2ZiZTQxODhhZGViYjgyYTA4
OTQ4Y2Q1M2M0NzlmMzJhM2IxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAzLTE0ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTEwNjQxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMTA2NDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgxMTcwCisKKyAgICAgICAgQ2F1c2VzIGFuIEFTQU4gZmFpbHVyZSAoUmVx
dWVzdGVkIGJ5IGFiYXJ0aCBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMi0wMy0xNCAgSmFtZXMgUm9iaW5zb24g
IDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZC4g
VXBkYXRlIGEgZmV3IGNvbXBvc2l0aW5nIGJhc2VsaW5lcyBmb3IgdGVzdHMgdGhhdCB3ZXJlIG1h
cmtlZCBmbGFreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAppbmRleCA2MWNkMjcwMGUxOTY5OTJjMjM1NmNkMGQwYmE0MmY2YjNh
ZTYyNTUyLi4zMWU2ZTg5MmM2MzdlOTU3YjU3MGEzODk4ZjRiMWM5MTIxMDQyZDk3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CkBAIC02MTQsNiArNjE0LDcgQEAgQlVHV0s2NjM3NyA6IGZhc3QvZG9tL1N0eWxlU2hlZXQvZ2Mt
aW5saW5lLXN0eWxlLWNzc3ZhbHVlcy5odG1sID0gVEVYVAogQlVHV0s2NjM3NyA6IGZhc3QvZG9t
L1N0eWxlU2hlZXQvZ2MtcGFyZW50LXJ1bGUuaHRtbCA9IFRFWFQKIEJVR1dLNjYzNzcgOiBmYXN0
L2RvbS9TdHlsZVNoZWV0L2djLXBhcmVudC1zdHlsZXNoZWV0Lmh0bWwgPSBURVhUCiBCVUdXSzY2
Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1ydWxlLWNoaWxkcmVuLXdyYXBwZXJzLmh0bWwg
PSBURVhUCitCVUdXSzY2Mzc3IDogZmFzdC9kb20vU3R5bGVTaGVldC9nYy1zdHlsZWhlZXQtd3Jh
cHBlci54aHRtbCA9IFRFWFQKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIFBFTkRJTkcgVEVTVFMgKGZvcmtl
ZCB0byBwZW5kaW5nLywgbmVlZCB0byBiZSBzZW50IHVwc3RyZWFtKQpAQCAtMzQyMSw2ICszNDIy
LDcgQEAgQlVHX1NFTk9SQkxBTkNPIDogcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFz
dC9jYW52YXMvY2FudmFzLXRyYW5zZm9ybXMtZmkKIAogQlVHV0s2Njk1MyA6IHRyYW5zaXRpb25z
L2RlZmF1bHQtdGltaW5nLWZ1bmN0aW9uLmh0bWwgPSBQQVNTIEZBSUwKIAorQlVHV0s3Mzg2NSA6
IG1lZGlhL3RyYWNrL3RyYWNrbGlzdC1pcy1yZWFjaGFibGUuaHRtbCA9IFRFWFQgQ1JBU0gKIEJV
R1dLNzM4NjUgOiBtZWRpYS90cmFjay90ZXh0LXRyYWNrLWN1ZS1pcy1yZWFjaGFibGUuaHRtbCA9
IFRFWFQgQ1JBU0gKIEJVR1dLNzM4NjUgOiBtZWRpYS90cmFjay90ZXh0LXRyYWNrLWlzLXJlYWNo
YWJsZS5odG1sID0gVEVYVCBDUkFTSAogCg==
</data>
<flag name="commit-queue"
          id="135445"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>