<?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>183403</bug_id>
          
          <creation_ts>2018-03-07 04:00:31 -0800</creation_ts>
          <short_desc>[JSC] Add more JSType based fast path for jsDynamicCast</short_desc>
          <delta_ts>2018-03-07 13:33:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404309</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 04:00:31 -0800</bug_when>
    <thetext>[JSC] Add more JSType based fast path for jsDynamicCast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404311</commentid>
    <comment_count>1</comment_count>
      <attachid>335183</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 04:16:56 -0800</bug_when>
    <thetext>Created attachment 335183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404339</commentid>
    <comment_count>2</comment_count>
      <attachid>335183</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-07 07:41:15 -0800</bug_when>
    <thetext>Comment on attachment 335183
Patch

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

Nice work.  r=me if you resolve EWS failures.

&gt; Source/JavaScriptCore/runtime/JSObject.h:1100
&gt;  // storage to fully make use of the colloctor cell containing it.

Can you fix this typo as well: /colloctor/collector/.

&gt; Source/JavaScriptCore/runtime/JSScope.h:43
&gt; +    DECLARE_INFO;

I suspect that you need to use DECLARE_EXPORT_INFO here (see EWS build failure).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404343</commentid>
    <comment_count>3</comment_count>
      <attachid>335183</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 07:59:15 -0800</bug_when>
    <thetext>Comment on attachment 335183
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/JSObject.h:1100
&gt;&gt;  // storage to fully make use of the colloctor cell containing it.
&gt; 
&gt; Can you fix this typo as well: /colloctor/collector/.

Fixed. Also I fixed /sufficent/sufficient/.

&gt;&gt; Source/JavaScriptCore/runtime/JSScope.h:43
&gt;&gt; +    DECLARE_INFO;
&gt; 
&gt; I suspect that you need to use DECLARE_EXPORT_INFO here (see EWS build failure).

Yeah, I think so. I&apos;ll upload &quot;Patch for landing&quot; to check it on EWS :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404344</commentid>
    <comment_count>4</comment_count>
      <attachid>335192</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 08:00:10 -0800</bug_when>
    <thetext>Created attachment 335192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404345</commentid>
    <comment_count>5</comment_count>
      <attachid>335192</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 08:01:00 -0800</bug_when>
    <thetext>Comment on attachment 335192
Patch

Oops, cleared r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404359</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 09:18:15 -0800</bug_when>
    <thetext>OK, let&apos;s land it :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404360</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 09:18:56 -0800</bug_when>
    <thetext>Committed r229362: &lt;https://trac.webkit.org/changeset/229362&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404362</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-07 09:21:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/38224191&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404456</commentid>
    <comment_count>9</comment_count>
      <attachid>335192</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-03-07 13:33:06 -0800</bug_when>
    <thetext>Comment on attachment 335192
Patch

Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335183</attachid>
            <date>2018-03-07 04:16:56 -0800</date>
            <delta_ts>2018-03-07 08:00:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183403-20180307211655.patch</filename>
            <type>text/plain</type>
            <size>41849</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZDk0NWIyMzg5NjczNjZkNzY2NzJiZGQ3ZWMxMDRmMmY1ZjdmYTc0Li4yODBiMzllZTNmMzM0NzJj
