<?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>144205</bug_id>
          
          <creation_ts>2015-04-25 19:35:54 -0700</creation_ts>
          <short_desc>[JSC] Implement Math.clz32(), remove Number.clz()</short_desc>
          <delta_ts>2015-04-26 22:04:16 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ggaren</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1088661</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-25 19:35:54 -0700</bug_when>
    <thetext>[JSC] Implement Math.clz32(), remove Number.clz()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088662</commentid>
    <comment_count>1</comment_count>
      <attachid>251664</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-25 19:47:49 -0700</bug_when>
    <thetext>Created attachment 251664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088763</commentid>
    <comment_count>2</comment_count>
      <attachid>251664</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-04-26 08:15:41 -0700</bug_when>
    <thetext>Comment on attachment 251664
Patch

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

r=me with one question.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:194
&gt; +        xor32(TrustedImm32(0x1f), dst);

Why is the xor needed?  Since you protect for the zero case and bsr is spec&apos;ed to return an unsigned value from 0..31, you shouldn&apos;t need this xor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088787</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-26 11:15:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:194
&gt; &gt; +        xor32(TrustedImm32(0x1f), dst);
&gt; 
&gt; Why is the xor needed?  Since you protect for the zero case and bsr is
&gt; spec&apos;ed to return an unsigned value from 0..31, you shouldn&apos;t need this xor.

BSR returns the position of the most significant bit, the opposite of what we need.
The xor32 is there to inverse the result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088817</commentid>
    <comment_count>4</comment_count>
      <attachid>251664</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-26 12:56:28 -0700</bug_when>
    <thetext>Comment on attachment 251664
Patch

Clearing flags on attachment: 251664

Committed r183358: &lt;http://trac.webkit.org/changeset/183358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088818</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-26 12:56:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088936</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-04-26 22:04:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:194
&gt; &gt; &gt; +        xor32(TrustedImm32(0x1f), dst);
&gt; &gt; 
&gt; &gt; Why is the xor needed?  Since you protect for the zero case and bsr is
&gt; &gt; spec&apos;ed to return an unsigned value from 0..31, you shouldn&apos;t need this xor.
&gt; 
&gt; BSR returns the position of the most significant bit, the opposite of what
&gt; we need.
&gt; The xor32 is there to inverse the result.

Got it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251664</attachid>
            <date>2015-04-25 19:47:49 -0700</date>
            <delta_ts>2015-04-26 12:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144205-20150425194642.patch</filename>
            <type>text/plain</type>
            <size>50146</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NzdlNWE4NDE0YzM5NGU1NTFhMjhkOWRjNTIwMzAzNGU3MDRmNDA2Li40NGU3NDRjMjQ4ZGIwMTNj
