<?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>101136</bug_id>
          
          <creation_ts>2012-11-02 17:58:57 -0700</creation_ts>
          <short_desc>Fix layer borders to cleanly appear and disappear on switching</short_desc>
          <delta_ts>2012-11-05 13:08:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>mifenton</cc>
    
    <cc>noam</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757810</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 17:58:57 -0700</bug_when>
    <thetext>Fix layer borders to cleaning appear and disappear on switching</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757814</commentid>
    <comment_count>1</comment_count>
      <attachid>172187</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 18:03:41 -0700</bug_when>
    <thetext>Created attachment 172187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757816</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 18:04:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/12498149&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757823</commentid>
    <comment_count>3</comment_count>
      <attachid>172187</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-02 18:12:34 -0700</bug_when>
    <thetext>Comment on attachment 172187
Patch

Attachment 172187 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14722059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757825</commentid>
    <comment_count>4</comment_count>
      <attachid>172187</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-02 18:13:26 -0700</bug_when>
    <thetext>Comment on attachment 172187
Patch

Attachment 172187 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14722058</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757826</commentid>
    <comment_count>5</comment_count>
      <attachid>172190</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 18:19:15 -0700</bug_when>
    <thetext>Created attachment 172190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757839</commentid>
    <comment_count>6</comment_count>
      <attachid>172190</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 18:44:07 -0700</bug_when>
    <thetext>Comment on attachment 172190
Patch

Attachment 172190 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14727018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757847</commentid>
    <comment_count>7</comment_count>
      <attachid>172190</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-02 19:01:29 -0700</bug_when>
    <thetext>Comment on attachment 172190
Patch

Attachment 172190 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14712227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757855</commentid>
    <comment_count>8</comment_count>
      <attachid>172190</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-02 19:29:57 -0700</bug_when>
    <thetext>Comment on attachment 172190
Patch

Attachment 172190 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14696872</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757869</commentid>
    <comment_count>9</comment_count>
      <attachid>172200</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 20:30:30 -0700</bug_when>
    <thetext>Created attachment 172200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757872</commentid>
    <comment_count>10</comment_count>
      <attachid>172200</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 20:39:37 -0700</bug_when>
    <thetext>Comment on attachment 172200
Patch

Attachment 172200 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14713198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757873</commentid>
    <comment_count>11</comment_count>
      <attachid>172200</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-02 20:42:18 -0700</bug_when>
    <thetext>Comment on attachment 172200
Patch

Attachment 172200 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14721098</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757874</commentid>
    <comment_count>12</comment_count>
      <attachid>172201</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 20:45:20 -0700</bug_when>
    <thetext>Created attachment 172201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757880</commentid>
    <comment_count>13</comment_count>
      <attachid>172201</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-02 21:03:26 -0700</bug_when>
    <thetext>Comment on attachment 172201
Patch

Attachment 172201 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14719137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757882</commentid>
    <comment_count>14</comment_count>
      <attachid>172204</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 21:06:13 -0700</bug_when>
    <thetext>Created attachment 172204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757883</commentid>
    <comment_count>15</comment_count>
      <attachid>172204</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-02 21:11:53 -0700</bug_when>
    <thetext>Comment on attachment 172204
Patch

Attachment 172204 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14683112</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757887</commentid>
    <comment_count>16</comment_count>
      <attachid>172205</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-02 21:38:11 -0700</bug_when>
    <thetext>Created attachment 172205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758812</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-05 13:08:27 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/133517</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172187</attachid>
            <date>2012-11-02 18:03:41 -0700</date>
            <delta_ts>2012-11-02 18:19:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101136-20121102180200.patch</filename>
            <type>text/plain</type>
            <size>54923</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmZjQ3ZTQ4NzNlZmVl
NDVmNGNjZmM3NTViYjdhNTgyZDNhNTBjYi4uNjEyYmM0NTI0Nzk5NWUzNjZhOTQ0ZmIwMzU4YWU5
YzE4N2E3MjA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY2IEBACiAyMDEyLTExLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEZpeCBsYXllciBi
b3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NMYXll
cnMgZGVjaWRlZCB3aGV0aGVyIHRvIHNob3cgbGF5ZXIgYm9yZGVycyBiYXNlZAorICAgICAgICBv
biBhIGNhbGxiYWNrIHRocm91Z2ggdGhlIEdyYXBoaWNzTGF5ZXJDbGllbnQuIFRoaXMgbWFkZSBp
dAorICAgICAgICBoYXJkIHRvIG1hbmFnZSBzdGF0ZSwgcmVzdWx0aW5nIGluIGEgZmFpbHVyZSB0
byBjbGVhbmx5CisgICAgICAgIGhpZGUgbGF5ZXJzIHdoZW4gdG9nZ2xlZCBvZmYgdmlhIHRoZSBw
cmVmZXJlbmNlLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgbGF5ZXIgYm9yZGVyIGFu
ZCByZXBhaW50IGNvdW50ZXIgdmlzaWJpbGl0eSB0byBiZSBiaXRzCisgICAgICAgIHN0b3JlZCBv
biBHcmFwaGljc0xheWVyIGp1c3QgbGlrZSBvdGhlciBwcm9wZXJ0aWVzLCB3aXRoIGdldHRlcnMK
KyAgICAgICAgYW5kIHNldHRlcnMuIFJlbmRlckxheWVyQmFja2luZyBub3cgdXBkYXRlcyB0aGVz
ZSBkZWJ1ZworICAgICAgICBpbmRpY2F0b3JzIHdoZW4gd2UgdXBkYXRlIG90aGVyIGNvbXBvc2l0
aW5nIGxheWVyIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBJbiBHcmFwaGljc0xheWVy
Q0EsIGF2b2lkIGNhbGxpbmcgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCkgZXhwbGljaXRseQorICAg
ICAgICBpbiBzZXZlcmFsIHBsYWNlcyBieSBzZXR0aW5nIHRoZSBjaGFuZ2UgZmxhZyBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkCisgICAgICAgIGZvciBwcm9wZXJ0aWVzIHdob3NlIHZhbHVlcyBhZmZl
Y3QgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGRlYnVnIGJvcmRlci4KKworICAgICAgICBSZW1vdmVk
IHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAor
ICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKSB3aGljaCBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVk
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmlzU2hvd2luZ0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjppc1Nob3dpbmdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpyZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6aW5jcmVtZW50UmVwYWludENvdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
R3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0
TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldERy
YXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3JhcGhp
Y3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyU2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKworMjAx
Mi0xMS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAg
ICBFbmFibGUgU1VCUElYRUxfTEFZT1VUIG9uIE1hYwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMDc2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCmluZGV4IGY4YWQzZjhmN2QyNjc4OTZlNTc3ZTZiZmQ3ZTc3M2Y0MTU5ZjlmOWMuLjQ2Njlk
Y2M5OTExOWIxOWE2NzI1OTIxMmM1ZjE3MmY2ZGJjNmE1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNs
ZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVy
Q2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVwYWlu
dENvdW50ZXIoKS4KKworICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAgICAgKFdl
Yk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpub3RpZnlGbHVz
aFJlcXVpcmVkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgICogV2ViS2l0
U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0RlZmF1bHRUYXBIaWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRUYXBIaWdobGlnaHQpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaDoKKyAg
ICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0
aW9uT3ZlcmxheS5jcHA6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5
Lmg6CisgICAgICAgIChTZWxlY3Rpb25PdmVybGF5KToKKwogMjAxMi0xMS0wMiAgTmltYSBHaGFu
YXZhdGlhbiAgPG5naGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBG
aXggY29tcGlsZS10aW1lIHdhcm5pbmcgb2YgYSBwb3NzaWJsZSBlbXB0eS1ib2R5IGlmIHN0YXRl
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNzdkYjJiNmUwNDg4YzgxZTI0ZDYz
N2Q4NTMwYmU1N2QzYWFmN2ZiLi45MjE5NTg5OGUzMmI2YzY4N2FjYjU1MTQ2YTI1YTE1ZmE1M2Ez
ZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEx
LTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZp
eCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRj
aGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
MTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFu
ZAorICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIHNyYy9Ob25Db21w
b3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVkQ29udGVu
dEhvc3QuaDoKKyAgICAgICAgKE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgICog
c3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21p
dW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0LmNwcDoK
KwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBhIFBsdWdpbkluYWN0aXZlIHBsdWctaW4gdW5hdmFpbGFiaWxpdHkgcmVhc29u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTA1ODY0NWUwZjczZGExZTNkMGI5N2ZkYTI2ODBhYmRjZDlm
YjRjNS4uYjJkMTE1NzZiODljYWNiYjhhYTRlNWNiMWYxZGJkZDZiZGNlYjkzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFu
aW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xp
ZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVwYWludENv
dW50ZXIoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWly
by5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRDbHV0dGVyLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKwogMjAxMi0xMS0wMiAgTWFydGluIFJvYmluc29uICA8
bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIGRlcGVuZGVuY3kg
b24gU291cFBhc3N3b3JkTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDRmYTZlOTMyYWI1Nzk3
NWZiYjc2ZDZkYzIyODdlNWI4NzRlZTJmYmEuLmY5NmJmM2JlYjhjMDNiZWUxODQ0YmVkOTFjMmY5
MDdmYmFmMzc5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMS0w
MiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXgg
bGF5ZXIgYm9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBzd2l0Y2hp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQK
KyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisKKyAgICAgICAgKiBGdWxsc2NyZWVuVmlk
ZW9Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKiBXZWJW
aWV3Lmg6CisKIDIwMTItMTAtMjkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdHJpbmc6OmNyZWF0ZUNGU3RyaW5nIHNob3VsZCByZXR1cm4gYSBSZXRh
aW5QdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA2N2I3MjM1MTlmYTJiYWI0OGEyNjg1MjhjYTQ1NDNiMTIwMmI5
Njg1Li5lZjRjMDZmYmFlNmU0YmUxOTc0YzVmZWEzNjQyY2E2MTQyMjYxNTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMjkgQEAKIDIwMTItMTEtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKKyAgICAgICAgRml4IGxheWVyIGJvcmRlcnMgdG8gY2xlYW5pbmcgYXBw
ZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlbW92ZSB0aGUgR3JhcGhpY3NMYXllckNs
aWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQKKyAgICAgICAgc2hvd1JlcGFpbnRD
b3VudGVyKCkuCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdENBKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oOgorICAg
ICAgICAoTGF5ZXJUcmVlSG9zdEd0ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAoVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisKKzIwMTItMTEtMDIgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgRW5hYmxlIFNVQlBJWEVMX0xB
WU9VVCBvbiBNYWMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTA3NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCmluZGV4IDBkYjI0OTk5MjBjMDkxM2I2NDQxZjIxOGFiOTE4NzZkNDE0
ZTEwMzUuLmRkM2I3YTlkZjJmMDQ0ZGY2NWM0YTQxYjA2NzY4NDk4OThlM2I1MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBA
IC04OSw2ICs4OSw4IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXll
ckNsaWVudCogY2xpZW50KQogICAgICwgbV9hY2NlbGVyYXRlc0RyYXdpbmcoZmFsc2UpCiAgICAg
LCBtX21haW50YWluc1BpeGVsQWxpZ25tZW50KGZhbHNlKQogICAgICwgbV9hcHBsaWVzUGFnZVNj
YWxlKGZhbHNlKQorICAgICwgbV9zaG93RGVidWdCb3JkZXIoZmFsc2UpCisgICAgLCBtX3Nob3dS
ZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAsIG1fcGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVy
UGFpbnRBbGxXaXRoT3ZlcmZsb3dDbGlwKQogICAgICwgbV9jb250ZW50c09yaWVudGF0aW9uKENv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BEb3duKQogICAgICwgbV9wYXJlbnQoMCkKQEAgLTM3NCw3
ICszNzYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmdldERlYnVnQm9yZGVySW5mbyhDb2xvciYg
Y29sb3IsIGZsb2F0JiB3aWR0aCkgY29uc3QKIAogdm9pZCBHcmFwaGljc0xheWVyOjp1cGRhdGVE
ZWJ1Z0luZGljYXRvcnMoKQogewotICAgIGlmICghR3JhcGhpY3NMYXllcjo6c2hvd0RlYnVnQm9y
ZGVycygpKQorICAgIGlmICghaXNTaG93aW5nRGVidWdCb3JkZXIoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQ29sb3IgYm9yZGVyQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggZTkzN2NhNWQ4MzM1MjdhMjdlNjdkMTY5
MTgwOGQyMjJhZTIyMjJiMy4uNzEyYWRiMzBjNDJlNGI1MDRhMDU1ZjU5YThkNmZkMzM0YWY0NjE3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaApAQCAtMzUyLDI0ICszNTIsMjYgQEAgcHVibGljOgogICAgIC8vIEZvciBob3N0aW5nIHRo
aXMgR3JhcGhpY3NMYXllciBpbiBhIG5hdGl2ZSBsYXllciBoaWVyYXJjaHkuCiAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAg
IAotICAgIHZvaWQgZHVtcExheWVyKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50ID0gMCwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IgPSBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7
Ci0KLSAgICBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q291bnQ7
IH0KLSAgICBpbnQgaW5jcmVtZW50UmVwYWludENvdW50KCkgeyByZXR1cm4gKyttX3JlcGFpbnRD
b3VudDsgfQotCiAgICAgZW51bSBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24geyBD
b21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93biwgQ29tcG9zaXRpbmdDb29yZGluYXRlc0JvdHRv
bVVwIH07CiAKICAgICAvLyBGbGlwcGVkbmVzcyBvZiB0aGUgY29udGVudHMgb2YgdGhpcyBsYXll
ci4gRG9lcyBub3QgYWZmZWN0IHN1YmxheWVyIGdlb21ldHJ5LgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c09yaWVudGF0aW9uKENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikgeyBtX2NvbnRlbnRzT3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsgfQogICAg
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBjb250ZW50c09yaWVudGF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZW50c09yaWVudGF0aW9uOyB9CiAKLSAgICBib29sIHNob3dE
ZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5zaG93RGVi
dWdCb3JkZXJzKHRoaXMpIDogZmFsc2U7IH0KLSAgICBib29sIHNob3dSZXBhaW50Q291bnRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnNob3dSZXBhaW50Q291bnRlcih0
aGlzKSA6IGZhbHNlOyB9Ci0gICAgCi0gICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsK
LSAgICAKKyAgICB2b2lkIGR1bXBMYXllcihUZXh0U3RyZWFtJiwgaW50IGluZGVudCA9IDAsIExh
eWVyVHJlZUFzVGV4dEJlaGF2aW9yID0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwpIGNv
bnN0OworCisgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sIHNob3cpIHsg
bV9zaG93RGVidWdCb3JkZXIgPSBzaG93OyB9CisgICAgYm9vbCBpc1Nob3dpbmdEZWJ1Z0JvcmRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyOyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgc2hvdykgeyBtX3Nob3dSZXBhaW50Q291bnRl
ciA9IHNob3c7IH0KKyAgICBib29sIGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG93UmVwYWludENvdW50ZXI7IH0KKworICAgIGludCByZXBhaW50Q291bnQoKSBj
b25zdCB7IHJldHVybiBtX3JlcGFpbnRDb3VudDsgfQorICAgIGludCBpbmNyZW1lbnRSZXBhaW50
Q291bnQoKSB7IHJldHVybiArK21fcmVwYWludENvdW50OyB9CisKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCAvKmJvcmRlcldpZHRoKi8pIHsg
fQorCiAgICAgLy8gei1wb3NpdGlvbiBpcyB0aGUgei1lcXVpdmFsZW50IG9mIHBvc2l0aW9uKCku
IEl0J3Mgb25seSB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAgdmlydHVhbCBmbG9h
dCB6UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3pQb3NpdGlvbjsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRaUG9zaXRpb24oZmxvYXQpOwpAQCAtNDM5LDYgKzQ0MSw4IEBAIHByb3RlY3RlZDoK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5SW50ZXJuYWwoZmxvYXQpIHsgfQogCisgICAg
dm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKKwogICAgIC8vIFRoZSBsYXllciBiZWluZyBy
ZXBsaWNhdGVkLgogICAgIEdyYXBoaWNzTGF5ZXIqIHJlcGxpY2F0ZWRMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcmVwbGljYXRlZExheWVyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJlcGxpY2F0
ZWRMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikgeyBtX3JlcGxpY2F0ZWRMYXllciA9IGxheWVy
OyB9CkBAIC00ODYsNyArNDkwLDkgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9hY2NlbGVyYXRl
c0RyYXdpbmcgOiAxOwogICAgIGJvb2wgbV9tYWludGFpbnNQaXhlbEFsaWdubWVudCA6IDE7CiAg
ICAgYm9vbCBtX2FwcGxpZXNQYWdlU2NhbGUgOiAxOyAvLyBTZXQgZm9yIHRoZSBsYXllciB3aGlj
aCBoYXMgdGhlIHBhZ2Ugc2NhbGUgYXBwbGllZCB0byBpdC4KLQorICAgIGJvb2wgbV9zaG93RGVi
dWdCb3JkZXIgOiAxOworICAgIGJvb2wgbV9zaG93UmVwYWludENvdW50ZXIgOiAxOworICAgIAog
ICAgIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIG1fcGFpbnRpbmdQaGFzZTsKICAgICBDb21w
b3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gbV9jb250ZW50c09yaWVudGF0aW9uOyAvLyBh
ZmZlY3RzIG9yaWVudGF0aW9uIG9mIGxheWVyIGNvbnRlbnRzCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCAw
NmZmYjhhMjFlODBmNDkwNWJjMTFhNmQ3M2IxMjQ3ZGVlODkxOWY0Li44YjZiZmZkMTk3MTNjYTJm
YzI0ZGExMDI1OGE0NGFiYzQyZGYxNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC04Miw5ICs4Miw2IEBA
IHB1YmxpYzoKICAgICAvLyBQYWdlIHNjYWxlIGZhY3Rvci4KICAgICB2aXJ0dWFsIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBz
aG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Qg
PSAwOwotCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBhNTg4Mzdj
MzI1YmQ3Y2M2ZTE1YThlOGRiNWQwYTEzODZkMjg1NDBmLi5lMzZiNWU3MDdjZjlkMDZiYWU1YzMx
Yzk2ZGU4Mjk2ODA5ZTY4MTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTI4Niw4ICsyODYsNiBAQCBH
cmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGll
bnQpCiAgICAgfQogCiAgICAgbV9sYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6Y3JlYXRlKGxheWVy
VHlwZSwgdGhpcyk7Ci0KLSAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKICAgICBub3RlTGF5
ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNTY2FsZUNoYW5nZWQpOwogfQogCkBAIC01MjAsNyAr
NTE4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNr
c1RvQm91bmRzKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRNYXNr
c1RvQm91bmRzKG1hc2tzVG9Cb3VuZHMpOwotICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChN
YXNrc1RvQm91bmRzQ2hhbmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKE1hc2tz
VG9Cb3VuZHNDaGFuZ2VkIHwgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCk7CiB9CiAKIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjpzZXREcmF3c0NvbnRlbnQoYm9vbCBkcmF3c0NvbnRlbnQpCkBAIC01Mjks
NyArNTI3LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERyYXdzQ29udGVudChib29sIGRy
YXdzQ29udGVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0RHJh
d3NDb250ZW50KGRyYXdzQ29udGVudCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERy
YXdzQ29udGVudENoYW5nZWQpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChEcmF3c0Nv
bnRlbnRDaGFuZ2VkIHwgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXRDb250ZW50c1Zpc2libGUoYm9vbCBjb250ZW50c1Zpc2libGUpCkBAIC0x
MDQ0LDcgKzEwNDIsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyU2hv
d1JlcGFpbnRDb3VudGVyKFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcgogICAgIGlmIChtX2lzUGFn
ZVRpbGVDYWNoZUxheWVyICYmIHBsYXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKLSAgICByZXR1cm4gc2hvd1JlcGFpbnRDb3VudGVyKCk7CisgICAgcmV0dXJuIGlzU2hv
d2luZ1JlcGFpbnRDb3VudGVyKCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9y
bUNBTGF5ZXJQYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50
UmVjdCYgY2xpcCkKQEAgLTExNTEsNiArMTE0OSw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpj
b21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMoZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBj
CiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdl
ZCkKICAgICAgICAgdXBkYXRlQWNjZWxlcmF0ZXNEcmF3aW5nKCk7CiAKKyAgICBpZiAobV91bmNv
bW1pdHRlZENoYW5nZXMgJiBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKQorICAgICAgICB1cGRhdGVE
ZWJ1Z0JvcmRlcigpOworCiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ2hpbGRyZW5D
aGFuZ2VkKSB7CiAgICAgICAgIHVwZGF0ZVN1YmxheWVyTGlzdCgpOwogICAgICAgICAvLyBTdWJs
YXllcnMgbWF5IHNldCB0aGlzIGZsYWcgYWdhaW4sIHNvIGNsZWFyIGl0IHRvIGF2b2lkIGFsd2F5
cyB1cGRhdGluZyBzdWJsYXllcnMgaW4gY29tbWl0TGF5ZXJDaGFuZ2VzQWZ0ZXJTdWJsYXllcnMo
KS4KQEAgLTEzNDMsOCArMTM0NCw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVNYXNr
c1RvQm91bmRzKCkKICAgICAgICAgZm9yIChMYXllck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBs
YXllckNsb25lTWFwLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBpdC0+
dmFsdWUtPnNldE1hc2tzVG9Cb3VuZHMobV9tYXNrc1RvQm91bmRzKTsKICAgICB9Ci0KLSAgICB1
cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzVmlzaWJpbGl0eSgpCkBAIC0xNTI4LDcgKzE1MjcsNiBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6dXBkYXRlTGF5ZXJEcmF3c0NvbnRlbnQoZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBj
b25zdCBGbG9hdAogICAgICAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0Q29udGVudHMoMCk7CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiB9CiAKIHZvaWQg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBY2NlbGVyYXRlc0RyYXdpbmcoKQpAQCAtMTUzNiw2ICsx
NTM0LDE0IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVBY2NlbGVyYXRlc0RyYXdpbmco
KQogICAgIG1fbGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhtX2FjY2VsZXJhdGVzRHJhd2lu
Zyk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVEZWJ1Z0JvcmRlcigpCit7Cisg
ICAgaWYgKGlzU2hvd2luZ0RlYnVnQm9yZGVyKCkpCisgICAgICAgIHVwZGF0ZURlYnVnSW5kaWNh
dG9ycygpOworICAgIGVsc2UKKyAgICAgICAgbV9sYXllci0+c2V0Qm9yZGVyV2lkdGgoMCk7Cit9
CisKIEZsb2F0UmVjdCBHcmFwaGljc0xheWVyQ0E6OmFkanVzdFRpbGVkTGF5ZXJWaXNpYmxlUmVj
dChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZywgY29uc3QgRmxvYXRSZWN0JiBvbGRWaXNpYmxl
UmVjdCwgY29uc3QgRmxvYXRTaXplJiBvbGRTaXplKSBjb25zdAogewogICAgIC8vIElmIHRoZSBv
bGQgdmlzaWJsZSByZWN0IGlzIGVtcHR5LCB3ZSBoYXZlIG5vIGluZm9ybWF0aW9uIGFib3V0IGhv
dyB0aGUgdmlzaWJsZSBhcmVhIGlzIGNoYW5naW5nCkBAIC0yNDk4LDYgKzI1MDQsMjQgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxvYXQgcGFnZVNjYWxlRmFj
dG9yLCBjb25zdCBGbG9hdFBvaW4KICAgICAgICAgbV9sYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7
CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93
Qm9yZGVyKQoreworICAgIGlmIChzaG93Qm9yZGVyID09IG1fc2hvd0RlYnVnQm9yZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIoc2hv
d0JvcmRlcik7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERlYnVnSW5kaWNhdG9yc0No
YW5nZWQpOworfQorCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVy
KGJvb2wgc2hvd0NvdW50ZXIpCit7CisgICAgaWYgKHNob3dDb3VudGVyID09IG1fc2hvd1JlcGFp
bnRDb3VudGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRTaG93
UmVwYWludENvdW50ZXIoc2hvd0NvdW50ZXIpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdl
ZChEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNl
dERlYnVnQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIHsgICAgCiAgICAgaWYg
KGNvbG9yLmlzVmFsaWQoKSkKQEAgLTI2MTEsMTAgKzI2MzUsOSBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIsIGZsb2F0IC8q
cGFnZVNjYQogICAgICAgICB8IEJhY2tncm91bmRDb2xvckNoYW5nZWQKICAgICAgICAgfCBDb250
ZW50c1NjYWxlQ2hhbmdlZAogICAgICAgICB8IEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIHwgRmlsdGVyc0NoYW5nZWQKLSNlbmRpZgot
ICAgICAgICB8IE9wYWNpdHlDaGFuZ2VkOworICAgICAgICB8IE9wYWNpdHlDaGFuZ2VkCisgICAg
ICAgIHwgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZDsKICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAg
U3RyaW5nIG5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiJXNDQUxheWVyKCVwKSBHcmFwaGljc0xheWVy
KCVwKSAiLCAobV9sYXllci0+bGF5ZXJUeXBlKCkgPT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5
cGVXZWJUaWxlZExheWVyKSA/ICJUaWxlZCAiIDogIiIsIG1fbGF5ZXItPnBsYXRmb3JtTGF5ZXIo
KSwgdGhpcykgKyBtX25hbWU7CkBAIC0yNjI2LDggKzI2NDksNiBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIsIGZsb2F0IC8q
cGFnZVNjYQogICAgIAogICAgIC8vIG5lZWQgdG8gdGVsbCBuZXcgbGF5ZXIgdG8gZHJhdyBpdHNl
bGYKICAgICBzZXROZWVkc0Rpc3BsYXkoKTsKLSAgICAKLSAgICB1cGRhdGVEZWJ1Z0luZGljYXRv
cnMoKTsKIH0KIAogR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0
aW9uIEdyYXBoaWNzTGF5ZXJDQTo6ZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdApA
QCAtMjY1MSw3ICsyNjcyLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNM
YXllcihQbGF0Zm9ybUNBTGF5ZXIqIGNvbnRlbnRzTGF5ZXIpCiAgICAgfSBlbHNlCiAgICAgICAg
IGNvbnRlbnRzTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKIAotICAgIGlm
IChzaG93RGVidWdCb3JkZXJzKCkpIHsKKyAgICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkg
ewogICAgICAgICBjb250ZW50c0xheWVyLT5zZXRCb3JkZXJDb2xvcihDb2xvcigwLCAwLCAxMjgs
IDE4MCkpOwogICAgICAgICBjb250ZW50c0xheWVyLT5zZXRCb3JkZXJXaWR0aCgxLjBmKTsKICAg
ICB9CkBAIC0yODQ2LDcgKzI4NjcsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3Jh
cGhpY3NMYXllckNBOjpjbG9uZUxheWVyKFBsYXRmb3JtQ0FMYXllciAqbGF5ZXIsCiAgICAgICAg
IG1vdmVPckNvcHlBbmltYXRpb25zKENvcHksIGxheWVyLCBuZXdMYXllci5nZXQoKSk7CiAgICAg
fQogICAgIAotICAgIGlmIChzaG93RGVidWdCb3JkZXJzKCkpIHsKKyAgICBpZiAoaXNTaG93aW5n
RGVidWdCb3JkZXIoKSkgewogICAgICAgICBuZXdMYXllci0+c2V0Qm9yZGVyQ29sb3IoQ29sb3Io
MjU1LCAxMjIsIDI1MSkpOwogICAgICAgICBuZXdMYXllci0+c2V0Qm9yZGVyV2lkdGgoMik7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuaAppbmRleCAwMGNhNjJlNzUyNTk3Y2M0MzhmOTExZjhmMWM5YTkzZGRmODg0
N2M1Li4yZGViMmUyOGM5ZGJmNDFiN2YxZjQyYWFmN2UzYTE1NjljNzQ4YWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aApAQCAtMTIxLDYgKzEyMSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250
ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyOyB9CiAgICAgCisgICAg
dmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOworCiAgICAgdmly
dHVhbCB2b2lkIHNldERlYnVnQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmly
dHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgp
OwogCkBAIC0xNTIsNyArMTU1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZv
cm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpOwogICAg
IHZpcnR1YWwgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIHBsYXRmb3JtQ0FMYXll
ckNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBjb250ZW50c09yaWVudGF0aW9u
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyhHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKLSAgICB2aXJ0dWFsIGJvb2wgcGxh
dGZvcm1DQUxheWVyU2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0dXJuIHNob3dEZWJ1Z0Jv
cmRlcnMoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3Jk
ZXJzKCkgY29uc3QgeyByZXR1cm4gaXNTaG93aW5nRGVidWdCb3JkZXIoKTsgfQogICAgIHZpcnR1
YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVy
KikgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgcGxhdGZvcm1DQUxheWVySW5jcmVtZW50UmVwYWlu
dENvdW50KCkgeyByZXR1cm4gaW5jcmVtZW50UmVwYWludENvdW50KCk7IH0KIApAQCAtMzI2LDYg
KzMyOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVMYXllckFuaW1hdGlvbnMoKTsKICAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRzTmVlZHNEaXNwbGF5KCk7CiAgICAgdm9pZCB1cGRhdGVBY2Nl
bGVyYXRlc0RyYXdpbmcoKTsKKyAgICB2b2lkIHVwZGF0ZURlYnVnQm9yZGVyKCk7CiAgICAgdm9p
ZCB1cGRhdGVWaXNpYmxlUmVjdChjb25zdCBGbG9hdFJlY3QmIG9sZFZpc2libGVSZWN0KTsKICAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxvYXQgcGl4ZWxBbGlnbm1lbnRTY2FsZSwgY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSk7CiAgICAgCkBAIC0zNzcsOSAr
MzgxLDggQEAgcHJpdmF0ZToKICAgICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgPSAxIDw8IDIz
LAogICAgICAgICBDb250ZW50c1Zpc2liaWxpdHlDaGFuZ2VkID0gMSA8PCAyNCwKICAgICAgICAg
VmlzaWJsZVJlY3RDaGFuZ2VkID0gMSA8PCAyNSwKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMSA8PCAyNiwKLSNlbmRpZgorICAgICAgICBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkID0gMSA8PCAyNwogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBM
YXllckNoYW5nZUZsYWdzOwogICAgIHZvaWQgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKExheWVy
Q2hhbmdlRmxhZ3MgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCA1NTY5MDllOWQyYjBjM2E0OGJmNzZjZDRhODdmNjZjNzI2
MzhjMWRlLi44MjY3YmMzMTBlN2U0ZWYzZDM2OTk3ZGVmNGI4YTE4MjljMjkyYTkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjAz
LDYgKzIwMywzMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6YWRqdXN0VGlsZUNhY2hlQ292
ZXJhZ2UoKQogICAgIHRpbGVkQmFja2luZygpLT5zZXRUaWxlQ292ZXJhZ2UodGlsZUNvdmVyYWdl
KTsKIH0KIAordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyhi
b29sIHNob3dCb3JkZXIsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKQoreworICAgIG1fZ3JhcGhp
Y3NMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7CisgICAgCisg
ICAgaWYgKG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyKQorICAgICAgICBtX2FuY2VzdG9yQ2xpcHBp
bmdMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworCisgICAgaWYgKG1fZm9y
ZWdyb3VuZExheWVyKSB7CisgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXRTaG93RGVidWdC
b3JkZXIoc2hvd0JvcmRlcik7CisgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXRTaG93UmVw
YWludENvdW50ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKKyAgICB9CisKKyAgICBpZiAobV9tYXNr
TGF5ZXIpIHsKKyAgICAgICAgbV9tYXNrTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9y
ZGVyKTsKKyAgICAgICAgbV9tYXNrTGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlcihzaG93UmVw
YWludENvdW50ZXIpOworICAgIH0KKworICAgIGlmIChtX3Njcm9sbGluZ0xheWVyKQorICAgICAg
ICBtX3Njcm9sbGluZ0xheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0JvcmRlcik7CisKKyAg
ICBpZiAobV9zY3JvbGxpbmdDb250ZW50c0xheWVyKQorICAgICAgICBtX3Njcm9sbGluZ0NvbnRl
bnRzTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKK30KKwogdm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCkKIHsKICAgICBTdHJp
bmcgbGF5ZXJOYW1lOwpAQCAtMTU4NiwxNiArMTYxMSw2IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpnZXRDdXJyZW50VHJhbnNmb3JtKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hv
d0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4g
Y29tcG9zaXRvcigpID8gY29tcG9zaXRvcigpLT5jb21wb3NpdG9yU2hvd0RlYnVnQm9yZGVycygp
IDogZmFsc2U7Ci19Ci0KLWJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93UmVwYWludENvdW50
ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNvbXBvc2l0b3Io
KSA/IGNvbXBvc2l0b3IoKS0+Y29tcG9zaXRvclNob3dSZXBhaW50Q291bnRlcigpIDogZmFsc2U7
Ci19Ci0KIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjppc1RyYWNraW5nUmVwYWludHMoKSBjb25z
dAogewogICAgIEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCA9IGNvbXBvc2l0b3IoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAyMmZi
ODg5MDE2ZWRmNWIwYzFhOWNiNWMyNjIxNzA3Yjc3ZjM5NDZkLi4zOWFiYWVhZjM2ZmY0ZmM3NzAy
ODk1NGVlNDMwM2MxMzYwMzVhODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oCkBAIC0xNDEsNiArMTQxLDggQEAgcHVibGljOgogICAgIFRpbGVk
QmFja2luZyogdGlsZWRCYWNraW5nKCkgY29uc3Q7CiAgICAgdm9pZCBhZGp1c3RUaWxlQ2FjaGVD
b3ZlcmFnZSgpOwogICAgIAorICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKGJvb2wgc2hv
d0JvcmRlciwgYm9vbCBzaG93UmVwYWludENvdW50ZXIpOworICAgIAogICAgIC8vIEdyYXBoaWNz
TGF5ZXJDbGllbnQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVDYWNo
ZShjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSBzdGFy
dFRpbWUpIE9WRVJSSURFOwpAQCAtMTU0LDkgKzE1Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q3VycmVudFRyYW5zZm9ybShjb25zdCBH
cmFwaGljc0xheWVyKiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBjb25zdCBPVkVSUklERTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgYm9vbCBpc1Ry
YWNraW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5k
ZXggNmFhMzg1MTVjMTM0OGJhOWEzMjNjYzgxNDUxZDIwMWVmMGI0MDJmYy4uZDAyZTVlNDY5OTI2
YThjNTVmYmIwODM2ZTQ4NzVmMmQ5N2JmOGIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTU4Myw2ICs1ODMsMTAgQEAg
Ym9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXIqIGxh
eWVyLCBDb21wb3NpdGluZ0NoYW5nZVIKICAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAg
ICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3Rml4ZWRPYmplY3RzRGlk
Q2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkpOwogICAgIH0KKyAgICAKKyAgICBpZiAo
bGF5ZXItPmJhY2tpbmcoKSkKKyAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+dXBkYXRlRGVidWdJ
bmRpY2F0b3JzKG1fc2hvd0RlYnVnQm9yZGVycywgbV9zaG93UmVwYWludENvdW50ZXIpOworCiAg
ICAgcmV0dXJuIGxheWVyQ2hhbmdlZDsKIH0KIApAQCAtMjA0NCwyMiArMjA0OCw2IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRUcmFja3NSZXBhaW50cyhib29sIHRyYWNrc1JlcGFp
bnRzKQogICAgIG1faXNUcmFja2luZ1JlcGFpbnRzID0gdHJhY2tzUmVwYWludHM7CiB9CiAKLWJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIGlmIChsYXllciA9PSBtX2xheWVyRm9ySG9yaXpv
bnRhbFNjcm9sbGJhciB8fCBsYXllciA9PSBtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIgfHwg
bGF5ZXIgPT0gbV9sYXllckZvclNjcm9sbENvcm5lcikKLSAgICAgICAgcmV0dXJuIG1fc2hvd0Rl
YnVnQm9yZGVyczsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikg
Y29uc3QKLXsKLSAgICBpZiAobGF5ZXIgPT0gbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIg
fHwgbGF5ZXIgPT0gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyIHx8IGxheWVyID09IG1fbGF5
ZXJGb3JTY3JvbGxDb3JuZXIpCi0gICAgICAgIHJldHVybiBtX3Nob3dEZWJ1Z0JvcmRlcnM7Ci0K
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1Ry
YWNraW5nUmVwYWludHMoKSBjb25zdAogewogICAgIHJldHVybiBtX2lzVHJhY2tpbmdSZXBhaW50
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAppbmRleCBlNThhYTNhNmNjZDAzNmM4YmMwN2VhMDZjZDIwNmUzYzZjN2UxNWRhLi44MWFhZjQx
NDFkYzMxYTE2OGJhNjY1YjAyNmYzYjZlYjdjZDY3MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yMDIsMTEgKzIwMiw2IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MpOwog
Ci0gICAgLy8gVGhlc2UgYXJlIG5hbWVkIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHRoZSBmdW5j
dGlvbnMgaW4gR3JhcGhpY3NMYXllckNsaWVudAotICAgIC8vIFRoZXNlIHJldHVybiB0aGUgYWN0
dWFsIGludGVybmFsIHZhcmlhYmxlcy4KLSAgICBib29sIGNvbXBvc2l0b3JTaG93RGVidWdCb3Jk
ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9Ci0gICAgYm9vbCBjb21w
b3NpdG9yU2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9zaG93UmVwYWludENv
dW50ZXI7IH0KLQogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3Jh
cGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwpAQCAtMjM5LDkgKzIzNCw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXll
ciopIE9WRVJSSURFIHsgc2NoZWR1bGVMYXllckZsdXNoKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKIAotICAg
IHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgYm9vbCBpc1RyYWNr
aW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKICAgICAKICAgICAvLyBHcmFwaGljc0xheWVy
VXBkYXRlckNsaWVudCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViT3ZlcmxheV9wLmgKaW5kZXggODQ2ZTVjYzdhNTg2MzhlZjA3MzJhNDFjNzhkYjg5MDA3
YzAzMDkyOC4uNzQyZmUwYmIxYTI5NDdiZDJhMzVjNWM0Y2YwNWQwNTE5NTJlNGNiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCkBAIC0xNjcsOCArMTY3
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBjb250ZW50c1Zpc2libGUoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAppbmRleCA3NTY5MzIwYjk4MWVhMDRlNDEyZmZmNjZkMDI5ZTA2MTliMmM4ZWYyLi5m
ZDQ5YjQ4ZGUyN2I3NjE1NzZjMDM3ZGY5OTZlNzNhNGFlN2QyYmJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTU3MzEsMTYgKzU3MzEsNiBAQCB2b2lkIFdl
YlBhZ2VQcml2YXRlOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQog
ewogICAgIHNjaGVkdWxlUm9vdExheWVyQ29tbWl0KCk7CiB9Ci0KLWJvb2wgV2ViUGFnZVByaXZh
dGU6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29s
IFdlYlBhZ2VQcml2YXRlOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3Vu
dGVyKCk7Ci19CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lk
IFdlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBkZWUwODQ5NTIxMGNhYTFl
ODMzYTRjZDZlZWQyMzZiYTFhMTI0MmM0Li5mNGIwOTQ3NDJmYjRjZDQ3NzVjMGRmMmNhODk4NWVj
NTVjMGJiYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAg
LTQwMSw4ICs0MDEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXAp
IHsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVy
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAgIC8vIFdlYktpdCB0
aHJlYWQsIHBsdW1iZWQgdGhyb3VnaCBmcm9tIENocm9tZUNsaWVudEJsYWNrQmVycnkuCiAgICAg
dm9pZCBzZXRSb290TGF5ZXJXZWJLaXRUaHJlYWQoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpM
YXllcldlYktpdFRocmVhZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcAppbmRleCA0NTQ3
MmFhZmQ5NGIwMzg3Y2NlNmYyYjE4MmViM2NkNjkxYTkxZGRhLi43N2IyYzc1YWM3ZDcxZGE2MTI2
ZjhjNDgwYTgyMWNlZWM5MjEyZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcApAQCAt
MTQ4LDE2ICsxNDgsNiBAQCB2b2lkIERlZmF1bHRUYXBIaWdobGlnaHQ6OnBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgYwogICAgIGMucmVzdG9yZSgp
OwogfQogCi1ib29sIERlZmF1bHRUYXBIaWdobGlnaHQ6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3Qg
R3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hvd0Rl
YnVnQm9yZGVycyhsYXllcik7Ci19Ci0KLWJvb2wgRGVmYXVsdFRhcEhpZ2hsaWdodDo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJl
dHVybiBtX3BhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7Ci19Ci0KIGJvb2wgRGVmYXVs
dFRhcEhpZ2hsaWdodDo6Y29udGVudHNWaXNpYmxlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCkgY29uc3QKIHsKICAgICAvLyBUaGlzIGxheWVyIGlzIHR5
cGljYWxseSBzbWFsbCBlbm91Z2ggdGhhdCB3ZSBjYW4gYWZmb3JkIHRvIGNhY2hlIGFsbCB0aWxl
cyBhbmQgbmV2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaAppbmRleCAwNmM1NTkwNTc5NTIwOTNm
YWQ4Y2E5YTVkMThmMGE3NzIwNmVmY2FlLi45MGFmOTRjYWFiOTFhZTQ5ZTI0MDQ2OWM3MjU2MmYx
YWMzOTFkYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oCkBAIC01Nyw4ICs1Nyw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Owot
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjb250ZW50c1Zpc2libGUoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRS
ZWN0KSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0Jl
cnJ5LmNwcAppbmRleCAwODE1ZGQ5N2JjYjI5NWRkZWIwNGI4NmMyMzIwYTM2NTc3NTVkM2UwLi41
MmM5YzRkMmU4NjI5ZjY4N2I0NDk3NWI5MWQyNTBiZTZjNDgwMzI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tC
ZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5z
cGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwCkBAIC01NiwxNSArNTYsNiBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IFdlYkNvcmU6OkdyYQogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCi1ib29sIEluc3BlY3Rv
ck92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
bGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd0RlYnVnQm9yZGVycyhs
YXllcik7Ci19Ci0KLWJvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd1JlcGFpbnRDb3VudGVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJldHVybiBt
X3dlYlBhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7Ci19CiAjZW5kaWYKIAogSW5zcGVj
dG9yT3ZlcmxheTo6fkluc3BlY3Rvck92ZXJsYXkoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5
LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5QmxhY2tCZXJyeS5oCmluZGV4IDkxMTk3Y2MwYzljYjgzYzM2YzFjMmQ0NTdjNjI2MTQ1MmQz
ZDMxMDcuLjZkZjRiYTYyYWY4N2JmNzc5NTRjMzRlNTFlOWNlMGE5OGZkNzU5OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJs
YXlCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93
RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAppbmRl
eCBlMDZmN2RmMWMxMTBjZjNhOWZiOTczMzU2YmJjMGJjNWEzZTY4Yjk1Li5kMzUyYjE3N2E0Mzkw
Y2MxNDkxODZhY2JmOWJkYTRiYzRiNDNiNDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApAQCAt
MTE3LDE2ICsxMTcsNiBAQCB2b2lkIFNlbGVjdGlvbk92ZXJsYXk6OnBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgYywgRwogICAgIGMucmVzdG9yZSgp
OwogfQogCi1ib29sIFNlbGVjdGlvbk92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hvd0RlYnVn
Qm9yZGVycyhsYXllcik7Ci19Ci0KLWJvb2wgU2VsZWN0aW9uT3ZlcmxheTo6c2hvd1JlcGFpbnRD
b3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJldHVybiBt
X3BhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmggYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKaW5kZXgg
NTc2MmI1YTg5YzFkNGI2NWZjNzg0OTVlMTRlNmEwNjdkMWQwNjA0Yi4uZDI3MDRkYzNmN2I3MjAx
ZWVjMjc0ZTNlYjE3NDNhODBmNmJlYTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaApAQCAtNTIsOCAr
NTIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZp
cnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBTZWxlY3Rpb25PdmVy
bGF5KFdlYlBhZ2VQcml2YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAppbmRleCAyM2RjZGRlOWI3OWI0OTg5
NWEyZjIyMWI3YmE1MTAwYTM2Y2MzYTJmLi5mNWI2YjYwMzY4ZjZhYzZiZGEwYjVjYzI0NTc3NjJk
ZGE2ZThjYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21w
b3NpdGVkQ29udGVudEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKQEAgLTE5MSwxNiArMTkxLDYgQEAgdm9pZCBOb25D
b21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCBzaG93RGVidWdC
b3JkZXJzKQogICAgIG1fZ3JhcGhpY3NMYXllci0+dXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiB9
CiAKLWJvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3Nob3dEZWJ1
Z0JvcmRlcnM7Ci19Ci0KLWJvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzaG93UmVwYWlu
dENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotCiBib29sIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6aXNUcmFja2lu
Z1JlcGFpbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV93ZWJWaWV3LT5pc1RyYWNraW5nUmVw
YWludHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0LmgKaW5kZXggMmI2ZGRjMWFhYjAwMjYxNWUyYjkxZjc4OWE2NjVkNDNm
MmI1YjA4MS4uYjJkMTA1MDM5ODY0ZDQ5YzJjNzg5NTRmZjE0OGVhM2ZkZGNjYTdkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LmgKQEAgLTcxLDggKzcxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRp
bWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291
bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0OwogCiAgICAgYm9vbCBoYXZlU2Nyb2xsTGF5
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAppbmRleCBh
MTZhMDEwNzdlYjM1YWJjODI3MDg3Nzk5Mjk1MzY1NDljNGI4ZjYzLi5jOTU2ODdhZjYzZDVkY2I4
MDdkMmY3ZjVmYzA0N2JlNDc0MzkyZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGFnZU92ZXJsYXkuY3BwCkBAIC05NCwxNiArOTQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBtX3dlYlZpZXdJbXBsLT5wYWdlU2NhbGVGYWN0b3IoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5wYWdlKCktPnNldHRpbmdzKCktPnNob3dE
ZWJ1Z0JvcmRlcnMoKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
d2ViVmlld0ltcGwtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci0g
ICAgfQotCiBwcml2YXRlOgogICAgIE92ZXJsYXlHcmFwaGljc0xheWVyQ2xpZW50SW1wbChXZWJW
aWV3SW1wbCogd2ViVmlld0ltcGwsIFdlYlBhZ2VPdmVybGF5KiBvdmVybGF5KQogICAgICAgICA6
IG1fb3ZlcmxheShvdmVybGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMGNlODQyNTdiNWJh
N2JiODMwMWVlN2VkNjEzN2JiNWRiMDQ0NWZlNy4uYjA0YjNhOTQ1M2ExZmUyYmI0ODljNzUwYTUw
YTAxNjk5OTdhOTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9H
cmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC01Miw4ICs1Miw2IEBAIGNs
YXNzIE1vY2tHcmFwaGljc0xheWVyQ2xpZW50IDogcHVibGljIEdyYXBoaWNzTGF5ZXJDbGllbnQg
ewogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBkb3VibGUgdGltZSkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIE9WRVJSSURFIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0Nv
bnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgaW5DbGlw
KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBH
cmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAyOyB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0LmNwcApp
bmRleCBiZmIwM2VkMzA0ZjQ5OGM4M2QwOGVmZDcxNTNiNjFhYTYyZmVlNWI1Li43NGMyZjE2Njlh
NDU0MzI0YjVlMzRmOWZmMDUzMWQ4MzQwYTQ4Yzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTQwLDgg
KzQwLDYgQEAgY2xhc3MgTW9ja0dyYXBoaWNzTGF5ZXJDbGllbnQgOiBwdWJsaWMgR3JhcGhpY3NM
YXllckNsaWVudCB7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYs
IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIHsgfQot
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50
ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBj
bGFzcyBUZXN0SW1hZ2UgOiBwdWJsaWMgSW1hZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmgKaW5kZXggNjU3MmVhNWVhZDI4MTNjNzViZjU3Y2UxNDM5MWMxOWQwZWE0YzE1OC4uMDI1
OTdkMTZkM2ZhNTQyOWQ2Y2EzMzYxMmI2M2FjMGRiYzdiOTNlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5oCkBAIC02MCw4ICs2MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
ZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3RUb1BhaW50KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAK
ICAgICB2b2lkIGluaXRpYWxpemUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dENhaXJvLmNwcAppbmRleCAzNzg5MDM0MjYzMGVjNTBkZjRmYjg5YTMwNWQxNzRlMTA5NTc1
YjhjLi5jYzY5NDJlZTg4Mzk1NWYzMjc1ZGEzNmE5YTYwMWY1NGY4OWM2NjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcApAQCAtMTY5LDE2ICsxNjksNiBA
QCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljcwogICAgIGNvcHlSZWN0RnJvbUNhaXJvU3VyZmFjZVRv
Q29udGV4dChtX3dlYlZpZXctPnByaXYtPmJhY2tpbmdTdG9yZS0+Y2Fpcm9TdXJmYWNlKCksIGNy
LCBJbnRTaXplKCksIHJlY3RUb1BhaW50KTsKIH0KIAotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsK
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfQ0FJ
Uk8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcAppbmRl
eCA4N2NlYjZlYTAyNGFiNDBmOGE0ODNhODYxMzM3MjM4NzVlZTM2ZjFlLi45ZmNhZTUyNTdhNDE1
YTkzNGJjNDJjNWMzNmJjMDhmZTU2ZWI1OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKQEAgLTE2NSwxOCArMTY1LDYgQEAgdm9pZCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiwKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotYm9vbCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QKLXsK
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoQ0xVVFRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAK
aW5kZXggZWZjMjA2MTkzNDRlYjI1YzI4NTQ2YmVkMmRkZDdjNzRmNDQ1ZWFiZi4uZDEzMGEzZmI3
YjNiMTg5MDZhZWE5ZGY4OTg5MzRiMWE2ZmZhZjAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRHTC5jcHAKQEAgLTM4MywxNiArMzgzLDYgQEAgdm9pZCBBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3Jh
cGhpY3MKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQ6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3Bw
CmluZGV4IDg1YTBjYTQ3YTJjZDBmZjIxZjk0YzlkMGE0NTYxNGU3NTExMGFhZGIuLjM4MTgwMjJl
NDUzMTUxOGZmNDEwYWZmOWYyYWE3MmQ2YzYwYjVjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3BwCkBAIC0xODgsOCArMTg4LDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6
Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIHBsYXRmb3JtQ0FMYXllckNvbnRlbnRz
T3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nv
b3JkaW5hdGVzQm90dG9tVXA7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyUGFp
bnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIHsgfQot
ICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3JkZXJzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvd1Jl
cGFpbnRDb3VudGVyKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBpbnQgcGxhdGZvcm1DQUxheWVySW5jcmVtZW50UmVwYWludENvdW50KCkgeyBy
ZXR1cm4gMDsgfQogCiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckNvbnRlbnRzT3Bh
cXVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggM2Ex
Yjc0ZTIxMzUxZmFkYTZkNDFhY2RmODlmMjU0YTgzYWFjYjY4Ny4uZGQ3MDA4ZWIzYTRhN2RjNjgw
ZGQyZjBmMjZmODcxODAwYWRjMjFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTY2NDUsMTYg
KzY2NDUsNiBAQCB2b2lkIFdlYlZpZXc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcAogICAgIGNvbnRleHQucmVzdG9yZSgp
OwogfQogCi1ib29sIFdlYlZpZXc6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9y
ZGVycygpOwotfQotCi1ib29sIFdlYlZpZXc6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFw
aGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93
UmVwYWludENvdW50ZXIoKTsKLX0KLQogdm9pZCBXZWJWaWV3OjpmbHVzaFBlbmRpbmdHcmFwaGlj
c0xheWVyQ2hhbmdlcygpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV9tYWluRnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5oCmluZGV4IDk4ZmNiYjNlMWJkM2JiNTI2NTliMGM1ZGFkODZjZDIy
MTk1MjNkZTAuLmM5MzczNDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFiNzM2MDdiNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmgKQEAgLTEwMjAsOCArMTAyMCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAg
IC8vIENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoUGVuZGlu
Z0dyYXBoaWNzTGF5ZXJDaGFuZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApp
bmRleCBkZGVhMzFkN2JlYmEzY2ExOThiMzgyNDJkODYwM2FlNzBlNDZkNmEzLi44NTk2MDIyOTYy
NDFlMDE0YzZhNzJmODY3MjY5YTZkYjRlMTZjY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJl
bmRlcmVyLmgKQEAgLTEwOCw4ICsxMDgsNiBAQCBwcml2YXRlOgogICAgIC8vIFJlaW1wbGVtZW50
YXRpb25zIGZyb20gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudC4KICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
ZG91YmxlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0Jv
cmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50Q29u
dGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikgeyB9CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpOwogICAgIHZvaWQgZGlz
cGF0Y2hPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDllYjM3
OGU1ZGEzMzFmYzhjOTFjNTJhNDQ5OWI2YTU5ZDRlZmYyYWMuLjBkZGZjZWRjZDBlYzBhNmUzNmRl
NTJlNzQxMjdhZTFkOWRmZGVhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTU3OCwxNiArNTc4LDYgQEAgdm9pZCBMYXll
clRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiBncmFwaGljc0wKICAgICB9CiB9CiAKLWJvb2wgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNo
b3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9y
ZGVycygpOwotfQotCi1ib29sIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzaG93UmVwYWludENvdW50
ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
d2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19
Ci0KIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIHJldHVy
biBhZG9wdFB0cihuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNsaWVudCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggZDcy
NWFmNjk3YTg1M2RlYzkxZmM2ODk1OTJhMjVkMzA5NjQ3NzFmNS4uY2FjYjY4ZWFhZTViOTc5YTE1
NWI3MDU2NGVkYzE4MmVlM2RhMzA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC0xMTIsOCArMTEyLDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVn
Qm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVh
bCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
Y29uc3Q7CiAKICAgICAvLyBHcmFwaGljc0xheWVyRmFjdG9yeQogICAgIHZpcnR1YWwgUGFzc093
blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJDbGllbnQqKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKaW5kZXggMDg3
MmY0MzU1MGU3NjJmZGY5NmVmOGM4MjI0OTJlMzQ1NjMzM2ZjZS4uZGJhNTVjMjEyMjkzZDY1MmU4
NmE2YmJkYTE5MGJjODA1NjgxOWUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKQEAgLTIwMywxNiArMjAz
LDYgQEAgdm9pZCBMYXllclRyZWVIb3N0Q0E6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3MKICAgICB9CiB9CiAKLWJvb2wgTGF5ZXJUcmVl
SG9zdENBOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewot
ICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0Jv
cmRlcnMoKTsKLX0KLQotYm9vbCBMYXllclRyZWVIb3N0Q0E6OnNob3dSZXBhaW50Q291bnRlcihj
b25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3Jl
UGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KLQogZmxvYXQgTGF5
ZXJUcmVlSG9zdENBOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
d2ViUGFnZS0+Y29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuaAppbmRl
eCA5Y2I4Y2E2YTU0ZmMzODZkMmJlM2M4OTI5MjQ4Y2ZiZTVlMDJjNjVmLi4yMWIxM2RhMWMyNDky
ZTNkM2ZlNDRhYjg4ODRkNjlmZWZiMWNhMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oCkBAIC03Niw4ICs3Niw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVh
bCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNv
bnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5j
cHAKaW5kZXggYWYyYWU4OWJmYTI5MTU1Y2VmYTYzMmRhMjJjN2U2YmYzYWVhYjVjNi4uMDdmZTEy
ODU1YTdkYTgxOWE4MjMxZTA5ODU5ZGJlYTIzMGUwZTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3Bw
CkBAIC0yNTgsMTYgKzI1OCw2IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6cGFpbnRDb250ZW50
cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljCiAgICAgfQogfQog
Ci1ib29sIExheWVyVHJlZUhvc3RHdGs6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NM
YXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGlu
Z3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIExheWVyVHJlZUhvc3RHdGs6OnNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1
cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIo
KTsKLX0KLQogZ2Jvb2xlYW4gTGF5ZXJUcmVlSG9zdEd0azo6bGF5ZXJGbHVzaFRpbWVyRmlyZWRD
YWxsYmFjayhMYXllclRyZWVIb3N0R3RrKiBsYXllclRyZWVIb3N0KQogewogICAgIGxheWVyVHJl
ZUhvc3QtPmxheWVyRmx1c2hUaW1lckZpcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCmluZGV4IDYxYjlm
YTY3MTU4MzM2YTM0NjNjZGMwY2Y3Y2M4OTgzN2UwYjExMjQuLjg0MGFkYTgxM2E2NzBkNjBlZWJi
OGU1YjQxMzA4MmY2ODZmNGQwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC03Nyw4ICs3Nyw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9y
TGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgfQogCiAgICAgdm9p
ZCBjcmVhdGVQYWdlT3ZlcmxheUxheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLmgKaW5kZXggZjUwNDhhOTg1ZWU1ODdiYjcyYjNiMDBjYjUyOTQ3YmNjOGYzZGZh
Yy4uN2Q1YjNiZTk2NjIwNGI4MzEyZjllNWVkNjY1ODdkNjkyOTgxMWI3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFp
bnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7CiAK
ICAgICAvLyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCBmY2Q3MmNhYzkyYTg3ZDg0NGJmYzg4
MTdjYzAxZjZkZjRhYjcxNzVmLi5jZjVkMjNlMDEzYjk4NGNiN2JjZDkzMWRhMzIzZTg3YzQ3ZTYy
ZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTI3
MywxNiArMjczLDYgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRD
b250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0wKICAgICBtX3dlYlBhZ2UtPmRy
YXdQYWdlT3ZlcmxheShncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKIH0KIAotYm9vbCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93
UmVwYWludENvdW50ZXIoKTsKLX0KLQogZmxvYXQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV93ZWJQYWdlLT5j
b3JlUGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172190</attachid>
            <date>2012-11-02 18:19:15 -0700</date>
            <delta_ts>2012-11-02 20:30:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101136-20121102181734.patch</filename>
            <type>text/plain</type>
            <size>56301</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmZjQ3ZTQ4NzNlZmVl
NDVmNGNjZmM3NTViYjdhNTgyZDNhNTBjYi4uNjEyYmM0NTI0Nzk5NWUzNjZhOTQ0ZmIwMzU4YWU5
YzE4N2E3MjA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY2IEBACiAyMDEyLTExLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEZpeCBsYXllciBi
b3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NMYXll
cnMgZGVjaWRlZCB3aGV0aGVyIHRvIHNob3cgbGF5ZXIgYm9yZGVycyBiYXNlZAorICAgICAgICBv
biBhIGNhbGxiYWNrIHRocm91Z2ggdGhlIEdyYXBoaWNzTGF5ZXJDbGllbnQuIFRoaXMgbWFkZSBp
dAorICAgICAgICBoYXJkIHRvIG1hbmFnZSBzdGF0ZSwgcmVzdWx0aW5nIGluIGEgZmFpbHVyZSB0
byBjbGVhbmx5CisgICAgICAgIGhpZGUgbGF5ZXJzIHdoZW4gdG9nZ2xlZCBvZmYgdmlhIHRoZSBw
cmVmZXJlbmNlLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgbGF5ZXIgYm9yZGVyIGFu
ZCByZXBhaW50IGNvdW50ZXIgdmlzaWJpbGl0eSB0byBiZSBiaXRzCisgICAgICAgIHN0b3JlZCBv
biBHcmFwaGljc0xheWVyIGp1c3QgbGlrZSBvdGhlciBwcm9wZXJ0aWVzLCB3aXRoIGdldHRlcnMK
KyAgICAgICAgYW5kIHNldHRlcnMuIFJlbmRlckxheWVyQmFja2luZyBub3cgdXBkYXRlcyB0aGVz
ZSBkZWJ1ZworICAgICAgICBpbmRpY2F0b3JzIHdoZW4gd2UgdXBkYXRlIG90aGVyIGNvbXBvc2l0
aW5nIGxheWVyIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBJbiBHcmFwaGljc0xheWVy
Q0EsIGF2b2lkIGNhbGxpbmcgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCkgZXhwbGljaXRseQorICAg
ICAgICBpbiBzZXZlcmFsIHBsYWNlcyBieSBzZXR0aW5nIHRoZSBjaGFuZ2UgZmxhZyBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkCisgICAgICAgIGZvciBwcm9wZXJ0aWVzIHdob3NlIHZhbHVlcyBhZmZl
Y3QgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGRlYnVnIGJvcmRlci4KKworICAgICAgICBSZW1vdmVk
IHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAor
ICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKSB3aGljaCBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVk
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmlzU2hvd2luZ0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjppc1Nob3dpbmdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpyZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6aW5jcmVtZW50UmVwYWludENvdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
R3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0
TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldERy
YXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3JhcGhp
Y3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyU2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKworMjAx
Mi0xMS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAg
ICBFbmFibGUgU1VCUElYRUxfTEFZT1VUIG9uIE1hYwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMDc2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCmluZGV4IGY4YWQzZjhmN2QyNjc4OTZlNTc3ZTZiZmQ3ZTc3M2Y0MTU5ZjlmOWMuLjQ2Njlk
Y2M5OTExOWIxOWE2NzI1OTIxMmM1ZjE3MmY2ZGJjNmE1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNs
ZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVy
Q2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVwYWlu
dENvdW50ZXIoKS4KKworICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAgICAgKFdl
Yk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpub3RpZnlGbHVz
aFJlcXVpcmVkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgICogV2ViS2l0
U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0RlZmF1bHRUYXBIaWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRUYXBIaWdobGlnaHQpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaDoKKyAg
ICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0
aW9uT3ZlcmxheS5jcHA6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5
Lmg6CisgICAgICAgIChTZWxlY3Rpb25PdmVybGF5KToKKwogMjAxMi0xMS0wMiAgTmltYSBHaGFu
YXZhdGlhbiAgPG5naGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBG
aXggY29tcGlsZS10aW1lIHdhcm5pbmcgb2YgYSBwb3NzaWJsZSBlbXB0eS1ib2R5IGlmIHN0YXRl
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNzdkYjJiNmUwNDg4YzgxZTI0ZDYz
N2Q4NTMwYmU1N2QzYWFmN2ZiLi45MjE5NTg5OGUzMmI2YzY4N2FjYjU1MTQ2YTI1YTE1ZmE1M2Ez
ZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEx
LTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZp
eCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRj
aGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
MTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFu
ZAorICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIHNyYy9Ob25Db21w
b3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVkQ29udGVu
dEhvc3QuaDoKKyAgICAgICAgKE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAgICAgICog
c3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21p
dW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0LmNwcDoK
KwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBhIFBsdWdpbkluYWN0aXZlIHBsdWctaW4gdW5hdmFpbGFiaWxpdHkgcmVhc29u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTA1ODY0NWUwZjczZGExZTNkMGI5N2ZkYTI2ODBhYmRjZDlm
YjRjNS4uYjJkMTE1NzZiODljYWNiYjhhYTRlNWNiMWYxZGJkZDZiZGNlYjkzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFu
aW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xp
ZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVwYWludENv
dW50ZXIoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWly
by5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRDbHV0dGVyLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKwogMjAxMi0xMS0wMiAgTWFydGluIFJvYmluc29uICA8
bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIGRlcGVuZGVuY3kg
b24gU291cFBhc3N3b3JkTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDRmYTZlOTMyYWI1Nzk3
NWZiYjc2ZDZkYzIyODdlNWI4NzRlZTJmYmEuLmY5NmJmM2JlYjhjMDNiZWUxODQ0YmVkOTFjMmY5
MDdmYmFmMzc5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMS0w
MiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXgg
bGF5ZXIgYm9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBzd2l0Y2hp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTEz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQK
KyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisKKyAgICAgICAgKiBGdWxsc2NyZWVuVmlk
ZW9Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKiBXZWJW
aWV3Lmg6CisKIDIwMTItMTAtMjkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdHJpbmc6OmNyZWF0ZUNGU3RyaW5nIHNob3VsZCByZXR1cm4gYSBSZXRh
aW5QdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA2N2I3MjM1MTlmYTJiYWI0OGEyNjg1MjhjYTQ1NDNiMTIwMmI5
Njg1Li5lZjRjMDZmYmFlNmU0YmUxOTc0YzVmZWEzNjQyY2E2MTQyMjYxNTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMjkgQEAKIDIwMTItMTEtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKKyAgICAgICAgRml4IGxheWVyIGJvcmRlcnMgdG8gY2xlYW5pbmcgYXBw
ZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlbW92ZSB0aGUgR3JhcGhpY3NMYXllckNs
aWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQKKyAgICAgICAgc2hvd1JlcGFpbnRD
b3VudGVyKCkuCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdENBKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oOgorICAg
ICAgICAoTGF5ZXJUcmVlSG9zdEd0ayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAoVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisKKzIwMTItMTEtMDIgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgRW5hYmxlIFNVQlBJWEVMX0xB
WU9VVCBvbiBNYWMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTA3NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCmluZGV4IDBkYjI0OTk5MjBjMDkxM2I2NDQxZjIxOGFiOTE4NzZkNDE0
ZTEwMzUuLmRkM2I3YTlkZjJmMDQ0ZGY2NWM0YTQxYjA2NzY4NDk4OThlM2I1MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBA
IC04OSw2ICs4OSw4IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXll
ckNsaWVudCogY2xpZW50KQogICAgICwgbV9hY2NlbGVyYXRlc0RyYXdpbmcoZmFsc2UpCiAgICAg
LCBtX21haW50YWluc1BpeGVsQWxpZ25tZW50KGZhbHNlKQogICAgICwgbV9hcHBsaWVzUGFnZVNj
YWxlKGZhbHNlKQorICAgICwgbV9zaG93RGVidWdCb3JkZXIoZmFsc2UpCisgICAgLCBtX3Nob3dS
ZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAsIG1fcGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVy
UGFpbnRBbGxXaXRoT3ZlcmZsb3dDbGlwKQogICAgICwgbV9jb250ZW50c09yaWVudGF0aW9uKENv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BEb3duKQogICAgICwgbV9wYXJlbnQoMCkKQEAgLTM3NCw3
ICszNzYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmdldERlYnVnQm9yZGVySW5mbyhDb2xvciYg
Y29sb3IsIGZsb2F0JiB3aWR0aCkgY29uc3QKIAogdm9pZCBHcmFwaGljc0xheWVyOjp1cGRhdGVE
ZWJ1Z0luZGljYXRvcnMoKQogewotICAgIGlmICghR3JhcGhpY3NMYXllcjo6c2hvd0RlYnVnQm9y
ZGVycygpKQorICAgIGlmICghaXNTaG93aW5nRGVidWdCb3JkZXIoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQ29sb3IgYm9yZGVyQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggZTkzN2NhNWQ4MzM1MjdhMjdlNjdkMTY5
MTgwOGQyMjJhZTIyMjJiMy4uNzEyYWRiMzBjNDJlNGI1MDRhMDU1ZjU5YThkNmZkMzM0YWY0NjE3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaApAQCAtMzUyLDI0ICszNTIsMjYgQEAgcHVibGljOgogICAgIC8vIEZvciBob3N0aW5nIHRo
aXMgR3JhcGhpY3NMYXllciBpbiBhIG5hdGl2ZSBsYXllciBoaWVyYXJjaHkuCiAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAg
IAotICAgIHZvaWQgZHVtcExheWVyKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50ID0gMCwgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IgPSBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7
Ci0KLSAgICBpbnQgcmVwYWludENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Q291bnQ7
IH0KLSAgICBpbnQgaW5jcmVtZW50UmVwYWludENvdW50KCkgeyByZXR1cm4gKyttX3JlcGFpbnRD
b3VudDsgfQotCiAgICAgZW51bSBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24geyBD
b21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93biwgQ29tcG9zaXRpbmdDb29yZGluYXRlc0JvdHRv
bVVwIH07CiAKICAgICAvLyBGbGlwcGVkbmVzcyBvZiB0aGUgY29udGVudHMgb2YgdGhpcyBsYXll
ci4gRG9lcyBub3QgYWZmZWN0IHN1YmxheWVyIGdlb21ldHJ5LgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c09yaWVudGF0aW9uKENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikgeyBtX2NvbnRlbnRzT3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsgfQogICAg
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBjb250ZW50c09yaWVudGF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZW50c09yaWVudGF0aW9uOyB9CiAKLSAgICBib29sIHNob3dE
ZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5zaG93RGVi
dWdCb3JkZXJzKHRoaXMpIDogZmFsc2U7IH0KLSAgICBib29sIHNob3dSZXBhaW50Q291bnRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnNob3dSZXBhaW50Q291bnRlcih0
aGlzKSA6IGZhbHNlOyB9Ci0gICAgCi0gICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsK
LSAgICAKKyAgICB2b2lkIGR1bXBMYXllcihUZXh0U3RyZWFtJiwgaW50IGluZGVudCA9IDAsIExh
eWVyVHJlZUFzVGV4dEJlaGF2aW9yID0gTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwpIGNv
bnN0OworCisgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sIHNob3cpIHsg
bV9zaG93RGVidWdCb3JkZXIgPSBzaG93OyB9CisgICAgYm9vbCBpc1Nob3dpbmdEZWJ1Z0JvcmRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyOyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wgc2hvdykgeyBtX3Nob3dSZXBhaW50Q291bnRl
ciA9IHNob3c7IH0KKyAgICBib29sIGlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG93UmVwYWludENvdW50ZXI7IH0KKworICAgIGludCByZXBhaW50Q291bnQoKSBj
b25zdCB7IHJldHVybiBtX3JlcGFpbnRDb3VudDsgfQorICAgIGludCBpbmNyZW1lbnRSZXBhaW50
Q291bnQoKSB7IHJldHVybiArK21fcmVwYWludENvdW50OyB9CisKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCAvKmJvcmRlcldpZHRoKi8pIHsg
fQorCiAgICAgLy8gei1wb3NpdGlvbiBpcyB0aGUgei1lcXVpdmFsZW50IG9mIHBvc2l0aW9uKCku
IEl0J3Mgb25seSB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAgdmlydHVhbCBmbG9h
dCB6UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3pQb3NpdGlvbjsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRaUG9zaXRpb24oZmxvYXQpOwpAQCAtNDM5LDYgKzQ0MSw4IEBAIHByb3RlY3RlZDoK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5SW50ZXJuYWwoZmxvYXQpIHsgfQogCisgICAg
dm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKKwogICAgIC8vIFRoZSBsYXllciBiZWluZyBy
ZXBsaWNhdGVkLgogICAgIEdyYXBoaWNzTGF5ZXIqIHJlcGxpY2F0ZWRMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcmVwbGljYXRlZExheWVyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJlcGxpY2F0
ZWRMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikgeyBtX3JlcGxpY2F0ZWRMYXllciA9IGxheWVy
OyB9CkBAIC00ODYsNyArNDkwLDkgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9hY2NlbGVyYXRl
c0RyYXdpbmcgOiAxOwogICAgIGJvb2wgbV9tYWludGFpbnNQaXhlbEFsaWdubWVudCA6IDE7CiAg
ICAgYm9vbCBtX2FwcGxpZXNQYWdlU2NhbGUgOiAxOyAvLyBTZXQgZm9yIHRoZSBsYXllciB3aGlj
aCBoYXMgdGhlIHBhZ2Ugc2NhbGUgYXBwbGllZCB0byBpdC4KLQorICAgIGJvb2wgbV9zaG93RGVi
dWdCb3JkZXIgOiAxOworICAgIGJvb2wgbV9zaG93UmVwYWludENvdW50ZXIgOiAxOworICAgIAog
ICAgIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIG1fcGFpbnRpbmdQaGFzZTsKICAgICBDb21w
b3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gbV9jb250ZW50c09yaWVudGF0aW9uOyAvLyBh
ZmZlY3RzIG9yaWVudGF0aW9uIG9mIGxheWVyIGNvbnRlbnRzCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCAw
NmZmYjhhMjFlODBmNDkwNWJjMTFhNmQ3M2IxMjQ3ZGVlODkxOWY0Li44YjZiZmZkMTk3MTNjYTJm
YzI0ZGExMDI1OGE0NGFiYzQyZGYxNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC04Miw5ICs4Miw2IEBA
IHB1YmxpYzoKICAgICAvLyBQYWdlIHNjYWxlIGZhY3Rvci4KICAgICB2aXJ0dWFsIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBz
aG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Qg
PSAwOwotCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBhNTg4Mzdj
MzI1YmQ3Y2M2ZTE1YThlOGRiNWQwYTEzODZkMjg1NDBmLi5lMzZiNWU3MDdjZjlkMDZiYWU1YzMx
Yzk2ZGU4Mjk2ODA5ZTY4MTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTI4Niw4ICsyODYsNiBAQCBH
cmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGll
bnQpCiAgICAgfQogCiAgICAgbV9sYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6Y3JlYXRlKGxheWVy
VHlwZSwgdGhpcyk7Ci0KLSAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKICAgICBub3RlTGF5
ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNTY2FsZUNoYW5nZWQpOwogfQogCkBAIC01MjAsNyAr
NTE4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNr
c1RvQm91bmRzKQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXRNYXNr
c1RvQm91bmRzKG1hc2tzVG9Cb3VuZHMpOwotICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChN
YXNrc1RvQm91bmRzQ2hhbmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKE1hc2tz
VG9Cb3VuZHNDaGFuZ2VkIHwgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCk7CiB9CiAKIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjpzZXREcmF3c0NvbnRlbnQoYm9vbCBkcmF3c0NvbnRlbnQpCkBAIC01Mjks
NyArNTI3LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERyYXdzQ29udGVudChib29sIGRy
YXdzQ29udGVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0RHJh
d3NDb250ZW50KGRyYXdzQ29udGVudCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERy
YXdzQ29udGVudENoYW5nZWQpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChEcmF3c0Nv
bnRlbnRDaGFuZ2VkIHwgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXRDb250ZW50c1Zpc2libGUoYm9vbCBjb250ZW50c1Zpc2libGUpCkBAIC0x
MDQ0LDcgKzEwNDIsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyU2hv
d1JlcGFpbnRDb3VudGVyKFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcgogICAgIGlmIChtX2lzUGFn
ZVRpbGVDYWNoZUxheWVyICYmIHBsYXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKLSAgICByZXR1cm4gc2hvd1JlcGFpbnRDb3VudGVyKCk7CisgICAgcmV0dXJuIGlzU2hv
d2luZ1JlcGFpbnRDb3VudGVyKCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9y
bUNBTGF5ZXJQYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50
UmVjdCYgY2xpcCkKQEAgLTExNTEsNiArMTE0OSw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpj
b21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMoZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBj
CiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdl
ZCkKICAgICAgICAgdXBkYXRlQWNjZWxlcmF0ZXNEcmF3aW5nKCk7CiAKKyAgICBpZiAobV91bmNv
bW1pdHRlZENoYW5nZXMgJiBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKQorICAgICAgICB1cGRhdGVE
ZWJ1Z0JvcmRlcigpOworCiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ2hpbGRyZW5D
aGFuZ2VkKSB7CiAgICAgICAgIHVwZGF0ZVN1YmxheWVyTGlzdCgpOwogICAgICAgICAvLyBTdWJs
YXllcnMgbWF5IHNldCB0aGlzIGZsYWcgYWdhaW4sIHNvIGNsZWFyIGl0IHRvIGF2b2lkIGFsd2F5
cyB1cGRhdGluZyBzdWJsYXllcnMgaW4gY29tbWl0TGF5ZXJDaGFuZ2VzQWZ0ZXJTdWJsYXllcnMo
KS4KQEAgLTEzNDMsOCArMTM0NCw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVNYXNr
c1RvQm91bmRzKCkKICAgICAgICAgZm9yIChMYXllck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBs
YXllckNsb25lTWFwLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICBpdC0+
dmFsdWUtPnNldE1hc2tzVG9Cb3VuZHMobV9tYXNrc1RvQm91bmRzKTsKICAgICB9Ci0KLSAgICB1
cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzVmlzaWJpbGl0eSgpCkBAIC0xNTI4LDcgKzE1MjcsNiBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6dXBkYXRlTGF5ZXJEcmF3c0NvbnRlbnQoZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBj
b25zdCBGbG9hdAogICAgICAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0Q29udGVudHMoMCk7CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiB9CiAKIHZvaWQg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVBY2NlbGVyYXRlc0RyYXdpbmcoKQpAQCAtMTUzNiw2ICsx
NTM0LDE0IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVBY2NlbGVyYXRlc0RyYXdpbmco
KQogICAgIG1fbGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhtX2FjY2VsZXJhdGVzRHJhd2lu
Zyk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVEZWJ1Z0JvcmRlcigpCit7Cisg
ICAgaWYgKGlzU2hvd2luZ0RlYnVnQm9yZGVyKCkpCisgICAgICAgIHVwZGF0ZURlYnVnSW5kaWNh
dG9ycygpOworICAgIGVsc2UKKyAgICAgICAgbV9sYXllci0+c2V0Qm9yZGVyV2lkdGgoMCk7Cit9
CisKIEZsb2F0UmVjdCBHcmFwaGljc0xheWVyQ0E6OmFkanVzdFRpbGVkTGF5ZXJWaXNpYmxlUmVj
dChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZywgY29uc3QgRmxvYXRSZWN0JiBvbGRWaXNpYmxl
UmVjdCwgY29uc3QgRmxvYXRTaXplJiBvbGRTaXplKSBjb25zdAogewogICAgIC8vIElmIHRoZSBv
bGQgdmlzaWJsZSByZWN0IGlzIGVtcHR5LCB3ZSBoYXZlIG5vIGluZm9ybWF0aW9uIGFib3V0IGhv
dyB0aGUgdmlzaWJsZSBhcmVhIGlzIGNoYW5naW5nCkBAIC0yNDk4LDYgKzI1MDQsMjQgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxvYXQgcGFnZVNjYWxlRmFj
dG9yLCBjb25zdCBGbG9hdFBvaW4KICAgICAgICAgbV9sYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7
CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93
Qm9yZGVyKQoreworICAgIGlmIChzaG93Qm9yZGVyID09IG1fc2hvd0RlYnVnQm9yZGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRTaG93RGVidWdCb3JkZXIoc2hv
d0JvcmRlcik7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERlYnVnSW5kaWNhdG9yc0No
YW5nZWQpOworfQorCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVy
KGJvb2wgc2hvd0NvdW50ZXIpCit7CisgICAgaWYgKHNob3dDb3VudGVyID09IG1fc2hvd1JlcGFp
bnRDb3VudGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRTaG93
UmVwYWludENvdW50ZXIoc2hvd0NvdW50ZXIpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdl
ZChEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNl
dERlYnVnQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIHsgICAgCiAgICAgaWYg
KGNvbG9yLmlzVmFsaWQoKSkKQEAgLTI2MTEsMTAgKzI2MzUsOSBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIsIGZsb2F0IC8q
cGFnZVNjYQogICAgICAgICB8IEJhY2tncm91bmRDb2xvckNoYW5nZWQKICAgICAgICAgfCBDb250
ZW50c1NjYWxlQ2hhbmdlZAogICAgICAgICB8IEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQKLSNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIHwgRmlsdGVyc0NoYW5nZWQKLSNlbmRpZgot
ICAgICAgICB8IE9wYWNpdHlDaGFuZ2VkOworICAgICAgICB8IE9wYWNpdHlDaGFuZ2VkCisgICAg
ICAgIHwgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZDsKICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAg
U3RyaW5nIG5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiJXNDQUxheWVyKCVwKSBHcmFwaGljc0xheWVy
KCVwKSAiLCAobV9sYXllci0+bGF5ZXJUeXBlKCkgPT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5
cGVXZWJUaWxlZExheWVyKSA/ICJUaWxlZCAiIDogIiIsIG1fbGF5ZXItPnBsYXRmb3JtTGF5ZXIo
KSwgdGhpcykgKyBtX25hbWU7CkBAIC0yNjI2LDggKzI2NDksNiBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIsIGZsb2F0IC8q
cGFnZVNjYQogICAgIAogICAgIC8vIG5lZWQgdG8gdGVsbCBuZXcgbGF5ZXIgdG8gZHJhdyBpdHNl
bGYKICAgICBzZXROZWVkc0Rpc3BsYXkoKTsKLSAgICAKLSAgICB1cGRhdGVEZWJ1Z0luZGljYXRv
cnMoKTsKIH0KIAogR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0
aW9uIEdyYXBoaWNzTGF5ZXJDQTo6ZGVmYXVsdENvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdApA
QCAtMjY1MSw3ICsyNjcyLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNM
YXllcihQbGF0Zm9ybUNBTGF5ZXIqIGNvbnRlbnRzTGF5ZXIpCiAgICAgfSBlbHNlCiAgICAgICAg
IGNvbnRlbnRzTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKIAotICAgIGlm
IChzaG93RGVidWdCb3JkZXJzKCkpIHsKKyAgICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkg
ewogICAgICAgICBjb250ZW50c0xheWVyLT5zZXRCb3JkZXJDb2xvcihDb2xvcigwLCAwLCAxMjgs
IDE4MCkpOwogICAgICAgICBjb250ZW50c0xheWVyLT5zZXRCb3JkZXJXaWR0aCgxLjBmKTsKICAg
ICB9CkBAIC0yODQ2LDcgKzI4NjcsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3Jh
cGhpY3NMYXllckNBOjpjbG9uZUxheWVyKFBsYXRmb3JtQ0FMYXllciAqbGF5ZXIsCiAgICAgICAg
IG1vdmVPckNvcHlBbmltYXRpb25zKENvcHksIGxheWVyLCBuZXdMYXllci5nZXQoKSk7CiAgICAg
fQogICAgIAotICAgIGlmIChzaG93RGVidWdCb3JkZXJzKCkpIHsKKyAgICBpZiAoaXNTaG93aW5n
RGVidWdCb3JkZXIoKSkgewogICAgICAgICBuZXdMYXllci0+c2V0Qm9yZGVyQ29sb3IoQ29sb3Io
MjU1LCAxMjIsIDI1MSkpOwogICAgICAgICBuZXdMYXllci0+c2V0Qm9yZGVyV2lkdGgoMik7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuaAppbmRleCAwMGNhNjJlNzUyNTk3Y2M0MzhmOTExZjhmMWM5YTkzZGRmODg0
N2M1Li4yZGViMmUyOGM5ZGJmNDFiN2YxZjQyYWFmN2UzYTE1NjljNzQ4YWU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aApAQCAtMTIxLDYgKzEyMSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250
ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyOyB9CiAgICAgCisgICAg
dmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURFOworCiAgICAgdmly
dHVhbCB2b2lkIHNldERlYnVnQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmly
dHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgp
OwogCkBAIC0xNTIsNyArMTU1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZv
cm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpOwogICAg
IHZpcnR1YWwgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIHBsYXRmb3JtQ0FMYXll
ckNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBjb250ZW50c09yaWVudGF0aW9u
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyhHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKLSAgICB2aXJ0dWFsIGJvb2wgcGxh
dGZvcm1DQUxheWVyU2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0dXJuIHNob3dEZWJ1Z0Jv
cmRlcnMoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3Jk
ZXJzKCkgY29uc3QgeyByZXR1cm4gaXNTaG93aW5nRGVidWdCb3JkZXIoKTsgfQogICAgIHZpcnR1
YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVy
KikgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgcGxhdGZvcm1DQUxheWVySW5jcmVtZW50UmVwYWlu
dENvdW50KCkgeyByZXR1cm4gaW5jcmVtZW50UmVwYWludENvdW50KCk7IH0KIApAQCAtMzI2LDYg
KzMyOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVMYXllckFuaW1hdGlvbnMoKTsKICAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRzTmVlZHNEaXNwbGF5KCk7CiAgICAgdm9pZCB1cGRhdGVBY2Nl
bGVyYXRlc0RyYXdpbmcoKTsKKyAgICB2b2lkIHVwZGF0ZURlYnVnQm9yZGVyKCk7CiAgICAgdm9p
ZCB1cGRhdGVWaXNpYmxlUmVjdChjb25zdCBGbG9hdFJlY3QmIG9sZFZpc2libGVSZWN0KTsKICAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxvYXQgcGl4ZWxBbGlnbm1lbnRTY2FsZSwgY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSk7CiAgICAgCkBAIC0zNzcsOSAr
MzgxLDggQEAgcHJpdmF0ZToKICAgICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgPSAxIDw8IDIz
LAogICAgICAgICBDb250ZW50c1Zpc2liaWxpdHlDaGFuZ2VkID0gMSA8PCAyNCwKICAgICAgICAg
VmlzaWJsZVJlY3RDaGFuZ2VkID0gMSA8PCAyNSwKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAg
ICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMSA8PCAyNiwKLSNlbmRpZgorICAgICAgICBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkID0gMSA8PCAyNwogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBM
YXllckNoYW5nZUZsYWdzOwogICAgIHZvaWQgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKExheWVy
Q2hhbmdlRmxhZ3MgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCAxMWE1
ZDU4NGZmOGEzMGVmMWJkNjhkZTY0YTk5OTM2MGZlODNmOWM2Li5hZTQ4ZmFmNTlkNmVhZDU1NGZj
MGIzMDIxM2JiNDIxMmRmMjQ1NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAt
MTI5LDcgKzEyOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjp1cGRhdGVCYWNraW5nU3Rv
cmUoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgR3JhcGhpCiAgICAgY29udGV4dC0+dHJh
bnNsYXRlKC1kaXJ0eVJlY3QueCgpLCAtZGlydHlSZWN0LnkoKSk7CiAgICAgbGF5ZXItPnBhaW50
R3JhcGhpY3NMYXllckNvbnRlbnRzKCpjb250ZXh0LCBkaXJ0eVJlY3QpOwogCi0gICAgaWYgKGxh
eWVyLT5zaG93UmVwYWludENvdW50ZXIoKSkgeworICAgIGlmIChsYXllci0+aXNTaG93aW5nUmVw
YWludENvdW50ZXIoKSkgewogICAgICAgICBsYXllci0+aW5jcmVtZW50UmVwYWludENvdW50KCk7
CiAgICAgICAgIGRyYXdSZXBhaW50Q291bnRlcihjb250ZXh0LCBsYXllcik7CiAgICAgfQpAQCAt
MTM4LDcgKzEzOCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjp1cGRhdGVCYWNraW5nU3Rv
cmUoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgR3JhcGhpCiAgICAgVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBzdGF0aWNfY2FzdDxUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmUqPihtX2JhY2tpbmdTdG9yZS5nZXQoKSk7CiAgICAgYmFja2lu
Z1N0b3JlLT51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZS5nZXQoKSwgbV9zaXpl
LCBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VE
YXRhKTsKIAotICAgIGJhY2tpbmdTdG9yZS0+c2V0U2hvd0RlYnVnQm9yZGVycyhsYXllci0+c2hv
d0RlYnVnQm9yZGVycygpKTsKKyAgICBiYWNraW5nU3RvcmUtPnNldFNob3dEZWJ1Z0JvcmRlcnMo
bGF5ZXItPmlzU2hvd2luZ0RlYnVnQm9yZGVyKCkpOwogICAgIGJhY2tpbmdTdG9yZS0+c2V0RGVi
dWdCb3JkZXIobV9kZWJ1Z0JvcmRlckNvbG9yLCBtX2RlYnVnQm9yZGVyV2lkdGgpOwogCiAgICAg
bV9zdGF0ZS5uZWVkc0Rpc3BsYXkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNTU2OTA5ZTlkMmIwYzNhNDhiZjc2Y2Q0
YTg3ZjY2YzcyNjM4YzFkZS4uODI2N2JjMzEwZTdlNGVmM2QzNjk5N2RlZjRiOGExODI5YzI5MmE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKQEAgLTIwMyw2ICsyMDMsMzEgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFkanVzdFRp
bGVDYWNoZUNvdmVyYWdlKCkKICAgICB0aWxlZEJhY2tpbmcoKS0+c2V0VGlsZUNvdmVyYWdlKHRp
bGVDb3ZlcmFnZSk7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVEZWJ1Z0lu
ZGljYXRvcnMoYm9vbCBzaG93Qm9yZGVyLCBib29sIHNob3dSZXBhaW50Q291bnRlcikKK3sKKyAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKKyAgICBt
X2dyYXBoaWNzTGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlcihzaG93UmVwYWludENvdW50ZXIp
OworICAgIAorICAgIGlmIChtX2FuY2VzdG9yQ2xpcHBpbmdMYXllcikKKyAgICAgICAgbV9hbmNl
c3RvckNsaXBwaW5nTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKKworICAg
IGlmIChtX2ZvcmVncm91bmRMYXllcikgeworICAgICAgICBtX2ZvcmVncm91bmRMYXllci0+c2V0
U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworICAgICAgICBtX2ZvcmVncm91bmRMYXllci0+
c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7CisgICAgfQorCisgICAg
aWYgKG1fbWFza0xheWVyKSB7CisgICAgICAgIG1fbWFza0xheWVyLT5zZXRTaG93RGVidWdCb3Jk
ZXIoc2hvd0JvcmRlcik7CisgICAgICAgIG1fbWFza0xheWVyLT5zZXRTaG93UmVwYWludENvdW50
ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKKyAgICB9CisKKyAgICBpZiAobV9zY3JvbGxpbmdMYXll
cikKKyAgICAgICAgbV9zY3JvbGxpbmdMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3Jk
ZXIpOworCisgICAgaWYgKG1fc2Nyb2xsaW5nQ29udGVudHNMYXllcikKKyAgICAgICAgbV9zY3Jv
bGxpbmdDb250ZW50c0xheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0JvcmRlcik7Cit9CisK
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3JhcGhpY3NMYXllcigpCiB7
CiAgICAgU3RyaW5nIGxheWVyTmFtZTsKQEAgLTE1ODYsMTYgKzE2MTEsNiBAQCBib29sIFJlbmRl
ckxheWVyQmFja2luZzo6Z2V0Q3VycmVudFRyYW5zZm9ybShjb25zdCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGNvbXBvc2l0b3IoKSA/IGNvbXBvc2l0b3IoKS0+Y29tcG9zaXRvclNob3dEZWJ1
Z0JvcmRlcnMoKSA6IGZhbHNlOwotfQotCi1ib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBj
b21wb3NpdG9yKCkgPyBjb21wb3NpdG9yKCktPmNvbXBvc2l0b3JTaG93UmVwYWludENvdW50ZXIo
KSA6IGZhbHNlOwotfQotCiBib29sIFJlbmRlckxheWVyQmFja2luZzo6aXNUcmFja2luZ1JlcGFp
bnRzKCkgY29uc3QKIHsKICAgICBHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQgPSBjb21wb3Np
dG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
aW5kZXggMjJmYjg4OTAxNmVkZjViMGMxYTljYjVjMjYyMTcwN2I3N2YzOTQ2ZC4uMzlhYmFlYWYz
NmZmNGZjNzcwMjg5NTRlZTQzMDNjMTM2MDM1YTg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTQxLDYgKzE0MSw4IEBAIHB1YmxpYzoK
ICAgICBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0OwogICAgIHZvaWQgYWRqdXN0
VGlsZUNhY2hlQ292ZXJhZ2UoKTsKICAgICAKKyAgICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9y
cyhib29sIHNob3dCb3JkZXIsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKTsKKyAgICAKICAgICAv
LyBHcmFwaGljc0xheWVyQ2xpZW50IGludGVyZmFjZQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRV
c2VUaWxlQ2FjaGUoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUgc3RhcnRUaW1lKSBPVkVSUklERTsKQEAgLTE1NCw5ICsxNTYsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGdldEN1cnJlbnRUcmFuc2Zv
cm0oY29uc3QgR3JhcGhpY3NMYXllciosIFRyYW5zZm9ybWF0aW9uTWF0cml4JikgY29uc3QgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291
bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7Ci0KICAgICB2aXJ0dWFs
IGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QgT1ZFUlJJREU7CiAKICNpZm5kZWYgTkRF
QlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCmluZGV4IDZhYTM4NTE1YzEzNDhiYTlhMzIzY2M4MTQ1MWQyMDFlZjBiNDAyZmMuLmQw
MmU1ZTQ2OTkyNmE4YzU1ZmJiMDgzNmU0ODc1ZjJkOTdiZjhiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC01ODMsNiAr
NTgzLDEwIEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVCYWNraW5nKFJlbmRl
ckxheWVyKiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSCiAgICAgICAgIGlmIChTY3JvbGxpbmdD
b29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGlu
YXRvcigpKQogICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0ZpeGVk
T2JqZWN0c0RpZENoYW5nZShtX3JlbmRlclZpZXctPmZyYW1lVmlldygpKTsKICAgICB9CisgICAg
CisgICAgaWYgKGxheWVyLT5iYWNraW5nKCkpCisgICAgICAgIGxheWVyLT5iYWNraW5nKCktPnVw
ZGF0ZURlYnVnSW5kaWNhdG9ycyhtX3Nob3dEZWJ1Z0JvcmRlcnMsIG1fc2hvd1JlcGFpbnRDb3Vu
dGVyKTsKKwogICAgIHJldHVybiBsYXllckNoYW5nZWQ7CiB9CiAKQEAgLTIwNDQsMjIgKzIwNDgs
NiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0VHJhY2tzUmVwYWludHMoYm9vbCB0
cmFja3NSZXBhaW50cykKICAgICBtX2lzVHJhY2tpbmdSZXBhaW50cyA9IHRyYWNrc1JlcGFpbnRz
OwogfQogCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2hvd0RlYnVnQm9yZGVycyhjb25z
dCBHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAgICBpZiAobGF5ZXIgPT0gbV9sYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIgfHwgbGF5ZXIgPT0gbV9sYXllckZvclZlcnRpY2FsU2Ny
b2xsYmFyIHx8IGxheWVyID09IG1fbGF5ZXJGb3JTY3JvbGxDb3JuZXIpCi0gICAgICAgIHJldHVy
biBtX3Nob3dEZWJ1Z0JvcmRlcnM7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgaWYgKGxheWVyID09IG1fbGF5ZXJGb3JIb3Jpem9udGFs
U2Nyb2xsYmFyIHx8IGxheWVyID09IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhciB8fCBsYXll
ciA9PSBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyKQotICAgICAgICByZXR1cm4gbV9zaG93RGVidWdC
b3JkZXJzOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6aXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pc1RyYWNr
aW5nUmVwYWludHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgKaW5kZXggZTU4YWEzYTZjY2QwMzZjOGJjMDdlYTA2Y2QyMDZlM2M2YzdlMTVk
YS4uODFhYWY0MTQxZGMzMWExNjhiYTY2NWIwMjZmM2I2ZWI3Y2Q2NzMwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjAyLDEx
ICsyMDIsNiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbGF5ZXJUcmVlQXNUZXh0KExheWVyVHJl
ZUZsYWdzKTsKIAotICAgIC8vIFRoZXNlIGFyZSBuYW1lZCB0byBhdm9pZCBjb25mbGljdHMgd2l0
aCB0aGUgZnVuY3Rpb25zIGluIEdyYXBoaWNzTGF5ZXJDbGllbnQKLSAgICAvLyBUaGVzZSByZXR1
cm4gdGhlIGFjdHVhbCBpbnRlcm5hbCB2YXJpYWJsZXMuCi0gICAgYm9vbCBjb21wb3NpdG9yU2hv
d0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsgfQotICAg
IGJvb2wgY29tcG9zaXRvclNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2hv
d1JlcGFpbnRDb3VudGVyOyB9Ci0KICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVy
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKQEAgLTIzOSw5ICsyMzQsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBPVkVSUklERSB7IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOyB9CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29u
dGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJ
REU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRl
cihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7Ci0KICAgICB2aXJ0dWFsIGJv
b2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgCiAgICAgLy8gR3Jh
cGhpY3NMYXllclVwZGF0ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCmluZGV4IDg0NmU1Y2M3YTU4NjM4ZWYwNzMyYTQx
Yzc4ZGI4OTAwN2MwMzA5MjguLjc0MmZlMGJiMWEyOTQ3YmQyYTM1YzVjNGNmMDVkMDUxOTUyZTRj
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9w
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaApAQCAt
MTY3LDggKzE2Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7
Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dS
ZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgY29udGVudHNWaXNpYmxlKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb250ZW50UmVjdCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggNzU2OTMyMGI5ODFlYTA0ZTQxMmZmZjY2ZDAyOWUwNjE5
YjJjOGVmMi4uZmQ0OWI0OGRlMjdiNzYxNTc2YzAzN2RmOTk2ZTczYTRhZTdkMmJiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC01NzMxLDE2ICs1NzMxLDYg
QEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKikKIHsKICAgICBzY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpOwogfQotCi1ib29sIFdl
YlBhZ2VQcml2YXRlOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dAotewotICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsK
LX0KLQotYm9vbCBXZWJQYWdlUHJpdmF0ZTo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNob3dS
ZXBhaW50Q291bnRlcigpOwotfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIAogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBu
b2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3Au
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggZGVlMDg0
OTUyMTBjYWExZTgzM2E0Y2Q2ZWVkMjM2YmExYTEyNDJjNC4uZjRiMDk0NzQyZmI0Y2Q0Nzc1YzBk
ZjJjYTg5ODVlYzU1YzBiYmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCkBAIC00MDEsOCArNDAxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUg
dGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgaW5DbGlwKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBh
aW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAKICAgICAv
LyBXZWJLaXQgdGhyZWFkLCBwbHVtYmVkIHRocm91Z2ggZnJvbSBDaHJvbWVDbGllbnRCbGFja0Jl
cnJ5LgogICAgIHZvaWQgc2V0Um9vdExheWVyV2ViS2l0VGhyZWFkKFdlYkNvcmU6OkZyYW1lKiwg
V2ViQ29yZTo6TGF5ZXJXZWJLaXRUaHJlYWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHAK
aW5kZXggNDU0NzJhYWZkOTRiMDM4N2NjZTZmMmIxODJlYjNjZDY5MWE5MWRkYS4uNzdiMmM3NWFj
N2Q3MWRhNjEyNmY4YzQ4MGE4MjFjZWVjOTIxMmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdo
dC5jcHAKQEAgLTE0OCwxNiArMTQ4LDYgQEAgdm9pZCBEZWZhdWx0VGFwSGlnaGxpZ2h0OjpwYWlu
dENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGMKICAgICBj
LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBEZWZhdWx0VGFwSGlnaGxpZ2h0OjpzaG93RGVidWdCb3Jk
ZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJldHVybiBtX3Bh
Z2UtPnNob3dEZWJ1Z0JvcmRlcnMobGF5ZXIpOwotfQotCi1ib29sIERlZmF1bHRUYXBIaWdobGln
aHQ6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9wYWdlLT5zaG93UmVwYWludENvdW50ZXIobGF5ZXIpOwotfQotCiBi
b29sIERlZmF1bHRUYXBIaWdobGlnaHQ6OmNvbnRlbnRzVmlzaWJsZShjb25zdCBHcmFwaGljc0xh
eWVyKiwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBs
YXllciBpcyB0eXBpY2FsbHkgc21hbGwgZW5vdWdoIHRoYXQgd2UgY2FuIGFmZm9yZCB0byBjYWNo
ZSBhbGwgdGlsZXMgYW5kIG5ldmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKaW5kZXggMDZjNTU5
MDU3OTUyMDkzZmFkOGNhOWE1ZDE4ZjBhNzcyMDZlZmNhZS4uOTBhZjk0Y2FhYjkxYWU0OWUyNDA0
NjljNzI1NjJmMWFjMzkxZGM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaApAQCAtNTcsOCAr
NTcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZp
cnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY29udGVudHNWaXNp
YmxlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBjb250ZW50UmVjdCkgY29uc3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5QmxhY2tCZXJyeS5jcHAKaW5kZXggMDgxNWRkOTdiY2IyOTVkZGViMDRiODZjMjMyMGEzNjU3
NzU1ZDNlMC4uNTJjOWM0ZDJlODYyOWY2ODdiNDQ5NzViOTFkMjUwYmU2YzQ4MDMyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3Zl
cmxheUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcApAQCAtNTYsMTUgKzU2LDYgQEAg
dm9pZCBJbnNwZWN0b3JPdmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmEKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotYm9v
bCBJbnNwZWN0b3JPdmVybGF5OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPnNob3dEZWJ1
Z0JvcmRlcnMobGF5ZXIpOwotfQotCi1ib29sIEluc3BlY3Rvck92ZXJsYXk6OnNob3dSZXBhaW50
Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV93ZWJQYWdlLT5zaG93UmVwYWludENvdW50ZXIobGF5ZXIpOwotfQogI2VuZGlm
CiAKIEluc3BlY3Rvck92ZXJsYXk6On5JbnNwZWN0b3JPdmVybGF5KCkgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5
QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5z
cGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaAppbmRleCA5MTE5N2NjMGM5Y2I4M2MzNmMxYzJkNDU3
YzYyNjE0NTJkM2QzMTA3Li42ZGY0YmE2MmFmODdiZjc3OTU0YzM0ZTUxZTljZTBhOThmZDc1OTky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNw
ZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmgKQEAgLTU0LDggKzU0LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29u
c3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3Q7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3Bw
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3Zlcmxh
eS5jcHAKaW5kZXggZTA2ZjdkZjFjMTEwY2YzYTlmYjk3MzM1NmJiYzBiYzVhM2U2OGI5NS4uZDM1
MmIxNzdhNDM5MGNjMTQ5MTg2YWNiZjliZGE0YmM0YjQzYjQ4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3Zlcmxh
eS5jcHAKQEAgLTExNywxNiArMTE3LDYgQEAgdm9pZCBTZWxlY3Rpb25PdmVybGF5OjpwYWludENv
bnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGMsIEcKICAgICBj
LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBTZWxlY3Rpb25PdmVybGF5OjpzaG93RGVidWdCb3JkZXJz
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJldHVybiBtX3BhZ2Ut
PnNob3dEZWJ1Z0JvcmRlcnMobGF5ZXIpOwotfQotCi1ib29sIFNlbGVjdGlvbk92ZXJsYXk6OnNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9wYWdlLT5zaG93UmVwYWludENvdW50ZXIobGF5ZXIpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIH0gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5o
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3Zlcmxh
eS5oCmluZGV4IDU3NjJiNWE4OWMxZDRiNjVmYzc4NDk1ZTE0ZTZhMDY3ZDFkMDYwNGIuLmQyNzA0
ZGMzZjdiNzIwMWVlYzI3NGUzZWIxNzQzYTgwZjZiZWEzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmgK
QEAgLTUyLDggKzUyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlw
KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgU2Vs
ZWN0aW9uT3ZlcmxheShXZWJQYWdlUHJpdmF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggMjNkY2Rk
ZTliNzliNDk4OTVhMmYyMjFiN2JhNTEwMGEzNmNjM2EyZi4uZjViNmI2MDM2OGY2YWM2YmRhMGI1
Y2MyNDU3NzYyZGRhNmU4Y2I1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCkBAIC0xOTEsMTYgKzE5MSw2IEBA
IHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wg
c2hvd0RlYnVnQm9yZGVycykKICAgICBtX2dyYXBoaWNzTGF5ZXItPnVwZGF0ZURlYnVnSW5kaWNh
dG9ycygpOwogfQogCi1ib29sIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2hvd0RlYnVnQm9y
ZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9zaG93RGVidWdCb3JkZXJzOwotfQotCi1ib29sIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6
c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAot
ewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6
OmlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViVmlldy0+aXNU
cmFja2luZ1JlcGFpbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCmluZGV4IDJiNmRkYzFhYWIwMDI2MTVlMmI5MWY3
ODlhNjY1ZDQzZjJiNWIwODEuLmIyZDEwNTAzOTg2NGQ0OWMyYzc4OTU0ZmYxNDhlYTNmZGRjY2E3
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdC5oCkBAIC03MSw4ICs3MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93
UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdDsKIAogICAgIGJvb2wgaGF2
ZVNjcm9sbExheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Q
YWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5j
cHAKaW5kZXggYTE2YTAxMDc3ZWIzNWFiYzgyNzA4Nzc5OTI5NTM2NTQ5YzRiOGY2My4uYzk1Njg3
YWY2M2Q1ZGNiODA3ZDJmN2Y1ZmMwNDdiZTQ3NDM5MmY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcApAQCAtOTQsMTYgKzk0LDYgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFnZSgpLT5zZXR0aW5n
cygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIHNob3dS
ZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX3dlYlZpZXdJbXBsLT5wYWdlKCktPnNldHRpbmdzKCktPnNob3dSZXBhaW50Q291
bnRlcigpOwotICAgIH0KLQogcHJpdmF0ZToKICAgICBPdmVybGF5R3JhcGhpY3NMYXllckNsaWVu
dEltcGwoV2ViVmlld0ltcGwqIHdlYlZpZXdJbXBsLCBXZWJQYWdlT3ZlcmxheSogb3ZlcmxheSkK
ICAgICAgICAgOiBtX292ZXJsYXkob3ZlcmxheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDBj
ZTg0MjU3YjViYTdiYjgzMDFlZTdlZDYxMzdiYjVkYjA0NDVmZTcuLmIwNGIzYTk0NTNhMWZlMmJi
NDg5Yzc1MGE1MGEwMTY5OTk3YTkxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtNTIsOCAr
NTIsNiBAQCBjbGFzcyBNb2NrR3JhcGhpY3NMYXllckNsaWVudCA6IHB1YmxpYyBHcmFwaGljc0xh
eWVyQ2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25z
dCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwg
R3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJl
Y3QmIGluQ2xpcCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRl
cnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVy
KikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMjsgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1U
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVt
VGVzdC5jcHAKaW5kZXggYmZiMDNlZDMwNGY0OThjODNkMDhlZmQ3MTUzYjYxYWE2MmZlZTViNS4u
NzRjMmYxNjY5YTQ1NDMyNGI1ZTM0ZjlmZjA1MzFkODM0MGE0OGM4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
CkBAIC00MCw4ICs0MCw2IEBAIGNsYXNzIE1vY2tHcmFwaGljc0xheWVyQ2xpZW50IDogcHVibGlj
IEdyYXBoaWNzTGF5ZXJDbGllbnQgewogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25T
dGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgaW5D
bGlwKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogfTsKIAogY2xhc3MgVGVzdEltYWdlIDogcHVibGljIEltYWdlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5oCmluZGV4IDY1NzJlYTVlYWQyODEzYzc1YmY1N2NlMTQzOTFjMTlkMGVh
NGMxNTguLjAyNTk3ZDE2ZDNmYTU0MjlkNmNhMzM2MTJiNjNhYzBkYmM3YjkzZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApAQCAtNjAsOCArNjAsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBh
aW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9QYWludCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1
Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1
YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0OwogCiAgICAgdm9pZCBpbml0aWFsaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fp
cm8uY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRDYWlyby5jcHAKaW5kZXggMzc4OTAzNDI2MzBlYzUwZGY0ZmI4OWEzMDVk
MTc0ZTEwOTU3NWI4Yy4uY2M2OTQyZWU4ODM5NTVmMzI3NWRhMzZhOWE2MDFmNTRmODljNjYwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHAKQEAgLTE2OSwx
NiArMTY5LDYgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3MKICAgICBjb3B5UmVjdEZyb21DYWly
b1N1cmZhY2VUb0NvbnRleHQobV93ZWJWaWV3LT5wcml2LT5iYWNraW5nU3RvcmUtPmNhaXJvU3Vy
ZmFjZSgpLCBjciwgSW50U2l6ZSgpLCByZWN0VG9QYWludCk7CiB9CiAKLWJvb2wgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVf
TUFQUEVSX0NBSVJPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1dHRl
ci5jcHAKaW5kZXggODdjZWI2ZWEwMjRhYjQwZjhhNDgzYTg2MTMzNzIzODc1ZWUzNmYxZS4uOWZj
YWU1MjU3YTQxNWE5MzRiYzQyYzVjMzZiYzA4ZmU1NmViNTkxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRD
bHV0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwCkBAIC0xNjUsMTggKzE2NSw2IEBAIHZv
aWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLWJv
b2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0R0wuY3BwCmluZGV4IGVmYzIwNjE5MzQ0ZWIyNWMyODU0NmJlZDJkZGQ3Yzc0ZjQ0NWVhYmYu
LmQxMzBhM2ZiN2IzYjE4OTA2YWVhOWRmODk4OTM0YjFhNmZmYWYwMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwCkBAIC0zODMsMTYgKzM4Myw2IEBAIHZvaWQgQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NM
YXllciosIEdyYXBoaWNzCiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NM
YXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250
cm9sbGVyLmNwcAppbmRleCA4NWEwY2E0N2EyY2QwZmYyMWY5NGM5ZDBhNDU2MTRlNzUxMTBhYWRi
Li4zODE4MDIyZTQ1MzE1MThmZjQxMGFmZjlmMmFhNzJkNmM2MGI1YzViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcApAQCAtMTg4LDggKzE4
OCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckFuaW1hdGlv
blN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSB7IH0KICAgICB2aXJ0dWFsIEdyYXBo
aWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBwbGF0Zm9ybUNBTGF5
ZXJDb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gR3JhcGhpY3NMYXllcjo6Q29t
cG9zaXRpbmdDb29yZGluYXRlc0JvdHRvbVVwOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
Q0FMYXllclBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgaW5D
bGlwKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvd0RlYnVnQm9yZGVy
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FM
YXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtQ0FMYXllckluY3JlbWVudFJlcGFpbnRD
b3VudCgpIHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJD
b250ZW50c09wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CmluZGV4IDNhMWI3NGUyMTM1MWZhZGE2ZDQxYWNkZjg5ZjI1NGE4M2FhY2I2ODcuLmRkNzAwOGVi
M2E0YTdkYzY4MGRkMmYwZjI2Zjg3MTgwMGFkYzIxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBA
IC02NjQ1LDE2ICs2NjQ1LDYgQEAgdm9pZCBXZWJWaWV3OjpwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXAKICAgICBjb250ZXh0
LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBXZWJWaWV3OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNo
b3dEZWJ1Z0JvcmRlcnMoKTsKLX0KLQotYm9vbCBXZWJWaWV3OjpzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGlu
Z3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0KIHZvaWQgV2ViVmlldzo6Zmx1c2hQZW5k
aW5nR3JhcGhpY3NMYXllckNoYW5nZXMoKQogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3Jl
KG1fbWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCA5OGZjYmIzZTFiZDNiYjUyNjU5YjBj
NWRhZDg2Y2QyMjE5NTIzZGUwLi5jOTM3MzQ2MmZlZjI4NDFlNTc3YzA2MDlkMDM4MmYxYjczNjA3
YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5oCkBAIC0xMDIwLDggKzEwMjAsNiBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9y
ZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBi
b29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29u
c3Q7CiAKICAgICAvLyBDQUNGTGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBm
bHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJl
bmRlcmVyLmgKaW5kZXggZGRlYTMxZDdiZWJhM2NhMTk4YjM4MjQyZDg2MDNhZTcwZTQ2ZDZhMy4u
ODU5NjAyMjk2MjQxZTAxNGM2YTcyZjg2NzI2OWE2ZGI0ZTE2Y2NlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVy
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5oCkBAIC0xMDgsOCArMTA4LDYgQEAgcHJpdmF0ZToKICAgICAvLyBS
ZWltcGxlbWVudGF0aW9ucyBmcm9tIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQuCiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIGRvdWJsZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIHsgfQotICAgIHZpcnR1YWwgYm9vbCBz
aG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9p
ZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAg
ICB2b2lkIGRpc3BhdGNoT25NYWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApp
bmRleCA5ZWIzNzhlNWRhMzMxZmM4YzkxYzUyYTQ0OTliNmE1OWQ0ZWZmMmFjLi4wZGRmY2VkY2Qw
ZWMwYTZlMzZkZTUyZTc0MTI3YWUxZDlkZmRlYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC01NzgsMTYgKzU3OCw2IEBA
IHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMCiAgICAgfQogfQogCi1ib29sIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdAotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNo
b3dEZWJ1Z0JvcmRlcnMoKTsKLX0KLQotYm9vbCBMYXllclRyZWVDb29yZGluYXRvcjo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAg
IHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dSZXBhaW50Q291
bnRlcigpOwotfQotCiBQYXNzT3duUHRyPEdyYXBoaWNzTGF5ZXI+IExheWVyVHJlZUNvb3JkaW5h
dG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjbGllbnQp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5o
CmluZGV4IGQ3MjVhZjY5N2E4NTNkZWM5MWZjNjg5NTkyYTI1ZDMwOTY0NzcxZjUuLmNhY2I2OGVh
YWU1Yjk3OWExNTViNzA1NjRlZGMxODJlZTNkYTMwOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMTEyLDggKzExMiw2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Owot
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwogCiAgICAgLy8gR3JhcGhpY3NMYXllckZhY3RvcnkKICAgICB2aXJ0
dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXll
cihXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuY3Bw
CmluZGV4IDA4NzJmNDM1NTBlNzYyZmRmOTZlZjhjODIyNDkyZTM0NTYzMzNmY2UuLmRiYTU1YzIx
MjI5M2Q2NTJlODZhNmJiZGExOTBiYzgwNTY4MTllMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuY3BwCkBAIC0y
MDMsMTYgKzIwMyw2IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdENBOjpwYWludENvbnRlbnRzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzCiAgICAgfQogfQogCi1ib29s
IExheWVyVHJlZUhvc3RDQTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5z
aG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgTGF5ZXJUcmVlSG9zdENBOjpzaG93UmVwYWlu
dENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0K
IGZsb2F0IExheWVyVHJlZUhvc3RDQTo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogewogICAg
IHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9z
dENBLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9z
dENBLmgKaW5kZXggOWNiOGNhNmE1NGZjMzg2ZDJiZTNjODkyOTI0OGNmYmU1ZTAyYzY1Zi4uMjFi
MTNkYTFjMjQ5MmUzZDNmZTQ0YWI4ODg0ZDY5ZmVmYjFjYTBiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuaApAQCAt
NzYsOCArNzYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25T
dGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwot
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNG
b3JMYXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9z
dEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJl
ZUhvc3RHdGsuY3BwCmluZGV4IGFmMmFlODliZmEyOTE1NWNlZmE2MzJkYTIyYzdlNmJmM2FlYWI1
YzYuLjA3ZmUxMjg1NWE3ZGE4MTlhODIzMWUwOTg1OWRiZWEyMzBlMGU5N2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVI
b3N0R3RrLmNwcApAQCAtMjU4LDE2ICsyNTgsNiBAQCB2b2lkIExheWVyVHJlZUhvc3RHdGs6OnBh
aW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpYwog
ICAgIH0KIH0KIAotYm9vbCBMYXllclRyZWVIb3N0R3RrOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdl
KCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKLX0KLQotYm9vbCBMYXllclRyZWVI
b3N0R3RrOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFp
bnRDb3VudGVyKCk7Ci19Ci0KIGdib29sZWFuIExheWVyVHJlZUhvc3RHdGs6OmxheWVyRmx1c2hU
aW1lckZpcmVkQ2FsbGJhY2soTGF5ZXJUcmVlSG9zdEd0ayogbGF5ZXJUcmVlSG9zdCkKIHsKICAg
ICBsYXllclRyZWVIb3N0LT5sYXllckZsdXNoVGltZXJGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApp
bmRleCA2MWI5ZmE2NzE1ODMzNmEzNDYzY2RjMGNmN2NjODk4MzdlMGIxMTI0Li44NDBhZGE4MTNh
NjcwZDYwZWViYjhlNWI0MTMwODJmNjg2ZjRkMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAtNzcs
OCArNzcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFy
dGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwotICAg
IHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0
Q2hhbmdlc0ZvckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0K
IAogICAgIHZvaWQgY3JlYXRlUGFnZU92ZXJsYXlMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IGY1MDQ4YTk4NWVlNTg3YmI3MmIzYjAwY2I1Mjk0
N2JjYzhmM2RmYWMuLjdkNWIzYmU5NjYyMDRiODMxMmY5ZTVlZDY2NTg3ZDY5Mjk4MTFiNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTcyLDggKzcyLDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBS
ZWN0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9W
RVJSSURFOwogCiAgICAgLy8gV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggZmNkNzJjYWM5MmE4
N2Q4NDRiZmM4ODE3Y2MwMWY2ZGY0YWI3MTc1Zi4uY2Y1ZDIzZTAxM2I5ODRjYjdiY2Q5MzFkYTMy
M2U4N2M0N2U2MmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCkBAIC0yNzMsMTYgKzI3Myw2IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMCiAgICAgbV93
ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CiB9CiAK
LWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNob3dEZWJ1Z0JvcmRlcnMoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBh
Z2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NM
YXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGlu
Z3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0KIGZsb2F0IFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
d2ViUGFnZS0+Y29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172200</attachid>
            <date>2012-11-02 20:30:30 -0700</date>
            <delta_ts>2012-11-02 20:45:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101136-20121102202848.patch</filename>
            <type>text/plain</type>
            <size>56003</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdkZGZkMDc5NTE0ZTEx
Njg1ZTFiODU1YzllNGM0MzAxZjIwOGUyYy4uMTY5MmNmMDFkMTc1Y2ZlYTMxNTdmZTlkOWEyMzhj
MjgxNDEwM2U0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBi
b3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NMYXll
cnMgZGVjaWRlZCB3aGV0aGVyIHRvIHNob3cgbGF5ZXIgYm9yZGVycyBiYXNlZAorICAgICAgICBv
biBhIGNhbGxiYWNrIHRocm91Z2ggdGhlIEdyYXBoaWNzTGF5ZXJDbGllbnQuIFRoaXMgbWFkZSBp
dAorICAgICAgICBoYXJkIHRvIG1hbmFnZSBzdGF0ZSwgcmVzdWx0aW5nIGluIGEgZmFpbHVyZSB0
byBjbGVhbmx5CisgICAgICAgIGhpZGUgbGF5ZXJzIHdoZW4gdG9nZ2xlZCBvZmYgdmlhIHRoZSBw
cmVmZXJlbmNlLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgbGF5ZXIgYm9yZGVyIGFu
ZCByZXBhaW50IGNvdW50ZXIgdmlzaWJpbGl0eSB0byBiZSBiaXRzCisgICAgICAgIHN0b3JlZCBv
biBHcmFwaGljc0xheWVyIGp1c3QgbGlrZSBvdGhlciBwcm9wZXJ0aWVzLCB3aXRoIGdldHRlcnMK
KyAgICAgICAgYW5kIHNldHRlcnMuIFJlbmRlckxheWVyQmFja2luZyBub3cgdXBkYXRlcyB0aGVz
ZSBkZWJ1ZworICAgICAgICBpbmRpY2F0b3JzIHdoZW4gd2UgdXBkYXRlIG90aGVyIGNvbXBvc2l0
aW5nIGxheWVyIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBJbiBHcmFwaGljc0xheWVy
Q0EsIGF2b2lkIGNhbGxpbmcgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCkgZXhwbGljaXRseQorICAg
ICAgICBpbiBzZXZlcmFsIHBsYWNlcyBieSBzZXR0aW5nIHRoZSBjaGFuZ2UgZmxhZyBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkCisgICAgICAgIGZvciBwcm9wZXJ0aWVzIHdob3NlIHZhbHVlcyBhZmZl
Y3QgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGRlYnVnIGJvcmRlci4KKworICAgICAgICBSZW1vdmVk
IHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAor
ICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKSB3aGljaCBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVk
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmlzU2hvd2luZ0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjppc1Nob3dpbmdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpyZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6aW5jcmVtZW50UmVwYWludENvdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
R3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0
TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldERy
YXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3JhcGhp
Y3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyU2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKwogMjAx
Mi0xMS0wMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMzM3NS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IGY4YWQzZjhmN2QyNjc4OTZlNTc3ZTZiZmQ3ZTc3M2Y0MTU5ZjlmOWMu
LjQ2NjlkY2M5OTExOWIxOWE2NzI1OTIxMmM1ZjE3MmY2ZGJjNmE1ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJz
IHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGlj
c0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93
UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAg
ICAgKFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkKToKKyAgICAgICAgKiBBcGkvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKiBXZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRUYXBIaWdobGln
aHQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
Y3BwOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
aDoKKyAgICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQv
U2VsZWN0aW9uT3ZlcmxheS5jcHA6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25P
dmVybGF5Lmg6CisgICAgICAgIChTZWxlY3Rpb25PdmVybGF5KToKKwogMjAxMi0xMS0wMiAgTmlt
YSBHaGFuYXZhdGlhbiAgPG5naGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBGaXggY29tcGlsZS10aW1lIHdhcm5pbmcgb2YgYSBwb3NzaWJsZSBlbXB0eS1ib2R5IGlm
IHN0YXRlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNzdkYjJiNmUwNDg4Yzgx
ZTI0ZDYzN2Q4NTMwYmU1N2QzYWFmN2ZiLi45MjE5NTg5OGUzMmI2YzY4N2FjYjU1MTQ2YTI1YTE1
ZmE1M2EzZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9u
IHN3aXRjaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVy
cygpIGFuZAorICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIHNyYy9O
b25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuaDoKKyAgICAgICAgKE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAg
ICAgICogc3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVy
Q2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0
LmNwcDoKKwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIFBsdWdpbkluYWN0aXZlIHBsdWctaW4gdW5hdmFpbGFiaWxpdHkg
cmVhc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTA1ODY0NWUwZjczZGExZTNkMGI5N2ZkYTI2ODBh
YmRjZDlmYjRjNS4uYjJkMTE1NzZiODljYWNiYjhhYTRlNWNiMWYxZGJkZDZiZGNlYjkzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRv
IGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xh
eWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVw
YWludENvdW50ZXIoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Lmg6CisgICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRDYWlyby5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRDbHV0dGVyLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKwogMjAxMi0xMS0wMiAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gU291cFBhc3N3b3JkTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDRmYTZlOTMy
YWI1Nzk3NWZiYjc2ZDZkYzIyODdlNWI4NzRlZTJmYmEuLjEzMjdkYzZmNTYwZTA0NzAxZDAwMDhk
ZWY4MTA2YzA0ZjQ1ZTRlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0xMS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBGaXggbGF5ZXIgYm9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBz
d2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMo
KSBhbmQKKyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTItMTAtMjkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmc6OmNyZWF0ZUNGU3RyaW5n
IHNob3VsZCByZXR1cm4gYSBSZXRhaW5QdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3ZGM4Zjc4Y2I1OWM0Yjdh
ZTY1ODVlMjIwMTYxNjg4MmRiMDNlNzlhLi43MjBmM2RkMTg1ZTk0OWY3NzlkM2ZhNDMzNjNiYTM5
NGEyMjAyY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTEtMDIgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGxheWVyIGJv
cmRlcnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlbW92
ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQK
KyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisgICAgICAgIAorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oOgorICAgICAg
ICAoTGF5ZXJUcmVlSG9zdENBKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5oOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdEd0ayk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgor
ICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisKIDIw
MTItMTEtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBWZXJ5IHNwZWN1bGF0aXZlIEFyZ3VtZW50RGVjb2RlciBjcmFzaCBmaXgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMGRi
MjQ5OTkyMGMwOTEzYjY0NDFmMjE4YWI5MTg3NmQ0MTRlMTAzNS4uZGQzYjdhOWRmMmYwNDRkZjY1
YzRhNDFiMDY3Njg0OTg5OGUzYjUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTg5LDYgKzg5LDggQEAgR3JhcGhpY3NM
YXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBt
X2FjY2VsZXJhdGVzRHJhd2luZyhmYWxzZSkKICAgICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1l
bnQoZmFsc2UpCiAgICAgLCBtX2FwcGxpZXNQYWdlU2NhbGUoZmFsc2UpCisgICAgLCBtX3Nob3dE
ZWJ1Z0JvcmRlcihmYWxzZSkKKyAgICAsIG1fc2hvd1JlcGFpbnRDb3VudGVyKGZhbHNlKQogICAg
ICwgbV9wYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludEFsbFdpdGhPdmVyZmxvd0NsaXAp
CiAgICAgLCBtX2NvbnRlbnRzT3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERv
d24pCiAgICAgLCBtX3BhcmVudCgwKQpAQCAtMzc0LDcgKzM3Niw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllcjo6Z2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBjb25z
dAogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycygpCiB7Ci0gICAg
aWYgKCFHcmFwaGljc0xheWVyOjpzaG93RGVidWdCb3JkZXJzKCkpCisgICAgaWYgKCFpc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpKQogICAgICAgICByZXR1cm47CiAKICAgICBDb2xvciBib3JkZXJDb2xv
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCBlOTM3Y2E1ZDgzMzUyN2EyN2U2N2QxNjkxODA4ZDIyMmFlMjIyMmIzLi43MTJhZGIz
MGM0MmU0YjUwNGEwNTVmNTlhOGQ2ZmQzMzRhZjQ2MTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zNTIsMjQgKzM1MiwyNiBA
QCBwdWJsaWM6CiAgICAgLy8gRm9yIGhvc3RpbmcgdGhpcyBHcmFwaGljc0xheWVyIGluIGEgbmF0
aXZlIGxheWVyIGhpZXJhcmNoeS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgCi0gICAgdm9pZCBkdW1wTGF5ZXIoVGV4
dFN0cmVhbSYsIGludCBpbmRlbnQgPSAwLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExheWVy
VHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdDsKLQotICAgIGludCByZXBhaW50Q291bnQo
KSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRDb3VudDsgfQotICAgIGludCBpbmNyZW1lbnRSZXBh
aW50Q291bnQoKSB7IHJldHVybiArK21fcmVwYWludENvdW50OyB9Ci0KICAgICBlbnVtIENvbXBv
c2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiB7IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BE
b3duLCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzQm90dG9tVXAgfTsKIAogICAgIC8vIEZsaXBwZWRu
ZXNzIG9mIHRoZSBjb250ZW50cyBvZiB0aGlzIGxheWVyLiBEb2VzIG5vdCBhZmZlY3Qgc3VibGF5
ZXIgZ2VvbWV0cnkuCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzT3JpZW50YXRpb24oQ29t
cG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fY29udGVudHNP
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09y
aWVudGF0aW9uIGNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRz
T3JpZW50YXRpb247IH0KIAotICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnNob3dEZWJ1Z0JvcmRlcnModGhpcykgOiBmYWxzZTsg
fQotICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQg
PyBtX2NsaWVudC0+c2hvd1JlcGFpbnRDb3VudGVyKHRoaXMpIDogZmFsc2U7IH0KLSAgICAKLSAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwotICAgIAorICAgIHZvaWQgZHVtcExheWVy
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50ID0gMCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgPSBM
YXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wgc2hvdykgeyBtX3Nob3dEZWJ1Z0JvcmRlciA9IHNob3c7
IH0KKyAgICBib29sIGlzU2hvd2luZ0RlYnVnQm9yZGVyKCkgY29uc3QgeyByZXR1cm4gbV9zaG93
RGVidWdCb3JkZXI7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIo
Ym9vbCBzaG93KSB7IG1fc2hvd1JlcGFpbnRDb3VudGVyID0gc2hvdzsgfQorICAgIGJvb2wgaXNT
aG93aW5nUmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRl
cjsgfQorCisgICAgaW50IHJlcGFpbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENv
dW50OyB9CisgICAgaW50IGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgcmV0dXJuICsrbV9yZXBh
aW50Q291bnQ7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBD
b2xvciYsIGZsb2F0IC8qYm9yZGVyV2lkdGgqLykgeyB9CisKICAgICAvLyB6LXBvc2l0aW9uIGlz
IHRoZSB6LWVxdWl2YWxlbnQgb2YgcG9zaXRpb24oKS4gSXQncyBvbmx5IHVzZWQgZm9yIGRlYnVn
Z2luZyBwdXJwb3Nlcy4KICAgICB2aXJ0dWFsIGZsb2F0IHpQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1felBvc2l0aW9uOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFpQb3NpdGlvbihmbG9hdCk7
CkBAIC00MzksNiArNDQxLDggQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCB2b2lkIHNldE9w
YWNpdHlJbnRlcm5hbChmbG9hdCkgeyB9CiAKKyAgICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9y
cygpOworCiAgICAgLy8gVGhlIGxheWVyIGJlaW5nIHJlcGxpY2F0ZWQuCiAgICAgR3JhcGhpY3NM
YXllciogcmVwbGljYXRlZExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZXBsaWNhdGVkTGF5ZXI7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZExheWVyKEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKSB7IG1fcmVwbGljYXRlZExheWVyID0gbGF5ZXI7IH0KQEAgLTQ4Niw3ICs0OTAsOSBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVzRHJhd2luZyA6IDE7CiAgICAgYm9vbCBt
X21haW50YWluc1BpeGVsQWxpZ25tZW50IDogMTsKICAgICBib29sIG1fYXBwbGllc1BhZ2VTY2Fs
ZSA6IDE7IC8vIFNldCBmb3IgdGhlIGxheWVyIHdoaWNoIGhhcyB0aGUgcGFnZSBzY2FsZSBhcHBs
aWVkIHRvIGl0LgotCisgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlciA6IDE7CisgICAgYm9vbCBt
X3Nob3dSZXBhaW50Q291bnRlciA6IDE7CisgICAgCiAgICAgR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UgbV9wYWludGluZ1BoYXNlOwogICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRh
dGlvbiBtX2NvbnRlbnRzT3JpZW50YXRpb247IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5
ZXIgY29udGVudHMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDA2ZmZiOGEyMWU4MGY0OTA1YmMxMWE2ZDcz
YjEyNDdkZWU4OTE5ZjQuLjhiNmJmZmQxOTcxM2NhMmZjMjRkYTEwMjU4YTQ0YWJjNDJkZjE2ZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmgKQEAgLTgyLDkgKzgyLDYgQEAgcHVibGljOgogICAgIC8vIFBhZ2Ugc2Nh
bGUgZmFjdG9yLgogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyBy
ZXR1cm4gMTsgfQogCi0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3Jh
cGhpY3NMYXllciopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIGJvb2wg
aXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogI2lmbmRlZiBO
REVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGE1ODgzN2MzMjViZDdjYzZlMTVhOGU4ZGI1ZDBhMTM4
NmQyODU0MGYuLmUzNmI1ZTcwN2NmOWQwNmJhZTVjMzFjOTZkZTgyOTY4MDllNjgxMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcApAQCAtMjg2LDggKzI4Niw2IEBAIEdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NM
YXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICB9CiAKICAgICBtX2xheWVy
ID0gUGxhdGZvcm1DQUxheWVyOjpjcmVhdGUobGF5ZXJUeXBlLCB0aGlzKTsKLQotICAgIHVwZGF0
ZURlYnVnSW5kaWNhdG9ycygpOwogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50
c1NjYWxlQ2hhbmdlZCk7CiB9CiAKQEAgLTUyMCw3ICs1MTgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6c2V0TWFza3NUb0JvdW5kcyhib29sIG1hc2tzVG9Cb3VuZHMpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldE1hc2tzVG9Cb3VuZHMobWFza3NUb0JvdW5kcyk7
Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKE1hc2tzVG9Cb3VuZHNDaGFuZ2VkKTsKKyAg
ICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoTWFza3NUb0JvdW5kc0NoYW5nZWQgfCBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERyYXdzQ29u
dGVudChib29sIGRyYXdzQ29udGVudCkKQEAgLTUyOSw3ICs1MjcsNyBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6c2V0RHJhd3NDb250ZW50KGJvb2wgZHJhd3NDb250ZW50KQogICAgICAgICByZXR1
cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpzZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KTsK
LSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoRHJhd3NDb250ZW50Q2hhbmdlZCk7CisgICAg
bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERyYXdzQ29udGVudENoYW5nZWQgfCBEZWJ1Z0luZGlj
YXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVmlz
aWJsZShib29sIGNvbnRlbnRzVmlzaWJsZSkKQEAgLTEwNDQsNyArMTA0Miw3IEBAIGJvb2wgR3Jh
cGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1D
QUxheWVyKiBwbGF0Zm9yCiAgICAgaWYgKG1faXNQYWdlVGlsZUNhY2hlTGF5ZXIgJiYgcGxhdGZv
cm1MYXllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIHJldHVybiBzaG93UmVw
YWludENvdW50ZXIoKTsKKyAgICByZXR1cm4gaXNTaG93aW5nUmVwYWludENvdW50ZXIoKTsKIH0K
IAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjbGlwKQpAQCAtMTE1MSw2ICsx
MTQ5LDkgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1
YmxheWVycyhmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGMKICAgICBpZiAobV91bmNvbW1pdHRlZENo
YW5nZXMgJiBBY2NlbGVyYXRlc0RyYXdpbmdDaGFuZ2VkKQogICAgICAgICB1cGRhdGVBY2NlbGVy
YXRlc0RyYXdpbmcoKTsKIAorICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIERlYnVnSW5k
aWNhdG9yc0NoYW5nZWQpCisgICAgICAgIHVwZGF0ZURlYnVnQm9yZGVyKCk7CisKICAgICBpZiAo
bV91bmNvbW1pdHRlZENoYW5nZXMgJiBDaGlsZHJlbkNoYW5nZWQpIHsKICAgICAgICAgdXBkYXRl
U3VibGF5ZXJMaXN0KCk7CiAgICAgICAgIC8vIFN1YmxheWVycyBtYXkgc2V0IHRoaXMgZmxhZyBh
Z2Fpbiwgc28gY2xlYXIgaXQgdG8gYXZvaWQgYWx3YXlzIHVwZGF0aW5nIHN1YmxheWVycyBpbiBj
b21taXRMYXllckNoYW5nZXNBZnRlclN1YmxheWVycygpLgpAQCAtMTM0Myw4ICsxMzQ0LDYgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHMoKQogICAgICAgICBmb3Ig
KExheWVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGxheWVyQ2xvbmVNYXAtPmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0TWFza3NUb0JvdW5kcyht
X21hc2tzVG9Cb3VuZHMpOwogICAgIH0KLQotICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwog
fQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNWaXNpYmlsaXR5KCkKQEAg
LTE1MjgsNyArMTUyNyw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdz
Q29udGVudChmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IEZsb2F0CiAgICAgICAgICAgICAg
ICAgaXQtPnZhbHVlLT5zZXRDb250ZW50cygwKTsKICAgICAgICAgfQogICAgIH0KLSAgICB1cGRh
dGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFj
Y2VsZXJhdGVzRHJhd2luZygpCkBAIC0xNTM2LDYgKzE1MzQsMTQgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZUFjY2VsZXJhdGVzRHJhd2luZygpCiAgICAgbV9sYXllci0+c2V0QWNjZWxl
cmF0ZXNEcmF3aW5nKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKTsKIH0KIAordm9pZCBHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKCkKK3sKKyAgICBpZiAoaXNTaG93aW5nRGVidWdCb3Jk
ZXIoKSkKKyAgICAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CisgICAgZWxzZQorICAgICAg
ICBtX2xheWVyLT5zZXRCb3JkZXJXaWR0aCgwKTsKK30KKwogRmxvYXRSZWN0IEdyYXBoaWNzTGF5
ZXJDQTo6YWRqdXN0VGlsZWRMYXllclZpc2libGVSZWN0KFRpbGVkQmFja2luZyogdGlsZWRCYWNr
aW5nLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZpc2libGVSZWN0LCBjb25zdCBGbG9hdFNpemUmIG9s
ZFNpemUpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhlIG9sZCB2aXNpYmxlIHJlY3QgaXMgZW1wdHks
IHdlIGhhdmUgbm8gaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoZSB2aXNpYmxlIGFyZWEgaXMgY2hh
bmdpbmcKQEAgLTI0OTgsNiArMjUwNCwyNCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRl
Q29udGVudHNTY2FsZShmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IEZsb2F0UG9pbgogICAg
ICAgICBtX2xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVy
Q0E6OnNldFNob3dEZWJ1Z0JvcmRlcihib29sIHNob3dCb3JkZXIpCit7CisgICAgaWYgKHNob3dC
b3JkZXIgPT0gbV9zaG93RGVidWdCb3JkZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBo
aWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKKyAgICBub3RlTGF5ZXJQ
cm9wZXJ0eUNoYW5nZWQoRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCk7Cit9CisKK3ZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCBzaG93Q291bnRlcikKK3sKKyAg
ICBpZiAoc2hvd0NvdW50ZXIgPT0gbV9zaG93UmVwYWludENvdW50ZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcihzaG93Q291bnRl
cik7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERlYnVnSW5kaWNhdG9yc0NoYW5nZWQp
OworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29u
c3QgQ29sb3ImIGNvbG9yKQogeyAgICAKICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQpAQCAtMjYx
MSwxMCArMjYzNSw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExh
eWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxvYXQgLypwYWdlU2NhCiAgICAgICAgIHwgQmFja2dy
b3VuZENvbG9yQ2hhbmdlZAogICAgICAgICB8IENvbnRlbnRzU2NhbGVDaGFuZ2VkCiAgICAgICAg
IHwgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdlZAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAg
ICAgICAgfCBGaWx0ZXJzQ2hhbmdlZAotI2VuZGlmCi0gICAgICAgIHwgT3BhY2l0eUNoYW5nZWQ7
CisgICAgICAgIHwgT3BhY2l0eUNoYW5nZWQKKyAgICAgICAgfCBEZWJ1Z0luZGljYXRvcnNDaGFu
Z2VkOwogICAgIAogI2lmbmRlZiBOREVCVUcKICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZzo6Zm9y
bWF0KCIlc0NBTGF5ZXIoJXApIEdyYXBoaWNzTGF5ZXIoJXApICIsIChtX2xheWVyLT5sYXllclR5
cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYlRpbGVkTGF5ZXIpID8gIlRpbGVk
ICIgOiAiIiwgbV9sYXllci0+cGxhdGZvcm1MYXllcigpLCB0aGlzKSArIG1fbmFtZTsKQEAgLTI2
MjYsOCArMjY0OSw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExh
eWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxvYXQgLypwYWdlU2NhCiAgICAgCiAgICAgLy8gbmVl
ZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3IGl0c2VsZgogICAgIHNldE5lZWRzRGlzcGxheSgp
OwotICAgIAotICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogfQogCiBHcmFwaGljc0xheWVy
OjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gR3JhcGhpY3NMYXllckNBOjpkZWZh
dWx0Q29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0CkBAIC0yNjUxLDcgKzI2NzIsNyBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBDb250ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciogY29u
dGVudHNMYXllcikKICAgICB9IGVsc2UKICAgICAgICAgY29udGVudHNMYXllci0+c2V0QW5jaG9y
UG9pbnQoRmxvYXRQb2ludDNEKCkpOwogCi0gICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgewor
ICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpKSB7CiAgICAgICAgIGNvbnRlbnRzTGF5ZXIt
PnNldEJvcmRlckNvbG9yKENvbG9yKDAsIDAsIDEyOCwgMTgwKSk7CiAgICAgICAgIGNvbnRlbnRz
TGF5ZXItPnNldEJvcmRlcldpZHRoKDEuMGYpOwogICAgIH0KQEAgLTI4NDYsNyArMjg2Nyw3IEBA
IFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIo
UGxhdGZvcm1DQUxheWVyICpsYXllciwKICAgICAgICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoQ29w
eSwgbGF5ZXIsIG5ld0xheWVyLmdldCgpKTsKICAgICB9CiAgICAgCi0gICAgaWYgKHNob3dEZWJ1
Z0JvcmRlcnMoKSkgeworICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpKSB7CiAgICAgICAg
IG5ld0xheWVyLT5zZXRCb3JkZXJDb2xvcihDb2xvcigyNTUsIDEyMiwgMjUxKSk7CiAgICAgICAg
IG5ld0xheWVyLT5zZXRCb3JkZXJXaWR0aCgyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDAwY2E2
MmU3NTI1OTdjYzQzOGY5MTFmOGYxYzlhOTNkZGY4ODQ3YzUuLjJkZWIyZTI4YzlkYmY0MWI3ZjFm
NDJhYWY3ZTNhMTU2OWM3NDhhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMjEsNiArMTIxLDkgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIGhhc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnRzTGF5ZXI7IH0KICAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVn
Qm9yZGVyKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENv
dW50ZXIoYm9vbCkgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCYWNrZ3Jv
dW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIo
Y29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCk7CiAKQEAgLTE1Miw3ICsxNTUsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVk
KENGVGltZUludGVydmFsIGJlZ2luVGltZSk7CiAgICAgdmlydHVhbCBDb21wb3NpdGluZ0Nvb3Jk
aW5hdGVzT3JpZW50YXRpb24gcGxhdGZvcm1DQUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIGNvbnRlbnRzT3JpZW50YXRpb24oKTsgfQogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJl
Y3QmIGNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3Jk
ZXJzKCkgY29uc3QgeyByZXR1cm4gc2hvd0RlYnVnQm9yZGVycygpOyB9CisgICAgdmlydHVhbCBi
b29sIHBsYXRmb3JtQ0FMYXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBpc1No
b3dpbmdEZWJ1Z0JvcmRlcigpOyB9CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNo
b3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGlu
dCBwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRSZXBhaW50Q291bnQoKSB7IHJldHVybiBpbmNyZW1l
bnRSZXBhaW50Q291bnQoKTsgfQogCkBAIC0zMjYsNiArMzI5LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHVwZGF0ZUxheWVyQW5pbWF0aW9ucygpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNOZWVk
c0Rpc3BsYXkoKTsKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVzRHJhd2luZygpOworICAgIHZv
aWQgdXBkYXRlRGVidWdCb3JkZXIoKTsKICAgICB2b2lkIHVwZGF0ZVZpc2libGVSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3QpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNTY2Fs
ZShmbG9hdCBwaXhlbEFsaWdubWVudFNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJl
bGF0aXZlVG9CYXNlKTsKICAgICAKQEAgLTM3Nyw5ICszODEsOCBAQCBwcml2YXRlOgogICAgICAg
ICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDEgPDwgMjMsCiAgICAgICAgIENvbnRlbnRzVmlzaWJp
bGl0eUNoYW5nZWQgPSAxIDw8IDI0LAogICAgICAgICBWaXNpYmxlUmVjdENoYW5nZWQgPSAxIDw8
IDI1LAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAx
IDw8IDI2LAotI2VuZGlmCisgICAgICAgIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxIDw8IDI3
CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIExheWVyQ2hhbmdlRmxhZ3M7CiAgICAgdm9p
ZCBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoTGF5ZXJDaGFuZ2VGbGFncyBmbGFncyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCBkZjMzNWQ4MTAyZTEwZjVmMTIw
MzAyN2Y4Mjg3ZGQ4NTAzNjYyMDFjLi5iODM1ODc4ZTkyMDk3NDM2ZTk1ZTZhOGZmZjA0M2EzMzg4
OGJmNmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTg0Nyw3
ICs4NDcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVy
KFdlYkxheWVyKiBjb250ZW50c0xheWVyKQogICAgICAgICAvLyBzaGFkb3cgY29udGVudCB0aGF0
IG11c3QgZGlzcGxheSBpbiBmcm9udCBvZiB0aGUgdmlkZW8uCiAgICAgICAgIG1fbGF5ZXItPmxh
eWVyKCktPmluc2VydENoaWxkKG1fY29udGVudHNMYXllciwgMCk7CiAKLSAgICAgICAgaWYgKHNo
b3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgICAgICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkg
ewogICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXREZWJ1Z0JvcmRlckNvbG9yKENvbG9y
KDAsIDAsIDEyOCwgMTgwKS5yZ2IoKSk7CiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNl
dERlYnVnQm9yZGVyV2lkdGgoMSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5j
cHAKaW5kZXggMTFhNWQ1ODRmZjhhMzBlZjFiZDY4ZGU2NGE5OTkzNjBmZTgzZjljNi4uYWU0OGZh
ZjU5ZDZlYWQ1NTRmYzBiMzAyMTNiYjQyMTJkZjI0NTQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBk
YXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAg
IGNvbnRleHQtPnRyYW5zbGF0ZSgtZGlydHlSZWN0LngoKSwgLWRpcnR5UmVjdC55KCkpOwogICAg
IGxheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cygqY29udGV4dCwgZGlydHlSZWN0KTsK
IAotICAgIGlmIChsYXllci0+c2hvd1JlcGFpbnRDb3VudGVyKCkpIHsKKyAgICBpZiAobGF5ZXIt
PmlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkpIHsKICAgICAgICAgbGF5ZXItPmluY3JlbWVudFJl
cGFpbnRDb3VudCgpOwogICAgICAgICBkcmF3UmVwYWludENvdW50ZXIoY29udGV4dCwgbGF5ZXIp
OwogICAgIH0KQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBk
YXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAg
IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlID0gc3RhdGljX2Nh
c3Q8VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKj4obV9iYWNraW5nU3RvcmUuZ2V0KCkp
OwogICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2Uu
Z2V0KCksIG1fc2l6ZSwgZGlydHlSZWN0LCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5Nb2RpZnlP
cmlnaW5hbEltYWdlRGF0YSk7CiAKLSAgICBiYWNraW5nU3RvcmUtPnNldFNob3dEZWJ1Z0JvcmRl
cnMobGF5ZXItPnNob3dEZWJ1Z0JvcmRlcnMoKSk7CisgICAgYmFja2luZ1N0b3JlLT5zZXRTaG93
RGVidWdCb3JkZXJzKGxheWVyLT5pc1Nob3dpbmdEZWJ1Z0JvcmRlcigpKTsKICAgICBiYWNraW5n
U3RvcmUtPnNldERlYnVnQm9yZGVyKG1fZGVidWdCb3JkZXJDb2xvciwgbV9kZWJ1Z0JvcmRlcldp
ZHRoKTsKIAogICAgIG1fc3RhdGUubmVlZHNEaXNwbGF5ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDU1NjkwOWU5ZDJi
MGMzYTQ4YmY3NmNkNGE4N2Y2NmM3MjYzOGMxZGUuLjgyNjdiYzMxMGU3ZTRlZjNkMzY5OTdkZWY0
YjhhMTgyOWMyOTJhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCkBAIC0yMDMsNiArMjAzLDMxIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjphZGp1c3RUaWxlQ2FjaGVDb3ZlcmFnZSgpCiAgICAgdGlsZWRCYWNraW5nKCktPnNldFRp
bGVDb3ZlcmFnZSh0aWxlQ292ZXJhZ2UpOwogfQogCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlRGVidWdJbmRpY2F0b3JzKGJvb2wgc2hvd0JvcmRlciwgYm9vbCBzaG93UmVwYWludENv
dW50ZXIpCit7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0Jv
cmRlcik7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaG93UmVwYWludENvdW50ZXIoc2hvd1Jl
cGFpbnRDb3VudGVyKTsKKyAgICAKKyAgICBpZiAobV9hbmNlc3RvckNsaXBwaW5nTGF5ZXIpCisg
ICAgICAgIG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0Jv
cmRlcik7CisKKyAgICBpZiAobV9mb3JlZ3JvdW5kTGF5ZXIpIHsKKyAgICAgICAgbV9mb3JlZ3Jv
dW5kTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKKyAgICAgICAgbV9mb3Jl
Z3JvdW5kTGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlcihzaG93UmVwYWludENvdW50ZXIpOwor
ICAgIH0KKworICAgIGlmIChtX21hc2tMYXllcikgeworICAgICAgICBtX21hc2tMYXllci0+c2V0
U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworICAgICAgICBtX21hc2tMYXllci0+c2V0U2hv
d1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7CisgICAgfQorCisgICAgaWYgKG1f
c2Nyb2xsaW5nTGF5ZXIpCisgICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXItPnNldFNob3dEZWJ1Z0Jv
cmRlcihzaG93Qm9yZGVyKTsKKworICAgIGlmIChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpCisg
ICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dC
b3JkZXIpOworfQorCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlUHJpbWFyeUdyYXBo
aWNzTGF5ZXIoKQogewogICAgIFN0cmluZyBsYXllck5hbWU7CkBAIC0xNTg2LDE2ICsxNjExLDYg
QEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmdldEN1cnJlbnRUcmFuc2Zvcm0oY29uc3QgR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KSBjb25zdAotewotICAgIHJldHVybiBjb21wb3NpdG9yKCkgPyBjb21wb3NpdG9yKCktPmNvbXBv
c2l0b3JTaG93RGVidWdCb3JkZXJzKCkgOiBmYWxzZTsKLX0KLQotYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsK
LSAgICByZXR1cm4gY29tcG9zaXRvcigpID8gY29tcG9zaXRvcigpLT5jb21wb3NpdG9yU2hvd1Jl
cGFpbnRDb3VudGVyKCkgOiBmYWxzZTsKLX0KLQogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6Omlz
VHJhY2tpbmdSZXBhaW50cygpIGNvbnN0CiB7CiAgICAgR3JhcGhpY3NMYXllckNsaWVudCogY2xp
ZW50ID0gY29tcG9zaXRvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCmluZGV4IDIyZmI4ODkwMTZlZGY1YjBjMWE5Y2I1YzI2MjE3MDdiNzdmMzk0
NmQuLjM5YWJhZWFmMzZmZjRmYzc3MDI4OTU0ZWU0MzAzYzEzNjAzNWE4NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE0MSw2ICsxNDEs
OCBAQCBwdWJsaWM6CiAgICAgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSBjb25zdDsKICAg
ICB2b2lkIGFkanVzdFRpbGVDYWNoZUNvdmVyYWdlKCk7CiAgICAgCisgICAgdm9pZCB1cGRhdGVE
ZWJ1Z0luZGljYXRvcnMoYm9vbCBzaG93Qm9yZGVyLCBib29sIHNob3dSZXBhaW50Q291bnRlcik7
CisgICAgCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbnRlcmZhY2UKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFw
aGljc0xheWVyKiwgZG91YmxlIHN0YXJ0VGltZSkgT1ZFUlJJREU7CkBAIC0xNTQsOSArMTU2LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBnZXRD
dXJyZW50VHJhbnNmb3JtKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBz
aG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwot
CiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IE9WRVJSSURFOwog
CiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA2YWEzODUxNWMxMzQ4YmE5YTMyM2NjODE0NTFkMjAx
ZWYwYjQwMmZjLi5kMDJlNWU0Njk5MjZhOGM1NWZiYjA4MzZlNDg3NWYyZDk3YmY4YjM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtNTgzLDYgKzU4MywxMCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRl
QmFja2luZyhSZW5kZXJMYXllciogbGF5ZXIsIENvbXBvc2l0aW5nQ2hhbmdlUgogICAgICAgICBp
ZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5m
cmFtZVZpZXdGaXhlZE9iamVjdHNEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7
CiAgICAgfQorICAgIAorICAgIGlmIChsYXllci0+YmFja2luZygpKQorICAgICAgICBsYXllci0+
YmFja2luZygpLT51cGRhdGVEZWJ1Z0luZGljYXRvcnMobV9zaG93RGVidWdCb3JkZXJzLCBtX3No
b3dSZXBhaW50Q291bnRlcik7CisKICAgICByZXR1cm4gbGF5ZXJDaGFuZ2VkOwogfQogCkBAIC0y
MDQ0LDIyICsyMDQ4LDYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNldFRyYWNrc1Jl
cGFpbnRzKGJvb2wgdHJhY2tzUmVwYWludHMpCiAgICAgbV9pc1RyYWNraW5nUmVwYWludHMgPSB0
cmFja3NSZXBhaW50czsKIH0KIAotYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3dEZWJ1
Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgaWYgKGxh
eWVyID09IG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyIHx8IGxheWVyID09IG1fbGF5ZXJG
b3JWZXJ0aWNhbFNjcm9sbGJhciB8fCBsYXllciA9PSBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyKQot
ICAgICAgICByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOwotCi0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIGlmIChsYXllciA9PSBtX2xheWVy
Rm9ySG9yaXpvbnRhbFNjcm9sbGJhciB8fCBsYXllciA9PSBtX2xheWVyRm9yVmVydGljYWxTY3Jv
bGxiYXIgfHwgbGF5ZXIgPT0gbV9sYXllckZvclNjcm9sbENvcm5lcikKLSAgICAgICAgcmV0dXJu
IG1fc2hvd0RlYnVnQm9yZGVyczsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IGU1OGFhM2E2Y2NkMDM2YzhiYzA3ZWEwNmNk
MjA2ZTNjNmM3ZTE1ZGEuLjgxYWFmNDE0MWRjMzFhMTY4YmE2NjViMDI2ZjNiNmViN2NkNjczMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKQEAgLTIwMiwxMSArMjAyLDYgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGxheWVyVHJlZUFz
VGV4dChMYXllclRyZWVGbGFncyk7CiAKLSAgICAvLyBUaGVzZSBhcmUgbmFtZWQgdG8gYXZvaWQg
Y29uZmxpY3RzIHdpdGggdGhlIGZ1bmN0aW9ucyBpbiBHcmFwaGljc0xheWVyQ2xpZW50Ci0gICAg
Ly8gVGhlc2UgcmV0dXJuIHRoZSBhY3R1YWwgaW50ZXJuYWwgdmFyaWFibGVzLgotICAgIGJvb2wg
Y29tcG9zaXRvclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBtX3Nob3dEZWJ1Z0Jv
cmRlcnM7IH0KLSAgICBib29sIGNvbXBvc2l0b3JTaG93UmVwYWludENvdW50ZXIoKSBjb25zdCB7
IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRlcjsgfQotCiAgICAgdmlydHVhbCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNj
YWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENo
YW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7CkBAIC0y
MzksOSArMjM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyBzY2hlZHVsZUxheWVyRmx1c2go
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50
UmVjdCYpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG93
UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwotCiAg
ICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IE9WRVJSSURFOwogICAg
IAogICAgIC8vIEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50IGltcGxlbWVudGF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaAppbmRleCA4NDZlNWNjN2E1
ODYzOGVmMDczMmE0MWM3OGRiODkwMDdjMDMwOTI4Li43NDJmZTBiYjFhMjk0N2JkMmEzNWM1YzRj
ZjA1ZDA1MTk1MmU0Y2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYk92ZXJsYXlfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3Zl
cmxheV9wLmgKQEAgLTE2Nyw4ICsxNjcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJs
ZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGNvbnRlbnRzVmlzaWJs
ZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y29udGVudFJlY3QpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDc1NjkzMjBiOTgxZWEwNGU0MTJm
ZmY2NmQwMjllMDYxOWIyYzhlZjIuLmZkNDliNDhkZTI3Yjc2MTU3NmMwMzdkZjk5NmU3M2E0YWU3
ZDJiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNTcz
MSwxNiArNTczMSw2IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6Om5vdGlmeUZsdXNoUmVxdWlyZWQo
Y29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgc2NoZWR1bGVSb290TGF5ZXJDb21taXQoKTsK
IH0KLQotYm9vbCBXZWJQYWdlUHJpdmF0ZTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93RGVi
dWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgV2ViUGFnZVByaXZhdGU6OnNob3dSZXBhaW50Q291bnRl
cihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zZXR0
aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVlbkZv
ck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5o
CmluZGV4IGRlZTA4NDk1MjEwY2FhMWU4MzNhNGNkNmVlZDIzNmJhMWExMjQyYzQuLmY0YjA5NDc0
MmZiNGNkNDc3NWMwZGYyY2E4OTg1ZWM1NWMwYmJjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtNDAxLDggKzQwMSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVp
cmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGluQ2xpcCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0Jv
cmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNv
bnN0OwogCiAgICAgLy8gV2ViS2l0IHRocmVhZCwgcGx1bWJlZCB0aHJvdWdoIGZyb20gQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS4KICAgICB2b2lkIHNldFJvb3RMYXllcldlYktpdFRocmVhZChXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBI
aWdobGlnaHQuY3BwCmluZGV4IDQ1NDcyYWFmZDk0YjAzODdjY2U2ZjJiMTgyZWIzY2Q2OTFhOTFk
ZGEuLjc3YjJjNzVhYzdkNzFkYTYxMjZmOGM0ODBhODIxY2VlYzkyMTJmNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGln
aHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1
bHRUYXBIaWdobGlnaHQuY3BwCkBAIC0xNDgsMTYgKzE0OCw2IEBAIHZvaWQgRGVmYXVsdFRhcEhp
Z2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250
ZXh0JiBjCiAgICAgYy5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgRGVmYXVsdFRhcEhpZ2hsaWdodDo6
c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9wYWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVyKTsKLX0KLQotYm9vbCBEZWZh
dWx0VGFwSGlnaGxpZ2h0OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciog
bGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxh
eWVyKTsKLX0KLQogYm9vbCBEZWZhdWx0VGFwSGlnaGxpZ2h0Ojpjb250ZW50c1Zpc2libGUoY29u
c3QgR3JhcGhpY3NMYXllciosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdAogewog
ICAgIC8vIFRoaXMgbGF5ZXIgaXMgdHlwaWNhbGx5IHNtYWxsIGVub3VnaCB0aGF0IHdlIGNhbiBh
ZmZvcmQgdG8gY2FjaGUgYWxsIHRpbGVzIGFuZCBuZXZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5o
CmluZGV4IDA2YzU1OTA1Nzk1MjA5M2ZhZDhjYTlhNWQxOGYwYTc3MjA2ZWZjYWUuLjkwYWY5NGNh
YWI5MWFlNDllMjQwNDY5YzcyNTYyZjFhYzM5MWRjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0
LmgKQEAgLTU3LDggKzU3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmlt
YXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5D
bGlwKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRl
cihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IGNvbnRlbnRzVmlzaWJsZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgY29udGVudFJlY3QpIGNvbnN0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3Zlcmxh
eUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwCmluZGV4IDA4MTVkZDk3YmNiMjk1ZGRlYjA0
Yjg2YzIzMjBhMzY1Nzc1NWQzZTAuLjUyYzljNGQyZTg2MjlmNjg3YjQ0OTc1YjkxZDI1MGJlNmM0
ODAzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHAKQEAgLTU2
LDE1ICs1Niw2IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhCiAgICAgY29udGV4dC5yZXN0b3Jl
KCk7CiB9CiAKLWJvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQ
YWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVyKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JPdmVybGF5
OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVy
KTsKLX0KICNlbmRpZgogCiBJbnNwZWN0b3JPdmVybGF5Ojp+SW5zcGVjdG9yT3ZlcmxheSgpIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5z
cGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmgKaW5kZXggOTExOTdjYzBjOWNi
ODNjMzZjMWMyZDQ1N2M2MjYxNDUyZDNkMzEwNy4uNmRmNGJhNjJhZjg3YmY3Nzk1NGMzNGU1MWU5
Y2UwYTk4ZmQ3NTk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5oCkBA
IC01NCw4ICs1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7
Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogI2VuZGlmCiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rp
b25PdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbk92ZXJsYXkuY3BwCmluZGV4IGUwNmY3ZGYxYzExMGNmM2E5ZmI5NzMzNTZiYmMwYmM1
YTNlNjhiOTUuLmQzNTJiMTc3YTQzOTBjYzE0OTE4NmFjYmY5YmRhNGJjNGI0M2I0OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92
ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbk92ZXJsYXkuY3BwCkBAIC0xMTcsMTYgKzExNyw2IEBAIHZvaWQgU2VsZWN0aW9uT3Zl
cmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0
JiBjLCBHCiAgICAgYy5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgU2VsZWN0aW9uT3ZlcmxheTo6c2hv
d0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9wYWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVyKTsKLX0KLQotYm9vbCBTZWxlY3Rp
b25PdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiB9IC8vIG5hbWVzcGFjZSBCbGFja0JlcnJ5CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVj
dGlvbk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbk92ZXJsYXkuaAppbmRleCA1NzYyYjVhODljMWQ0YjY1ZmM3ODQ5NWUxNGU2YTA2N2Qx
ZDA2MDRiLi5kMjcwNGRjM2Y3YjcyMDFlZWMyNzRlM2ViMTc0M2E4MGY2YmVhMzgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVy
bGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0
aW9uT3ZlcmxheS5oCkBAIC01Miw4ICs1Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91
YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVw
YWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIFNlbGVjdGlvbk92ZXJsYXkoV2ViUGFnZVByaXZhdGUqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3Bw
CmluZGV4IDIzZGNkZGU5Yjc5YjQ5ODk1YTJmMjIxYjdiYTUxMDBhMzZjYzNhMmYuLmY1YjZiNjAz
NjhmNmFjNmJkYTBiNWNjMjQ1Nzc2MmRkYTZlOGNiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtMTkx
LDE2ICsxOTEsNiBAQCB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2hvd0RlYnVn
Qm9yZGVycyhib29sIHNob3dEZWJ1Z0JvcmRlcnMpCiAgICAgbV9ncmFwaGljc0xheWVyLT51cGRh
dGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAotYm9vbCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6
OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsKLX0KLQotYm9vbCBOb25Db21wb3NpdGVk
Q29udGVudEhvc3Q6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0Ojppc1RyYWNraW5nUmVwYWludHMoKSBjb25zdAogewogICAgIHJldHVybiBt
X3dlYlZpZXctPmlzVHJhY2tpbmdSZXBhaW50cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAppbmRleCAyYjZkZGMxYWFi
MDAyNjE1ZTJiOTFmNzg5YTY2NWQ0M2YyYjViMDgxLi5iMmQxMDUwMzk4NjRkNDljMmM3ODk1NGZm
MTQ4ZWEzZmRkY2NhN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9O
b25Db21wb3NpdGVkQ29udGVudEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaApAQCAtNzEsOCArNzEsNiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNo
UmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9p
ZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVi
dWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Q7CiAK
ICAgICBib29sIGhhdmVTY3JvbGxMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGFnZU92ZXJsYXkuY3BwCmluZGV4IGExNmEwMTA3N2ViMzVhYmM4MjcwODc3OTkyOTUzNjU0OWM0
YjhmNjMuLmM5NTY4N2FmNjNkNWRjYjgwN2QyZjdmNWZjMDQ3YmU0NzQzOTJmNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAKQEAgLTk0LDE2ICs5NCw2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwtPnBhZ2VTY2FsZUZhY3Rvcigp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwtPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotICAgIH0KLQotICAgIHZpcnR1
YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFnZSgpLT5zZXR0aW5ncygpLT5z
aG93UmVwYWludENvdW50ZXIoKTsKLSAgICB9Ci0KIHByaXZhdGU6CiAgICAgT3ZlcmxheUdyYXBo
aWNzTGF5ZXJDbGllbnRJbXBsKFdlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCwgV2ViUGFnZU92ZXJs
YXkqIG92ZXJsYXkpCiAgICAgICAgIDogbV9vdmVybGF5KG92ZXJsYXkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0
LmNwcAppbmRleCAwY2U4NDI1N2I1YmE3YmI4MzAxZWU3ZWQ2MTM3YmI1ZGIwNDQ1ZmU3Li5iMDRi
M2E5NDUzYTFmZTJiYjQ4OWM3NTBhNTBhMDE2OTk5N2E5MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5j
cHAKQEAgLTUyLDggKzUyLDYgQEAgY2xhc3MgTW9ja0dyYXBoaWNzTGF5ZXJDbGllbnQgOiBwdWJs
aWMgR3JhcGhpY3NMYXllckNsaWVudCB7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBPVkVSUklERSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3Jh
cGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNl
LCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgYm9vbCBz
aG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3Qg
R3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDI7
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW1hZ2VM
YXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdl
TGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGJmYjAzZWQzMDRmNDk4YzgzZDA4ZWZkNzE1M2I2
MWFhNjJmZWU1YjUuLjc0YzJmMTY2OWE0NTQzMjRiNWUzNGY5ZmYwNTMxZDgzNDBhNDhjODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVt
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JbWFnZUxheWVyQ2hy
b21pdW1UZXN0LmNwcApAQCAtNDAsOCArNDAsNiBAQCBjbGFzcyBNb2NrR3JhcGhpY3NMYXllckNs
aWVudCA6IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IEludFJlY3QmIGluQ2xpcCkgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIH07CiAKIGNsYXNzIFRlc3RJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaAppbmRleCA2NTcyZWE1ZWFkMjgxM2M3NWJmNTdj
ZTE0MzkxYzE5ZDBlYTRjMTU4Li4wMjU5N2QxNmQzZmE1NDI5ZDZjYTMzNjEyYjYzYWMwZGJjN2I5
M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKQEAgLTYwLDggKzYwLDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvUGFpbnQpOwotICAgIHZpcnR1YWwg
Ym9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25z
dDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDM3ODkwMzQyNjMwZWM1
MGRmNGZiODlhMzA1ZDE3NGUxMDk1NzViOGMuLmNjNjk0MmVlODgzOTU1ZjMyNzVkYTM2YTlhNjAx
ZjU0Zjg5YzY2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fpcm8u
Y3BwCkBAIC0xNjksMTYgKzE2OSw2IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzCiAgICAgY29w
eVJlY3RGcm9tQ2Fpcm9TdXJmYWNlVG9Db250ZXh0KG1fd2ViVmlldy0+cHJpdi0+YmFja2luZ1N0
b3JlLT5jYWlyb1N1cmZhY2UoKSwgY3IsIEludFNpemUoKSwgcmVjdFRvUGFpbnQpOwogfQogCi1i
b29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFVTRShURVhUVVJFX01BUFBFUl9DQUlSTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dENsdXR0ZXIuY3BwCmluZGV4IDg3Y2ViNmVhMDI0YWI0MGY4YTQ4M2E4NjEzMzcyMzg3
NWVlMzZmMWUuLjlmY2FlNTI1N2E0MTVhOTM0YmM0MmM1YzM2YmMwOGZlNTZlYjU5MWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcApAQCAtMTY1LDE4
ICsxNjUsNiBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRl
bnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzaG93RGVidWdC
b3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dEdMLmNwcAppbmRleCBlZmMyMDYxOTM0NGViMjVjMjg1NDZiZWQyZGRk
N2M3NGY0NDVlYWJmLi5kMTMwYTNmYjdiM2IxODkwNmFlYTlkZjg5ODkzNGIxYTZmZmFmMDA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcApAQCAtMzgzLDE2ICszODMs
NiBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljcwogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQog
Ci1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzaG93RGVidWdCb3JkZXJzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9v
bCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggM2ExYjc0
ZTIxMzUxZmFkYTZkNDFhY2RmODlmMjU0YTgzYWFjYjY4Ny4uZGQ3MDA4ZWIzYTRhN2RjNjgwZGQy
ZjBmMjZmODcxODAwYWRjMjFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTY2NDUsMTYgKzY2
NDUsNiBAQCB2b2lkIFdlYlZpZXc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcAogICAgIGNvbnRleHQucmVzdG9yZSgpOwog
fQogCi1ib29sIFdlYlZpZXc6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVy
cygpOwotfQotCi1ib29sIFdlYlZpZXc6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93UmVw
YWludENvdW50ZXIoKTsKLX0KLQogdm9pZCBXZWJWaWV3OjpmbHVzaFBlbmRpbmdHcmFwaGljc0xh
eWVyQ2hhbmdlcygpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV9tYWluRnJhbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5oCmluZGV4IDk4ZmNiYjNlMWJkM2JiNTI2NTliMGM1ZGFkODZjZDIyMTk1
MjNkZTAuLmM5MzczNDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFiNzM2MDdiNmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJWaWV3LmgKQEAgLTEwMjAsOCArMTAyMCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRv
dWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFp
bnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAgIC8v
IENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoUGVuZGluZ0dy
YXBoaWNzTGF5ZXJDaGFuZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRl
eCBkZGVhMzFkN2JlYmEzY2ExOThiMzgyNDJkODYwM2FlNzBlNDZkNmEzLi44NTk2MDIyOTYyNDFl
MDE0YzZhNzJmODY3MjY5YTZkYjRlMTZjY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmgKQEAgLTEwOCw4ICsxMDgsNiBAQCBwcml2YXRlOgogICAgIC8vIFJlaW1wbGVtZW50YXRp
b25zIGZyb20gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudC4KICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91
YmxlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKikgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRl
cnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgeyB9CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpOwogICAgIHZvaWQgZGlzcGF0
Y2hPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDllYjM3OGU1
ZGEzMzFmYzhjOTFjNTJhNDQ5OWI2YTU5ZDRlZmYyYWMuLjBkZGZjZWRjZDBlYzBhNmUzNmRlNTJl
NzQxMjdhZTFkOWRmZGVhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTU3OCwxNiArNTc4LDYgQEAgdm9pZCBMYXllclRy
ZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiBncmFwaGljc0wKICAgICB9CiB9CiAKLWJvb2wgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNob3dE
ZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVy
cygpOwotfQotCi1ib29sIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0K
IFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUdy
YXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNsaWVudCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggZDcyNWFm
Njk3YTg1M2RlYzkxZmM2ODk1OTJhMjVkMzA5NjQ3NzFmNS4uY2FjYjY4ZWFhZTViOTc5YTE1NWI3
MDU2NGVkYzE4MmVlM2RhMzA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5oCkBAIC0xMTIsOCArMTEyLDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVp
cmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9y
ZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBi
b29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29u
c3Q7CiAKICAgICAvLyBHcmFwaGljc0xheWVyRmFjdG9yeQogICAgIHZpcnR1YWwgUGFzc093blB0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDbGllbnQqKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKaW5kZXggMDg3MmY0
MzU1MGU3NjJmZGY5NmVmOGM4MjI0OTJlMzQ1NjMzM2ZjZS4uZGJhNTVjMjEyMjkzZDY1MmU4NmE2
YmJkYTE5MGJjODA1NjgxOWUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKQEAgLTIwMywxNiArMjAzLDYg
QEAgdm9pZCBMYXllclRyZWVIb3N0Q0E6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3MKICAgICB9CiB9CiAKLWJvb2wgTGF5ZXJUcmVlSG9z
dENBOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAg
IHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRl
cnMoKTsKLX0KLQotYm9vbCBMYXllclRyZWVIb3N0Q0E6OnNob3dSZXBhaW50Q291bnRlcihjb25z
dCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFn
ZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KLQogZmxvYXQgTGF5ZXJU
cmVlSG9zdENBOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuaAppbmRleCA5
Y2I4Y2E2YTU0ZmMzODZkMmJlM2M4OTI5MjQ4Y2ZiZTVlMDJjNjVmLi4yMWIxM2RhMWMyNDkyZTNk
M2ZlNDRhYjg4ODRkNjlmZWZiMWNhMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oCkBAIC03Niw4ICs3Niw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAK
aW5kZXggYWYyYWU4OWJmYTI5MTU1Y2VmYTYzMmRhMjJjN2U2YmYzYWVhYjVjNi4uMDdmZTEyODU1
YTdkYTgxOWE4MjMxZTA5ODU5ZGJlYTIzMGUwZTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBA
IC0yNTgsMTYgKzI1OCw2IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6cGFpbnRDb250ZW50cyhj
b25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljCiAgICAgfQogfQogCi1i
b29sIExheWVyVHJlZUhvc3RHdGs6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3Mo
KS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIExheWVyVHJlZUhvc3RHdGs6OnNob3dS
ZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsK
LX0KLQogZ2Jvb2xlYW4gTGF5ZXJUcmVlSG9zdEd0azo6bGF5ZXJGbHVzaFRpbWVyRmlyZWRDYWxs
YmFjayhMYXllclRyZWVIb3N0R3RrKiBsYXllclRyZWVIb3N0KQogewogICAgIGxheWVyVHJlZUhv
c3QtPmxheWVyRmx1c2hUaW1lckZpcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCmluZGV4IDYxYjlmYTY3
MTU4MzM2YTM0NjNjZGMwY2Y3Y2M4OTgzN2UwYjExMjQuLjg0MGFkYTgxM2E2NzBkNjBlZWJiOGU1
YjQxMzA4MmY2ODZmNGQwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC03Nyw4ICs3Nyw2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Owot
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5
ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgfQogCiAgICAgdm9pZCBj
cmVhdGVQYWdlT3ZlcmxheUxheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmgKaW5kZXggZjUwNDhhOTg1ZWU1ODdiYjcyYjNiMDBjYjUyOTQ3YmNjOGYzZGZhYy4u
N2Q1YjNiZTk2NjIwNGI4MzEyZjllNWVkNjY1ODdkNjkyOTgxMWI3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRD
b3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7CiAKICAg
ICAvLyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCBmY2Q3MmNhYzkyYTg3ZDg0NGJmYzg4MTdj
YzAxZjZkZjRhYjcxNzVmLi5jZjVkMjNlMDEzYjk4NGNiN2JjZDkzMWRhMzIzZTg3YzQ3ZTYyZDZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTI3Mywx
NiArMjczLDYgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0wKICAgICBtX3dlYlBhZ2UtPmRyYXdQ
YWdlT3ZlcmxheShncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKIH0KIAotYm9vbCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QK
LXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVw
YWludENvdW50ZXIoKTsKLX0KLQogZmxvYXQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3Jl
UGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172201</attachid>
            <date>2012-11-02 20:45:20 -0700</date>
            <delta_ts>2012-11-02 21:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101136-20121102204338.patch</filename>
            <type>text/plain</type>
            <size>55976</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdkZGZkMDc5NTE0ZTEx
Njg1ZTFiODU1YzllNGM0MzAxZjIwOGUyYy4uMTY5MmNmMDFkMTc1Y2ZlYTMxNTdmZTlkOWEyMzhj
MjgxNDEwM2U0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBi
b3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NMYXll
cnMgZGVjaWRlZCB3aGV0aGVyIHRvIHNob3cgbGF5ZXIgYm9yZGVycyBiYXNlZAorICAgICAgICBv
biBhIGNhbGxiYWNrIHRocm91Z2ggdGhlIEdyYXBoaWNzTGF5ZXJDbGllbnQuIFRoaXMgbWFkZSBp
dAorICAgICAgICBoYXJkIHRvIG1hbmFnZSBzdGF0ZSwgcmVzdWx0aW5nIGluIGEgZmFpbHVyZSB0
byBjbGVhbmx5CisgICAgICAgIGhpZGUgbGF5ZXJzIHdoZW4gdG9nZ2xlZCBvZmYgdmlhIHRoZSBw
cmVmZXJlbmNlLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgbGF5ZXIgYm9yZGVyIGFu
ZCByZXBhaW50IGNvdW50ZXIgdmlzaWJpbGl0eSB0byBiZSBiaXRzCisgICAgICAgIHN0b3JlZCBv
biBHcmFwaGljc0xheWVyIGp1c3QgbGlrZSBvdGhlciBwcm9wZXJ0aWVzLCB3aXRoIGdldHRlcnMK
KyAgICAgICAgYW5kIHNldHRlcnMuIFJlbmRlckxheWVyQmFja2luZyBub3cgdXBkYXRlcyB0aGVz
ZSBkZWJ1ZworICAgICAgICBpbmRpY2F0b3JzIHdoZW4gd2UgdXBkYXRlIG90aGVyIGNvbXBvc2l0
aW5nIGxheWVyIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBJbiBHcmFwaGljc0xheWVy
Q0EsIGF2b2lkIGNhbGxpbmcgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCkgZXhwbGljaXRseQorICAg
ICAgICBpbiBzZXZlcmFsIHBsYWNlcyBieSBzZXR0aW5nIHRoZSBjaGFuZ2UgZmxhZyBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkCisgICAgICAgIGZvciBwcm9wZXJ0aWVzIHdob3NlIHZhbHVlcyBhZmZl
Y3QgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGRlYnVnIGJvcmRlci4KKworICAgICAgICBSZW1vdmVk
IHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAor
ICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKSB3aGljaCBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVk
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmlzU2hvd2luZ0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjppc1Nob3dpbmdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpyZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6aW5jcmVtZW50UmVwYWludENvdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
R3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0
TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldERy
YXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3JhcGhp
Y3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyU2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKwogMjAx
Mi0xMS0wMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMzM3NS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IGY4YWQzZjhmN2QyNjc4OTZlNTc3ZTZiZmQ3ZTc3M2Y0MTU5ZjlmOWMu
LjQ2NjlkY2M5OTExOWIxOWE2NzI1OTIxMmM1ZjE3MmY2ZGJjNmE1ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJz
IHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGlj
c0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93
UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAg
ICAgKFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkKToKKyAgICAgICAgKiBBcGkvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKiBXZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRUYXBIaWdobGln
aHQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
Y3BwOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
aDoKKyAgICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQv
U2VsZWN0aW9uT3ZlcmxheS5jcHA6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25P
dmVybGF5Lmg6CisgICAgICAgIChTZWxlY3Rpb25PdmVybGF5KToKKwogMjAxMi0xMS0wMiAgTmlt
YSBHaGFuYXZhdGlhbiAgPG5naGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBGaXggY29tcGlsZS10aW1lIHdhcm5pbmcgb2YgYSBwb3NzaWJsZSBlbXB0eS1ib2R5IGlm
IHN0YXRlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNzdkYjJiNmUwNDg4Yzgx
ZTI0ZDYzN2Q4NTMwYmU1N2QzYWFmN2ZiLi45MjE5NTg5OGUzMmI2YzY4N2FjYjU1MTQ2YTI1YTE1
ZmE1M2EzZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9u
IHN3aXRjaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVy
cygpIGFuZAorICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIHNyYy9O
b25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuaDoKKyAgICAgICAgKE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAg
ICAgICogc3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVy
Q2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0
LmNwcDoKKwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIFBsdWdpbkluYWN0aXZlIHBsdWctaW4gdW5hdmFpbGFiaWxpdHkg
cmVhc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTA1ODY0NWUwZjczZGExZTNkMGI5N2ZkYTI2ODBh
YmRjZDlmYjRjNS4uYjJkMTE1NzZiODljYWNiYjhhYTRlNWNiMWYxZGJkZDZiZGNlYjkzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRv
IGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xh
eWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVw
YWludENvdW50ZXIoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Lmg6CisgICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRDYWlyby5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRDbHV0dGVyLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKwogMjAxMi0xMS0wMiAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gU291cFBhc3N3b3JkTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDRmYTZlOTMy
YWI1Nzk3NWZiYjc2ZDZkYzIyODdlNWI4NzRlZTJmYmEuLjEzMjdkYzZmNTYwZTA0NzAxZDAwMDhk
ZWY4MTA2YzA0ZjQ1ZTRlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0xMS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBGaXggbGF5ZXIgYm9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBz
d2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMo
KSBhbmQKKyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTItMTAtMjkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmc6OmNyZWF0ZUNGU3RyaW5n
IHNob3VsZCByZXR1cm4gYSBSZXRhaW5QdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3ZGM4Zjc4Y2I1OWM0Yjdh
ZTY1ODVlMjIwMTYxNjg4MmRiMDNlNzlhLi43MjBmM2RkMTg1ZTk0OWY3NzlkM2ZhNDMzNjNiYTM5
NGEyMjAyY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTEtMDIgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGxheWVyIGJv
cmRlcnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlbW92
ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQK
KyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisgICAgICAgIAorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oOgorICAgICAg
ICAoTGF5ZXJUcmVlSG9zdENBKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5oOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdEd0ayk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgor
ICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisKIDIw
MTItMTEtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBWZXJ5IHNwZWN1bGF0aXZlIEFyZ3VtZW50RGVjb2RlciBjcmFzaCBmaXgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMGRi
MjQ5OTkyMGMwOTEzYjY0NDFmMjE4YWI5MTg3NmQ0MTRlMTAzNS4uZGQzYjdhOWRmMmYwNDRkZjY1
YzRhNDFiMDY3Njg0OTg5OGUzYjUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTg5LDYgKzg5LDggQEAgR3JhcGhpY3NM
YXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBt
X2FjY2VsZXJhdGVzRHJhd2luZyhmYWxzZSkKICAgICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1l
bnQoZmFsc2UpCiAgICAgLCBtX2FwcGxpZXNQYWdlU2NhbGUoZmFsc2UpCisgICAgLCBtX3Nob3dE
ZWJ1Z0JvcmRlcihmYWxzZSkKKyAgICAsIG1fc2hvd1JlcGFpbnRDb3VudGVyKGZhbHNlKQogICAg
ICwgbV9wYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludEFsbFdpdGhPdmVyZmxvd0NsaXAp
CiAgICAgLCBtX2NvbnRlbnRzT3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERv
d24pCiAgICAgLCBtX3BhcmVudCgwKQpAQCAtMzc0LDcgKzM3Niw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllcjo6Z2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBjb25z
dAogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycygpCiB7Ci0gICAg
aWYgKCFHcmFwaGljc0xheWVyOjpzaG93RGVidWdCb3JkZXJzKCkpCisgICAgaWYgKCFpc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpKQogICAgICAgICByZXR1cm47CiAKICAgICBDb2xvciBib3JkZXJDb2xv
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCBlOTM3Y2E1ZDgzMzUyN2EyN2U2N2QxNjkxODA4ZDIyMmFlMjIyMmIzLi5lMmM4MmJh
MWJiODAzZjU2ZDUxYWM2Zjk5ZjUxZTBjNTAyNjcxYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zNTIsMjQgKzM1MiwyNiBA
QCBwdWJsaWM6CiAgICAgLy8gRm9yIGhvc3RpbmcgdGhpcyBHcmFwaGljc0xheWVyIGluIGEgbmF0
aXZlIGxheWVyIGhpZXJhcmNoeS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgCi0gICAgdm9pZCBkdW1wTGF5ZXIoVGV4
dFN0cmVhbSYsIGludCBpbmRlbnQgPSAwLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExheWVy
VHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdDsKLQotICAgIGludCByZXBhaW50Q291bnQo
KSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRDb3VudDsgfQotICAgIGludCBpbmNyZW1lbnRSZXBh
aW50Q291bnQoKSB7IHJldHVybiArK21fcmVwYWludENvdW50OyB9Ci0KICAgICBlbnVtIENvbXBv
c2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiB7IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BE
b3duLCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzQm90dG9tVXAgfTsKIAogICAgIC8vIEZsaXBwZWRu
ZXNzIG9mIHRoZSBjb250ZW50cyBvZiB0aGlzIGxheWVyLiBEb2VzIG5vdCBhZmZlY3Qgc3VibGF5
ZXIgZ2VvbWV0cnkuCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzT3JpZW50YXRpb24oQ29t
cG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fY29udGVudHNP
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09y
aWVudGF0aW9uIGNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRz
T3JpZW50YXRpb247IH0KIAotICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnNob3dEZWJ1Z0JvcmRlcnModGhpcykgOiBmYWxzZTsg
fQotICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQg
PyBtX2NsaWVudC0+c2hvd1JlcGFpbnRDb3VudGVyKHRoaXMpIDogZmFsc2U7IH0KLSAgICAKLSAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwotICAgIAorICAgIHZvaWQgZHVtcExheWVy
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50ID0gMCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgPSBM
YXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wgc2hvdykgeyBtX3Nob3dEZWJ1Z0JvcmRlciA9IHNob3c7
IH0KKyAgICBib29sIGlzU2hvd2luZ0RlYnVnQm9yZGVyKCkgY29uc3QgeyByZXR1cm4gbV9zaG93
RGVidWdCb3JkZXI7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIo
Ym9vbCBzaG93KSB7IG1fc2hvd1JlcGFpbnRDb3VudGVyID0gc2hvdzsgfQorICAgIGJvb2wgaXNT
aG93aW5nUmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRl
cjsgfQorCisgICAgaW50IHJlcGFpbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENv
dW50OyB9CisgICAgaW50IGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgcmV0dXJuICsrbV9yZXBh
aW50Q291bnQ7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBD
b2xvciYsIGZsb2F0IC8qYm9yZGVyV2lkdGgqLykgeyB9CisKICAgICAvLyB6LXBvc2l0aW9uIGlz
IHRoZSB6LWVxdWl2YWxlbnQgb2YgcG9zaXRpb24oKS4gSXQncyBvbmx5IHVzZWQgZm9yIGRlYnVn
Z2luZyBwdXJwb3Nlcy4KICAgICB2aXJ0dWFsIGZsb2F0IHpQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1felBvc2l0aW9uOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFpQb3NpdGlvbihmbG9hdCk7
CkBAIC00MTYsNiArNDE4LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldEdyYXBoaWNz
TGF5ZXJGYWN0b3J5KEdyYXBoaWNzTGF5ZXJGYWN0b3J5Q2FsbGJhY2spOwogI2VuZGlmCiAKKyAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hv
dWxkIGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxs
IHdpbGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKTsKQEAgLTQ4Niw3ICs0OTAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjY2Vs
ZXJhdGVzRHJhd2luZyA6IDE7CiAgICAgYm9vbCBtX21haW50YWluc1BpeGVsQWxpZ25tZW50IDog
MTsKICAgICBib29sIG1fYXBwbGllc1BhZ2VTY2FsZSA6IDE7IC8vIFNldCBmb3IgdGhlIGxheWVy
IHdoaWNoIGhhcyB0aGUgcGFnZSBzY2FsZSBhcHBsaWVkIHRvIGl0LgotCisgICAgYm9vbCBtX3No
b3dEZWJ1Z0JvcmRlciA6IDE7CisgICAgYm9vbCBtX3Nob3dSZXBhaW50Q291bnRlciA6IDE7Cisg
ICAgCiAgICAgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgbV9wYWludGluZ1BoYXNlOwogICAg
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBtX2NvbnRlbnRzT3JpZW50YXRpb247
IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5ZXIgY29udGVudHMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmlu
ZGV4IDA2ZmZiOGEyMWU4MGY0OTA1YmMxMWE2ZDczYjEyNDdkZWU4OTE5ZjQuLjhiNmJmZmQxOTcx
M2NhMmZjMjRkYTEwMjU4YTQ0YWJjNDJkZjE2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTgyLDkgKzgy
LDYgQEAgcHVibGljOgogICAgIC8vIFBhZ2Ugc2NhbGUgZmFjdG9yLgogICAgIHZpcnR1YWwgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCi0gICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0ID0gMDsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGE1
ODgzN2MzMjViZDdjYzZlMTVhOGU4ZGI1ZDBhMTM4NmQyODU0MGYuLmUzNmI1ZTcwN2NmOWQwNmJh
ZTVjMzFjOTZkZTgyOTY4MDllNjgxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjg2LDggKzI4Niw2
IEBAIEdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQq
IGNsaWVudCkKICAgICB9CiAKICAgICBtX2xheWVyID0gUGxhdGZvcm1DQUxheWVyOjpjcmVhdGUo
bGF5ZXJUeXBlLCB0aGlzKTsKLQotICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogICAgIG5v
dGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1NjYWxlQ2hhbmdlZCk7CiB9CiAKQEAgLTUy
MCw3ICs1MTgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TWFza3NUb0JvdW5kcyhib29s
IG1hc2tzVG9Cb3VuZHMpCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dE1hc2tzVG9Cb3VuZHMobWFza3NUb0JvdW5kcyk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFu
Z2VkKE1hc2tzVG9Cb3VuZHNDaGFuZ2VkKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQo
TWFza3NUb0JvdW5kc0NoYW5nZWQgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldERyYXdzQ29udGVudChib29sIGRyYXdzQ29udGVudCkKQEAg
LTUyOSw3ICs1MjcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RHJhd3NDb250ZW50KGJv
b2wgZHJhd3NDb250ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpz
ZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5n
ZWQoRHJhd3NDb250ZW50Q2hhbmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERy
YXdzQ29udGVudENoYW5nZWQgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9pZCBH
cmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVmlzaWJsZShib29sIGNvbnRlbnRzVmlzaWJsZSkK
QEAgLTEwNDQsNyArMTA0Miw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5
ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9yCiAgICAgaWYgKG1f
aXNQYWdlVGlsZUNhY2hlTGF5ZXIgJiYgcGxhdGZvcm1MYXllcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIAotICAgIHJldHVybiBzaG93UmVwYWludENvdW50ZXIoKTsKKyAgICByZXR1cm4g
aXNTaG93aW5nUmVwYWludENvdW50ZXIoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnBs
YXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBjbGlwKQpAQCAtMTE1MSw2ICsxMTQ5LDkgQEAgdm9pZCBHcmFwaGljc0xheWVy
Q0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhmbG9hdCBwYWdlU2NhbGVGYWN0
b3IsIGMKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBBY2NlbGVyYXRlc0RyYXdpbmdD
aGFuZ2VkKQogICAgICAgICB1cGRhdGVBY2NlbGVyYXRlc0RyYXdpbmcoKTsKIAorICAgIGlmICht
X3VuY29tbWl0dGVkQ2hhbmdlcyAmIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQpCisgICAgICAgIHVw
ZGF0ZURlYnVnQm9yZGVyKCk7CisKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDaGls
ZHJlbkNoYW5nZWQpIHsKICAgICAgICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7CiAgICAgICAgIC8v
IFN1YmxheWVycyBtYXkgc2V0IHRoaXMgZmxhZyBhZ2Fpbiwgc28gY2xlYXIgaXQgdG8gYXZvaWQg
YWx3YXlzIHVwZGF0aW5nIHN1YmxheWVycyBpbiBjb21taXRMYXllckNoYW5nZXNBZnRlclN1Ymxh
eWVycygpLgpAQCAtMTM0Myw4ICsxMzQ0LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZU1hc2tzVG9Cb3VuZHMoKQogICAgICAgICBmb3IgKExheWVyTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IGxheWVyQ2xvbmVNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAg
IGl0LT52YWx1ZS0+c2V0TWFza3NUb0JvdW5kcyhtX21hc2tzVG9Cb3VuZHMpOwogICAgIH0KLQot
ICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNWaXNpYmlsaXR5KCkKQEAgLTE1MjgsNyArMTUyNyw2IEBAIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudChmbG9hdCBwYWdlU2NhbGVGYWN0
b3IsIGNvbnN0IEZsb2F0CiAgICAgICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRDb250ZW50cygw
KTsKICAgICAgICAgfQogICAgIH0KLSAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAog
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFjY2VsZXJhdGVzRHJhd2luZygpCkBAIC0xNTM2
LDYgKzE1MzQsMTQgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFjY2VsZXJhdGVzRHJh
d2luZygpCiAgICAgbV9sYXllci0+c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKG1fYWNjZWxlcmF0ZXNE
cmF3aW5nKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKCkK
K3sKKyAgICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkKKyAgICAgICAgdXBkYXRlRGVidWdJ
bmRpY2F0b3JzKCk7CisgICAgZWxzZQorICAgICAgICBtX2xheWVyLT5zZXRCb3JkZXJXaWR0aCgw
KTsKK30KKwogRmxvYXRSZWN0IEdyYXBoaWNzTGF5ZXJDQTo6YWRqdXN0VGlsZWRMYXllclZpc2li
bGVSZWN0KFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZp
c2libGVSZWN0LCBjb25zdCBGbG9hdFNpemUmIG9sZFNpemUpIGNvbnN0CiB7CiAgICAgLy8gSWYg
dGhlIG9sZCB2aXNpYmxlIHJlY3QgaXMgZW1wdHksIHdlIGhhdmUgbm8gaW5mb3JtYXRpb24gYWJv
dXQgaG93IHRoZSB2aXNpYmxlIGFyZWEgaXMgY2hhbmdpbmcKQEAgLTI0OTgsNiArMjUwNCwyNCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IsIGNvbnN0IEZsb2F0UG9pbgogICAgICAgICBtX2xheWVyLT5zZXROZWVkc0Rpc3Bs
YXkoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFNob3dEZWJ1Z0JvcmRlcihib29s
IHNob3dCb3JkZXIpCit7CisgICAgaWYgKHNob3dCb3JkZXIgPT0gbV9zaG93RGVidWdCb3JkZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRl
cihzaG93Qm9yZGVyKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoRGVidWdJbmRpY2F0
b3JzQ2hhbmdlZCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTaG93UmVwYWludENv
dW50ZXIoYm9vbCBzaG93Q291bnRlcikKK3sKKyAgICBpZiAoc2hvd0NvdW50ZXIgPT0gbV9zaG93
UmVwYWludENvdW50ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dFNob3dSZXBhaW50Q291bnRlcihzaG93Q291bnRlcik7CisgICAgbm90ZUxheWVyUHJvcGVydHlD
aGFuZ2VkKERlYnVnSW5kaWNhdG9yc0NoYW5nZWQpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogeyAgICAKICAg
ICBpZiAoY29sb3IuaXNWYWxpZCgpKQpAQCAtMjYxMSwxMCArMjYzNSw5IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxv
YXQgLypwYWdlU2NhCiAgICAgICAgIHwgQmFja2dyb3VuZENvbG9yQ2hhbmdlZAogICAgICAgICB8
IENvbnRlbnRzU2NhbGVDaGFuZ2VkCiAgICAgICAgIHwgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdl
ZAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgfCBGaWx0ZXJzQ2hhbmdlZAotI2Vu
ZGlmCi0gICAgICAgIHwgT3BhY2l0eUNoYW5nZWQ7CisgICAgICAgIHwgT3BhY2l0eUNoYW5nZWQK
KyAgICAgICAgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkOwogICAgIAogI2lmbmRlZiBOREVCVUcK
ICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZzo6Zm9ybWF0KCIlc0NBTGF5ZXIoJXApIEdyYXBoaWNz
TGF5ZXIoJXApICIsIChtX2xheWVyLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZVdlYlRpbGVkTGF5ZXIpID8gIlRpbGVkICIgOiAiIiwgbV9sYXllci0+cGxhdGZvcm1M
YXllcigpLCB0aGlzKSArIG1fbmFtZTsKQEAgLTI2MjYsOCArMjY0OSw2IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxv
YXQgLypwYWdlU2NhCiAgICAgCiAgICAgLy8gbmVlZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3
IGl0c2VsZgogICAgIHNldE5lZWRzRGlzcGxheSgpOwotICAgIAotICAgIHVwZGF0ZURlYnVnSW5k
aWNhdG9ycygpOwogfQogCiBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3Jp
ZW50YXRpb24gR3JhcGhpY3NMYXllckNBOjpkZWZhdWx0Q29udGVudHNPcmllbnRhdGlvbigpIGNv
bnN0CkBAIC0yNjUxLDcgKzI2NzIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBDb250
ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciogY29udGVudHNMYXllcikKICAgICB9IGVsc2UKICAg
ICAgICAgY29udGVudHNMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwogCi0g
ICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRl
cigpKSB7CiAgICAgICAgIGNvbnRlbnRzTGF5ZXItPnNldEJvcmRlckNvbG9yKENvbG9yKDAsIDAs
IDEyOCwgMTgwKSk7CiAgICAgICAgIGNvbnRlbnRzTGF5ZXItPnNldEJvcmRlcldpZHRoKDEuMGYp
OwogICAgIH0KQEAgLTI4NDYsNyArMjg2Nyw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiBHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIoUGxhdGZvcm1DQUxheWVyICpsYXllciwKICAg
ICAgICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoQ29weSwgbGF5ZXIsIG5ld0xheWVyLmdldCgpKTsK
ICAgICB9CiAgICAgCi0gICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgIGlmIChpc1No
b3dpbmdEZWJ1Z0JvcmRlcigpKSB7CiAgICAgICAgIG5ld0xheWVyLT5zZXRCb3JkZXJDb2xvcihD
b2xvcigyNTUsIDEyMiwgMjUxKSk7CiAgICAgICAgIG5ld0xheWVyLT5zZXRCb3JkZXJXaWR0aCgy
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDAwY2E2MmU3NTI1OTdjYzQzOGY5MTFmOGYxYzlhOTNk
ZGY4ODQ3YzUuLjJkZWIyZTI4YzlkYmY0MWI3ZjFmNDJhYWY3ZTNhMTU2OWM3NDhhZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oCkBAIC0xMjEsNiArMTIxLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhh
c0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXI7IH0KICAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCkgT1ZFUlJJREU7CisKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJX
aWR0aCk7CiAKQEAgLTE1Miw3ICsxNTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSk7
CiAgICAgdmlydHVhbCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gcGxhdGZvcm1D
QUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGNvbnRlbnRzT3JpZW50
YXRpb24oKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRz
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNsaXApOwotICAgIHZpcnR1YWwgYm9v
bCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gc2hvd0Rl
YnVnQm9yZGVycygpOyB9CisgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dEZWJ1
Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpOyB9CiAgICAg
dmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNB
TGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRS
ZXBhaW50Q291bnQoKSB7IHJldHVybiBpbmNyZW1lbnRSZXBhaW50Q291bnQoKTsgfQogCkBAIC0z
MjYsNiArMzI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUxheWVyQW5pbWF0aW9ucygp
OwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNOZWVkc0Rpc3BsYXkoKTsKICAgICB2b2lkIHVwZGF0
ZUFjY2VsZXJhdGVzRHJhd2luZygpOworICAgIHZvaWQgdXBkYXRlRGVidWdCb3JkZXIoKTsKICAg
ICB2b2lkIHVwZGF0ZVZpc2libGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3Qp
OwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwaXhlbEFsaWdubWVudFNjYWxl
LCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlKTsKICAgICAKQEAgLTM3
Nyw5ICszODEsOCBAQCBwcml2YXRlOgogICAgICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDEg
PDwgMjMsCiAgICAgICAgIENvbnRlbnRzVmlzaWJpbGl0eUNoYW5nZWQgPSAxIDw8IDI0LAogICAg
ICAgICBWaXNpYmxlUmVjdENoYW5nZWQgPSAxIDw8IDI1LAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI2LAotI2VuZGlmCisgICAgICAgIERl
YnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxIDw8IDI3CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2ln
bmVkIExheWVyQ2hhbmdlRmxhZ3M7CiAgICAgdm9pZCBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQo
TGF5ZXJDaGFuZ2VGbGFncyBmbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmNwcAppbmRleCBkZjMzNWQ4MTAyZTEwZjVmMTIwMzAyN2Y4Mjg3ZGQ4NTAzNjYyMDFjLi5iODM1
ODc4ZTkyMDk3NDM2ZTk1ZTZhOGZmZjA0M2EzMzg4OGJmNmViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTg0Nyw3ICs4NDcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKFdlYkxheWVyKiBjb250ZW50c0xheWVyKQog
ICAgICAgICAvLyBzaGFkb3cgY29udGVudCB0aGF0IG11c3QgZGlzcGxheSBpbiBmcm9udCBvZiB0
aGUgdmlkZW8uCiAgICAgICAgIG1fbGF5ZXItPmxheWVyKCktPmluc2VydENoaWxkKG1fY29udGVu
dHNMYXllciwgMCk7CiAKLSAgICAgICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgICAg
ICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkgewogICAgICAgICAgICAgbV9jb250ZW50c0xh
eWVyLT5zZXREZWJ1Z0JvcmRlckNvbG9yKENvbG9yKDAsIDAsIDEyOCwgMTgwKS5yZ2IoKSk7CiAg
ICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldERlYnVnQm9yZGVyV2lkdGgoMSk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggMTFhNWQ1ODRmZjhhMzBlZjFi
ZDY4ZGU2NGE5OTkzNjBmZTgzZjljNi4uYWU0OGZhZjU5ZDZlYWQ1NTRmYzBiMzAyMTNiYjQyMTJk
ZjI0NTQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTEyOSw3ICsxMjksNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtZGlydHlS
ZWN0LngoKSwgLWRpcnR5UmVjdC55KCkpOwogICAgIGxheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJD
b250ZW50cygqY29udGV4dCwgZGlydHlSZWN0KTsKIAotICAgIGlmIChsYXllci0+c2hvd1JlcGFp
bnRDb3VudGVyKCkpIHsKKyAgICBpZiAobGF5ZXItPmlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkp
IHsKICAgICAgICAgbGF5ZXItPmluY3JlbWVudFJlcGFpbnRDb3VudCgpOwogICAgICAgICBkcmF3
UmVwYWludENvdW50ZXIoY29udGV4dCwgbGF5ZXIpOwogICAgIH0KQEAgLTEzOCw3ICsxMzgsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAgIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdT
dG9yZSogYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlclRpbGVkQmFja2lu
Z1N0b3JlKj4obV9iYWNraW5nU3RvcmUuZ2V0KCkpOwogICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRl
Q29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UuZ2V0KCksIG1fc2l6ZSwgZGlydHlSZWN0LCBC
aXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAKLSAgICBi
YWNraW5nU3RvcmUtPnNldFNob3dEZWJ1Z0JvcmRlcnMobGF5ZXItPnNob3dEZWJ1Z0JvcmRlcnMo
KSk7CisgICAgYmFja2luZ1N0b3JlLT5zZXRTaG93RGVidWdCb3JkZXJzKGxheWVyLT5pc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpKTsKICAgICBiYWNraW5nU3RvcmUtPnNldERlYnVnQm9yZGVyKG1fZGVi
dWdCb3JkZXJDb2xvciwgbV9kZWJ1Z0JvcmRlcldpZHRoKTsKIAogICAgIG1fc3RhdGUubmVlZHNE
aXNwbGF5ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IDU1NjkwOWU5ZDJiMGMzYTQ4YmY3NmNkNGE4N2Y2NmM3MjYzOGMx
ZGUuLjgyNjdiYzMxMGU3ZTRlZjNkMzY5OTdkZWY0YjhhMTgyOWMyOTJhOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yMDMsNiAr
MjAzLDMxIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjphZGp1c3RUaWxlQ2FjaGVDb3ZlcmFn
ZSgpCiAgICAgdGlsZWRCYWNraW5nKCktPnNldFRpbGVDb3ZlcmFnZSh0aWxlQ292ZXJhZ2UpOwog
fQogCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRGVidWdJbmRpY2F0b3JzKGJvb2wg
c2hvd0JvcmRlciwgYm9vbCBzaG93UmVwYWludENvdW50ZXIpCit7CisgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0JvcmRlcik7CisgICAgbV9ncmFwaGljc0xheWVy
LT5zZXRTaG93UmVwYWludENvdW50ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKKyAgICAKKyAgICBp
ZiAobV9hbmNlc3RvckNsaXBwaW5nTGF5ZXIpCisgICAgICAgIG1fYW5jZXN0b3JDbGlwcGluZ0xh
eWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0JvcmRlcik7CisKKyAgICBpZiAobV9mb3JlZ3Jv
dW5kTGF5ZXIpIHsKKyAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRl
cihzaG93Qm9yZGVyKTsKKyAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldFNob3dSZXBhaW50
Q291bnRlcihzaG93UmVwYWludENvdW50ZXIpOworICAgIH0KKworICAgIGlmIChtX21hc2tMYXll
cikgeworICAgICAgICBtX21hc2tMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIp
OworICAgICAgICBtX21hc2tMYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50
Q291bnRlcik7CisgICAgfQorCisgICAgaWYgKG1fc2Nyb2xsaW5nTGF5ZXIpCisgICAgICAgIG1f
c2Nyb2xsaW5nTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKKworICAgIGlm
IChtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIpCisgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNM
YXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworfQorCiB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6Y3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKQogewogICAgIFN0cmluZyBs
YXllck5hbWU7CkBAIC0xNTg2LDE2ICsxNjExLDYgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6
OmdldEN1cnJlbnRUcmFuc2Zvcm0oY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93RGVi
dWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBjb21w
b3NpdG9yKCkgPyBjb21wb3NpdG9yKCktPmNvbXBvc2l0b3JTaG93RGVidWdCb3JkZXJzKCkgOiBm
YWxzZTsKLX0KLQotYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnNob3dSZXBhaW50Q291bnRlcihj
b25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gY29tcG9zaXRvcigpID8g
Y29tcG9zaXRvcigpLT5jb21wb3NpdG9yU2hvd1JlcGFpbnRDb3VudGVyKCkgOiBmYWxzZTsKLX0K
LQogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0CiB7
CiAgICAgR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50ID0gY29tcG9zaXRvcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDIyZmI4ODkw
MTZlZGY1YjBjMWE5Y2I1YzI2MjE3MDdiNzdmMzk0NmQuLjM5YWJhZWFmMzZmZjRmYzc3MDI4OTU0
ZWU0MzAzYzEzNjAzNWE4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmgKQEAgLTE0MSw2ICsxNDEsOCBAQCBwdWJsaWM6CiAgICAgVGlsZWRCYWNr
aW5nKiB0aWxlZEJhY2tpbmcoKSBjb25zdDsKICAgICB2b2lkIGFkanVzdFRpbGVDYWNoZUNvdmVy
YWdlKCk7CiAgICAgCisgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoYm9vbCBzaG93Qm9y
ZGVyLCBib29sIHNob3dSZXBhaW50Q291bnRlcik7CisgICAgCiAgICAgLy8gR3JhcGhpY3NMYXll
ckNsaWVudCBpbnRlcmZhY2UKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZUNhY2hlKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHN0YXJ0VGlt
ZSkgT1ZFUlJJREU7CkBAIC0xNTQsOSArMTU2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDdXJyZW50VHJhbnNmb3JtKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIGNvbnN0IE9WRVJSSURFOwogCi0gICAg
dmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3Jh
cGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwotCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tp
bmdSZXBhaW50cygpIGNvbnN0IE9WRVJSSURFOwogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA2
YWEzODUxNWMxMzQ4YmE5YTMyM2NjODE0NTFkMjAxZWYwYjQwMmZjLi5kMDJlNWU0Njk5MjZhOGM1
NWZiYjA4MzZlNDg3NWYyZDk3YmY4YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTgzLDYgKzU4MywxMCBAQCBib29s
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyhSZW5kZXJMYXllciogbGF5ZXIs
IENvbXBvc2l0aW5nQ2hhbmdlUgogICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAg
ICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdGaXhlZE9iamVjdHNEaWRDaGFu
Z2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAgICAgfQorICAgIAorICAgIGlmIChsYXll
ci0+YmFja2luZygpKQorICAgICAgICBsYXllci0+YmFja2luZygpLT51cGRhdGVEZWJ1Z0luZGlj
YXRvcnMobV9zaG93RGVidWdCb3JkZXJzLCBtX3Nob3dSZXBhaW50Q291bnRlcik7CisKICAgICBy
ZXR1cm4gbGF5ZXJDaGFuZ2VkOwogfQogCkBAIC0yMDQ0LDIyICsyMDQ4LDYgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tzUmVwYWludHMp
CiAgICAgbV9pc1RyYWNraW5nUmVwYWludHMgPSB0cmFja3NSZXBhaW50czsKIH0KIAotYm9vbCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXll
ciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgaWYgKGxheWVyID09IG1fbGF5ZXJGb3JIb3Jpem9udGFs
U2Nyb2xsYmFyIHx8IGxheWVyID09IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhciB8fCBsYXll
ciA9PSBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyKQotICAgICAgICByZXR1cm4gbV9zaG93RGVidWdC
b3JkZXJzOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25z
dAotewotICAgIGlmIChsYXllciA9PSBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhciB8fCBs
YXllciA9PSBtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIgfHwgbGF5ZXIgPT0gbV9sYXllckZv
clNjcm9sbENvcm5lcikKLSAgICAgICAgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsKLQotICAg
IHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzVHJhY2tp
bmdSZXBhaW50cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmlu
ZGV4IGU1OGFhM2E2Y2NkMDM2YzhiYzA3ZWEwNmNkMjA2ZTNjNmM3ZTE1ZGEuLjgxYWFmNDE0MWRj
MzFhMTY4YmE2NjViMDI2ZjNiNmViN2NkNjczMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTIwMiwxMSArMjAyLDYgQEAgcHVi
bGljOgogCiAgICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyk7CiAKLSAg
ICAvLyBUaGVzZSBhcmUgbmFtZWQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggdGhlIGZ1bmN0aW9u
cyBpbiBHcmFwaGljc0xheWVyQ2xpZW50Ci0gICAgLy8gVGhlc2UgcmV0dXJuIHRoZSBhY3R1YWwg
aW50ZXJuYWwgdmFyaWFibGVzLgotICAgIGJvb2wgY29tcG9zaXRvclNob3dEZWJ1Z0JvcmRlcnMo
KSBjb25zdCB7IHJldHVybiBtX3Nob3dEZWJ1Z0JvcmRlcnM7IH0KLSAgICBib29sIGNvbXBvc2l0
b3JTaG93UmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRl
cjsgfQotCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QgT1ZFUlJJREU7CkBAIC0yMzksOSArMjM0LDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikg
T1ZFUlJJREUgeyBzY2hlZHVsZUxheWVyRmx1c2goKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwogCi0gICAgdmly
dHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciopIGNvbnN0IE9WRVJSSURFOwotCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdS
ZXBhaW50cygpIGNvbnN0IE9WRVJSSURFOwogICAgIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJVcGRh
dGVyQ2xpZW50IGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJPdmVybGF5X3AuaAppbmRleCA4NDZlNWNjN2E1ODYzOGVmMDczMmE0MWM3OGRiODkwMDdjMDMw
OTI4Li43NDJmZTBiYjFhMjk0N2JkMmEzNWM1YzRjZjA1ZDA1MTk1MmU0Y2I4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmgKQEAgLTE2Nyw4ICsxNjcsNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwg
Ym9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGNvbnRlbnRzVmlzaWJsZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY29udGVudFJlY3QpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Uu
Y3BwCmluZGV4IDc1NjkzMjBiOTgxZWEwNGU0MTJmZmY2NmQwMjllMDYxOWIyYzhlZjIuLmZkNDli
NDhkZTI3Yjc2MTU3NmMwMzdkZjk5NmU3M2E0YWU3ZDJiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNTczMSwxNiArNTczMSw2IEBAIHZvaWQgV2ViUGFn
ZVByaXZhdGU6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAg
ICAgc2NoZWR1bGVSb290TGF5ZXJDb21taXQoKTsKIH0KLQotYm9vbCBXZWJQYWdlUHJpdmF0ZTo6
c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgV2Vi
UGFnZVByaXZhdGU6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIo
KTsKLX0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgV2Vi
UGFnZVByaXZhdGU6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IGRlZTA4NDk1MjEwY2FhMWU4MzNh
NGNkNmVlZDIzNmJhMWExMjQyYzQuLmY0YjA5NDc0MmZiNGNkNDc3NWMwZGYyY2E4OTg1ZWM1NWMw
YmJjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9w
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtNDAx
LDggKzQwMSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCkgeyB9
Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogCiAgICAgLy8gV2ViS2l0IHRocmVh
ZCwgcGx1bWJlZCB0aHJvdWdoIGZyb20gQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS4KICAgICB2b2lk
IHNldFJvb3RMYXllcldlYktpdFRocmVhZChXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkxheWVy
V2ViS2l0VGhyZWFkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCmluZGV4IDQ1NDcyYWFm
ZDk0YjAzODdjY2U2ZjJiMTgyZWIzY2Q2OTFhOTFkZGEuLjc3YjJjNzVhYzdkNzFkYTYxMjZmOGM0
ODBhODIxY2VlYzkyMTJmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCkBAIC0xNDgs
MTYgKzE0OCw2IEBAIHZvaWQgRGVmYXVsdFRhcEhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjCiAgICAgYy5yZXN0b3JlKCk7CiB9
CiAKLWJvb2wgRGVmYXVsdFRhcEhpZ2hsaWdodDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFw
aGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zaG93RGVidWdC
b3JkZXJzKGxheWVyKTsKLX0KLQotYm9vbCBEZWZhdWx0VGFwSGlnaGxpZ2h0OjpzaG93UmVwYWlu
dENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fcGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKLX0KLQogYm9vbCBEZWZhdWx0VGFw
SGlnaGxpZ2h0Ojpjb250ZW50c1Zpc2libGUoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IElu
dFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdAogewogICAgIC8vIFRoaXMgbGF5ZXIgaXMgdHlwaWNh
bGx5IHNtYWxsIGVub3VnaCB0aGF0IHdlIGNhbiBhZmZvcmQgdG8gY2FjaGUgYWxsIHRpbGVzIGFu
ZCBuZXZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oCmluZGV4IDA2YzU1OTA1Nzk1MjA5M2ZhZDhj
YTlhNWQxOGYwYTc3MjA2ZWZjYWUuLjkwYWY5NGNhYWI5MWFlNDllMjQwNDY5YzcyNTYyZjFhYzM5
MWRjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0RlZmF1bHRUYXBIaWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKQEAgLTU3LDggKzU3LDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1
YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hv
d0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAg
dmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNvbnRlbnRzVmlzaWJsZShjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY29udGVudFJlY3Qp
IGNvbnN0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
Y3BwCmluZGV4IDA4MTVkZDk3YmNiMjk1ZGRlYjA0Yjg2YzIzMjBhMzY1Nzc1NWQzZTAuLjUyYzlj
NGQyZTg2MjlmNjg3YjQ0OTc1YjkxZDI1MGJlNmM0ODAzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0
b3JPdmVybGF5QmxhY2tCZXJyeS5jcHAKQEAgLTU2LDE1ICs1Niw2IEBAIHZvaWQgSW5zcGVjdG9y
T3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2Vi
Q29yZTo6R3JhCiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgSW5zcGVjdG9yT3Zl
cmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXll
cikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVy
KTsKLX0KLQotYm9vbCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2Vi
UGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKLX0KICNlbmRpZgogCiBJbnNwZWN0b3JP
dmVybGF5Ojp+SW5zcGVjdG9yT3ZlcmxheSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlC
bGFja0JlcnJ5LmgKaW5kZXggOTExOTdjYzBjOWNiODNjMzZjMWMyZDQ1N2M2MjYxNDUyZDNkMzEw
Ny4uNmRmNGJhNjJhZjg3YmY3Nzk1NGMzNGU1MWU5Y2UwYTk4ZmQ3NTk5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJs
YWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9J
bnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5oCkBAIC01NCw4ICs1NCw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1
Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1
YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0OwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwCmluZGV4IGUw
NmY3ZGYxYzExMGNmM2E5ZmI5NzMzNTZiYmMwYmM1YTNlNjhiOTUuLmQzNTJiMTc3YTQzOTBjYzE0
OTE4NmFjYmY5YmRhNGJjNGI0M2I0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwCkBAIC0xMTcs
MTYgKzExNyw2IEBAIHZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjLCBHCiAgICAgYy5yZXN0b3JlKCk7CiB9
CiAKLWJvb2wgU2VsZWN0aW9uT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGlj
c0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zaG93RGVidWdCb3Jk
ZXJzKGxheWVyKTsKLX0KLQotYm9vbCBTZWxlY3Rpb25PdmVybGF5OjpzaG93UmVwYWludENvdW50
ZXIoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFn
ZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiB9IC8vIG5hbWVzcGFjZSBCbGFja0JlcnJ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaAppbmRleCA1NzYy
YjVhODljMWQ0YjY1ZmM3ODQ5NWUxNGU2YTA2N2QxZDA2MDRiLi5kMjcwNGRjM2Y3YjcyMDFlZWMy
NzRlM2ViMTc0M2E4MGY2YmVhMzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCkBAIC01Miw4ICs1Miw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBh
aW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVh
bCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNv
bnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFNlbGVjdGlvbk92ZXJsYXko
V2ViUGFnZVByaXZhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCmluZGV4IDIzZGNkZGU5Yjc5YjQ5ODk1YTJm
MjIxYjdiYTUxMDBhMzZjYzNhMmYuLmY1YjZiNjAzNjhmNmFjNmJkYTBiNWNjMjQ1Nzc2MmRkYTZl
OGNiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtMTkxLDE2ICsxOTEsNiBAQCB2b2lkIE5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdDo6c2V0U2hvd0RlYnVnQm9yZGVycyhib29sIHNob3dEZWJ1Z0JvcmRl
cnMpCiAgICAgbV9ncmFwaGljc0xheWVyLT51cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAot
Ym9vbCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hvd0RlYnVnQm9y
ZGVyczsKLX0KLQotYm9vbCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNob3dSZXBhaW50Q291
bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KIGJvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojppc1RyYWNraW5nUmVw
YWludHMoKSBjb25zdAogewogICAgIHJldHVybiBtX3dlYlZpZXctPmlzVHJhY2tpbmdSZXBhaW50
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuaAppbmRleCAyYjZkZGMxYWFiMDAyNjE1ZTJiOTFmNzg5YTY2NWQ0M2YyYjVi
MDgxLi5iMmQxMDUwMzk4NjRkNDljMmM3ODk1NGZmMTQ4ZWEzZmRkY2NhN2Q5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qu
aApAQCAtNzEsOCArNzEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmlt
YXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJl
Y3QpOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVy
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Q7CiAKICAgICBib29sIGhhdmVTY3JvbGxMYXllcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCmluZGV4IGExNmEw
MTA3N2ViMzVhYmM4MjcwODc3OTkyOTUzNjU0OWM0YjhmNjMuLmM5NTY4N2FmNjNkNWRjYjgwN2Qy
ZjdmNWZjMDQ3YmU0NzQzOTJmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1BhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdl
T3ZlcmxheS5jcHAKQEAgLTk0LDE2ICs5NCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1f
d2ViVmlld0ltcGwtPnBhZ2VTY2FsZUZhY3RvcigpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVn
Qm9yZGVycygpOwotICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV93ZWJW
aWV3SW1wbC0+cGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLSAgICB9
Ci0KIHByaXZhdGU6CiAgICAgT3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBsKFdlYlZpZXdJ
bXBsKiB3ZWJWaWV3SW1wbCwgV2ViUGFnZU92ZXJsYXkqIG92ZXJsYXkpCiAgICAgICAgIDogbV9v
dmVybGF5KG92ZXJsYXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCAwY2U4NDI1N2I1YmE3YmI4
MzAxZWU3ZWQ2MTM3YmI1ZGIwNDQ1ZmU3Li5iMDRiM2E5NDUzYTFmZTJiYjQ4OWM3NTBhNTBhMDE2
OTk5N2E5MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTUyLDggKzUyLDYgQEAgY2xhc3Mg
TW9ja0dyYXBoaWNzTGF5ZXJDbGllbnQgOiBwdWJsaWMgR3JhcGhpY3NMYXllckNsaWVudCB7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXll
ciosIGRvdWJsZSB0aW1lKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1
c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4
dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIE9W
RVJSSURFIHsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwg
Ym9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDI7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4
IGJmYjAzZWQzMDRmNDk4YzgzZDA4ZWZkNzE1M2I2MWFhNjJmZWU1YjUuLjc0YzJmMTY2OWE0NTQz
MjRiNWUzNGY5ZmYwNTMxZDgzNDBhNDhjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtNDAsOCArNDAs
NiBAQCBjbGFzcyBNb2NrR3JhcGhpY3NMYXllckNsaWVudCA6IHB1YmxpYyBHcmFwaGljc0xheWVy
Q2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBH
cmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlG
bHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkgeyB9Ci0gICAg
dmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihj
b25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIGNsYXNz
IFRlc3RJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQu
aAppbmRleCA2NTcyZWE1ZWFkMjgxM2M3NWJmNTdjZTE0MzkxYzE5ZDBlYTRjMTU4Li4wMjU5N2Qx
NmQzZmE1NDI5ZDZjYTMzNjEyYjYzYWMwZGJjN2I5M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0LmgKQEAgLTYwLDggKzYwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3Vi
bGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdFRvUGFpbnQpOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAg
IHZvaWQgaW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
Q2Fpcm8uY3BwCmluZGV4IDM3ODkwMzQyNjMwZWM1MGRmNGZiODlhMzA1ZDE3NGUxMDk1NzViOGMu
LmNjNjk0MmVlODgzOTU1ZjMyNzVkYTM2YTlhNjAxZjU0Zjg5YzY2MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fpcm8uY3BwCkBAIC0xNjksMTYgKzE2OSw2IEBAIHZv
aWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3Jh
cGhpY3NMYXllciosIEdyYXBoaWNzCiAgICAgY29weVJlY3RGcm9tQ2Fpcm9TdXJmYWNlVG9Db250
ZXh0KG1fd2ViVmlldy0+cHJpdi0+YmFja2luZ1N0b3JlLT5jYWlyb1N1cmZhY2UoKSwgY3IsIElu
dFNpemUoKSwgcmVjdFRvUGFpbnQpOwogfQogCi1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAg
IHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9DQUlSTykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwCmluZGV4IDg3
Y2ViNmVhMDI0YWI0MGY4YTQ4M2E4NjEzMzcyMzg3NWVlMzZmMWUuLjlmY2FlNTI1N2E0MTVhOTM0
YmM0MmM1YzM2YmMwOGZlNTZlYjU5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHRDbHV0dGVyLmNwcApAQCAtMTY1LDE4ICsxNjUsNiBAQCB2b2lkIEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1ib29sIEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBjb25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVy
biBmYWxzZTsKLX0KLQotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFVTRShDTFVUVEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAppbmRl
eCBlZmMyMDYxOTM0NGViMjVjMjg1NDZiZWQyZGRkN2M3NGY0NDVlYWJmLi5kMTMwYTNmYjdiM2Ix
ODkwNmFlYTlkZjg5ODkzNGIxYTZmZmFmMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dEdMLmNwcApAQCAtMzgzLDE2ICszODMsNiBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
cwogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCi1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAot
ewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKaW5kZXggM2ExYjc0ZTIxMzUxZmFkYTZkNDFhY2RmODlmMjU0YTgz
YWFjYjY4Ny4uZGQ3MDA4ZWIzYTRhN2RjNjgwZGQyZjBmMjZmODcxODAwYWRjMjFlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKQEAgLTY2NDUsMTYgKzY2NDUsNiBAQCB2b2lkIFdlYlZpZXc6OnBhaW50
Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
R3JhcAogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCi1ib29sIFdlYlZpZXc6OnNob3dEZWJ1
Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFn
ZS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIFdlYlZpZXc6OnNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KLQogdm9pZCBX
ZWJWaWV3OjpmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlcygpCiB7CiAgICAgRnJhbWUq
IGNvcmVGcmFtZSA9IGNvcmUobV9tYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IDk4ZmNi
YjNlMWJkM2JiNTI2NTliMGM1ZGFkODZjZDIyMTk1MjNkZTAuLmM5MzczNDYyZmVmMjg0MWU1Nzdj
MDYwOWQwMzgyZjFiNzM2MDdiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTEwMjAsOCArMTAyMCw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwg
Ym9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25z
dDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAgIC8vIENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50CiAg
ICAgdmlydHVhbCB2b2lkIGZsdXNoUGVuZGluZ0dyYXBoaWNzTGF5ZXJDaGFuZ2VzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCBkZGVhMzFkN2JlYmEzY2ExOThiMzgyNDJk
ODYwM2FlNzBlNDZkNmEzLi44NTk2MDIyOTYyNDFlMDE0YzZhNzJmODY3MjY5YTZkYjRlMTZjY2Vh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTEwOCw4ICsxMDgsNiBAQCBw
cml2YXRlOgogICAgIC8vIFJlaW1wbGVtZW50YXRpb25zIGZyb20gV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNsaWVudC4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgeyB9Ci0g
ICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBh
aW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgeyB9CiAgICAgdm9pZCB1cGRh
dGVWaWV3cG9ydCgpOwogICAgIHZvaWQgZGlzcGF0Y2hPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDllYjM3OGU1ZGEzMzFmYzhjOTFjNTJhNDQ5OWI2YTU5ZDRl
ZmYyYWMuLjBkZGZjZWRjZDBlYzBhNmUzNmRlNTJlNzQxMjdhZTFkOWRmZGVhYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAg
LTU3OCwxNiArNTc4LDYgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0wKICAgICB9CiB9CiAKLWJv
b2wgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2Uo
KS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIExheWVyVHJlZUNv
b3JkaW5hdG9yOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3Mo
KS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0KIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4g
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNs
aWVudCogY2xpZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKGNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggZDcyNWFmNjk3YTg1M2RlYzkxZmM2ODk1OTJhMjVkMzA5
NjQ3NzFmNS4uY2FjYjY4ZWFhZTViOTc5YTE1NWI3MDU2NGVkYzE4MmVlM2RhMzA5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC0x
MTIsOCArMTEyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAKICAgICAvLyBHcmFwaGljc0xheWVy
RmFjdG9yeQogICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBj
cmVhdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQqKSBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXll
clRyZWVIb3N0Q0EuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xh
eWVyVHJlZUhvc3RDQS5jcHAKaW5kZXggMDg3MmY0MzU1MGU3NjJmZGY5NmVmOGM4MjI0OTJlMzQ1
NjMzM2ZjZS4uZGJhNTVjMjEyMjkzZDY1MmU4NmE2YmJkYTE5MGJjODA1NjgxOWUxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RD
QS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJl
ZUhvc3RDQS5jcHAKQEAgLTIwMywxNiArMjAzLDYgQEAgdm9pZCBMYXllclRyZWVIb3N0Q0E6OnBh
aW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLWJvb2wgTGF5ZXJUcmVlSG9zdENBOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdl
KCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKLX0KLQotYm9vbCBMYXllclRyZWVI
b3N0Q0E6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsK
LSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWlu
dENvdW50ZXIoKTsKLX0KLQogZmxvYXQgTGF5ZXJUcmVlSG9zdENBOjpkZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+ZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9jYS9MYXllclRyZWVIb3N0Q0EuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9jYS9MYXllclRyZWVIb3N0Q0EuaAppbmRleCA5Y2I4Y2E2YTU0ZmMzODZkMmJlM2M4OTI5MjQ4
Y2ZiZTVlMDJjNjVmLi4yMWIxM2RhMWMyNDkyZTNkM2ZlNDRhYjg4ODRkNjlmZWZiMWNhMGI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVl
SG9zdENBLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVy
VHJlZUhvc3RDQS5oCkBAIC03Niw4ICs3Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRv
dWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVw
YWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZp
cnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggYWYyYWU4OWJmYTI5MTU1Y2VmYTYz
MmRhMjJjN2U2YmYzYWVhYjVjNi4uMDdmZTEyODU1YTdkYTgxOWE4MjMxZTA5ODU5ZGJlYTIzMGUw
ZTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9M
YXllclRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC0yNTgsMTYgKzI1OCw2IEBAIHZvaWQgTGF5
ZXJUcmVlSG9zdEd0azo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyLCBHcmFwaGljCiAgICAgfQogfQogCi1ib29sIExheWVyVHJlZUhvc3RHdGs6OnNob3dE
ZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
d2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQot
Ci1ib29sIExheWVyVHJlZUhvc3RHdGs6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KLQogZ2Jvb2xlYW4gTGF5ZXJUcmVlSG9z
dEd0azo6bGF5ZXJGbHVzaFRpbWVyRmlyZWRDYWxsYmFjayhMYXllclRyZWVIb3N0R3RrKiBsYXll
clRyZWVIb3N0KQogewogICAgIGxheWVyVHJlZUhvc3QtPmxheWVyRmx1c2hUaW1lckZpcmVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVy
VHJlZUhvc3RHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5oCmluZGV4IDYxYjlmYTY3MTU4MzM2YTM0NjNjZGMwY2Y3Y2M4OTgzN2Uw
YjExMjQuLjg0MGFkYTgxM2E2NzBkNjBlZWJiOGU1YjQxMzA4MmY2ODZmNGQwOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0
ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVl
SG9zdEd0ay5oCkBAIC03Nyw4ICs3Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJs
ZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBjbGlwUmVjdCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWlu
dENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGNvbnN0IHsgfQogCiAgICAgdm9pZCBjcmVhdGVQYWdlT3ZlcmxheUxheWVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggZjUwNDhhOTg1ZWU1
ODdiYjcyYjNiMDBjYjUyOTQ3YmNjOGYzZGZhYy4uN2Q1YjNiZTk2NjIwNGI4MzEyZjllNWVkNjY1
ODdkNjkyOTgxMWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
aApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmlt
YXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENv
bnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgY2xpcFJlY3QpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVi
dWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpp
bmRleCBmY2Q3MmNhYzkyYTg3ZDg0NGJmYzg4MTdjYzAxZjZkZjRhYjcxNzVmLi5jZjVkMjNlMDEz
Yjk4NGNiN2JjZDkzMWRhMzIzZTg3YzQ3ZTYyZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTI3MywxNiArMjczLDYgQEAgdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0wKICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShncmFwaGljc0NvbnRleHQs
IGNsaXBSZWN0KTsKIH0KIAotYm9vbCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2hv
d0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci19
Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNob3dSZXBhaW50Q291bnRl
cihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5j
b3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KLQogZmxvYXQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5kZXZpY2VTY2FsZUZhY3Rvcigp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172204</attachid>
            <date>2012-11-02 21:06:13 -0700</date>
            <delta_ts>2012-11-02 21:38:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101136-20121102210431.patch</filename>
            <type>text/plain</type>
            <size>56591</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdkZGZkMDc5NTE0ZTEx
Njg1ZTFiODU1YzllNGM0MzAxZjIwOGUyYy4uMTY5MmNmMDFkMTc1Y2ZlYTMxNTdmZTlkOWEyMzhj
MjgxNDEwM2U0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBi
b3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NMYXll
cnMgZGVjaWRlZCB3aGV0aGVyIHRvIHNob3cgbGF5ZXIgYm9yZGVycyBiYXNlZAorICAgICAgICBv
biBhIGNhbGxiYWNrIHRocm91Z2ggdGhlIEdyYXBoaWNzTGF5ZXJDbGllbnQuIFRoaXMgbWFkZSBp
dAorICAgICAgICBoYXJkIHRvIG1hbmFnZSBzdGF0ZSwgcmVzdWx0aW5nIGluIGEgZmFpbHVyZSB0
byBjbGVhbmx5CisgICAgICAgIGhpZGUgbGF5ZXJzIHdoZW4gdG9nZ2xlZCBvZmYgdmlhIHRoZSBw
cmVmZXJlbmNlLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgbGF5ZXIgYm9yZGVyIGFu
ZCByZXBhaW50IGNvdW50ZXIgdmlzaWJpbGl0eSB0byBiZSBiaXRzCisgICAgICAgIHN0b3JlZCBv
biBHcmFwaGljc0xheWVyIGp1c3QgbGlrZSBvdGhlciBwcm9wZXJ0aWVzLCB3aXRoIGdldHRlcnMK
KyAgICAgICAgYW5kIHNldHRlcnMuIFJlbmRlckxheWVyQmFja2luZyBub3cgdXBkYXRlcyB0aGVz
ZSBkZWJ1ZworICAgICAgICBpbmRpY2F0b3JzIHdoZW4gd2UgdXBkYXRlIG90aGVyIGNvbXBvc2l0
aW5nIGxheWVyIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBJbiBHcmFwaGljc0xheWVy
Q0EsIGF2b2lkIGNhbGxpbmcgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCkgZXhwbGljaXRseQorICAg
ICAgICBpbiBzZXZlcmFsIHBsYWNlcyBieSBzZXR0aW5nIHRoZSBjaGFuZ2UgZmxhZyBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkCisgICAgICAgIGZvciBwcm9wZXJ0aWVzIHdob3NlIHZhbHVlcyBhZmZl
Y3QgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGRlYnVnIGJvcmRlci4KKworICAgICAgICBSZW1vdmVk
IHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAor
ICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKSB3aGljaCBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVk
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmlzU2hvd2luZ0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjppc1Nob3dpbmdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpyZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6aW5jcmVtZW50UmVwYWludENvdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
R3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0
TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldERy
YXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3JhcGhp
Y3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyU2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKwogMjAx
Mi0xMS0wMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMzM3NS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IGY4YWQzZjhmN2QyNjc4OTZlNTc3ZTZiZmQ3ZTc3M2Y0MTU5ZjlmOWMu
LjQ2NjlkY2M5OTExOWIxOWE2NzI1OTIxMmM1ZjE3MmY2ZGJjNmE1ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJz
IHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGlj
c0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93
UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAg
ICAgKFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkKToKKyAgICAgICAgKiBBcGkvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKiBXZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRUYXBIaWdobGln
aHQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
Y3BwOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
aDoKKyAgICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQv
U2VsZWN0aW9uT3ZlcmxheS5jcHA6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25P
dmVybGF5Lmg6CisgICAgICAgIChTZWxlY3Rpb25PdmVybGF5KToKKwogMjAxMi0xMS0wMiAgTmlt
YSBHaGFuYXZhdGlhbiAgPG5naGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBGaXggY29tcGlsZS10aW1lIHdhcm5pbmcgb2YgYSBwb3NzaWJsZSBlbXB0eS1ib2R5IGlm
IHN0YXRlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNzdkYjJiNmUwNDg4Yzgx
ZTI0ZDYzN2Q4NTMwYmU1N2QzYWFmN2ZiLi45MjE5NTg5OGUzMmI2YzY4N2FjYjU1MTQ2YTI1YTE1
ZmE1M2EzZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9u
IHN3aXRjaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVy
cygpIGFuZAorICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIHNyYy9O
b25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuaDoKKyAgICAgICAgKE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAg
ICAgICogc3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVy
Q2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0
LmNwcDoKKwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIFBsdWdpbkluYWN0aXZlIHBsdWctaW4gdW5hdmFpbGFiaWxpdHkg
cmVhc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTA1ODY0NWUwZjczZGExZTNkMGI5N2ZkYTI2ODBh
YmRjZDlmYjRjNS4uYjJkMTE1NzZiODljYWNiYjhhYTRlNWNiMWYxZGJkZDZiZGNlYjkzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRv
IGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xh
eWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVw
YWludENvdW50ZXIoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Lmg6CisgICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRDYWlyby5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRDbHV0dGVyLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKwogMjAxMi0xMS0wMiAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gU291cFBhc3N3b3JkTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDRmYTZlOTMy
YWI1Nzk3NWZiYjc2ZDZkYzIyODdlNWI4NzRlZTJmYmEuLjEzMjdkYzZmNTYwZTA0NzAxZDAwMDhk
ZWY4MTA2YzA0ZjQ1ZTRlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0xMS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBGaXggbGF5ZXIgYm9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBz
d2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMo
KSBhbmQKKyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTItMTAtMjkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmc6OmNyZWF0ZUNGU3RyaW5n
IHNob3VsZCByZXR1cm4gYSBSZXRhaW5QdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3ZGM4Zjc4Y2I1OWM0Yjdh
ZTY1ODVlMjIwMTYxNjg4MmRiMDNlNzlhLi43MjBmM2RkMTg1ZTk0OWY3NzlkM2ZhNDMzNjNiYTM5
NGEyMjAyY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTEtMDIgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGxheWVyIGJv
cmRlcnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlbW92
ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQK
KyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisgICAgICAgIAorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oOgorICAgICAg
ICAoTGF5ZXJUcmVlSG9zdENBKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5oOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdEd0ayk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgor
ICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisKIDIw
MTItMTEtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBWZXJ5IHNwZWN1bGF0aXZlIEFyZ3VtZW50RGVjb2RlciBjcmFzaCBmaXgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMGRi
MjQ5OTkyMGMwOTEzYjY0NDFmMjE4YWI5MTg3NmQ0MTRlMTAzNS4uZGQzYjdhOWRmMmYwNDRkZjY1
YzRhNDFiMDY3Njg0OTg5OGUzYjUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTg5LDYgKzg5LDggQEAgR3JhcGhpY3NM
YXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBt
X2FjY2VsZXJhdGVzRHJhd2luZyhmYWxzZSkKICAgICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1l
bnQoZmFsc2UpCiAgICAgLCBtX2FwcGxpZXNQYWdlU2NhbGUoZmFsc2UpCisgICAgLCBtX3Nob3dE
ZWJ1Z0JvcmRlcihmYWxzZSkKKyAgICAsIG1fc2hvd1JlcGFpbnRDb3VudGVyKGZhbHNlKQogICAg
ICwgbV9wYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludEFsbFdpdGhPdmVyZmxvd0NsaXAp
CiAgICAgLCBtX2NvbnRlbnRzT3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERv
d24pCiAgICAgLCBtX3BhcmVudCgwKQpAQCAtMzc0LDcgKzM3Niw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllcjo6Z2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBjb25z
dAogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycygpCiB7Ci0gICAg
aWYgKCFHcmFwaGljc0xheWVyOjpzaG93RGVidWdCb3JkZXJzKCkpCisgICAgaWYgKCFpc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpKQogICAgICAgICByZXR1cm47CiAKICAgICBDb2xvciBib3JkZXJDb2xv
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCBlOTM3Y2E1ZDgzMzUyN2EyN2U2N2QxNjkxODA4ZDIyMmFlMjIyMmIzLi5lMmM4MmJh
MWJiODAzZjU2ZDUxYWM2Zjk5ZjUxZTBjNTAyNjcxYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zNTIsMjQgKzM1MiwyNiBA
QCBwdWJsaWM6CiAgICAgLy8gRm9yIGhvc3RpbmcgdGhpcyBHcmFwaGljc0xheWVyIGluIGEgbmF0
aXZlIGxheWVyIGhpZXJhcmNoeS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgCi0gICAgdm9pZCBkdW1wTGF5ZXIoVGV4
dFN0cmVhbSYsIGludCBpbmRlbnQgPSAwLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExheWVy
VHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdDsKLQotICAgIGludCByZXBhaW50Q291bnQo
KSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRDb3VudDsgfQotICAgIGludCBpbmNyZW1lbnRSZXBh
aW50Q291bnQoKSB7IHJldHVybiArK21fcmVwYWludENvdW50OyB9Ci0KICAgICBlbnVtIENvbXBv
c2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiB7IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BE
b3duLCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzQm90dG9tVXAgfTsKIAogICAgIC8vIEZsaXBwZWRu
ZXNzIG9mIHRoZSBjb250ZW50cyBvZiB0aGlzIGxheWVyLiBEb2VzIG5vdCBhZmZlY3Qgc3VibGF5
ZXIgZ2VvbWV0cnkuCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzT3JpZW50YXRpb24oQ29t
cG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fY29udGVudHNP
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09y
aWVudGF0aW9uIGNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRz
T3JpZW50YXRpb247IH0KIAotICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnNob3dEZWJ1Z0JvcmRlcnModGhpcykgOiBmYWxzZTsg
fQotICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQg
PyBtX2NsaWVudC0+c2hvd1JlcGFpbnRDb3VudGVyKHRoaXMpIDogZmFsc2U7IH0KLSAgICAKLSAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwotICAgIAorICAgIHZvaWQgZHVtcExheWVy
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50ID0gMCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgPSBM
YXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wgc2hvdykgeyBtX3Nob3dEZWJ1Z0JvcmRlciA9IHNob3c7
IH0KKyAgICBib29sIGlzU2hvd2luZ0RlYnVnQm9yZGVyKCkgY29uc3QgeyByZXR1cm4gbV9zaG93
RGVidWdCb3JkZXI7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIo
Ym9vbCBzaG93KSB7IG1fc2hvd1JlcGFpbnRDb3VudGVyID0gc2hvdzsgfQorICAgIGJvb2wgaXNT
aG93aW5nUmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRl
cjsgfQorCisgICAgaW50IHJlcGFpbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENv
dW50OyB9CisgICAgaW50IGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgcmV0dXJuICsrbV9yZXBh
aW50Q291bnQ7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBD
b2xvciYsIGZsb2F0IC8qYm9yZGVyV2lkdGgqLykgeyB9CisKICAgICAvLyB6LXBvc2l0aW9uIGlz
IHRoZSB6LWVxdWl2YWxlbnQgb2YgcG9zaXRpb24oKS4gSXQncyBvbmx5IHVzZWQgZm9yIGRlYnVn
Z2luZyBwdXJwb3Nlcy4KICAgICB2aXJ0dWFsIGZsb2F0IHpQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1felBvc2l0aW9uOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFpQb3NpdGlvbihmbG9hdCk7
CkBAIC00MTYsNiArNDE4LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldEdyYXBoaWNz
TGF5ZXJGYWN0b3J5KEdyYXBoaWNzTGF5ZXJGYWN0b3J5Q2FsbGJhY2spOwogI2VuZGlmCiAKKyAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hv
dWxkIGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxs
IHdpbGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKTsKQEAgLTQ4Niw3ICs0OTAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjY2Vs
ZXJhdGVzRHJhd2luZyA6IDE7CiAgICAgYm9vbCBtX21haW50YWluc1BpeGVsQWxpZ25tZW50IDog
MTsKICAgICBib29sIG1fYXBwbGllc1BhZ2VTY2FsZSA6IDE7IC8vIFNldCBmb3IgdGhlIGxheWVy
IHdoaWNoIGhhcyB0aGUgcGFnZSBzY2FsZSBhcHBsaWVkIHRvIGl0LgotCisgICAgYm9vbCBtX3No
b3dEZWJ1Z0JvcmRlciA6IDE7CisgICAgYm9vbCBtX3Nob3dSZXBhaW50Q291bnRlciA6IDE7Cisg
ICAgCiAgICAgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgbV9wYWludGluZ1BoYXNlOwogICAg
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBtX2NvbnRlbnRzT3JpZW50YXRpb247
IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5ZXIgY29udGVudHMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmlu
ZGV4IDA2ZmZiOGEyMWU4MGY0OTA1YmMxMWE2ZDczYjEyNDdkZWU4OTE5ZjQuLjhiNmJmZmQxOTcx
M2NhMmZjMjRkYTEwMjU4YTQ0YWJjNDJkZjE2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTgyLDkgKzgy
LDYgQEAgcHVibGljOgogICAgIC8vIFBhZ2Ugc2NhbGUgZmFjdG9yLgogICAgIHZpcnR1YWwgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCi0gICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0ID0gMDsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGE1
ODgzN2MzMjViZDdjYzZlMTVhOGU4ZGI1ZDBhMTM4NmQyODU0MGYuLmUzNmI1ZTcwN2NmOWQwNmJh
ZTVjMzFjOTZkZTgyOTY4MDllNjgxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjg2LDggKzI4Niw2
IEBAIEdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQq
IGNsaWVudCkKICAgICB9CiAKICAgICBtX2xheWVyID0gUGxhdGZvcm1DQUxheWVyOjpjcmVhdGUo
bGF5ZXJUeXBlLCB0aGlzKTsKLQotICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogICAgIG5v
dGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1NjYWxlQ2hhbmdlZCk7CiB9CiAKQEAgLTUy
MCw3ICs1MTgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TWFza3NUb0JvdW5kcyhib29s
IG1hc2tzVG9Cb3VuZHMpCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dE1hc2tzVG9Cb3VuZHMobWFza3NUb0JvdW5kcyk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFu
Z2VkKE1hc2tzVG9Cb3VuZHNDaGFuZ2VkKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQo
TWFza3NUb0JvdW5kc0NoYW5nZWQgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldERyYXdzQ29udGVudChib29sIGRyYXdzQ29udGVudCkKQEAg
LTUyOSw3ICs1MjcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RHJhd3NDb250ZW50KGJv
b2wgZHJhd3NDb250ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpz
ZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5n
ZWQoRHJhd3NDb250ZW50Q2hhbmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERy
YXdzQ29udGVudENoYW5nZWQgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9pZCBH
cmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVmlzaWJsZShib29sIGNvbnRlbnRzVmlzaWJsZSkK
QEAgLTEwNDQsNyArMTA0Miw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5
ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9yCiAgICAgaWYgKG1f
aXNQYWdlVGlsZUNhY2hlTGF5ZXIgJiYgcGxhdGZvcm1MYXllcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIAotICAgIHJldHVybiBzaG93UmVwYWludENvdW50ZXIoKTsKKyAgICByZXR1cm4g
aXNTaG93aW5nUmVwYWludENvdW50ZXIoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnBs
YXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBjbGlwKQpAQCAtMTE1MSw2ICsxMTQ5LDkgQEAgdm9pZCBHcmFwaGljc0xheWVy
Q0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhmbG9hdCBwYWdlU2NhbGVGYWN0
b3IsIGMKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBBY2NlbGVyYXRlc0RyYXdpbmdD
aGFuZ2VkKQogICAgICAgICB1cGRhdGVBY2NlbGVyYXRlc0RyYXdpbmcoKTsKIAorICAgIGlmICht
X3VuY29tbWl0dGVkQ2hhbmdlcyAmIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQpCisgICAgICAgIHVw
ZGF0ZURlYnVnQm9yZGVyKCk7CisKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDaGls
ZHJlbkNoYW5nZWQpIHsKICAgICAgICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7CiAgICAgICAgIC8v
IFN1YmxheWVycyBtYXkgc2V0IHRoaXMgZmxhZyBhZ2Fpbiwgc28gY2xlYXIgaXQgdG8gYXZvaWQg
YWx3YXlzIHVwZGF0aW5nIHN1YmxheWVycyBpbiBjb21taXRMYXllckNoYW5nZXNBZnRlclN1Ymxh
eWVycygpLgpAQCAtMTM0Myw4ICsxMzQ0LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZU1hc2tzVG9Cb3VuZHMoKQogICAgICAgICBmb3IgKExheWVyTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IGxheWVyQ2xvbmVNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAg
IGl0LT52YWx1ZS0+c2V0TWFza3NUb0JvdW5kcyhtX21hc2tzVG9Cb3VuZHMpOwogICAgIH0KLQot
ICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNWaXNpYmlsaXR5KCkKQEAgLTE1MjgsNyArMTUyNyw2IEBAIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudChmbG9hdCBwYWdlU2NhbGVGYWN0
b3IsIGNvbnN0IEZsb2F0CiAgICAgICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRDb250ZW50cygw
KTsKICAgICAgICAgfQogICAgIH0KLSAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAog
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFjY2VsZXJhdGVzRHJhd2luZygpCkBAIC0xNTM2
LDYgKzE1MzQsMTQgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFjY2VsZXJhdGVzRHJh
d2luZygpCiAgICAgbV9sYXllci0+c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKG1fYWNjZWxlcmF0ZXNE
cmF3aW5nKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKCkK
K3sKKyAgICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkKKyAgICAgICAgdXBkYXRlRGVidWdJ
bmRpY2F0b3JzKCk7CisgICAgZWxzZQorICAgICAgICBtX2xheWVyLT5zZXRCb3JkZXJXaWR0aCgw
KTsKK30KKwogRmxvYXRSZWN0IEdyYXBoaWNzTGF5ZXJDQTo6YWRqdXN0VGlsZWRMYXllclZpc2li
bGVSZWN0KFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZp
c2libGVSZWN0LCBjb25zdCBGbG9hdFNpemUmIG9sZFNpemUpIGNvbnN0CiB7CiAgICAgLy8gSWYg
dGhlIG9sZCB2aXNpYmxlIHJlY3QgaXMgZW1wdHksIHdlIGhhdmUgbm8gaW5mb3JtYXRpb24gYWJv
dXQgaG93IHRoZSB2aXNpYmxlIGFyZWEgaXMgY2hhbmdpbmcKQEAgLTI0OTgsNiArMjUwNCwyNCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IsIGNvbnN0IEZsb2F0UG9pbgogICAgICAgICBtX2xheWVyLT5zZXROZWVkc0Rpc3Bs
YXkoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFNob3dEZWJ1Z0JvcmRlcihib29s
IHNob3dCb3JkZXIpCit7CisgICAgaWYgKHNob3dCb3JkZXIgPT0gbV9zaG93RGVidWdCb3JkZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRl
cihzaG93Qm9yZGVyKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoRGVidWdJbmRpY2F0
b3JzQ2hhbmdlZCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTaG93UmVwYWludENv
dW50ZXIoYm9vbCBzaG93Q291bnRlcikKK3sKKyAgICBpZiAoc2hvd0NvdW50ZXIgPT0gbV9zaG93
UmVwYWludENvdW50ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dFNob3dSZXBhaW50Q291bnRlcihzaG93Q291bnRlcik7CisgICAgbm90ZUxheWVyUHJvcGVydHlD
aGFuZ2VkKERlYnVnSW5kaWNhdG9yc0NoYW5nZWQpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogeyAgICAKICAg
ICBpZiAoY29sb3IuaXNWYWxpZCgpKQpAQCAtMjYxMSwxMCArMjYzNSw5IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxv
YXQgLypwYWdlU2NhCiAgICAgICAgIHwgQmFja2dyb3VuZENvbG9yQ2hhbmdlZAogICAgICAgICB8
IENvbnRlbnRzU2NhbGVDaGFuZ2VkCiAgICAgICAgIHwgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdl
ZAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgfCBGaWx0ZXJzQ2hhbmdlZAotI2Vu
ZGlmCi0gICAgICAgIHwgT3BhY2l0eUNoYW5nZWQ7CisgICAgICAgIHwgT3BhY2l0eUNoYW5nZWQK
KyAgICAgICAgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkOwogICAgIAogI2lmbmRlZiBOREVCVUcK
ICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZzo6Zm9ybWF0KCIlc0NBTGF5ZXIoJXApIEdyYXBoaWNz
TGF5ZXIoJXApICIsIChtX2xheWVyLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZVdlYlRpbGVkTGF5ZXIpID8gIlRpbGVkICIgOiAiIiwgbV9sYXllci0+cGxhdGZvcm1M
YXllcigpLCB0aGlzKSArIG1fbmFtZTsKQEAgLTI2MjYsOCArMjY0OSw2IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxv
YXQgLypwYWdlU2NhCiAgICAgCiAgICAgLy8gbmVlZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3
IGl0c2VsZgogICAgIHNldE5lZWRzRGlzcGxheSgpOwotICAgIAotICAgIHVwZGF0ZURlYnVnSW5k
aWNhdG9ycygpOwogfQogCiBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3Jp
ZW50YXRpb24gR3JhcGhpY3NMYXllckNBOjpkZWZhdWx0Q29udGVudHNPcmllbnRhdGlvbigpIGNv
bnN0CkBAIC0yNjUxLDcgKzI2NzIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBDb250
ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciogY29udGVudHNMYXllcikKICAgICB9IGVsc2UKICAg
ICAgICAgY29udGVudHNMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwogCi0g
ICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRl
cigpKSB7CiAgICAgICAgIGNvbnRlbnRzTGF5ZXItPnNldEJvcmRlckNvbG9yKENvbG9yKDAsIDAs
IDEyOCwgMTgwKSk7CiAgICAgICAgIGNvbnRlbnRzTGF5ZXItPnNldEJvcmRlcldpZHRoKDEuMGYp
OwogICAgIH0KQEAgLTI4NDYsNyArMjg2Nyw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiBHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIoUGxhdGZvcm1DQUxheWVyICpsYXllciwKICAg
ICAgICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoQ29weSwgbGF5ZXIsIG5ld0xheWVyLmdldCgpKTsK
ICAgICB9CiAgICAgCi0gICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgIGlmIChpc1No
b3dpbmdEZWJ1Z0JvcmRlcigpKSB7CiAgICAgICAgIG5ld0xheWVyLT5zZXRCb3JkZXJDb2xvcihD
b2xvcigyNTUsIDEyMiwgMjUxKSk7CiAgICAgICAgIG5ld0xheWVyLT5zZXRCb3JkZXJXaWR0aCgy
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDAwY2E2MmU3NTI1OTdjYzQzOGY5MTFmOGYxYzlhOTNk
ZGY4ODQ3YzUuLjJkZWIyZTI4YzlkYmY0MWI3ZjFmNDJhYWY3ZTNhMTU2OWM3NDhhZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oCkBAIC0xMjEsNiArMTIxLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhh
c0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXI7IH0KICAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCkgT1ZFUlJJREU7CisKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJX
aWR0aCk7CiAKQEAgLTE1Miw3ICsxNTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSk7
CiAgICAgdmlydHVhbCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gcGxhdGZvcm1D
QUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGNvbnRlbnRzT3JpZW50
YXRpb24oKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRz
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNsaXApOwotICAgIHZpcnR1YWwgYm9v
bCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gc2hvd0Rl
YnVnQm9yZGVycygpOyB9CisgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dEZWJ1
Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpOyB9CiAgICAg
dmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNB
TGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRS
ZXBhaW50Q291bnQoKSB7IHJldHVybiBpbmNyZW1lbnRSZXBhaW50Q291bnQoKTsgfQogCkBAIC0z
MjYsNiArMzI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUxheWVyQW5pbWF0aW9ucygp
OwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNOZWVkc0Rpc3BsYXkoKTsKICAgICB2b2lkIHVwZGF0
ZUFjY2VsZXJhdGVzRHJhd2luZygpOworICAgIHZvaWQgdXBkYXRlRGVidWdCb3JkZXIoKTsKICAg
ICB2b2lkIHVwZGF0ZVZpc2libGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3Qp
OwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwaXhlbEFsaWdubWVudFNjYWxl
LCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlKTsKICAgICAKQEAgLTM3
Nyw5ICszODEsOCBAQCBwcml2YXRlOgogICAgICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDEg
PDwgMjMsCiAgICAgICAgIENvbnRlbnRzVmlzaWJpbGl0eUNoYW5nZWQgPSAxIDw8IDI0LAogICAg
ICAgICBWaXNpYmxlUmVjdENoYW5nZWQgPSAxIDw8IDI1LAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI2LAotI2VuZGlmCisgICAgICAgIERl
YnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxIDw8IDI3CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2ln
bmVkIExheWVyQ2hhbmdlRmxhZ3M7CiAgICAgdm9pZCBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQo
TGF5ZXJDaGFuZ2VGbGFncyBmbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmNwcAppbmRleCBkZjMzNWQ4MTAyZTEwZjVmMTIwMzAyN2Y4Mjg3ZGQ4NTAzNjYyMDFjLi5iODM1
ODc4ZTkyMDk3NDM2ZTk1ZTZhOGZmZjA0M2EzMzg4OGJmNmViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTg0Nyw3ICs4NDcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKFdlYkxheWVyKiBjb250ZW50c0xheWVyKQog
ICAgICAgICAvLyBzaGFkb3cgY29udGVudCB0aGF0IG11c3QgZGlzcGxheSBpbiBmcm9udCBvZiB0
aGUgdmlkZW8uCiAgICAgICAgIG1fbGF5ZXItPmxheWVyKCktPmluc2VydENoaWxkKG1fY29udGVu
dHNMYXllciwgMCk7CiAKLSAgICAgICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgICAg
ICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkgewogICAgICAgICAgICAgbV9jb250ZW50c0xh
eWVyLT5zZXREZWJ1Z0JvcmRlckNvbG9yKENvbG9yKDAsIDAsIDEyOCwgMTgwKS5yZ2IoKSk7CiAg
ICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldERlYnVnQm9yZGVyV2lkdGgoMSk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggMTFhNWQ1ODRmZjhhMzBlZjFi
ZDY4ZGU2NGE5OTkzNjBmZTgzZjljNi4uMGY1ODMxOTA3YWQ4ZjViNzE4Y2M2MmNhZTdmY2MzMzNh
NzI2NDE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTEyOSw3ICsxMjksNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtZGlydHlS
ZWN0LngoKSwgLWRpcnR5UmVjdC55KCkpOwogICAgIGxheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJD
b250ZW50cygqY29udGV4dCwgZGlydHlSZWN0KTsKIAotICAgIGlmIChsYXllci0+c2hvd1JlcGFp
bnRDb3VudGVyKCkpIHsKKyAgICBpZiAobGF5ZXItPmlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkp
IHsKICAgICAgICAgbGF5ZXItPmluY3JlbWVudFJlcGFpbnRDb3VudCgpOwogICAgICAgICBkcmF3
UmVwYWludENvdW50ZXIoY29udGV4dCwgbGF5ZXIpOwogICAgIH0KQEAgLTEzOCw3ICsxMzgsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAgIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdT
dG9yZSogYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlclRpbGVkQmFja2lu
Z1N0b3JlKj4obV9iYWNraW5nU3RvcmUuZ2V0KCkpOwogICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRl
Q29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UuZ2V0KCksIG1fc2l6ZSwgZGlydHlSZWN0LCBC
aXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAKLSAgICBi
YWNraW5nU3RvcmUtPnNldFNob3dEZWJ1Z0JvcmRlcnMobGF5ZXItPnNob3dEZWJ1Z0JvcmRlcnMo
KSk7CisgICAgYmFja2luZ1N0b3JlLT5zZXQobGF5ZXItPmlzU2hvd2luZ0RlYnVnQm9yZGVyKCkp
OwogICAgIGJhY2tpbmdTdG9yZS0+c2V0RGVidWdCb3JkZXIobV9kZWJ1Z0JvcmRlckNvbG9yLCBt
X2RlYnVnQm9yZGVyV2lkdGgpOwogCiAgICAgbV9zdGF0ZS5uZWVkc0Rpc3BsYXkgPSBmYWxzZTsK
QEAgLTYxNyw3ICs2MTcsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6ZHJhd1JlcGFpbnRD
b3VudGVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgR3JhcGhpY3NMYQogICAgIGNhaXJvX3Rl
eHRfZXh0ZW50cyhjciwgcmVwYWludENvdW50LmRhdGEoKSwgJnJlcGFpbnRUZXh0RXh0ZW50cyk7
CiAKICAgICBzdGF0aWMgY29uc3QgaW50IHJlcGFpbnRDb3VudEJvcmRlcldpZHRoID0gMTA7Ci0g
ICAgc2V0U291cmNlUkdCQUZyb21Db2xvcihjciwgbGF5ZXItPnNob3dEZWJ1Z0JvcmRlcnMoKSA/
IG1fZGVidWdCb3JkZXJDb2xvciA6IENvbG9yKDAsIDI1NSwgMCwgMTI3KSk7CisgICAgc2V0U291
cmNlUkdCQUZyb21Db2xvcihjciwgbGF5ZXItPmlzU2hvd2luZ0RlYnVnQm9yZGVyKCkgPyBtX2Rl
YnVnQm9yZGVyQ29sb3IgOiBDb2xvcigwLCAyNTUsIDAsIDEyNykpOwogICAgIGNhaXJvX3JlY3Rh
bmdsZShjciwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgcmVwYWludFRleHRFeHRlbnRzLndp
ZHRoICsgKHJlcGFpbnRDb3VudEJvcmRlcldpZHRoICogMiksCiAgICAgICAgICAgICAgICAgICAg
IHJlcGFpbnRUZXh0RXh0ZW50cy5oZWlnaHQgKyAocmVwYWludENvdW50Qm9yZGVyV2lkdGggKiAy
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CmluZGV4IDU1NjkwOWU5ZDJiMGMzYTQ4YmY3NmNkNGE4N2Y2NmM3MjYzOGMxZGUuLjgyNjdiYzMx
MGU3ZTRlZjNkMzY5OTdkZWY0YjhhMTgyOWMyOTJhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yMDMsNiArMjAzLDMxIEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjphZGp1c3RUaWxlQ2FjaGVDb3ZlcmFnZSgpCiAgICAgdGls
ZWRCYWNraW5nKCktPnNldFRpbGVDb3ZlcmFnZSh0aWxlQ292ZXJhZ2UpOwogfQogCit2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6dXBkYXRlRGVidWdJbmRpY2F0b3JzKGJvb2wgc2hvd0JvcmRlciwg
Ym9vbCBzaG93UmVwYWludENvdW50ZXIpCit7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaG93
RGVidWdCb3JkZXIoc2hvd0JvcmRlcik7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaG93UmVw
YWludENvdW50ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKKyAgICAKKyAgICBpZiAobV9hbmNlc3Rv
ckNsaXBwaW5nTGF5ZXIpCisgICAgICAgIG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyLT5zZXRTaG93
RGVidWdCb3JkZXIoc2hvd0JvcmRlcik7CisKKyAgICBpZiAobV9mb3JlZ3JvdW5kTGF5ZXIpIHsK
KyAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVy
KTsKKyAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlcihzaG93
UmVwYWludENvdW50ZXIpOworICAgIH0KKworICAgIGlmIChtX21hc2tMYXllcikgeworICAgICAg
ICBtX21hc2tMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworICAgICAgICBt
X21hc2tMYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7Cisg
ICAgfQorCisgICAgaWYgKG1fc2Nyb2xsaW5nTGF5ZXIpCisgICAgICAgIG1fc2Nyb2xsaW5nTGF5
ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKKworICAgIGlmIChtX3Njcm9sbGlu
Z0NvbnRlbnRzTGF5ZXIpCisgICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0U2hv
d0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworfQorCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
Y3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKQogewogICAgIFN0cmluZyBsYXllck5hbWU7CkBA
IC0xNTg2LDE2ICsxNjExLDYgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmdldEN1cnJlbnRU
cmFuc2Zvcm0oY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93RGVidWdCb3JkZXJzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBjb21wb3NpdG9yKCkgPyBj
b21wb3NpdG9yKCktPmNvbXBvc2l0b3JTaG93RGVidWdCb3JkZXJzKCkgOiBmYWxzZTsKLX0KLQot
Ym9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gY29tcG9zaXRvcigpID8gY29tcG9zaXRvcigp
LT5jb21wb3NpdG9yU2hvd1JlcGFpbnRDb3VudGVyKCkgOiBmYWxzZTsKLX0KLQogYm9vbCBSZW5k
ZXJMYXllckJhY2tpbmc6OmlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0CiB7CiAgICAgR3JhcGhp
Y3NMYXllckNsaWVudCogY2xpZW50ID0gY29tcG9zaXRvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDIyZmI4ODkwMTZlZGY1YjBjMWE5
Y2I1YzI2MjE3MDdiNzdmMzk0NmQuLjM5YWJhZWFmMzZmZjRmYzc3MDI4OTU0ZWU0MzAzYzEzNjAz
NWE4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmgKQEAgLTE0MSw2ICsxNDEsOCBAQCBwdWJsaWM6CiAgICAgVGlsZWRCYWNraW5nKiB0aWxlZEJh
Y2tpbmcoKSBjb25zdDsKICAgICB2b2lkIGFkanVzdFRpbGVDYWNoZUNvdmVyYWdlKCk7CiAgICAg
CisgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoYm9vbCBzaG93Qm9yZGVyLCBib29sIHNo
b3dSZXBhaW50Q291bnRlcik7CisgICAgCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbnRl
cmZhY2UKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9u
U3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHN0YXJ0VGltZSkgT1ZFUlJJREU7
CkBAIC0xNTQsOSArMTU2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRD
aGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRDdXJyZW50VHJhbnNmb3JtKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0IE9WRVJSSURFOwotCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygp
IGNvbnN0IE9WRVJSSURFOwogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA2YWEzODUxNWMxMzQ4
YmE5YTMyM2NjODE0NTFkMjAxZWYwYjQwMmZjLi5kMDJlNWU0Njk5MjZhOGM1NWZiYjA4MzZlNDg3
NWYyZDk3YmY4YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTgzLDYgKzU4MywxMCBAQCBib29sIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyhSZW5kZXJMYXllciogbGF5ZXIsIENvbXBvc2l0aW5n
Q2hhbmdlUgogICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgICAgIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdGaXhlZE9iamVjdHNEaWRDaGFuZ2UobV9yZW5kZXJW
aWV3LT5mcmFtZVZpZXcoKSk7CiAgICAgfQorICAgIAorICAgIGlmIChsYXllci0+YmFja2luZygp
KQorICAgICAgICBsYXllci0+YmFja2luZygpLT51cGRhdGVEZWJ1Z0luZGljYXRvcnMobV9zaG93
RGVidWdCb3JkZXJzLCBtX3Nob3dSZXBhaW50Q291bnRlcik7CisKICAgICByZXR1cm4gbGF5ZXJD
aGFuZ2VkOwogfQogCkBAIC0yMDQ0LDIyICsyMDQ4LDYgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tzUmVwYWludHMpCiAgICAgbV9pc1Ry
YWNraW5nUmVwYWludHMgPSB0cmFja3NSZXBhaW50czsKIH0KIAotYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNv
bnN0Ci17Ci0gICAgaWYgKGxheWVyID09IG1fbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyIHx8
IGxheWVyID09IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhciB8fCBsYXllciA9PSBtX2xheWVy
Rm9yU2Nyb2xsQ29ybmVyKQotICAgICAgICByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOwotCi0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIGlm
IChsYXllciA9PSBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhciB8fCBsYXllciA9PSBtX2xh
eWVyRm9yVmVydGljYWxTY3JvbGxiYXIgfHwgbGF5ZXIgPT0gbV9sYXllckZvclNjcm9sbENvcm5l
cikKLSAgICAgICAgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsKLQotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzVHJhY2tpbmdSZXBhaW50cygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IGU1OGFhM2E2
Y2NkMDM2YzhiYzA3ZWEwNmNkMjA2ZTNjNmM3ZTE1ZGEuLjgxYWFmNDE0MWRjMzFhMTY4YmE2NjVi
MDI2ZjNiNmViN2NkNjczMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTIwMiwxMSArMjAyLDYgQEAgcHVibGljOgogCiAgICAg
U3RyaW5nIGxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyk7CiAKLSAgICAvLyBUaGVzZSBh
cmUgbmFtZWQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggdGhlIGZ1bmN0aW9ucyBpbiBHcmFwaGlj
c0xheWVyQ2xpZW50Ci0gICAgLy8gVGhlc2UgcmV0dXJuIHRoZSBhY3R1YWwgaW50ZXJuYWwgdmFy
aWFibGVzLgotICAgIGJvb2wgY29tcG9zaXRvclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJl
dHVybiBtX3Nob3dEZWJ1Z0JvcmRlcnM7IH0KLSAgICBib29sIGNvbXBvc2l0b3JTaG93UmVwYWlu
dENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRlcjsgfQotCiAgICAg
dmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3QgT1ZFUlJJREU7CkBAIC0yMzksOSArMjM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyBz
Y2hlZHVsZUxheWVyRmx1c2goKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIHNo
b3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNv
bnN0IE9WRVJSSURFOwotCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNv
bnN0IE9WRVJSSURFOwogICAgIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50IGlt
cGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
Yk92ZXJsYXlfcC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3Au
aAppbmRleCA4NDZlNWNjN2E1ODYzOGVmMDczMmE0MWM3OGRiODkwMDdjMDMwOTI4Li43NDJmZTBi
YjFhMjk0N2JkMmEzNWM1YzRjZjA1ZDA1MTk1MmU0Y2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmgKQEAgLTE2Nyw4ICsxNjcsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1
c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVi
dWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGNvbnRlbnRzVmlzaWJsZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY29udGVudFJlY3QpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDc1
NjkzMjBiOTgxZWEwNGU0MTJmZmY2NmQwMjllMDYxOWIyYzhlZjIuLmZkNDliNDhkZTI3Yjc2MTU3
NmMwMzdkZjk5NmU3M2E0YWU3ZDJiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcApAQCAtNTczMSwxNiArNTczMSw2IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6Om5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgc2NoZWR1bGVS
b290TGF5ZXJDb21taXQoKTsKIH0KLQotYm9vbCBXZWJQYWdlUHJpdmF0ZTo6c2hvd0RlYnVnQm9y
ZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5z
ZXR0aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgV2ViUGFnZVByaXZhdGU6
OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KICNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6
OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IGRlZTA4NDk1MjEwY2FhMWU4MzNhNGNkNmVlZDIzNmJh
MWExMjQyYzQuLmY0YjA5NDc0MmZiNGNkNDc3NWMwZGYyY2E4OTg1ZWM1NWMwYmJjN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtNDAxLDggKzQwMSw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCkgeyB9Ci0gICAgdmlydHVh
bCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNv
bnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGNvbnN0OwogCiAgICAgLy8gV2ViS2l0IHRocmVhZCwgcGx1bWJlZCB0
aHJvdWdoIGZyb20gQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS4KICAgICB2b2lkIHNldFJvb3RMYXll
cldlYktpdFRocmVhZChXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFk
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
ZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCmluZGV4IDQ1NDcyYWFmZDk0YjAzODdjY2U2
ZjJiMTgyZWIzY2Q2OTFhOTFkZGEuLjc3YjJjNzVhYzdkNzFkYTYxMjZmOGM0ODBhODIxY2VlYzky
MTJmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCkBAIC0xNDgsMTYgKzE0OCw2IEBA
IHZvaWQgRGVmYXVsdFRhcEhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjCiAgICAgYy5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgRGVm
YXVsdFRhcEhpZ2hsaWdodDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKiBs
YXllcikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVy
KTsKLX0KLQotYm9vbCBEZWZhdWx0VGFwSGlnaGxpZ2h0OjpzaG93UmVwYWludENvdW50ZXIoY29u
c3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hv
d1JlcGFpbnRDb3VudGVyKGxheWVyKTsKLX0KLQogYm9vbCBEZWZhdWx0VGFwSGlnaGxpZ2h0Ojpj
b250ZW50c1Zpc2libGUoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IEludFJlY3QmIGNvbnRl
bnRSZWN0KSBjb25zdAogewogICAgIC8vIFRoaXMgbGF5ZXIgaXMgdHlwaWNhbGx5IHNtYWxsIGVu
b3VnaCB0aGF0IHdlIGNhbiBhZmZvcmQgdG8gY2FjaGUgYWxsIHRpbGVzIGFuZCBuZXZlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRh
cEhpZ2hsaWdodC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVm
YXVsdFRhcEhpZ2hsaWdodC5oCmluZGV4IDA2YzU1OTA1Nzk1MjA5M2ZhZDhjYTlhNWQxOGYwYTc3
MjA2ZWZjYWUuLjkwYWY5NGNhYWI5MWFlNDllMjQwNDY5YzcyNTYyZjFhYzM5MWRjNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBI
aWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
ZWZhdWx0VGFwSGlnaGxpZ2h0LmgKQEAgLTU3LDggKzU3LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVy
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29s
IHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGNvbnRlbnRzVmlzaWJsZShjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY29udGVudFJlY3QpIGNvbnN0OwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwCmluZGV4IDA4
MTVkZDk3YmNiMjk1ZGRlYjA0Yjg2YzIzMjBhMzY1Nzc1NWQzZTAuLjUyYzljNGQyZTg2MjlmNjg3
YjQ0OTc1YjkxZDI1MGJlNmM0ODAzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5Qmxh
Y2tCZXJyeS5jcHAKQEAgLTU2LDE1ICs1Niw2IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6cGFp
bnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhCiAg
ICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd0Rl
YnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsK
LSAgICByZXR1cm4gbV93ZWJQYWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVyKTsKLX0KLQotYm9v
bCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd1Jl
cGFpbnRDb3VudGVyKGxheWVyKTsKLX0KICNlbmRpZgogCiBJbnNwZWN0b3JPdmVybGF5Ojp+SW5z
cGVjdG9yT3ZlcmxheSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmgK
aW5kZXggOTExOTdjYzBjOWNiODNjMzZjMWMyZDQ1N2M2MjYxNDUyZDNkMzEwNy4uNmRmNGJhNjJh
Zjg3YmY3Nzk1NGMzNGU1MWU5Y2UwYTk4ZmQ3NTk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5QmxhY2tCZXJyeS5oCkBAIC01NCw4ICs1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
ZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250
ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93
UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogI2Vu
ZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwCmluZGV4IGUwNmY3ZGYxYzExMGNm
M2E5ZmI5NzMzNTZiYmMwYmM1YTNlNjhiOTUuLmQzNTJiMTc3YTQzOTBjYzE0OTE4NmFjYmY5YmRh
NGJjNGI0M2I0OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwCkBAIC0xMTcsMTYgKzExNyw2IEBA
IHZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVy
KiwgR3JhcGhpY3NDb250ZXh0JiBjLCBHCiAgICAgYy5yZXN0b3JlKCk7CiB9CiAKLWJvb2wgU2Vs
ZWN0aW9uT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKiBsYXll
cikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVyKTsK
LX0KLQotYm9vbCBTZWxlY3Rpb25PdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hvd1JlcGFp
bnRDb3VudGVyKGxheWVyKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiB9IC8vIG5hbWVz
cGFjZSBCbGFja0JlcnJ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaAppbmRleCA1NzYyYjVhODljMWQ0YjY1
ZmM3ODQ5NWUxNGU2YTA2N2QxZDA2MDRiLi5kMjcwNGRjM2Y3YjcyMDFlZWMyNzRlM2ViMTc0M2E4
MGY2YmVhMzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCkBAIC01Miw4ICs1Miw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlG
bHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Us
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dE
ZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFNlbGVjdGlvbk92ZXJsYXkoV2ViUGFnZVByaXZh
dGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuY3BwCmluZGV4IDIzZGNkZGU5Yjc5YjQ5ODk1YTJmMjIxYjdiYTUxMDBh
MzZjYzNhMmYuLmY1YjZiNjAzNjhmNmFjNmJkYTBiNWNjMjQ1Nzc2MmRkYTZlOGNiNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0LmNwcApAQCAtMTkxLDE2ICsxOTEsNiBAQCB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50
SG9zdDo6c2V0U2hvd0RlYnVnQm9yZGVycyhib29sIHNob3dEZWJ1Z0JvcmRlcnMpCiAgICAgbV9n
cmFwaGljc0xheWVyLT51cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAotYm9vbCBOb25Db21w
b3NpdGVkQ29udGVudEhvc3Q6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hvd0RlYnVnQm9yZGVyczsKLX0KLQot
Ym9vbCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
IGJvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojppc1RyYWNraW5nUmVwYWludHMoKSBjb25z
dAogewogICAgIHJldHVybiBtX3dlYlZpZXctPmlzVHJhY2tpbmdSZXBhaW50cygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qu
aAppbmRleCAyYjZkZGMxYWFiMDAyNjE1ZTJiOTFmNzg5YTY2NWQ0M2YyYjViMDgxLi5iMmQxMDUw
Mzk4NjRkNDljMmM3ODk1NGZmMTQ4ZWEzZmRkY2NhN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaApAQCAtNzEsOCAr
NzEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVk
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwotICAgIHZp
cnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1Jl
cGFpbnRzKCkgY29uc3Q7CiAKICAgICBib29sIGhhdmVTY3JvbGxMYXllcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCmluZGV4IGExNmEwMTA3N2ViMzVhYmM4
MjcwODc3OTkyOTUzNjU0OWM0YjhmNjMuLmM5NTY4N2FmNjNkNWRjYjgwN2QyZjdmNWZjMDQ3YmU0
NzQzOTJmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVy
bGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAK
QEAgLTk0LDE2ICs5NCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwt
PnBhZ2VTY2FsZUZhY3RvcigpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdC
b3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IG1fd2ViVmlld0ltcGwtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwot
ICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciopIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFn
ZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLSAgICB9Ci0KIHByaXZhdGU6
CiAgICAgT3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBsKFdlYlZpZXdJbXBsKiB3ZWJWaWV3
SW1wbCwgV2ViUGFnZU92ZXJsYXkqIG92ZXJsYXkpCiAgICAgICAgIDogbV9vdmVybGF5KG92ZXJs
YXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGlj
c0xheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCAwY2U4NDI1N2I1YmE3YmI4MzAxZWU3ZWQ2MTM3
YmI1ZGIwNDQ1ZmU3Li5iMDRiM2E5NDUzYTFmZTJiYjQ4OWM3NTBhNTBhMDE2OTk5N2E5MTI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NM
YXllckNocm9taXVtVGVzdC5jcHAKQEAgLTUyLDggKzUyLDYgQEAgY2xhc3MgTW9ja0dyYXBoaWNz
TGF5ZXJDbGllbnQgOiBwdWJsaWMgR3JhcGhpY3NMYXllckNsaWVudCB7CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0
aW1lKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50
Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNz
TGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIE9WRVJSSURFIHsgfQot
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVw
YWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIDI7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGJmYjAzZWQzMDRm
NDk4YzgzZDA4ZWZkNzE1M2I2MWFhNjJmZWU1YjUuLjc0YzJmMTY2OWE0NTQzMjRiNWUzNGY5ZmYw
NTMxZDgzNDBhNDhjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SW1hZ2VMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtNDAsOCArNDAsNiBAQCBjbGFzcyBN
b2NrR3JhcGhpY3NMYXllckNsaWVudCA6IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVy
KiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBh
aW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkgeyB9Ci0gICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIGNsYXNzIFRlc3RJbWFnZSA6
IHB1YmxpYyBJbWFnZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaAppbmRleCA2NTcy
ZWE1ZWFkMjgxM2M3NWJmNTdjZTE0MzkxYzE5ZDBlYTRjMTU4Li4wMjU5N2QxNmQzZmE1NDI5ZDZj
YTMzNjEyYjYzYWMwZGJjN2I5M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgK
QEAgLTYwLDggKzYwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvUGFp
bnQpOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVy
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAgIHZvaWQgaW5pdGlh
bGl6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fpcm8uY3BwCmlu
ZGV4IDM3ODkwMzQyNjMwZWM1MGRmNGZiODlhMzA1ZDE3NGUxMDk1NzViOGMuLmNjNjk0MmVlODgz
OTU1ZjMyNzVkYTM2YTlhNjAxZjU0Zjg5YzY2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Q2Fpcm8uY3BwCkBAIC0xNjksMTYgKzE2OSw2IEBAIHZvaWQgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzCiAgICAgY29weVJlY3RGcm9tQ2Fpcm9TdXJmYWNlVG9Db250ZXh0KG1fd2ViVmll
dy0+cHJpdi0+YmFja2luZ1N0b3JlLT5jYWlyb1N1cmZhY2UoKSwgY3IsIEludFNpemUoKSwgcmVj
dFRvUGFpbnQpOwogfQogCi1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzaG93
RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd1JlcGFp
bnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9DQUlSTykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0Q2x1dHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwCmluZGV4IDg3Y2ViNmVhMDI0YWI0
MGY4YTQ4M2E4NjEzMzcyMzg3NWVlMzZmMWUuLjlmY2FlNTI1N2E0MTVhOTM0YmM0MmM1YzM2YmMw
OGZlNTZlYjU5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0
dGVyLmNwcApAQCAtMTY1LDE4ICsxNjUsNiBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd1JlcGFpbnRDb3VudGVy
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAppbmRleCBlZmMyMDYxOTM0
NGViMjVjMjg1NDZiZWQyZGRkN2M3NGY0NDVlYWJmLi5kMTMwYTNmYjdiM2IxODkwNmFlYTlkZjg5
ODkzNGIxYTZmZmFmMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNw
cApAQCAtMzgzLDE2ICszODMsNiBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljcwogICAgIGNvbnRl
eHQucmVzdG9yZSgpOwogfQogCi1ib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpz
aG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVy
biBmYWxzZTsKLX0KLQotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBm
YWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKaW5kZXggM2ExYjc0ZTIxMzUxZmFkYTZkNDFhY2RmODlmMjU0YTgzYWFjYjY4Ny4uZGQ3
MDA4ZWIzYTRhN2RjNjgwZGQyZjBmMjZmODcxODAwYWRjMjFlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKQEAgLTY2NDUsMTYgKzY2NDUsNiBAQCB2b2lkIFdlYlZpZXc6OnBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcAogICAgIGNv
bnRleHQucmVzdG9yZSgpOwogfQogCi1ib29sIFdlYlZpZXc6OnNob3dEZWJ1Z0JvcmRlcnMoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3Mo
KS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIFdlYlZpZXc6OnNob3dSZXBhaW50Q291
bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLT5z
ZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KLQogdm9pZCBXZWJWaWV3OjpmbHVz
aFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlcygpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUobV9tYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IDk4ZmNiYjNlMWJkM2JiNTI2
NTliMGM1ZGFkODZjZDIyMTk1MjNkZTAuLmM5MzczNDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFi
NzM2MDdiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTEwMjAsOCArMTAyMCw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1
c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVi
dWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdDsKIAogICAgIC8vIENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIGZsdXNoUGVuZGluZ0dyYXBoaWNzTGF5ZXJDaGFuZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJl
ci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlUmVuZGVyZXIuaAppbmRleCBkZGVhMzFkN2JlYmEzY2ExOThiMzgyNDJkODYwM2FlNzBlNDZk
NmEzLi44NTk2MDIyOTYyNDFlMDE0YzZhNzJmODY3MjY5YTZkYjRlMTZjY2VhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTEwOCw4ICsxMDgsNiBAQCBwcml2YXRlOgogICAg
IC8vIFJlaW1wbGVtZW50YXRpb25zIGZyb20gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudC4K
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgZG91YmxlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hS
ZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgeyB9Ci0gICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgeyB9CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgp
OwogICAgIHZvaWQgZGlzcGF0Y2hPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IDllYjM3OGU1ZGEzMzFmYzhjOTFjNTJhNDQ5OWI2YTU5ZDRlZmYyYWMuLjBkZGZj
ZWRjZDBlYzBhNmUzNmRlNTJlNzQxMjdhZTFkOWRmZGVhYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTU3OCwxNiArNTc4
LDYgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0wKICAgICB9CiB9CiAKLWJvb2wgTGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3Mo
KS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIExheWVyVHJlZUNvb3JkaW5hdG9yOjpz
aG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFp
bnRDb3VudGVyKCk7Ci19Ci0KIFBhc3NPd25QdHI8R3JhcGhpY3NMYXllcj4gTGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50
KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNs
aWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yLmgKaW5kZXggZDcyNWFmNjk3YTg1M2RlYzkxZmM2ODk1OTJhMjVkMzA5NjQ3NzFmNS4uY2Fj
YjY4ZWFhZTViOTc5YTE1NWI3MDU2NGVkYzE4MmVlM2RhMzA5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC0xMTIsOCArMTEyLDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29u
c3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3Q7CiAKICAgICAvLyBHcmFwaGljc0xheWVyRmFjdG9yeQogICAg
IHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGlj
c0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQqKSBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0Eu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RD
QS5jcHAKaW5kZXggMDg3MmY0MzU1MGU3NjJmZGY5NmVmOGM4MjI0OTJlMzQ1NjMzM2ZjZS4uZGJh
NTVjMjEyMjkzZDY1MmU4NmE2YmJkYTE5MGJjODA1NjgxOWUxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAK
QEAgLTIwMywxNiArMjAzLDYgQEAgdm9pZCBMYXllclRyZWVIb3N0Q0E6OnBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3MKICAgICB9CiB9CiAK
LWJvb2wgTGF5ZXJUcmVlSG9zdENBOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdz
KCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKLX0KLQotYm9vbCBMYXllclRyZWVIb3N0Q0E6OnNob3dS
ZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsK
LX0KLQogZmxvYXQgTGF5ZXJUcmVlSG9zdENBOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRy
ZWVIb3N0Q0EuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRy
ZWVIb3N0Q0EuaAppbmRleCA5Y2I4Y2E2YTU0ZmMzODZkMmJlM2M4OTI5MjQ4Y2ZiZTVlMDJjNjVm
Li4yMWIxM2RhMWMyNDkyZTNkM2ZlNDRhYjg4ODRkNjlmZWZiMWNhMGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5o
CkBAIC03Niw4ICs3Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVj
dCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hh
bmdlc0ZvckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRy
ZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggYWYyYWU4OWJmYTI5MTU1Y2VmYTYzMmRhMjJjN2U2YmYz
YWVhYjVjNi4uMDdmZTEyODU1YTdkYTgxOWE4MjMxZTA5ODU5ZGJlYTIzMGUwZTk3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVy
VHJlZUhvc3RHdGsuY3BwCkBAIC0yNTgsMTYgKzI1OCw2IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdEd0
azo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFw
aGljCiAgICAgfQogfQogCi1ib29sIExheWVyVHJlZUhvc3RHdGs6OnNob3dEZWJ1Z0JvcmRlcnMo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29y
ZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29sIExheWVy
VHJlZUhvc3RHdGs6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93
UmVwYWludENvdW50ZXIoKTsKLX0KLQogZ2Jvb2xlYW4gTGF5ZXJUcmVlSG9zdEd0azo6bGF5ZXJG
bHVzaFRpbWVyRmlyZWRDYWxsYmFjayhMYXllclRyZWVIb3N0R3RrKiBsYXllclRyZWVIb3N0KQog
ewogICAgIGxheWVyVHJlZUhvc3QtPmxheWVyRmx1c2hUaW1lckZpcmVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0
ay5oCmluZGV4IDYxYjlmYTY3MTU4MzM2YTM0NjNjZGMwY2Y3Y2M4OTgzN2UwYjExMjQuLjg0MGFk
YTgxM2E2NzBkNjBlZWJiOGU1YjQxMzA4MmY2ODZmNGQwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBA
IC03Nyw4ICs3Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7
Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
IHsgfQogCiAgICAgdm9pZCBjcmVhdGVQYWdlT3ZlcmxheUxheWVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggZjUwNDhhOTg1ZWU1ODdiYjcyYjNiMDBj
YjUyOTQ3YmNjOGYzZGZhYy4uN2Q1YjNiZTk2NjIwNGI4MzEyZjllNWVkNjY1ODdkNjkyOTgxMWI3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtNzIsOCAr
NzIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVk
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29u
c3QgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCBmY2Q3MmNh
YzkyYTg3ZDg0NGJmYzg4MTdjYzAxZjZkZjRhYjcxNzVmLi5jZjVkMjNlMDEzYjk4NGNiN2JjZDkz
MWRhMzIzZTg3YzQ3ZTYyZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEubW0KQEAgLTI3MywxNiArMjczLDYgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0wKICAg
ICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsK
IH0KIAotYm9vbCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2hvd0RlYnVnQm9yZGVy
cyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5j
b3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFw
aGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5z
ZXR0aW5ncygpLT5zaG93UmVwYWludENvdW50ZXIoKTsKLX0KLQogZmxvYXQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172205</attachid>
            <date>2012-11-02 21:38:11 -0700</date>
            <delta_ts>2012-11-03 16:52:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101136-20121102213629.patch</filename>
            <type>text/plain</type>
            <size>56607</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdkZGZkMDc5NTE0ZTEx
Njg1ZTFiODU1YzllNGM0MzAxZjIwOGUyYy4uMTY5MmNmMDFkMTc1Y2ZlYTMxNTdmZTlkOWEyMzhj
MjgxNDEwM2U0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTExLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBi
b3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NMYXll
cnMgZGVjaWRlZCB3aGV0aGVyIHRvIHNob3cgbGF5ZXIgYm9yZGVycyBiYXNlZAorICAgICAgICBv
biBhIGNhbGxiYWNrIHRocm91Z2ggdGhlIEdyYXBoaWNzTGF5ZXJDbGllbnQuIFRoaXMgbWFkZSBp
dAorICAgICAgICBoYXJkIHRvIG1hbmFnZSBzdGF0ZSwgcmVzdWx0aW5nIGluIGEgZmFpbHVyZSB0
byBjbGVhbmx5CisgICAgICAgIGhpZGUgbGF5ZXJzIHdoZW4gdG9nZ2xlZCBvZmYgdmlhIHRoZSBw
cmVmZXJlbmNlLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlZCB0aGUgbGF5ZXIgYm9yZGVyIGFu
ZCByZXBhaW50IGNvdW50ZXIgdmlzaWJpbGl0eSB0byBiZSBiaXRzCisgICAgICAgIHN0b3JlZCBv
biBHcmFwaGljc0xheWVyIGp1c3QgbGlrZSBvdGhlciBwcm9wZXJ0aWVzLCB3aXRoIGdldHRlcnMK
KyAgICAgICAgYW5kIHNldHRlcnMuIFJlbmRlckxheWVyQmFja2luZyBub3cgdXBkYXRlcyB0aGVz
ZSBkZWJ1ZworICAgICAgICBpbmRpY2F0b3JzIHdoZW4gd2UgdXBkYXRlIG90aGVyIGNvbXBvc2l0
aW5nIGxheWVyIHByb3BlcnRpZXMuCisgICAgICAgIAorICAgICAgICBJbiBHcmFwaGljc0xheWVy
Q0EsIGF2b2lkIGNhbGxpbmcgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCkgZXhwbGljaXRseQorICAg
ICAgICBpbiBzZXZlcmFsIHBsYWNlcyBieSBzZXR0aW5nIHRoZSBjaGFuZ2UgZmxhZyBEZWJ1Z0lu
ZGljYXRvcnNDaGFuZ2VkCisgICAgICAgIGZvciBwcm9wZXJ0aWVzIHdob3NlIHZhbHVlcyBhZmZl
Y3QgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIGRlYnVnIGJvcmRlci4KKworICAgICAgICBSZW1vdmVk
IHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAor
ICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKSB3aGljaCBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVk
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmlzU2hvd2luZ0RlYnVnQm9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OnNldFNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjppc1Nob3dpbmdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpyZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6aW5jcmVtZW50UmVwYWludENvdW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
R3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0
TWFza3NUb0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldERy
YXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZU1hc2tzVG9Cb3VuZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd0RlYnVnQm9yZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVudHNMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoR3JhcGhp
Y3NMYXllckNBKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1D
QUxheWVyU2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZURlYnVnSW5kaWNhdG9ycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKwogMjAx
Mi0xMS0wMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMzM3NS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IGY4YWQzZjhmN2QyNjc4OTZlNTc3ZTZiZmQ3ZTc3M2Y0MTU5ZjlmOWMu
LjQ2NjlkY2M5OTExOWIxOWE2NzI1OTIxMmM1ZjE3MmY2ZGJjNmE1ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJz
IHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGlj
c0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93
UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAg
ICAgKFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkKToKKyAgICAgICAgKiBBcGkvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAgKiBXZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRUYXBIaWdobGln
aHQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
Y3BwOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnku
aDoKKyAgICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQv
U2VsZWN0aW9uT3ZlcmxheS5jcHA6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25P
dmVybGF5Lmg6CisgICAgICAgIChTZWxlY3Rpb25PdmVybGF5KToKKwogMjAxMi0xMS0wMiAgTmlt
YSBHaGFuYXZhdGlhbiAgPG5naGFuYXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBGaXggY29tcGlsZS10aW1lIHdhcm5pbmcgb2YgYSBwb3NzaWJsZSBlbXB0eS1ib2R5IGlm
IHN0YXRlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNzdkYjJiNmUwNDg4Yzgx
ZTI0ZDYzN2Q4NTMwYmU1N2QzYWFmN2ZiLi45MjE5NTg5OGUzMmI2YzY4N2FjYjU1MTQ2YTI1YTE1
ZmE1M2EzZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDEyLTExLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9u
IHN3aXRjaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVy
cygpIGFuZAorICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKS4KKworICAgICAgICAqIHNyYy9O
b25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAqIHNyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuaDoKKyAgICAgICAgKE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCk6CisgICAg
ICAgICogc3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVy
Q2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0
LmNwcDoKKwogMjAxMi0xMS0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIFBsdWdpbkluYWN0aXZlIHBsdWctaW4gdW5hdmFpbGFiaWxpdHkg
cmVhc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNTA1ODY0NWUwZjczZGExZTNkMGI5N2ZkYTI2ODBh
YmRjZDlmYjRjNS4uYjJkMTE1NzZiODljYWNiYjhhYTRlNWNiMWYxZGJkZDZiZGNlYjkzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTAyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRv
IGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBHcmFwaGljc0xh
eWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFuZAorICAgICAgICBzaG93UmVw
YWludENvdW50ZXIoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Lmg6CisgICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRDYWlyby5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRDbHV0dGVyLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKwogMjAxMi0xMS0wMiAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIGRlcGVu
ZGVuY3kgb24gU291cFBhc3N3b3JkTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDRmYTZlOTMy
YWI1Nzk3NWZiYjc2ZDZkYzIyODdlNWI4NzRlZTJmYmEuLjEzMjdkYzZmNTYwZTA0NzAxZDAwMDhk
ZWY4MTA2YzA0ZjQ1ZTRlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0xMS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBGaXggbGF5ZXIgYm9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBz
d2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMo
KSBhbmQKKyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTItMTAtMjkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmc6OmNyZWF0ZUNGU3RyaW5n
IHNob3VsZCByZXR1cm4gYSBSZXRhaW5QdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3ZGM4Zjc4Y2I1OWM0Yjdh
ZTY1ODVlMjIwMTYxNjg4MmRiMDNlNzlhLi43MjBmM2RkMTg1ZTk0OWY3NzlkM2ZhNDMzNjNiYTM5
NGEyMjAyY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTEtMDIgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGxheWVyIGJv
cmRlcnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFJlbW92
ZSB0aGUgR3JhcGhpY3NMYXllckNsaWVudCBtZXRob2RzIHNob3dEZWJ1Z0JvcmRlcnMoKSBhbmQK
KyAgICAgICAgc2hvd1JlcGFpbnRDb3VudGVyKCkuCisgICAgICAgIAorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oOgorICAgICAg
ICAoTGF5ZXJUcmVlSG9zdENBKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5oOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdEd0ayk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgor
ICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisKIDIw
MTItMTEtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBWZXJ5IHNwZWN1bGF0aXZlIEFyZ3VtZW50RGVjb2RlciBjcmFzaCBmaXgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMGRi
MjQ5OTkyMGMwOTEzYjY0NDFmMjE4YWI5MTg3NmQ0MTRlMTAzNS4uZGQzYjdhOWRmMmYwNDRkZjY1
YzRhNDFiMDY3Njg0OTg5OGUzYjUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTg5LDYgKzg5LDggQEAgR3JhcGhpY3NM
YXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBt
X2FjY2VsZXJhdGVzRHJhd2luZyhmYWxzZSkKICAgICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1l
bnQoZmFsc2UpCiAgICAgLCBtX2FwcGxpZXNQYWdlU2NhbGUoZmFsc2UpCisgICAgLCBtX3Nob3dE
ZWJ1Z0JvcmRlcihmYWxzZSkKKyAgICAsIG1fc2hvd1JlcGFpbnRDb3VudGVyKGZhbHNlKQogICAg
ICwgbV9wYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludEFsbFdpdGhPdmVyZmxvd0NsaXAp
CiAgICAgLCBtX2NvbnRlbnRzT3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERv
d24pCiAgICAgLCBtX3BhcmVudCgwKQpAQCAtMzc0LDcgKzM3Niw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllcjo6Z2V0RGVidWdCb3JkZXJJbmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBjb25z
dAogCiB2b2lkIEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycygpCiB7Ci0gICAg
aWYgKCFHcmFwaGljc0xheWVyOjpzaG93RGVidWdCb3JkZXJzKCkpCisgICAgaWYgKCFpc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpKQogICAgICAgICByZXR1cm47CiAKICAgICBDb2xvciBib3JkZXJDb2xv
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCBlOTM3Y2E1ZDgzMzUyN2EyN2U2N2QxNjkxODA4ZDIyMmFlMjIyMmIzLi5lMmM4MmJh
MWJiODAzZjU2ZDUxYWM2Zjk5ZjUxZTBjNTAyNjcxYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zNTIsMjQgKzM1MiwyNiBA
QCBwdWJsaWM6CiAgICAgLy8gRm9yIGhvc3RpbmcgdGhpcyBHcmFwaGljc0xheWVyIGluIGEgbmF0
aXZlIGxheWVyIGhpZXJhcmNoeS4KICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgCi0gICAgdm9pZCBkdW1wTGF5ZXIoVGV4
dFN0cmVhbSYsIGludCBpbmRlbnQgPSAwLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciA9IExheWVy
VHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdDsKLQotICAgIGludCByZXBhaW50Q291bnQo
KSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRDb3VudDsgfQotICAgIGludCBpbmNyZW1lbnRSZXBh
aW50Q291bnQoKSB7IHJldHVybiArK21fcmVwYWludENvdW50OyB9Ci0KICAgICBlbnVtIENvbXBv
c2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiB7IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BE
b3duLCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzQm90dG9tVXAgfTsKIAogICAgIC8vIEZsaXBwZWRu
ZXNzIG9mIHRoZSBjb250ZW50cyBvZiB0aGlzIGxheWVyLiBEb2VzIG5vdCBhZmZlY3Qgc3VibGF5
ZXIgZ2VvbWV0cnkuCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzT3JpZW50YXRpb24oQ29t
cG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fY29udGVudHNP
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09y
aWVudGF0aW9uIGNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRz
T3JpZW50YXRpb247IH0KIAotICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnNob3dEZWJ1Z0JvcmRlcnModGhpcykgOiBmYWxzZTsg
fQotICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQg
PyBtX2NsaWVudC0+c2hvd1JlcGFpbnRDb3VudGVyKHRoaXMpIDogZmFsc2U7IH0KLSAgICAKLSAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwotICAgIAorICAgIHZvaWQgZHVtcExheWVy
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50ID0gMCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IgPSBM
YXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wgc2hvdykgeyBtX3Nob3dEZWJ1Z0JvcmRlciA9IHNob3c7
IH0KKyAgICBib29sIGlzU2hvd2luZ0RlYnVnQm9yZGVyKCkgY29uc3QgeyByZXR1cm4gbV9zaG93
RGVidWdCb3JkZXI7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIo
Ym9vbCBzaG93KSB7IG1fc2hvd1JlcGFpbnRDb3VudGVyID0gc2hvdzsgfQorICAgIGJvb2wgaXNT
aG93aW5nUmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRl
cjsgfQorCisgICAgaW50IHJlcGFpbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENv
dW50OyB9CisgICAgaW50IGluY3JlbWVudFJlcGFpbnRDb3VudCgpIHsgcmV0dXJuICsrbV9yZXBh
aW50Q291bnQ7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihj
b25zdCBDb2xvciYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBD
b2xvciYsIGZsb2F0IC8qYm9yZGVyV2lkdGgqLykgeyB9CisKICAgICAvLyB6LXBvc2l0aW9uIGlz
IHRoZSB6LWVxdWl2YWxlbnQgb2YgcG9zaXRpb24oKS4gSXQncyBvbmx5IHVzZWQgZm9yIGRlYnVn
Z2luZyBwdXJwb3Nlcy4KICAgICB2aXJ0dWFsIGZsb2F0IHpQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1felBvc2l0aW9uOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFpQb3NpdGlvbihmbG9hdCk7
CkBAIC00MTYsNiArNDE4LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldEdyYXBoaWNz
TGF5ZXJGYWN0b3J5KEdyYXBoaWNzTGF5ZXJGYWN0b3J5Q2FsbGJhY2spOwogI2VuZGlmCiAKKyAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gU2hv
dWxkIGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxs
IHdpbGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKTsKQEAgLTQ4Niw3ICs0OTAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2FjY2Vs
ZXJhdGVzRHJhd2luZyA6IDE7CiAgICAgYm9vbCBtX21haW50YWluc1BpeGVsQWxpZ25tZW50IDog
MTsKICAgICBib29sIG1fYXBwbGllc1BhZ2VTY2FsZSA6IDE7IC8vIFNldCBmb3IgdGhlIGxheWVy
IHdoaWNoIGhhcyB0aGUgcGFnZSBzY2FsZSBhcHBsaWVkIHRvIGl0LgotCisgICAgYm9vbCBtX3No
b3dEZWJ1Z0JvcmRlciA6IDE7CisgICAgYm9vbCBtX3Nob3dSZXBhaW50Q291bnRlciA6IDE7Cisg
ICAgCiAgICAgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgbV9wYWludGluZ1BoYXNlOwogICAg
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBtX2NvbnRlbnRzT3JpZW50YXRpb247
IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5ZXIgY29udGVudHMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmlu
ZGV4IDA2ZmZiOGEyMWU4MGY0OTA1YmMxMWE2ZDczYjEyNDdkZWU4OTE5ZjQuLjhiNmJmZmQxOTcx
M2NhMmZjMjRkYTEwMjU4YTQ0YWJjNDJkZjE2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTgyLDkgKzgy
LDYgQEAgcHVibGljOgogICAgIC8vIFBhZ2Ugc2NhbGUgZmFjdG9yLgogICAgIHZpcnR1YWwgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCi0gICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0ID0gMDsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGE1
ODgzN2MzMjViZDdjYzZlMTVhOGU4ZGI1ZDBhMTM4NmQyODU0MGYuLmUzNmI1ZTcwN2NmOWQwNmJh
ZTVjMzFjOTZkZTgyOTY4MDllNjgxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjg2LDggKzI4Niw2
IEBAIEdyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKEdyYXBoaWNzTGF5ZXJDbGllbnQq
IGNsaWVudCkKICAgICB9CiAKICAgICBtX2xheWVyID0gUGxhdGZvcm1DQUxheWVyOjpjcmVhdGUo
bGF5ZXJUeXBlLCB0aGlzKTsKLQotICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogICAgIG5v
dGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1NjYWxlQ2hhbmdlZCk7CiB9CiAKQEAgLTUy
MCw3ICs1MTgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0TWFza3NUb0JvdW5kcyhib29s
IG1hc2tzVG9Cb3VuZHMpCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dE1hc2tzVG9Cb3VuZHMobWFza3NUb0JvdW5kcyk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFu
Z2VkKE1hc2tzVG9Cb3VuZHNDaGFuZ2VkKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQo
TWFza3NUb0JvdW5kc0NoYW5nZWQgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldERyYXdzQ29udGVudChib29sIGRyYXdzQ29udGVudCkKQEAg
LTUyOSw3ICs1MjcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RHJhd3NDb250ZW50KGJv
b2wgZHJhd3NDb250ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyOjpz
ZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5n
ZWQoRHJhd3NDb250ZW50Q2hhbmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKERy
YXdzQ29udGVudENoYW5nZWQgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkKTsKIH0KIAogdm9pZCBH
cmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVmlzaWJsZShib29sIGNvbnRlbnRzVmlzaWJsZSkK
QEAgLTEwNDQsNyArMTA0Miw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5
ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9yCiAgICAgaWYgKG1f
aXNQYWdlVGlsZUNhY2hlTGF5ZXIgJiYgcGxhdGZvcm1MYXllcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIAotICAgIHJldHVybiBzaG93UmVwYWludENvdW50ZXIoKTsKKyAgICByZXR1cm4g
aXNTaG93aW5nUmVwYWludENvdW50ZXIoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnBs
YXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBjbGlwKQpAQCAtMTE1MSw2ICsxMTQ5LDkgQEAgdm9pZCBHcmFwaGljc0xheWVy
Q0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhmbG9hdCBwYWdlU2NhbGVGYWN0
b3IsIGMKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBBY2NlbGVyYXRlc0RyYXdpbmdD
aGFuZ2VkKQogICAgICAgICB1cGRhdGVBY2NlbGVyYXRlc0RyYXdpbmcoKTsKIAorICAgIGlmICht
X3VuY29tbWl0dGVkQ2hhbmdlcyAmIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQpCisgICAgICAgIHVw
ZGF0ZURlYnVnQm9yZGVyKCk7CisKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDaGls
ZHJlbkNoYW5nZWQpIHsKICAgICAgICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7CiAgICAgICAgIC8v
IFN1YmxheWVycyBtYXkgc2V0IHRoaXMgZmxhZyBhZ2Fpbiwgc28gY2xlYXIgaXQgdG8gYXZvaWQg
YWx3YXlzIHVwZGF0aW5nIHN1YmxheWVycyBpbiBjb21taXRMYXllckNoYW5nZXNBZnRlclN1Ymxh
eWVycygpLgpAQCAtMTM0Myw4ICsxMzQ0LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZU1hc2tzVG9Cb3VuZHMoKQogICAgICAgICBmb3IgKExheWVyTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IGxheWVyQ2xvbmVNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAg
IGl0LT52YWx1ZS0+c2V0TWFza3NUb0JvdW5kcyhtX21hc2tzVG9Cb3VuZHMpOwogICAgIH0KLQot
ICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNWaXNpYmlsaXR5KCkKQEAgLTE1MjgsNyArMTUyNyw2IEBAIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjp1cGRhdGVMYXllckRyYXdzQ29udGVudChmbG9hdCBwYWdlU2NhbGVGYWN0
b3IsIGNvbnN0IEZsb2F0CiAgICAgICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRDb250ZW50cygw
KTsKICAgICAgICAgfQogICAgIH0KLSAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIAog
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFjY2VsZXJhdGVzRHJhd2luZygpCkBAIC0xNTM2
LDYgKzE1MzQsMTQgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUFjY2VsZXJhdGVzRHJh
d2luZygpCiAgICAgbV9sYXllci0+c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKG1fYWNjZWxlcmF0ZXNE
cmF3aW5nKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZURlYnVnQm9yZGVyKCkK
K3sKKyAgICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkKKyAgICAgICAgdXBkYXRlRGVidWdJ
bmRpY2F0b3JzKCk7CisgICAgZWxzZQorICAgICAgICBtX2xheWVyLT5zZXRCb3JkZXJXaWR0aCgw
KTsKK30KKwogRmxvYXRSZWN0IEdyYXBoaWNzTGF5ZXJDQTo6YWRqdXN0VGlsZWRMYXllclZpc2li
bGVSZWN0KFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZp
c2libGVSZWN0LCBjb25zdCBGbG9hdFNpemUmIG9sZFNpemUpIGNvbnN0CiB7CiAgICAgLy8gSWYg
dGhlIG9sZCB2aXNpYmxlIHJlY3QgaXMgZW1wdHksIHdlIGhhdmUgbm8gaW5mb3JtYXRpb24gYWJv
dXQgaG93IHRoZSB2aXNpYmxlIGFyZWEgaXMgY2hhbmdpbmcKQEAgLTI0OTgsNiArMjUwNCwyNCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IsIGNvbnN0IEZsb2F0UG9pbgogICAgICAgICBtX2xheWVyLT5zZXROZWVkc0Rpc3Bs
YXkoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFNob3dEZWJ1Z0JvcmRlcihib29s
IHNob3dCb3JkZXIpCit7CisgICAgaWYgKHNob3dCb3JkZXIgPT0gbV9zaG93RGVidWdCb3JkZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNldFNob3dEZWJ1Z0JvcmRl
cihzaG93Qm9yZGVyKTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoRGVidWdJbmRpY2F0
b3JzQ2hhbmdlZCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRTaG93UmVwYWludENv
dW50ZXIoYm9vbCBzaG93Q291bnRlcikKK3sKKyAgICBpZiAoc2hvd0NvdW50ZXIgPT0gbV9zaG93
UmVwYWludENvdW50ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dFNob3dSZXBhaW50Q291bnRlcihzaG93Q291bnRlcik7CisgICAgbm90ZUxheWVyUHJvcGVydHlD
aGFuZ2VkKERlYnVnSW5kaWNhdG9yc0NoYW5nZWQpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogeyAgICAKICAg
ICBpZiAoY29sb3IuaXNWYWxpZCgpKQpAQCAtMjYxMSwxMCArMjYzNSw5IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxv
YXQgLypwYWdlU2NhCiAgICAgICAgIHwgQmFja2dyb3VuZENvbG9yQ2hhbmdlZAogICAgICAgICB8
IENvbnRlbnRzU2NhbGVDaGFuZ2VkCiAgICAgICAgIHwgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdl
ZAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgfCBGaWx0ZXJzQ2hhbmdlZAotI2Vu
ZGlmCi0gICAgICAgIHwgT3BhY2l0eUNoYW5nZWQ7CisgICAgICAgIHwgT3BhY2l0eUNoYW5nZWQK
KyAgICAgICAgfCBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkOwogICAgIAogI2lmbmRlZiBOREVCVUcK
ICAgICBTdHJpbmcgbmFtZSA9IFN0cmluZzo6Zm9ybWF0KCIlc0NBTGF5ZXIoJXApIEdyYXBoaWNz
TGF5ZXIoJXApICIsIChtX2xheWVyLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZVdlYlRpbGVkTGF5ZXIpID8gIlRpbGVkICIgOiAiIiwgbV9sYXllci0+cGxhdGZvcm1M
YXllcigpLCB0aGlzKSArIG1fbmFtZTsKQEAgLTI2MjYsOCArMjY0OSw2IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxv
YXQgLypwYWdlU2NhCiAgICAgCiAgICAgLy8gbmVlZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3
IGl0c2VsZgogICAgIHNldE5lZWRzRGlzcGxheSgpOwotICAgIAotICAgIHVwZGF0ZURlYnVnSW5k
aWNhdG9ycygpOwogfQogCiBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3Jp
ZW50YXRpb24gR3JhcGhpY3NMYXllckNBOjpkZWZhdWx0Q29udGVudHNPcmllbnRhdGlvbigpIGNv
bnN0CkBAIC0yNjUxLDcgKzI2NzIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBDb250
ZW50c0xheWVyKFBsYXRmb3JtQ0FMYXllciogY29udGVudHNMYXllcikKICAgICB9IGVsc2UKICAg
ICAgICAgY29udGVudHNMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwogCi0g
ICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgIGlmIChpc1Nob3dpbmdEZWJ1Z0JvcmRl
cigpKSB7CiAgICAgICAgIGNvbnRlbnRzTGF5ZXItPnNldEJvcmRlckNvbG9yKENvbG9yKDAsIDAs
IDEyOCwgMTgwKSk7CiAgICAgICAgIGNvbnRlbnRzTGF5ZXItPnNldEJvcmRlcldpZHRoKDEuMGYp
OwogICAgIH0KQEAgLTI4NDYsNyArMjg2Nyw3IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiBHcmFwaGljc0xheWVyQ0E6OmNsb25lTGF5ZXIoUGxhdGZvcm1DQUxheWVyICpsYXllciwKICAg
ICAgICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoQ29weSwgbGF5ZXIsIG5ld0xheWVyLmdldCgpKTsK
ICAgICB9CiAgICAgCi0gICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgIGlmIChpc1No
b3dpbmdEZWJ1Z0JvcmRlcigpKSB7CiAgICAgICAgIG5ld0xheWVyLT5zZXRCb3JkZXJDb2xvcihD
b2xvcigyNTUsIDEyMiwgMjUxKSk7CiAgICAgICAgIG5ld0xheWVyLT5zZXRCb3JkZXJXaWR0aCgy
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IDAwY2E2MmU3NTI1OTdjYzQzOGY5MTFmOGYxYzlhOTNk
ZGY4ODQ3YzUuLjJkZWIyZTI4YzlkYmY0MWI3ZjFmNDJhYWY3ZTNhMTU2OWM3NDhhZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oCkBAIC0xMjEsNiArMTIxLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhh
c0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXI7IH0KICAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCkgT1ZFUlJJREU7CisKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJX
aWR0aCk7CiAKQEAgLTE1Miw3ICsxNTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSk7
CiAgICAgdmlydHVhbCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gcGxhdGZvcm1D
QUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGNvbnRlbnRzT3JpZW50
YXRpb24oKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRz
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNsaXApOwotICAgIHZpcnR1YWwgYm9v
bCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyByZXR1cm4gc2hvd0Rl
YnVnQm9yZGVycygpOyB9CisgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dEZWJ1
Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpOyB9CiAgICAg
dmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNB
TGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRS
ZXBhaW50Q291bnQoKSB7IHJldHVybiBpbmNyZW1lbnRSZXBhaW50Q291bnQoKTsgfQogCkBAIC0z
MjYsNiArMzI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUxheWVyQW5pbWF0aW9ucygp
OwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNOZWVkc0Rpc3BsYXkoKTsKICAgICB2b2lkIHVwZGF0
ZUFjY2VsZXJhdGVzRHJhd2luZygpOworICAgIHZvaWQgdXBkYXRlRGVidWdCb3JkZXIoKTsKICAg
ICB2b2lkIHVwZGF0ZVZpc2libGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3Qp
OwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwaXhlbEFsaWdubWVudFNjYWxl
LCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlKTsKICAgICAKQEAgLTM3
Nyw5ICszODEsOCBAQCBwcml2YXRlOgogICAgICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDEg
PDwgMjMsCiAgICAgICAgIENvbnRlbnRzVmlzaWJpbGl0eUNoYW5nZWQgPSAxIDw8IDI0LAogICAg
ICAgICBWaXNpYmxlUmVjdENoYW5nZWQgPSAxIDw8IDI1LAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI2LAotI2VuZGlmCisgICAgICAgIERl
YnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxIDw8IDI3CiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2ln
bmVkIExheWVyQ2hhbmdlRmxhZ3M7CiAgICAgdm9pZCBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQo
TGF5ZXJDaGFuZ2VGbGFncyBmbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmNwcAppbmRleCBkZjMzNWQ4MTAyZTEwZjVmMTIwMzAyN2Y4Mjg3ZGQ4NTAzNjYyMDFjLi5iODM1
ODc4ZTkyMDk3NDM2ZTk1ZTZhOGZmZjA0M2EzMzg4OGJmNmViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTg0Nyw3ICs4NDcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKFdlYkxheWVyKiBjb250ZW50c0xheWVyKQog
ICAgICAgICAvLyBzaGFkb3cgY29udGVudCB0aGF0IG11c3QgZGlzcGxheSBpbiBmcm9udCBvZiB0
aGUgdmlkZW8uCiAgICAgICAgIG1fbGF5ZXItPmxheWVyKCktPmluc2VydENoaWxkKG1fY29udGVu
dHNMYXllciwgMCk7CiAKLSAgICAgICAgaWYgKHNob3dEZWJ1Z0JvcmRlcnMoKSkgeworICAgICAg
ICBpZiAoaXNTaG93aW5nRGVidWdCb3JkZXIoKSkgewogICAgICAgICAgICAgbV9jb250ZW50c0xh
eWVyLT5zZXREZWJ1Z0JvcmRlckNvbG9yKENvbG9yKDAsIDAsIDEyOCwgMTgwKS5yZ2IoKSk7CiAg
ICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldERlYnVnQm9yZGVyV2lkdGgoMSk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggMTFhNWQ1ODRmZjhhMzBlZjFi
ZDY4ZGU2NGE5OTkzNjBmZTgzZjljNi4uNDAxYWY4YzNlM2ExODRiY2I2YzRiZTg3MDk1Zjg1YmEz
NzVjMzYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTEyOSw3ICsxMjksNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtZGlydHlS
ZWN0LngoKSwgLWRpcnR5UmVjdC55KCkpOwogICAgIGxheWVyLT5wYWludEdyYXBoaWNzTGF5ZXJD
b250ZW50cygqY29udGV4dCwgZGlydHlSZWN0KTsKIAotICAgIGlmIChsYXllci0+c2hvd1JlcGFp
bnRDb3VudGVyKCkpIHsKKyAgICBpZiAobGF5ZXItPmlzU2hvd2luZ1JlcGFpbnRDb3VudGVyKCkp
IHsKICAgICAgICAgbGF5ZXItPmluY3JlbWVudFJlcGFpbnRDb3VudCgpOwogICAgICAgICBkcmF3
UmVwYWludENvdW50ZXIoY29udGV4dCwgbGF5ZXIpOwogICAgIH0KQEAgLTEzOCw3ICsxMzgsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIEdyYXBoaQogICAgIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdT
dG9yZSogYmFja2luZ1N0b3JlID0gc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlclRpbGVkQmFja2lu
Z1N0b3JlKj4obV9iYWNraW5nU3RvcmUuZ2V0KCkpOwogICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRl
Q29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UuZ2V0KCksIG1fc2l6ZSwgZGlydHlSZWN0LCBC
aXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7CiAKLSAgICBi
YWNraW5nU3RvcmUtPnNldFNob3dEZWJ1Z0JvcmRlcnMobGF5ZXItPnNob3dEZWJ1Z0JvcmRlcnMo
KSk7CisgICAgYmFja2luZ1N0b3JlLT5zZXRTaG93RGVidWdCb3JkZXJzKGxheWVyLT5pc1Nob3dp
bmdEZWJ1Z0JvcmRlcigpKTsKICAgICBiYWNraW5nU3RvcmUtPnNldERlYnVnQm9yZGVyKG1fZGVi
dWdCb3JkZXJDb2xvciwgbV9kZWJ1Z0JvcmRlcldpZHRoKTsKIAogICAgIG1fc3RhdGUubmVlZHNE
aXNwbGF5ID0gZmFsc2U7CkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5
ZXI6OmRyYXdSZXBhaW50Q291bnRlcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIEdyYXBoaWNz
TGEKICAgICBjYWlyb190ZXh0X2V4dGVudHMoY3IsIHJlcGFpbnRDb3VudC5kYXRhKCksICZyZXBh
aW50VGV4dEV4dGVudHMpOwogCiAgICAgc3RhdGljIGNvbnN0IGludCByZXBhaW50Q291bnRCb3Jk
ZXJXaWR0aCA9IDEwOwotICAgIHNldFNvdXJjZVJHQkFGcm9tQ29sb3IoY3IsIGxheWVyLT5zaG93
RGVidWdCb3JkZXJzKCkgPyBtX2RlYnVnQm9yZGVyQ29sb3IgOiBDb2xvcigwLCAyNTUsIDAsIDEy
NykpOworICAgIHNldFNvdXJjZVJHQkFGcm9tQ29sb3IoY3IsIGxheWVyLT5pc1Nob3dpbmdEZWJ1
Z0JvcmRlcigpID8gbV9kZWJ1Z0JvcmRlckNvbG9yIDogQ29sb3IoMCwgMjU1LCAwLCAxMjcpKTsK
ICAgICBjYWlyb19yZWN0YW5nbGUoY3IsIDAsIDAsCiAgICAgICAgICAgICAgICAgICAgIHJlcGFp
bnRUZXh0RXh0ZW50cy53aWR0aCArIChyZXBhaW50Q291bnRCb3JkZXJXaWR0aCAqIDIpLAogICAg
ICAgICAgICAgICAgICAgICByZXBhaW50VGV4dEV4dGVudHMuaGVpZ2h0ICsgKHJlcGFpbnRDb3Vu
dEJvcmRlcldpZHRoICogMikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCA1NTY5MDllOWQyYjBjM2E0OGJmNzZjZDRhODdmNjZjNzI2
MzhjMWRlLi44MjY3YmMzMTBlN2U0ZWYzZDM2OTk3ZGVmNGI4YTE4MjljMjkyYTkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjAz
LDYgKzIwMywzMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6YWRqdXN0VGlsZUNhY2hlQ292
ZXJhZ2UoKQogICAgIHRpbGVkQmFja2luZygpLT5zZXRUaWxlQ292ZXJhZ2UodGlsZUNvdmVyYWdl
KTsKIH0KIAordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURlYnVnSW5kaWNhdG9ycyhi
b29sIHNob3dCb3JkZXIsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKQoreworICAgIG1fZ3JhcGhp
Y3NMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7CisgICAgCisg
ICAgaWYgKG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyKQorICAgICAgICBtX2FuY2VzdG9yQ2xpcHBp
bmdMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dCb3JkZXIpOworCisgICAgaWYgKG1fZm9y
ZWdyb3VuZExheWVyKSB7CisgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXRTaG93RGVidWdC
b3JkZXIoc2hvd0JvcmRlcik7CisgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXRTaG93UmVw
YWludENvdW50ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKKyAgICB9CisKKyAgICBpZiAobV9tYXNr
TGF5ZXIpIHsKKyAgICAgICAgbV9tYXNrTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9y
ZGVyKTsKKyAgICAgICAgbV9tYXNrTGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlcihzaG93UmVw
YWludENvdW50ZXIpOworICAgIH0KKworICAgIGlmIChtX3Njcm9sbGluZ0xheWVyKQorICAgICAg
ICBtX3Njcm9sbGluZ0xheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0JvcmRlcik7CisKKyAg
ICBpZiAobV9zY3JvbGxpbmdDb250ZW50c0xheWVyKQorICAgICAgICBtX3Njcm9sbGluZ0NvbnRl
bnRzTGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93Qm9yZGVyKTsKK30KKwogdm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCkKIHsKICAgICBTdHJp
bmcgbGF5ZXJOYW1lOwpAQCAtMTU4NiwxNiArMTYxMSw2IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpnZXRDdXJyZW50VHJhbnNmb3JtKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hv
d0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4g
Y29tcG9zaXRvcigpID8gY29tcG9zaXRvcigpLT5jb21wb3NpdG9yU2hvd0RlYnVnQm9yZGVycygp
IDogZmFsc2U7Ci19Ci0KLWJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93UmVwYWludENvdW50
ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNvbXBvc2l0b3Io
KSA/IGNvbXBvc2l0b3IoKS0+Y29tcG9zaXRvclNob3dSZXBhaW50Q291bnRlcigpIDogZmFsc2U7
Ci19Ci0KIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjppc1RyYWNraW5nUmVwYWludHMoKSBjb25z
dAogewogICAgIEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCA9IGNvbXBvc2l0b3IoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAyMmZi
ODg5MDE2ZWRmNWIwYzFhOWNiNWMyNjIxNzA3Yjc3ZjM5NDZkLi4zOWFiYWVhZjM2ZmY0ZmM3NzAy
ODk1NGVlNDMwM2MxMzYwMzVhODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oCkBAIC0xNDEsNiArMTQxLDggQEAgcHVibGljOgogICAgIFRpbGVk
QmFja2luZyogdGlsZWRCYWNraW5nKCkgY29uc3Q7CiAgICAgdm9pZCBhZGp1c3RUaWxlQ2FjaGVD
b3ZlcmFnZSgpOwogICAgIAorICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKGJvb2wgc2hv
d0JvcmRlciwgYm9vbCBzaG93UmVwYWludENvdW50ZXIpOworICAgIAogICAgIC8vIEdyYXBoaWNz
TGF5ZXJDbGllbnQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVDYWNo
ZShjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSBzdGFy
dFRpbWUpIE9WRVJSSURFOwpAQCAtMTU0LDkgKzE1Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q3VycmVudFRyYW5zZm9ybShjb25zdCBH
cmFwaGljc0xheWVyKiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBjb25zdCBPVkVSUklERTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgYm9vbCBpc1Ry
YWNraW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5k
ZXggNmFhMzg1MTVjMTM0OGJhOWEzMjNjYzgxNDUxZDIwMWVmMGI0MDJmYy4uZDAyZTVlNDY5OTI2
YThjNTVmYmIwODM2ZTQ4NzVmMmQ5N2JmOGIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTU4Myw2ICs1ODMsMTAgQEAg
Ym9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXIqIGxh
eWVyLCBDb21wb3NpdGluZ0NoYW5nZVIKICAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAg
ICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3Rml4ZWRPYmplY3RzRGlk
Q2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkpOwogICAgIH0KKyAgICAKKyAgICBpZiAo
bGF5ZXItPmJhY2tpbmcoKSkKKyAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+dXBkYXRlRGVidWdJ
bmRpY2F0b3JzKG1fc2hvd0RlYnVnQm9yZGVycywgbV9zaG93UmVwYWludENvdW50ZXIpOworCiAg
ICAgcmV0dXJuIGxheWVyQ2hhbmdlZDsKIH0KIApAQCAtMjA0NCwyMiArMjA0OCw2IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzZXRUcmFja3NSZXBhaW50cyhib29sIHRyYWNrc1JlcGFp
bnRzKQogICAgIG1faXNUcmFja2luZ1JlcGFpbnRzID0gdHJhY2tzUmVwYWludHM7CiB9CiAKLWJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIGlmIChsYXllciA9PSBtX2xheWVyRm9ySG9yaXpv
bnRhbFNjcm9sbGJhciB8fCBsYXllciA9PSBtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIgfHwg
bGF5ZXIgPT0gbV9sYXllckZvclNjcm9sbENvcm5lcikKLSAgICAgICAgcmV0dXJuIG1fc2hvd0Rl
YnVnQm9yZGVyczsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikg
Y29uc3QKLXsKLSAgICBpZiAobGF5ZXIgPT0gbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIg
fHwgbGF5ZXIgPT0gbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyIHx8IGxheWVyID09IG1fbGF5
ZXJGb3JTY3JvbGxDb3JuZXIpCi0gICAgICAgIHJldHVybiBtX3Nob3dEZWJ1Z0JvcmRlcnM7Ci0K
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1Ry
YWNraW5nUmVwYWludHMoKSBjb25zdAogewogICAgIHJldHVybiBtX2lzVHJhY2tpbmdSZXBhaW50
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAppbmRleCBlNThhYTNhNmNjZDAzNmM4YmMwN2VhMDZjZDIwNmUzYzZjN2UxNWRhLi44MWFhZjQx
NDFkYzMxYTE2OGJhNjY1YjAyNmYzYjZlYjdjZDY3MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yMDIsMTEgKzIwMiw2IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MpOwog
Ci0gICAgLy8gVGhlc2UgYXJlIG5hbWVkIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHRoZSBmdW5j
dGlvbnMgaW4gR3JhcGhpY3NMYXllckNsaWVudAotICAgIC8vIFRoZXNlIHJldHVybiB0aGUgYWN0
dWFsIGludGVybmFsIHZhcmlhYmxlcy4KLSAgICBib29sIGNvbXBvc2l0b3JTaG93RGVidWdCb3Jk
ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9Ci0gICAgYm9vbCBjb21w
b3NpdG9yU2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9zaG93UmVwYWludENv
dW50ZXI7IH0KLQogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3Jh
cGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwpAQCAtMjM5LDkgKzIzNCw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXll
ciopIE9WRVJSSURFIHsgc2NoZWR1bGVMYXllckZsdXNoKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKIAotICAg
IHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgYm9vbCBpc1RyYWNr
aW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKICAgICAKICAgICAvLyBHcmFwaGljc0xheWVy
VXBkYXRlckNsaWVudCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViT3ZlcmxheV9wLmgKaW5kZXggODQ2ZTVjYzdhNTg2MzhlZjA3MzJhNDFjNzhkYjg5MDA3
YzAzMDkyOC4uNzQyZmUwYmIxYTI5NDdiZDJhMzVjNWM0Y2YwNWQwNTE5NTJlNGNiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCkBAIC0xNjcsOCArMTY3
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBjb250ZW50c1Zpc2libGUoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAppbmRleCA3NTY5MzIwYjk4MWVhMDRlNDEyZmZmNjZkMDI5ZTA2MTliMmM4ZWYyLi5m
ZDQ5YjQ4ZGUyN2I3NjE1NzZjMDM3ZGY5OTZlNzNhNGFlN2QyYmJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTU3MzEsMTYgKzU3MzEsNiBAQCB2b2lkIFdl
YlBhZ2VQcml2YXRlOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQog
ewogICAgIHNjaGVkdWxlUm9vdExheWVyQ29tbWl0KCk7CiB9Ci0KLWJvb2wgV2ViUGFnZVByaXZh
dGU6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQotCi1ib29s
IFdlYlBhZ2VQcml2YXRlOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3Vu
dGVyKCk7Ci19CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lk
IFdlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBkZWUwODQ5NTIxMGNhYTFl
ODMzYTRjZDZlZWQyMzZiYTFhMTI0MmM0Li5mNGIwOTQ3NDJmYjRjZDQ3NzVjMGRmMmNhODk4NWVj
NTVjMGJiYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAg
LTQwMSw4ICs0MDEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXAp
IHsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVy
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogICAgIC8vIFdlYktpdCB0
aHJlYWQsIHBsdW1iZWQgdGhyb3VnaCBmcm9tIENocm9tZUNsaWVudEJsYWNrQmVycnkuCiAgICAg
dm9pZCBzZXRSb290TGF5ZXJXZWJLaXRUaHJlYWQoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpM
YXllcldlYktpdFRocmVhZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcAppbmRleCA0NTQ3
MmFhZmQ5NGIwMzg3Y2NlNmYyYjE4MmViM2NkNjkxYTkxZGRhLi43N2IyYzc1YWM3ZDcxZGE2MTI2
ZjhjNDgwYTgyMWNlZWM5MjEyZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcApAQCAt
MTQ4LDE2ICsxNDgsNiBAQCB2b2lkIERlZmF1bHRUYXBIaWdobGlnaHQ6OnBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgYwogICAgIGMucmVzdG9yZSgp
OwogfQogCi1ib29sIERlZmF1bHRUYXBIaWdobGlnaHQ6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3Qg
R3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hvd0Rl
YnVnQm9yZGVycyhsYXllcik7Ci19Ci0KLWJvb2wgRGVmYXVsdFRhcEhpZ2hsaWdodDo6c2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJl
dHVybiBtX3BhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7Ci19Ci0KIGJvb2wgRGVmYXVs
dFRhcEhpZ2hsaWdodDo6Y29udGVudHNWaXNpYmxlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCkgY29uc3QKIHsKICAgICAvLyBUaGlzIGxheWVyIGlzIHR5
cGljYWxseSBzbWFsbCBlbm91Z2ggdGhhdCB3ZSBjYW4gYWZmb3JkIHRvIGNhY2hlIGFsbCB0aWxl
cyBhbmQgbmV2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaAppbmRleCAwNmM1NTkwNTc5NTIwOTNm
YWQ4Y2E5YTVkMThmMGE3NzIwNmVmY2FlLi45MGFmOTRjYWFiOTFhZTQ5ZTI0MDQ2OWM3MjU2MmYx
YWMzOTFkYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oCkBAIC01Nyw4ICs1Nyw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7Ci0gICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Owot
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjb250ZW50c1Zpc2libGUoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRS
ZWN0KSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0Jl
cnJ5LmNwcAppbmRleCAwODE1ZGQ5N2JjYjI5NWRkZWIwNGI4NmMyMzIwYTM2NTc3NTVkM2UwLi41
MmM5YzRkMmU4NjI5ZjY4N2I0NDk3NWI5MWQyNTBiZTZjNDgwMzI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tC
ZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5z
cGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwCkBAIC01NiwxNSArNTYsNiBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IFdlYkNvcmU6OkdyYQogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCi1ib29sIEluc3BlY3Rv
ck92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
bGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd0RlYnVnQm9yZGVycyhs
YXllcik7Ci19Ci0KLWJvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd1JlcGFpbnRDb3VudGVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJldHVybiBt
X3dlYlBhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7Ci19CiAjZW5kaWYKIAogSW5zcGVj
dG9yT3ZlcmxheTo6fkluc3BlY3Rvck92ZXJsYXkoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5
LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5QmxhY2tCZXJyeS5oCmluZGV4IDkxMTk3Y2MwYzljYjgzYzM2YzFjMmQ0NTdjNjI2MTQ1MmQz
ZDMxMDcuLjZkZjRiYTYyYWY4N2JmNzc5NTRjMzRlNTFlOWNlMGE5OGZkNzU5OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJs
YXlCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93
RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAppbmRl
eCBlMDZmN2RmMWMxMTBjZjNhOWZiOTczMzU2YmJjMGJjNWEzZTY4Yjk1Li5kMzUyYjE3N2E0Mzkw
Y2MxNDkxODZhY2JmOWJkYTRiYzRiNDNiNDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApAQCAt
MTE3LDE2ICsxMTcsNiBAQCB2b2lkIFNlbGVjdGlvbk92ZXJsYXk6OnBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgYywgRwogICAgIGMucmVzdG9yZSgp
OwogfQogCi1ib29sIFNlbGVjdGlvbk92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGFnZS0+c2hvd0RlYnVn
Qm9yZGVycyhsYXllcik7Ci19Ci0KLWJvb2wgU2VsZWN0aW9uT3ZlcmxheTo6c2hvd1JlcGFpbnRD
b3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJldHVybiBt
X3BhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmggYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKaW5kZXgg
NTc2MmI1YTg5YzFkNGI2NWZjNzg0OTVlMTRlNmEwNjdkMWQwNjA0Yi4uZDI3MDRkYzNmN2I3MjAx
ZWVjMjc0ZTNlYjE3NDNhODBmNmJlYTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaApAQCAtNTIsOCAr
NTIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwotICAgIHZp
cnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBTZWxlY3Rpb25PdmVy
bGF5KFdlYlBhZ2VQcml2YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAppbmRleCAyM2RjZGRlOWI3OWI0OTg5
NWEyZjIyMWI3YmE1MTAwYTM2Y2MzYTJmLi5mNWI2YjYwMzY4ZjZhYzZiZGEwYjVjYzI0NTc3NjJk
ZGE2ZThjYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21w
b3NpdGVkQ29udGVudEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKQEAgLTE5MSwxNiArMTkxLDYgQEAgdm9pZCBOb25D
b21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCBzaG93RGVidWdC
b3JkZXJzKQogICAgIG1fZ3JhcGhpY3NMYXllci0+dXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiB9
CiAKLWJvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3Nob3dEZWJ1
Z0JvcmRlcnM7Ci19Ci0KLWJvb2wgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzaG93UmVwYWlu
dENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotCiBib29sIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6aXNUcmFja2lu
Z1JlcGFpbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV93ZWJWaWV3LT5pc1RyYWNraW5nUmVw
YWludHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0LmgKaW5kZXggMmI2ZGRjMWFhYjAwMjYxNWUyYjkxZjc4OWE2NjVkNDNm
MmI1YjA4MS4uYjJkMTA1MDM5ODY0ZDQ5YzJjNzg5NTRmZjE0OGVhM2ZkZGNjYTdkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LmgKQEAgLTcxLDggKzcxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRp
bWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291
bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0OwogCiAgICAgYm9vbCBoYXZlU2Nyb2xsTGF5
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAppbmRleCBh
MTZhMDEwNzdlYjM1YWJjODI3MDg3Nzk5Mjk1MzY1NDljNGI4ZjYzLi5jOTU2ODdhZjYzZDVkY2I4
MDdkMmY3ZjVmYzA0N2JlNDc0MzkyZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGFnZU92ZXJsYXkuY3BwCkBAIC05NCwxNiArOTQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBtX3dlYlZpZXdJbXBsLT5wYWdlU2NhbGVGYWN0b3IoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5wYWdlKCktPnNldHRpbmdzKCktPnNob3dE
ZWJ1Z0JvcmRlcnMoKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
d2ViVmlld0ltcGwtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci0g
ICAgfQotCiBwcml2YXRlOgogICAgIE92ZXJsYXlHcmFwaGljc0xheWVyQ2xpZW50SW1wbChXZWJW
aWV3SW1wbCogd2ViVmlld0ltcGwsIFdlYlBhZ2VPdmVybGF5KiBvdmVybGF5KQogICAgICAgICA6
IG1fb3ZlcmxheShvdmVybGF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMGNlODQyNTdiNWJh
N2JiODMwMWVlN2VkNjEzN2JiNWRiMDQ0NWZlNy4uYjA0YjNhOTQ1M2ExZmUyYmI0ODljNzUwYTUw
YTAxNjk5OTdhOTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9H
cmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC01Miw4ICs1Miw2IEBAIGNs
YXNzIE1vY2tHcmFwaGljc0xheWVyQ2xpZW50IDogcHVibGljIEdyYXBoaWNzTGF5ZXJDbGllbnQg
ewogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBkb3VibGUgdGltZSkgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIE9WRVJSSURFIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0Nv
bnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgaW5DbGlw
KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBH
cmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAyOyB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JbWFnZUxheWVyQ2hyb21pdW1UZXN0LmNwcApp
bmRleCBiZmIwM2VkMzA0ZjQ5OGM4M2QwOGVmZDcxNTNiNjFhYTYyZmVlNWI1Li43NGMyZjE2Njlh
NDU0MzI0YjVlMzRmOWZmMDUzMWQ4MzQwYTQ4Yzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTQwLDgg
KzQwLDYgQEAgY2xhc3MgTW9ja0dyYXBoaWNzTGF5ZXJDbGllbnQgOiBwdWJsaWMgR3JhcGhpY3NM
YXllckNsaWVudCB7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYs
IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIHsgfQot
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50
ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBj
bGFzcyBUZXN0SW1hZ2UgOiBwdWJsaWMgSW1hZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmgKaW5kZXggNjU3MmVhNWVhZDI4MTNjNzViZjU3Y2UxNDM5MWMxOWQwZWE0YzE1OC4uMDI1
OTdkMTZkM2ZhNTQyOWQ2Y2EzMzYxMmI2M2FjMGRiYzdiOTNlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5oCkBAIC02MCw4ICs2MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
ZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3RUb1BhaW50KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAK
ICAgICB2b2lkIGluaXRpYWxpemUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dENhaXJvLmNwcAppbmRleCAzNzg5MDM0MjYzMGVjNTBkZjRmYjg5YTMwNWQxNzRlMTA5NTc1
YjhjLi5jYzY5NDJlZTg4Mzk1NWYzMjc1ZGEzNmE5YTYwMWY1NGY4OWM2NjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcApAQCAtMTY5LDE2ICsxNjksNiBA
QCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljcwogICAgIGNvcHlSZWN0RnJvbUNhaXJvU3VyZmFjZVRv
Q29udGV4dChtX3dlYlZpZXctPnByaXYtPmJhY2tpbmdTdG9yZS0+Y2Fpcm9TdXJmYWNlKCksIGNy
LCBJbnRTaXplKCksIHJlY3RUb1BhaW50KTsKIH0KIAotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsK
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfQ0FJ
Uk8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcAppbmRl
eCA4N2NlYjZlYTAyNGFiNDBmOGE0ODNhODYxMzM3MjM4NzVlZTM2ZjFlLi45ZmNhZTUyNTdhNDE1
YTkzNGJjNDJjNWMzNmJjMDhmZTU2ZWI1OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKQEAgLTE2NSwxOCArMTY1LDYgQEAgdm9pZCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiwKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotYm9vbCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QKLXsK
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoQ0xVVFRFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAK
aW5kZXggZWZjMjA2MTkzNDRlYjI1YzI4NTQ2YmVkMmRkZDdjNzRmNDQ1ZWFiZi4uZDEzMGEzZmI3
YjNiMTg5MDZhZWE5ZGY4OTg5MzRiMWE2ZmZhZjAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRHTC5jcHAKQEAgLTM4MywxNiArMzgzLDYgQEAgdm9pZCBBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3Jh
cGhpY3MKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6c2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQ6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDNhMWI3NGUyMTM1MWZhZGE2ZDQxYWNkZjg5ZjI1
NGE4M2FhY2I2ODcuLmRkNzAwOGViM2E0YTdkYzY4MGRkMmYwZjI2Zjg3MTgwMGFkYzIxZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCkBAIC02NjQ1LDE2ICs2NjQ1LDYgQEAgdm9pZCBXZWJWaWV3Ojpw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIEdyYXAKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotYm9vbCBXZWJWaWV3OjpzaG93
RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBt
X3BhZ2UtPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKLX0KLQotYm9vbCBXZWJWaWV3
OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0KIHZv
aWQgV2ViVmlldzo6Zmx1c2hQZW5kaW5nR3JhcGhpY3NMYXllckNoYW5nZXMoKQogewogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fbWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCA5
OGZjYmIzZTFiZDNiYjUyNjU5YjBjNWRhZDg2Y2QyMjE5NTIzZGUwLi5jOTM3MzQ2MmZlZjI4NDFl
NTc3YzA2MDlkMDM4MmYxYjczNjA3YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCkBAIC0xMDIwLDggKzEw
MjAsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVk
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
Y29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAKICAgICAvLyBDQUNGTGF5ZXJUcmVlSG9zdENsaWVu
dAogICAgIHZpcnR1YWwgdm9pZCBmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlcygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKaW5kZXggZGRlYTMxZDdiZWJhM2NhMTk4YjM4
MjQyZDg2MDNhZTcwZTQ2ZDZhMy4uODU5NjAyMjk2MjQxZTAxNGM2YTcyZjg2NzI2OWE2ZGI0ZTE2
Y2NlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCkBAIC0xMDgsOCArMTA4LDYg
QEAgcHJpdmF0ZToKICAgICAvLyBSZWltcGxlbWVudGF0aW9ucyBmcm9tIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIHsg
fQotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG93
UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogICAgIHZvaWQg
dXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIGRpc3BhdGNoT25NYWluVGhyZWFkKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoKT4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmNwcAppbmRleCA5ZWIzNzhlNWRhMzMxZmM4YzkxYzUyYTQ0OTliNmE1
OWQ0ZWZmMmFjLi4wZGRmY2VkY2QwZWMwYTZlMzZkZTUyZTc0MTI3YWUxZDlkZmRlYWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3Bw
CkBAIC01NzgsMTYgKzU3OCw2IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnBhaW50Q29u
dGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMCiAgICAgfQogfQog
Ci1ib29sIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQ
YWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKLX0KLQotYm9vbCBMYXllclRy
ZWVDb29yZGluYXRvcjo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRp
bmdzKCktPnNob3dSZXBhaW50Q291bnRlcigpOwotfQotCiBQYXNzT3duUHRyPEdyYXBoaWNzTGF5
ZXI+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5
ZXJDbGllbnQqIGNsaWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcihjbGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGQ3MjVhZjY5N2E4NTNkZWM5MWZjNjg5NTkyYTI1
ZDMwOTY0NzcxZjUuLmNhY2I2OGVhYWU1Yjk3OWExNTViNzA1NjRlZGMxODJlZTNkYTMwOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApA
QCAtMTEyLDggKzExMiw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVj
dCk7Ci0gICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogCiAgICAgLy8gR3JhcGhpY3NM
YXllckZhY3RvcnkKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2Ev
TGF5ZXJUcmVlSG9zdENBLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9j
YS9MYXllclRyZWVIb3N0Q0EuY3BwCmluZGV4IDA4NzJmNDM1NTBlNzYyZmRmOTZlZjhjODIyNDky
ZTM0NTYzMzNmY2UuLmRiYTU1YzIxMjI5M2Q2NTJlODZhNmJiZGExOTBiYzgwNTY4MTllMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVI
b3N0Q0EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXll
clRyZWVIb3N0Q0EuY3BwCkBAIC0yMDMsMTYgKzIwMyw2IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdENB
OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBo
aWNzCiAgICAgfQogfQogCi1ib29sIExheWVyVHJlZUhvc3RDQTo6c2hvd0RlYnVnQm9yZGVycyhj
b25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3Jl
UGFnZSgpLT5zZXR0aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7Ci19Ci0KLWJvb2wgTGF5ZXJU
cmVlSG9zdENBOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1Jl
cGFpbnRDb3VudGVyKCk7Ci19Ci0KIGZsb2F0IExheWVyVHJlZUhvc3RDQTo6ZGV2aWNlU2NhbGVG
YWN0b3IoKSBjb25zdAogewogICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPmRldmlj
ZVNjYWxlRmFjdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmgKaW5kZXggOWNiOGNhNmE1NGZjMzg2ZDJiZTNjODky
OTI0OGNmYmU1ZTAyYzY1Zi4uMjFiMTNkYTFjMjQ5MmUzZDNmZTQ0YWI4ODg0ZDY5ZmVmYjFjYTBi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVy
VHJlZUhvc3RDQS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9M
YXllclRyZWVIb3N0Q0EuaApAQCAtNzYsOCArNzYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
LCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRl
bnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgY2xpcFJlY3QpOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hv
d1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KikgY29uc3QgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCmluZGV4IGFmMmFlODliZmEyOTE1NWNl
ZmE2MzJkYTIyYzdlNmJmM2FlYWI1YzYuLjA3ZmUxMjg1NWE3ZGE4MTlhODIzMWUwOTg1OWRiZWEy
MzBlMGU5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcApAQCAtMjU4LDE2ICsyNTgsNiBAQCB2b2lk
IExheWVyVHJlZUhvc3RHdGs6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllciwgR3JhcGhpYwogICAgIH0KIH0KIAotYm9vbCBMYXllclRyZWVIb3N0R3RrOjpz
aG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdAotewotICAgIHJldHVy
biBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsK
LX0KLQotYm9vbCBMYXllclRyZWVIb3N0R3RrOjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3Jh
cGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+
c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0KIGdib29sZWFuIExheWVyVHJl
ZUhvc3RHdGs6OmxheWVyRmx1c2hUaW1lckZpcmVkQ2FsbGJhY2soTGF5ZXJUcmVlSG9zdEd0ayog
bGF5ZXJUcmVlSG9zdCkKIHsKICAgICBsYXllclRyZWVIb3N0LT5sYXllckZsdXNoVGltZXJGaXJl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9M
YXllclRyZWVIb3N0R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0xheWVyVHJlZUhvc3RHdGsuaAppbmRleCA2MWI5ZmE2NzE1ODMzNmEzNDYzY2RjMGNmN2NjODk4
MzdlMGIxMTI0Li44NDBhZGE4MTNhNjcwZDYwZWViYjhlNWI0MTMwODJmNjg2ZjRkMDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhv
c3RHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVy
VHJlZUhvc3RHdGsuaApAQCAtNzcsOCArNzcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgY2xpcFJlY3QpOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1Jl
cGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBjb25zdCB7IH0KIAogICAgIHZvaWQgY3JlYXRlUGFnZU92ZXJsYXlMYXllcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IGY1MDQ4YTk4
NWVlNTg3YmI3MmIzYjAwY2I1Mjk0N2JjYzhmM2RmYWMuLjdkNWIzYmU5NjYyMDRiODMxMmY5ZTVl
ZDY2NTg3ZDY5Mjk4MTFiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRp
bWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hv
d0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgLy8gV2ViQ29yZTo6TGF5ZXJGbHVz
aFNjaGVkdWxlckNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0KaW5kZXggZmNkNzJjYWM5MmE4N2Q4NDRiZmM4ODE3Y2MwMWY2ZGY0YWI3MTc1Zi4uY2Y1ZDIz
ZTAxM2I5ODRjYjdiY2Q5MzFkYTMyM2U4N2M0N2U2MmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC0yNzMsMTYgKzI3Myw2IEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMCiAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoZ3JhcGhpY3NDb250
ZXh0LCBjbGlwUmVjdCk7CiB9CiAKLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygp
OwotfQotCi1ib29sIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzaG93UmVwYWludENv
dW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFn
ZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCk7Ci19Ci0KIGZs
b2F0IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKTsK
</data>
<flag name="review"
          id="186423"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>