MmE4YTJhZTNiZmZjZDI1NzU5ZDUxODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDEgQEAKKzIwMTgtMDMtMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIG1vcmUgSlNUeXBlIGJhc2VkIGZhc3QgcGF0aCBm
b3IganNEeW5hbWljQ2FzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzNDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgYWRkIG1vcmUgSlNUeXBlIGJhc2VkIGZhc3QgcGF0aCBmb3IganNEeW5hbWlj
Q2FzdC4gQmFzaWNhbGx5LCB3ZSBhZGQgbWlzY2VsbGFuZW91cyBKU1R5cGVzIHdoaWNoCisgICAg
ICAgIGFyZSB1c2VkIGZvciBqc0R5bmFtaWNDYXN0IGluIEpTQywgYXJndW1lbnRzIHR5cGVzLCBh
bmQgc2NvcGUgdHlwZXMuCisKKyAgICAgICAgV2UgYWxzbyBhZGQgQ2xhc3NJbmZvIHRvIEpTU2Nv
cGUgYW5kIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Qgc2luY2UgdGhleSBhcmUgdXNlZCB3aXRo
IGpzRHluYW1pY0Nhc3QuCisKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6c2V0
VXBDYWxsKToKKyAgICAgICAgKiBydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5oOgorICAgICAgICAo
SlNDOjpDbG9uZWRBcmd1bWVudHM6OnNwZWNpYWxzTWF0ZXJpYWxpemVkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0RpcmVjdEFyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpE
aXJlY3RBcmd1bWVudHM6OnN1YnNwYWNlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGly
ZWN0QXJndW1lbnRzOjppbnRlcm5hbExlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRpcmVjdEFyZ3VtZW50czo6bGVuZ3RoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6RGlyZWN0QXJndW1lbnRzOjppc01hcHBlZEFyZ3VtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjppc01hcHBlZEFyZ3VtZW50SW5ERkcgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OmdldEluZGV4UXVpY2ts
eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6c2V0SW5k
ZXhRdWlja2x5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjpjYWxs
ZWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OmFyZ3VtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjpvdmVycm9kZVRoaW5ncyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6aW5pdE1vZGlm
aWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6RGlyZWN0QXJndW1lbnRzOjpzZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6aXNNb2RpZmllZEFyZ3VtZW50RGVz
Y3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6b2Zmc2V0
T2ZDYWxsZWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6Om9mZnNl
dE9mTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjpvZmZz
ZXRPZk1pbkNhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRz
OjpvZmZzZXRPZk1hcHBlZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVj
dEFyZ3VtZW50czo6b2Zmc2V0T2ZNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3IpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mU2xvdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6YWxsb2NhdGlvblNpemUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNDYXN0Lmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbExleGlj
YWxFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbExleGljYWxFbnZpcm9ubWVu
dDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQ6OmlzRW1wdHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dsb2JhbExl
eGljYWxFbnZpcm9ubWVudDo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQ6OkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50
aW1lL0pTTWFwLmg6CisgICAgICAgIChKU0M6OmlzSlNNYXApOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjpKU01vZHVsZUVu
dmlyb25tZW50OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU01vZHVsZUVudmly
b25tZW50OjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU01vZHVs
ZUVudmlyb25tZW50OjpvZmZzZXRPZk1vZHVsZVJlY29yZCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkpTTW9kdWxlRW52aXJvbm1lbnQ6OmFsbG9jYXRpb25TaXplKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SlNNb2R1bGVFbnZpcm9ubWVudDo6bW9kdWxlUmVjb3JkKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SlNNb2R1bGVFbnZpcm9ubWVudDo6bW9kdWxlUmVjb3JkU2xvdCk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNhbkRv
RmFzdFB1dERpcmVjdEluZGV4KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlZmluZU93bklu
ZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RJbmRleFNs
b3dPckJleW9uZFZlY3Rvckxlbmd0aCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU0ZpbmFsT2JqZWN0OjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkpTRmluYWxPYmplY3Q6OnR5cGVJbmZvKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6SlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SlNGaW5hbE9iamVjdDo6bWF4SW5saW5lQ2FwYWNpdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpKU0ZpbmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkpTRmluYWxPYmplY3Q6OkpTRmluYWxPYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjppc0pTRmluYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
SlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmg6CisgICAgICAgICogcnVu
dGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU2V0Lmg6Cisg
ICAgICAgIChKU0M6OmlzSlNTZXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBl
Lmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuaDoKKyAgICAgICAgKEpTQzo6aXNKU1dl
YWtNYXApOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrU2V0Lmg6CisgICAgICAg
IChKU0M6OmlzSlNXZWFrU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTV2l0aFNj
b3BlLmg6CisgICAgICAgIChKU0M6OkpTV2l0aFNjb3BlOjpvYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RNYXApOgorICAgICAgICAoSlNDOjptYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0TWFwKToK
KyAgICAgICAgKiBydW50aW1lL051bWJlck9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Ok51bWJl
ck9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6dG9UaGlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6bnVt
YmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCk6CisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVu
Y1RvRml4ZWQpOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbik6Cisg
ICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6bnVt
YmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1
bmNWYWx1ZU9mKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JTZWFsKToKKyAgICAgICAgKEpTQzo6b2JqZWN0
Q29uc3RydWN0b3JGcmVlemUpOgorICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvcklzU2Vh
bGVkKToKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JJc0Zyb3plbik6CisgICAgICAg
ICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1bWVudHMuaDoKKyAg
ICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpzdWJzcGFjZUZvcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aW50ZXJuYWxMZW5ndGggY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVudHM6Omxlbmd0aCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aXNNYXBwZWRBcmd1bWVudCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aXNNYXBwZWRBcmd1bWVu
dEluREZHIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpn
ZXRJbmRleFF1aWNrbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1
bWVudHM6OnNldEluZGV4UXVpY2tseSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFy
Z3VtZW50czo6Y2FsbGVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRz
OjpvdmVycm9kZVRoaW5ncyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFy
Z3VtZW50czo6aW5pdE1vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpzZXRNb2RpZmllZEFyZ3VtZW50
RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aXNN
b2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3Bl
ZEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5ncyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUYWJsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTY29wZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b3ZlcmZsb3dTdG9yYWdlT2Zmc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b3ZlcmZsb3dTdG9yYWdlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0U2V0KToKKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1bmNTZXRC
dWNrZXRIZWFkKToKKyAgICAgICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OmdldFNldCk6CisgICAgICAgICogcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5o
OgorICAgICAgICAoSlNDOjpTdHJpY3RFdmFsQWN0aXZhdGlvbjo6Y3JlYXRlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVyZSk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAg
KEpTQzo6Z2V0V2Vha01hcCk6CisgICAgICAgICogcnVudGltZS9XZWFrU2V0UHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6Z2V0V2Vha1NldCk6CisKIDIwMTgtMDMtMDcgIERvbWluaWsgSW5m
dWVociAgPGRpbmZ1ZWhyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FSTV0gb2ZmbGluZWFzbTog
Zml4IGluZGVudGF0aW9uIGluIGFybU9wY29kZVJldmVyc2VkT3BlcmFuZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGI1ZGUwMjNmYzIzYjdlNDhi
ZjY0YzNkMDI1NjY0ZmI2ZDRkZDQ4ZTUuLjQxMjJjYTlkMGYwNjIyMzRjYzliZDVmNzMxNjlhZTRh
OTc2ZjMzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cApAQCAtOTM4LDE0ICs5MzgsMTQgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTGlua0NhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDYWxsTGkKICAgICBKU1Zh
bHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgp
OwogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxl
ZUFzVmFsdWUpOwogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpIHsKLSAgICAgICAgaWYg
KGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgp
ID09IEludGVybmFsRnVuY3Rpb25UeXBlKSB7CisgICAgICAgIGlmIChhdXRvKiBpbnRlcm5hbEZ1
bmN0aW9uID0ganNEeW5hbWljQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4oKnZtLCBjYWxsZWVBc1Zh
bHVlKSkgewogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIgPSB2bS0+
Z2V0Q1RJSW50ZXJuYWxGdW5jdGlvblRyYW1wb2xpbmVGb3Ioa2luZCk7CiAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVCghIWNvZGVQdHIpOwogCiAgICAgICAgICAgICBpZiAoIWNhbGxMaW5rSW5m
by0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldFNlZW4oKTsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBsaW5rRm9yKGV4ZWNDYWxsZWUsICpj
YWxsTGlua0luZm8sIG51bGxwdHIsIGFzT2JqZWN0KGNhbGxlZUFzVmFsdWUpLCBjb2RlUHRyKTsK
KyAgICAgICAgICAgICAgICBsaW5rRm9yKGV4ZWNDYWxsZWUsICpjYWxsTGlua0luZm8sIG51bGxw
dHIsIGludGVybmFsRnVuY3Rpb24sIGNvZGVQdHIpOwogCiAgICAgICAgICAgICByZXR1cm4gZW5j
b2RlUmVzdWx0KGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oY2FsbExpbmtJbmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8gUmV1c2VU
aGVGcmFtZSA6IEtlZXBUaGVGcmFtZSkpOwogICAgICAgICB9CkBAIC0xMDYwLDcgKzEwNjAsNyBA
QCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oCiAgICAg
SlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxs
ZWUoKTsKICAgICBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkpIHsKLSAgICAg
ICAgaWYgKGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+
dHlwZSgpID09IEludGVybmFsRnVuY3Rpb25UeXBlKSB7CisgICAgICAgIGlmIChqc0R5bmFtaWND
YXN0PEludGVybmFsRnVuY3Rpb24qPigqdm0sIGNhbGxlZUFzVmFsdWUpKSB7CiAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLT5nZXRDVElJbnRlcm5hbEZ1bmN0
aW9uVHJhbXBvbGluZUZvcihraW5kKTsKICAgICAgICAgICAgIEFTU0VSVCghIWNvZGVQdHIpOwog
ICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNz
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2FsbE1vZGUoKSA9PSBD
YWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGFkZDYyYjk4
NzExYzM3OTczYmQxYmFiZTk0ZmE4NDgwNWU1Mzg1MTQuLmE5MGNiOWU0NTE4MGRiMzE3NzFhMmRi
NjA0ZmM5MzBmZDc5MDY1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcApAQCAtMTM3Myw4ICsxMzczLDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0
dXJuVHlwZSBzZXRVcENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiogcGMs
IENvZGUKICAgICAKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5j
dGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7Ci0g
ICAgICAgIGlmIChjYWxsZWVBc1ZhbHVlLmlzQ2VsbCgpICYmIGNhbGxlZUFzVmFsdWUuYXNDZWxs
KCktPnR5cGUoKSA9PSBJbnRlcm5hbEZ1bmN0aW9uVHlwZSkgewotICAgICAgICAgICAgYXV0byog
aW50ZXJuYWxGdW5jdGlvbiA9IGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4oY2FsbGVlQXNWYWx1
ZS5hc0NlbGwoKSk7CisgICAgICAgIGlmIChhdXRvKiBpbnRlcm5hbEZ1bmN0aW9uID0ganNEeW5h
bWljQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4odm0sIGNhbGxlZUFzVmFsdWUpKSB7CiAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLmdldENUSUludGVybmFsRnVu
Y3Rpb25UcmFtcG9saW5lRm9yKGtpbmQpOwogICAgICAgICAgICAgQVNTRVJUKCEhY29kZVB0cik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3Vt
ZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgK
aW5kZXggNzYwMWM1YzkxYmI5MTQ2YmZjM2M2YjMwZjY2OWI3MDljMmVmMjM0Yy4uOTdkMmFlNjk0
ODQ3Njg3YzdhMGFlZjFiMGU2NTNjYTc5NjQxMzhiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAvLyBwcm9wZXJ0aWVzIG9mIHRoZSBvYmplY3QgYXJlIHBvcHVsYXRlZC4gVGhl
IG9ubHkgcmVhc29uIHdoeSB3ZSBuZWVkIGEgc3BlY2lhbCBjbGFzcyBpcyB0byBtYWtlCiAvLyB0
aGUgb2JqZWN0IGNsYWltIHRvIGJlICJBcmd1bWVudHMiIGZyb20gYSB0b1N0cmluZyBzdGFuZHBv
aW50LCBhbmQgdG8gYXZvaWQgbWF0ZXJpYWxpemluZyB0aGUKIC8vIGNhbGxlci9jYWxsZWUvQEBp
dGVyYXRvciBwcm9wZXJ0aWVzIHVubGVzcyBzb21lb25lIGFza3MgZm9yIHRoZW0uCi1jbGFzcyBD
bG9uZWRBcmd1bWVudHMgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitjbGFzcyBDbG9uZWRB
cmd1bWVudHMgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaAppbmRleCAxNjA2ZjFhZGFkOTY4
NmVmZjg3YzFmN2E2NTg2YTVjZDc0NzdiMGFjLi5kM2ExNWE1YjM5ZjY5MmE0OWEyMGE4NWYwNDcx
MmQ5M2NiMmMzNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
aXJlY3RBcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJl
Y3RBcmd1bWVudHMuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vCiAvLyBU
byBzcGVlZCBhbGxvY2F0aW9uLCB0aGlzIG9iamVjdCB3aWxsIGhvbGQgYWxsIG9mIHRoZSBhcmd1
bWVudHMgaW4tcGxhY2UuIFRoZSBhcmd1bWVudHMgYXMgd2VsbAogLy8gYXMgYSB0YWJsZSBvZiBm
bGFncyBzYXlpbmcgd2hpY2ggYXJndW1lbnRzIHdlcmUgb3ZlcnJpZGRlbi4KLWNsYXNzIERpcmVj
dEFyZ3VtZW50cyA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPERpcmVjdEFyZ3VtZW50cz4gewor
Y2xhc3MgRGlyZWN0QXJndW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVyaWNBcmd1bWVudHM8RGly
ZWN0QXJndW1lbnRzPiB7CiBwcml2YXRlOgogICAgIERpcmVjdEFyZ3VtZW50cyhWTSYsIFN0cnVj
dHVyZSosIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgY2FwYWNpdHkpOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRleCA0ZmUyYjlmYjRmYmE5N2YyZTQ1YTQ0
MmExMDFmMmViNzI5NjE0NmM3Li4xODU3ZjY4ZTY0NWFiZDIzNjhkODI3ZDU1MGVjMzEzZGFiNmFh
YmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApAQCAtNDgsMTAgKzQ4
LDI3IEBAIGlubGluZSBUbyBqc0Nhc3QoSlNWYWx1ZSBmcm9tKQogLy8gU3BlY2lmaWMgdHlwZSBv
dmVybG9hZHMuCiAjZGVmaW5lIEZPUl9FQUNIX0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJM
T0FEKG1hY3JvKSBcCiAgICAgbWFjcm8oSlNPYmplY3QsIEpTVHlwZTo6T2JqZWN0VHlwZSwgSlNU
eXBlOjpMYXN0SlNDT2JqZWN0VHlwZSkgXAorICAgIG1hY3JvKEpTRmluYWxPYmplY3QsIEpTVHlw
ZTo6RmluYWxPYmplY3RUeXBlLCBKU1R5cGU6OkZpbmFsT2JqZWN0VHlwZSkgXAogICAgIG1hY3Jv
KEpTRnVuY3Rpb24sIEpTVHlwZTo6SlNGdW5jdGlvblR5cGUsIEpTVHlwZTo6SlNGdW5jdGlvblR5
cGUpIFwKICAgICBtYWNybyhJbnRlcm5hbEZ1bmN0aW9uLCBKU1R5cGU6OkludGVybmFsRnVuY3Rp
b25UeXBlLCBKU1R5cGU6OkludGVybmFsRnVuY3Rpb25UeXBlKSBcCiAgICAgbWFjcm8oSlNBcnJh
eSwgSlNUeXBlOjpBcnJheVR5cGUsIEpTVHlwZTo6RGVyaXZlZEFycmF5VHlwZSkgXAogICAgIG1h
Y3JvKEpTQXJyYXlCdWZmZXJWaWV3LCBGaXJzdFR5cGVkQXJyYXlUeXBlLCBMYXN0VHlwZWRBcnJh
eVR5cGUpIFwKKyAgICBtYWNybyhKU1NldCwgSlNUeXBlOjpKU1NldFR5cGUsIEpTVHlwZTo6SlNT
ZXRUeXBlKSBcCisgICAgbWFjcm8oSlNNYXAsIEpTVHlwZTo6SlNNYXBUeXBlLCBKU1R5cGU6OkpT
TWFwVHlwZSkgXAorICAgIG1hY3JvKEpTV2Vha1NldCwgSlNUeXBlOjpKU1dlYWtTZXRUeXBlLCBK
U1R5cGU6OkpTV2Vha1NldFR5cGUpIFwKKyAgICBtYWNybyhKU1dlYWtNYXAsIEpTVHlwZTo6SlNX
ZWFrTWFwVHlwZSwgSlNUeXBlOjpKU1dlYWtNYXBUeXBlKSBcCisgICAgbWFjcm8oTnVtYmVyT2Jq
ZWN0LCBKU1R5cGU6Ok51bWJlck9iamVjdFR5cGUsIEpTVHlwZTo6TnVtYmVyT2JqZWN0VHlwZSkg
XAorICAgIG1hY3JvKFByb3h5T2JqZWN0LCBKU1R5cGU6OlByb3h5T2JqZWN0VHlwZSwgSlNUeXBl
OjpQcm94eU9iamVjdFR5cGUpIFwKKyAgICBtYWNybyhEaXJlY3RBcmd1bWVudHMsIEpTVHlwZTo6
RGlyZWN0QXJndW1lbnRzVHlwZSwgSlNUeXBlOjpEaXJlY3RBcmd1bWVudHNUeXBlKSBcCisgICAg
bWFjcm8oU2NvcGVkQXJndW1lbnRzLCBKU1R5cGU6OlNjb3BlZEFyZ3VtZW50c1R5cGUsIEpTVHlw
ZTo6U2NvcGVkQXJndW1lbnRzVHlwZSkgXAorICAgIG1hY3JvKENsb25lZEFyZ3VtZW50cywgSlNU
eXBlOjpDbG9uZWRBcmd1bWVudHNUeXBlLCBKU1R5cGU6OkNsb25lZEFyZ3VtZW50c1R5cGUpIFwK
KyAgICBtYWNybyhKU0dsb2JhbE9iamVjdCwgSlNUeXBlOjpHbG9iYWxPYmplY3RUeXBlLCBKU1R5
cGU6Okdsb2JhbE9iamVjdFR5cGUpIFwKKyAgICBtYWNybyhKU0dsb2JhbExleGljYWxFbnZpcm9u
bWVudCwgSlNUeXBlOjpHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnRUeXBlLCBKU1R5cGU6Okdsb2Jh
bExleGljYWxFbnZpcm9ubWVudFR5cGUpIFwKKyAgICBtYWNybyhKU1NlZ21lbnRlZFZhcmlhYmxl
T2JqZWN0LCBKU1R5cGU6Okdsb2JhbE9iamVjdFR5cGUsIEpTVHlwZTo6R2xvYmFsTGV4aWNhbEVu
dmlyb25tZW50VHlwZSkgXAorICAgIG1hY3JvKEpTTW9kdWxlRW52aXJvbm1lbnQsIEpTVHlwZTo6
TW9kdWxlRW52aXJvbm1lbnRUeXBlLCBKU1R5cGU6Ok1vZHVsZUVudmlyb25tZW50VHlwZSkgXAor
ICAgIG1hY3JvKEpTTGV4aWNhbEVudmlyb25tZW50LCBKU1R5cGU6OkxleGljYWxFbnZpcm9ubWVu
dFR5cGUsIEpTVHlwZTo6TW9kdWxlRW52aXJvbm1lbnRUeXBlKSBcCisgICAgbWFjcm8oSlNTeW1i
b2xUYWJsZU9iamVjdCwgSlNUeXBlOjpHbG9iYWxPYmplY3RUeXBlLCBKU1R5cGU6Ok1vZHVsZUVu
dmlyb25tZW50VHlwZSkgXAorICAgIG1hY3JvKEpTU2NvcGUsIEpTVHlwZTo6R2xvYmFsT2JqZWN0
VHlwZSwgSlNUeXBlOjpXaXRoU2NvcGVUeXBlKSBcCiAKIAogLy8gRm9yd2FyZCBkZWNsYXJlIHRo
ZSBjbGFzc2VzIGJlY2F1c2UgdGhleSBtYXkgbm90IGFscmVhZHkgZXhpc3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVu
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQuaAppbmRleCAxZTlkOWVlNGNmMWUzMTE4ZWE2OGRjMTBlMDk2ZTQyMjY3MDA4OGYxLi4z
YmRhZjRmZWYyYjEzMzA3NzU2ZTU4YWFiMGIwYzk0NmU2OTBjZWJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsTGV4aWNhbEVudmlyb25t
ZW50LmgKQEAgLTI5LDEwICsyOSwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgSlNH
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVj
dCB7CitjbGFzcyBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCBmaW5hbCA6IHB1YmxpYyBKU1Nl
Z21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogcHVibGljOgotICAgIHR5cGVkZWYgSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdCBCYXNlOworICAgIHVzaW5nIEJhc2UgPSBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0OwogCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCA3MzRmNmFlMzMxYjk2YTc2OWY4YTdlNjQxODU2MmMyNjE0MzdlMDc4Li40NjFlMDAzZGZhNTA0
ZmZlNTEyZTg0NGRiODg2NDEyZDUyZTIwMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xNTk5LDYgKzE1OTksNyBAQCB2b2lk
IEpTR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgbV9ydW50aW1lRmxh
Z3MgPSBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlLT5qYXZhU2NyaXB0UnVudGltZUZsYWdzKHRo
aXMpOwogICAgIGluaXQodm0pOwogICAgIHNldEdsb2JhbFRoaXModm0sIEpTUHJveHk6OmNyZWF0
ZSh2bSwgSlNQcm94eTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBnZXRQcm90b3R5cGVEaXJl
Y3Qodm0pLCBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSksIHRoaXMpKTsKKyAgICBBU1NFUlQodHlw
ZSgpID09IEdsb2JhbE9iamVjdFR5cGUpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzVmFsdWUpCkBAIC0xNjA4LDYgKzE2MDks
NyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0
KiB0aGlzVmFsdWUpCiAgICAgbV9ydW50aW1lRmxhZ3MgPSBtX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlLT5qYXZhU2NyaXB0UnVudGltZUZsYWdzKHRoaXMpOwogICAgIGluaXQodm0pOwogICAgIHNl
dEdsb2JhbFRoaXModm0sIHRoaXNWYWx1ZSk7CisgICAgQVNTRVJUKHR5cGUoKSA9PSBHbG9iYWxP
YmplY3RUeXBlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNYXAuaAppbmRleCA5YzlkNTA2NWNhZTYwMjYxYWFkMmYxMDg4ZjFjNTgyMGZmZDcy
NDY3Li5mMGViYjU0ZDE4NDJjMGYzNGYwZmEzMDM0NjU0YTBkZjY1YzE1ZjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwLmgKQEAgLTY2LDE2ICs2Niw2IEBAIGNsYXNzIEpTTWFw
IGZpbmFsIDogcHVibGljIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERh
dGFLZXlWYWx1ZT4+CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqKTsKIH07CiAKLWlubGluZSBib29sIGlzSlNNYXAoSlNDZWxsKiBmcm9t
KQotewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU01hcD46OnZhbHVlLCAiIik7
Ci0gICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBKU01hcFR5cGU7Ci19Ci0KLWlubGluZSBib29s
IGlzSlNNYXAoSlNWYWx1ZSBmcm9tKQotewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5h
bDxKU01hcD46OnZhbHVlLCAiIik7Ci0gICAgcmV0dXJuIGZyb20uaXNDZWxsKCkgJiYgZnJvbS5h
c0NlbGwoKS0+dHlwZSgpID09IEpTTWFwVHlwZTsKLX0KK3N0YXRpY19hc3NlcnQoc3RkOjppc19m
aW5hbDxKU01hcD46OnZhbHVlLCAiUmVxdWlyZWQgZm9yIEpTVHlwZSBiYXNlZCBjYXN0aW5nIik7
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oCmluZGV4IGMzZmQxNmZjZjlkNmIzZTViY2Y0MWY4
ZjI4MzZkN2FhZTAyYWRjZWQuLjIwNDQwZWVhMzg2M2NhN2RiNjgyODBjOWI2MmZmYzlhYmU0NzUx
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlRW52
aXJvbm1lbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUVu
dmlyb25tZW50LmgKQEAgLTM1LDExICszNSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFi
c3RyYWN0TW9kdWxlUmVjb3JkOwogY2xhc3MgUmVnaXN0ZXI7CiAKLWNsYXNzIEpTTW9kdWxlRW52
aXJvbm1lbnQgOiBwdWJsaWMgSlNMZXhpY2FsRW52aXJvbm1lbnQgeworY2xhc3MgSlNNb2R1bGVF
bnZpcm9ubWVudCBmaW5hbCA6IHB1YmxpYyBKU0xleGljYWxFbnZpcm9ubWVudCB7CiAgICAgZnJp
ZW5kIGNsYXNzIEpJVDsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwog
cHVibGljOgotICAgIHR5cGVkZWYgSlNMZXhpY2FsRW52aXJvbm1lbnQgQmFzZTsKKyAgICB1c2lu
ZyBCYXNlID0gSlNMZXhpY2FsRW52aXJvbm1lbnQ7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgc3RhdGljIEpT
TW9kdWxlRW52aXJvbm1lbnQqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIEpTU2NvcGUqLCBTeW1i
b2xUYWJsZSosIEpTVmFsdWUgaW5pdGlhbFZhbHVlLCBBYnN0cmFjdE1vZHVsZVJlY29yZCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGVmMGUyMmZi
NjRkOWNlZjE3OGViM2I2NmI0OTkzMTYyNTI0NmE2ZjcuLjI1MjU5MTNkZjM3MzMxZjU3YTdiNTI1
YzZmMDEyMDgwNWE3ZWZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAKQEAgLTI0MDcsMTAgKzI0MDcsMTAgQEAgYm9vbCBKU09iamVjdDo6cHV0SW5kZXhl
ZERlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBTcGFyc2VBcnJheUVudHJ5KiBlbnRyeUluTWEK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBjYW5Eb0Zh
c3RQdXREaXJlY3RJbmRleChKU09iamVjdCogb2JqZWN0KQorQUxXQVlTX0lOTElORSBzdGF0aWMg
Ym9vbCBjYW5Eb0Zhc3RQdXREaXJlY3RJbmRleChWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiB7
CiAgICAgcmV0dXJuIGlzSlNBcnJheShvYmplY3QpCi0gICAgICAgIHx8IGlzSlNGaW5hbE9iamVj
dChvYmplY3QpCisgICAgICAgIHx8IGpzRHluYW1pY0Nhc3Q8SlNGaW5hbE9iamVjdCo+KHZtLCBv
YmplY3QpCiAgICAgICAgIHx8IFR5cGVJbmZvOjppc0FyZ3VtZW50c1R5cGUob2JqZWN0LT50eXBl
KCkpOwogfQogCkBAIC0yNDI3LDcgKzI0MjcsNyBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25J
bmRleGVkUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgY29uc3QgUAog
ICAgICAgICAvLyBGSVhNRTogdGhpcyB3aWxsIHBlc3NpbWlzdGljYWxseSBhc3N1bWUgdGhhdCBp
ZiBhdHRyaWJ1dGVzIGFyZSBtaXNzaW5nIHRoZW4gdGhleSdsbCBkZWZhdWx0IHRvIGZhbHNlCiAg
ICAgICAgIC8vIGhvd2V2ZXIgaWYgdGhlIHByb3BlcnR5IGN1cnJlbnRseSBleGlzdHMgbWlzc2lu
ZyBhdHRyaWJ1dGVzIHdpbGwgb3ZlcnJpZGUgZnJvbSB0aGVpciBjdXJyZW50ICd0cnVlJwogICAg
ICAgICAvLyBzdGF0ZSAoaS5lLiBkZWZpbmVPd25Qcm9wZXJ0eSBjb3VsZCBiZSB1c2VkIHRvIHNl
dCBhIHZhbHVlIHdpdGhvdXQgbmVlZGluZyB0byBlbnRlcmluZyAnU3BhcnNlTW9kZScpLgotICAg
ICAgICBpZiAoIWRlc2NyaXB0b3IuYXR0cmlidXRlcygpICYmIGRlc2NyaXB0b3IudmFsdWUoKSAm
JiBjYW5Eb0Zhc3RQdXREaXJlY3RJbmRleCh0aGlzKSkgeworICAgICAgICBpZiAoIWRlc2NyaXB0
b3IuYXR0cmlidXRlcygpICYmIGRlc2NyaXB0b3IudmFsdWUoKSAmJiBjYW5Eb0Zhc3RQdXREaXJl
Y3RJbmRleCh2bSwgdGhpcykpIHsKICAgICAgICAgICAgIEFTU0VSVCghZGVzY3JpcHRvci5pc0Fj
Y2Vzc29yRGVzY3JpcHRvcigpKTsKICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAg
ICAgICAgIHJldHVybiBwdXREaXJlY3RJbmRleChleGVjLCBpbmRleCwgZGVzY3JpcHRvci52YWx1
ZSgpLCAwLCB0aHJvd0V4Y2VwdGlvbiA/IFB1dERpcmVjdEluZGV4U2hvdWxkVGhyb3cgOiBQdXRE
aXJlY3RJbmRleFNob3VsZE5vdFRocm93KTsKQEAgLTI4ODEsNyArMjg4MSw3IEBAIGJvb2wgSlNP
YmplY3Q6OnB1dERpcmVjdEluZGV4U2xvd09yQmV5b25kVmVjdG9yTGVuZ3RoKEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIAotICAgIGlm
ICghY2FuRG9GYXN0UHV0RGlyZWN0SW5kZXgodGhpcykpIHsKKyAgICBpZiAoIWNhbkRvRmFzdFB1
dERpcmVjdEluZGV4KHZtLCB0aGlzKSkgewogICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVz
Y3JpcHRvcjsKICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHZhbHVlLCBhdHRyaWJ1
dGVzKTsKICAgICAgICAgcmV0dXJuIG1ldGhvZFRhYmxlKHZtKS0+ZGVmaW5lT3duUHJvcGVydHko
dGhpcywgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgZGVzY3JpcHRvciwgbW9kZSA9
PSBQdXREaXJlY3RJbmRleFNob3VsZFRocm93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCmluZGV4IGI0ZDhiMWE4MTA1NzIyM2JlYzE4MmMwMDhlOTM3NGUzMjAzZTY5
MTIuLmYzZDdhNTg1ZTBlNTk0MmU0MDg1YTI4ZjRkMjA3ZWJkNTZkZjY0NTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTA5OCw3ICsxMDk4LDcgQEAgY2xh
c3MgSlNGaW5hbE9iamVjdDsKIAogLy8gSlNGaW5hbE9iamVjdCBpcyBhIHR5cGUgb2YgSlNPYmpl
Y3QgdGhhdCBjb250YWlucyBzdWZmaWNlbnQgaW50ZXJuYWwKIC8vIHN0b3JhZ2UgdG8gZnVsbHkg
bWFrZSB1c2Ugb2YgdGhlIGNvbGxvY3RvciBjZWxsIGNvbnRhaW5pbmcgaXQuCi1jbGFzcyBKU0Zp
bmFsT2JqZWN0IDogcHVibGljIEpTT2JqZWN0IHsKK2NsYXNzIEpTRmluYWxPYmplY3QgZmluYWwg
OiBwdWJsaWMgSlNPYmplY3QgewogICAgIGZyaWVuZCBjbGFzcyBKU09iamVjdDsKIAogcHVibGlj
OgpAQCAtMTE5NSwxNiArMTE5NSw2IEBAIGlubGluZSBKU0ZpbmFsT2JqZWN0KiBKU0ZpbmFsT2Jq
ZWN0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICByZXR1cm4gZmlu
YWxPYmplY3Q7CiB9CiAKLWlubGluZSBib29sIGlzSlNGaW5hbE9iamVjdChKU0NlbGwqIGNlbGwp
Ci17Ci0gICAgcmV0dXJuIGNlbGwtPnR5cGUoKSA9PSBGaW5hbE9iamVjdFR5cGU7Ci19Ci0KLWlu
bGluZSBib29sIGlzSlNGaW5hbE9iamVjdChKU1ZhbHVlIHZhbHVlKQotewotICAgIHJldHVybiB2
YWx1ZS5pc0NlbGwoKSAmJiBpc0pTRmluYWxPYmplY3QodmFsdWUuYXNDZWxsKCkpOwotfQotCiBp
bmxpbmUgc2l6ZV90IEpTT2JqZWN0OjpvZmZzZXRPZklubGluZVN0b3JhZ2UoKQogewogICAgIHJl
dHVybiBzaXplb2YoSlNPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTY29wZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nj
b3BlLmNwcAppbmRleCBjOWRmNmNlYmNiYzBjNWExMTYxZDM4MmM2YzYzY2Q5NzEwNDRiOTE1Li4z
ZjdmM2YxNDk3ZDBhYTJjOWU1MzQ0ZTdhM2E4ZWY0MGIxNjBmODBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmNwcApAQCAtMzksNiArMzksOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTU2NvcGUp
OwogCitjb25zdCBDbGFzc0luZm8gSlNTY29wZTo6c19pbmZvID0geyAiU2NvcGUiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2NvcGUpIH07
CisKIHZvaWQgSlNTY29wZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogewogICAgIEpTU2NvcGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNTY29wZSo+
KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29w
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5oCmluZGV4IGQyMjFi
YzAxZDI2NGUwMTI2ZTQyNjIxYTM3MjJhZGYyMmIwNzAxZjcuLjQ2NjhjYTE1ZWE1YTQyMTAzMGFk
MzA3MGI4ZDhjOTkwMTBlNTQxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU2NvcGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Nj
b3BlLmgKQEAgLTM3LDkgKzM3LDExIEBAIGNsYXNzIFdhdGNocG9pbnRTZXQ7CiAKIGNsYXNzIEpT
U2NvcGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBPdmVycmlkZXNUb1RoaXM7CiAKKyAgICBERUNMQVJFX0lORk87CisKICAgICBm
cmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogICAgIHN0YXRpYyBzaXplX3Qgb2Zm
c2V0T2ZOZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKaW5kZXggYjc0ODdmNTQ0YTcxNWE4
ZjkzMmM2NDUyMTM3MmM3MTdhYjZiNWM1Ni4uZTU2MDM2OTlkMGU0MjZjMDNiMmY0MGZjNGM5MjI0
OWJjZjA2ZmNhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
ZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDggQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKK2NvbnN0IENsYXNzSW5mbyBKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0OjpzX2luZm8gPSB7ICJTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTZWdtZW50ZWRWYXJpYWJs
ZU9iamVjdCkgfTsKKwogU2NvcGVPZmZzZXQgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdDo6Zmlu
ZFZhcmlhYmxlSW5kZXgodm9pZCogdmFyaWFibGVBZGRyZXNzKQogewogICAgIENvbmN1cnJlbnRK
U0xvY2tlciBsb2NrZXIobV9sb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuaAppbmRleCBiOTJmZDdmN2Vh
OWVkMGM0ODA0OTlkNDgxNzI1MTYwMWY5ZTE4YWRiLi5hZTMwZGI3NjhkZDQ0YTIyMmQ1MjgzMWVl
OTFmYWY2OWM4OWNkMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oCkBAIC01NCw3ICs1NCw5IEBAIGNs
YXNzIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgOiBwdWJsaWMgSlNTeW1ib2xUYWJsZU9iamVj
dCB7CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIAogcHVibGljOgot
ICAgIHR5cGVkZWYgSlNTeW1ib2xUYWJsZU9iamVjdCBCYXNlOworICAgIHVzaW5nIEJhc2UgPSBK
U1N5bWJvbFRhYmxlT2JqZWN0OworCisgICAgREVDTEFSRV9JTkZPOwogCiAgICAgYm9vbCBpc1Zh
bGlkU2NvcGVPZmZzZXQoU2NvcGVPZmZzZXQgb2Zmc2V0KQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1NldC5oCmluZGV4IDhhZmNkZTdiODJjMjY2NDc4MWJhOWNlZGQzZmYxOWE4
NGYwM2EzMjYuLmViN2E0OWZhMmEwZDA1OTEyZWE1OTQyMjVmMWQ0YzgwYTY4NzVkMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQuaApAQCAtNzEsMTYgKzcxLDYgQEAgY2xhc3Mg
SlNTZXQgZmluYWwgOiBwdWJsaWMgSGFzaE1hcEltcGw8SGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVj
a2V0RGF0YUtleT4+IHsKICAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFtZShjb25zdCBKU09i
amVjdCosIEV4ZWNTdGF0ZSopOwogfTsKIAotaW5saW5lIGJvb2wgaXNKU1NldChKU0NlbGwqIGZy
b20pCi17Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTU2V0Pjo6dmFsdWUsICIi
KTsKLSAgICByZXR1cm4gZnJvbS0+dHlwZSgpID09IEpTU2V0VHlwZTsKLX0KLQotaW5saW5lIGJv
b2wgaXNKU1NldChKU1ZhbHVlIGZyb20pCi17Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Zp
bmFsPEpTU2V0Pjo6dmFsdWUsICIiKTsKLSAgICByZXR1cm4gZnJvbS5pc0NlbGwoKSAmJiBmcm9t
LmFzQ2VsbCgpLT50eXBlKCkgPT0gSlNTZXRUeXBlOwotfQorc3RhdGljX2Fzc2VydChzdGQ6Omlz
X2ZpbmFsPEpTU2V0Pjo6dmFsdWUsICJSZXF1aXJlZCBmb3IgSlNUeXBlIGJhc2VkIGNhc3Rpbmci
KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZS5oCmluZGV4IGM4ODIyMTg4OGJmZmRjYmQ5MzMyYWRmM2NhY2U0NGMxMjIwZDRlNWIuLmIzZjdj
ZDI5ODIxZjc5MGE3NWUxNWFlNDVhNTNkZGVjNjg2MTg5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZS5oCkBAIC02MSw3ICs2MSw2IEBAIGVudW0gSlNUeXBlIDogdWludDhf
dCB7CiAgICAgRXJyb3JJbnN0YW5jZVR5cGUsCiAgICAgUHVyZUZvcndhcmRpbmdQcm94eVR5cGUs
CiAgICAgSW1wdXJlUHJveHlUeXBlLAotICAgIFdpdGhTY29wZVR5cGUsCiAgICAgRGlyZWN0QXJn
dW1lbnRzVHlwZSwKICAgICBTY29wZWRBcmd1bWVudHNUeXBlLAogICAgIENsb25lZEFyZ3VtZW50
c1R5cGUsCkBAIC04NiwxMyArODUsMjEgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKIAogICAg
IEdldHRlclNldHRlclR5cGUsCiAKKyAgICAvLyBKU1Njb3BlIDwtIEpTV2l0aFNjb3BlCisgICAg
Ly8gICAgICAgICA8LSBTdHJpY3RFdmFsQWN0aXZhdGlvbgorICAgIC8vICAgICAgICAgPC0gSlNT
eW1ib2xUYWJsZU9iamVjdCAgPC0gSlNMZXhpY2FsRW52aXJvbm1lbnQgICAgICA8LSBKU01vZHVs
ZUVudmlyb25tZW50CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LSBK
U1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IDwtIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50Cisg
ICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwtIEpTR2xvYmFsT2JqZWN0CisgICAgLy8gU3RhcnQgSlNTY29wZSB0eXBlcy4K
ICAgICAvLyBTdGFydCBlbnZpcm9ubWVudCByZWNvcmQgdHlwZXMuCiAgICAgR2xvYmFsT2JqZWN0
VHlwZSwKLSAgICBMZXhpY2FsRW52aXJvbm1lbnRUeXBlLAogICAgIEdsb2JhbExleGljYWxFbnZp
cm9ubWVudFR5cGUsCisgICAgTGV4aWNhbEVudmlyb25tZW50VHlwZSwKICAgICBNb2R1bGVFbnZp
cm9ubWVudFR5cGUsCiAgICAgU3RyaWN0RXZhbEFjdGl2YXRpb25UeXBlLAogICAgIC8vIEVuZCBl
bnZpcm9ubWVudCByZWNvcmQgdHlwZXMuCisgICAgV2l0aFNjb3BlVHlwZSwKKyAgICAvLyBFbmQg
SlNTY29wZSB0eXBlcy4KIAogICAgIFJlZ0V4cE9iamVjdFR5cGUsCiAgICAgUHJveHlPYmplY3RU
eXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrTWFw
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtNYXAuaAppbmRleCA4ZGU4
ZDI2MjliYmU5MGQwNzA5YTU2ZTdhZGM2Yjk4ZTk0ZWJiNWVmLi44MTRhYzg0YzY0YTRkZGQ2NDFh
NThiZDEzZTY1OTVlZjQ5NDY0ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1dlYWtNYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1dlYWtNYXAuaApAQCAtNjIsMTYgKzYyLDYgQEAgY2xhc3MgSlNXZWFrTWFwIGZpbmFsIDogcHVi
bGljIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXlWYWwKICAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nTmFtZShjb25zdCBKU09iamVjdCosIEV4ZWNTdGF0ZSop
OwogfTsKIAotaW5saW5lIGJvb2wgaXNKU1dlYWtNYXAoSlNDZWxsKiBmcm9tKQotewotICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU1dlYWtNYXA+Ojp2YWx1ZSwgIiIpOwotICAgIHJl
dHVybiBmcm9tLT50eXBlKCkgPT0gSlNXZWFrTWFwVHlwZTsKLX0KLQotaW5saW5lIGJvb2wgaXNK
U1dlYWtNYXAoSlNWYWx1ZSBmcm9tKQotewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5h
bDxKU1dlYWtNYXA+Ojp2YWx1ZSwgIiIpOwotICAgIHJldHVybiBmcm9tLmlzQ2VsbCgpICYmIGZy
b20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1dlYWtNYXBUeXBlOwotfQorc3RhdGljX2Fzc2VydChz
dGQ6OmlzX2ZpbmFsPEpTV2Vha01hcD46OnZhbHVlLCAiUmVxdWlyZWQgZm9yIEpTVHlwZSBiYXNl
ZCBjYXN0aW5nIik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXZWFrU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1dlYWtTZXQuaAppbmRleCA2YjlhMDE4NWMwYjAyOGZjZWNkNjUzYWVkMDE0NTdh
ZjBjYzcyOTYzLi4xZTAyMDcyNDFjZWU2NmM3ZTFlNGIxMDVjN2E2ZTQ0NThiNjNiNWU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtTZXQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtTZXQuaApAQCAtNTcsMTYgKzU3LDYg
QEAgY2xhc3MgSlNXZWFrU2V0IGZpbmFsIDogcHVibGljIFdlYWtNYXBJbXBsPFdlYWtNYXBCdWNr
ZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXk+PgogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdOYW1l
KGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKik7CiB9OwogCi1pbmxpbmUgYm9vbCBpc0pTV2Vh
a1NldChKU0NlbGwqIGZyb20pCi17Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpT
V2Vha1NldD46OnZhbHVlLCAiIik7Ci0gICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBKU1dlYWtT
ZXRUeXBlOwotfQotCi1pbmxpbmUgYm9vbCBpc0pTV2Vha1NldChKU1ZhbHVlIGZyb20pCi17Ci0g
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTV2Vha1NldD46OnZhbHVlLCAiIik7Ci0g
ICAgcmV0dXJuIGZyb20uaXNDZWxsKCkgJiYgZnJvbS5hc0NlbGwoKS0+dHlwZSgpID09IEpTV2Vh
a1NldFR5cGU7Ci19CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrU2V0Pjo6dmFs
dWUsICJSZXF1aXJlZCBmb3IgSlNUeXBlIGJhc2VkIGNhc3RpbmciKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dpdGhT
Y29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuaAppbmRl
eCAyODQ3YmQ4YWM2OGNmMWQxZDBlODY1MWQzNDE3OTYyZWI4NDJhMTYyLi4xZDZkNWVhMDA5NjM2
YjM1Y2NhZjMwYjNhMjdmZDVlZGYyZDMyMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dpdGhTY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTV2l0aFNjb3BlLmgKQEAgLTI5LDkgKzI5LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLWNsYXNzIEpTV2l0aFNjb3BlIDogcHVibGljIEpTU2NvcGUgeworY2xhc3MgSlNXaXRoU2Nv
cGUgZmluYWwgOiBwdWJsaWMgSlNTY29wZSB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU1Njb3Bl
IEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEpTU2NvcGU7CiAKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgSlNXaXRoU2NvcGUqIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNTY29w
ZSogbmV4dCwgSlNPYmplY3QqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IDM5MTRmMmM4Y2YyOTdhNzRjY2U2N2JmZGRmMGQx
MjJmNTU0YjdiODUuLjE0ZTI3M2UyOGMwY2NmM2U4OTk5MjIzMDY0YTJjODkyM2I1ODljMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAK
QEAgLTc3LDggKzc3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0TWFwKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU01hcDo6Y3JlYXRlKGV4ZWMsIHZtLCBtYXBTdHJ1Y3R1cmUpKTsKICAgICB9CiAKLSAgICBp
ZiAoaXNKU01hcChpdGVyYWJsZSkpIHsKLSAgICAgICAgSlNNYXAqIGl0ZXJhYmxlTWFwID0ganND
YXN0PEpTTWFwKj4oaXRlcmFibGUpOworICAgIGlmIChhdXRvKiBpdGVyYWJsZU1hcCA9IGpzRHlu
YW1pY0Nhc3Q8SlNNYXAqPih2bSwgaXRlcmFibGUpKSB7CiAgICAgICAgIGlmIChpdGVyYWJsZU1h
cC0+Y2FuQ2xvbmVGYXN0QW5kTm9uT2JzZXJ2YWJsZShtYXBTdHJ1Y3R1cmUpKSB7CiAgICAgICAg
ICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGl0ZXJhYmxlTWFwLT5jbG9uZShleGVjLCB2bSwgbWFwU3RydWN0dXJlKSk7CkBAIC0xMjMsNyAr
MTIyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFw
KEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2
YXRlRnVuY01hcEJ1Y2tldEhlYWQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEFTU0VSVChpc0pT
TWFwKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgQVNTRVJUKGpzRHluYW1pY0Nhc3Q8SlNNYXAq
PihleGVjLT52bSgpLCBleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIEpTTWFwKiBtYXAgPSBqc0Nh
c3Q8SlNNYXAqPihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgYXV0byogaGVhZCA9
IG1hcC0+aGVhZCgpOwogICAgIEFTU0VSVChoZWFkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmluZGV4IGVhOWE3NmJlMjVlMDY5OWZmYmUwMmRl
MGY2YWYzNGNkYzNjOTA3MDkuLjUzNTY4YjdhM2FhZTRiMTI2Y2NlMzM5ZDMyZDA0NzBlZWE3NmEx
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNw
cApAQCAtODksOCArODksOSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU01hcCogZ2V0TWFwKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHRoaXNWYWx1ZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKExJS0VMWSh0aGlzVmFsdWUuYXNDZWxsKCktPnR5cGUo
KSA9PSBKU01hcFR5cGUpKQotICAgICAgICByZXR1cm4ganNDYXN0PEpTTWFwKj4odGhpc1ZhbHVl
KTsKKyAgICBhdXRvKiBtYXAgPSBqc0R5bmFtaWNDYXN0PEpTTWFwKj4odm0sIHRoaXNWYWx1ZS5h
c0NlbGwoKSk7CisgICAgaWYgKExJS0VMWShtYXApKQorICAgICAgICByZXR1cm4gbWFwOwogICAg
IHRocm93VHlwZUVycm9yKGNhbGxGcmFtZSwgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiTWFwIG9wZXJh
dGlvbiBjYWxsZWQgb24gbm9uLU1hcCBvYmplY3QiKSk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAppbmRl
eCBkMzdmNGU1Nzc3YjQ5MGFlYTcxZGU3YTA1ZjQ5ZDZjODhiNTQ2YWI2Li5iNzZlMjQ3ODczZmM2
NzBkOGVlODdiNjI3MWJiNGIyYTUzYmNlNjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAgdm9pZCBOdW1iZXJP
YmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKyAgICBBU1NFUlQodHlw
ZSgpID09IE51bWJlck9iamVjdFR5cGUpOwogfQogCiBOdW1iZXJPYmplY3QqIGNvbnN0cnVjdE51
bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgbnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHAKaW5kZXggZmQ3NjRhY2EwN2Y1NDBhNjdiYTkxYjNlODgzZTViYjg3ZmNjMWEx
MS4uNjk2NjY4YzhlNTYxY2VkNTg2MTU4ZDk0ZTYwMmIxMDU2NjdiOThmMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC04OSw3
ICs4OSw3IEBAIHZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXN0YXRpYyBB
TFdBWVNfSU5MSU5FIGJvb2wgdG9UaGlzTnVtYmVyKEpTVmFsdWUgdGhpc1ZhbHVlLCBkb3VibGUm
IHgpCitzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHRvVGhpc051bWJlcihWTSYgdm0sIEpTVmFs
dWUgdGhpc1ZhbHVlLCBkb3VibGUmIHgpCiB7CiAgICAgaWYgKHRoaXNWYWx1ZS5pc0ludDMyKCkp
IHsKICAgICAgICAgeCA9IHRoaXNWYWx1ZS5hc0ludDMyKCk7CkBAIC0xMDAsOSArMTAwLDkgQEAg
c3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCB0b1RoaXNOdW1iZXIoSlNWYWx1ZSB0aGlzVmFsdWUs
IGRvdWJsZSYgeCkKICAgICAgICAgeCA9IHRoaXNWYWx1ZS5hc0RvdWJsZSgpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgCi0gICAgaWYgKHRoaXNWYWx1ZS5pc0NlbGwoKSAmJiB0
aGlzVmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBOdW1iZXJPYmplY3RUeXBlKSB7Ci0gICAgICAg
IHggPSBzdGF0aWNfY2FzdDxjb25zdCBOdW1iZXJPYmplY3QqPih0aGlzVmFsdWUuYXNDZWxsKCkp
LT5pbnRlcm5hbFZhbHVlKCkuYXNOdW1iZXIoKTsKKworICAgIGlmIChhdXRvKiBudW1iZXJPYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PE51bWJlck9iamVjdCo+KHZtLCB0aGlzVmFsdWUpKSB7CisgICAg
ICAgIHggPSBudW1iZXJPYmplY3QtPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTQwNyw3ICs0MDcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwoRXhlY1N0YXRlKiBl
eGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGRv
dWJsZSB4OwotICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPnRoaXNWYWx1ZSgpLCB4KSkKKyAg
ICBpZiAoIXRvVGhpc051bWJlcih2bSwgZXhlYy0+dGhpc1ZhbHVlKCksIHgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKICAgICAvLyBQZXJmb3JtIFRv
SW50ZWdlciBvbiB0aGUgYXJndW1lbnQgYmVmb3JlIHJlbWFpbmluZyBzdGVwcy4KQEAgLTQ0NCw3
ICs0NDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1Rv
Rml4ZWQoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAogICAgIGRvdWJsZSB4OwotICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPnRo
aXNWYWx1ZSgpLCB4KSkKKyAgICBpZiAoIXRvVGhpc051bWJlcih2bSwgZXhlYy0+dGhpc1ZhbHVl
KCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAK
ICAgICAvLyBHZXQgdGhlIGFyZ3VtZW50LiAKQEAgLTQ4Miw3ICs0ODIsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBk
b3VibGUgeDsKLSAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT50aGlzVmFsdWUoKSwgeCkpCisg
ICAgaWYgKCF0b1RoaXNOdW1iZXIodm0sIGV4ZWMtPnRoaXNWYWx1ZSgpLCB4KSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCiAgICAgLy8gUGVyZm9ybSBU
b0ludGVnZXIgb24gdGhlIGFyZ3VtZW50IGJlZm9yZSByZW1haW5pbmcgc3RlcHMuCkBAIC01ODAs
NyArNTgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNU
b1N0cmluZyhFeGVjU3RhdGUqIHN0YXRlKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKLSAgICBpZiAoIXRvVGhpc051
bWJlcihzdGF0ZS0+dGhpc1ZhbHVlKCksIGRvdWJsZVZhbHVlKSkKKyAgICBpZiAoIXRvVGhpc051
bWJlcih2bSwgc3RhdGUtPnRoaXNWYWx1ZSgpLCBkb3VibGVWYWx1ZSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCBzY29wZSk7CiAKICAgICBhdXRvIHJhZGl4ID0gZXh0
cmFjdFRvU3RyaW5nUmFkaXhBcmd1bWVudChzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApLCBzY29w
ZSk7CkBAIC01OTUsNyArNTk1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1i
ZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgZG91YmxlIHg7Ci0gICAgaWYgKCF0
b1RoaXNOdW1iZXIoZXhlYy0+dGhpc1ZhbHVlKCksIHgpKQorICAgIGlmICghdG9UaGlzTnVtYmVy
KHZtLCBleGVjLT50aGlzVmFsdWUoKSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIHNjb3BlKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
eCkudG9TdHJpbmcoZXhlYykpOwpAQCAtNjA4LDcgKzYwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCiAKICAg
ICBkb3VibGUgeDsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdG9UaGlzTnVtYmVyKHRoaXNWYWx1ZSwgeCkpCisgICAgaWYgKCF0b1RoaXNOdW1i
ZXIodm0sIHRoaXNWYWx1ZSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlLCBXVEY6Om1ha2VTdHJpbmcoInRoaXNOdW1iZXJWYWx1ZSBjYWxsZWQgb24gaW5j
b21wYXRpYmxlICIsIGFzU3RyaW5nKGpzVHlwZVN0cmluZ0ZvclZhbHVlKGV4ZWMsIHRoaXNWYWx1
ZSkpLT52YWx1ZShleGVjKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
eCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCmluZGV4IGI3Mzc5NDkwZGUxZWZiYTdiMGQyNzQ2Mzc4ZWE1OGM1MDRmMDkz
YzguLjIyZDY0NTk2ZGFjMmY5MzE5YzUxNGI3MjY4Y2Q3MmY5NmZjNzEzOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAg
LTcxNSw3ICs3MTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0
cnVjdG9yU2VhbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUob2JqKTsKICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3Qob2JqKTsKIAotICAgIGlm
IChpc0pTRmluYWxPYmplY3Qob2JqZWN0KSAmJiAhaGFzSW5kZXhlZFByb3BlcnRpZXMob2JqZWN0
LT5pbmRleGluZ1R5cGUoKSkpIHsKKyAgICBpZiAoanNEeW5hbWljQ2FzdDxKU0ZpbmFsT2JqZWN0
Kj4odm0sIG9iamVjdCkgJiYgIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG9iamVjdC0+aW5kZXhpbmdU
eXBlKCkpKSB7CiAgICAgICAgIG9iamVjdC0+c2VhbCh2bSk7CiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUob2JqKTsKICAgICB9CkBAIC03MzUsNyArNzM1LDcgQEAgSlNPYmplY3QqIG9i
amVjdENvbnN0cnVjdG9yRnJlZXplKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCkK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAotICAgIGlmIChpc0pTRmluYWxPYmplY3Qob2JqZWN0KSAmJiAhaGFzSW5k
ZXhlZFByb3BlcnRpZXMob2JqZWN0LT5pbmRleGluZ1R5cGUoKSkpIHsKKyAgICBpZiAoanNEeW5h
bWljQ2FzdDxKU0ZpbmFsT2JqZWN0Kj4odm0sIG9iamVjdCkgJiYgIWhhc0luZGV4ZWRQcm9wZXJ0
aWVzKG9iamVjdC0+aW5kZXhpbmdUeXBlKCkpKSB7CiAgICAgICAgIG9iamVjdC0+ZnJlZXplKHZt
KTsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CkBAIC03ODIsNyArNzgyLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3Qob2JqKTsKIAogICAg
IC8vIFF1aWNrIGNoZWNrIGZvciBmaW5hbCBvYmplY3RzLgotICAgIGlmIChpc0pTRmluYWxPYmpl
Y3Qob2JqZWN0KSAmJiAhaGFzSW5kZXhlZFByb3BlcnRpZXMob2JqZWN0LT5pbmRleGluZ1R5cGUo
KSkpCisgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNGaW5hbE9iamVjdCo+KHZtLCBvYmplY3QpICYm
ICFoYXNJbmRleGVkUHJvcGVydGllcyhvYmplY3QtPmluZGV4aW5nVHlwZSgpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ob2JqZWN0LT5pc1NlYWxlZCh2bSkpKTsK
IAogICAgIC8vIDIuIFJldHVybiA/IFRlc3RJbnRlZ3JpdHlMZXZlbChPLCAic2VhbGVkIikuCkBA
IC04MDAsNyArODAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvcklzRnJvemVuKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU09iamVjdCogb2JqZWN0ID0g
YXNPYmplY3Qob2JqKTsKIAogICAgIC8vIFF1aWNrIGNoZWNrIGZvciBmaW5hbCBvYmplY3RzLgot
ICAgIGlmIChpc0pTRmluYWxPYmplY3Qob2JqZWN0KSAmJiAhaGFzSW5kZXhlZFByb3BlcnRpZXMo
b2JqZWN0LT5pbmRleGluZ1R5cGUoKSkpCisgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNGaW5hbE9i
amVjdCo+KHZtLCBvYmplY3QpICYmICFoYXNJbmRleGVkUHJvcGVydGllcyhvYmplY3QtPmluZGV4
aW5nVHlwZSgpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ob2Jq
ZWN0LT5pc0Zyb3plbih2bSkpKTsKIAogICAgIC8vIDIuIFJldHVybiA/IFRlc3RJbnRlZ3JpdHlM
ZXZlbChPLCAiZnJvemVuIikuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm94eU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eU9iamVjdC5jcHAKaW5kZXggYzFkN2FiODVjYjg5ODliZDE0YjFmMDJkZTVjMzFkZjc2M2IwMGRm
OS4uNWMzZWU1ZWI4NWZjZGU3OTAzMDNhZmUwZjBiMTMyMDZjNzRiNDZkMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcApAQCAtODcsNiArODcsNyBA
QCB2b2lkIFByb3h5T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSB0YXJnZXQsIEpTVmFsdQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJU
KHR5cGUoKSA9PSBQcm94eU9iamVjdFR5cGUpOwogICAgIGlmICghdGFyZ2V0LmlzT2JqZWN0KCkp
IHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQSBQ
cm94eSdzICd0YXJnZXQnIHNob3VsZCBiZSBhbiBPYmplY3QiKSk7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKaW5k
ZXggNjZmNWVmZTVjMmFhZDNhZmJmMGRjZjRiYWJhYTczY2ExMzU3MjY4Mi4uNjUxODgzMTBkMGJh
NDIyOWRiN2EwZjBiNjRhNjU1YjhjOGEwZTM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAvLyBvYmplY3Qgd2lsbCBzdG9yZSB0aGUgb3ZlcmZsb3cgYXJndW1lbnRzLCBpZiB0
aGVyZSBhcmUgYW55LiBUaGlzIG9iamVjdCB3aWxsIHVzZSB0aGUgc3ltYm9sCiAvLyB0YWJsZSdz
IFNjb3BlZEFyZ3VtZW50c1RhYmxlIGFuZCB0aGUgYWN0aXZhdGlvbiwgb3IgaXRzIG92ZXJmbG93
IHN0b3JhZ2UsIHRvIGhhbmRsZSBhbGwgaW5kZXhlZAogLy8gbG9va3Vwcy4KLWNsYXNzIFNjb3Bl
ZEFyZ3VtZW50cyA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz4gewor
Y2xhc3MgU2NvcGVkQXJndW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVyaWNBcmd1bWVudHM8U2Nv
cGVkQXJndW1lbnRzPiB7CiBwcml2YXRlOgogICAgIFNjb3BlZEFyZ3VtZW50cyhWTSYsIFN0cnVj
dHVyZSosIHVuc2lnbmVkIHRvdGFsTGVuZ3RoKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiwgSlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1bWVudHNUYWJsZSosIEpTTGV4aWNhbEVu
dmlyb25tZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
ZXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggZTdiM2RjMjU2NDAwN2E5MjBkODMxYTlmY2FiNmNmZTc3ZmVlNzI0
NC4uNzEzZjZkZTIzMTkyZTdiZDY0Njc1MmEyNzZlY2RlNmM0ZGI0OTE4NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcApAQCAtNzcsOCAr
NzcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2V0Ojpj
cmVhdGUoZXhlYywgdm0sIHNldFN0cnVjdHVyZSkpOwogICAgIH0KIAotICAgIGlmIChpc0pTU2V0
KGl0ZXJhYmxlKSkgewotICAgICAgICBKU1NldCogaXRlcmFibGVTZXQgPSBqc0Nhc3Q8SlNTZXQq
PihpdGVyYWJsZSk7CisgICAgaWYgKGF1dG8qIGl0ZXJhYmxlU2V0ID0ganNEeW5hbWljQ2FzdDxK
U1NldCo+KHZtLCBpdGVyYWJsZSkpIHsKICAgICAgICAgaWYgKGl0ZXJhYmxlU2V0LT5jYW5DbG9u
ZUZhc3RBbmROb25PYnNlcnZhYmxlKHNldFN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIHNjb3Bl
LnJlbGVhc2UoKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmFibGVT
ZXQtPmNsb25lKGV4ZWMsIHZtLCBzZXRTdHJ1Y3R1cmUpKTsKQEAgLTEwOSw3ICsxMDgsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQoRXhlY1N0YXRl
KiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0
QnVja2V0SGVhZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgQVNTRVJUKGlzSlNTZXQoZXhlYy0+
YXJndW1lbnQoMCkpKTsKKyAgICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU1NldCo+KGV4ZWMtPnZt
KCksIGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgSlNTZXQqIHNldCA9IGpzQ2FzdDxKU1NldCo+
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBhdXRvKiBoZWFkID0gc2V0LT5oZWFk
KCk7CiAgICAgQVNTRVJUKGhlYWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NldFByb3RvdHlwZS5jcHAKaW5kZXggNWRiNTJjMjc2ZGU1MTJiMzA3ZTU1NzY1NTg2M2JhZTBk
OTJmZGYyNS4uMjkzNDM5NjA4N2U2OGJmMzhjOTE4NzMxODA0ZjZmNmU3MGIwN2Q2YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUuY3BwCkBAIC04Niw4
ICs4Niw5IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIEpTU2V0KiBnZXRTZXQoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgdGhpc1ZhbHVlKQogICAgICAgICB0aHJvd1ZNRXJyb3IoY2FsbEZy
YW1lLCBzY29wZSwgY3JlYXRlTm90QW5PYmplY3RFcnJvcihjYWxsRnJhbWUsIHRoaXNWYWx1ZSkp
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgaWYgKExJS0VMWSh0aGlzVmFs
dWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU1NldFR5cGUpKQotICAgICAgICByZXR1cm4ganNDYXN0
PEpTU2V0Kj4odGhpc1ZhbHVlKTsKKyAgICBhdXRvKiBzZXQgPSBqc0R5bmFtaWNDYXN0PEpTU2V0
Kj4odm0sIHRoaXNWYWx1ZS5hc0NlbGwoKSk7CisgICAgaWYgKExJS0VMWShzZXQpKQorICAgICAg
ICByZXR1cm4gc2V0OwogICAgIHRocm93VHlwZUVycm9yKGNhbGxGcmFtZSwgc2NvcGUsIEFTQ0lJ
TGl0ZXJhbCgiU2V0IG9wZXJhdGlvbiBjYWxsZWQgb24gbm9uLVNldCBvYmplY3QiKSk7CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaAppbmRleCA3NDBjYTMyODg5ZTk5Yjg4NmY5MzcwMmNi
OWJjOGQwMjg3OWI3MzUxLi4yYmUwOWY1ZGQ5NWE0YmI0OTNmMzk5NzU4MjhhZDViNzM1ZDg1ZTVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0
aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxB
Y3RpdmF0aW9uLmgKQEAgLTI5LDEwICsyOSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFz
cyBTdHJpY3RFdmFsQWN0aXZhdGlvbiA6IHB1YmxpYyBKU1Njb3BlIHsKK2NsYXNzIFN0cmljdEV2
YWxBY3RpdmF0aW9uIGZpbmFsIDogcHVibGljIEpTU2NvcGUgewogcHVibGljOgotICAgIHR5cGVk
ZWYgSlNTY29wZSBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHVzaW5nIEJhc2UgPSBKU1Njb3BlOwogCiAg
ICAgc3RhdGljIFN0cmljdEV2YWxBY3RpdmF0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U1Njb3BlKiBjdXJyZW50U2NvcGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcAppbmRleCBmNjA3NjM2ZGFmZmUzNDY3OTg3
MjdlNjk1Y2Q1M2YzYjVkNTE5NWJlLi41NWNhMDI4NGRjMjlkYTE2NmU0YjJjMGZmN2M0NzYyNjcw
ODU2YjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFw
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFw
UHJvdG90eXBlLmNwcApAQCAtNjIsOCArNjIsOSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dl
YWtNYXAqIGdldFdlYWtNYXAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChMSUtFTFkoaXNKU1dlYWtN
YXAoYXNPYmplY3QodmFsdWUpKSkpCi0gICAgICAgIHJldHVybiBqc0Nhc3Q8SlNXZWFrTWFwKj4o
dmFsdWUpOworICAgIGF1dG8qIG1hcCA9IGpzRHluYW1pY0Nhc3Q8SlNXZWFrTWFwKj4odm0sIGFz
T2JqZWN0KHZhbHVlKSk7CisgICAgaWYgKExJS0VMWShtYXApKQorICAgICAgICByZXR1cm4gbWFw
OwogCiAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJSUxpdGVy
YWwoIkNhbGxlZCBXZWFrTWFwIGZ1bmN0aW9uIG9uIGEgbm9uLVdlYWtNYXAgb2JqZWN0IikpOwog
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcAppbmRleCA2NDg2ZDIxMzhlMmY1N2EyMGUxODdiNDYwZTI5
MjQzNDk2MjA0OTc2Li4xNDEzYWU2YjFiYTI5MzM2ZTJiNDI3ODhmODQwMDBiNGY1MzY0YjYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBl
LmNwcApAQCAtNjAsOCArNjAsOSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtTZXQqIGdl
dFdlYWtTZXQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChMSUtFTFkoaXNKU1dlYWtTZXQoYXNPYmpl
Y3QodmFsdWUpKSkpCi0gICAgICAgIHJldHVybiBqc0Nhc3Q8SlNXZWFrU2V0Kj4odmFsdWUpOwor
ICAgIGF1dG8qIHNldCA9IGpzRHluYW1pY0Nhc3Q8SlNXZWFrU2V0Kj4odm0sIGFzT2JqZWN0KHZh
bHVlKSk7CisgICAgaWYgKExJS0VMWShzZXQpKQorICAgICAgICByZXR1cm4gc2V0OwogCiAgICAg
dGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwgV1RGOjpBU0NJSUxpdGVyYWwoIkNhbGxl
ZCBXZWFrU2V0IGZ1bmN0aW9uIG9uIGEgbm9uLVdlYWtTZXQgb2JqZWN0IikpOwogICAgIHJldHVy
biBudWxscHRyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335192</attachid>
            <date>2018-03-07 08:00:10 -0800</date>
            <delta_ts>2018-03-07 08:01:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183403-20180308010009.patch</filename>
            <type>text/plain</type>
            <size>42043</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZDk0NWIyMzg5NjczNjZkNzY2NzJiZGQ3ZWMxMDRmMmY1ZjdmYTc0Li4yODBiMzllZTNmMzM0NzJj