MzVjZGRjMzQ2OTA5ODgyZGYzYjhhMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NyBAQAorMjAxNS0wNC0yNSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gSW1wbGVtZW50IE1hdGguY2x6MzIoKSwgcmVtb3ZlIE51
bWJlci5jbHooKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ0MjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBFUzYgZnVuY3Rpb24gTWF0aC5jbHozMigpLCBhbmQgcmVt
b3ZlIHRoZSBub24tc3RhbmRhcmQKKyAgICAgICAgTnVtYmVyLmNseigpLiBOdW1iZXIuY2x6KCkg
cHJvYmFibHkgY2FtZSBmcm9tIGFuIG9sZGVyIGRyYWZ0LgorCisgICAgICAgIFRoZSBuZXcgZnVu
Y3Rpb24gaGFzIGEgY29ycmVzcG9uZGluZyBpbnN0cmluc2ljOiBDbHozMkludHJpbnNpYywKKyAg
ICAgICAgYW5kIGEgY29ycmVzcG9uZGluZyBERkcgbm9kZTogQXJpdGhDbHozMiwgb3B0aW1pemVk
IGFsbCB0aGUgd2F5IHRvIExMVk0uCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmNv
dW50TGVhZGluZ1plcm9zMzIpOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpic3JfcnIpOgorICAgICAgICBUaGUgeDg2IGFz
c2VtYmxlciBkaWQgbm90IGhhdmUgY291bnRMZWFkaW5nWmVyb3MzMigpIGJlY2F1c2UgdGhlcmUg
aXMKKyAgICAgICAgbm8gbmF0aXZlIENMWiBpbnN0cnVjdGlvbiBvbiB0aGF0IGFyY2hpdGVjdHVy
ZS4KKworICAgICAgICBJIGhhdmUgYWRkZWQgdGhlIHZlcnNpb24gd2l0aCBic3IgKyBicmFuY2hl
cyBmb3IgdGhlIGNhc2Ugb2YgemVyby4KKyAgICAgICAgQW4gb3RoZXIgcG9wdWxhciB2ZXJzaW9u
IHVzZXMgY21vdiB0byBoYW5kbGUgdGhlIGNhc2Ugb2YgemVyby4gSSBrZXB0CisgICAgICAgIGl0
IHNpbXBsZSBzaW5jZSB0aGUgQXNzZW1ibGVyIGhhcyBubyBzdXBwb3J0IGZvciBjbW92LgorCisg
ICAgICAgIEl0IGlzIHVubGlrZWx5IHRvIG1hdHRlciBtdWNoLiBJZiB0aGUgY29kZSBpcyBob3Qg
ZW5vdWdoLCBMTFZNIHBpY2tzCisgICAgICAgIHNvbWV0aGluZyBnb29kIGJhc2VkIG9uIHRoZSBz
dXJyb3VuZGluZyBjb2RlLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgQ29uc3RhbnQgaGFuZGxpbmcg
KyBlZmZlY3QgcHJvcGFnYXRpb24uIFRoZSBub2RlIG9ubHkgcHJvZHVjZXMgaW50ZWdlciAoYmV0
d2VlbiAwIGFuZCAzMikuCisKKyAgICAgICAgKiBkZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25Q
aGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZTo6
cHJvcGFnYXRlKToKKyAgICAgICAgVGhhbmtzIHRvIHRoZSBkZWZpbml0aW9uIG9mIHRvVWludDMy
KCksIHdlIGNhbiBpZ25vcmUgcGxlbnR5IG9mIGRldGFpbHMKKyAgICAgICAgZnJvbSBkb3VibGVz
LgorCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljKToKKyAgICAgICAgKiBkZmcvREZH
Q2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAq
IGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAg
ICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6
OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZH
U2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aENsejMyKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1Jl
cG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6
OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aENsejMyKToKKyAgICAgICAgKiBmdGwv
RlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpjdGx6MzIpOgorICAgICAg
ICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpjbHozMlRodW5rR2Vu
ZXJhdG9yKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgICogcnVu
dGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBydW50aW1lL01hdGhDb21tb24uaDoKKyAgICAg
ICAgKEpTQzo6Y2x6MzIpOgorICAgICAgICBGdW4gZmFjdDogSW5zdENvbWJpbmUgZG9lcyBub3Qg
cmVjb2duaXplIHRoaXMgcGF0dGVybiB0byBlbGltaW5hdGUKKyAgICAgICAgdGhlIGJyYW5jaCB3
aGljaCBtYWtlcyBvdXIgRlRMIHZlcnNpb24gYmV0dGVyIHRoYW4gdGhlIEMgdmVyc2lvbi4KKwor
ICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Ok1hdGhPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0NsejMyKToK
KyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmNs
eik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY0Nseik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OnRodW5rR2VuZXJhdG9y
Rm9ySW50cmluc2ljKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvbWF0aC1jbHozMi1iYXNpY3Mu
anM6IEFkZGVkLgorICAgICAgICAobWF0aENsejMyT25JbnRlZ2VyKToKKyAgICAgICAgKHRlc3RN
YXRoQ2x6MzJPbkludGVnZXJzKToKKyAgICAgICAgKHZlcmlmeU1hdGhDbHozMk9uSW50ZWdlcldp
dGhPdGhlclR5cGVzKToKKyAgICAgICAgKG1hdGhDbHozMk9uRG91YmxlKToKKyAgICAgICAgKHRl
c3RNYXRoQ2x6MzJPbkRvdWJsZXMpOgorICAgICAgICAodmVyaWZ5TWF0aENsejMyT25Eb3VibGVz
V2l0aE90aGVyVHlwZXMpOgorICAgICAgICAobWF0aENsejMyTm9Bcmd1bWVudHMpOgorICAgICAg
ICAobWF0aENsejMyVG9vTWFueUFyZ3VtZW50cyk6CisgICAgICAgICh0ZXN0TWF0aENsejMyT25D
b25zdGFudHMpOgorICAgICAgICAobWF0aENsejMyU3RydWN0VHJhbnNpdGlvbik6CisgICAgICAg
IChNYXRoLmNsejMyKToKKwogMjAxNS0wNC0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNwZWN1bGF0aXZlIGZpeCBmb3Ig
bm9uLW1haW4gdGhyZWFkIGF1dG8tYXR0YWNoIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKaW5k
ZXggZmYzNzJiYzRiOWEzNzkyNWIzZjcxZjhkMzNiMGMwYzg5YzI1MjNlZi4uNGE4YmU1YWYzNDgx
MjhlZjNjNDMwNmY0ZmRjYzI4MDAzYzQ3YmJjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaApAQCAtMTgz
LDYgKzE4MywxOCBAQCBwdWJsaWM6CiAgICAgICAgIGFuZDMyKGltbSwgZGVzdCk7CiAgICAgfQog
CisgICAgdm9pZCBjb3VudExlYWRpbmdaZXJvczMyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklE
IGRzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmJzcl9ycihzcmMsIGRzdCk7CisgICAg
ICAgIEp1bXAgc3JjSXNOb25aZXJvID0gbV9hc3NlbWJsZXIuakNDKHg4NkNvbmRpdGlvbihOb25a
ZXJvKSk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDMyKSwgZHN0KTsKKworICAgICAgICBK
dW1wIHNraXBOb25aZXJvQ2FzZSA9IGp1bXAoKTsKKyAgICAgICAgc3JjSXNOb25aZXJvLmxpbmso
dGhpcyk7CisgICAgICAgIHhvcjMyKFRydXN0ZWRJbW0zMigweDFmKSwgZHN0KTsKKyAgICAgICAg
c2tpcE5vblplcm9DYXNlLmxpbmsodGhpcyk7CisgICAgfQorCiAgICAgdm9pZCBsc2hpZnQzMihS
ZWdpc3RlcklEIHNoaWZ0X2Ftb3VudCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAg
QVNTRVJUKHNoaWZ0X2Ftb3VudCAhPSBkZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCmluZGV4IGU5YmE0YzUzM2Y5NWZiMjE3N2QwYWUzYzBl
YzBmOWM1OGE4OGI1ZmMuLmI4OGUzYzNmYjc4YWVkZjY1OTVhODAzMTMwMWRkZmNmZTg2ODFiNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaApA
QCAtMjYzLDYgKzI2Myw3IEBAIHByaXZhdGU6CiAgICAgICAgIE9QMl8zQllURV9FU0NBUEUgICAg
PSAweEFFLAogICAgICAgICBPUDJfSU1VTF9HdkV2ICAgICAgID0gMHhBRiwKICAgICAgICAgT1Ay
X01PVlpYX0d2RWIgICAgICA9IDB4QjYsCisgICAgICAgIE9QMl9CU1IgICAgICAgICAgICAgPSAw
eEJELAogICAgICAgICBPUDJfTU9WU1hfR3ZFYiAgICAgID0gMHhCRSwKICAgICAgICAgT1AyX01P
VlpYX0d2RXcgICAgICA9IDB4QjcsCiAgICAgICAgIE9QMl9NT1ZTWF9HdkV3ICAgICAgPSAweEJG
LApAQCAtODIwLDYgKzgyMSwxMSBAQCBwdWJsaWM6CiAKICNlbmRpZgogCisgICAgdm9pZCBic3Jf
cnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3Jt
YXR0ZXIudHdvQnl0ZU9wKE9QMl9CU1IsIGRzdCwgc3JjKTsKKyAgICB9CisKICAgICB2b2lkIHNh
cmxfaThyKGludCBpbW0sIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgaWYgKGltbSA9
PSAxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDU5NmZiNTUwZjZiYTc4OTA0YTEwNzNiOWY4ZGFh
ODkwOTZlYWUxZDEuLjgzMTZhZjFlMzU2NTY1MmE4ODIxNDQwNjNhMGVmNmE1MzU0Y2JkYWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTQyNSw3ICs0MjUsMTggQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgICAgIAorCisgICAg
Y2FzZSBBcml0aENsejMyOiB7CisgICAgICAgIEpTVmFsdWUgb3BlcmFuZCA9IGZvck5vZGUobm9k
ZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CisgICAgICAgIGlmIChvcGVyYW5kICYmIG9wZXJhbmQuaXNO
dW1iZXIoKSkgeworICAgICAgICAgICAgdWludDMyX3QgdmFsdWUgPSB0b1VJbnQzMihvcGVyYW5k
LmFzTnVtYmVyKCkpOworICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNOdW1iZXIoY2x6
MzIodmFsdWUpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBmb3JO
b2RlKG5vZGUpLnNldFR5cGUoU3BlY0ludDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAg
ICAgY2FzZSBNYWtlUm9wZTogewogICAgICAgICBmb3JOb2RlKG5vZGUpLnNldChtX2dyYXBoLCBt
X2dyYXBoLm1fdm0uc3RyaW5nU3RydWN0dXJlLmdldCgpKTsKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9u
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdh
dGlvblBoYXNlLmNwcAppbmRleCAyNzFkYmMyY2QzNmY2NmFkZTI4ZDFlMjQ4Yjk2NzVhMDIyM2Mx
ZThiLi41OTgxN2RlYTRlNDRhNmIzN2Y1MWU4MGRkZGE1OTQzZWVkNjVmM2ZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRp
b25QaGFzZS5jcHAKQEAgLTI1OSw3ICsyNTksMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG5v
ZGUtPmNoaWxkMigpLT5tZXJnZUZsYWdzKGZsYWdzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9Ci0gICAgICAgICAgICAKKworICAgICAgICBjYXNlIEFyaXRoQ2x6MzI6IHsKKyAgICAg
ICAgICAgIGZsYWdzICY9IH4oTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwgTm9kZUJ5dGVjb2Rl
TmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgfCB+Tm9kZUJ5dGVjb2RlVXNl
c0FzQXJyYXlJbmRleCk7CisgICAgICAgICAgICBmbGFncyB8PSBOb2RlQnl0ZWNvZGVVc2VzQXNJ
bnQ7CisgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+bWVyZ2VGbGFncyhmbGFncyk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgQXJpdGhTdWI6IHsKICAg
ICAgICAgICAgIGlmIChpc05vdE5lZ1plcm8obm9kZS0+Y2hpbGQxKCkubm9kZSgpKSB8fCBpc05v
dFBvc1plcm8obm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkKICAgICAgICAgICAgICAgICBmbGFncyAm
PSB+Tm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA0ZjEwNTFmM2UyYWJkNGE5MDEyNTQ5YmZl
ZGYwMWZiYWUyMmJkNzZiLi41NzliM2NlMWQ3N2M5MTlmODBhMzgxMjNhMWExNjUwYWNmMzIwOGQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cApAQCAtMjAwMCw2ICsyMDAwLDE2IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJp
bnNpYyhpbnQgcmVzdWx0T3BlcmFuZCwgSW50cmluc2ljIGludHJpbnNpYywgaW50CiAgICAgICAg
IHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksIGNoYXJDb2RlKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQorICAgIGNhc2UgQ2x6MzJJbnRyaW5zaWM6IHsKKyAgICAgICAg
aW5zZXJ0Q2hlY2tzKCk7CisgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9
PSAxKQorICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgYWRk
VG9HcmFwaChKU0NvbnN0YW50LCBPcEluZm8obV9ncmFwaC5mcmVlemUoanNOdW1iZXIoMzIpKSkp
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBOb2RlKiBvcGVyYW5kID0gZ2V0KHZpcnR1
YWxSZWdpc3RlckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgICAgICBz
ZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBhZGRUb0dyYXBoKEFyaXRoQ2x6MzIs
IG9wZXJhbmQpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAg
Y2FzZSBGcm9tQ2hhckNvZGVJbnRyaW5zaWM6IHsKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzICE9IDIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDQ1YjhkMDdhNDE3MWViNzI5NTli
MDNkODMyOTE5NTAwY2RmZGZlNzUuLjIwMjkyOTg4MDc5NDEzMjI4NDNjNzViMWQzZDQ2MzE3NGVk
NWFjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0x
MjksNiArMTI5LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Y29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICBjYXNlIEJpdFVSU2hp
ZnQ6CiAgICAgY2FzZSBBcml0aElNdWw6CiAgICAgY2FzZSBBcml0aEFiczoKKyAgICBjYXNlIEFy
aXRoQ2x6MzI6CiAgICAgY2FzZSBBcml0aE1pbjoKICAgICBjYXNlIEFyaXRoTWF4OgogICAgIGNh
c2UgQXJpdGhQb3c6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXgg
OTdhYjM5ZTQzZjRhZmIyZGJkNzFlNGRjYjI5NDNjOWQ3NzRlZThkYS4uZWFmZTYzMzJkZWM0N2M0
NTg3OGM1NTY1NTM4NTA1NzIyYjYyMWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcApAQCAtNzIsNiArNzIsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUpCiAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAgICBjYXNlIERvdWJsZUFzSW50
MzI6CiAgICAgY2FzZSBBcml0aEFkZDoKKyAgICBjYXNlIEFyaXRoQ2x6MzI6CiAgICAgY2FzZSBB
cml0aFN1YjoKICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAgIGNhc2UgQXJpdGhNdWw6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA1ZTUzNzhhNWYz
NDRhZTVjZTJhNTU3MDAxNjVhMDEzNmVhNmU2ZjEyLi5lOWNhMjhiODRiNmQyYmY5ZTZlNzkzYzk1
Y2M3ZDE0YjZmYTg4MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKQEAgLTExOSw2ICsxMTksMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG5vZGUt
PmNoaWxkMigpLnNldFVzZUtpbmQoSW50MzJVc2UpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KKworICAgICAgICBjYXNlIEFyaXRoQ2x6MzI6IHsKKyAgICAgICAgICAgIGZpeEludENv
bnZlcnRpbmdFZGdlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIG5vZGUtPnNldEFyaXRo
TW9kZShBcml0aDo6VW5jaGVja2VkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBVSW50MzJUb051bWJlcjogewogICAgICAgICAgICAg
Zml4SW50Q29udmVydGluZ0VkZ2Uobm9kZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGI0MmRjZDI1MWZjMTMyMjdlZDE4NDg0MDA3Njk4OTRl
MzljZDY2MTYuLmFiYWIyYTY1YjVhZWMzNTUwNmZmODk4NWIwZGFjNmUyOTRmZjg2ZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgXAogICAgIC8qIE5vZGVzIGZvciBh
cml0aG1ldGljIG9wZXJhdGlvbnMuICovXAogICAgIG1hY3JvKEFyaXRoQWRkLCBOb2RlUmVzdWx0
TnVtYmVyKSBcCisgICAgbWFjcm8oQXJpdGhDbHozMiwgTm9kZVJlc3VsdEludDMyKSBcCiAgICAg
bWFjcm8oQXJpdGhTdWIsIE5vZGVSZXN1bHROdW1iZXIpIFwKICAgICBtYWNybyhBcml0aE5lZ2F0
ZSwgTm9kZVJlc3VsdE51bWJlcikgXAogICAgIG1hY3JvKEFyaXRoTXVsLCBOb2RlUmVzdWx0TnVt
YmVyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGY2M2YwZGE3NmViZDRlY2RhZjJlZDI0
NTIxYWYwNWRkZDFhMDA2ZDkuLjUzM2FmMWI0ZTJiZmQ5OThlMTNlODUyOTUzMjcyOWJmZDFkYmU1
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0xNzgsNyArMTc4LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBCaXRSU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0TFNoaWZ0OgogICAgICAg
ICBjYXNlIEJpdFVSU2hpZnQ6Ci0gICAgICAgIGNhc2UgQXJpdGhJTXVsOiB7CisgICAgICAgIGNh
c2UgQXJpdGhJTXVsOgorICAgICAgICBjYXNlIEFyaXRoQ2x6MzI6IHsKICAgICAgICAgICAgIGNo
YW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjSW50MzIpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
aW5kZXggZDI5ZjMxODYwODQ0MmM0MmYxZDBmZTZmZDVmNGYwZDU3MmMyOTk0Zi4uZGMwOGM0MzEx
ZTVlYWRlMWMxNDNhNGUyNTkwYjFjODZiMGE0Nzg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTE0Miw2ICsxNDIsNyBAQCBib29sIHNhZmVU
b0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAgICBjYXNlIERvdWJsZUFzSW50MzI6CiAg
ICAgY2FzZSBBcml0aEFkZDoKKyAgICBjYXNlIEFyaXRoQ2x6MzI6CiAgICAgY2FzZSBBcml0aFN1
YjoKICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAgIGNhc2UgQXJpdGhNdWw6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDFjN2RkZTVk
NzQ2NDkzOWQ2ZGVhNWRmNGU4NWY2ZTFiNzFiMmVmNDcuLjU2Y2U3YTA2YjdmYzhhNzZiNjE1MTVm
Nzc1N2QyYTNmZGEzYzhjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yODI1LDYgKzI4MjUsMTcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZU1ha2VSb3BlKE5vZGUqIG5vZGUpCiAgICAgY2VsbFJlc3VsdChyZXN1bHRH
UFIsIG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhDbHozMihO
b2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uobm9kZS0+Y2hpbGQxKCkudXNl
S2luZCgpID09IEludDMyVXNlIHx8IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBLbm93bklu
dDMyVXNlLCAiVGhlIEZpeHVwIHBoYXNlIHNob3VsZCBoYXZlIGVuZm9yY2VkIGEgSW50MzIgb3Bl
cmFuZC4iKTsKKyAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVlKTsKKyAg
ICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKKyAgICBHUFJSZWcgcmVzdWx0UmVnID0g
cmVzdWx0LmdwcigpOworICAgIG1faml0LmNvdW50TGVhZGluZ1plcm9zMzIodmFsdWVSZWcsIHJl
c3VsdFJlZyk7CisgICAgaW50MzJSZXN1bHQocmVzdWx0UmVnLCBub2RlKTsKK30KKwogdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoU3ViKE5vZGUqIG5vZGUpCiB7CiAgICAgc3dpdGNo
IChub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBjMjZlZTgwMDhhZTk0MjU1YjI5NTlmYzM2NGU5NGM1
NmY0YzNhYTBmLi44NWIzNWRjNzExMDYxNzIxMzVjY2EyYmVmNTQxMzE2YjlmZTdhNjE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0yMTgy
LDYgKzIxODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlRG91YmxlQXNJbnQzMihOb2Rl
Kik7CiAgICAgdm9pZCBjb21waWxlQWRkKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVNYWtlUm9w
ZShOb2RlKik7CisgICAgdm9pZCBjb21waWxlQXJpdGhDbHozMihOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlQXJpdGhTdWIoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUFyaXRoTmVnYXRlKE5vZGUq
KTsKICAgICB2b2lkIGNvbXBpbGVBcml0aE11bChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA5ZmVjZTJk
MzlkZTI3NDI4OTFkNWI2OTU0OTVmY2Y1NzRkNTA3N2M1Li43ZGQyNjYwMzg3OWQ5ZDVlZWU1Njg1
NzgxYmM4YjIzOWJjYWYzYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTIwMTEsNiArMjAxMSwxMCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVBZGQo
bm9kZSk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBcml0aENsejMyOgorICAgICAgICBj
b21waWxlQXJpdGhDbHozMihub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIE1ha2VS
b3BlOgogICAgICAgICBjb21waWxlTWFrZVJvcGUobm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5k
ZXggOGU1OGQwZmQxMDMzMzM2YjVjMzNkOTEyMTg0YzZkZmJkNTRkNTYwMC4uMzAwN2I0YjZjNjI5
NGU2YmEyMzNhYThjZWE0MTIyMTI4ODU0ZDljYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0yMTUzLDYgKzIxNTMsMTAgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQXJpdGhB
ZGQ6CiAgICAgICAgIGNvbXBpbGVBZGQobm9kZSk7CiAgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBBcml0aENsejMyOgorICAgICAgICBjb21waWxlQXJpdGhDbHozMihub2RlKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgTWFrZVJvcGU6CiAgICAgICAgIGNvbXBpbGVNYWtl
Um9wZShub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVz
LmNwcAppbmRleCA3OTM5NzZiZGZiZDM5M2FmN2VkYTAyMWM3ZDU4OTA4M2RhY2E2NzQ2Li5lZTc1
NzVkNGIxMjNlNTU3ZDNiOTQyZDE3Yjc0NzYyMzAyMGI0YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC03OSw2ICs3OSw3IEBAIGlubGlu
ZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0R2xv
YmFsVmFyOgogICAgIGNhc2UgVmFsdWVBZGQ6CiAgICAgY2FzZSBBcml0aEFkZDoKKyAgICBjYXNl
IEFyaXRoQ2x6MzI6CiAgICAgY2FzZSBBcml0aFN1YjoKICAgICBjYXNlIEFyaXRoTXVsOgogICAg
IGNhc2UgQXJpdGhEaXY6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50
cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IDRlZWFiNWE2YmI1NGZmM2MwNzMxMTBiM2FjZTA5MmE0
MjQ1MjcxZjAuLmE1OGFlNWYzNWI1MjQ2ZWY3ZTY2ZjJiNjExYmE1NmUwYTcyMzlkZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5o
CkBAIC0zNSw2ICszNSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKICNk
ZWZpbmUgRk9SX0VBQ0hfRlRMX0lOVFJJTlNJQyhtYWNybykgXAorICAgIG1hY3JvKGN0bHozMiwg
Imxsdm0uY3Rsei5pMzIiLCBmdW5jdGlvblR5cGUoaW50MzIsIGludDMyLCBib29sZWFuKSkgXAog
ICAgIG1hY3JvKGFkZFdpdGhPdmVyZmxvdzMyLCAibGx2bS5zYWRkLndpdGgub3ZlcmZsb3cuaTMy
IiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQzMiwgYm9vbGVhbiksIGlu
dDMyLCBpbnQzMikpIFwKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3c2NCwgImxsdm0uc2FkZC53
aXRoLm92ZXJmbG93Lmk2NCIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50
NjQsIGJvb2xlYW4pLCBpbnQ2NCwgaW50NjQpKSBcCiAgICAgbWFjcm8oZG91YmxlQWJzLCAibGx2
bS5mYWJzLmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVUeXBlLCBkb3VibGVUeXBlKSkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCBh
MzVhYTc0MmFjN2EzMjYyOTU1ZTg4NzQ2Y2I3ZDBjM2FhZmJmYjNlLi45NzBkY2MyZDNhNDlkZjRh
ODkxZjAzZTY0MDU0ZTg2OWNmZGZiNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNDc4LDYgKzQ3OCw5IEBAIHByaXZhdGU6CiAg
ICAgICAgIGNhc2UgQXJpdGhTdWI6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhBZGRPclN1Yigp
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhDbHozMjoKKyAgICAgICAg
ICAgIGNvbXBpbGVBcml0aENsejMyKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBBcml0aE11bDoKICAgICAgICAgICAgIGNvbXBpbGVBcml0aE11bCgpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC0xMzE5LDYgKzEzMjIsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgfQorCisgICAgdm9pZCBjb21waWxlQXJpdGhDbHozMigpCisgICAg
eworICAgICAgICBMVmFsdWUgb3BlcmFuZCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICBMVmFsdWUgaXNaZXJvVW5kZWYgPSBtX291dC5ib29sZWFuRmFsc2U7CisgICAgICAg
IHNldEludDMyKG1fb3V0LmN0bHozMihvcGVyYW5kLCBpc1plcm9VbmRlZikpOworICAgIH0KICAg
ICAKICAgICB2b2lkIGNvbXBpbGVBcml0aE11bCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT3V0cHV0LmgKaW5kZXggNjVhNjc0NjJlZGNhNGY2N2Q3MzI3NmI2YjQ3MjkwZWIzNmNm
YTM3MS4uZmY2MTc5ODVjY2ZhM2Y1MGRiOTlhYzE0ZjA5ZDU2MjRhODRlZWEyYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC0xMzgsNyArMTM4LDExIEBAIHB1YmxpYzoK
ICAgICBMVmFsdWUgYml0Tm90KExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gYnVpbGROb3QobV9idWls
ZGVyLCB2YWx1ZSk7IH0KICAgICAKICAgICBMVmFsdWUgaW5zZXJ0RWxlbWVudChMVmFsdWUgdmVj
dG9yLCBMVmFsdWUgZWxlbWVudCwgTFZhbHVlIGluZGV4KSB7IHJldHVybiBidWlsZEluc2VydEVs
ZW1lbnQobV9idWlsZGVyLCB2ZWN0b3IsIGVsZW1lbnQsIGluZGV4KTsgfQotICAgIAorCisgICAg
TFZhbHVlIGN0bHozMihMVmFsdWUgeE9wZXJhbmQsIExWYWx1ZSB5T3BlcmFuZCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjYWxsKGN0bHozMkludHJpbnNpYygpLCB4T3BlcmFuZCwgeU9wZXJhbmQp
OworICAgIH0KICAgICBMVmFsdWUgYWRkV2l0aE92ZXJmbG93MzIoTFZhbHVlIGxlZnQsIExWYWx1
ZSByaWdodCkKICAgICB7CiAgICAgICAgIHJldHVybiBjYWxsKGFkZFdpdGhPdmVyZmxvdzMySW50
cmluc2ljKCksIGxlZnQsIHJpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAppbmRleCAxMDA3ZDJkNjdjOTc1N2E0MWIzYjAzNzBkMTA5NDFjYWEx
NWU5ZDQxLi5kZjc4NjRiMGM4ZDVkNDUyMmNiZTM3YjA2ODEwYjYxNDI2ZmQ0YWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC02NDYsNiAr
NjQ2LDI3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRv
cihWTSogdm0pCiAgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2
ZVRhaWxDYWxsKHZtKSwgImZyb21DaGFyQ29kZSIpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgY2x6MzJUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgU3BlY2lhbGl6ZWRUaHVua0pJ
VCBqaXQodm0sIDEpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vbkludEFyZ0p1bXA7Cisg
ICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBu
b25JbnRBcmdKdW1wKTsKKworICAgIFNwZWNpYWxpemVkVGh1bmtKSVQ6OkxhYmVsIGNvbnZlcnRl
ZEFyZ3VtZW50UmVlbnRyeSgmaml0KTsKKyAgICBqaXQuY291bnRMZWFkaW5nWmVyb3MzMihTcGVj
aWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDEpOworICAg
IGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMSk7CisKKyAgICBpZiAo
aml0LnN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkpIHsKKyAgICAgICAgbm9uSW50QXJn
SnVtcC5saW5rKCZqaXQpOworICAgICAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKKyAg
ICAgICAgaml0LmJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMihTcGVjaWFsaXplZFRodW5rSklU
OjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJ
VDo6QnJhbmNoSWZUcnVuY2F0ZVN1Y2Nlc3NmdWwpLmxpbmtUbyhjb252ZXJ0ZWRBcmd1bWVudFJl
ZW50cnksICZqaXQpOworICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShqaXQuanVtcCgpKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgaml0LmFwcGVuZEZhaWx1cmUobm9uSW50QXJnSnVtcCk7CisKKyAg
ICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0p
LCAiY2x6MzIiKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHNxcnRUaHVua0dlbmVyYXRv
cihWTSogdm0pCiB7CiAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVCBqaXQodm0sIDEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKaW5kZXggZmRiMDBjZjgyYWU2
YjEwZGNiM2EwMzkzNmJjNzBhOGEzZGIzYjlhNy4uZmExODlmM2ZhZDQ1MjAzZDhiZmY3MmIwNTI1
MjM1ZDMyYzUwMWY5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVu
a0dlbmVyYXRvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5oCkBAIC0xMjAsNiArMTIwLDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGJhc2VsaW5l
U2V0dGVyUmV0dXJuVGh1bmtHZW5lcmF0b3IoVk0qIHZtKTsKIAogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGNoYXJBdFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2x6MzJU
aHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGZyb21DaGFyQ29kZVRo
dW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYWJzVGh1bmtHZW5lcmF0
b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjZWlsVGh1bmtHZW5lcmF0b3IoVk0qKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggZjgyODMzNjk1
MDFlMDk0NTMwNzE0MDlmNDA2Zjg5YTIwNjg5YTYwZC4uZWEyMGYwNjNmZWQyNzE3ZTNlN2MzMmNi
ZGQxYWFiZDJlNGEyYzQyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50cmluc2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmlu
c2ljLmgKQEAgLTM1LDYgKzM1LDcgQEAgZW51bSBJbnRyaW5zaWMgewogICAgIE1heEludHJpbnNp
YywKICAgICBTcXJ0SW50cmluc2ljLAogICAgIFNpbkludHJpbnNpYywKKyAgICBDbHozMkludHJp
bnNpYywKICAgICBDb3NJbnRyaW5zaWMsCiAgICAgQXJyYXlQdXNoSW50cmluc2ljLAogICAgIEFy
cmF5UG9wSW50cmluc2ljLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWF0aENvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aENvbW1v
bi5oCmluZGV4IDhmNDcwNmVhMzJhYzczYzg4ZDcwZDViZDUyNDNkNDMyMTdkNTc5NGEuLmY3YjBh
ZmNiYzgzNzRiNTQ2ZWI5NGU1OWVlNzcwYTQ0MTJhNzAzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXRoQ29tbW9uLmgKQEAgLTM0LDYgKzM0LDI2IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0aFBvdyhkb3VibGUgeCwg
ZG91YmxlIHkpIFdURl9JTlRFUk5BTDsKKworaW5saW5lIGludCBjbHozMih1aW50MzJfdCBudW1i
ZXIpCit7CisjaWYgQ09NUElMRVIoR0NDKSB8fCBDT01QSUxFUihDTEFORykKKyAgICBpbnQgemVy
b0NvdW50ID0gMzI7CisgICAgaWYgKG51bWJlcikKKyAgICAgICAgemVyb0NvdW50ID0gX19idWls
dGluX2NseihudW1iZXIpOworICAgIHJldHVybiB6ZXJvQ291bnQ7CisjZWxzZQorICAgIGludCB6
ZXJvQ291bnQgPSAwOworICAgIGZvciAoaW50IGkgPSAzMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAg
ICAgaWYgKCEobnVtYmVyID4+IGkpKQorICAgICAgICAgICAgemVyb0NvdW50Kys7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gemVyb0NvdW50Owor
I2VuZGlmCit9CisKIH0KIAogI2VuZGlmIC8vIE1hdGhDb21tb25faApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAppbmRleCA4OTlkMDI0MjhlZTQ0NzMxYTgx
OTZkZDUyZmFmOWQwM2Q1ODJhMjliLi42OWFmNDJiYjBiZTk2Y2U4YmVjYTc2YzZmNGM1MWRkYjRh
YzllODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNw
cApAQCAtNDYsNiArNDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNBVGFuaChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0
aFByb3RvRnVuY0FUYW4yKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jQ2JydChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbWF0aFByb3RvRnVuY0NlaWwoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDbHozMihFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NvcyhFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0Nvc2goRXhlY1N0YXRlKik7CiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNFeHAoRXhlY1N0YXRlKik7CkBAIC0x
MDYsNiArMTA3LDcgQEAgdm9pZCBNYXRoT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImF0YW4yIiksIDIsIG1hdGhQcm90b0Z1bmNBVGFuMiwgTm9JbnRyaW5zaWMsIERvbnRF
bnVtIHwgRnVuY3Rpb24pOwogICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5z
aXRpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjYnJ0
IiksIDEsIG1hdGhQcm90b0Z1bmNDYnJ0LCBOb0ludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlv
bik7CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNlaWwiKSwgMSwgbWF0aFBy
b3RvRnVuY0NlaWwsIENlaWxJbnRyaW5zaWMsIERvbnRFbnVtIHwgRnVuY3Rpb24pOworICAgIHB1
dERpcmVjdE5hdGl2ZUZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjbHozMiIpLCAxLCBtYXRoUHJvdG9GdW5jQ2x6
MzIsIENsejMySW50cmluc2ljLCBEb250RW51bSB8IEZ1bmN0aW9uKTsKICAgICBwdXREaXJlY3RO
YXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiY29zIiksIDEsIG1hdGhQcm90b0Z1bmNDb3MsIENvc0ludHJp
bnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImNvc2giKSwgMSwgbWF0aFByb3RvRnVuY0Nvc2gsIE5vSW50cmluc2ljLCBEb250RW51
bSB8IEZ1bmN0aW9uKTsKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZXhwIiks
IDEsIG1hdGhQcm90b0Z1bmNFeHAsIEV4cEludHJpbnNpYywgRG9udEVudW0gfCBGdW5jdGlvbik7
CkBAIC0xNjYsNiArMTY4LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFBy
b3RvRnVuY0NlaWwoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoY2VpbChleGVjLT5hcmd1bWVudCgwKS50b051bWJlcihleGVjKSkpKTsKIH0KIAor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQ2x6MzIoRXhlY1N0YXRl
KiBleGVjKQoreworICAgIHVpbnQzMl90IHZhbHVlID0gZXhlYy0+YXJndW1lbnQoMCkudG9VSW50
MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VmFsdWUoY2x6MzIodmFsdWUpKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWF0aFByb3RvRnVuY0NvcyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0RvdWJsZU51bWJlcihjb3MoZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIoZXhl
YykpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90
eXBlLmNwcAppbmRleCA5ZTJkYmJjY2MyOTQ5MzVmMDZlZWI5NWI5YmEwNGI1ZGIzYzU0ODlhLi5l
YTcxMWMwZjcxZTFkNzFkY2UyMTIyMGE3NmM5Y2NlNThmMzlhYzA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTQ4LDcgKzQ4
LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5j
VmFsdWVPZihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG51bWJlclByb3RvRnVuY1RvRml4ZWQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKEV4ZWNTdGF0ZSop
Owogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Q
cmVjaXNpb24oRXhlY1N0YXRlKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBudW1iZXJQcm90b0Z1bmNDbHooRXhlY1N0YXRlKik7CiAKIH0KIApAQCAtNjYsNyArNjUsNiBA
QCBjb25zdCBDbGFzc0luZm8gTnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1iZXIiLCAm
TnVtYmVyT2JqZWN0OjpzX2luZm8sICZudQogICB0b0ZpeGVkICAgICAgICAgICBudW1iZXJQcm90
b0Z1bmNUb0ZpeGVkICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgdG9FeHBvbmVudGlh
bCAgICAgbnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCAgICBEb250RW51bXxGdW5jdGlvbiAx
CiAgIHRvUHJlY2lzaW9uICAgICAgIG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uICAgICAgRG9u
dEVudW18RnVuY3Rpb24gMQotICBjbHogICAgICAgICAgICAgICBudW1iZXJQcm90b0Z1bmNDbHog
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKIEBlbmQKICovCiAKQEAgLTQ1Miw0MSAr
NDUwLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1By
ZWNpc2lvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0
cmluZyhleGVjLCBTdHJpbmcobnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyh4LCBzaWduaWZp
Y2FudEZpZ3VyZXMsIGJ1ZmZlcikpKSk7CiB9CiAKLSNpZiAhQ09NUElMRVIoR0NDKSAmJiAhQ09N
UElMRVIoQ0xBTkcpCi1zdGF0aWMgaW5saW5lIGludCBjbHoodWludDMyX3QgbnVtYmVyKQotewot
ICAgIGludCB6ZXJvQ291bnQgPSAwOwotICAgIGZvciAoaW50IGkgPSAzMTsgaSA+PSAwOyBpLS0p
IHsKLSAgICAgICAgaWYgKCEobnVtYmVyID4+IGkpKQotICAgICAgICAgICAgemVyb0NvdW50Kys7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gemVy
b0NvdW50OwotfQotI2VuZGlmCi0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVy
UHJvdG9GdW5jQ2x6KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBkb3VibGUgeDsKLSAgICBpZiAo
IXRvVGhpc051bWJlcihleGVjLT50aGlzVmFsdWUoKSwgeCkpCi0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOwotCi0gICAgaWYgKCFzdGQ6OmlzZmluaXRlKHgpKQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoeCkpOwotCi0gICAgdWludDMyX3QgbnVt
YmVyID0gdG9VSW50MzIoeCk7Ci0jaWYgQ09NUElMRVIoR0NDKSB8fCBDT01QSUxFUihDTEFORykK
LSAgICBpbnQgemVyb0NvdW50ID0gMzI7Ci0gICAgaWYgKG51bWJlcikKLSAgICAgICAgemVyb0Nv
dW50ID0gX19idWlsdGluX2NseihudW1iZXIpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKHplcm9Db3VudCkpOwotI2Vsc2UKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVmFsdWUoY2x6KG51bWJlcikpKTsKLSNlbmRpZgotfQotCiBzdGF0aWMgaW5saW5lIGludDMy
X3QgZXh0cmFjdFJhZGl4RnJvbUFyZ3MoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUg
cmFkaXhWYWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCmluZGV4IDhlZTcyNDgwN2E4MGVlNTlkZmMwMTczZDViZWUxZWZmZGMxYTBkZTYuLjFh
MzczNGRmMzRiMWZlNzgyZmNhNWQzMzIwZTRjMmJjYzBjOTZiYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKQEAgLTM3OSw2ICszNzksOCBAQCBzdGF0aWMgVGh1bmtHZW5lcmF0
b3IgdGh1bmtHZW5lcmF0b3JGb3JJbnRyaW5zaWMoSW50cmluc2ljIGludHJpbnNpYykKICAgICAg
ICAgcmV0dXJuIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcjsKICAgICBjYXNlIENoYXJBdEludHJp
bnNpYzoKICAgICAgICAgcmV0dXJuIGNoYXJBdFRodW5rR2VuZXJhdG9yOworICAgIGNhc2UgQ2x6
MzJJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiBjbHozMlRodW5rR2VuZXJhdG9yOwogICAgIGNh
c2UgRnJvbUNoYXJDb2RlSW50cmluc2ljOgogICAgICAgICByZXR1cm4gZnJvbUNoYXJDb2RlVGh1
bmtHZW5lcmF0b3I7CiAgICAgY2FzZSBTcXJ0SW50cmluc2ljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tYXRoLWNsejMyLWJhc2ljcy5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1jbHozMi1iYXNpY3MuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNThlMzc5ZWNiZTZlYzI1M2JkM2U4NDY4MTlkMWMwNWE0MmI4NzBjNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1jbHozMi1i
YXNpY3MuanMKQEAgLTAsMCArMSwyMjIgQEAKK2Z1bmN0aW9uIG1hdGhDbHozMk9uSW50ZWdlcih2
YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jbHozMih2YWx1ZSk7Cit9Citub0lubGluZShtYXRo
Q2x6MzJPbkludGVnZXIpOworCisvLyAqKiogVGVzdCBzaW1wbGUgY2FzZXMgb24gaW50ZWdlcnMu
ICoqKgorZnVuY3Rpb24gdGVzdE1hdGhDbHozMk9uSW50ZWdlcnMoKQoreworICAgIC8vIEJvdW5k
cy4KKyAgICB2YXIgY2x6WmVybyA9IG1hdGhDbHozMk9uSW50ZWdlcigwKTsKKyAgICBpZiAoY2x6
WmVybyAhPSAzMikKKyAgICAgICAgdGhyb3cgIm1hdGhDbHozMk9uSW50ZWdlcigwKSA9ICIgKyBj
bHpaZXJvOworCisgICAgdmFyIGNsekludE1pbiA9IG1hdGhDbHozMk9uSW50ZWdlcigtMjE0NzQ4
MzY0OCk7CisgICAgaWYgKGNsekludE1pbiAhPSAwKQorICAgICAgICB0aHJvdyAibWF0aENsejMy
T25JbnRlZ2VyKC0yMTQ3NDgzNjQ4KSA9ICIgKyBjbHpJbnRNaW47CisKKyAgICB2YXIgY2x6SW50
TWF4ID0gbWF0aENsejMyT25JbnRlZ2VyKDIxNDc0ODM2NDcpOworICAgIGlmIChjbHpJbnRNYXgg
IT0gMSkKKyAgICAgICAgdGhyb3cgIm1hdGhDbHozMk9uSW50ZWdlcigyMTQ3NDgzNjQ3KSA9ICIg
KyBjbHpJbnRNYXg7CisKKyAgICAvLyBTaW1wbGUgdmFsdWVzLgorICAgIHZhciBjbHpNaW51c09u
ZSA9IG1hdGhDbHozMk9uSW50ZWdlcigtMSk7CisgICAgaWYgKGNsek1pbnVzT25lICE9IDApCisg
ICAgICAgIHRocm93ICJtYXRoQ2x6MzJPbkludGVnZXIoLTEpID0gIiArIGNsek1pbnVzT25lOwor
CisgICAgdmFyIGNselVsdGltYXRlQW5zd2VyID0gbWF0aENsejMyT25JbnRlZ2VyKDQyKTsKKyAg
ICBpZiAoY2x6VWx0aW1hdGVBbnN3ZXIgIT0gMjYpCisgICAgICAgIHRocm93ICJtYXRoQ2x6MzJP
bkludGVnZXIoNDIpID0gIiArIGNselVsdGltYXRlQW5zd2VyOworCisgICAgdmFyIGNsek1pbnVz
VWx0aW1hdGVBbnN3ZXIgPSBtYXRoQ2x6MzJPbkludGVnZXIoLTQyKTsKKyAgICBpZiAoY2x6TWlu
dXNVbHRpbWF0ZUFuc3dlciAhPSAwKQorICAgICAgICB0aHJvdyAibWF0aENsejMyT25JbnRlZ2Vy
KC00MikgPSAiICsgY2x6TWludXNVbHRpbWF0ZUFuc3dlcjsKK30KK25vSW5saW5lKHRlc3RNYXRo
Q2x6MzJPbkludGVnZXJzKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAg
IHRlc3RNYXRoQ2x6MzJPbkludGVnZXJzKCk7Cit9CisKKy8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBk
byBhbnl0aGluZyBzdHVwaWQgd2hlbiB0aGUgdHlwZSBpcyB1bmV4cGVjdGVkLgorZnVuY3Rpb24g
dmVyaWZ5TWF0aENsejMyT25JbnRlZ2VyV2l0aE90aGVyVHlwZXMoKQoreworICAgIHZhciBjbHpQ
aSA9IG1hdGhDbHozMk9uSW50ZWdlcihNYXRoLlBJKTsKKyAgICBpZiAoY2x6UGkgIT0gMzApCisg
ICAgICAgIHRocm93ICJtYXRoQ2x6MzJPbkludGVnZXIoTWF0aC5QSSkgPSAiICsgY2x6UGk7CisK
KyAgICB2YXIgY2x6U3RyaW5nID0gbWF0aENsejMyT25JbnRlZ2VyKCI0MiIpOworICAgIGlmIChj
bHpTdHJpbmcgIT0gMjYpCisgICAgICAgIHRocm93ICJtYXRoQ2x6MzJPbkludGVnZXIoXCI0Mlwi
KSA9ICIgKyBjbHpTdHJpbmc7CisKKyAgICB2YXIgY2x6U3RyaW5nID0gbWF0aENsejMyT25JbnRl
Z2VyKCJXZWJLaXQiKTsKKyAgICBpZiAoY2x6U3RyaW5nICE9IDMyKQorICAgICAgICB0aHJvdyAi
bWF0aENsejMyT25JbnRlZ2VyKFwiV2ViS2l0XCIpID0gIiArIGNselN0cmluZzsKKworICAgIHZh
ciBjbHpNaW51c1plcm8gPSBtYXRoQ2x6MzJPbkludGVnZXIoLTApOworICAgIGlmIChjbHpNaW51
c1plcm8gIT0gMzIpCisgICAgICAgIHRocm93ICJtYXRoQ2x6MzJPbkludGVnZXIoXCItMFwiKSA9
ICIgKyBjbHpNaW51c1plcm87Cit9Citub0lubGluZSh2ZXJpZnlNYXRoQ2x6MzJPbkludGVnZXJX
aXRoT3RoZXJUeXBlcyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2
ZXJpZnlNYXRoQ2x6MzJPbkludGVnZXJXaXRoT3RoZXJUeXBlcygpOworfQorCisKKy8vICoqKiBU
ZXN0IHNpbXBsZSBjYXNlcyBvbiBkb3VibGVzLiAqKioKK2Z1bmN0aW9uIG1hdGhDbHozMk9uRG91
YmxlKHZhbHVlKQoreworICAgIHJldHVybiBNYXRoLmNsejMyKHZhbHVlKTsKK30KK25vSW5saW5l
KG1hdGhDbHozMk9uSW50ZWdlcik7CisKKy8vIFRlc3Qgc2ltcGxlIGNhc2VzIG9uIGludGVnZXJz
LgorZnVuY3Rpb24gdGVzdE1hdGhDbHozMk9uRG91YmxlcygpCit7CisgICAgdmFyIHZhbHVlID0g
bWF0aENsejMyT25Eb3VibGUoTWF0aC5QSSk7CisgICAgaWYgKHZhbHVlICE9IDMwKQorICAgICAg
ICB0aHJvdyAibWF0aENsejMyT25Eb3VibGUoTWF0aC5QSSkgPSAiICsgdmFsdWU7CisKKyAgICB2
YXIgdmFsdWUgPSBtYXRoQ2x6MzJPbkRvdWJsZShNYXRoLkUpOworICAgIGlmICh2YWx1ZSAhPSAz
MCkKKyAgICAgICAgdGhyb3cgIm1hdGhDbHozMk9uRG91YmxlKE1hdGguRSkgPSAiICsgdmFsdWU7
CisKKyAgICB2YXIgdmFsdWUgPSBtYXRoQ2x6MzJPbkRvdWJsZShNYXRoLkxOMik7CisgICAgaWYg
KHZhbHVlICE9IDMyKQorICAgICAgICB0aHJvdyAibWF0aENsejMyT25Eb3VibGUoTWF0aC5MTjIp
ID0gIiArIHZhbHVlOworCisgICAgdmFyIHZhbHVlID0gbWF0aENsejMyT25Eb3VibGUoLTApOwor
ICAgIGlmICh2YWx1ZSAhPSAzMikKKyAgICAgICAgdGhyb3cgIm1hdGhDbHozMk9uRG91YmxlKDAp
ID0gIiArIHZhbHVlOworCisgICAgdmFyIHZhbHVlID0gbWF0aENsejMyT25Eb3VibGUoTmFOKTsK
KyAgICBpZiAodmFsdWUgIT0gMzIpCisgICAgICAgIHRocm93ICJtYXRoQ2x6MzJPbkRvdWJsZShO
YU4pID0gIiArIHZhbHVlOworCisgICAgdmFyIHZhbHVlID0gbWF0aENsejMyT25Eb3VibGUoTnVt
YmVyLlBPU0lUSVZFX0lORklOSVRJKTsKKyAgICBpZiAodmFsdWUgIT0gMzIpCisgICAgICAgIHRo
cm93ICJtYXRoQ2x6MzJPbkRvdWJsZShOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVEkpID0gIiArIHZh
bHVlOworCisgICAgdmFyIHZhbHVlID0gbWF0aENsejMyT25Eb3VibGUoTnVtYmVyLk5FR0FUSVZF
X0lORklOSVRJKTsKKyAgICBpZiAodmFsdWUgIT0gMzIpCisgICAgICAgIHRocm93ICJtYXRoQ2x6
MzJPbkRvdWJsZShOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVEkpID0gIiArIHZhbHVlOworfQorbm9J
bmxpbmUodGVzdE1hdGhDbHozMk9uRG91Ymxlcyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICB0ZXN0TWF0aENsejMyT25Eb3VibGVzKCk7Cit9CisKKy8vIE1ha2Ugc3Vy
ZSB3ZSBkb24ndCBkbyBhbnl0aGluZyBzdHVwaWQgd2hlbiB0aGUgdHlwZSBpcyB1bmV4cGVjdGVk
LgorZnVuY3Rpb24gdmVyaWZ5TWF0aENsejMyT25Eb3VibGVzV2l0aE90aGVyVHlwZXMoKQorewor
ICAgIHZhciBjbHpPbmUgPSBtYXRoQ2x6MzJPbkRvdWJsZSgxKTsKKyAgICBpZiAoY2x6T25lICE9
IDMxKQorICAgICAgICB0aHJvdyAibWF0aENsejMyT25Eb3VibGUoMSkgPSAiICsgY2x6T25lOwor
CisgICAgdmFyIGNselN0cmluZyA9IG1hdGhDbHozMk9uRG91YmxlKCI0MiIpOworICAgIGlmIChj
bHpTdHJpbmcgIT0gMjYpCisgICAgICAgIHRocm93ICJtYXRoQ2x6MzJPbkRvdWJsZShcIjQyXCIp
ID0gIiArIGNselN0cmluZzsKKworICAgIHZhciBjbHpTdHJpbmcgPSBtYXRoQ2x6MzJPbkRvdWJs
ZSgiV2ViS2l0Iik7CisgICAgaWYgKGNselN0cmluZyAhPSAzMikKKyAgICAgICAgdGhyb3cgIm1h
dGhDbHozMk9uRG91YmxlKFwiV2ViS2l0XCIpID0gIiArIGNselN0cmluZzsKKworICAgIHZhciBj
bHpNaW51c1plcm8gPSBtYXRoQ2x6MzJPbkRvdWJsZSh7fSk7CisgICAgaWYgKGNsek1pbnVzWmVy
byAhPSAzMikKKyAgICAgICAgdGhyb3cgIm1hdGhDbHozMk9uRG91YmxlKHt9KSA9ICIgKyBjbHpN
aW51c1plcm87Cit9Citub0lubGluZSh2ZXJpZnlNYXRoQ2x6MzJPbkRvdWJsZXNXaXRoT3RoZXJU
eXBlcyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICB2ZXJpZnlNYXRo
Q2x6MzJPbkRvdWJsZXNXaXRoT3RoZXJUeXBlcygpOworfQorCisKKy8vICoqKiBVbnVzdWFsIGFy
Z3VtZW50cy4gKioqCitmdW5jdGlvbiBtYXRoQ2x6MzJOb0FyZ3VtZW50cygpCit7CisgICAgcmV0
dXJuIE1hdGguY2x6MzIoKTsKK30KK25vSW5saW5lKG1hdGhDbHozMk5vQXJndW1lbnRzKTsKKwor
ZnVuY3Rpb24gbWF0aENsejMyVG9vTWFueUFyZ3VtZW50cyhhLCBiLCBjKQoreworICAgIHJldHVy
biBNYXRoLmNsejMyKGEsIGIsIGMpOworfQorbm9JbmxpbmUobWF0aENsejMyVG9vTWFueUFyZ3Vt
ZW50cyk7CisKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciB2YWx1
ZSA9IG1hdGhDbHozMk5vQXJndW1lbnRzKCk7CisgICAgaWYgKHZhbHVlICE9PSAzMikKKyAgICAg
ICAgdGhyb3cgIm1hdGhDbHozMk5vQXJndW1lbnRzKCkgPSAiICsgdmFsdWU7CisKKyAgICB2YXIg
dmFsdWUgPSBtYXRoQ2x6MzJUb29NYW55QXJndW1lbnRzKDIsIDMsIDUpOworICAgIGlmICh2YWx1
ZSAhPT0gMzApCisgICAgICAgIHRocm93ICJtYXRoQ2x6MzJUb29NYW55QXJndW1lbnRzKCkgPSAi
ICsgdmFsdWU7CisKK30KKworCisvLyAqKiogQ29uc3RhbnQgYXMgYXJndW1lbnRzLiAqKioKK2Z1
bmN0aW9uIHRlc3RNYXRoQ2x6MzJPbkNvbnN0YW50cygpCit7CisgICAgdmFyIHZhbHVlID0gTWF0
aC5jbHozMigwKTsKKyAgICBpZiAodmFsdWUgIT09IDMyKQorICAgICAgICB0aHJvdyAiTWF0aC5j
bHozMigwKSA9ICIgKyB2YWx1ZTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmNsejMyKC0wKTsKKyAg
ICBpZiAodmFsdWUgIT09IDMyKQorICAgICAgICB0aHJvdyAiTWF0aC5jbHozMigtMCkgPSAiICsg
dmFsdWU7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jbHozMigxKTsKKyAgICBpZiAodmFsdWUgIT09
IDMxKQorICAgICAgICB0aHJvdyAiTWF0aC5jbHozMigxKSA9ICIgKyB2YWx1ZTsKKyAgICB2YXIg
dmFsdWUgPSBNYXRoLmNsejMyKC0xKTsKKyAgICBpZiAodmFsdWUgIT09IDApCisgICAgICAgIHRo
cm93ICJNYXRoLmNsejMyKC0xKSA9ICIgKyB2YWx1ZTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmNs
ejMyKDQyKTsKKyAgICBpZiAodmFsdWUgIT09IDI2KQorICAgICAgICB0aHJvdyAiTWF0aC5jbHoz
Mig0MikgPSAiICsgdmFsdWU7CisgICAgdmFyIHZhbHVlID0gTWF0aC5jbHozMigtNDIpOworICAg
IGlmICh2YWx1ZSAhPT0gMCkKKyAgICAgICAgdGhyb3cgIk1hdGguY2x6MzIoLTQyKSA9ICIgKyB2
YWx1ZTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmNsejMyKE5hTik7CisgICAgaWYgKHZhbHVlICE9
PSAzMikKKyAgICAgICAgdGhyb3cgIk1hdGguY2x6MzIoTmFOKSA9ICIgKyB2YWx1ZTsKKyAgICB2
YXIgdmFsdWUgPSBNYXRoLmNsejMyKE51bWJlci5QT1NJVElWRV9JTkZJTklUSSk7CisgICAgaWYg
KHZhbHVlICE9PSAzMikKKyAgICAgICAgdGhyb3cgIk1hdGguY2x6MzIoTnVtYmVyLlBPU0lUSVZF
X0lORklOSVRJKSA9ICIgKyB2YWx1ZTsKKyAgICB2YXIgdmFsdWUgPSBNYXRoLmNsejMyKE51bWJl
ci5ORUdBVElWRV9JTkZJTklUSSk7CisgICAgaWYgKHZhbHVlICE9PSAzMikKKyAgICAgICAgdGhy
b3cgIk1hdGguY2x6MzIoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRJKSA9ICIgKyB2YWx1ZTsKKyAg
ICB2YXIgdmFsdWUgPSBNYXRoLmNsejMyKE1hdGguRSk7CisgICAgaWYgKHZhbHVlICE9PSAzMCkK
KyAgICAgICAgdGhyb3cgIk1hdGguY2x6MzIoTWF0aC5FKSA9ICIgKyB2YWx1ZTsKK30KK25vSW5s
aW5lKHRlc3RNYXRoQ2x6MzJPbkNvbnN0YW50cyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICB0ZXN0TWF0aENsejMyT25Db25zdGFudHMoKTsKK30KKworCisvLyAqKiog
U3RydWN0IHRyYW5zaXRpb24uICoqKgorZnVuY3Rpb24gbWF0aENsejMyU3RydWN0VHJhbnNpdGlv
bih2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jbHozMih2YWx1ZSk7Cit9Citub0lubGluZSht
YXRoQ2x6MzJTdHJ1Y3RUcmFuc2l0aW9uKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkgeworICAgIHZhciB2YWx1ZSA9IG1hdGhDbHozMlN0cnVjdFRyYW5zaXRpb24oNDIpOworICAg
IGlmICh2YWx1ZSAhPT0gMjYpCisgICAgICAgIHRocm93ICJtYXRoQ2x6MzJTdHJ1Y3RUcmFuc2l0
aW9uKDQyKSA9ICIgKyB2YWx1ZTsKK30KKworTWF0aC5jbHozMiA9IGZ1bmN0aW9uKCkgeyByZXR1
cm4gYXJndW1lbnRzWzBdICsgNTsgfQorCit2YXIgdmFsdWUgPSBtYXRoQ2x6MzJTdHJ1Y3RUcmFu
c2l0aW9uKDQyKTsKK2lmICh2YWx1ZSAhPT0gNDcpCisgICAgdGhyb3cgIm1hdGhDbHozMlN0cnVj
dFRyYW5zaXRpb24oNDIpIGFmdGVyIHRyYW5zaXRpb24gPSAiICsgdmFsdWU7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjJk
YTJhNjhmOGQ2MzJhZDA0YWE4MTllODdiNGQ1NTA0ZDE1MDI2Ni4uYzU0Y2I4YTc0OTA0ZjI2YThm
ZTMzMDAxNDFmYTlhZjMyYTVhMDJmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA0LTI1
ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbSlND
XSBJbXBsZW1lbnQgTWF0aC5jbHozMigpLCByZW1vdmUgTnVtYmVyLmNseigpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQyMDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNpYyBjb25mb3JtYW5jZSB0
ZXN0cy4KKworICAgICAgICAqIGpzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBqcy9tYXRoLWNsejMyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvbWF0aC1jbHozMi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvanMvbnVt
YmVyLWNsei5odG1sLgorICAgICAgICAqIGpzL251bWJlci1jbHotZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1l
cy5qczoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvbWF0aC1jbHozMi5qczogQWRkZWQuCisg
ICAgICAgIChvYmplY3RDb252ZXJ0VG9TdHJpbmcudG9TdHJpbmcpOgorICAgICAgICAob2JqZWN0
UmVjb3JkVG9TdHJpbmdDYWxsLnRvU3RyaW5nKToKKyAgICAgICAgKG9iamVjdFRocm93T25Ub1N0
cmluZy50b1N0cmluZyk6CisgICAgICAgIChvYmplY3RXaXRoVmFsdWVPZi52YWx1ZU9mKToKKyAg
ICAgICAgKG9iamVjdFRocm93T25WYWx1ZU9mLnZhbHVlT2YpOgorICAgICAgICAob2JqZWN0VGhy
b3dPblZhbHVlT2YudG9TdHJpbmcpOgorICAgICAgICAob2JqZWN0UmVjb3JkVmFsdWVPZkNhbGwu
dmFsdWVPZik6CisgICAgICAgIChvYmplY3RSZWNvcmRDb252ZXJzaW9uQ2FsbHMudG9TdHJpbmcp
OgorICAgICAgICAob2JqZWN0UmVjb3JkQ29udmVyc2lvbkNhbGxzLnZhbHVlT2YpOgorICAgICAg
ICAqIGpzL3NjcmlwdC10ZXN0cy9udW1iZXItY2x6LmpzOiBSZW1vdmVkLgorCiAyMDE1LTA0LTIz
ICBCYXNpbGUgQ2xlbWVudCAgPGJhc2lsZV9jbGVtZW50QGFwcGxlLmNvbT4KIAogICAgICAgICBB
bGxvdyBmdW5jdGlvbiBhbGxvY2F0aW9uIHNpbmtpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAppbmRleCBhZWVhODEw
ZTI2OGNlNjNjZTUzYzQ5NTJlOTIyMTk4NGU3MDYzY2JhLi4yZDcwNjc5NzQwNmVlZTNjZDE4NDc0
YzRkNTZhODIwNTZmMWM5NjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0
T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0
LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CkBAIC01MiwxNCArNTIsMTQgQEAgUEFT
UyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN0cmluZy5wcm90b3R5cGUpIGlzIFsnYW5jaG9y
JywgJ2JpZycsICdibGluaycsICcKIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhCb29s
ZWFuKSBpcyBbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoQm9vbGVhbi5wcm90b3R5cGUpIGlzIFsnY29uc3RydWN0b3InLCAndG9T
dHJpbmcnLCAndmFsdWVPZiddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoTnVtYmVy
KSBpcyBbJ0VQU0lMT04nLCAnTUFYX1NBRkVfSU5URUdFUicsICdNQVhfVkFMVUUnLCAnTUlOX1NB
RkVfSU5URUdFUicsICdNSU5fVkFMVUUnLCAnTkVHQVRJVkVfSU5GSU5JVFknLCAnTmFOJywgJ1BP
U0lUSVZFX0lORklOSVRZJywgJ2lzRmluaXRlJywgJ2lzSW50ZWdlcicsICdpc05hTicsICdpc1Nh
ZmVJbnRlZ2VyJywgJ2xlbmd0aCcsICduYW1lJywgJ3BhcnNlRmxvYXQnLCAncGFyc2VJbnQnLCAn
cHJvdG90eXBlJ10KLVBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhOdW1iZXIucHJvdG90
eXBlKSBpcyBbJ2NseicsICdjb25zdHJ1Y3RvcicsICd0b0V4cG9uZW50aWFsJywgJ3RvRml4ZWQn
LCAndG9Mb2NhbGVTdHJpbmcnLCAndG9QcmVjaXNpb24nLCAndG9TdHJpbmcnLCAndmFsdWVPZidd
CitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoTnVtYmVyLnByb3RvdHlwZSkgaXMgWydj
b25zdHJ1Y3RvcicsICd0b0V4cG9uZW50aWFsJywgJ3RvRml4ZWQnLCAndG9Mb2NhbGVTdHJpbmcn
LCAndG9QcmVjaXNpb24nLCAndG9TdHJpbmcnLCAndmFsdWVPZiddCiBQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoRGF0ZSkgaXMgWydVVEMnLCAnbGVuZ3RoJywgJ25hbWUnLCAnbm93Jywg
J3BhcnNlJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRGF0
ZS5wcm90b3R5cGUpIGlzIFsnY29uc3RydWN0b3InLCAnZ2V0RGF0ZScsICdnZXREYXknLCAnZ2V0
RnVsbFllYXInLCAnZ2V0SG91cnMnLCAnZ2V0TWlsbGlzZWNvbmRzJywgJ2dldE1pbnV0ZXMnLCAn
Z2V0TW9udGgnLCAnZ2V0U2Vjb25kcycsICdnZXRUaW1lJywgJ2dldFRpbWV6b25lT2Zmc2V0Jywg
J2dldFVUQ0RhdGUnLCAnZ2V0VVRDRGF5JywgJ2dldFVUQ0Z1bGxZZWFyJywgJ2dldFVUQ0hvdXJz
JywgJ2dldFVUQ01pbGxpc2Vjb25kcycsICdnZXRVVENNaW51dGVzJywgJ2dldFVUQ01vbnRoJywg
J2dldFVUQ1NlY29uZHMnLCAnZ2V0WWVhcicsICdzZXREYXRlJywgJ3NldEZ1bGxZZWFyJywgJ3Nl
dEhvdXJzJywgJ3NldE1pbGxpc2Vjb25kcycsICdzZXRNaW51dGVzJywgJ3NldE1vbnRoJywgJ3Nl
dFNlY29uZHMnLCAnc2V0VGltZScsICdzZXRVVENEYXRlJywgJ3NldFVUQ0Z1bGxZZWFyJywgJ3Nl
dFVUQ0hvdXJzJywgJ3NldFVUQ01pbGxpc2Vjb25kcycsICdzZXRVVENNaW51dGVzJywgJ3NldFVU
Q01vbnRoJywgJ3NldFVUQ1NlY29uZHMnLCAnc2V0WWVhcicsICd0b0RhdGVTdHJpbmcnLCAndG9H
TVRTdHJpbmcnLCAndG9JU09TdHJpbmcnLCAndG9KU09OJywgJ3RvTG9jYWxlRGF0ZVN0cmluZycs
ICd0b0xvY2FsZVN0cmluZycsICd0b0xvY2FsZVRpbWVTdHJpbmcnLCAndG9TdHJpbmcnLCAndG9U
aW1lU3RyaW5nJywgJ3RvVVRDU3RyaW5nJywgJ3ZhbHVlT2YnXQogUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKFJlZ0V4cCkgaXMgWyckJicsICIkJyIsICckKicsICckKycsICckMScsICck
MicsICckMycsICckNCcsICckNScsICckNicsICckNycsICckOCcsICckOScsICckXycsICckYCcs
ICdpbnB1dCcsICdsYXN0TWF0Y2gnLCAnbGFzdFBhcmVuJywgJ2xlZnRDb250ZXh0JywgJ2xlbmd0
aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdwcm90b3R5cGUnLCAncmlnaHRDb250ZXh0J10KIFBB
U1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhSZWdFeHAucHJvdG90eXBlKSBpcyBbJ2NvbXBp
bGUnLCAnY29uc3RydWN0b3InLCAnZXhlYycsICdnbG9iYWwnLCAnaWdub3JlQ2FzZScsICdsYXN0
SW5kZXgnLCAnbXVsdGlsaW5lJywgJ3NvdXJjZScsICd0ZXN0JywgJ3RvU3RyaW5nJ10KIFBBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhFcnJvcikgaXMgWydsZW5ndGgnLCAnbmFtZScsICdw
cm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEVycm9yLnByb3RvdHlw
ZSkgaXMgWydjb25zdHJ1Y3RvcicsICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXQotUEFT
UyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKE1hdGgpIGlzIFsnRScsJ0xOMTAnLCdMTjInLCdM
T0cxMEUnLCdMT0cyRScsJ1BJJywnU1FSVDFfMicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3No
JywnYXNpbicsJ2FzaW5oJywnYXRhbicsJ2F0YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2Nv
cycsJ2Nvc2gnLCdleHAnLCdleHBtMScsJ2Zsb29yJywnZnJvdW5kJywnaHlwb3QnLCdpbXVsJywn
bG9nJywnbG9nMTAnLCdsb2cxcCcsJ2xvZzInLCdtYXgnLCdtaW4nLCdwb3cnLCdyYW5kb20nLCdy
b3VuZCcsJ3NpZ24nLCdzaW4nLCdzaW5oJywnc3FydCcsJ3RhbicsJ3RhbmgnLCd0cnVuYyddCitQ
QVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoTWF0aCkgaXMgWydFJywnTE4xMCcsJ0xOMics
J0xPRzEwRScsJ0xPRzJFJywnUEknLCdTUVJUMV8yJywnU1FSVDInLCdhYnMnLCdhY29zJywnYWNv
c2gnLCdhc2luJywnYXNpbmgnLCdhdGFuJywnYXRhbjInLCdhdGFuaCcsJ2NicnQnLCdjZWlsJywn
Y2x6MzInLCdjb3MnLCdjb3NoJywnZXhwJywnZXhwbTEnLCdmbG9vcicsJ2Zyb3VuZCcsJ2h5cG90
JywnaW11bCcsJ2xvZycsJ2xvZzEwJywnbG9nMXAnLCdsb2cyJywnbWF4JywnbWluJywncG93Jywn
cmFuZG9tJywncm91bmQnLCdzaWduJywnc2luJywnc2luaCcsJ3NxcnQnLCd0YW4nLCd0YW5oJywn
dHJ1bmMnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEpTT04pIGlzIFsncGFyc2Un
LCAnc3RyaW5naWZ5J10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTeW1ib2wpIGlz
IFsnZm9yJywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5
cGUnLCAndW5zY29wYWJsZXMnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN5bWJv
bC5wcm90b3R5cGUpIGlzIFsnY29uc3RydWN0b3InLCAndG9TdHJpbmcnLCAndmFsdWVPZiddCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9tYXRoLWNsejMyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL21hdGgtY2x6MzItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZjNlNDRhMzE1
ZTI4NWM2NDI5YWM3ODY2MDgwNTcxNzJiNGVlYTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9tYXRoLWNsejMyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACitUZXN0IHRo
ZSBiYXNpYyBiZWhhdmlvcnMgb2YgTWF0aC5jbHozMigpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIE1hdGguaGFzT3duUHJvcGVydHkoImNsejMyIikgaXMgdHJ1ZQorUEFT
UyB0eXBlb2YgTWF0aC5jbHozMiBpcyAiZnVuY3Rpb24iCitQQVNTIE9iamVjdC5nZXRQcm90b3R5
cGVPZihNYXRoKS5jbHozMiBpcyB1bmRlZmluZWQKK1BBU1MgTWF0aC5jbHozMi5sZW5ndGggaXMg
MQorUEFTUyBNYXRoLmNsejMyLm5hbWUgaXMgImNsejMyIgorUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKE1hdGgsICJjbHozMiIpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTWF0aCwgImNsejMyIikuZW51bWVyYWJs
ZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE1hdGgsICJj
bHozMiIpLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgTWF0aC5jbHozMigwKSBpcyAzMgorUEFTUyBN
YXRoLmNsejMyKC0wKSBpcyAzMgorUEFTUyBNYXRoLmNsejMyKDEpIGlzIDMxCitQQVNTIE1hdGgu
Y2x6MzIoLTEpIGlzIDAKK1BBU1MgTWF0aC5jbHozMig0MikgaXMgMjYKK1BBU1MgTWF0aC5jbHoz
MigtMjE0NzQ4MzY0OCkgaXMgMAorUEFTUyBNYXRoLmNsejMyKDIxNDc0ODM2NDcpIGlzIDEKK1BB
U1MgTWF0aC5jbHozMihOdW1iZXIuTUFYX1ZBTFVFKSBpcyAzMgorUEFTUyBNYXRoLmNsejMyKE51
bWJlci5NSU5fVkFMVUUpIGlzIDMyCitQQVNTIE1hdGguY2x6MzIoTnVtYmVyLk1BWF9TQUZFX0lO
VEVHRVIpIGlzIDAKK1BBU1MgTWF0aC5jbHozMihOdW1iZXIuTUlOX1NBRkVfSU5URUdFUikgaXMg
MzEKK1BBU1MgTWF0aC5jbHozMihNYXRoLlBJKSBpcyAzMAorUEFTUyBNYXRoLmNsejMyKE1hdGgu
RSkgaXMgMzAKK1BBU1MgTWF0aC5jbHozMihOYU4pIGlzIDMyCitQQVNTIE1hdGguY2x6MzIoTnVt
YmVyLlBPU0lUSVZFX0lORklOSVRJKSBpcyAzMgorUEFTUyBNYXRoLmNsejMyKE51bWJlci5ORUdB
VElWRV9JTkZJTklUSSkgaXMgMzIKK1BBU1MgTWF0aC5jbHozMigpIGlzIDMyCitQQVNTIE1hdGgu
Y2x6MzIodW5kZWZpbmVkKSBpcyAzMgorUEFTUyBNYXRoLmNsejMyKG51bGwpIGlzIDMyCitQQVNT
IE1hdGguY2x6MzIoIldlYktpdCIpIGlzIDMyCitQQVNTIE1hdGguY2x6MzIoU3ltYm9sKCJXZWJL
aXQiKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgTWF0aC5j
bHozMih7IHdlYmtpdDogImF3ZXNvbWUiIH0pIGlzIDMyCitQQVNTIE1hdGguY2x6MzIob2JqZWN0
Q29udmVydFRvU3RyaW5nKSBpcyAyNQorUEFTUyBNYXRoLmNsejMyKG9iamVjdFJlY29yZFRvU3Ry
aW5nQ2FsbCkgaXMgMjgKK1BBU1Mgb2JqZWN0UmVjb3JkVG9TdHJpbmdDYWxsLnRvU3RyaW5nQ2Fs
bENvdW50IGlzIDEKK1BBU1MgTWF0aC5jbHozMihvYmplY3RUaHJvd09uVG9TdHJpbmcpIHRocmV3
IGV4Y2VwdGlvbiBObyEuCitQQVNTIE1hdGguY2x6MzIob2JqZWN0V2l0aFZhbHVlT2YpIGlzIDE1
CitQQVNTIE1hdGguY2x6MzIob2JqZWN0VGhyb3dPblZhbHVlT2YpIHRocmV3IGV4Y2VwdGlvbiBO
b3BlIS4KK1BBU1MgTWF0aC5jbHozMihvYmplY3RSZWNvcmRWYWx1ZU9mQ2FsbCkgaXMgMjMKK1BB
U1Mgb2JqZWN0UmVjb3JkVmFsdWVPZkNhbGwudmFsdWVPZkNhbGxDb3VudCBpcyAxCitQQVNTIE1h
dGguY2x6MzIob2JqZWN0UmVjb3JkQ29udmVyc2lvbkNhbGxzKSBpcyAxNQorUEFTUyBvYmplY3RS
ZWNvcmRDb252ZXJzaW9uQ2FsbHMuY2FsbExpc3QudG9TdHJpbmcoKSBpcyAidmFsdWVPZiIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9tYXRoLWNsejMyLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9tYXRo
LWNsejMyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM2MWYzYjM4MmFmMWFiYTJmZGRmZmQxNjY0YzBkZGE1
NTIxZDRjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL21hdGgtY2x6MzIuaHRt
bApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbWF0aC1jbHozMi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9udW1iZXItY2x6LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL251bWJlci1jbHotZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWU3NGJmYWU1NTA3M2UxYWM4NzlmMjQ4NmJlYmEx
Yzc4MGQwMDJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2pzL251bWJlci1jbHotZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTUgKzAsMCBAQAotUEFTUyBOdW1iZXIoSW5maW5pdHkpLmNseigpIGlzIEluZmluaXR5Ci1Q
QVNTIE51bWJlcigtSW5maW5pdHkpLmNseigpIGlzIC1JbmZpbml0eQotUEFTUyBOdW1iZXIoTmFO
KS5jbHooKSBpcyBOYU4KLVBBU1MgTnVtYmVyKDApLmNseigpIGlzIDMyCi1QQVNTIE51bWJlcigx
KS5jbHooKSBpcyAzMQotUEFTUyBOdW1iZXIoMjE0NzQ4MzY0OCkuY2x6KCkgaXMgMAotUEFTUyBO
dW1iZXIoMjE0NzQ4MzY0NykuY2x6KCkgaXMgMQotUEFTUyBOdW1iZXIoMTA3Mzc0MTgyNCkuY2x6
KCkgaXMgMQotUEFTUyBOdW1iZXIoMTA3Mzc0MTgyMykuY2x6KCkgaXMgMgotUEFTUyBOdW1iZXIo
MzI3NjgpLmNseigpIGlzIDE2Ci1QQVNTIE51bWJlcigzMjc2NykuY2x6KCkgaXMgMTcKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9udW1iZXItY2x6Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9udW1iZXIt
Y2x6Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYWJjMDhlYjc4YzU5Yjc4
NzMzYjEyYzMwMTNjNzM1NTBhNmViYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvbnVtYmVyLWNsei5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL251bWJlci1jbHouanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5h
bWVzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0
eU5hbWVzLmpzCmluZGV4IGM5OTExODlhMmMxNDk3ZmZiY2FhNmJkYzIxNjFkN2MzMjgzNzcwOWMu
LjUwMGM1ODMyMjdiYmZkZDMxOTBkZDcyYWY3NGU0OTk1ODg3MzJmOWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFt
ZXMuanMKQEAgLTYxLDE0ICs2MSwxNCBAQCB2YXIgZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0ID0g
ewogICAgICJCb29sZWFuIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAogICAg
ICJCb29sZWFuLnByb3RvdHlwZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVl
T2YnXSIsCiAgICAgIk51bWJlciI6ICJbJ0VQU0lMT04nLCAnTUFYX1NBRkVfSU5URUdFUicsICdN
QVhfVkFMVUUnLCAnTUlOX1NBRkVfSU5URUdFUicsICdNSU5fVkFMVUUnLCAnTkVHQVRJVkVfSU5G
SU5JVFknLCAnTmFOJywgJ1BPU0lUSVZFX0lORklOSVRZJywgJ2lzRmluaXRlJywgJ2lzSW50ZWdl
cicsICdpc05hTicsICdpc1NhZmVJbnRlZ2VyJywgJ2xlbmd0aCcsICduYW1lJywgJ3BhcnNlRmxv
YXQnLCAncGFyc2VJbnQnLCAncHJvdG90eXBlJ10iLAotICAgICJOdW1iZXIucHJvdG90eXBlIjog
IlsnY2x6JywgJ2NvbnN0cnVjdG9yJywgJ3RvRXhwb25lbnRpYWwnLCAndG9GaXhlZCcsICd0b0xv
Y2FsZVN0cmluZycsICd0b1ByZWNpc2lvbicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10iLAorICAg
ICJOdW1iZXIucHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAndG9FeHBvbmVudGlhbCcsICd0
b0ZpeGVkJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvUHJlY2lzaW9uJywgJ3RvU3RyaW5nJywgJ3Zh
bHVlT2YnXSIsCiAgICAgIkRhdGUiOiAiWydVVEMnLCAnbGVuZ3RoJywgJ25hbWUnLCAnbm93Jywg
J3BhcnNlJywgJ3Byb3RvdHlwZSddIiwKICAgICAiRGF0ZS5wcm90b3R5cGUiOiAiWydjb25zdHJ1
Y3RvcicsICdnZXREYXRlJywgJ2dldERheScsICdnZXRGdWxsWWVhcicsICdnZXRIb3VycycsICdn
ZXRNaWxsaXNlY29uZHMnLCAnZ2V0TWludXRlcycsICdnZXRNb250aCcsICdnZXRTZWNvbmRzJywg
J2dldFRpbWUnLCAnZ2V0VGltZXpvbmVPZmZzZXQnLCAnZ2V0VVRDRGF0ZScsICdnZXRVVENEYXkn
LCAnZ2V0VVRDRnVsbFllYXInLCAnZ2V0VVRDSG91cnMnLCAnZ2V0VVRDTWlsbGlzZWNvbmRzJywg
J2dldFVUQ01pbnV0ZXMnLCAnZ2V0VVRDTW9udGgnLCAnZ2V0VVRDU2Vjb25kcycsICdnZXRZZWFy
JywgJ3NldERhdGUnLCAnc2V0RnVsbFllYXInLCAnc2V0SG91cnMnLCAnc2V0TWlsbGlzZWNvbmRz
JywgJ3NldE1pbnV0ZXMnLCAnc2V0TW9udGgnLCAnc2V0U2Vjb25kcycsICdzZXRUaW1lJywgJ3Nl
dFVUQ0RhdGUnLCAnc2V0VVRDRnVsbFllYXInLCAnc2V0VVRDSG91cnMnLCAnc2V0VVRDTWlsbGlz
ZWNvbmRzJywgJ3NldFVUQ01pbnV0ZXMnLCAnc2V0VVRDTW9udGgnLCAnc2V0VVRDU2Vjb25kcycs
ICdzZXRZZWFyJywgJ3RvRGF0ZVN0cmluZycsICd0b0dNVFN0cmluZycsICd0b0lTT1N0cmluZycs
ICd0b0pTT04nLCAndG9Mb2NhbGVEYXRlU3RyaW5nJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvTG9j
YWxlVGltZVN0cmluZycsICd0b1N0cmluZycsICd0b1RpbWVTdHJpbmcnLCAndG9VVENTdHJpbmcn
LCAndmFsdWVPZiddIiwKICAgICAiUmVnRXhwIjogIlsnJCYnLCBcIiQnXCIsICckKicsICckKycs
ICckMScsICckMicsICckMycsICckNCcsICckNScsICckNicsICckNycsICckOCcsICckOScsICck
XycsICckYCcsICdpbnB1dCcsICdsYXN0TWF0Y2gnLCAnbGFzdFBhcmVuJywgJ2xlZnRDb250ZXh0
JywgJ2xlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdwcm90b3R5cGUnLCAncmlnaHRDb250
ZXh0J10iLAogICAgICJSZWdFeHAucHJvdG90eXBlIjogIlsnY29tcGlsZScsICdjb25zdHJ1Y3Rv
cicsICdleGVjJywgJ2dsb2JhbCcsICdpZ25vcmVDYXNlJywgJ2xhc3RJbmRleCcsICdtdWx0aWxp
bmUnLCAnc291cmNlJywgJ3Rlc3QnLCAndG9TdHJpbmcnXSIsCiAgICAgIkVycm9yIjogIlsnbGVu
Z3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAogICAgICJFcnJvci5wcm90b3R5cGUiOiAiWydj
b25zdHJ1Y3RvcicsICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXSIsCi0gICAgIk1hdGgi
OiAiWydFJywnTE4xMCcsJ0xOMicsJ0xPRzEwRScsJ0xPRzJFJywnUEknLCdTUVJUMV8yJywnU1FS
VDInLCdhYnMnLCdhY29zJywnYWNvc2gnLCdhc2luJywnYXNpbmgnLCdhdGFuJywnYXRhbjInLCdh
dGFuaCcsJ2NicnQnLCdjZWlsJywnY29zJywnY29zaCcsJ2V4cCcsJ2V4cG0xJywnZmxvb3InLCdm
cm91bmQnLCdoeXBvdCcsJ2ltdWwnLCdsb2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9nMicsJ21heCcs
J21pbicsJ3BvdycsJ3JhbmRvbScsJ3JvdW5kJywnc2lnbicsJ3NpbicsJ3NpbmgnLCdzcXJ0Jywn
dGFuJywndGFuaCcsJ3RydW5jJ10iLAorICAgICJNYXRoIjogIlsnRScsJ0xOMTAnLCdMTjInLCdM
T0cxMEUnLCdMT0cyRScsJ1BJJywnU1FSVDFfMicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3No
JywnYXNpbicsJ2FzaW5oJywnYXRhbicsJ2F0YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2Ns
ejMyJywnY29zJywnY29zaCcsJ2V4cCcsJ2V4cG0xJywnZmxvb3InLCdmcm91bmQnLCdoeXBvdCcs
J2ltdWwnLCdsb2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9nMicsJ21heCcsJ21pbicsJ3BvdycsJ3Jh
bmRvbScsJ3JvdW5kJywnc2lnbicsJ3NpbicsJ3NpbmgnLCdzcXJ0JywndGFuJywndGFuaCcsJ3Ry
dW5jJ10iLAogICAgICJKU09OIjogIlsncGFyc2UnLCAnc3RyaW5naWZ5J10iLAogICAgICJTeW1i
b2wiOiAiWydmb3InLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3By
b3RvdHlwZScsICd1bnNjb3BhYmxlcyddIiwKICAgICAiU3ltYm9sLnByb3RvdHlwZSI6ICJbJ2Nv
bnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9tYXRoLWNsejMyLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL21hdGgtY2x6MzIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFhNmJjZTBmNjhmZWM1ZDQ3NmM4ZWJi
N2MyMmMwM2Y1M2UzZjY3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9tYXRoLWNsejMyLmpzCkBAIC0wLDAgKzEsNzUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0
IHRoZSBiYXNpYyBiZWhhdmlvcnMgb2YgTWF0aC5jbHozMigpIik7CisKK3Nob3VsZEJlVHJ1ZSgn
TWF0aC5oYXNPd25Qcm9wZXJ0eSgiY2x6MzIiKScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0
eXBlb2YgTWF0aC5jbHozMicsICdmdW5jdGlvbicpOworc2hvdWxkQmUoJ09iamVjdC5nZXRQcm90
b3R5cGVPZihNYXRoKS5jbHozMicsICd1bmRlZmluZWQnKTsKKworLy8gRnVuY3Rpb24gcHJvcGVy
dGllcy4KK3Nob3VsZEJlKCdNYXRoLmNsejMyLmxlbmd0aCcsICcxJyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ01hdGguY2x6MzIubmFtZScsICdjbHozMicpCitzaG91bGRCZSgnT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihNYXRoLCAiY2x6MzIiKS5jb25maWd1cmFibGUnLCAndHJ1
ZScpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTWF0aCwgImNs
ejMyIikuZW51bWVyYWJsZScsICdmYWxzZScpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoTWF0aCwgImNsejMyIikud3JpdGFibGUnLCAndHJ1ZScpOworCisvLyBT
b21lIHNpbXBsZSBjYXNlcy4KK3Nob3VsZEJlKCdNYXRoLmNsejMyKDApJywgJzMyJyk7CitzaG91
bGRCZSgnTWF0aC5jbHozMigtMCknLCAnMzInKTsKK3Nob3VsZEJlKCdNYXRoLmNsejMyKDEpJywg
JzMxJyk7CitzaG91bGRCZSgnTWF0aC5jbHozMigtMSknLCAnMCcpOworc2hvdWxkQmUoJ01hdGgu
Y2x6MzIoNDIpJywgJzI2Jyk7CitzaG91bGRCZSgnTWF0aC5jbHozMigtMjE0NzQ4MzY0OCknLCAn
MCcpOworc2hvdWxkQmUoJ01hdGguY2x6MzIoMjE0NzQ4MzY0NyknLCAnMScpOworCitzaG91bGRC
ZSgnTWF0aC5jbHozMihOdW1iZXIuTUFYX1ZBTFVFKScsICczMicpOworc2hvdWxkQmUoJ01hdGgu
Y2x6MzIoTnVtYmVyLk1JTl9WQUxVRSknLCAnMzInKTsKK3Nob3VsZEJlKCdNYXRoLmNsejMyKE51
bWJlci5NQVhfU0FGRV9JTlRFR0VSKScsICcwJyk7CitzaG91bGRCZSgnTWF0aC5jbHozMihOdW1i
ZXIuTUlOX1NBRkVfSU5URUdFUiknLCAnMzEnKTsKKworc2hvdWxkQmUoJ01hdGguY2x6MzIoTWF0
aC5QSSknLCAnMzAnKTsKK3Nob3VsZEJlKCdNYXRoLmNsejMyKE1hdGguRSknLCAnMzAnKTsKK3No
b3VsZEJlKCdNYXRoLmNsejMyKE5hTiknLCAnMzInKTsKK3Nob3VsZEJlKCdNYXRoLmNsejMyKE51
bWJlci5QT1NJVElWRV9JTkZJTklUSSknLCAnMzInKTsKK3Nob3VsZEJlKCdNYXRoLmNsejMyKE51
bWJlci5ORUdBVElWRV9JTkZJTklUSSknLCAnMzInKTsKKworc2hvdWxkQmUoJ01hdGguY2x6MzIo
KScsICczMicpOworc2hvdWxkQmUoJ01hdGguY2x6MzIodW5kZWZpbmVkKScsICczMicpOworc2hv
dWxkQmUoJ01hdGguY2x6MzIobnVsbCknLCAnMzInKTsKK3Nob3VsZEJlKCdNYXRoLmNsejMyKCJX
ZWJLaXQiKScsICczMicpOworc2hvdWxkVGhyb3coJ01hdGguY2x6MzIoU3ltYm9sKCJXZWJLaXQi
KSknKTsKK3Nob3VsZEJlKCdNYXRoLmNsejMyKHsgd2Via2l0OiAiYXdlc29tZSIgfSknLCAnMzIn
KTsKKworLy8gVHlwZSBjb252ZXJzaW9uLgordmFyIG9iamVjdENvbnZlcnRUb1N0cmluZyA9IHsg
dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gIjY2IjsgfSB9Oworc2hvdWxkQmUoJ01hdGgu
Y2x6MzIob2JqZWN0Q29udmVydFRvU3RyaW5nKScsICcyNScpOworCit2YXIgb2JqZWN0UmVjb3Jk
VG9TdHJpbmdDYWxsID0geyB0b1N0cmluZ0NhbGxDb3VudDogMCwgdG9TdHJpbmc6IGZ1bmN0aW9u
KCkgeyB0aGlzLnRvU3RyaW5nQ2FsbENvdW50ICs9IDE7IHJldHVybiAiOSI7IH0gfTsKK3Nob3Vs
ZEJlKCdNYXRoLmNsejMyKG9iamVjdFJlY29yZFRvU3RyaW5nQ2FsbCknLCAnMjgnKTsKK3Nob3Vs
ZEJlKCdvYmplY3RSZWNvcmRUb1N0cmluZ0NhbGwudG9TdHJpbmdDYWxsQ291bnQnLCAnMScpOwor
Cit2YXIgb2JqZWN0VGhyb3dPblRvU3RyaW5nID0geyB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRo
cm93ICJObyEiOyB9IH07CitzaG91bGRUaHJvdygnTWF0aC5jbHozMihvYmplY3RUaHJvd09uVG9T
dHJpbmcpJyk7CisKK3ZhciBvYmplY3RXaXRoVmFsdWVPZiA9IHsgdmFsdWVPZjogZnVuY3Rpb24o
KSB7IHJldHVybiA5NTAxNDsgfSB9Oworc2hvdWxkQmUoJ01hdGguY2x6MzIob2JqZWN0V2l0aFZh
bHVlT2YpJywgJzE1Jyk7CisKK3ZhciBvYmplY3RUaHJvd09uVmFsdWVPZiA9IHsgdmFsdWVPZjog
ZnVuY3Rpb24oKSB7IHRocm93ICJOb3BlISIgfSwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1
cm4gNTsgfSB9Oworc2hvdWxkVGhyb3coJ01hdGguY2x6MzIob2JqZWN0VGhyb3dPblZhbHVlT2Yp
Jyk7CisKKwordmFyIG9iamVjdFJlY29yZFZhbHVlT2ZDYWxsID0geyB2YWx1ZU9mQ2FsbENvdW50
OiAwLCB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgKyt0aGlzLnZhbHVlT2ZDYWxsQ291bnQ7IHJldHVy
biA0MzY7IH0gfQorc2hvdWxkQmUoJ01hdGguY2x6MzIob2JqZWN0UmVjb3JkVmFsdWVPZkNhbGwp
JywgJzIzJyk7CitzaG91bGRCZSgnb2JqZWN0UmVjb3JkVmFsdWVPZkNhbGwudmFsdWVPZkNhbGxD
b3VudCcsICcxJyk7CisKK3ZhciBvYmplY3RSZWNvcmRDb252ZXJzaW9uQ2FsbHMgPSB7CisgICAg
Y2FsbExpc3Q6IFtdLAorICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5j
YWxsTGlzdC5wdXNoKCJ0b1N0cmluZyIpOworICAgICAgICByZXR1cm4gIlVoPyI7CisgICAgfSwK
KyAgICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5jYWxsTGlzdC5wdXNoKCJ2
YWx1ZU9mIik7CisgICAgICAgIHJldHVybiA4NzY2NTsKKyAgICB9Cit9Oworc2hvdWxkQmUoJ01h
dGguY2x6MzIob2JqZWN0UmVjb3JkQ29udmVyc2lvbkNhbGxzKScsICcxNScpOworc2hvdWxkQmUo
J29iamVjdFJlY29yZENvbnZlcnNpb25DYWxscy5jYWxsTGlzdC50b1N0cmluZygpJywgJyJ2YWx1
ZU9mIicpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9udW1iZXItY2x6LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL251bWJlci1jbHouanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5YjI2
N2ZiZDUyODBkZmI5YzNmZjA4NThiZWYzOTAxYzc3ZTA5MjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL251
bWJlci1jbHouanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1zaG91bGRCZSgiTnVt
YmVyKEluZmluaXR5KS5jbHooKSIsIkluZmluaXR5Iik7Ci1zaG91bGRCZSgiTnVtYmVyKC1JbmZp
bml0eSkuY2x6KCkiLCItSW5maW5pdHkiKTsKLXNob3VsZEJlKCJOdW1iZXIoTmFOKS5jbHooKSIs
Ik5hTiIpOwotc2hvdWxkQmUoIk51bWJlcigwKS5jbHooKSIsIjMyIik7Ci1zaG91bGRCZSgiTnVt
YmVyKDEpLmNseigpIiwiMzEiKTsKLXNob3VsZEJlKCJOdW1iZXIoMjE0NzQ4MzY0OCkuY2x6KCki
LCIwIik7Ci1zaG91bGRCZSgiTnVtYmVyKDIxNDc0ODM2NDcpLmNseigpIiwiMSIpOwotc2hvdWxk
QmUoIk51bWJlcigxMDczNzQxODI0KS5jbHooKSIsIjEiKTsKLXNob3VsZEJlKCJOdW1iZXIoMTA3
Mzc0MTgyMykuY2x6KCkiLCIyIik7Ci1zaG91bGRCZSgiTnVtYmVyKDMyNzY4KS5jbHooKSIsIjE2
Iik7Ci1zaG91bGRCZSgiTnVtYmVyKDMyNzY3KS5jbHooKSIsIjE3Iik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>