MmE4YTJhZTNiZmZjZDI1NzU5ZDUxODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDEgQEAKKzIwMTgtMDMtMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIG1vcmUgSlNUeXBlIGJhc2VkIGZhc3QgcGF0aCBm
b3IganNEeW5hbWljQ2FzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzNDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgYWRkIG1vcmUgSlNUeXBlIGJhc2VkIGZhc3QgcGF0aCBmb3IganNEeW5hbWlj
Q2FzdC4gQmFzaWNhbGx5LCB3ZSBhZGQgbWlzY2VsbGFuZW91cyBKU1R5cGVzIHdoaWNoCisgICAg
ICAgIGFyZSB1c2VkIGZvciBqc0R5bmFtaWNDYXN0IGluIEpTQywgYXJndW1lbnRzIHR5cGVzLCBh
bmQgc2NvcGUgdHlwZXMuCisKKyAgICAgICAgV2UgYWxzbyBhZGQgQ2xhc3NJbmZvIHRvIEpTU2Nv
cGUgYW5kIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Qgc2luY2UgdGhleSBhcmUgdXNlZCB3aXRo
IGpzRHluYW1pY0Nhc3QuCisKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6c2V0
VXBDYWxsKToKKyAgICAgICAgKiBydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5oOgorICAgICAgICAo
SlNDOjpDbG9uZWRBcmd1bWVudHM6OnNwZWNpYWxzTWF0ZXJpYWxpemVkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0RpcmVjdEFyZ3VtZW50cy5oOgorICAgICAgICAoSlNDOjpE
aXJlY3RBcmd1bWVudHM6OnN1YnNwYWNlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGly
ZWN0QXJndW1lbnRzOjppbnRlcm5hbExlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRpcmVjdEFyZ3VtZW50czo6bGVuZ3RoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6RGlyZWN0QXJndW1lbnRzOjppc01hcHBlZEFyZ3VtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjppc01hcHBlZEFyZ3VtZW50SW5ERkcgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OmdldEluZGV4UXVpY2ts
eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6c2V0SW5k
ZXhRdWlja2x5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjpjYWxs
ZWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OmFyZ3VtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjpvdmVycm9kZVRoaW5ncyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6aW5pdE1vZGlm
aWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6RGlyZWN0QXJndW1lbnRzOjpzZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6aXNNb2RpZmllZEFyZ3VtZW50RGVz
Y3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6b2Zmc2V0
T2ZDYWxsZWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6Om9mZnNl
dE9mTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRzOjpvZmZz
ZXRPZk1pbkNhcGFjaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RGlyZWN0QXJndW1lbnRz
OjpvZmZzZXRPZk1hcHBlZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRpcmVj
dEFyZ3VtZW50czo6b2Zmc2V0T2ZNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3IpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mU2xvdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRpcmVjdEFyZ3VtZW50czo6YWxsb2NhdGlvblNpemUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNDYXN0Lmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbExleGlj
YWxFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbExleGljYWxFbnZpcm9ubWVu
dDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQ6OmlzRW1wdHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dsb2JhbExl
eGljYWxFbnZpcm9ubWVudDo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQ6OkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50
aW1lL0pTTWFwLmg6CisgICAgICAgIChKU0M6OmlzSlNNYXApOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjpKU01vZHVsZUVu
dmlyb25tZW50OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU01vZHVsZUVudmly
b25tZW50OjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU01vZHVs
ZUVudmlyb25tZW50OjpvZmZzZXRPZk1vZHVsZVJlY29yZCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkpTTW9kdWxlRW52aXJvbm1lbnQ6OmFsbG9jYXRpb25TaXplKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SlNNb2R1bGVFbnZpcm9ubWVudDo6bW9kdWxlUmVjb3JkKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SlNNb2R1bGVFbnZpcm9ubWVudDo6bW9kdWxlUmVjb3JkU2xvdCk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNhbkRv
RmFzdFB1dERpcmVjdEluZGV4KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlZmluZU93bklu
ZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RJbmRleFNs
b3dPckJleW9uZFZlY3Rvckxlbmd0aCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU0ZpbmFsT2JqZWN0OjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkpTRmluYWxPYmplY3Q6OnR5cGVJbmZvKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6SlNGaW5hbE9iamVjdDo6ZGVmYXVsdElubGluZUNhcGFjaXR5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SlNGaW5hbE9iamVjdDo6bWF4SW5saW5lQ2FwYWNpdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpKU0ZpbmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkpTRmluYWxPYmplY3Q6OkpTRmluYWxPYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjppc0pTRmluYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
SlNTY29wZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1Njb3BlLmg6CisgICAgICAgICogcnVu
dGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU2V0Lmg6Cisg
ICAgICAgIChKU0M6OmlzSlNTZXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBl
Lmg6CisgICAgICAgICogcnVudGltZS9KU1dlYWtNYXAuaDoKKyAgICAgICAgKEpTQzo6aXNKU1dl
YWtNYXApOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNXZWFrU2V0Lmg6CisgICAgICAg
IChKU0M6OmlzSlNXZWFrU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTV2l0aFNj
b3BlLmg6CisgICAgICAgIChKU0M6OkpTV2l0aFNjb3BlOjpvYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RNYXApOgorICAgICAgICAoSlNDOjptYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0TWFwKToK
KyAgICAgICAgKiBydW50aW1lL051bWJlck9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Ok51bWJl
ck9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6dG9UaGlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6bnVt
YmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCk6CisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVu
Y1RvRml4ZWQpOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbik6Cisg
ICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6bnVt
YmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1
bmNWYWx1ZU9mKToKKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JTZWFsKToKKyAgICAgICAgKEpTQzo6b2JqZWN0
Q29uc3RydWN0b3JGcmVlemUpOgorICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvcklzU2Vh
bGVkKToKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JJc0Zyb3plbik6CisgICAgICAg
ICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1bWVudHMuaDoKKyAg
ICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpzdWJzcGFjZUZvcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aW50ZXJuYWxMZW5ndGggY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVudHM6Omxlbmd0aCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aXNNYXBwZWRBcmd1bWVudCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aXNNYXBwZWRBcmd1bWVu
dEluREZHIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpn
ZXRJbmRleFF1aWNrbHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1
bWVudHM6OnNldEluZGV4UXVpY2tseSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFy
Z3VtZW50czo6Y2FsbGVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRz
OjpvdmVycm9kZVRoaW5ncyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFy
Z3VtZW50czo6aW5pdE1vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpzZXRNb2RpZmllZEFyZ3VtZW50
RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6aXNN
b2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNjb3Bl
ZEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5ncyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUYWJsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTY29wZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b3ZlcmZsb3dTdG9yYWdlT2Zmc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b3ZlcmZsb3dTdG9yYWdlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0U2V0KToKKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1bmNTZXRC
dWNrZXRIZWFkKToKKyAgICAgICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OmdldFNldCk6CisgICAgICAgICogcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5o
OgorICAgICAgICAoSlNDOjpTdHJpY3RFdmFsQWN0aXZhdGlvbjo6Y3JlYXRlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OmNyZWF0ZVN0cnVjdHVyZSk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAg
KEpTQzo6Z2V0V2Vha01hcCk6CisgICAgICAgICogcnVudGltZS9XZWFrU2V0UHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6Z2V0V2Vha1NldCk6CisKIDIwMTgtMDMtMDcgIERvbWluaWsgSW5m
dWVociAgPGRpbmZ1ZWhyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0FSTV0gb2ZmbGluZWFzbTog
Zml4IGluZGVudGF0aW9uIGluIGFybU9wY29kZVJldmVyc2VkT3BlcmFuZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGI1ZGUwMjNmYzIzYjdlNDhi
ZjY0YzNkMDI1NjY0ZmI2ZDRkZDQ4ZTUuLjQxMjJjYTlkMGYwNjIyMzRjYzliZDVmNzMxNjlhZTRh
OTc2ZjMzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cApAQCAtOTM4LDE0ICs5MzgsMTQgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTGlua0NhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDYWxsTGkKICAgICBKU1Zh
bHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgp
OwogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxl
ZUFzVmFsdWUpOwogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpIHsKLSAgICAgICAgaWYg
KGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgp
ID09IEludGVybmFsRnVuY3Rpb25UeXBlKSB7CisgICAgICAgIGlmIChhdXRvKiBpbnRlcm5hbEZ1
bmN0aW9uID0ganNEeW5hbWljQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4oKnZtLCBjYWxsZWVBc1Zh
bHVlKSkgewogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIgPSB2bS0+
Z2V0Q1RJSW50ZXJuYWxGdW5jdGlvblRyYW1wb2xpbmVGb3Ioa2luZCk7CiAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVCghIWNvZGVQdHIpOwogCiAgICAgICAgICAgICBpZiAoIWNhbGxMaW5rSW5m
by0+c2Vlbk9uY2UoKSkKICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldFNlZW4oKTsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBsaW5rRm9yKGV4ZWNDYWxsZWUsICpj
YWxsTGlua0luZm8sIG51bGxwdHIsIGFzT2JqZWN0KGNhbGxlZUFzVmFsdWUpLCBjb2RlUHRyKTsK
KyAgICAgICAgICAgICAgICBsaW5rRm9yKGV4ZWNDYWxsZWUsICpjYWxsTGlua0luZm8sIG51bGxw
dHIsIGludGVybmFsRnVuY3Rpb24sIGNvZGVQdHIpOwogCiAgICAgICAgICAgICByZXR1cm4gZW5j
b2RlUmVzdWx0KGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oY2FsbExpbmtJbmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8gUmV1c2VU
aGVGcmFtZSA6IEtlZXBUaGVGcmFtZSkpOwogICAgICAgICB9CkBAIC0xMDYwLDcgKzEwNjAsNyBA
QCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oCiAgICAg
SlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxs
ZWUoKTsKICAgICBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkpIHsKLSAgICAg
ICAgaWYgKGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+
dHlwZSgpID09IEludGVybmFsRnVuY3Rpb25UeXBlKSB7CisgICAgICAgIGlmIChqc0R5bmFtaWND
YXN0PEludGVybmFsRnVuY3Rpb24qPigqdm0sIGNhbGxlZUFzVmFsdWUpKSB7CiAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLT5nZXRDVElJbnRlcm5hbEZ1bmN0
aW9uVHJhbXBvbGluZUZvcihraW5kKTsKICAgICAgICAgICAgIEFTU0VSVCghIWNvZGVQdHIpOwog
ICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNz
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2FsbE1vZGUoKSA9PSBD
YWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGFkZDYyYjk4
NzExYzM3OTczYmQxYmFiZTk0ZmE4NDgwNWU1Mzg1MTQuLmE5MGNiOWU0NTE4MGRiMzE3NzFhMmRi
NjA0ZmM5MzBmZDc5MDY1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcApAQCAtMTM3Myw4ICsxMzczLDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0
dXJuVHlwZSBzZXRVcENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiogcGMs
IENvZGUKICAgICAKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5j
dGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7Ci0g
ICAgICAgIGlmIChjYWxsZWVBc1ZhbHVlLmlzQ2VsbCgpICYmIGNhbGxlZUFzVmFsdWUuYXNDZWxs
KCktPnR5cGUoKSA9PSBJbnRlcm5hbEZ1bmN0aW9uVHlwZSkgewotICAgICAgICAgICAgYXV0byog
aW50ZXJuYWxGdW5jdGlvbiA9IGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4oY2FsbGVlQXNWYWx1
ZS5hc0NlbGwoKSk7CisgICAgICAgIGlmIChhdXRvKiBpbnRlcm5hbEZ1bmN0aW9uID0ganNEeW5h
bWljQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4odm0sIGNhbGxlZUFzVmFsdWUpKSB7CiAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLmdldENUSUludGVybmFsRnVu
Y3Rpb25UcmFtcG9saW5lRm9yKGtpbmQpOwogICAgICAgICAgICAgQVNTRVJUKCEhY29kZVB0cik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3Vt
ZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgK
aW5kZXggNzYwMWM1YzkxYmI5MTQ2YmZjM2M2YjMwZjY2OWI3MDljMmVmMjM0Yy4uOTdkMmFlNjk0
ODQ3Njg3YzdhMGFlZjFiMGU2NTNjYTc5NjQxMzhiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAvLyBwcm9wZXJ0aWVzIG9mIHRoZSBvYmplY3QgYXJlIHBvcHVsYXRlZC4gVGhl
IG9ubHkgcmVhc29uIHdoeSB3ZSBuZWVkIGEgc3BlY2lhbCBjbGFzcyBpcyB0byBtYWtlCiAvLyB0
aGUgb2JqZWN0IGNsYWltIHRvIGJlICJBcmd1bWVudHMiIGZyb20gYSB0b1N0cmluZyBzdGFuZHBv
aW50LCBhbmQgdG8gYXZvaWQgbWF0ZXJpYWxpemluZyB0aGUKIC8vIGNhbGxlci9jYWxsZWUvQEBp
dGVyYXRvciBwcm9wZXJ0aWVzIHVubGVzcyBzb21lb25lIGFza3MgZm9yIHRoZW0uCi1jbGFzcyBD
bG9uZWRBcmd1bWVudHMgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitjbGFzcyBDbG9uZWRB
cmd1bWVudHMgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaAppbmRleCAxNjA2ZjFhZGFkOTY4
NmVmZjg3YzFmN2E2NTg2YTVjZDc0NzdiMGFjLi5kM2ExNWE1YjM5ZjY5MmE0OWEyMGE4NWYwNDcx
MmQ5M2NiMmMzNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
aXJlY3RBcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJl
Y3RBcmd1bWVudHMuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vCiAvLyBU
byBzcGVlZCBhbGxvY2F0aW9uLCB0aGlzIG9iamVjdCB3aWxsIGhvbGQgYWxsIG9mIHRoZSBhcmd1
bWVudHMgaW4tcGxhY2UuIFRoZSBhcmd1bWVudHMgYXMgd2VsbAogLy8gYXMgYSB0YWJsZSBvZiBm
bGFncyBzYXlpbmcgd2hpY2ggYXJndW1lbnRzIHdlcmUgb3ZlcnJpZGRlbi4KLWNsYXNzIERpcmVj
dEFyZ3VtZW50cyA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPERpcmVjdEFyZ3VtZW50cz4gewor
Y2xhc3MgRGlyZWN0QXJndW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVyaWNBcmd1bWVudHM8RGly
ZWN0QXJndW1lbnRzPiB7CiBwcml2YXRlOgogICAgIERpcmVjdEFyZ3VtZW50cyhWTSYsIFN0cnVj
dHVyZSosIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgY2FwYWNpdHkpOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRleCA0ZmUyYjlmYjRmYmE5N2YyZTQ1YTQ0
MmExMDFmMmViNzI5NjE0NmM3Li4xODU3ZjY4ZTY0NWFiZDIzNjhkODI3ZDU1MGVjMzEzZGFiNmFh
YmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApAQCAtNDgsMTAgKzQ4
LDI3IEBAIGlubGluZSBUbyBqc0Nhc3QoSlNWYWx1ZSBmcm9tKQogLy8gU3BlY2lmaWMgdHlwZSBv
dmVybG9hZHMuCiAjZGVmaW5lIEZPUl9FQUNIX0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJM
T0FEKG1hY3JvKSBcCiAgICAgbWFjcm8oSlNPYmplY3QsIEpTVHlwZTo6T2JqZWN0VHlwZSwgSlNU
eXBlOjpMYXN0SlNDT2JqZWN0VHlwZSkgXAorICAgIG1hY3JvKEpTRmluYWxPYmplY3QsIEpTVHlw
ZTo6RmluYWxPYmplY3RUeXBlLCBKU1R5cGU6OkZpbmFsT2JqZWN0VHlwZSkgXAogICAgIG1hY3Jv
KEpTRnVuY3Rpb24sIEpTVHlwZTo6SlNGdW5jdGlvblR5cGUsIEpTVHlwZTo6SlNGdW5jdGlvblR5
cGUpIFwKICAgICBtYWNybyhJbnRlcm5hbEZ1bmN0aW9uLCBKU1R5cGU6OkludGVybmFsRnVuY3Rp
b25UeXBlLCBKU1R5cGU6OkludGVybmFsRnVuY3Rpb25UeXBlKSBcCiAgICAgbWFjcm8oSlNBcnJh
eSwgSlNUeXBlOjpBcnJheVR5cGUsIEpTVHlwZTo6RGVyaXZlZEFycmF5VHlwZSkgXAogICAgIG1h
Y3JvKEpTQXJyYXlCdWZmZXJWaWV3LCBGaXJzdFR5cGVkQXJyYXlUeXBlLCBMYXN0VHlwZWRBcnJh
eVR5cGUpIFwKKyAgICBtYWNybyhKU1NldCwgSlNUeXBlOjpKU1NldFR5cGUsIEpTVHlwZTo6SlNT
ZXRUeXBlKSBcCisgICAgbWFjcm8oSlNNYXAsIEpTVHlwZTo6SlNNYXBUeXBlLCBKU1R5cGU6OkpT
TWFwVHlwZSkgXAorICAgIG1hY3JvKEpTV2Vha1NldCwgSlNUeXBlOjpKU1dlYWtTZXRUeXBlLCBK
U1R5cGU6OkpTV2Vha1NldFR5cGUpIFwKKyAgICBtYWNybyhKU1dlYWtNYXAsIEpTVHlwZTo6SlNX
ZWFrTWFwVHlwZSwgSlNUeXBlOjpKU1dlYWtNYXBUeXBlKSBcCisgICAgbWFjcm8oTnVtYmVyT2Jq
ZWN0LCBKU1R5cGU6Ok51bWJlck9iamVjdFR5cGUsIEpTVHlwZTo6TnVtYmVyT2JqZWN0VHlwZSkg
XAorICAgIG1hY3JvKFByb3h5T2JqZWN0LCBKU1R5cGU6OlByb3h5T2JqZWN0VHlwZSwgSlNUeXBl
OjpQcm94eU9iamVjdFR5cGUpIFwKKyAgICBtYWNybyhEaXJlY3RBcmd1bWVudHMsIEpTVHlwZTo6
RGlyZWN0QXJndW1lbnRzVHlwZSwgSlNUeXBlOjpEaXJlY3RBcmd1bWVudHNUeXBlKSBcCisgICAg
bWFjcm8oU2NvcGVkQXJndW1lbnRzLCBKU1R5cGU6OlNjb3BlZEFyZ3VtZW50c1R5cGUsIEpTVHlw
ZTo6U2NvcGVkQXJndW1lbnRzVHlwZSkgXAorICAgIG1hY3JvKENsb25lZEFyZ3VtZW50cywgSlNU
eXBlOjpDbG9uZWRBcmd1bWVudHNUeXBlLCBKU1R5cGU6OkNsb25lZEFyZ3VtZW50c1R5cGUpIFwK
KyAgICBtYWNybyhKU0dsb2JhbE9iamVjdCwgSlNUeXBlOjpHbG9iYWxPYmplY3RUeXBlLCBKU1R5
cGU6Okdsb2JhbE9iamVjdFR5cGUpIFwKKyAgICBtYWNybyhKU0dsb2JhbExleGljYWxFbnZpcm9u
bWVudCwgSlNUeXBlOjpHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnRUeXBlLCBKU1R5cGU6Okdsb2Jh
bExleGljYWxFbnZpcm9ubWVudFR5cGUpIFwKKyAgICBtYWNybyhKU1NlZ21lbnRlZFZhcmlhYmxl
T2JqZWN0LCBKU1R5cGU6Okdsb2JhbE9iamVjdFR5cGUsIEpTVHlwZTo6R2xvYmFsTGV4aWNhbEVu
dmlyb25tZW50VHlwZSkgXAorICAgIG1hY3JvKEpTTW9kdWxlRW52aXJvbm1lbnQsIEpTVHlwZTo6
TW9kdWxlRW52aXJvbm1lbnRUeXBlLCBKU1R5cGU6Ok1vZHVsZUVudmlyb25tZW50VHlwZSkgXAor
ICAgIG1hY3JvKEpTTGV4aWNhbEVudmlyb25tZW50LCBKU1R5cGU6OkxleGljYWxFbnZpcm9ubWVu
dFR5cGUsIEpTVHlwZTo6TW9kdWxlRW52aXJvbm1lbnRUeXBlKSBcCisgICAgbWFjcm8oSlNTeW1i
b2xUYWJsZU9iamVjdCwgSlNUeXBlOjpHbG9iYWxPYmplY3RUeXBlLCBKU1R5cGU6Ok1vZHVsZUVu
dmlyb25tZW50VHlwZSkgXAorICAgIG1hY3JvKEpTU2NvcGUsIEpTVHlwZTo6R2xvYmFsT2JqZWN0
VHlwZSwgSlNUeXBlOjpXaXRoU2NvcGVUeXBlKSBcCiAKIAogLy8gRm9yd2FyZCBkZWNsYXJlIHRo
ZSBjbGFzc2VzIGJlY2F1c2UgdGhleSBtYXkgbm90IGFscmVhZHkgZXhpc3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVu
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQuaAppbmRleCAxZTlkOWVlNGNmMWUzMTE4ZWE2OGRjMTBlMDk2ZTQyMjY3MDA4OGYxLi4z
YmRhZjRmZWYyYjEzMzA3NzU2ZTU4YWFiMGIwYzk0NmU2OTBjZWJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbExleGljYWxFbnZpcm9ubWVudC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsTGV4aWNhbEVudmlyb25t
ZW50LmgKQEAgLTI5LDEwICsyOSwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgSlNH
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVj
dCB7CitjbGFzcyBKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCBmaW5hbCA6IHB1YmxpYyBKU1Nl
Z21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIAogcHVibGljOgotICAgIHR5cGVkZWYgSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdCBCYXNlOworICAgIHVzaW5nIEJhc2UgPSBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0OwogCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCA3MzRmNmFlMzMxYjk2YTc2OWY4YTdlNjQxODU2MmMyNjE0MzdlMDc4Li40NjFlMDAzZGZhNTA0
ZmZlNTEyZTg0NGRiODg2NDEyZDUyZTIwMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xNTk5LDYgKzE1OTksNyBAQCB2b2lk
IEpTR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgbV9ydW50aW1lRmxh
Z3MgPSBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlLT5qYXZhU2NyaXB0UnVudGltZUZsYWdzKHRo
aXMpOwogICAgIGluaXQodm0pOwogICAgIHNldEdsb2JhbFRoaXModm0sIEpTUHJveHk6OmNyZWF0
ZSh2bSwgSlNQcm94eTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBnZXRQcm90b3R5cGVEaXJl
Y3Qodm0pLCBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSksIHRoaXMpKTsKKyAgICBBU1NFUlQodHlw
ZSgpID09IEdsb2JhbE9iamVjdFR5cGUpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzVmFsdWUpCkBAIC0xNjA4LDYgKzE2MDks
NyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0
KiB0aGlzVmFsdWUpCiAgICAgbV9ydW50aW1lRmxhZ3MgPSBtX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlLT5qYXZhU2NyaXB0UnVudGltZUZsYWdzKHRoaXMpOwogICAgIGluaXQodm0pOwogICAgIHNl
dEdsb2JhbFRoaXModm0sIHRoaXNWYWx1ZSk7CisgICAgQVNTRVJUKHR5cGUoKSA9PSBHbG9iYWxP
YmplY3RUeXBlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNYXAuaAppbmRleCA5YzlkNTA2NWNhZTYwMjYxYWFkMmYxMDg4ZjFjNTgyMGZmZDcy
NDY3Li5mMGViYjU0ZDE4NDJjMGYzNGYwZmEzMDM0NjU0YTBkZjY1YzE1ZjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwLmgKQEAgLTY2LDE2ICs2Niw2IEBAIGNsYXNzIEpTTWFw
IGZpbmFsIDogcHVibGljIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERh
dGFLZXlWYWx1ZT4+CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqKTsKIH07CiAKLWlubGluZSBib29sIGlzSlNNYXAoSlNDZWxsKiBmcm9t
KQotewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxKU01hcD46OnZhbHVlLCAiIik7
Ci0gICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBKU01hcFR5cGU7Ci19Ci0KLWlubGluZSBib29s
IGlzSlNNYXAoSlNWYWx1ZSBmcm9tKQotewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5h
bDxKU01hcD46OnZhbHVlLCAiIik7Ci0gICAgcmV0dXJuIGZyb20uaXNDZWxsKCkgJiYgZnJvbS5h
c0NlbGwoKS0+dHlwZSgpID09IEpTTWFwVHlwZTsKLX0KK3N0YXRpY19hc3NlcnQoc3RkOjppc19m
aW5hbDxKU01hcD46OnZhbHVlLCAiUmVxdWlyZWQgZm9yIEpTVHlwZSBiYXNlZCBjYXN0aW5nIik7
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNb2R1bGVFbnZpcm9ubWVudC5oCmluZGV4IGMzZmQxNmZjZjlkNmIzZTViY2Y0MWY4
ZjI4MzZkN2FhZTAyYWRjZWQuLjIwNDQwZWVhMzg2M2NhN2RiNjgyODBjOWI2MmZmYzlhYmU0NzUx
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlRW52
aXJvbm1lbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUVu
dmlyb25tZW50LmgKQEAgLTM1LDExICszNSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFi
c3RyYWN0TW9kdWxlUmVjb3JkOwogY2xhc3MgUmVnaXN0ZXI7CiAKLWNsYXNzIEpTTW9kdWxlRW52
aXJvbm1lbnQgOiBwdWJsaWMgSlNMZXhpY2FsRW52aXJvbm1lbnQgeworY2xhc3MgSlNNb2R1bGVF
bnZpcm9ubWVudCBmaW5hbCA6IHB1YmxpYyBKU0xleGljYWxFbnZpcm9ubWVudCB7CiAgICAgZnJp
ZW5kIGNsYXNzIEpJVDsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwog
cHVibGljOgotICAgIHR5cGVkZWYgSlNMZXhpY2FsRW52aXJvbm1lbnQgQmFzZTsKKyAgICB1c2lu
ZyBCYXNlID0gSlNMZXhpY2FsRW52aXJvbm1lbnQ7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgc3RhdGljIEpT
TW9kdWxlRW52aXJvbm1lbnQqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIEpTU2NvcGUqLCBTeW1i
b2xUYWJsZSosIEpTVmFsdWUgaW5pdGlhbFZhbHVlLCBBYnN0cmFjdE1vZHVsZVJlY29yZCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGVmMGUyMmZi
NjRkOWNlZjE3OGViM2I2NmI0OTkzMTYyNTI0NmE2ZjcuLjI1MjU5MTNkZjM3MzMxZjU3YTdiNTI1
YzZmMDEyMDgwNWE3ZWZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAKQEAgLTI0MDcsMTAgKzI0MDcsMTAgQEAgYm9vbCBKU09iamVjdDo6cHV0SW5kZXhl
ZERlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBTcGFyc2VBcnJheUVudHJ5KiBlbnRyeUluTWEK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBjYW5Eb0Zh
c3RQdXREaXJlY3RJbmRleChKU09iamVjdCogb2JqZWN0KQorQUxXQVlTX0lOTElORSBzdGF0aWMg
Ym9vbCBjYW5Eb0Zhc3RQdXREaXJlY3RJbmRleChWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiB7
CiAgICAgcmV0dXJuIGlzSlNBcnJheShvYmplY3QpCi0gICAgICAgIHx8IGlzSlNGaW5hbE9iamVj
dChvYmplY3QpCisgICAgICAgIHx8IGpzRHluYW1pY0Nhc3Q8SlNGaW5hbE9iamVjdCo+KHZtLCBv
YmplY3QpCiAgICAgICAgIHx8IFR5cGVJbmZvOjppc0FyZ3VtZW50c1R5cGUob2JqZWN0LT50eXBl
KCkpOwogfQogCkBAIC0yNDI3LDcgKzI0MjcsNyBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25J
bmRleGVkUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgY29uc3QgUAog
ICAgICAgICAvLyBGSVhNRTogdGhpcyB3aWxsIHBlc3NpbWlzdGljYWxseSBhc3N1bWUgdGhhdCBp
ZiBhdHRyaWJ1dGVzIGFyZSBtaXNzaW5nIHRoZW4gdGhleSdsbCBkZWZhdWx0IHRvIGZhbHNlCiAg
ICAgICAgIC8vIGhvd2V2ZXIgaWYgdGhlIHByb3BlcnR5IGN1cnJlbnRseSBleGlzdHMgbWlzc2lu
ZyBhdHRyaWJ1dGVzIHdpbGwgb3ZlcnJpZGUgZnJvbSB0aGVpciBjdXJyZW50ICd0cnVlJwogICAg
ICAgICAvLyBzdGF0ZSAoaS5lLiBkZWZpbmVPd25Qcm9wZXJ0eSBjb3VsZCBiZSB1c2VkIHRvIHNl
dCBhIHZhbHVlIHdpdGhvdXQgbmVlZGluZyB0byBlbnRlcmluZyAnU3BhcnNlTW9kZScpLgotICAg
ICAgICBpZiAoIWRlc2NyaXB0b3IuYXR0cmlidXRlcygpICYmIGRlc2NyaXB0b3IudmFsdWUoKSAm
JiBjYW5Eb0Zhc3RQdXREaXJlY3RJbmRleCh0aGlzKSkgeworICAgICAgICBpZiAoIWRlc2NyaXB0
b3IuYXR0cmlidXRlcygpICYmIGRlc2NyaXB0b3IudmFsdWUoKSAmJiBjYW5Eb0Zhc3RQdXREaXJl
Y3RJbmRleCh2bSwgdGhpcykpIHsKICAgICAgICAgICAgIEFTU0VSVCghZGVzY3JpcHRvci5pc0Fj
Y2Vzc29yRGVzY3JpcHRvcigpKTsKICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAg
ICAgICAgIHJldHVybiBwdXREaXJlY3RJbmRleChleGVjLCBpbmRleCwgZGVzY3JpcHRvci52YWx1
ZSgpLCAwLCB0aHJvd0V4Y2VwdGlvbiA/IFB1dERpcmVjdEluZGV4U2hvdWxkVGhyb3cgOiBQdXRE
aXJlY3RJbmRleFNob3VsZE5vdFRocm93KTsKQEAgLTI4ODEsNyArMjg4MSw3IEBAIGJvb2wgSlNP
YmplY3Q6OnB1dERpcmVjdEluZGV4U2xvd09yQmV5b25kVmVjdG9yTGVuZ3RoKEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIAotICAgIGlm
ICghY2FuRG9GYXN0UHV0RGlyZWN0SW5kZXgodGhpcykpIHsKKyAgICBpZiAoIWNhbkRvRmFzdFB1
dERpcmVjdEluZGV4KHZtLCB0aGlzKSkgewogICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVz
Y3JpcHRvcjsKICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHZhbHVlLCBhdHRyaWJ1
dGVzKTsKICAgICAgICAgcmV0dXJuIG1ldGhvZFRhYmxlKHZtKS0+ZGVmaW5lT3duUHJvcGVydHko
dGhpcywgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgZGVzY3JpcHRvciwgbW9kZSA9
PSBQdXREaXJlY3RJbmRleFNob3VsZFRocm93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCmluZGV4IGI0ZDhiMWE4MTA1NzIyM2JlYzE4MmMwMDhlOTM3NGUzMjAzZTY5
MTIuLjNiNTA4MjE2OGJlZDkwMDc2ODhlOWMxOTYyZTY1MGQ1MTdlYWQxZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTA5Niw5ICsxMDk2LDkgQEAgY2xh
c3MgSlNOb25GaW5hbE9iamVjdCA6IHB1YmxpYyBKU09iamVjdCB7CiAKIGNsYXNzIEpTRmluYWxP
YmplY3Q7CiAKLS8vIEpTRmluYWxPYmplY3QgaXMgYSB0eXBlIG9mIEpTT2JqZWN0IHRoYXQgY29u
dGFpbnMgc3VmZmljZW50IGludGVybmFsCi0vLyBzdG9yYWdlIHRvIGZ1bGx5IG1ha2UgdXNlIG9m
IHRoZSBjb2xsb2N0b3IgY2VsbCBjb250YWluaW5nIGl0LgotY2xhc3MgSlNGaW5hbE9iamVjdCA6
IHB1YmxpYyBKU09iamVjdCB7CisvLyBKU0ZpbmFsT2JqZWN0IGlzIGEgdHlwZSBvZiBKU09iamVj
dCB0aGF0IGNvbnRhaW5zIHN1ZmZpY2llbnQgaW50ZXJuYWwKKy8vIHN0b3JhZ2UgdG8gZnVsbHkg
bWFrZSB1c2Ugb2YgdGhlIGNvbGxlY3RvciBjZWxsIGNvbnRhaW5pbmcgaXQuCitjbGFzcyBKU0Zp
bmFsT2JqZWN0IGZpbmFsIDogcHVibGljIEpTT2JqZWN0IHsKICAgICBmcmllbmQgY2xhc3MgSlNP
YmplY3Q7CiAKIHB1YmxpYzoKQEAgLTExOTUsMTYgKzExOTUsNiBAQCBpbmxpbmUgSlNGaW5hbE9i
amVjdCogSlNGaW5hbE9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgcmV0dXJuIGZpbmFsT2JqZWN0OwogfQogCi1pbmxpbmUgYm9vbCBpc0pTRmluYWxPYmpl
Y3QoSlNDZWxsKiBjZWxsKQotewotICAgIHJldHVybiBjZWxsLT50eXBlKCkgPT0gRmluYWxPYmpl
Y3RUeXBlOwotfQotCi1pbmxpbmUgYm9vbCBpc0pTRmluYWxPYmplY3QoSlNWYWx1ZSB2YWx1ZSkK
LXsKLSAgICByZXR1cm4gdmFsdWUuaXNDZWxsKCkgJiYgaXNKU0ZpbmFsT2JqZWN0KHZhbHVlLmFz
Q2VsbCgpKTsKLX0KLQogaW5saW5lIHNpemVfdCBKU09iamVjdDo6b2Zmc2V0T2ZJbmxpbmVTdG9y
YWdlKCkKIHsKICAgICByZXR1cm4gc2l6ZW9mKEpTT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKaW5kZXggYzlkZjZjZWJjYmMwYzVhMTE2MWQzODJjNmM2
M2NkOTcxMDQ0YjkxNS4uM2Y3ZjNmMTQ5N2QwYWEyYzllNTM0NGU3YTNhOGVmNDBiMTYwZjgwYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTY29wZS5jcHAKQEAgLTM5LDYgKzM5
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RS
VUNUSUJMRShKU1Njb3BlKTsKIAorY29uc3QgQ2xhc3NJbmZvIEpTU2NvcGU6OnNfaW5mbyA9IHsg
IlNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Njb3BlKSB9OworCiB2b2lkIEpTU2NvcGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1Njb3BlKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTU2NvcGUqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU2NvcGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2Nv
cGUuaAppbmRleCBkMjIxYmMwMWQyNjRlMDEyNmU0MjYyMWEzNzIyYWRmMjJiMDcwMWY3Li42ZjIz
OWM1M2FjNTk1MDY2ODYzMzdmOThiMjE3ZmUyNDE1ODRmNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Njb3BlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTY29wZS5oCkBAIC0zNyw5ICszNywxMSBAQCBjbGFzcyBXYXRjaHBvaW50
U2V0OwogCiBjbGFzcyBKU1Njb3BlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgotICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworICAgIHVzaW5nIEJhc2UgPSBK
U05vbkZpbmFsT2JqZWN0OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzVG9UaGlzOwogCisgICAgREVDTEFS
RV9FWFBPUlRfSU5GTzsKKwogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CiAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZk5leHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNw
cAppbmRleCBiNzQ4N2Y1NDRhNzE1YThmOTMyYzY0NTIxMzcyYzcxN2FiNmI1YzU2Li5lNTYwMzY5
OWQwZTQyNmMwM2IyZjQwZmM0YzkyMjQ5YmNmMDZmY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNw
cApAQCAtMzQsNiArMzQsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY29uc3QgQ2xhc3NJbmZv
IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OnNfaW5mbyA9IHsgIlNlZ21lbnRlZFZhcmlhYmxl
T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0KSB9OworCiBTY29wZU9mZnNldCBKU1NlZ21l
bnRlZFZhcmlhYmxlT2JqZWN0OjpmaW5kVmFyaWFibGVJbmRleCh2b2lkKiB2YXJpYWJsZUFkZHJl
c3MpCiB7CiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihtX2xvY2spOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oCmluZGV4IGI5MmZkN2Y3ZWE5ZWQwYzQ4MDQ5OWQ0ODE3MjUxNjAxZjllMThhZGIuLmFl
MzBkYjc2OGRkNDRhMjIyZDUyODMxZWU5MWZhZjY5Yzg5Y2QyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0
LmgKQEAgLTU0LDcgKzU0LDkgQEAgY2xhc3MgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCA6IHB1
YmxpYyBKU1N5bWJvbFRhYmxlT2JqZWN0IHsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRz
RXh0cmFjdG9yOwogCiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU1N5bWJvbFRhYmxlT2JqZWN0IEJh
c2U7CisgICAgdXNpbmcgQmFzZSA9IEpTU3ltYm9sVGFibGVPYmplY3Q7CisKKyAgICBERUNMQVJF
X0lORk87CiAKICAgICBib29sIGlzVmFsaWRTY29wZU9mZnNldChTY29wZU9mZnNldCBvZmZzZXQp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTZXQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2V0LmgKaW5kZXggOGFmY2RlN2I4
MmMyNjY0NzgxYmE5Y2VkZDNmZjE5YTg0ZjAzYTMyNi4uZWI3YTQ5ZmEyYTBkMDU5MTJlYTU5NDIy
NWYxZDRjODBhNjg3NWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NldC5oCkBA
IC03MSwxNiArNzEsNiBAQCBjbGFzcyBKU1NldCBmaW5hbCA6IHB1YmxpYyBIYXNoTWFwSW1wbDxI
YXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pj4gewogICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmdOYW1lKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKik7CiB9OwogCi1pbmxpbmUg
Ym9vbCBpc0pTU2V0KEpTQ2VsbCogZnJvbSkKLXsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
ZmluYWw8SlNTZXQ+Ojp2YWx1ZSwgIiIpOwotICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gSlNT
ZXRUeXBlOwotfQotCi1pbmxpbmUgYm9vbCBpc0pTU2V0KEpTVmFsdWUgZnJvbSkKLXsKLSAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNTZXQ+Ojp2YWx1ZSwgIiIpOwotICAgIHJldHVy
biBmcm9tLmlzQ2VsbCgpICYmIGZyb20uYXNDZWxsKCktPnR5cGUoKSA9PSBKU1NldFR5cGU7Ci19
CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNTZXQ+Ojp2YWx1ZSwgIlJlcXVpcmVkIGZv
ciBKU1R5cGUgYmFzZWQgY2FzdGluZyIpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggYzg4MjIxODg4YmZmZGNiZDkzMzJhZGYz
Y2FjZTQ0YzEyMjBkNGU1Yi4uYjNmN2NkMjk4MjFmNzkwYTc1ZTE1YWU0NWE1M2RkZWM2ODYxODlj
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTYxLDcgKzYxLDYg
QEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBFcnJvckluc3RhbmNlVHlwZSwKICAgICBQ
dXJlRm9yd2FyZGluZ1Byb3h5VHlwZSwKICAgICBJbXB1cmVQcm94eVR5cGUsCi0gICAgV2l0aFNj
b3BlVHlwZSwKICAgICBEaXJlY3RBcmd1bWVudHNUeXBlLAogICAgIFNjb3BlZEFyZ3VtZW50c1R5
cGUsCiAgICAgQ2xvbmVkQXJndW1lbnRzVHlwZSwKQEAgLTg2LDEzICs4NSwyMSBAQCBlbnVtIEpT
VHlwZSA6IHVpbnQ4X3QgewogCiAgICAgR2V0dGVyU2V0dGVyVHlwZSwKIAorICAgIC8vIEpTU2Nv
cGUgPC0gSlNXaXRoU2NvcGUKKyAgICAvLyAgICAgICAgIDwtIFN0cmljdEV2YWxBY3RpdmF0aW9u
CisgICAgLy8gICAgICAgICA8LSBKU1N5bWJvbFRhYmxlT2JqZWN0ICA8LSBKU0xleGljYWxFbnZp
cm9ubWVudCAgICAgIDwtIEpTTW9kdWxlRW52aXJvbm1lbnQKKyAgICAvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDwtIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgPC0gSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC0gSlNHbG9iYWxPYmplY3QKKyAgICAv
LyBTdGFydCBKU1Njb3BlIHR5cGVzLgogICAgIC8vIFN0YXJ0IGVudmlyb25tZW50IHJlY29yZCB0
eXBlcy4KICAgICBHbG9iYWxPYmplY3RUeXBlLAotICAgIExleGljYWxFbnZpcm9ubWVudFR5cGUs
CiAgICAgR2xvYmFsTGV4aWNhbEVudmlyb25tZW50VHlwZSwKKyAgICBMZXhpY2FsRW52aXJvbm1l
bnRUeXBlLAogICAgIE1vZHVsZUVudmlyb25tZW50VHlwZSwKICAgICBTdHJpY3RFdmFsQWN0aXZh
dGlvblR5cGUsCiAgICAgLy8gRW5kIGVudmlyb25tZW50IHJlY29yZCB0eXBlcy4KKyAgICBXaXRo
U2NvcGVUeXBlLAorICAgIC8vIEVuZCBKU1Njb3BlIHR5cGVzLgogCiAgICAgUmVnRXhwT2JqZWN0
VHlwZSwKICAgICBQcm94eU9iamVjdFR5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dlYWtNYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTV2Vha01hcC5oCmluZGV4IDhkZThkMjYyOWJiZTkwZDA3MDlhNTZlN2FkYzZiOThlOTRlYmI1
ZWYuLjgxNGFjODRjNjRhNGRkZDY0MWE1OGJkMTNlNjU5NWVmNDk0NjRmYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha01hcC5oCkBAIC02MiwxNiArNjIsNiBAQCBjbGFz
cyBKU1dlYWtNYXAgZmluYWwgOiBwdWJsaWMgV2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldDxXZWFr
TWFwQnVja2V0RGF0YUtleVZhbAogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmdOYW1lKGNvbnN0
IEpTT2JqZWN0KiwgRXhlY1N0YXRlKik7CiB9OwogCi1pbmxpbmUgYm9vbCBpc0pTV2Vha01hcChK
U0NlbGwqIGZyb20pCi17Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTV2Vha01h
cD46OnZhbHVlLCAiIik7Ci0gICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBKU1dlYWtNYXBUeXBl
OwotfQotCi1pbmxpbmUgYm9vbCBpc0pTV2Vha01hcChKU1ZhbHVlIGZyb20pCi17Ci0gICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTV2Vha01hcD46OnZhbHVlLCAiIik7Ci0gICAgcmV0
dXJuIGZyb20uaXNDZWxsKCkgJiYgZnJvbS5hc0NlbGwoKS0+dHlwZSgpID09IEpTV2Vha01hcFR5
cGU7Ci19CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrTWFwPjo6dmFsdWUsICJS
ZXF1aXJlZCBmb3IgSlNUeXBlIGJhc2VkIGNhc3RpbmciKTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dlYWtTZXQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vha1NldC5oCmluZGV4IDZiOWEwMTg1
YzBiMDI4ZmNlY2Q2NTNhZWQwMTQ1N2FmMGNjNzI5NjMuLjFlMDIwNzI0MWNlZTY2YzdlMWU0YjEw
NWM3YTZlNDQ1OGI2M2I1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTV2Vha1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2Vh
a1NldC5oCkBAIC01NywxNiArNTcsNiBAQCBjbGFzcyBKU1dlYWtTZXQgZmluYWwgOiBwdWJsaWMg
V2Vha01hcEltcGw8V2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleT4+CiAgICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZ05hbWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqKTsKIH07
CiAKLWlubGluZSBib29sIGlzSlNXZWFrU2V0KEpTQ2VsbCogZnJvbSkKLXsKLSAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNXZWFrU2V0Pjo6dmFsdWUsICIiKTsKLSAgICByZXR1cm4g
ZnJvbS0+dHlwZSgpID09IEpTV2Vha1NldFR5cGU7Ci19Ci0KLWlubGluZSBib29sIGlzSlNXZWFr
U2V0KEpTVmFsdWUgZnJvbSkKLXsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlNX
ZWFrU2V0Pjo6dmFsdWUsICIiKTsKLSAgICByZXR1cm4gZnJvbS5pc0NlbGwoKSAmJiBmcm9tLmFz
Q2VsbCgpLT50eXBlKCkgPT0gSlNXZWFrU2V0VHlwZTsKLX0KK3N0YXRpY19hc3NlcnQoc3RkOjpp
c19maW5hbDxKU1dlYWtTZXQ+Ojp2YWx1ZSwgIlJlcXVpcmVkIGZvciBKU1R5cGUgYmFzZWQgY2Fz
dGluZyIpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1dpdGhTY29wZS5oCmluZGV4IDI4NDdiZDhhYzY4Y2YxZDFkMGU4NjUxZDM0MTc5NjJl
Yjg0MmExNjIuLjFkNmQ1ZWEwMDk2MzZiMzVjY2FmMzBiM2EyN2ZkNWVkZjJkMzIxZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV2l0aFNjb3BlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXaXRoU2NvcGUuaApAQCAtMjksOSArMjks
OSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgSlNXaXRoU2NvcGUgOiBwdWJsaWMgSlNT
Y29wZSB7CitjbGFzcyBKU1dpdGhTY29wZSBmaW5hbCA6IHB1YmxpYyBKU1Njb3BlIHsKIHB1Ymxp
YzoKLSAgICB0eXBlZGVmIEpTU2NvcGUgQmFzZTsKKyAgICB1c2luZyBCYXNlID0gSlNTY29wZTsK
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU1dpdGhTY29wZSogY3JlYXRlKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBKU1Njb3BlKiBuZXh0LCBKU09iamVjdCopOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzkxNGYy
YzhjZjI5N2E3NGNjZTY3YmZkZGYwZDEyMmY1NTRiN2I4NS4uMTRlMjczZTI4YzBjY2YzZTg5OTky
MjMwNjRhMmM4OTIzYjU4OWMxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcENvbnN0cnVjdG9yLmNwcApAQCAtNzcsOCArNzcsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RNYXAoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTTWFwOjpjcmVhdGUoZXhlYywgdm0sIG1hcFN0cnVj
dHVyZSkpOwogICAgIH0KIAotICAgIGlmIChpc0pTTWFwKGl0ZXJhYmxlKSkgewotICAgICAgICBK
U01hcCogaXRlcmFibGVNYXAgPSBqc0Nhc3Q8SlNNYXAqPihpdGVyYWJsZSk7CisgICAgaWYgKGF1
dG8qIGl0ZXJhYmxlTWFwID0ganNEeW5hbWljQ2FzdDxKU01hcCo+KHZtLCBpdGVyYWJsZSkpIHsK
ICAgICAgICAgaWYgKGl0ZXJhYmxlTWFwLT5jYW5DbG9uZUZhc3RBbmROb25PYnNlcnZhYmxlKG1h
cFN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmFibGVNYXAtPmNsb25lKGV4ZWMsIHZtLCBtYXBT
dHJ1Y3R1cmUpKTsKQEAgLTEyMyw3ICsxMjIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RNYXAoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgQVNTRVJUKGlzSlNNYXAoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBBU1NF
UlQoanNEeW5hbWljQ2FzdDxKU01hcCo+KGV4ZWMtPnZtKCksIGV4ZWMtPmFyZ3VtZW50KDApKSk7
CiAgICAgSlNNYXAqIG1hcCA9IGpzQ2FzdDxKU01hcCo+KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKICAgICBhdXRvKiBoZWFkID0gbWFwLT5oZWFkKCk7CiAgICAgQVNTRVJUKGhlYWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKaW5kZXgg
ZWE5YTc2YmUyNWUwNjk5ZmZiZTAyZGUwZjZhZjM0Y2RjM2M5MDcwOS4uNTM1NjhiN2EzYWFlNGIx
MjZjY2UzMzlkMzJkMDQ3MGVlYTc2YTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXBQcm90b3R5cGUuY3BwCkBAIC04OSw4ICs4OSw5IEBAIEFMV0FZU19JTkxJTkUg
c3RhdGljIEpTTWFwKiBnZXRNYXAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdGhpc1Zh
bHVlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoTElLRUxZKHRo
aXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTTWFwVHlwZSkpCi0gICAgICAgIHJldHVybiBq
c0Nhc3Q8SlNNYXAqPih0aGlzVmFsdWUpOworICAgIGF1dG8qIG1hcCA9IGpzRHluYW1pY0Nhc3Q8
SlNNYXAqPih2bSwgdGhpc1ZhbHVlLmFzQ2VsbCgpKTsKKyAgICBpZiAoTElLRUxZKG1hcCkpCisg
ICAgICAgIHJldHVybiBtYXA7CiAgICAgdGhyb3dUeXBlRXJyb3IoY2FsbEZyYW1lLCBzY29wZSwg
QVNDSUlMaXRlcmFsKCJNYXAgb3BlcmF0aW9uIGNhbGxlZCBvbiBub24tTWFwIG9iamVjdCIpKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJPYmplY3QuY3BwCmluZGV4IGQzN2Y0ZTU3NzdiNDkwYWVhNzFkZTdhMDVmNDlkNmM4
OGI1NDZhYjYuLmI3NmUyNDc4NzNmYzY3MGQ4ZWU4N2I2MjcxYmI0YjJhNTNiY2U2OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcApAQCAtNDEs
NiArNDEsNyBAQCB2b2lkIE51bWJlck9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogewog
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGlu
Zm8oKSkpOworICAgIEFTU0VSVCh0eXBlKCkgPT0gTnVtYmVyT2JqZWN0VHlwZSk7CiB9CiAKIE51
bWJlck9iamVjdCogY29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBudW1iZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRleCBmZDc2NGFjYTA3ZjU0MGE2
N2JhOTFiM2U4ODNlNWJiODdmY2MxYTExLi42OTY2NjhjOGU1NjFjZWQ1ODYxNThkOTRlNjAyYjEw
NTY2N2I5OGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
clByb3RvdHlwZS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBOdW1iZXJQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCB0b1RoaXNOdW1iZXIoSlNW
YWx1ZSB0aGlzVmFsdWUsIGRvdWJsZSYgeCkKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgdG9U
aGlzTnVtYmVyKFZNJiB2bSwgSlNWYWx1ZSB0aGlzVmFsdWUsIGRvdWJsZSYgeCkKIHsKICAgICBp
ZiAodGhpc1ZhbHVlLmlzSW50MzIoKSkgewogICAgICAgICB4ID0gdGhpc1ZhbHVlLmFzSW50MzIo
KTsKQEAgLTEwMCw5ICsxMDAsOSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHRvVGhpc051
bWJlcihKU1ZhbHVlIHRoaXNWYWx1ZSwgZG91YmxlJiB4KQogICAgICAgICB4ID0gdGhpc1ZhbHVl
LmFzRG91YmxlKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICAKLSAgICBpZiAo
dGhpc1ZhbHVlLmlzQ2VsbCgpICYmIHRoaXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IE51bWJl
ck9iamVjdFR5cGUpIHsKLSAgICAgICAgeCA9IHN0YXRpY19jYXN0PGNvbnN0IE51bWJlck9iamVj
dCo+KHRoaXNWYWx1ZS5hc0NlbGwoKSktPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpOworCisg
ICAgaWYgKGF1dG8qIG51bWJlck9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8TnVtYmVyT2JqZWN0Kj4o
dm0sIHRoaXNWYWx1ZSkpIHsKKyAgICAgICAgeCA9IG51bWJlck9iamVjdC0+aW50ZXJuYWxWYWx1
ZSgpLmFzTnVtYmVyKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNDA3LDcg
KzQwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9F
eHBvbmVudGlhbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgZG91YmxlIHg7Ci0gICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhl
Yy0+dGhpc1ZhbHVlKCksIHgpKQorICAgIGlmICghdG9UaGlzTnVtYmVyKHZtLCBleGVjLT50aGlz
VmFsdWUoKSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3Bl
KTsKIAogICAgIC8vIFBlcmZvcm0gVG9JbnRlZ2VyIG9uIHRoZSBhcmd1bWVudCBiZWZvcmUgcmVt
YWluaW5nIHN0ZXBzLgpAQCAtNDQ0LDcgKzQ0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9GaXhlZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgZG91YmxlIHg7Ci0gICAgaWYg
KCF0b1RoaXNOdW1iZXIoZXhlYy0+dGhpc1ZhbHVlKCksIHgpKQorICAgIGlmICghdG9UaGlzTnVt
YmVyKHZtLCBleGVjLT50aGlzVmFsdWUoKSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAogICAgIC8vIEdldCB0aGUgYXJndW1lbnQuIApAQCAtNDgy
LDcgKzQ4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5j
VG9QcmVjaXNpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIGRvdWJsZSB4OwotICAgIGlmICghdG9UaGlzTnVtYmVyKGV4
ZWMtPnRoaXNWYWx1ZSgpLCB4KSkKKyAgICBpZiAoIXRvVGhpc051bWJlcih2bSwgZXhlYy0+dGhp
c1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29w
ZSk7CiAKICAgICAvLyBQZXJmb3JtIFRvSW50ZWdlciBvbiB0aGUgYXJndW1lbnQgYmVmb3JlIHJl
bWFpbmluZyBzdGVwcy4KQEAgLTU4MCw3ICs1ODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgZG91YmxlIGRvdWJsZVZh
bHVlOwotICAgIGlmICghdG9UaGlzTnVtYmVyKHN0YXRlLT50aGlzVmFsdWUoKSwgZG91YmxlVmFs
dWUpKQorICAgIGlmICghdG9UaGlzTnVtYmVyKHZtLCBzdGF0ZS0+dGhpc1ZhbHVlKCksIGRvdWJs
ZVZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHNjb3BlKTsK
IAogICAgIGF1dG8gcmFkaXggPSBleHRyYWN0VG9TdHJpbmdSYWRpeEFyZ3VtZW50KHN0YXRlLCBz
dGF0ZS0+YXJndW1lbnQoMCksIHNjb3BlKTsKQEAgLTU5NSw3ICs1OTUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAg
ICBkb3VibGUgeDsKLSAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT50aGlzVmFsdWUoKSwgeCkp
CisgICAgaWYgKCF0b1RoaXNOdW1iZXIodm0sIGV4ZWMtPnRoaXNWYWx1ZSgpLCB4KSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0cmluZyhleGVjKSk7CkBAIC02MDgsNyArNjA4
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIGRvdWJsZSB4OwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0b1RoaXNOdW1iZXIodGhpc1ZhbHVlLCB4
KSkKKyAgICBpZiAoIXRvVGhpc051bWJlcih2bSwgdGhpc1ZhbHVlLCB4KSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIFdURjo6bWFrZVN0cmluZygidGhpc051
bWJlclZhbHVlIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgIiwgYXNTdHJpbmcoanNUeXBlU3RyaW5n
Rm9yVmFsdWUoZXhlYywgdGhpc1ZhbHVlKSktPnZhbHVlKGV4ZWMpKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcih4KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjczNzk0OTBkZTFlZmJh
N2IwZDI3NDYzNzhlYTU4YzUwNGYwOTNjOC4uMjJkNjQ1OTZkYWMyZjkzMTljNTE0YjcyNjhjZDcy
Zjk2ZmM3MTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcApAQCAtNzE1LDcgKzcxNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JTZWFsKEV4ZWNTdGF0ZSogZXhlYykKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmopOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBh
c09iamVjdChvYmopOwogCi0gICAgaWYgKGlzSlNGaW5hbE9iamVjdChvYmplY3QpICYmICFoYXNJ
bmRleGVkUHJvcGVydGllcyhvYmplY3QtPmluZGV4aW5nVHlwZSgpKSkgeworICAgIGlmIChqc0R5
bmFtaWNDYXN0PEpTRmluYWxPYmplY3QqPih2bSwgb2JqZWN0KSAmJiAhaGFzSW5kZXhlZFByb3Bl
cnRpZXMob2JqZWN0LT5pbmRleGluZ1R5cGUoKSkpIHsKICAgICAgICAgb2JqZWN0LT5zZWFsKHZt
KTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmopOwogICAgIH0KQEAgLTczNSw3
ICs3MzUsNyBAQCBKU09iamVjdCogb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogb2JqZWN0KQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKGlzSlNGaW5hbE9i
amVjdChvYmplY3QpICYmICFoYXNJbmRleGVkUHJvcGVydGllcyhvYmplY3QtPmluZGV4aW5nVHlw
ZSgpKSkgeworICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTRmluYWxPYmplY3QqPih2bSwgb2JqZWN0
KSAmJiAhaGFzSW5kZXhlZFByb3BlcnRpZXMob2JqZWN0LT5pbmRleGluZ1R5cGUoKSkpIHsKICAg
ICAgICAgb2JqZWN0LT5mcmVlemUodm0pOwogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0K
QEAgLTc4Miw3ICs3ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9ySXNTZWFsZWQoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdChvYmopOwogCiAgICAgLy8gUXVpY2sgY2hlY2sgZm9yIGZpbmFsIG9iamVjdHMu
Ci0gICAgaWYgKGlzSlNGaW5hbE9iamVjdChvYmplY3QpICYmICFoYXNJbmRleGVkUHJvcGVydGll
cyhvYmplY3QtPmluZGV4aW5nVHlwZSgpKSkKKyAgICBpZiAoanNEeW5hbWljQ2FzdDxKU0ZpbmFs
T2JqZWN0Kj4odm0sIG9iamVjdCkgJiYgIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG9iamVjdC0+aW5k
ZXhpbmdUeXBlKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihv
YmplY3QtPmlzU2VhbGVkKHZtKSkpOwogCiAgICAgLy8gMi4gUmV0dXJuID8gVGVzdEludGVncml0
eUxldmVsKE8sICJzZWFsZWQiKS4KQEAgLTgwMCw3ICs4MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4oRXhlY1N0YXRlKiBleGVjKQog
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChvYmopOwogCiAgICAgLy8gUXVpY2sgY2hl
Y2sgZm9yIGZpbmFsIG9iamVjdHMuCi0gICAgaWYgKGlzSlNGaW5hbE9iamVjdChvYmplY3QpICYm
ICFoYXNJbmRleGVkUHJvcGVydGllcyhvYmplY3QtPmluZGV4aW5nVHlwZSgpKSkKKyAgICBpZiAo
anNEeW5hbWljQ2FzdDxKU0ZpbmFsT2JqZWN0Kj4odm0sIG9iamVjdCkgJiYgIWhhc0luZGV4ZWRQ
cm9wZXJ0aWVzKG9iamVjdC0+aW5kZXhpbmdUeXBlKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3QtPmlzRnJvemVuKHZtKSkpOwogCiAgICAgLy8gMi4g
UmV0dXJuID8gVGVzdEludGVncml0eUxldmVsKE8sICJmcm96ZW4iKS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAppbmRleCBjMWQ3YWI4NWNiODk4OWJk
MTRiMWYwMmRlNWMzMWRmNzYzYjAwZGY5Li41YzNlZTVlYjg1ZmNkZTc5MDMwM2FmZTBmMGIxMzIw
NmM3NGI0NmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmpl
Y3QuY3BwCkBAIC04Nyw2ICs4Nyw3IEBAIHZvaWQgUHJveHlPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHRhcmdldCwgSlNWYWx1CiB7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQodHlwZSgpID09IFByb3h5T2JqZWN0VHlwZSk7CiAgICAg
aWYgKCF0YXJnZXQuaXNPYmplY3QoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBz
Y29wZSwgQVNDSUlMaXRlcmFsKCJBIFByb3h5J3MgJ3RhcmdldCcgc2hvdWxkIGJlIGFuIE9iamVj
dCIpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY29wZWRBcmd1bWVudHMuaAppbmRleCA2NmY1ZWZlNWMyYWFkM2FmYmYwZGNmNGJhYmFhNzNj
YTEzNTcyNjgyLi42NTE4ODMxMGQwYmE0MjI5ZGI3YTBmMGI2NGE2NTViOGM4YTBlMzVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHMuaApAQCAt
MzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vIG9iamVjdCB3aWxsIHN0b3JlIHRoZSBv
dmVyZmxvdyBhcmd1bWVudHMsIGlmIHRoZXJlIGFyZSBhbnkuIFRoaXMgb2JqZWN0IHdpbGwgdXNl
IHRoZSBzeW1ib2wKIC8vIHRhYmxlJ3MgU2NvcGVkQXJndW1lbnRzVGFibGUgYW5kIHRoZSBhY3Rp
dmF0aW9uLCBvciBpdHMgb3ZlcmZsb3cgc3RvcmFnZSwgdG8gaGFuZGxlIGFsbCBpbmRleGVkCiAv
LyBsb29rdXBzLgotY2xhc3MgU2NvcGVkQXJndW1lbnRzIDogcHVibGljIEdlbmVyaWNBcmd1bWVu
dHM8U2NvcGVkQXJndW1lbnRzPiB7CitjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJs
aWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKIHByaXZhdGU6CiAgICAgU2Nv
cGVkQXJndW1lbnRzKFZNJiwgU3RydWN0dXJlKiwgdW5zaWduZWQgdG90YWxMZW5ndGgpOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIFNjb3BlZEFyZ3Vt
ZW50c1RhYmxlKiwgSlNMZXhpY2FsRW52aXJvbm1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAppbmRleCBlN2IzZGMyNTY0MDA3YTky
MGQ4MzFhOWZjYWI2Y2ZlNzdmZWU3MjQ0Li43MTNmNmRlMjMxOTJlN2JkNjQ2NzUyYTI3NmVjZGU2
YzRkYjQ5MTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29u
c3RydWN0b3IuY3BwCkBAIC03Nyw4ICs3Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdFNldChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNTZXQ6OmNyZWF0ZShleGVjLCB2bSwgc2V0U3RydWN0dXJlKSk7CiAg
ICAgfQogCi0gICAgaWYgKGlzSlNTZXQoaXRlcmFibGUpKSB7Ci0gICAgICAgIEpTU2V0KiBpdGVy
YWJsZVNldCA9IGpzQ2FzdDxKU1NldCo+KGl0ZXJhYmxlKTsKKyAgICBpZiAoYXV0byogaXRlcmFi
bGVTZXQgPSBqc0R5bmFtaWNDYXN0PEpTU2V0Kj4odm0sIGl0ZXJhYmxlKSkgewogICAgICAgICBp
ZiAoaXRlcmFibGVTZXQtPmNhbkNsb25lRmFzdEFuZE5vbk9ic2VydmFibGUoc2V0U3RydWN0dXJl
KSkgewogICAgICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShpdGVyYWJsZVNldC0+Y2xvbmUoZXhlYywgdm0sIHNldFN0cnVjdHVyZSkp
OwpAQCAtMTA5LDcgKzEwOCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFNldChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRIZWFkKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBBU1NFUlQoaXNKU1NldChleGVjLT5hcmd1bWVudCgwKSkpOworICAgIEFTU0VSVChqc0R5bmFt
aWNDYXN0PEpTU2V0Kj4oZXhlYy0+dm0oKSwgZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBKU1Nl
dCogc2V0ID0ganNDYXN0PEpTU2V0Kj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAg
IGF1dG8qIGhlYWQgPSBzZXQtPmhlYWQoKTsKICAgICBBU1NFUlQoaGVhZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcAppbmRleCA1ZGI1MmMyNzZk
ZTUxMmIzMDdlNTU3NjU1ODYzYmFlMGQ5MmZkZjI1Li4yOTM0Mzk2MDg3ZTY4YmYzOGM5MTg3MzE4
MDRmNmY2ZTcwYjA3ZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TZXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nl
dFByb3RvdHlwZS5jcHAKQEAgLTg2LDggKzg2LDkgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgSlNT
ZXQqIGdldFNldChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB0aGlzVmFsdWUpCiAgICAg
ICAgIHRocm93Vk1FcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBjcmVhdGVOb3RBbk9iamVjdEVycm9y
KGNhbGxGcmFtZSwgdGhpc1ZhbHVlKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
LSAgICBpZiAoTElLRUxZKHRoaXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTU2V0VHlwZSkp
Ci0gICAgICAgIHJldHVybiBqc0Nhc3Q8SlNTZXQqPih0aGlzVmFsdWUpOworICAgIGF1dG8qIHNl
dCA9IGpzRHluYW1pY0Nhc3Q8SlNTZXQqPih2bSwgdGhpc1ZhbHVlLmFzQ2VsbCgpKTsKKyAgICBp
ZiAoTElLRUxZKHNldCkpCisgICAgICAgIHJldHVybiBzZXQ7CiAgICAgdGhyb3dUeXBlRXJyb3Io
Y2FsbEZyYW1lLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJTZXQgb3BlcmF0aW9uIGNhbGxlZCBvbiBu
b24tU2V0IG9iamVjdCIpKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDc0
MGNhMzI4ODllOTliODg2ZjkzNzAyY2I5YmM4ZDAyODc5YjczNTEuLjJiZTA5ZjVkZDk1YTRiYjQ5
M2YzOTk3NTgyOGFkNWI3MzVkODVlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAtMjksMTAgKzI5LDkgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIFN0cmljdEV2YWxBY3RpdmF0aW9uIDogcHVibGljIEpT
U2NvcGUgeworY2xhc3MgU3RyaWN0RXZhbEFjdGl2YXRpb24gZmluYWwgOiBwdWJsaWMgSlNTY29w
ZSB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU1Njb3BlIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgdXNp
bmcgQmFzZSA9IEpTU2NvcGU7CiAKICAgICBzdGF0aWMgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIGN1cnJlbnRTY29wZSkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCmlu
ZGV4IGY2MDc2MzZkYWZmZTM0Njc5ODcyN2U2OTVjZDUzZjNiNWQ1MTk1YmUuLjU1Y2EwMjg0ZGMy
OWRhMTY2ZTRiMmMwZmY3YzQ3NjI2NzA4NTZiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkBAIC02Miw4ICs2Miw5IEBAIEFM
V0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0g
ICAgaWYgKExJS0VMWShpc0pTV2Vha01hcChhc09iamVjdCh2YWx1ZSkpKSkKLSAgICAgICAgcmV0
dXJuIGpzQ2FzdDxKU1dlYWtNYXAqPih2YWx1ZSk7CisgICAgYXV0byogbWFwID0ganNEeW5hbWlj
Q2FzdDxKU1dlYWtNYXAqPih2bSwgYXNPYmplY3QodmFsdWUpKTsKKyAgICBpZiAoTElLRUxZKG1h
cCkpCisgICAgICAgIHJldHVybiBtYXA7CiAKICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUs
IHNjb3BlLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtNYXAgZnVuY3Rpb24gb24gYSBu
b24tV2Vha01hcCBvYmplY3QiKSk7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCmluZGV4IDY0ODZk
MjEzOGUyZjU3YTIwZTE4N2I0NjBlMjkyNDM0OTYyMDQ5NzYuLjE0MTNhZTZiMWJhMjkzMzZlMmI0
Mjc4OGY4NDAwMGI0ZjUzNjRiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCkBAIC02MCw4ICs2MCw5IEBAIEFMV0FZU19JTkxJ
TkUgc3RhdGljIEpTV2Vha1NldCogZ2V0V2Vha1NldChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNW
YWx1ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKExJ
S0VMWShpc0pTV2Vha1NldChhc09iamVjdCh2YWx1ZSkpKSkKLSAgICAgICAgcmV0dXJuIGpzQ2Fz
dDxKU1dlYWtTZXQqPih2YWx1ZSk7CisgICAgYXV0byogc2V0ID0ganNEeW5hbWljQ2FzdDxKU1dl
YWtTZXQqPih2bSwgYXNPYmplY3QodmFsdWUpKTsKKyAgICBpZiAoTElLRUxZKHNldCkpCisgICAg
ICAgIHJldHVybiBzZXQ7CiAKICAgICB0aHJvd1R5cGVFcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBX
VEY6OkFTQ0lJTGl0ZXJhbCgiQ2FsbGVkIFdlYWtTZXQgZnVuY3Rpb24gb24gYSBub24tV2Vha1Nl
dCBvYmplY3QiKSk7CiAgICAgcmV0dXJuIG51bGxwdHI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>