<?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>98430</bug_id>
          
          <creation_ts>2012-10-04 11:18:54 -0700</creation_ts>
          <short_desc>Final part of &quot;sync&quot; to &quot;flush&quot; renaming</short_desc>
          <delta_ts>2012-10-08 10:30:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>mifenton</cc>
    
    <cc>noam</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734854</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-04 11:18:54 -0700</bug_when>
    <thetext>Final part of &quot;sync&quot; to &quot;flush&quot; renaming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734859</commentid>
    <comment_count>1</comment_count>
      <attachid>167141</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-04 11:21:16 -0700</bug_when>
    <thetext>Created attachment 167141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734861</commentid>
    <comment_count>2</comment_count>
      <attachid>167141</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-04 11:22:25 -0700</bug_when>
    <thetext>Comment on attachment 167141
Patch

r=me, not you :) (assuming the bots are happy)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734869</commentid>
    <comment_count>3</comment_count>
      <attachid>167141</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-04 11:29:42 -0700</bug_when>
    <thetext>Comment on attachment 167141
Patch

Attachment 167141 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14181068</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734887</commentid>
    <comment_count>4</comment_count>
      <attachid>167149</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-04 11:37:31 -0700</bug_when>
    <thetext>Created attachment 167149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734923</commentid>
    <comment_count>5</comment_count>
      <attachid>167149</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-04 12:18:49 -0700</bug_when>
    <thetext>Comment on attachment 167149
Patch

Attachment 167149 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14171338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734939</commentid>
    <comment_count>6</comment_count>
      <attachid>167149</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-04 12:55:16 -0700</bug_when>
    <thetext>Comment on attachment 167149
Patch

Attachment 167149 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14168404</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734945</commentid>
    <comment_count>7</comment_count>
      <attachid>167159</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-04 13:01:50 -0700</bug_when>
    <thetext>Created attachment 167159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734997</commentid>
    <comment_count>8</comment_count>
      <attachid>167159</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-04 13:59:49 -0700</bug_when>
    <thetext>Comment on attachment 167159
Patch

Attachment 167159 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14172365</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735042</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-04 14:58:49 -0700</bug_when>
    <thetext>qt-wk2 error looks unrelated:
Source/WebKit2/Platform/CoreIPC/Attachment.h:34: error: expected constructor, destructor, or type conversion before &apos;namespace&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735178</commentid>
    <comment_count>10</comment_count>
      <attachid>167159</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-04 17:36:27 -0700</bug_when>
    <thetext>Comment on attachment 167159
Patch

Rejecting attachment 167159 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ium&apos;, &apos;--force-update&apos;]&quot; exit_code: 9
content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Unreviewed, rolling out r130419.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.

Full output: http://queues.webkit.org/results/14180233</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736775</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-08 10:30:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130439</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167141</attachid>
            <date>2012-10-04 11:21:16 -0700</date>
            <delta_ts>2012-10-04 11:37:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98430-20121004112026.patch</filename>
            <type>text/plain</type>
            <size>67021</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1MWE0MDczOGQxOTQ1
YjU1Nzg0N2JkZTJjMWQwYjVlMDNlYmVjYy4uNDY2NThkM2U2NWUzNTY3ZDRjMDg5Y2Q0YzVjMTYz
OGY5OTZmMjljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEwLTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmFsIHBhcnQg
b2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xheWVy
IGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRoYXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMiIHRv
IHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3RlYWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAgICAg
d2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpmbHVz
aENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgIChHcmFwaGljc0xheWVyQ2xp
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0dyYXBoaWNzTGF5
ZXJCbGFja0JlcnJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQmxhY2tCZXJy
eTo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldl
YktpdFRocmVhZDo6c2V0TmVlZHNDb21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJEaWRDcmVhdGVUaWxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBvc2l0aW9uRm9yQ2xvbmVSb290
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpub3RlTGF5ZXJQcm9w
ZXJ0eUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6Om5vdGlmeUNoYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlRm9yVGhpc0xheWVyT25seSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaDoKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAg
ICAoVGV4dHVyZU1hcHBlckxheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5
Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
OgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorCiAyMDEyLTEwLTA0ICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgaW5saW5lLWZsZXggYmFzZWxpbmUgaXMg
c29tZXRpbWVzIHdyb25nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBhNTVkOGYz
N2QwZjMyMTRlZGRjMTI1NjcxNWRmZWQwMDA3OTk3ZGVmLi5iOGQyOGFmNTc1MDBkNzM0YmQ2NGFi
MjVlYjEwZGJhZDIzNzA1NGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNyBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1c2giIHJlbmFtaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQzMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBt
ZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXllckNsaWVudCB0aGF0
CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZsdXNoIiBpbnN0ZWFk
LCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNvZGUuCisK
KyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpub3RpZnlGbHVzaFJlcXVpcmVkKToK
KyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheV9wLmg6CisgICAgICAgIChXZWJPdmVybGF5UHJpdmF0
ZVdlYktpdFRocmVhZCk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6Cisg
ICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHA6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6Om5vdGlmeUZsdXNoUmVxdWly
ZWQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oOgorICAg
ICAgICAoRGVmYXVsdFRhcEhpZ2hsaWdodCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnNw
ZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
Okluc3BlY3Rvck92ZXJsYXk6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaDoKKyAgICAgICAgKEluc3BlY3Rv
ck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6Om5vdGlmeUZs
dXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5o
OgorICAgICAgICAoU2VsZWN0aW9uT3ZlcmxheSk6CisKKzIwMTItMTAtMDQgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZs
dXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDMxMjM4YzJlNzRmZmY0MTMzOGIxNWRhYzE4N2I4MmJlNWQ1ZTAy
ZjEuLmNiMDdkZjc0MTI4NWJjMDgwZmVlN2Y2ZmZiYzc2MTQ3NWRhN2FlZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1
c2giIHJlbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENoYW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXll
ckNsaWVudCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZs
dXNoIiBpbnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2Yg
dGhlIGNvZGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c3luY0xheWVyc05vdyk6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOgorCisyMDEyLTEw
LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFN0
YW5kYXJkaXplIG9uICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZs
dXNoaW5nL3N5bmNpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4MzIxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyNzcwZDM0YzIzMmMxZDZiMGJkNzBi
MjY2MzA0NGM0NTAzZDkzYTZkLi44MjY5ZGJmY2EwNWZmMjFkY2JlNGRmMjZjNmU1NTM3NjIwYmQ4
OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTItMTAtMDQgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgRmluYWwgcGFydCBv
ZiAic3luYyIgdG8gImZsdXNoIiByZW5hbWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgbWV0aG9kIG5hbWVzIG9uIEdyYXBoaWNzTGF5ZXIg
YW5kIEdyYXBoaWNzTGF5ZXJDbGllbnQgdGhhdAorICAgICAgICByZWZlciB0byAic3luYyIgdG8g
dXNlIHRoZSB0ZXJtICJmbHVzaCIgaW5zdGVhZCwgdG8gYmUgY29uc2lzdGVudAorICAgICAgICB3
aXRoIHRoZSByZXN0IG9mIHRoZSBjb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKKyAgICAgICAgKEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktp
dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJvb3RMYXllcik6CisgICAg
ICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzTm93
KToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAo
V2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisKKzIwMTItMTAtMDQg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRh
cmRpemUgb24gImZsdXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hp
bmcvc3luY2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTgzMjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc2ZDgwYTA1ZmYzYWI4OTBkYmIxOTJlNGJm
YWI1MWUyMWU2YTg0YzMuLjhlZTI4YjkwNzgyMjE1NzBlNTE3ZDEwYmI4ZDhmMDJmNmMyYWFkMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJz
eW5jIiB0byAiZmx1c2giIHJlbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQg
R3JhcGhpY3NMYXllckNsaWVudCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2Ug
dGhlIHRlcm0gImZsdXNoIiBpbnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGgg
dGhlIHJlc3Qgb2YgdGhlIGNvZGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisK
KzIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAg
ICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcg
bGF5ZXIgZmx1c2hpbmcvc3luY2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAwMTIyY2U3NWYxYjQ1NjE3
YjE1NGNiYTZhODAwNDE1ZjE2NmM1NmY4Li5hMzNhMDY0N2I1YmJhZTEzYjI4NTg4YWQwMTNkZjFj
NGU0MzUyN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTEwLTA0ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEZpbmFsIHBh
cnQgb2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xh
eWVyIGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRoYXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMi
IHRvIHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3RlYWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAg
ICAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1BhZ2VDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXJD
bGllbnRRdDo6c3luY1Jvb3RMYXllcik6CisKKzIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0
ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IGI5OTU5OTBmMzc0Yjg4NGNiNWFlMTc5NDMxZmUyMTdlZDU0NTJiMjIuLjFm
NzU1ZjE4ZTE0MTdiOGZlNGMwYmIzMzRmNGEzYTZmN2IxY2I4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwyMSBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1c2giIHJl
bmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXllckNsaWVu
dCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZsdXNoIiBp
bnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNv
ZGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeUZs
dXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViVmlldzo6Zmx1c2hQZW5kaW5nR3JhcGhpY3NMYXll
ckNoYW5nZXMpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKworMjAxMi0xMC0wNCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBTdGFuZGFyZGl6ZSBvbiAi
Zmx1c2giIHRlcm1pbm9sb2d5IGZvciBjb21wb3NpdGluZyBsYXllciBmbHVzaGluZy9zeW5jaW5n
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMyMQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggZjU3ODViOTI4MzE5ZWE5NzU0MzQ4ZTM3NjNmNDcyYTQ4Y2ZhZGQ3Zi4u
ZTdiY2FkYjRkZmQ5ODdkNGU4NGYzN2JhODMzZmIyMmZlNjdmNzRjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDUzIEBACiAyMDEyLTEwLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCisgICAgICAgIEZpbmFsIHBhcnQgb2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1p
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
IG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xheWVyIGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRo
YXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMiIHRvIHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3Rl
YWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAgICAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnBhaW50VG9DdXJy
ZW50R0xDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmZsdXNo
TGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5oOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6
bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1h
dGVkUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmRpZENoYW5nZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6ZGlkQ2hhbmdlRmlsdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6bm90aWZ5
Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3Jk
aW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENB
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBOjpub3RpZnlGbHVzaFJlcXVp
cmVkKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0
Q0EuaDoKKyAgICAgICAgKExheWVyVHJlZUhvc3RDQSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlSG9zdEd0azo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUhvc3RHdGs6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmg6CisgICAgICAgIChMYXllclRyZWVI
b3N0R3RrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgIChUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorCisyMDEyLTEwLTA0ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFN0YW5kYXJkaXplIG9u
ICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoaW5nL3N5bmNp
bmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzIx
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCA5M2JkYzIyYTEyMmJkYWExOWIxNzlhNDhiZDVhZTQxMDQ2ZWM1NzEzLi4xNWIzYWEy
MTM3NDc2ODRjZWM5ZTJlNGEwNmFlMmMyZjZlM2UzYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zODUsOCArMzg1LDggQEAg
cHVibGljOgogICAgIC8vIFNvbWUgY29tcG9zaXRpbmcgc3lzdGVtcyBtYXkgZG8gaW50ZXJuYWwg
YmF0Y2hpbmcgdG8gc3luY2hyb25pemUgY29tcG9zaXRpbmcgdXBkYXRlcwogICAgIC8vIHdpdGgg
dXBkYXRlcyBkcmF3biBpbnRvIHRoZSB3aW5kb3cuIFRoZXNlIG1ldGhvZHMgZmx1c2ggaW50ZXJu
YWwgYmF0Y2hlZCBzdGF0ZSBvbiB0aGlzIGxheWVyCiAgICAgLy8gYW5kIGRlc2NlbmRhbnQgbGF5
ZXJzLCBhbmQgdGhpcyBsYXllciBvbmx5LgotICAgIHZpcnR1YWwgdm9pZCBzeW5jQ29tcG9zaXRp
bmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIC8qIGNsaXBSZWN0ICovKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIC8qIGNsaXBS
ZWN0ICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpIHsgfQogICAgIAogICAgIC8vIFJldHVybiBhIHN0cmluZyB3aXRoIGEgaHVt
YW4gcmVhZGFibGUgZm9ybSBvZiB0aGUgbGF5ZXIgdHJlZSwgSWYgZGVidWcgaXMgdHJ1ZSAKICAg
ICAvLyBwb2ludGVycyBmb3IgdGhlIGxheWVycyBhbmQgdGltaW5nIGRhdGEgd2lsbCBiZSBpbmNs
dWRlZCBpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDEwYjExNmQ5ZGEw
YWU2OWU0OTUxMGVjNmZlN2JmMzg4ZDNiNjQzY2EuLjNkNWRiYzgyZDg2NjkwNDc0MDM3ZjdjNWZj
MzhmNmQwOWYwNmVlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTYzLDkgKzYzLDkgQEAgcHVibGljOgog
ICAgIC8vIENhbGxiYWNrIGZvciB3aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGFuaW1hdGlvbiBz
dGFydGVkLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgPSAwOwogCi0gICAgLy8gTm90aWZpY2F0aW9uIHRo
YXQgYSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VkIHRoYXQgcmVxdWlyZXMgYSBzdWJzZXF1ZW50IGNh
bGwgdG8gc3luY0NvbXBvc2l0aW5nU3RhdGUoKQorICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGEg
bGF5ZXIgcHJvcGVydHkgY2hhbmdlZCB0aGF0IHJlcXVpcmVzIGEgc3Vic2VxdWVudCBjYWxsIHRv
IGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpCiAgICAgLy8gdG8gYXBwZWFyIG9uIHRoZSBzY3JlZW4u
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvR3Jh
cGhpY3NMYXllckJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvR3JhcGhpY3NMYXllckJsYWNrQmVycnkuaAppbmRleCBkOGQ2YjZhZTkzYjEz
MDExZmNmMWIxMmMwZmQxNTgzODM2YjI0ZmRhLi41Yzg2MTI2NGU1NjYxYjQwYmQxNDcxOTc3YTJh
NDlmOTIxYmQzNjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0dyYXBoaWNzTGF5ZXJCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFwaGljc0xheWVyQmxhY2tCZXJyeS5o
CkBAIC0xMTYsMTAgKzExNiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVn
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVn
Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgpOwogCi0gICAgdm9pZCBub3Rp
ZnlTeW5jUmVxdWlyZWQoKQorICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpCiAgICAgewog
ICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+bm90aWZ5U3luY1Jl
cXVpcmVkKHRoaXMpOworICAgICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZsdXNoUmVxdWlyZWQo
dGhpcyk7CiAgICAgfQogCiAgICAgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0
aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2ti
ZXJyeS9MYXllcldlYktpdFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcAppbmRleCA0MmI4YmVkNTg1NDQ4
ZjBlN2M3MGRmZGI0NjM4OGMzNmVlODA4ZjQwLi4xNDI5OTFjZjVkNTY1N2VkYjk1NDIzY2ZmZjRm
M2MzMGNmNGI3NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcApAQCAtMTk1
LDExICsxOTUsMTEgQEAgdm9pZCBMYXllcldlYktpdFRocmVhZDo6c2V0RHJhd2FibGUoYm9vbCBp
c0RyYXdhYmxlKQogCiB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjpzZXROZWVkc0NvbW1pdCgpCiB7
Ci0gICAgLy8gQ2FsbCBub3RpZnlTeW5jUmVxdWlyZWQoKSwgd2hpY2ggaW4gdGhpcyBpbXBsZW1l
bnRhdGlvbiBwbHVtYnMgdGhyb3VnaCB0bworICAgIC8vIENhbGwgbm90aWZ5Rmx1c2hSZXF1aXJl
ZCgpLCB3aGljaCBpbiB0aGlzIGltcGxlbWVudGF0aW9uIHBsdW1icyB0aHJvdWdoIHRvCiAgICAg
Ly8gY2FsbCBzY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpIG9uIHRoZSBXZWJWaWV3LCB3aGljaCB3
aWxsIGNhdXNlIHVzIHRvIGNvbW1pdAogICAgIC8vIGNoYW5nZXMgZG9uZSBvbiB0aGUgV2ViS2l0
IHRocmVhZCBmb3IgZGlzcGxheSBvbiB0aGUgQ29tcG9zaXRpbmcgdGhyZWFkLgogICAgIGlmICht
X293bmVyKQotICAgICAgICBtX293bmVyLT5ub3RpZnlTeW5jUmVxdWlyZWQoKTsKKyAgICAgICAg
bV9vd25lci0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIExheWVyV2ViS2l0VGhy
ZWFkOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0aW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5k
ZXggYzdiMjUyMjAzYjEwYzI2OTI4Mzg1NjJhOTk5YmMwNTliYjdlMTUxZi4uMjQ5NTRhNGI4ZGYy
ZmVjODA3YTJlNGYzNmZiMmVjYjNiYTZkNTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC04OTMsMTMg
Kzg5MywxMyBAQCBGbG9hdFBvaW50IEdyYXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVBvc2l0aW9uUmVs
YXRpdmVUb0Jhc2UoZmxvYXQmIHBhZ2VTY2FsZSkgY29ucwogICAgIHJldHVybiBGbG9hdFBvaW50
KCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZShjb25z
dCBGbG9hdFJlY3QmIGNsaXBSZWN0KQordm9pZCBHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewogICAgIFRyYW5zZm9ybVN0
YXRlIHN0YXRlKFRyYW5zZm9ybVN0YXRlOjpVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlv
biwgRmxvYXRRdWFkKGNsaXBSZWN0KSk7CiAgICAgcmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhzdGF0
ZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKQogewogICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcjsKICAgICBG
bG9hdFBvaW50IG9mZnNldCA9IGNvbXB1dGVQb3NpdGlvblJlbGF0aXZlVG9CYXNlKHBhZ2VTY2Fs
ZUZhY3Rvcik7CkBAIC0xMDA1LDggKzEwMDUsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGxh
dGZvcm1DQUxheWVyRGlkQ3JlYXRlVGlsZXMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRpcgog
ICAgICAgICBzZXROZWVkc0Rpc3BsYXlJblJlY3QoZGlydHlSZWN0c1tpXSk7CiAKICAgICAvLyBF
bnN1cmUgdGhhdCB0aGUgbGF5b3V0IGlzIHVwIHRvIGRhdGUgYmVmb3JlIGFueSBpbmRpdmlkdWFs
IHRpbGVzIGFyZSBwYWludGVkIGJ5IHRlbGxpbmcgdGhlIGNsaWVudAotICAgIC8vIHRoYXQgaXQg
bmVlZHMgdG8gc3luYyBpdHMgbGF5ZXIgc3RhdGUsIHdoaWNoIHdpbGwgZW5kIHVwIHNjaGVkdWxp
bmcgdGhlIGxheWVyIGZsdXNoZXIuCi0gICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0
aGlzKTsKKyAgICAvLyB0aGF0IGl0IG5lZWRzIHRvIGZsdXNoIGl0cyBsYXllciBzdGF0ZSwgd2hp
Y2ggd2lsbCBlbmQgdXAgc2NoZWR1bGluZyB0aGUgbGF5ZXIgZmx1c2hlci4KKyAgICBjbGllbnQo
KS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogZmxvYXQgR3JhcGhpY3NMYXllckNB
OjpwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpCkBAIC0yNTg2LDcgKzI1ODYsNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlQ2xvbmVMYXllcnMoKQogCiBGbG9hdFBvaW50
IEdyYXBoaWNzTGF5ZXJDQTo6cG9zaXRpb25Gb3JDbG9uZVJvb3RMYXllcigpIGNvbnN0CiB7Ci0g
ICAgLy8gVGhpcyBjYW4gZ2V0IGNhbGxlZCBkdXJpbmcgYSBzeW5jIHdoZW4gd2UndmUganVzdCBy
ZW1vdmVkIHRoZSBtX3JlcGxpY2FMYXllci4KKyAgICAvLyBUaGlzIGNhbiBnZXQgY2FsbGVkIGR1
cmluZyBhIGZsdXNoIHdoZW4gd2UndmUganVzdCByZW1vdmVkIHRoZSBtX3JlcGxpY2FMYXllci4K
ICAgICBpZiAoIW1fcmVwbGljYUxheWVyKQogICAgICAgICByZXR1cm4gRmxvYXRQb2ludCgpOwog
CkBAIC0yODQzLDcgKzI4NDMsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bm90ZVN1YmxheWVy
c0NoYW5nZWQoKQogdm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdl
ZChMYXllckNoYW5nZUZsYWdzIGZsYWdzKQogewogICAgIGlmICghbV91bmNvbW1pdHRlZENoYW5n
ZXMgJiYgbV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlTeW5jUmVxdWlyZWQodGhp
cyk7CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogCiAgICAg
bV91bmNvbW1pdHRlZENoYW5nZXMgfD0gZmxhZ3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGQ1YjRjMmM2
MTcwZTBmNGY0MWE1OTM2MzUwMjY3YTViNzczOGQwZDUuLmU2MzVhYmIyNzIxYmNiMWQ2Mzk4ODRi
YmVhM2Q1M2YzMDRkODEzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAvLyBFbmFibGUgdGhpcyB0byBhZGQgYSBsaWdo
dCByZWQgd2FzaCBvdmVyIHRoZSB2aXNpYmxlIHBvcnRpb24gb2YgVGlsZWQgTGF5ZXJzLCBhcyBj
b21wdXRlZAotLy8gYnkgc3luY0NvbXBvc2l0aW5nU3RhdGUoKS4KKy8vIGJ5IGZsdXNoQ29tcG9z
aXRpbmdTdGF0ZSgpLgogLy8gI2RlZmluZSBWSVNJQkxFX1RJTEVfV0FTSAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xMzEsOCArMTMxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZWN1cnNp
dmVDb21taXRDaGFuZ2VzKGNvbnN0IFRyYW5zZm9ybVN0YXRlJiwgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gMSwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSA9IEZsb2F0
UG9pbnQoKSwgYm9vbCBhZmZlY3RlZEJ5UGFnZVNjYWxlID0gZmFsc2UpOwogCi0gICAgdmlydHVh
bCB2b2lkIHN5bmNDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1
YWwgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAg
ICB2aXJ0dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgT1ZFUlJJREU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDk1ZTA0YTg0YTkwMGU2
ZjI3ZmRkODlkOGJmOWE1MGI2Njg5YmQ4M2MuLjU4MjJlYmU1M2FkYmIwNzc5OTRjMzk5MTU4MTli
ODViNmQ4ZDczYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpub3Rp
ZnlDaGFuZ2UoVGV4dHVyZU1hcHBlckxheWVyOjpDaGFuZ2VNYXNrIGNoYQogICAgIG1fY2hhbmdl
TWFzayB8PSBjaGFuZ2VNYXNrOwogICAgIGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBjbGllbnQoKS0+bm90aWZ5U3luY1JlcXVpcmVkKHRoaXMpOworICAgIGNsaWVudCgpLT5u
b3RpZnlGbHVzaGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVJlcXVpcmVkKHRoaXMpOwogfQogCiB2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRTeW5jaHJvbml6ZSgpCkBAIC0zNjcsMTYg
KzM2NywxNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1Rv
TWVkaWEoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIqCiAKIC8qIFxyZWltcCAoR3JhcGhpY3NM
YXllci5oKQogKi8KLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnN5bmNDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKIHsKLSAgICBtX2xh
eWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZSh0aGlzKTsKKyAgICBtX2xheWVyLT5mbHVzaENvbXBv
c2l0aW5nU3RhdGUodGhpcyk7CiB9CiAKIC8qIFxyZWltcCAoR3JhcGhpY3NMYXllci5oKQogKi8K
LXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlKGNv
bnN0IEZsb2F0UmVjdCYpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENv
bXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBtX2xheWVyLT5zeW5jQ29t
cG9zaXRpbmdTdGF0ZSh0aGlzLCBUZXh0dXJlTWFwcGVyTGF5ZXI6OlRyYXZlcnNlRGVzY2VuZGFu
dHMpOworICAgIG1fbGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0aGlzLCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OlRyYXZlcnNlRGVzY2VuZGFudHMpOwogfQogCiBib29sIEdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyOjphZGRBbmltYXRpb24oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVl
TGlzdCwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25z
dCBTdHJpbmcmIGtleWZyYW1lc05hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCA1MDA3MGNjMGYwOGU5OTJlYmFiYmNhMDQx
ZjhmZmI2YjE0YmJhNDkwLi42MzdhYmQ5ZDQ0MDMwM2IzZmFlOTE4ODgyOGNiMGVkM2NmZTZhZjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNjksOCArNjks
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSop
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIGNhbnZh
cykgeyBzZXRDb250ZW50c1RvTWVkaWEoY2FudmFzKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzeW5j
Q29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3lu
Y0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgdmlydHVhbCB2b2lkIGZs
dXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuY3BwCmluZGV4IDdhMGQ0NDQzMjFjNjhlYjliMTk3MmQyMzEzNmZiZjM0YTJlOTAwYzMu
LmUzNmRiYzk0OGFmNGJkOGExOTY3YWJmMjNkY2I0ZDU1YzRiZDRhZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuY3BwCkBAIC00MDIsMTIgKzQwMiwxMiBAQCBUZXh0dXJlTWFwcGVyTGF5ZXI6
On5UZXh0dXJlTWFwcGVyTGF5ZXIoKQogICAgICAgICBtX3BhcmVudC0+bV9jaGlsZHJlbi5yZW1v
dmUobV9wYXJlbnQtPm1fY2hpbGRyZW4uZmluZCh0aGlzKSk7CiB9CiAKLXZvaWQgVGV4dHVyZU1h
cHBlckxheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciogZ3JhcGhpY3NMYXllciwgaW50IG9wdGlvbnMpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6
Zmx1c2hDb21wb3NpdGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGlj
c0xheWVyLCBpbnQgb3B0aW9ucykKIHsKLSAgICBzeW5jQ29tcG9zaXRpbmdTdGF0ZShncmFwaGlj
c0xheWVyLCByb290TGF5ZXIoKS0+bV90ZXh0dXJlTWFwcGVyLCBvcHRpb25zKTsKKyAgICBmbHVz
aENvbXBvc2l0aW5nU3RhdGUoZ3JhcGhpY3NMYXllciwgcm9vdExheWVyKCktPm1fdGV4dHVyZU1h
cHBlciwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5jQ29tcG9z
aXRpbmdTdGF0ZVNlbGYoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIs
IFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6
Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3Jh
cGhpY3NMYXllciwgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKIHsKICAgICBpbnQgY2hh
bmdlTWFzayA9IGdyYXBoaWNzTGF5ZXItPmNoYW5nZU1hc2soKTsKIApAQCAtNTE5LDE4ICs1MTks
MTggQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKICAgICAgICAg
c2V0T3BhY2l0eShtX3N0YXRlLm9wYWNpdHkpOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6c3luY0NvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBo
aWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGludCBvcHRpb25zKQordm9p
ZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
ciwgaW50IG9wdGlvbnMpCiB7CiAgICAgaWYgKCF0ZXh0dXJlTWFwcGVyKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoZ3JhcGhpY3NMYXllciAmJiAhKG9wdGlvbnMgJiBDb21wdXRhdGlvbnNP
bmx5KSkgewotICAgICAgICBzeW5jQ29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwg
dGV4dHVyZU1hcHBlcik7CisgICAgICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhp
Y3NMYXllciwgdGV4dHVyZU1hcHBlcik7CiAgICAgICAgIGdyYXBoaWNzTGF5ZXItPmRpZFN5bmNo
cm9uaXplKCk7CiAgICAgfQogCiAgICAgaWYgKGdyYXBoaWNzTGF5ZXIgJiYgbV9zdGF0ZS5tYXNr
TGF5ZXIpIHsKLSAgICAgICAgbV9zdGF0ZS5tYXNrTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRl
KHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoZ3JhcGhpY3NMYXllci0+bWFza0xheWVyKCkp
LCB0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgbV9zdGF0ZS5tYXNrTGF5ZXItPmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPm1h
c2tMYXllcigpKSwgdGV4dHVyZU1hcHBlcik7CiAKICAgICAgICAgLy8gQSBtYXNrIGxheWVyIGhh
cyBpdHMgcGFyZW50J3Mgc2l6ZSBieSBkZWZhdWx0LCBpbiBjYXNlIGl0J3Mgbm90IHNldCBzcGVj
aWZpY2FsbHkuCiAgICAgICAgIGlmIChtX3N0YXRlLm1hc2tMYXllci0+bV9zaXplLmlzRW1wdHko
KSkKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0NvbXBv
c2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaQogICAgIH0KIAog
ICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXllcikKLSAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5
ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoZ3Jh
cGhpY3NMYXllci0+cmVwbGljYUxheWVyKCkpLCB0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgbV9z
dGF0ZS5yZXBsaWNhTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPnJlcGxpY2FMYXllcigpKSwgdGV4dHVyZU1hcHBl
cik7CiAKICAgICBzeW5jQW5pbWF0aW9ucygpOwogICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSh0ZXh0
dXJlTWFwcGVyLCBncmFwaGljc0xheWVyKTsKQEAgLTU1MiwxMSArNTUyLDExIEBAIHZvaWQgVGV4
dHVyZU1hcHBlckxheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlciogZ3JhcGhpCiAgICAgICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0g
dG9UZXh0dXJlTWFwcGVyTGF5ZXIoY2hpbGRyZW5baV0pOwogICAgICAgICAgICAgaWYgKCFsYXll
cikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxheWVyLT5zeW5jQ29t
cG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGNoaWxkcmVuW2ldKSwg
dGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7CisgICAgICAgICAgICBsYXllci0+Zmx1c2hDb21wb3Np
dGluZ1N0YXRlKHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoY2hpbGRyZW5baV0pLCB0ZXh0
dXJlTWFwcGVyLCBvcHRpb25zKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGZv
ciAoaW50IGkgPSBtX2NoaWxkcmVuLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKQotICAgICAgICAg
ICAgbV9jaGlsZHJlbltpXS0+c3luY0NvbXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVyZU1hcHBlciwg
b3B0aW9ucyk7CisgICAgICAgICAgICBtX2NoaWxkcmVuW2ldLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGUoMCwgdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmgKaW5kZXggMmY3ZjRiODIxMmZhMTg4NGI5ZDAwZjgwZTFlZjY3M2VjMTg5OWQzOC4u
NTc0MGFjZjUyM2UyZGYzYzY0NWFlNWIyM2I1NTY3MThjMWM3ODU5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuaApAQCAtMTE0LDggKzExNCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflRl
eHR1cmVNYXBwZXJMYXllcigpOwogCi0gICAgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlciosIGludCBzeW5jT3B0aW9ucyA9IDApOwotICAgIHZvaWQg
c3luY0NvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBUZXh0dXJl
TWFwcGVyKiwgaW50IHN5bmNPcHRpb25zID0gMCk7CisgICAgdm9pZCBmbHVzaENvbXBvc2l0aW5n
U3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsK
KyAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciosIFRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKICAgICBJbnRTaXplIHNp
emUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0
KCkpOyB9CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
KTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQgdmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFsdWU7
IH0KQEAgLTE0NCw3ICsxNDQsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCB0YXJnZXRSZWN0
Rm9yVGlsZVJlY3QoY29uc3QgRmxvYXRSZWN0JiB0b3RhbFRhcmdldFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGlsZVJlY3QpIGNvbnN0OwogICAgIHZvaWQgaW52YWxpZGF0ZVZpZXdwb3J0KGNvbnN0
IEZsb2F0UmVjdCYpOwogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKENoYW5nZU1hc2spOwotICAgIHZv
aWQgc3luY0NvbXBvc2l0aW5nU3RhdGVTZWxmKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwg
VGV4dHVyZU1hcHBlciopOworICAgIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1cmVNYXBwZXIqKTsKIAogICAgIHN0YXRpYyBp
bnQgY29tcGFyZUdyYXBoaWNzTGF5ZXJzWlZhbHVlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQq
IGIpOwogICAgIHN0YXRpYyB2b2lkIHNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBlckxh
eWVyKiA+JiBhcnJheSwgaW50IGZpcnN0LCBpbnQgbGFzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDViZjFiM2I3YjQ3Zjg0NTVk
YmE4NmRjMjk0NjA3YWU0MmE4YTE5MzUuLjUwMTA0NTQ4NTNmY2YyZGUwYTM5ODExOGM4MDU0ZmNm
Nzk5MmU0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCkBAIC0xNjc2LDcgKzE2NzYsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbQog
ICAgIHJlbmRlcmVyKCktPmFuaW1hdGlvbigpLT5ub3RpZnlBbmltYXRpb25TdGFydGVkKHJlbmRl
cmVyKCksIHRpbWUpOwogfQogCi12b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5U3luY1Jl
cXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgaWYgKCFyZW5k
ZXJlcigpLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIGNvbXBvc2l0b3IoKS0+
c2NoZWR1bGVMYXllckZsdXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmgKaW5kZXggMzc1OTA4NDg5OGU0NWIwYTA5NWY4NDBkYjQ3ZGYwN2QyNzZh
ZDIyMy4uM2QyMjQ3YWY4N2NjNWNhY2I5ZDVhMDVkZjA3MGUzODU0ODEwYmY3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTM3LDcgKzEz
Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdXNpbmdUaWxlQ2FjaGUo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIG1fdXNpbmdUaWxlZENhY2hlTGF5
ZXI7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFw
aGljc0xheWVyKiwgZG91YmxlIHN0YXJ0VGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5
bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopOwogCiAgICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCA3YzgzODI4Y2RiMjUxOWUyOWJkZTZmMjA0OTdhYjFiYzdjY2NjMDRlLi5lNWNmMGFiY2E4Njgw
OTY4MWQyYmRlNDUzZjIzOTVmYzg5NDI1NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY2hlZHVsZUxheWVyRmx1c2goKQogdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhib29sIGlzRmx1c2hS
b290KQogewogICAgIC8vIEZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5n
U3ViZnJhbWVzKCkgZmx1c2hlcyBlYWNoIHN1YmZyYW1lLAotICAgIC8vIGJ1dCBHcmFwaGljc0xh
eWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZSgpIHdpbGwgY3Jvc3MgZnJhbWUgYm91bmRhcmllcwor
ICAgIC8vIGJ1dCBHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoKSB3aWxsIGNy
b3NzIGZyYW1lIGJvdW5kYXJpZXMKICAgICAvLyBpZiB0aGUgR3JhcGhpY3NMYXllcnMgYXJlIGNv
bm5lY3RlZCAodGhlIFJvb3RMYXllckF0dGFjaGVkVmlhRW5jbG9zaW5nRnJhbWUgY2FzZSkuCiAg
ICAgLy8gQXMgbG9uZyBhcyB3ZSdyZSBub3QgdGhlIHJvb3Qgb2YgdGhlIGZsdXNoLCB3ZSBjYW4g
YmFpbC4KICAgICBpZiAoIWlzRmx1c2hSb290ICYmIHJvb3RMYXllckF0dGFjaG1lbnQoKSA9PSBS
b290TGF5ZXJBdHRhY2hlZFZpYUVuY2xvc2luZ0ZyYW1lKQpAQCAtMjk3LDcgKzI5Nyw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBp
c0ZsdXNoUm9vdCkKICAgICAgICAgaWYgKGZyYW1lVmlldykgewogICAgICAgICAgICAgLy8gRklY
TUU6IFBhc3NpbmcgZnJhbWVSZWN0KCkgaXMgY29ycmVjdCBvbmx5IHdoZW4gUmVuZGVyTGF5ZXJD
b21wb3NpdG9yIHVzZXMgYSBTY3JvbGxMYXllciAoYXMgaW4gV2ViS2l0MikKICAgICAgICAgICAg
IC8vIG90aGVyd2lzZSwgdGhlIHBhc3NlZCBjbGlwIHJlY3QgbmVlZHMgdG8gdGFrZSBzY3JvbGxp
bmcgaW50byBhY2NvdW50Ci0gICAgICAgICAgICByb290TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0
YXRlKGZyYW1lVmlldy0+ZnJhbWVSZWN0KCkpOworICAgICAgICAgICAgcm9vdExheWVyLT5mbHVz
aENvbXBvc2l0aW5nU3RhdGUoZnJhbWVWaWV3LT5mcmFtZVJlY3QoKSk7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKaW5kZXggNjA2ZTViOGMzY2MyZTZhZGIxNDJlZDMzYWEzNTYzNDg2MjYzOTU3MS4u
NzIyNDRiMTQzMDg2YTI4MDQ4NjUyZTUyMDkxZjZhN2ZiMjJlZDM1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjI1LDcgKzIy
NSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IEltcGxlbWVudGF0
aW9uCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhp
Y3NMYXllciosIGRvdWJsZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikgeyBzY2hlZHVsZUxheWVyRmx1c2goKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IHNj
aGVkdWxlTGF5ZXJGbHVzaCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBJbnRSZWN0Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9y
ZGVycyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJPdmVybGF5LmNwcAppbmRleCA3OTJhNDczYjAzZmJlMjBkNjg4NzBlNWY2NTEx
NmJkZjU0YWNlM2QwLi4wZDlhMDk5NWY5YTQ2YzE2NWQ1ZjM2M2ZjM2Y3NjgxM2Y1MDhmMWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAKQEAgLTM2NCw3
ICszNjQsNyBAQCB2b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpyZXNldE92ZXJy
aWRlcygpCiAgICAgfQogfQogCi12b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpu
b3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCit2b2lkIFdl
Yk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQogewogICAgIGlmIChXZWJQYWdlUHJpdmF0ZSogcGFnZSA9
IHRoaXMtPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+c2NoZWR1bGVSb290TGF5ZXJDb21taXQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmgg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCmluZGV4IGQ2YzFk
YzE3NmMyMDFkZDViZjY4ZTQxZTEyNDNlOGFiZjIyZWU5ZmYuLjg0NmU1Y2M3YTU4NjM4ZWYwNzMy
YTQxYzc4ZGI4OTAwN2MwMzA5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViT3ZlcmxheV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJPdmVybGF5X3AuaApAQCAtMTY1LDcgKzE2NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEdyYXBo
aWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xp
cCk7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNo
b3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmlu
ZGV4IDk1YWEwN2IwYTRhZDg1NjIzOTIwN2U5MGQ2ZjllYjYwNTI2YmE0NjkuLjdmOGYzNTk1OWNk
N2Q5Y2FjMmZkOGIwMzdjYmU4MDRmYTUyYWFiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmNwcApAQCAtNTg4Myw3ICs1ODgzLDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0
ZTo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpCiAgICAgbV9uZWVkc09u
ZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uID0gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJp
dmF0ZTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJQ
YWdlUHJpdmF0ZTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsK
ICAgICBzY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggMzExN2YyNzU1Yjk5NGQzNmQyN2IzOWZiZmRlMTc3ZGJj
MDI0MGIzMC4uZjAyZGM3NjU3Yjg5YjU2OWRiODMxOWE1NmJjNjNlMDdmN2Y5MjA1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC0zOTgsNyArMzk4LDcgQEAg
cHVibGljOgogCiAgICAgLy8gRmFsbGJhY2sgR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRh
dGlvbiwgdXNlZCBmb3IgdmFyaW91cyBvdmVybGF5IGxheWVycy4KICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91
YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCkgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1
Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcAppbmRleCBmMDYyNjNhZTc3ZDIxYWVm
NWQ0YWRmYWM0YjY5Yjc2MjE1NzZlOTU1Li40NTQ3MmFhZmQ5NGIwMzg3Y2NlNmYyYjE4MmViM2Nk
NjkxYTkxZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcApAQCAtMTEwLDkgKzExMCw5
IEBAIHZvaWQgRGVmYXVsdFRhcEhpZ2hsaWdodDo6aGlkZSgpCiAgICAgICAgIG1fb3ZlcmxheS0+
b3ZlcnJpZGUoKS0+YWRkQW5pbWF0aW9uKGZhZGVBbmltYXRpb24pOwogfQogCi12b2lkIERlZmF1
bHRUYXBIaWdobGlnaHQ6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKiBs
YXllcikKK3ZvaWQgRGVmYXVsdFRhcEhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKiBsYXllcikKIHsKLSAgICBtX3BhZ2UtPm5vdGlmeVN5bmNSZXF1aXJl
ZChsYXllcik7CisgICAgbV9wYWdlLT5ub3RpZnlGbHVzaFJlcXVpcmVkKGxheWVyKTsKIH0KIAog
dm9pZCBEZWZhdWx0VGFwSGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqLCBHcmFwaGljc0NvbnRleHQmIGMsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25z
dCBJbnRSZWN0JiAvKmluQ2xpcCovKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oCmluZGV4IGNjZjk2
YjVkOWJmZTE5ZDFiMTExMGI5OGYzMjhlMjg0OTQxNGIxODEuLjA2YzU1OTA1Nzk1MjA5M2ZhZDhj
YTlhNWQxOGYwYTc3MjA2ZWZjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKQEAgLTU1LDcg
KzU1LDcgQEAgcHVibGljOgogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqLCBkb3VibGUgdGltZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1
YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
d0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHAKaW5k
ZXggOWNmZjViMjMwMGVlNmQzNDQ4ZTBkOWMxNjAyNmZhYmFiMTI1NTVjOC4uMDgxNWRkOTdiY2Iy
OTVkZGViMDRiODZjMjMyMGEzNjU3NzU1ZDNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJs
YXlCbGFja0JlcnJ5LmNwcApAQCAtNDIsOSArNDIsOSBAQCBJbnNwZWN0b3JPdmVybGF5OjpJbnNw
ZWN0b3JPdmVybGF5KFdlYlBhZ2VQcml2YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50
KgogfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotdm9pZCBJbnNwZWN0b3JP
dmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
bGF5ZXIpCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCiB7Ci0gICAgbV93ZWJQYWdlLT5ub3RpZnlT
eW5jUmVxdWlyZWQobGF5ZXIpOworICAgIG1fd2ViUGFnZS0+bm90aWZ5Rmx1c2hSZXF1aXJlZChs
YXllcik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgaW5DbGlwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmgKaW5kZXgg
ZGU2ZjUxZmYzMzI0ZmZlMDdmMzkzMTNiZmMwM2JkN2Y4NThhZjUyNi4uOTExOTdjYzBjOWNiODNj
MzZjMWMyZDQ1N2M2MjYxNDUyZDNkMzEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5Qmxh
Y2tCZXJyeS5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xp
cCk7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNw
cAppbmRleCBjZDhjMzVkOTM4NTU5NzBlMTM3MTFmZDFjNmE1ZGY0YmQ3N2JmODg0Li5lMWY0NzAx
MGMwMTkxYmQ5MjlkNzc3MjhlYjI0YmJkNzg1NGI1NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNw
cApAQCAtOTQsOSArOTQsOSBAQCB2b2lkIFNlbGVjdGlvbk92ZXJsYXk6OmhpZGUoKQogICAgIG1f
cGFnZS0+bV93ZWJQYWdlLT5yZW1vdmVPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSk7CiB9CiAKLXZv
aWQgU2VsZWN0aW9uT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQordm9pZCBTZWxlY3Rpb25PdmVybGF5Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewotICAgIG1fcGFnZS0+bm90aWZ5U3luY1JlcXVp
cmVkKGxheWVyKTsKKyAgICBtX3BhZ2UtPm5vdGlmeUZsdXNoUmVxdWlyZWQobGF5ZXIpOwogfQog
CiB2b2lkIFNlbGVjdGlvbk92ZXJsYXk6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYgYywgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IEludFJlY3QmIGluQ2xpcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaAppbmRleCBiZTYxZTc2NGI3ZGE2Mjk2
ODVkOTcxODY5MmQ1MjM0MGY2NTFiMWQxLi5jMWEwZjg2YjhjZThjYzUwZThkZjhlNjAxNmM0MDI2
YWZiMTgxODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5p
bWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250
ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGluQ2xpcCk7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93
UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCmluZGV4IDRhMDg1NTJjOWFkYTRk
NmQ3OWQ3ZDQwNTZlOTkzNmZhMjUyZTEzMDAuLmIxYmZmNjQ4NmIyMDgyYWZmNDIyNzVkMTE1MTI5
MzM3M2NkODhmYzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAK
QEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5p
dGlhbGl6ZShIb3N0V2luZG93KiBob3N0V2luZG93KQogdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c3luY0xheWVyc05vdygpCiB7CiAgICAgaWYgKG1fcm9vdEdyYXBoaWNzTGF5
ZXIpCi0gICAgICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSgpOworICAgICAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5mbHVzaENvbXBv
c2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICBFV0tQcml2YXRlOjpjb3JlUGFn
ZShtX3ZpZXcpLT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNs
dWRpbmdTdWJmcmFtZXMoKTsKIH0KQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVy
KiByb290TAogICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXJHTDo6Y3JlYXRlKCk7
CiAgICAgbV9yb290VGV4dHVyZU1hcHBlckxheWVyLT5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVy
ZU1hcHBlci5nZXQoKSk7CiAKLSAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5zeW5jQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5mbHVz
aENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiB9CiAKIEdyYXBoaWNzQ29udGV4
dDNEKiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Y29udGV4dCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQuaAppbmRleCA5MjZiMjE5ZmI5MGUwMDcwMjk5OTEwNjNkY2Q0ZmE5
MDc3NTIwNTZiLi42NTcyZWE1ZWFkMjgxM2M3NWJmNTdjZTE0MzkxYzE5ZDBlYTRjMTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgog
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmlt
YXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgcmVjdFRvUGFpbnQpOwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
d1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHAKaW5kZXggMmRiNjMyMTQw
MzQ3NTg4NjUzM2QyZDU2ZDBjZDQ2OGZhNjM4ODIyMS4uMzc4OTAzNDI2MzBlYzUwZGY0ZmI4OWEz
MDVkMTc0ZTEwOTU3NWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRD
YWlyby5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGgKIAogICAg
IG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlcjo6Y3JlYXRlKCk7CiAg
ICAgbV9yb290VGV4dHVyZU1hcHBlckxheWVyLT5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVyZU1h
cHBlci5nZXQoKSk7Ci0gICAgbV9yb290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgbV9yb290R3JhcGhpY3NMYXllci0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogfQogCiB2b2lkIEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0OjpzY2hlZHVsZVJvb3RMYXllclJlcGFpbnQoY29uc3QgSW50UmVjdCYg
cmVjdCkKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0OjpyZXNpemVSb290TGF5ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBpZiAoIW1fcm9v
dEdyYXBoaWNzTGF5ZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3Jvb3RHcmFwaGljc0xheWVy
LT5zZXRTaXplKHNpemUpOwotICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGlu
Z1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIH0KIAogc3RhdGljIGdib29sZWFu
IHN5bmNMYXllcnNUaW1lb3V0Q2FsbGJhY2soQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQq
IGNvbnRleHQpCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6c3luY0xheWVyc05vdygpCiAgICAgICAgIGNvcmUobV93ZWJWaWV3KS0+bWFpbkZy
YW1lKCktPnZpZXcoKS0+bGF5b3V0KCk7CiAKICAgICBpZiAobV9yb290R3JhcGhpY3NMYXllcikK
LSAgICAgICAgbV9yb290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCk7CisgICAgICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIGNvcmUobV93ZWJWaWV3KS0+bWFpbkZy
YW1lKCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7
CiB9CkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwKIHsKIAogfQot
dm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5U3luY1JlcXVpcmVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKaW5kZXggNGQ2MzZmMjgx
NTY4Y2ZiM2I0ZWZlNzAwZTJmZjQ3YzUwZGJlMzhkYi4uODdjZWI2ZWEwMjRhYjQwZjhhNDgzYTg2
MTMzNzIzODc1ZWUzNmYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dENsdXR0ZXIuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c2NoZWR1bGVMYXllckZsdXNoKCkKIGJvb2wgQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7CiAgICAgaWYgKG1fcm9v
dEdyYXBoaWNzTGF5ZXIpCi0gICAgICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgICAgICBtX3Jvb3RHcmFwaGljc0xheWVy
LT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICByZXR1cm4g
Y29yZShtX3dlYlZpZXcpLT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIH0KQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotdm9pZCBBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKQordm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRHTC5jcHAKaW5kZXggZTJlZDA5YTEwYTYyODNiZWM5MDYzZTNhNmJhZmRjMGQzNDczMzdlNy4u
ZWZjMjA2MTkzNDRlYjI1YzI4NTQ2YmVkMmRkZDdjNzRmNDQ1ZWFiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAKQEAgLTMyMiw4ICszMjIsOCBAQCB2b2lkIEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzY2hlZHVsZUxheWVyRmx1c2goKQogCiBib29sIEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQog
ewotICAgIG1fcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHko
KTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpOworICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgcmV0dXJuIGNvcmUo
bV93ZWJWaWV3KS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5j
bHVkaW5nU3ViZnJhbWVzKCk7CiB9CiAKQEAgLTM3MCw3ICszNzAsNyBAQCB2b2lkIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLAogewogCiB9Ci12b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpu
b3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKQogewogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODEyZjNm
MGUzYmRhNjJmMjE5ZDdhNGI3N2IxOTMwNzBlYTQ3MTNmZi4uMzNiMjAwOGYwMTkzYjE2ZGQzNzFj
YmEyY2Q0ZDJiZTAzMjg3ZTljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpA
QCAtNjMyOSwxNCArNjMyOSwxNCBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IHJvdW5kVXBUb1Bv
d2VyT2YyKHVpbnQ2NF90IG51bSkKICAgICAKICAgICBUbyBmaXggdGhpcywgdGhlIEdyYXBoaWNz
TGF5ZXJDQSBjb2RlIGluIFdlYkNvcmUgZG9lcyBub3QgY2hhbmdlIHRoZSBDQQogICAgIGxheWVy
IHRyZWUgZHVyaW5nIHN0eWxlIGNoYW5nZXMgYW5kIGxheW91dDsgaXQgc3RvcmVzIHVwIGFsbCBj
aGFuZ2VzIGFuZAotICAgIGNvbW1pdHMgdGhlbSB2aWEgc3luY0NvbXBvc2l0aW5nU3RhdGUoKS4g
VGhlcmUgYXJlIHRoZW4gdHdvIHNpdHVhdGlvbnMgaW4KLSAgICB3aGljaCB3ZSBjYW4gY2FsbCBz
eW5jQ29tcG9zaXRpbmdTdGF0ZSgpOgorICAgIGNvbW1pdHMgdGhlbSB2aWEgZmx1c2hDb21wb3Np
dGluZ1N0YXRlKCkuIFRoZXJlIGFyZSB0aGVuIHR3byBzaXR1YXRpb25zIGluCisgICAgd2hpY2gg
d2UgY2FuIGNhbGwgZmx1c2hDb21wb3NpdGluZ1N0YXRlKCk6CiAgICAgCi0gICAgMS4gV2hlbiBw
YWludGluZy4gRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKCkgbWFrZXMgYSBjYWxsIHRvIHN5bmND
b21wb3NpdGluZ1N0YXRlKCkuCisgICAgMS4gV2hlbiBwYWludGluZy4gRnJhbWVWaWV3OjpwYWlu
dENvbnRlbnRzKCkgbWFrZXMgYSBjYWxsIHRvIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpLgogICAg
IAogICAgIDIuIFdoZW4gc3R5bGUgY2hhbmdlcy9sYXlvdXQgaGF2ZSBtYWRlIGNoYW5nZXMgdG8g
dGhlIGxheWVyIHRyZWUgd2hpY2ggZG8gbm90CiAgICAgICAgcmVzdWx0IGluIHBhaW50aW5nLiBJ
biB0aGlzIGNhc2Ugd2UgbmVlZCBhIHJ1biBsb29wIG9ic2VydmVyIHRvIGRvIGEKLSAgICAgICBz
eW5jQ29tcG9zaXRpbmdTdGF0ZSgpIGF0IGFuIGFwcHJvcHJpYXRlIHRpbWUuIFRoZSBvYnNlcnZl
ciB3aWxsIGtlZXAgZmlyaW5nCisgICAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlKCkgYXQgYW4g
YXBwcm9wcmlhdGUgdGltZS4gVGhlIG9ic2VydmVyIHdpbGwga2VlcCBmaXJpbmcKICAgICAgICB1
bnRpbCB0aGUgdGltZSBpcyByaWdodCAoZXNzZW50aWFsbHkgd2hlbiB0aGVyZSBhcmUgbm8gbW9y
ZSBwZW5kaW5nIGxheW91dHMpLgogICAgIAogKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcAppbmRleCBjYWUxMzA4NGM2ZjA2YTFmNTVkODBk
MjllOWNlZTliNGY1NGU1YzM3Li4xNDFmOThlMzA4MmMyMTI3YzZmOTQxZTFkOTIwY2U3N2UwOTI5
YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGll
bnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50
UXQuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgVGV4dHVyZU1hcHBlckxheWVyQ2xpZW50UXQ6On5U
ZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdCgpCiAKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyQ2xp
ZW50UXQ6OnN5bmNSb290TGF5ZXIoKQogewotICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmND
b21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgIG1fcm9vdEdyYXBoaWNzTGF5
ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIH0KIAogVGV4dHVy
ZU1hcHBlckxheWVyKiBUZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdDo6cm9vdExheWVyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKaW5kZXggOTVhNTI4ZTZhMzBiZjE3MmQ5NzUxM2RhMjYwYjQwZGIzOWZl
NWUzMC4uNDcwMWJiZTA4ZjUxNzFlOTExZjdkYzQ2ZGE1ZGVmNTY5MjAxMGI2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKQEAgLTY2MzEsNyArNjYzMSw3IEBAIHZvaWQgV2ViVmlldzo6bm90aWZ5QW5p
bWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlKQogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlZpZXc6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViVmlldzo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikKIHsKICAgICBmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdl
c1Nvb24oKTsKIH0KQEAgLTY2NzMsNyArNjY3Myw3IEBAIHZvaWQgV2ViVmlldzo6Zmx1c2hQZW5k
aW5nR3JhcGhpY3NMYXllckNoYW5nZXMoKQogCiAgICAgLy8gVXBkYXRpbmcgbGF5b3V0IG1pZ2h0
IGhhdmUgdGFrZW4gdXMgb3V0IG9mIGNvbXBvc2l0aW5nIG1vZGUuCiAgICAgaWYgKG1fYmFja2lu
Z0xheWVyKQotICAgICAgICBtX2JhY2tpbmdMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CisgICAgICAgIG1fYmFja2luZ0xheWVyLT5mbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICB2aWV3LT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCA2OTZlMmM3N2Iz
NDFiNDQyNmUwMzU0NjFlY2MxMWMyNDE1Yjg1MDQ5Li45OGZjYmIzZTFiZDNiYjUyNjU5YjBjNWRh
ZDg2Y2QyMjE5NTIzZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBw
cml2YXRlOgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBHcmFwaGlj
c0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJl
bmRlcmVyLmNwcAppbmRleCBiOTRjNjZiOWQzNjYwMTFiZDg1Y2FkMzIyN2YwNWRmNzdiYzQ5M2Vl
Li41Yjk2MmRiNGM0Y2Y0ZmEzOTEzZjhjNDFjYWEyM2I2ZDNmZDEzODk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5k
ZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBMYXllclRy
ZWVSZW5kZXJlcjo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHIKICAgICBpZiAoY3VycmVudFJvb3RMYXllci0+b3BhY2l0eSgpICE9IG9wYWNp
dHkgfHwgY3VycmVudFJvb3RMYXllci0+dHJhbnNmb3JtKCkgIT0gbWF0cml4KSB7CiAgICAgICAg
IGN1cnJlbnRSb290TGF5ZXItPnNldE9wYWNpdHkob3BhY2l0eSk7CiAgICAgICAgIGN1cnJlbnRS
b290TGF5ZXItPnNldFRyYW5zZm9ybShtYXRyaXgpOwotICAgICAgICBjdXJyZW50Um9vdExheWVy
LT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICAgICAgY3VycmVu
dFJvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAg
IH0KIAogICAgIGxheWVyLT5wYWludCgpOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgTGF5ZXJU
cmVlUmVuZGVyZXI6OmZsdXNoTGF5ZXJDaGFuZ2VzKCkKIHsKICAgICBtX3JlbmRlcmVkQ29udGVu
dHNTY3JvbGxQb3NpdGlvbiA9IG1fcGVuZGluZ1JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlv
bjsKIAotICAgIG1fcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZShGbG9hdFJlY3QoKSk7
CisgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShGbG9hdFJlY3QoKSk7CiAg
ICAgY29tbWl0VGlsZU9wZXJhdGlvbnMoKTsKIAogICAgIC8vIFRoZSBwZW5kaW5nIHRpbGVzIHN0
YXRlIGlzIG9uIGl0cyB3YXkgZm9yIHRoZSBzY3JlZW4sIHRlbGwgdGhlIHdlYiBwcm9jZXNzIHRv
IHJlbmRlciB0aGUgbmV4dCBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRl
eCA0ZTQ1Njc4ZTZmMDAzYWU1MjJjMDlkZjBiZDNlNzdmNmExZGE2MWRiLi45ZTk5ZWYwYTlhODAz
ODkwM2ZmMDRmYmRkM2I0YmNlNTA4YmFlMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVpbXBsZW1lbnRh
dGlvbnMgZnJvbSBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50LgogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSB7IH0KICAgICB2aXJ0dWFsIGJv
b2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Us
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGYyYWZkYjVmYjhh
YjMwMGVhZTg4MDhlODM2ZWYzNjAxMTk2Y2EzNzkuLmNlNTQ4YjAxNjBlMTJkNDEwZTI5MTlkOTlm
ODM1YWQ5NzlhMmI2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtNjUsMjEgKzY1LDIxIEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VMYXllclN0YXRlKCkKIHsKICAgICBtX3No
b3VsZFN5bmNMYXllclN0YXRlID0gdHJ1ZTsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNs
aWVudCgpLT5ub3RpZnlTeW5jUmVxdWlyZWQodGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5ub3Rp
ZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6ZGlkQ2hhbmdlQW5pbWF0ZWRQcm9wZXJ0aWVzKCkKIHsKICAgICBtX3Nob3VsZFN5bmNBbmlt
YXRlZFByb3BlcnRpZXMgPSB0cnVlOwogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50
KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0aGlzKTsKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeUZs
dXNoUmVxdWlyZWQodGhpcyk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpk
aWRDaGFuZ2VDaGlsZHJlbigpCiB7CiAgICAgbV9zaG91bGRTeW5jQ2hpbGRyZW4gPSB0cnVlOwog
ICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0
aGlzKTsKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiB9CiAK
ICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VGaWx0ZXJzKCkKIHsKICAgICBtX3Nob3VsZFN5bmNG
aWx0ZXJzID0gdHJ1ZTsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3Rp
ZnlTeW5jUmVxdWlyZWQodGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVp
cmVkKHRoaXMpOwogfQogI2VuZGlmCiAKQEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogICAgIHNldENvbnRl
bnRzVG9JbWFnZShpbWFnZS5nZXQoKSk7CiAgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSB0cnVl
OwogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJl
ZCh0aGlzKTsKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2FudmFzKFBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIpCkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcikKICAgICBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVy
OwogICAgIG1fY2FudmFzTmVlZHNEaXNwbGF5ID0gdHJ1ZTsKICAgICBpZiAoY2xpZW50KCkpCi0g
ICAgICAgIGNsaWVudCgpLT5ub3RpZnlTeW5jUmVxdWlyZWQodGhpcyk7CisgICAgICAgIGNsaWVu
dCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQpAQCAtNDMzLDIwICs0MzMsMjAgQEAgV2ViTGF5ZXJJRCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OmlkKCkgY29uc3QKICAgICByZXR1cm4gbV9pZDsKIH0KIAotdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUo
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqIG1hc2sgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihtYXNrTGF5ZXIoKSkpCi0gICAg
ICAgIG1hc2stPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgICAg
ICBtYXNrLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICBp
ZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiByZXBsaWNhID0gdG9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIocmVwbGljYUxheWVyKCkpKQotICAgICAgICByZXBsaWNhLT5zeW5jQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICAgICAgcmVwbGljYS0+Zmx1c2hDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCiAgICAgbV9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQtPnN5bmNGaXhlZExheWVycygpOwogCi0gICAgc3luY0NvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xh
eWVyT25seSgpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUo
KTsgKytpKQotICAgICAgICBjaGlsZHJlbigpW2ldLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZShyZWN0
KTsKKyAgICAgICAgY2hpbGRyZW4oKVtpXS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3QpOwog
fQogCiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KEdyYXBoaWNzTGF5ZXIqIGxheWVyKQpAQCAtNTQ1LDcgKzU0NSw3IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjplbnN1cmVJbWFnZUJhY2tpbmdTdG9yZSgpCiAgICAgICAgIG1fbGF5
ZXJJbmZvLmltYWdlQmFja2luZ1N0b3JlSUQgPSBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNs
aWVudC0+YWRvcHRJbWFnZUJhY2tpbmdTdG9yZShtX2ltYWdlLmdldCgpKTsKIH0KIAotdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0xheWVyT25seSgpCiB7CiAgICAgLy8gVGhlIHJlbW90ZSBpbWFnZSBtaWdodCBo
YXZlIGJlZW4gcmVsZWFzZWQgYnkgcHVyZ2VCYWNraW5nU3RvcmVzLgogICAgIGVuc3VyZUltYWdl
QmFja2luZ1N0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDNlYmE3OWI0MmMzMDI4NzUzODc5ZjNlZjlmYjJm
MGRlMDljMmY5MDIuLjg3ZmY3NWFiYmFjN2JiMjZiZDA1Y2Q2OTBlYzE0YTI3YWRkN2JjZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCkBAIC0xLDQgKzEsNCBAQAotICAgIC8qCitmbHVzaENvbXBvc2l0aW5nU3RhdGUgICAg
LyoKICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCiAKICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMTUsOCArMTE1LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKICAgICB2b2lkIHNldENvbnRlbnRzU2NhbGUo
ZmxvYXQpOwogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihj
b25zdCBGbG9hdFBvaW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNDb21wb3NpdGluZ1N0YXRl
KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0
YXRlKGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGJv
b2wgc2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJik7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRleCA5
ZjNmMDY0ODIzZmEzY2U1N2Q0NWVjYmQ1ODBiYmIzMzMwYWQ3NjU1Li4yNzJkZjA5Yzc4NGRhYWM2
YjQ3ZWM5ZmJiNzBlNzUyZmJmNGFmZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC0yNTksMTEgKzI1OSwxMSBAQCBib29s
IExheWVyVHJlZUNvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogICAgIG1f
ZGV0YWNoZWRMYXllcnMuY2xlYXIoKTsKIAogICAgIGJvb2wgZGlkU3luYyA9IG1fd2ViUGFnZS0+
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5j
bHVkaW5nU3ViZnJhbWVzKCk7Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zeW5j
Q29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICBtX25vbkNvbXBvc2l0ZWRD
b250ZW50TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAg
ICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnN5
bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgICAgICBtX3BhZ2VPdmVy
bGF5TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAotICAg
IG1fcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAg
ICBtX3Jvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwog
CiAgICAgaWYgKG1fc2hvdWxkU3luY1Jvb3RMYXllcikgewogICAgICAgICBtX3dlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNldFJvb3RDb21wb3NpdGlu
Z0xheWVyKHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdldCgpKS0+aWQo
KSkpOwpAQCAtNTE0LDcgKzUxNCw3IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6Om5vdGlm
eUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosCiB7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKikKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6Om5vdGlmeUZs
dXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGM2
Y2NmY2I5MDA3NTdlZDVlZTY3MWFkNWExZTYyZDg5NThlMTI2MjguLjc0ZTIwYWVmZDM1ZTlmMTU5
NTE2MGFkYWFhMDAyYjBhYzE0YjlkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHByb3RlY3RlZDoK
IHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3Vi
bGUgdGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3Jk
ZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXll
clRyZWVIb3N0Q0EuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xh
eWVyVHJlZUhvc3RDQS5jcHAKaW5kZXggZjg4MGI4N2IwZTA3ZmJiYjI2ZGUzOTE1MDkxZGNmNzQ5
NmY0MmNhOC4uMDg3MmY0MzU1MGU3NjJmZGY5NmVmOGM4MjI0OTJlMzQ1NjMzM2ZjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RD
QS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJl
ZUhvc3RDQS5jcHAKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIExheWVyVHJlZUhvc3RDQTo6bm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91Ygog
ewogfQogCi12b2lkIExheWVyVHJlZUhvc3RDQTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQordm9pZCBMYXllclRyZWVIb3N0Q0E6Om5vdGlmeUZsdXNo
UmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCiB7CiB9CiAKQEAgLTI0NSwx
MCArMjQ1LDEwIEBAIHZvaWQgTGF5ZXJUcmVlSG9zdENBOjpkaWRQZXJmb3JtU2NoZWR1bGVkTGF5
ZXJGbHVzaCgpCiAKIGJvb2wgTGF5ZXJUcmVlSG9zdENBOjpmbHVzaFBlbmRpbmdMYXllckNoYW5n
ZXMoKQogewotICAgIG1fcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnN5bmNDb21wb3NpdGlu
Z1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExh
eWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgaWYgKG1f
cGFnZU92ZXJsYXlMYXllcikKLSAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zeW5jQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVy
LT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICByZXR1cm4g
bV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuaAppbmRleCA5MmFlNzI2
NzQ3YjY0MzU5NDg2NTgxMTUzN2M0M2YwODk0MGY0ZWM1Li45Y2I4Y2E2YTU0ZmMzODZkMmJlM2M4
OTI5MjQ4Y2ZiZTVlMDJjNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0
aW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29u
dGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBz
aG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRy
ZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggNDQxYWI5ZTlkMzkzNTVlYzkzOWYyOTZjYzZmNmRhNTY1
M2VlZmU1MS4uNzdhMWIxNjdkMTdlY2UxMGJlZGMyMDViMjUyYzgwOGE5ZTliMzg3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVy
VHJlZUhvc3RHdGsuY3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBMYXllclRyZWVIb3N0R3Rr
Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBk
b3UKIHsKIH0KIAotdm9pZCBMYXllclRyZWVIb3N0R3RrOjpub3RpZnlTeW5jUmVxdWlyZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCit2b2lkIExheWVyVHJlZUhvc3RHdGs6Om5vdGlm
eUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCiB7CiB9CiAKQEAg
LTI4NywxMCArMjg3LDEwIEBAIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6bGF5ZXJGbHVzaFRpbWVy
RmlyZWQoKQogCiBib29sIExheWVyVHJlZUhvc3RHdGs6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdl
cygpCiB7Ci0gICAgbV9yb290TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5
ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9w
YWdlT3ZlcmxheUxheWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnN5bmNDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXIt
PmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIHJldHVybiBt
X3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCktPmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAppbmRleCBkOWE4
MTZjMmViZGRiOTg1YzEzNzJlY2ViYzZlZjU3NmMyMDNmODAwLi42MWI5ZmE2NzE1ODMzNmEzNDYz
Y2RjMGNmN2NjODk4MzdlMGIxMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAtNzUsNyArNzUsNyBA
QCBwcml2YXRlOgogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUgdGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdC
b3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBhMDQ0
N2I2OWQ4MTY0YWE2MmZiZjkwNmUyNTc2NzNjNGRiYjdjMjIwLi5mNTA0OGE5ODVlZTU4N2JiNzJi
M2IwMGNiNTI5NDdiY2M4ZjNkZmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0
ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggNmJjYmU3YjcxNjIxM2VhOWY1Yzg3OGE2ZjAw
ZTAwNzM0M2M4NmMxZC4uOWZiYjE3MGE2MWUxNzAzNjZiNzUwZDQ4MDI0NzJmZmQ0YzY5MWIyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC0yNjMsNyAr
MjYzLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bm90aWZ5QW5pbWF0
aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwKIHsKIH0KIAotdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKIH0KIApAQCAtMzA1LDcgKzMwNSw3IEBAIGJv
b2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKIAogICAgIGlm
IChtX3BhZ2VPdmVybGF5TGF5ZXIpIHsKICAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRO
ZWVkc0Rpc3BsYXkoKTsKLSAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zeW5jQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgfQogCiAgICAgYm9v
bCByZXR1cm5WYWx1ZSA9IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXco
KS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167149</attachid>
            <date>2012-10-04 11:37:31 -0700</date>
            <delta_ts>2012-10-04 13:01:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98430-20121004113641.patch</filename>
            <type>text/plain</type>
            <size>67000</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1MWE0MDczOGQxOTQ1
YjU1Nzg0N2JkZTJjMWQwYjVlMDNlYmVjYy4uNDY2NThkM2U2NWUzNTY3ZDRjMDg5Y2Q0YzVjMTYz
OGY5OTZmMjljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEwLTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmFsIHBhcnQg
b2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xheWVy
IGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRoYXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMiIHRv
IHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3RlYWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAgICAg
d2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpmbHVz
aENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgIChHcmFwaGljc0xheWVyQ2xp
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0dyYXBoaWNzTGF5
ZXJCbGFja0JlcnJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQmxhY2tCZXJy
eTo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldl
YktpdFRocmVhZDo6c2V0TmVlZHNDb21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJEaWRDcmVhdGVUaWxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBvc2l0aW9uRm9yQ2xvbmVSb290
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpub3RlTGF5ZXJQcm9w
ZXJ0eUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6Om5vdGlmeUNoYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlRm9yVGhpc0xheWVyT25seSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaDoKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAg
ICAoVGV4dHVyZU1hcHBlckxheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5
Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
OgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorCiAyMDEyLTEwLTA0ICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgaW5saW5lLWZsZXggYmFzZWxpbmUgaXMg
c29tZXRpbWVzIHdyb25nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBhNTVkOGYz
N2QwZjMyMTRlZGRjMTI1NjcxNWRmZWQwMDA3OTk3ZGVmLi5iOGQyOGFmNTc1MDBkNzM0YmQ2NGFi
MjVlYjEwZGJhZDIzNzA1NGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNyBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1c2giIHJlbmFtaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQzMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBt
ZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXllckNsaWVudCB0aGF0
CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZsdXNoIiBpbnN0ZWFk
LCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNvZGUuCisK
KyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpub3RpZnlGbHVzaFJlcXVpcmVkKToK
KyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheV9wLmg6CisgICAgICAgIChXZWJPdmVybGF5UHJpdmF0
ZVdlYktpdFRocmVhZCk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6Cisg
ICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHA6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6Om5vdGlmeUZsdXNoUmVxdWly
ZWQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oOgorICAg
ICAgICAoRGVmYXVsdFRhcEhpZ2hsaWdodCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnNw
ZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
Okluc3BlY3Rvck92ZXJsYXk6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaDoKKyAgICAgICAgKEluc3BlY3Rv
ck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6Om5vdGlmeUZs
dXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5o
OgorICAgICAgICAoU2VsZWN0aW9uT3ZlcmxheSk6CisKKzIwMTItMTAtMDQgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZs
dXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDMxMjM4YzJlNzRmZmY0MTMzOGIxNWRhYzE4N2I4MmJlNWQ1ZTAy
ZjEuLmNiMDdkZjc0MTI4NWJjMDgwZmVlN2Y2ZmZiYzc2MTQ3NWRhN2FlZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1
c2giIHJlbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENoYW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXll
ckNsaWVudCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZs
dXNoIiBpbnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2Yg
dGhlIGNvZGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c3luY0xheWVyc05vdyk6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOgorCisyMDEyLTEw
LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFN0
YW5kYXJkaXplIG9uICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZs
dXNoaW5nL3N5bmNpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4MzIxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyNzcwZDM0YzIzMmMxZDZiMGJkNzBi
MjY2MzA0NGM0NTAzZDkzYTZkLi44MjY5ZGJmY2EwNWZmMjFkY2JlNGRmMjZjNmU1NTM3NjIwYmQ4
OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTItMTAtMDQgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgRmluYWwgcGFydCBv
ZiAic3luYyIgdG8gImZsdXNoIiByZW5hbWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgbWV0aG9kIG5hbWVzIG9uIEdyYXBoaWNzTGF5ZXIg
YW5kIEdyYXBoaWNzTGF5ZXJDbGllbnQgdGhhdAorICAgICAgICByZWZlciB0byAic3luYyIgdG8g
dXNlIHRoZSB0ZXJtICJmbHVzaCIgaW5zdGVhZCwgdG8gYmUgY29uc2lzdGVudAorICAgICAgICB3
aXRoIHRoZSByZXN0IG9mIHRoZSBjb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKKyAgICAgICAgKEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktp
dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJvb3RMYXllcik6CisgICAg
ICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzTm93
KToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAo
V2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisKKzIwMTItMTAtMDQg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRh
cmRpemUgb24gImZsdXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hp
bmcvc3luY2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTgzMjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc2ZDgwYTA1ZmYzYWI4OTBkYmIxOTJlNGJm
YWI1MWUyMWU2YTg0YzMuLjhlZTI4YjkwNzgyMjE1NzBlNTE3ZDEwYmI4ZDhmMDJmNmMyYWFkMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJz
eW5jIiB0byAiZmx1c2giIHJlbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQg
R3JhcGhpY3NMYXllckNsaWVudCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2Ug
dGhlIHRlcm0gImZsdXNoIiBpbnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGgg
dGhlIHJlc3Qgb2YgdGhlIGNvZGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisK
KzIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAg
ICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcg
bGF5ZXIgZmx1c2hpbmcvc3luY2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAwMTIyY2U3NWYxYjQ1NjE3
YjE1NGNiYTZhODAwNDE1ZjE2NmM1NmY4Li5hMzNhMDY0N2I1YmJhZTEzYjI4NTg4YWQwMTNkZjFj
NGU0MzUyN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTEwLTA0ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEZpbmFsIHBh
cnQgb2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xh
eWVyIGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRoYXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMi
IHRvIHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3RlYWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAg
ICAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1BhZ2VDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXJD
bGllbnRRdDo6c3luY1Jvb3RMYXllcik6CisKKzIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0
ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IGI5OTU5OTBmMzc0Yjg4NGNiNWFlMTc5NDMxZmUyMTdlZDU0NTJiMjIuLjFm
NzU1ZjE4ZTE0MTdiOGZlNGMwYmIzMzRmNGEzYTZmN2IxY2I4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwyMSBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1c2giIHJl
bmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXllckNsaWVu
dCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZsdXNoIiBp
bnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNv
ZGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeUZs
dXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViVmlldzo6Zmx1c2hQZW5kaW5nR3JhcGhpY3NMYXll
ckNoYW5nZXMpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKworMjAxMi0xMC0wNCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBTdGFuZGFyZGl6ZSBvbiAi
Zmx1c2giIHRlcm1pbm9sb2d5IGZvciBjb21wb3NpdGluZyBsYXllciBmbHVzaGluZy9zeW5jaW5n
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMyMQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggZjU3ODViOTI4MzE5ZWE5NzU0MzQ4ZTM3NjNmNDcyYTQ4Y2ZhZGQ3Zi4u
ZTdiY2FkYjRkZmQ5ODdkNGU4NGYzN2JhODMzZmIyMmZlNjdmNzRjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDUzIEBACiAyMDEyLTEwLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCisgICAgICAgIEZpbmFsIHBhcnQgb2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1p
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
IG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xheWVyIGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRo
YXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMiIHRvIHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3Rl
YWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAgICAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnBhaW50VG9DdXJy
ZW50R0xDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmZsdXNo
TGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5oOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6
bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1h
dGVkUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmRpZENoYW5nZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6ZGlkQ2hhbmdlRmlsdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6bm90aWZ5
Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3Jk
aW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENB
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBOjpub3RpZnlGbHVzaFJlcXVp
cmVkKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0
Q0EuaDoKKyAgICAgICAgKExheWVyVHJlZUhvc3RDQSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlSG9zdEd0azo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUhvc3RHdGs6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmg6CisgICAgICAgIChMYXllclRyZWVI
b3N0R3RrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgIChUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorCisyMDEyLTEwLTA0ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFN0YW5kYXJkaXplIG9u
ICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoaW5nL3N5bmNp
bmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzIx
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCA5M2JkYzIyYTEyMmJkYWExOWIxNzlhNDhiZDVhZTQxMDQ2ZWM1NzEzLi4xNWIzYWEy
MTM3NDc2ODRjZWM5ZTJlNGEwNmFlMmMyZjZlM2UzYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zODUsOCArMzg1LDggQEAg
cHVibGljOgogICAgIC8vIFNvbWUgY29tcG9zaXRpbmcgc3lzdGVtcyBtYXkgZG8gaW50ZXJuYWwg
YmF0Y2hpbmcgdG8gc3luY2hyb25pemUgY29tcG9zaXRpbmcgdXBkYXRlcwogICAgIC8vIHdpdGgg
dXBkYXRlcyBkcmF3biBpbnRvIHRoZSB3aW5kb3cuIFRoZXNlIG1ldGhvZHMgZmx1c2ggaW50ZXJu
YWwgYmF0Y2hlZCBzdGF0ZSBvbiB0aGlzIGxheWVyCiAgICAgLy8gYW5kIGRlc2NlbmRhbnQgbGF5
ZXJzLCBhbmQgdGhpcyBsYXllciBvbmx5LgotICAgIHZpcnR1YWwgdm9pZCBzeW5jQ29tcG9zaXRp
bmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIC8qIGNsaXBSZWN0ICovKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIC8qIGNsaXBS
ZWN0ICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpIHsgfQogICAgIAogICAgIC8vIFJldHVybiBhIHN0cmluZyB3aXRoIGEgaHVt
YW4gcmVhZGFibGUgZm9ybSBvZiB0aGUgbGF5ZXIgdHJlZSwgSWYgZGVidWcgaXMgdHJ1ZSAKICAg
ICAvLyBwb2ludGVycyBmb3IgdGhlIGxheWVycyBhbmQgdGltaW5nIGRhdGEgd2lsbCBiZSBpbmNs
dWRlZCBpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDEwYjExNmQ5ZGEw
YWU2OWU0OTUxMGVjNmZlN2JmMzg4ZDNiNjQzY2EuLjNkNWRiYzgyZDg2NjkwNDc0MDM3ZjdjNWZj
MzhmNmQwOWYwNmVlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTYzLDkgKzYzLDkgQEAgcHVibGljOgog
ICAgIC8vIENhbGxiYWNrIGZvciB3aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGFuaW1hdGlvbiBz
dGFydGVkLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgPSAwOwogCi0gICAgLy8gTm90aWZpY2F0aW9uIHRo
YXQgYSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VkIHRoYXQgcmVxdWlyZXMgYSBzdWJzZXF1ZW50IGNh
bGwgdG8gc3luY0NvbXBvc2l0aW5nU3RhdGUoKQorICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGEg
bGF5ZXIgcHJvcGVydHkgY2hhbmdlZCB0aGF0IHJlcXVpcmVzIGEgc3Vic2VxdWVudCBjYWxsIHRv
IGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpCiAgICAgLy8gdG8gYXBwZWFyIG9uIHRoZSBzY3JlZW4u
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvR3Jh
cGhpY3NMYXllckJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvR3JhcGhpY3NMYXllckJsYWNrQmVycnkuaAppbmRleCBkOGQ2YjZhZTkzYjEz
MDExZmNmMWIxMmMwZmQxNTgzODM2YjI0ZmRhLi41Yzg2MTI2NGU1NjYxYjQwYmQxNDcxOTc3YTJh
NDlmOTIxYmQzNjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0dyYXBoaWNzTGF5ZXJCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFwaGljc0xheWVyQmxhY2tCZXJyeS5o
CkBAIC0xMTYsMTAgKzExNiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVn
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVn
Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgpOwogCi0gICAgdm9pZCBub3Rp
ZnlTeW5jUmVxdWlyZWQoKQorICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpCiAgICAgewog
ICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+bm90aWZ5U3luY1Jl
cXVpcmVkKHRoaXMpOworICAgICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZsdXNoUmVxdWlyZWQo
dGhpcyk7CiAgICAgfQogCiAgICAgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0
aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2ti
ZXJyeS9MYXllcldlYktpdFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcAppbmRleCA0MmI4YmVkNTg1NDQ4
ZjBlN2M3MGRmZGI0NjM4OGMzNmVlODA4ZjQwLi4xNDI5OTFjZjVkNTY1N2VkYjk1NDIzY2ZmZjRm
M2MzMGNmNGI3NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcApAQCAtMTk1
LDExICsxOTUsMTEgQEAgdm9pZCBMYXllcldlYktpdFRocmVhZDo6c2V0RHJhd2FibGUoYm9vbCBp
c0RyYXdhYmxlKQogCiB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjpzZXROZWVkc0NvbW1pdCgpCiB7
Ci0gICAgLy8gQ2FsbCBub3RpZnlTeW5jUmVxdWlyZWQoKSwgd2hpY2ggaW4gdGhpcyBpbXBsZW1l
bnRhdGlvbiBwbHVtYnMgdGhyb3VnaCB0bworICAgIC8vIENhbGwgbm90aWZ5Rmx1c2hSZXF1aXJl
ZCgpLCB3aGljaCBpbiB0aGlzIGltcGxlbWVudGF0aW9uIHBsdW1icyB0aHJvdWdoIHRvCiAgICAg
Ly8gY2FsbCBzY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpIG9uIHRoZSBXZWJWaWV3LCB3aGljaCB3
aWxsIGNhdXNlIHVzIHRvIGNvbW1pdAogICAgIC8vIGNoYW5nZXMgZG9uZSBvbiB0aGUgV2ViS2l0
IHRocmVhZCBmb3IgZGlzcGxheSBvbiB0aGUgQ29tcG9zaXRpbmcgdGhyZWFkLgogICAgIGlmICht
X293bmVyKQotICAgICAgICBtX293bmVyLT5ub3RpZnlTeW5jUmVxdWlyZWQoKTsKKyAgICAgICAg
bV9vd25lci0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIExheWVyV2ViS2l0VGhy
ZWFkOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0aW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5k
ZXggYzdiMjUyMjAzYjEwYzI2OTI4Mzg1NjJhOTk5YmMwNTliYjdlMTUxZi4uMjQ5NTRhNGI4ZGYy
ZmVjODA3YTJlNGYzNmZiMmVjYjNiYTZkNTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC04OTMsMTMg
Kzg5MywxMyBAQCBGbG9hdFBvaW50IEdyYXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVBvc2l0aW9uUmVs
YXRpdmVUb0Jhc2UoZmxvYXQmIHBhZ2VTY2FsZSkgY29ucwogICAgIHJldHVybiBGbG9hdFBvaW50
KCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZShjb25z
dCBGbG9hdFJlY3QmIGNsaXBSZWN0KQordm9pZCBHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewogICAgIFRyYW5zZm9ybVN0
YXRlIHN0YXRlKFRyYW5zZm9ybVN0YXRlOjpVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlv
biwgRmxvYXRRdWFkKGNsaXBSZWN0KSk7CiAgICAgcmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhzdGF0
ZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKQogewogICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcjsKICAgICBG
bG9hdFBvaW50IG9mZnNldCA9IGNvbXB1dGVQb3NpdGlvblJlbGF0aXZlVG9CYXNlKHBhZ2VTY2Fs
ZUZhY3Rvcik7CkBAIC0xMDA1LDggKzEwMDUsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGxh
dGZvcm1DQUxheWVyRGlkQ3JlYXRlVGlsZXMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRpcgog
ICAgICAgICBzZXROZWVkc0Rpc3BsYXlJblJlY3QoZGlydHlSZWN0c1tpXSk7CiAKICAgICAvLyBF
bnN1cmUgdGhhdCB0aGUgbGF5b3V0IGlzIHVwIHRvIGRhdGUgYmVmb3JlIGFueSBpbmRpdmlkdWFs
IHRpbGVzIGFyZSBwYWludGVkIGJ5IHRlbGxpbmcgdGhlIGNsaWVudAotICAgIC8vIHRoYXQgaXQg
bmVlZHMgdG8gc3luYyBpdHMgbGF5ZXIgc3RhdGUsIHdoaWNoIHdpbGwgZW5kIHVwIHNjaGVkdWxp
bmcgdGhlIGxheWVyIGZsdXNoZXIuCi0gICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0
aGlzKTsKKyAgICAvLyB0aGF0IGl0IG5lZWRzIHRvIGZsdXNoIGl0cyBsYXllciBzdGF0ZSwgd2hp
Y2ggd2lsbCBlbmQgdXAgc2NoZWR1bGluZyB0aGUgbGF5ZXIgZmx1c2hlci4KKyAgICBjbGllbnQo
KS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogZmxvYXQgR3JhcGhpY3NMYXllckNB
OjpwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpCkBAIC0yNTg2LDcgKzI1ODYsNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlQ2xvbmVMYXllcnMoKQogCiBGbG9hdFBvaW50
IEdyYXBoaWNzTGF5ZXJDQTo6cG9zaXRpb25Gb3JDbG9uZVJvb3RMYXllcigpIGNvbnN0CiB7Ci0g
ICAgLy8gVGhpcyBjYW4gZ2V0IGNhbGxlZCBkdXJpbmcgYSBzeW5jIHdoZW4gd2UndmUganVzdCBy
ZW1vdmVkIHRoZSBtX3JlcGxpY2FMYXllci4KKyAgICAvLyBUaGlzIGNhbiBnZXQgY2FsbGVkIGR1
cmluZyBhIGZsdXNoIHdoZW4gd2UndmUganVzdCByZW1vdmVkIHRoZSBtX3JlcGxpY2FMYXllci4K
ICAgICBpZiAoIW1fcmVwbGljYUxheWVyKQogICAgICAgICByZXR1cm4gRmxvYXRQb2ludCgpOwog
CkBAIC0yODQzLDcgKzI4NDMsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bm90ZVN1YmxheWVy
c0NoYW5nZWQoKQogdm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdl
ZChMYXllckNoYW5nZUZsYWdzIGZsYWdzKQogewogICAgIGlmICghbV91bmNvbW1pdHRlZENoYW5n
ZXMgJiYgbV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlTeW5jUmVxdWlyZWQodGhp
cyk7CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogCiAgICAg
bV91bmNvbW1pdHRlZENoYW5nZXMgfD0gZmxhZ3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGQ1YjRjMmM2
MTcwZTBmNGY0MWE1OTM2MzUwMjY3YTViNzczOGQwZDUuLmU2MzVhYmIyNzIxYmNiMWQ2Mzk4ODRi
YmVhM2Q1M2YzMDRkODEzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAvLyBFbmFibGUgdGhpcyB0byBhZGQgYSBsaWdo
dCByZWQgd2FzaCBvdmVyIHRoZSB2aXNpYmxlIHBvcnRpb24gb2YgVGlsZWQgTGF5ZXJzLCBhcyBj
b21wdXRlZAotLy8gYnkgc3luY0NvbXBvc2l0aW5nU3RhdGUoKS4KKy8vIGJ5IGZsdXNoQ29tcG9z
aXRpbmdTdGF0ZSgpLgogLy8gI2RlZmluZSBWSVNJQkxFX1RJTEVfV0FTSAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xMzEsOCArMTMxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZWN1cnNp
dmVDb21taXRDaGFuZ2VzKGNvbnN0IFRyYW5zZm9ybVN0YXRlJiwgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gMSwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSA9IEZsb2F0
UG9pbnQoKSwgYm9vbCBhZmZlY3RlZEJ5UGFnZVNjYWxlID0gZmFsc2UpOwogCi0gICAgdmlydHVh
bCB2b2lkIHN5bmNDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1
YWwgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAg
ICB2aXJ0dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgT1ZFUlJJREU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDk1ZTA0YTg0YTkwMGU2
ZjI3ZmRkODlkOGJmOWE1MGI2Njg5YmQ4M2MuLjQyOTU0YTQ5OTYxY2EzY2ZmZGU2ZDNmZWFkMzg4
MGRkYzA0ZDk2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpub3Rp
ZnlDaGFuZ2UoVGV4dHVyZU1hcHBlckxheWVyOjpDaGFuZ2VNYXNrIGNoYQogICAgIG1fY2hhbmdl
TWFzayB8PSBjaGFuZ2VNYXNrOwogICAgIGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBjbGllbnQoKS0+bm90aWZ5U3luY1JlcXVpcmVkKHRoaXMpOworICAgIGNsaWVudCgpLT5u
b3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpkaWRTeW5jaHJvbml6ZSgpCkBAIC0zNjcsMTYgKzM2NywxNiBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvTWVkaWEoVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXIqCiAKIC8qIFxyZWltcCAoR3JhcGhpY3NMYXllci5oKQogKi8KLXZvaWQgR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKIHsKLSAgICBtX2xheWVyLT5zeW5jQ29tcG9zaXRpbmdT
dGF0ZSh0aGlzKTsKKyAgICBtX2xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcyk7CiB9
CiAKIC8qIFxyZWltcCAoR3JhcGhpY3NMYXllci5oKQogKi8KLXZvaWQgR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpCit2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3Qg
RmxvYXRSZWN0JikKIHsKLSAgICBtX2xheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZSh0aGlzLCBU
ZXh0dXJlTWFwcGVyTGF5ZXI6OlRyYXZlcnNlRGVzY2VuZGFudHMpOworICAgIG1fbGF5ZXItPmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSh0aGlzLCBUZXh0dXJlTWFwcGVyTGF5ZXI6OlRyYXZlcnNlRGVz
Y2VuZGFudHMpOwogfQogCiBib29sIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjphZGRBbmlt
YXRpb24oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgSW50U2l6ZSYg
Ym94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleWZyYW1lc05h
bWUsIGRvdWJsZSB0aW1lT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaAppbmRleCA1MDA3MGNjMGYwOGU5OTJlYmFiYmNhMDQxZjhmZmI2YjE0YmJhNDkwLi42Mzdh
YmQ5ZDQ0MDMwM2IzZmFlOTE4ODgyOGNiMGVkM2NmZTZhZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNjksOCArNjksOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIGNhbnZhcykgeyBzZXRDb250ZW50c1RvTWVk
aWEoY2FudmFzKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZShjb25z
dCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShj
b25zdCBGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3QgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDdhMGQ0
NDQzMjFjNjhlYjliMTk3MmQyMzEzNmZiZjM0YTJlOTAwYzMuLmUzNmRiYzk0OGFmNGJkOGExOTY3
YWJmMjNkY2I0ZDU1YzRiZDRhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC00
MDIsMTIgKzQwMiwxMiBAQCBUZXh0dXJlTWFwcGVyTGF5ZXI6On5UZXh0dXJlTWFwcGVyTGF5ZXIo
KQogICAgICAgICBtX3BhcmVudC0+bV9jaGlsZHJlbi5yZW1vdmUobV9wYXJlbnQtPm1fY2hpbGRy
ZW4uZmluZCh0aGlzKSk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5jQ29tcG9z
aXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgaW50
IG9wdGlvbnMpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBpbnQgb3B0aW9ucykK
IHsKLSAgICBzeW5jQ29tcG9zaXRpbmdTdGF0ZShncmFwaGljc0xheWVyLCByb290TGF5ZXIoKS0+
bV90ZXh0dXJlTWFwcGVyLCBvcHRpb25zKTsKKyAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGUoZ3Jh
cGhpY3NMYXllciwgcm9vdExheWVyKCktPm1fdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7CiB9CiAK
LXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRleHR1
cmVNYXBwZXIpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
U2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlcikKIHsKICAgICBpbnQgY2hhbmdlTWFzayA9IGdyYXBoaWNzTGF5
ZXItPmNoYW5nZU1hc2soKTsKIApAQCAtNTE5LDE4ICs1MTksMTggQEAgdm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKICAgICAgICAgc2V0T3BhY2l0eShtX3N0YXRlLm9w
YWNpdHkpOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0NvbXBvc2l0aW5nU3Rh
dGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIGludCBvcHRpb25zKQordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6
OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhp
Y3NMYXllciwgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IG9wdGlvbnMpCiB7CiAg
ICAgaWYgKCF0ZXh0dXJlTWFwcGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZ3JhcGhp
Y3NMYXllciAmJiAhKG9wdGlvbnMgJiBDb21wdXRhdGlvbnNPbmx5KSkgewotICAgICAgICBzeW5j
Q29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcik7CisgICAg
ICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBl
cik7CiAgICAgICAgIGdyYXBoaWNzTGF5ZXItPmRpZFN5bmNocm9uaXplKCk7CiAgICAgfQogCiAg
ICAgaWYgKGdyYXBoaWNzTGF5ZXIgJiYgbV9zdGF0ZS5tYXNrTGF5ZXIpIHsKLSAgICAgICAgbV9z
dGF0ZS5tYXNrTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIoZ3JhcGhpY3NMYXllci0+bWFza0xheWVyKCkpLCB0ZXh0dXJlTWFwcGVyKTsKKyAg
ICAgICAgbV9zdGF0ZS5tYXNrTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPm1hc2tMYXllcigpKSwgdGV4dHVyZU1h
cHBlcik7CiAKICAgICAgICAgLy8gQSBtYXNrIGxheWVyIGhhcyBpdHMgcGFyZW50J3Mgc2l6ZSBi
eSBkZWZhdWx0LCBpbiBjYXNlIGl0J3Mgbm90IHNldCBzcGVjaWZpY2FsbHkuCiAgICAgICAgIGlm
IChtX3N0YXRlLm1hc2tMYXllci0+bV9zaXplLmlzRW1wdHkoKSkKQEAgLTUzOCw3ICs1MzgsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0NvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIqIGdyYXBoaQogICAgIH0KIAogICAgIGlmIChtX3N0YXRlLnJlcGxp
Y2FMYXllcikKLSAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0
YXRlKHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoZ3JhcGhpY3NMYXllci0+cmVwbGljYUxh
eWVyKCkpLCB0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNz
TGF5ZXItPnJlcGxpY2FMYXllcigpKSwgdGV4dHVyZU1hcHBlcik7CiAKICAgICBzeW5jQW5pbWF0
aW9ucygpOwogICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSh0ZXh0dXJlTWFwcGVyLCBncmFwaGljc0xh
eWVyKTsKQEAgLTU1MiwxMSArNTUyLDExIEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5j
Q29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpCiAgICAg
ICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIo
Y2hpbGRyZW5baV0pOwogICAgICAgICAgICAgaWYgKCFsYXllcikKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIGxheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGNoaWxkcmVuW2ldKSwgdGV4dHVyZU1hcHBlciwgb3B0aW9u
cyk7CisgICAgICAgICAgICBsYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIoY2hpbGRyZW5baV0pLCB0ZXh0dXJlTWFwcGVyLCBvcHRpb25zKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoaW50IGkgPSBtX2NoaWxkcmVu
LnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKQotICAgICAgICAgICAgbV9jaGlsZHJlbltpXS0+c3lu
Y0NvbXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7CisgICAgICAgICAg
ICBtX2NoaWxkcmVuW2ldLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVyZU1hcHBlciwg
b3B0aW9ucyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKaW5kZXggMmY3ZjRi
ODIxMmZhMTg4NGI5ZDAwZjgwZTFlZjY3M2VjMTg5OWQzOC4uNTc0MGFjZjUyM2UyZGYzYzY0NWFl
NWIyM2I1NTY3MThjMWM3ODU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtMTE0LDgg
KzExNCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJMYXllcigpOwog
Ci0gICAgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciosIGludCBzeW5jT3B0aW9ucyA9IDApOwotICAgIHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGUo
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBUZXh0dXJlTWFwcGVyKiwgaW50IHN5bmNPcHRp
b25zID0gMCk7CisgICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKKyAgICB2b2lkIGZsdXNoQ29tcG9z
aXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1cmVNYXBwZXIqLCBp
bnQgc3luY09wdGlvbnMgPSAwKTsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJ
bnRTaXplKG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOyB9CiAgICAgdm9pZCBzZXRU
cmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICB2b2lkIHNldE9wYWNp
dHkoZmxvYXQgdmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFsdWU7IH0KQEAgLTE0NCw3ICsxNDQsNyBA
QCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCB0YXJnZXRSZWN0Rm9yVGlsZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiB0b3RhbFRhcmdldFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QpIGNvbnN0
OwogICAgIHZvaWQgaW52YWxpZGF0ZVZpZXdwb3J0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZv
aWQgbm90aWZ5Q2hhbmdlKENoYW5nZU1hc2spOwotICAgIHZvaWQgc3luY0NvbXBvc2l0aW5nU3Rh
dGVTZWxmKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwgVGV4dHVyZU1hcHBlciopOworICAg
IHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciosIFRleHR1cmVNYXBwZXIqKTsKIAogICAgIHN0YXRpYyBpbnQgY29tcGFyZUdyYXBoaWNzTGF5
ZXJzWlZhbHVlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpOwogICAgIHN0YXRpYyB2b2lk
IHNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKiA+JiBhcnJheSwgaW50IGZp
cnN0LCBpbnQgbGFzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IDViZjFiM2I3YjQ3Zjg0NTVkYmE4NmRjMjk0NjA3YWU0MmE4YTE5
MzUuLjUwMTA0NTQ4NTNmY2YyZGUwYTM5ODExOGM4MDU0ZmNmNzk5MmU0OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNjc2LDcg
KzE2NzYsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbQogICAgIHJlbmRlcmVyKCktPmFuaW1h
dGlvbigpLT5ub3RpZnlBbmltYXRpb25TdGFydGVkKHJlbmRlcmVyKCksIHRpbWUpOwogfQogCi12
b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5n
RGVzdHJveWVkKCkpCiAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2NoZWR1bGVMYXllckZsdXNoKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXgg
Mzc1OTA4NDg5OGU0NWIwYTA5NWY4NDBkYjQ3ZGYwN2QyNzZhZDIyMy4uM2QyMjQ3YWY4N2NjNWNh
Y2I5ZDVhMDVkZjA3MGUzODU0ODEwYmY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgdXNpbmdUaWxlQ2FjaGUoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0IHsgcmV0dXJuIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXI7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHN0
YXJ0VGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
R3JhcGhpY3NMYXllciopOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3Qg
R3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA3YzgzODI4Y2RiMjUxOWUyOWJk
ZTZmMjA0OTdhYjFiYzdjY2NjMDRlLi5lNWNmMGFiY2E4NjgwOTY4MWQyYmRlNDUzZjIzOTVmYzg5
NDI1NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpzY2hlZHVsZUxheWVyRmx1c2goKQogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZs
dXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhib29sIGlzRmx1c2hSb290KQogewogICAgIC8vIEZyYW1l
Vmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCkgZmx1c2hlcyBl
YWNoIHN1YmZyYW1lLAotICAgIC8vIGJ1dCBHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdT
dGF0ZSgpIHdpbGwgY3Jvc3MgZnJhbWUgYm91bmRhcmllcworICAgIC8vIGJ1dCBHcmFwaGljc0xh
eWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoKSB3aWxsIGNyb3NzIGZyYW1lIGJvdW5kYXJpZXMK
ICAgICAvLyBpZiB0aGUgR3JhcGhpY3NMYXllcnMgYXJlIGNvbm5lY3RlZCAodGhlIFJvb3RMYXll
ckF0dGFjaGVkVmlhRW5jbG9zaW5nRnJhbWUgY2FzZSkuCiAgICAgLy8gQXMgbG9uZyBhcyB3ZSdy
ZSBub3QgdGhlIHJvb3Qgb2YgdGhlIGZsdXNoLCB3ZSBjYW4gYmFpbC4KICAgICBpZiAoIWlzRmx1
c2hSb290ICYmIHJvb3RMYXllckF0dGFjaG1lbnQoKSA9PSBSb290TGF5ZXJBdHRhY2hlZFZpYUVu
Y2xvc2luZ0ZyYW1lKQpAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICAgICAg
aWYgKGZyYW1lVmlldykgewogICAgICAgICAgICAgLy8gRklYTUU6IFBhc3NpbmcgZnJhbWVSZWN0
KCkgaXMgY29ycmVjdCBvbmx5IHdoZW4gUmVuZGVyTGF5ZXJDb21wb3NpdG9yIHVzZXMgYSBTY3Jv
bGxMYXllciAoYXMgaW4gV2ViS2l0MikKICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgdGhlIHBh
c3NlZCBjbGlwIHJlY3QgbmVlZHMgdG8gdGFrZSBzY3JvbGxpbmcgaW50byBhY2NvdW50Ci0gICAg
ICAgICAgICByb290TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlKGZyYW1lVmlldy0+ZnJhbWVS
ZWN0KCkpOworICAgICAgICAgICAgcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUoZnJh
bWVWaWV3LT5mcmFtZVJlY3QoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggNjA2ZTVi
OGMzY2MyZTZhZGIxNDJlZDMzYWEzNTYzNDg2MjYzOTU3MS4uNzIyNDRiMTQzMDg2YTI4MDQ4NjUy
ZTUyMDkxZjZhN2ZiMjJlZDM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjI1LDcgKzIyNSw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IEltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgeyBzY2hlZHVsZUxheWVyRmx1c2goKTsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdy
YXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
Yk92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5LmNw
cAppbmRleCA3OTJhNDczYjAzZmJlMjBkNjg4NzBlNWY2NTExNmJkZjU0YWNlM2QwLi4wZDlhMDk5
NWY5YTQ2YzE2NWQ1ZjM2M2ZjM2Y3NjgxM2Y1MDhmMWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAKQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIFdlYk92
ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpyZXNldE92ZXJyaWRlcygpCiAgICAgfQogfQogCi12
b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpub3RpZnlTeW5jUmVxdWlyZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCit2b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0
VGhyZWFkOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KQogewogICAgIGlmIChXZWJQYWdlUHJpdmF0ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKICAgICAg
ICAgcGFnZS0+c2NoZWR1bGVSb290TGF5ZXJDb21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCmluZGV4IGQ2YzFkYzE3NmMyMDFkZDViZjY4ZTQxZTEy
NDNlOGFiZjIyZWU5ZmYuLjg0NmU1Y2M3YTU4NjM4ZWYwNzMyYTQxYzc4ZGI4OTAwN2MwMzA5Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmgK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaApAQCAtMTY1
LDcgKzE2NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CiAgICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDk1YWEwN2IwYTRhZDg1NjIz
OTIwN2U5MGQ2ZjllYjYwNTI2YmE0NjkuLjdmOGYzNTk1OWNkN2Q5Y2FjMmZkOGIwMzdjYmU4MDRm
YTUyYWFiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAt
NTg4Myw3ICs1ODgzLDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6c2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpCiAgICAgbV9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uID0gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5U3luY1JlcXVp
cmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1
c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBzY2hlZHVsZVJvb3RMYXll
ckNvbW1pdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5k
ZXggMzExN2YyNzU1Yjk5NGQzNmQyN2IzOWZiZmRlMTc3ZGJjMDI0MGIzMC4uZjAyZGM3NjU3Yjg5
YjU2OWRiODMxOWE1NmJjNjNlMDdmN2Y5MjA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2VfcC5oCkBAIC0zOTgsNyArMzk4LDcgQEAgcHVibGljOgogCiAgICAgLy8gRmFs
bGJhY2sgR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRhdGlvbiwgdXNlZCBmb3IgdmFyaW91
cyBvdmVybGF5IGxheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGlu
Q2xpcCkgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENv
dW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdo
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFw
SGlnaGxpZ2h0LmNwcAppbmRleCBmMDYyNjNhZTc3ZDIxYWVmNWQ0YWRmYWM0YjY5Yjc2MjE1NzZl
OTU1Li40NTQ3MmFhZmQ5NGIwMzg3Y2NlNmYyYjE4MmViM2NkNjkxYTkxZGRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxp
Z2h0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZh
dWx0VGFwSGlnaGxpZ2h0LmNwcApAQCAtMTEwLDkgKzExMCw5IEBAIHZvaWQgRGVmYXVsdFRhcEhp
Z2hsaWdodDo6aGlkZSgpCiAgICAgICAgIG1fb3ZlcmxheS0+b3ZlcnJpZGUoKS0+YWRkQW5pbWF0
aW9uKGZhZGVBbmltYXRpb24pOwogfQogCi12b2lkIERlZmF1bHRUYXBIaWdobGlnaHQ6Om5vdGlm
eVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgRGVmYXVsdFRh
cEhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKiBsYXll
cikKIHsKLSAgICBtX3BhZ2UtPm5vdGlmeVN5bmNSZXF1aXJlZChsYXllcik7CisgICAgbV9wYWdl
LT5ub3RpZnlGbHVzaFJlcXVpcmVkKGxheWVyKTsKIH0KIAogdm9pZCBEZWZhdWx0VGFwSGlnaGxp
Z2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQm
IGMsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiAvKmluQ2xpcCov
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVm
YXVsdFRhcEhpZ2hsaWdodC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oCmluZGV4IGNjZjk2YjVkOWJmZTE5ZDFiMTExMGI5OGYz
MjhlMjg0OTQxNGIxODEuLjA2YzU1OTA1Nzk1MjA5M2ZhZDhjYTlhNWQxOGYwYTc3MjA2ZWZjYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1
bHRUYXBIaWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgaW5DbGlwKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3dSZXBh
aW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHAKaW5kZXggOWNmZjViMjMwMGVlNmQzNDQ4
ZTBkOWMxNjAyNmZhYmFiMTI1NTVjOC4uMDgxNWRkOTdiY2IyOTVkZGViMDRiODZjMjMyMGEzNjU3
NzU1ZDNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcApAQCAt
NDIsOSArNDIsOSBAQCBJbnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KFdlYlBhZ2VQ
cml2YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KgogfQogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lkIEluc3BlY3Rv
ck92ZXJsYXk6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciogbGF5ZXIpCiB7Ci0gICAgbV93ZWJQYWdlLT5ub3RpZnlTeW5jUmVxdWlyZWQobGF5ZXIpOwor
ICAgIG1fd2ViUGFnZS0+bm90aWZ5Rmx1c2hSZXF1aXJlZChsYXllcik7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3Zl
cmxheUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmgKaW5kZXggZGU2ZjUxZmYzMzI0ZmZlMDdmMzkz
MTNiZmMwM2JkN2Y4NThhZjUyNi4uOTExOTdjYzBjOWNiODNjMzZjMWMyZDQ1N2M2MjYxNDUyZDNk
MzEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5oCkBAIC01Miw3ICs1
Miw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CiAgICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAppbmRleCBjZDhjMzVkOTM4NTU5
NzBlMTM3MTFmZDFjNmE1ZGY0YmQ3N2JmODg0Li5lMWY0NzAxMGMwMTkxYmQ5MjlkNzc3MjhlYjI0
YmJkNzg1NGI1NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApAQCAtOTQsOSArOTQsOSBAQCB2
b2lkIFNlbGVjdGlvbk92ZXJsYXk6OmhpZGUoKQogICAgIG1fcGFnZS0+bV93ZWJQYWdlLT5yZW1v
dmVPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSk7CiB9CiAKLXZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6
bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBTZWxl
Y3Rpb25PdmVybGF5Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKQogewotICAgIG1fcGFnZS0+bm90aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKKyAgICBtX3Bh
Z2UtPm5vdGlmeUZsdXNoUmVxdWlyZWQobGF5ZXIpOwogfQogCiB2b2lkIFNlbGVjdGlvbk92ZXJs
YXk6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYg
YywgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlv
bk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVj
dGlvbk92ZXJsYXkuaAppbmRleCBiZTYxZTc2NGI3ZGE2Mjk2ODVkOTcxODY5MmQ1MjM0MGY2NTFi
MWQxLi5jMWEwZjg2YjhjZThjYzUwZThkZjhlNjAxNmM0MDI2YWZiMTgxODVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9u
T3ZlcmxheS5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEdyYXBoaWNzTGF5
ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CiAg
ICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHRFZmwuY3BwCmluZGV4IDRhMDg1NTJjOWFkYTRkNmQ3OWQ3ZDQwNTZlOTkzNmZhMjUy
ZTEzMDAuLmIxYmZmNjQ4NmIyMDgyYWZmNDIyNzVkMTE1MTI5MzM3M2NkODhmYzEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgYm9v
bCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5pdGlhbGl6ZShIb3N0V2luZG93KiBo
b3N0V2luZG93KQogdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c3luY0xheWVy
c05vdygpCiB7CiAgICAgaWYgKG1fcm9vdEdyYXBoaWNzTGF5ZXIpCi0gICAgICAgIG1fcm9vdEdy
YXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAg
ICAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5
ZXJPbmx5KCk7CiAKICAgICBFV0tQcml2YXRlOjpjb3JlUGFnZShtX3ZpZXcpLT5tYWluRnJhbWUo
KS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIH0K
QEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojph
dHRhY2hSb290R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKiByb290TAogICAgIG1fdGV4dHVy
ZU1hcHBlciA9IFRleHR1cmVNYXBwZXJHTDo6Y3JlYXRlKCk7CiAgICAgbV9yb290VGV4dHVyZU1h
cHBlckxheWVyLT5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVyZU1hcHBlci5nZXQoKSk7CiAKLSAg
ICBtX3Jvb3RHcmFwaGljc0xheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKKyAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEKiBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6Y29udGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApp
bmRleCA5MjZiMjE5ZmI5MGUwMDcwMjk5OTEwNjNkY2Q0ZmE5MDc3NTIwNTZiLi42NTcyZWE1ZWFk
MjgxM2M3NWJmNTdjZTE0MzkxYzE5ZDBlYTRjMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogCiAgICAgLy8gR3JhcGhpY3NMYXll
ckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5v
dGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvUGFpbnQpOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2Fpcm8u
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRDYWlyby5jcHAKaW5kZXggMmRiNjMyMTQwMzQ3NTg4NjUzM2QyZDU2ZDBjZDQ2
OGZhNjM4ODIyMS4uMzc4OTAzNDI2MzBlYzUwZGY0ZmI4OWEzMDVkMTc0ZTEwOTU3NWI4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6YXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGgKIAogICAgIG1fdGV4dHVyZU1hcHBlciA9IFRl
eHR1cmVNYXBwZXJJbWFnZUJ1ZmZlcjo6Y3JlYXRlKCk7CiAgICAgbV9yb290VGV4dHVyZU1hcHBl
ckxheWVyLT5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVyZU1hcHBlci5nZXQoKSk7Ci0gICAgbV9y
b290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7
CisgICAgbV9yb290R3JhcGhpY3NMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xh
eWVyT25seSgpOwogfQogCiB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzY2hl
ZHVsZVJvb3RMYXllclJlcGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTExMCw3ICsxMTAs
NyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpyZXNpemVSb290TGF5ZXIo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBpZiAoIW1fcm9vdEdyYXBoaWNzTGF5ZXIpCiAgICAg
ICAgIHJldHVybjsKICAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5zZXRTaXplKHNpemUpOwotICAg
IG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25s
eSgpOworICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKTsKIH0KIAogc3RhdGljIGdib29sZWFuIHN5bmNMYXllcnNUaW1lb3V0Q2Fs
bGJhY2soQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQqIGNvbnRleHQpCkBAIC0xMzUsNyAr
MTM1LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c3luY0xheWVyc05v
dygpCiAgICAgICAgIGNvcmUobV93ZWJWaWV3KS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+bGF5b3V0
KCk7CiAKICAgICBpZiAobV9yb290R3JhcGhpY3NMYXllcikKLSAgICAgICAgbV9yb290R3JhcGhp
Y3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgICAg
IG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKIAogICAgIGNvcmUobV93ZWJWaWV3KS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Zmx1c2hD
b21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiB9CkBAIC0xNTgsNyArMTU4LDcg
QEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwKIHsKIAogfQotdm9pZCBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQor
dm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKikKIHsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0Q2x1dHRlci5jcHAKaW5kZXggNGQ2MzZmMjgxNTY4Y2ZiM2I0ZWZlNzAwZTJmZjQ3
YzUwZGJlMzhkYi4uODdjZWI2ZWEwMjRhYjQwZjhhNDgzYTg2MTMzNzIzODc1ZWUzNmYxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwCkBAIC0xMzYs
NyArMTM2LDcgQEAgdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2NoZWR1bGVM
YXllckZsdXNoKCkKIGJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVu
ZGluZ0xheWVyQ2hhbmdlcygpCiB7CiAgICAgaWYgKG1fcm9vdEdyYXBoaWNzTGF5ZXIpCi0gICAg
ICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpOworICAgICAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICByZXR1cm4gY29yZShtX3dlYlZpZXcpLT5tYWlu
RnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMo
KTsKIH0KQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaQogewogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQor
dm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAKaW5kZXggZTJlZDA5
YTEwYTYyODNiZWM5MDYzZTNhNmJhZmRjMGQzNDczMzdlNy4uZWZjMjA2MTkzNDRlYjI1YzI4NTQ2
YmVkMmRkZDdjNzRmNDQ1ZWFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRH
TC5jcHAKQEAgLTMyMiw4ICszMjIsOCBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0OjpzY2hlZHVsZUxheWVyRmx1c2goKQogCiBib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogewotICAgIG1fcm9vdExheWVyLT5z
eW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKLSAgICBtX25vbkNvbXBvc2l0
ZWRDb250ZW50TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwor
ICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7
CisgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVG
b3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgcmV0dXJuIGNvcmUobV93ZWJWaWV3KS0+bWFpbkZyYW1l
KCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiB9
CiAKQEAgLTM3MCw3ICszNzAsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLAogewogCiB9Ci12
b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopCit2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODEyZjNmMGUzYmRhNjJmMjE5ZDdhNGI3N2Ix
OTMwNzBlYTQ3MTNmZi4uMzNiMjAwOGYwMTkzYjE2ZGQzNzFjYmEyY2Q0ZDJiZTAzMjg3ZTljYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNjMyOSwxNCArNjMyOSwxNCBA
QCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IHJvdW5kVXBUb1Bvd2VyT2YyKHVpbnQ2NF90IG51bSkK
ICAgICAKICAgICBUbyBmaXggdGhpcywgdGhlIEdyYXBoaWNzTGF5ZXJDQSBjb2RlIGluIFdlYkNv
cmUgZG9lcyBub3QgY2hhbmdlIHRoZSBDQQogICAgIGxheWVyIHRyZWUgZHVyaW5nIHN0eWxlIGNo
YW5nZXMgYW5kIGxheW91dDsgaXQgc3RvcmVzIHVwIGFsbCBjaGFuZ2VzIGFuZAotICAgIGNvbW1p
dHMgdGhlbSB2aWEgc3luY0NvbXBvc2l0aW5nU3RhdGUoKS4gVGhlcmUgYXJlIHRoZW4gdHdvIHNp
dHVhdGlvbnMgaW4KLSAgICB3aGljaCB3ZSBjYW4gY2FsbCBzeW5jQ29tcG9zaXRpbmdTdGF0ZSgp
OgorICAgIGNvbW1pdHMgdGhlbSB2aWEgZmx1c2hDb21wb3NpdGluZ1N0YXRlKCkuIFRoZXJlIGFy
ZSB0aGVuIHR3byBzaXR1YXRpb25zIGluCisgICAgd2hpY2ggd2UgY2FuIGNhbGwgZmx1c2hDb21w
b3NpdGluZ1N0YXRlKCk6CiAgICAgCi0gICAgMS4gV2hlbiBwYWludGluZy4gRnJhbWVWaWV3Ojpw
YWludENvbnRlbnRzKCkgbWFrZXMgYSBjYWxsIHRvIHN5bmNDb21wb3NpdGluZ1N0YXRlKCkuCisg
ICAgMS4gV2hlbiBwYWludGluZy4gRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKCkgbWFrZXMgYSBj
YWxsIHRvIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpLgogICAgIAogICAgIDIuIFdoZW4gc3R5bGUg
Y2hhbmdlcy9sYXlvdXQgaGF2ZSBtYWRlIGNoYW5nZXMgdG8gdGhlIGxheWVyIHRyZWUgd2hpY2gg
ZG8gbm90CiAgICAgICAgcmVzdWx0IGluIHBhaW50aW5nLiBJbiB0aGlzIGNhc2Ugd2UgbmVlZCBh
IHJ1biBsb29wIG9ic2VydmVyIHRvIGRvIGEKLSAgICAgICBzeW5jQ29tcG9zaXRpbmdTdGF0ZSgp
IGF0IGFuIGFwcHJvcHJpYXRlIHRpbWUuIFRoZSBvYnNlcnZlciB3aWxsIGtlZXAgZmlyaW5nCisg
ICAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlKCkgYXQgYW4gYXBwcm9wcmlhdGUgdGltZS4gVGhl
IG9ic2VydmVyIHdpbGwga2VlcCBmaXJpbmcKICAgICAgICB1bnRpbCB0aGUgdGltZSBpcyByaWdo
dCAoZXNzZW50aWFsbHkgd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBwZW5kaW5nIGxheW91dHMpLgog
ICAgIAogKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFn
ZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVu
dFF0LmNwcAppbmRleCBjYWUxMzA4NGM2ZjA2YTFmNTVkODBkMjllOWNlZTliNGY1NGU1YzM3Li4x
NDFmOThlMzA4MmMyMTI3YzZmOTQxZTFkOTIwY2U3N2UwOTI5YTA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuY3BwCkBAIC0xMTAsNyArMTEw
LDcgQEAgVGV4dHVyZU1hcHBlckxheWVyQ2xpZW50UXQ6On5UZXh0dXJlTWFwcGVyTGF5ZXJDbGll
bnRRdCgpCiAKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyQ2xpZW50UXQ6OnN5bmNSb290TGF5ZXIo
KQogewotICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOworICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIH0KIAogVGV4dHVyZU1hcHBlckxheWVyKiBUZXh0dXJl
TWFwcGVyTGF5ZXJDbGllbnRRdDo6cm9vdExheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXgg
OTVhNTI4ZTZhMzBiZjE3MmQ5NzUxM2RhMjYwYjQwZGIzOWZlNWUzMC4uNDcwMWJiZTA4ZjUxNzFl
OTExZjdkYzQ2ZGE1ZGVmNTY5MjAxMGI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTY2MzEs
NyArNjYzMSw3IEBAIHZvaWQgV2ViVmlldzo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBH
cmFwaGljc0xheWVyKiwgZG91YmxlKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12
b2lkIFdlYlZpZXc6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3Zv
aWQgV2ViVmlldzo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsK
ICAgICBmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KQEAgLTY2NzMs
NyArNjY3Myw3IEBAIHZvaWQgV2ViVmlldzo6Zmx1c2hQZW5kaW5nR3JhcGhpY3NMYXllckNoYW5n
ZXMoKQogCiAgICAgLy8gVXBkYXRpbmcgbGF5b3V0IG1pZ2h0IGhhdmUgdGFrZW4gdXMgb3V0IG9m
IGNvbXBvc2l0aW5nIG1vZGUuCiAgICAgaWYgKG1fYmFja2luZ0xheWVyKQotICAgICAgICBtX2Jh
Y2tpbmdMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAg
ICAgIG1fYmFja2luZ0xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
KCk7CiAKICAgICB2aWV3LT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCA2OTZlMmM3N2IzNDFiNDQyNmUwMzU0NjFlY2MxMWMy
NDE1Yjg1MDQ5Li45OGZjYmIzZTFiZDNiYjUyNjU5YjBjNWRhZDg2Y2QyMjE5NTIzZGUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5oCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBwcml2YXRlOgogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciosIGRvdWJsZSB0aW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVk
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApOwogICAgIHZpcnR1YWwgYm9vbCBzaG93
RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAppbmRleCBiOTRj
NjZiOWQzNjYwMTFiZDg1Y2FkMzIyN2YwNWRmNzdiYzQ5M2VlLi41Yjk2MmRiNGM0Y2Y0ZmEzOTEz
ZjhjNDFjYWEyM2I2ZDNmZDEzODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIu
Y3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6cGFpbnRUb0N1
cnJlbnRHTENvbnRleHQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHIKICAgICBpZiAo
Y3VycmVudFJvb3RMYXllci0+b3BhY2l0eSgpICE9IG9wYWNpdHkgfHwgY3VycmVudFJvb3RMYXll
ci0+dHJhbnNmb3JtKCkgIT0gbWF0cml4KSB7CiAgICAgICAgIGN1cnJlbnRSb290TGF5ZXItPnNl
dE9wYWNpdHkob3BhY2l0eSk7CiAgICAgICAgIGN1cnJlbnRSb290TGF5ZXItPnNldFRyYW5zZm9y
bShtYXRyaXgpOwotICAgICAgICBjdXJyZW50Um9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICAgICAgY3VycmVudFJvb3RMYXllci0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAgIH0KIAogICAgIGxheWVyLT5wYWlu
dCgpOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmZsdXNoTGF5
ZXJDaGFuZ2VzKCkKIHsKICAgICBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbiA9IG1f
cGVuZGluZ1JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKIAotICAgIG1fcm9vdExheWVy
LT5zeW5jQ29tcG9zaXRpbmdTdGF0ZShGbG9hdFJlY3QoKSk7CisgICAgbV9yb290TGF5ZXItPmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZShGbG9hdFJlY3QoKSk7CiAgICAgY29tbWl0VGlsZU9wZXJhdGlv
bnMoKTsKIAogICAgIC8vIFRoZSBwZW5kaW5nIHRpbGVzIHN0YXRlIGlzIG9uIGl0cyB3YXkgZm9y
IHRoZSBzY3JlZW4sIHRlbGwgdGhlIHdlYiBwcm9jZXNzIHRvIHJlbmRlciB0aGUgbmV4dCBvbmUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAppbmRleCA0ZTQ1Njc4ZTZmMDAzYWU1MjJj
MDlkZjBiZDNlNzdmNmExZGE2MWRiLi45ZTk5ZWYwYTlhODAzODkwM2ZmMDRmYmRkM2I0YmNlNTA4
YmFlMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKQEAgLTEwMCw3ICsxMDAs
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ2xpZW50LgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFy
dGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgcGFpbnRDb250ZW50cyhj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
V2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGYyYWZkYjVmYjhhYjMwMGVhZTg4MDhlODM2ZWYzNjAx
MTk2Y2EzNzkuLmNlNTQ4YjAxNjBlMTJkNDEwZTI5MTlkOTlmODM1YWQ5NzlhMmI2ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcApAQCAtNjUsMjEgKzY1LDIxIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpkaWRDaGFuZ2VMYXllclN0YXRlKCkKIHsKICAgICBtX3Nob3VsZFN5bmNMYXllclN0YXRlID0g
dHJ1ZTsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlTeW5jUmVx
dWlyZWQodGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMp
OwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQW5pbWF0ZWRQ
cm9wZXJ0aWVzKCkKIHsKICAgICBtX3Nob3VsZFN5bmNBbmltYXRlZFByb3BlcnRpZXMgPSB0cnVl
OwogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJl
ZCh0aGlzKTsKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VDaGlsZHJlbigpCiB7
CiAgICAgbV9zaG91bGRTeW5jQ2hpbGRyZW4gPSB0cnVlOwogICAgIGlmIChjbGllbnQoKSkKLSAg
ICAgICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0aGlzKTsKKyAgICAgICAgY2xpZW50
KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRD
aGFuZ2VGaWx0ZXJzKCkKIHsKICAgICBtX3Nob3VsZFN5bmNGaWx0ZXJzID0gdHJ1ZTsKICAgICBp
ZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlTeW5jUmVxdWlyZWQodGhpcyk7
CisgICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogfQogI2VuZGlm
CiAKQEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogICAgIHNldENvbnRlbnRzVG9JbWFnZShpbWFnZS5nZXQo
KSk7CiAgICAgbV9jYW52YXNOZWVkc0Rpc3BsYXkgPSB0cnVlOwogICAgIGlmIChjbGllbnQoKSkK
LSAgICAgICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0aGlzKTsKKyAgICAgICAgY2xp
ZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIpCkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcikKICAgICBt
X2NhbnZhc1BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVyOwogICAgIG1fY2FudmFzTmVlZHNE
aXNwbGF5ID0gdHJ1ZTsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3Rp
ZnlTeW5jUmVxdWlyZWQodGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVp
cmVkKHRoaXMpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtNDMzLDIwICs0MzMs
MjAgQEAgV2ViTGF5ZXJJRCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmlkKCkgY29uc3QKICAg
ICByZXR1cm4gbV9pZDsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmND
b21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogewogICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1hc2sgPSB0b0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcihtYXNrTGF5ZXIoKSkpCi0gICAgICAgIG1hc2stPnN5bmNDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgICAgICBtYXNrLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiByZXBsaWNhID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIocmVwbGljYUxheWVy
KCkpKQotICAgICAgICByZXBsaWNhLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKKyAgICAgICAgcmVwbGljYS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpOwogCiAgICAgbV9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQtPnN5bmNGaXhl
ZExheWVycygpOwogCi0gICAgc3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7
CisgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQotICAgICAgICBjaGls
ZHJlbigpW2ldLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZShyZWN0KTsKKyAgICAgICAgY2hpbGRyZW4o
KVtpXS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3QpOwogfQogCiBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIqIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVy
KQpAQCAtNTQ1LDcgKzU0NSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjplbnN1
cmVJbWFnZUJhY2tpbmdTdG9yZSgpCiAgICAgICAgIG1fbGF5ZXJJbmZvLmltYWdlQmFja2luZ1N0
b3JlSUQgPSBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+YWRvcHRJbWFnZUJhY2tp
bmdTdG9yZShtX2ltYWdlLmdldCgpKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCit2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgp
CiB7CiAgICAgLy8gVGhlIHJlbW90ZSBpbWFnZSBtaWdodCBoYXZlIGJlZW4gcmVsZWFzZWQgYnkg
cHVyZ2VCYWNraW5nU3RvcmVzLgogICAgIGVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
CmluZGV4IDNlYmE3OWI0MmMzMDI4NzUzODc5ZjNlZjlmYjJmMGRlMDljMmY5MDIuLjg3ZmY3NWFi
YmFjN2JiMjZiZDA1Y2Q2OTBlYzE0YTI3YWRkN2JjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0xLDQgKzEsNCBA
QAotICAgIC8qCitmbHVzaENvbXBvc2l0aW5nU3RhdGUgICAgLyoKICBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAKICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CkBAIC0xMTUsOCArMTE1LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVudHNOZWVkc0Rp
c3BsYXkoKTsKICAgICB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQpOwogICAgIHZvaWQgc2V0
VmlzaWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3Rvcihjb25zdCBGbG9hdFBvaW50Jik7Ci0g
ICAgdmlydHVhbCB2b2lkIHN5bmNDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOwot
ICAgIHZpcnR1YWwgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYp
OworICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
KCk7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgc2V0RmlsdGVycyhjb25zdCBG
aWx0ZXJPcGVyYXRpb25zJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRleCA5ZjNmMDY0ODIzZmEzY2U1N2Q0NWVj
YmQ1ODBiYmIzMzMwYWQ3NjU1Li4yNzJkZjA5Yzc4NGRhYWM2YjQ3ZWM5ZmJiNzBlNzUyZmJmNGFm
ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwCkBAIC0yNTksMTEgKzI1OSwxMSBAQCBib29sIExheWVyVHJlZUNvb3JkaW5hdG9y
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogICAgIG1fZGV0YWNoZWRMYXllcnMuY2xlYXIo
KTsKIAogICAgIGJvb2wgZGlkU3luYyA9IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1l
KCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7Ci0g
ICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKTsKKyAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9wYWdlT3ZlcmxheUxh
eWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSgpOworICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAotICAgIG1fcm9vdExheWVyLT5zeW5jQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICBtX3Jvb3RMYXllci0+Zmx1c2hD
b21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCiAgICAgaWYgKG1fc2hvdWxkU3lu
Y1Jvb3RMYXllcikgewogICAgICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OlNldFJvb3RDb21wb3NpdGluZ0xheWVyKHRvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdldCgpKS0+aWQoKSkpOwpAQCAtNTE0LDcgKzUxNCw3
IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosCiB7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3I6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikK
K3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGM2Y2NmY2I5MDA3NTdlZDVlZTY3MWFk
NWExZTYyZDg5NThlMTI2MjguLjc0ZTIwYWVmZDM1ZTlmMTU5NTE2MGFkYWFhMDAyYjBhYzE0Yjlk
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gR3Jh
cGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVk
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7Ci0gICAgdmlydHVh
bCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7
CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJl
Y3QpOwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVy
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0Q0EuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKaW5k
ZXggZjg4MGI4N2IwZTA3ZmJiYjI2ZGUzOTE1MDkxZGNmNzQ5NmY0MmNhOC4uMDg3MmY0MzU1MGU3
NjJmZGY5NmVmOGM4MjI0OTJlMzQ1NjMzM2ZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5jcHAKQEAgLTE4Niw3
ICsxODYsNyBAQCB2b2lkIExheWVyVHJlZUhvc3RDQTo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YgogewogfQogCi12b2lkIExheWVyVHJl
ZUhvc3RDQTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KQordm9pZCBMYXllclRyZWVIb3N0Q0E6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopCiB7CiB9CiAKQEAgLTI0NSwxMCArMjQ1LDEwIEBAIHZvaWQgTGF5
ZXJUcmVlSG9zdENBOjpkaWRQZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpCiAKIGJvb2wgTGF5
ZXJUcmVlSG9zdENBOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogewotICAgIG1fcm9vdExh
eWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKLSAgICBtX25vbkNv
bXBvc2l0ZWRDb250ZW50TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25s
eSgpOworICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCk7CisgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5mbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKLSAg
ICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoKTsKKyAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgp
LT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJm
cmFtZXMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9jYS9MYXllclRyZWVIb3N0Q0EuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9jYS9MYXllclRyZWVIb3N0Q0EuaAppbmRleCA5MmFlNzI2NzQ3YjY0MzU5NDg2NTgxMTUzN2M0
M2YwODk0MGY0ZWM1Li45Y2I4Y2E2YTU0ZmMzODZkMmJlM2M4OTI5MjQ4Y2ZiZTVlMDJjNjVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVl
SG9zdENBLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVy
VHJlZUhvc3RDQS5oCkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBHcmFwaGlj
c0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7
CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKaW5k
ZXggNDQxYWI5ZTlkMzkzNTVlYzkzOWYyOTZjYzZmNmRhNTY1M2VlZmU1MS4uNzdhMWIxNjdkMTdl
Y2UxMGJlZGMyMDViMjUyYzgwOGE5ZTliMzg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC0y
NDEsNyArMjQxLDcgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpub3RpZnlBbmltYXRpb25TdGFy
dGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3UKIHsKIH0KIAotdm9pZCBMYXll
clRyZWVIb3N0R3RrOjpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopCit2b2lkIExheWVyVHJlZUhvc3RHdGs6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopCiB7CiB9CiAKQEAgLTI4NywxMCArMjg3LDEwIEBAIHZv
aWQgTGF5ZXJUcmVlSG9zdEd0azo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQoKQogCiBib29sIExheWVy
VHJlZUhvc3RHdGs6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7Ci0gICAgbV9yb290TGF5
ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwotICAgIG1fbm9uQ29t
cG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
KCk7CisgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKKyAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQotICAg
ICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpOworICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLT52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZy
YW1lcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9MYXllclRyZWVIb3N0R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAppbmRleCBkOWE4MTZjMmViZGRiOTg1YzEzNzJlY2Vi
YzZlZjU3NmMyMDNmODAwLi42MWI5ZmE2NzE1ODMzNmEzNDYzY2RjMGNmN2NjODk4MzdlMGIxMTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVy
VHJlZUhvc3RHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0xheWVyVHJlZUhvc3RHdGsuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgLy8g
R3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFy
dGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7Ci0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xp
cFJlY3QpOwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBhMDQ0N2I2OWQ4MTY0YWE2MmZiZjkwNmUy
NTc2NzNjNGRiYjdjMjIwLi5mNTA0OGE5ODVlZTU4N2JiNzJiM2IwMGNiNTI5NDdiY2M4ZjNkZmFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC03MCw3ICs3
MCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBjbGlwUmVjdCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0KaW5kZXggNmJjYmU3YjcxNjIxM2VhOWY1Yzg3OGE2ZjAwZTAwNzM0M2M4NmMxZC4uOWZiYjE3
MGE2MWUxNzAzNjZiNzUwZDQ4MDI0NzJmZmQ0YzY5MWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFw
aGljc0xheWVyKiwKIHsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xh
eWVyKikKIHsKIH0KIApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKIAogICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIp
IHsKICAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSAgICAg
ICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKKyAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVG
b3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgfQogCiAgICAgYm9vbCByZXR1cm5WYWx1ZSA9IG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0
YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167159</attachid>
            <date>2012-10-04 13:01:50 -0700</date>
            <delta_ts>2012-10-04 17:36:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98430-20121004130100.patch</filename>
            <type>text/plain</type>
            <size>71340</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1MWE0MDczOGQxOTQ1
YjU1Nzg0N2JkZTJjMWQwYjVlMDNlYmVjYy4uNDY2NThkM2U2NWUzNTY3ZDRjMDg5Y2Q0YzVjMTYz
OGY5OTZmMjljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEwLTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpbmFsIHBhcnQg
b2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xheWVy
IGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRoYXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMiIHRv
IHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3RlYWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAgICAg
d2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpmbHVz
aENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAgIChHcmFwaGljc0xheWVyQ2xp
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0dyYXBoaWNzTGF5
ZXJCbGFja0JlcnJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQmxhY2tCZXJy
eTo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldl
YktpdFRocmVhZDo6c2V0TmVlZHNDb21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJEaWRDcmVhdGVUaWxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBvc2l0aW9uRm9yQ2xvbmVSb290
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpub3RlTGF5ZXJQcm9w
ZXJ0eUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNBKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6Om5vdGlmeUNoYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlRm9yVGhpc0xheWVyT25seSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaDoKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAg
ICAoVGV4dHVyZU1hcHBlckxheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5
Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
OgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNv
bXBvc2l0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorCiAyMDEyLTEwLTA0ICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgaW5saW5lLWZsZXggYmFzZWxpbmUgaXMg
c29tZXRpbWVzIHdyb25nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBhNTVkOGYz
N2QwZjMyMTRlZGRjMTI1NjcxNWRmZWQwMDA3OTk3ZGVmLi5iOGQyOGFmNTc1MDBkNzM0YmQ2NGFi
MjVlYjEwZGJhZDIzNzA1NGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNyBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1c2giIHJlbmFtaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQzMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBt
ZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXllckNsaWVudCB0aGF0
CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZsdXNoIiBpbnN0ZWFk
LCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNvZGUuCisK
KyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpub3RpZnlGbHVzaFJlcXVpcmVkKToK
KyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheV9wLmg6CisgICAgICAgIChXZWJPdmVybGF5UHJpdmF0
ZVdlYktpdFRocmVhZCk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6Cisg
ICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViUGFnZVByaXZhdGUpOgorICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHA6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6Om5vdGlmeUZsdXNoUmVxdWly
ZWQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oOgorICAg
ICAgICAoRGVmYXVsdFRhcEhpZ2hsaWdodCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnNw
ZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
Okluc3BlY3Rvck92ZXJsYXk6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaDoKKyAgICAgICAgKEluc3BlY3Rv
ck92ZXJsYXkpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6Om5vdGlmeUZs
dXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5o
OgorICAgICAgICAoU2VsZWN0aW9uT3ZlcmxheSk6CisKKzIwMTItMTAtMDQgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZs
dXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDMxMjM4YzJlNzRmZmY0MTMzOGIxNWRhYzE4N2I4MmJlNWQ1ZTAy
ZjEuLmNiMDdkZjc0MTI4NWJjMDgwZmVlN2Y2ZmZiYzc2MTQ3NWRhN2FlZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1
c2giIHJlbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENoYW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXll
ckNsaWVudCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZs
dXNoIiBpbnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2Yg
dGhlIGNvZGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c3luY0xheWVyc05vdyk6CisgICAgICAgIChXZWJDb3JlOjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOgorCisyMDEyLTEw
LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFN0
YW5kYXJkaXplIG9uICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZs
dXNoaW5nL3N5bmNpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4MzIxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyNzcwZDM0YzIzMmMxZDZiMGJkNzBi
MjY2MzA0NGM0NTAzZDkzYTZkLi44MjY5ZGJmY2EwNWZmMjFkY2JlNGRmMjZjNmU1NTM3NjIwYmQ4
OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIwMTItMTAtMDQgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgRmluYWwgcGFydCBv
ZiAic3luYyIgdG8gImZsdXNoIiByZW5hbWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgbWV0aG9kIG5hbWVzIG9uIEdyYXBoaWNzTGF5ZXIg
YW5kIEdyYXBoaWNzTGF5ZXJDbGllbnQgdGhhdAorICAgICAgICByZWZlciB0byAic3luYyIgdG8g
dXNlIHRoZSB0ZXJtICJmbHVzaCIgaW5zdGVhZCwgdG8gYmUgY29uc2lzdGVudAorICAgICAgICB3
aXRoIHRoZSByZXN0IG9mIHRoZSBjb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKKyAgICAgICAgKEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktp
dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJvb3RMYXllcik6CisgICAg
ICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzTm93
KToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAo
V2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJl
ZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisKKzIwMTItMTAtMDQg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRh
cmRpemUgb24gImZsdXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hp
bmcvc3luY2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTgzMjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc2ZDgwYTA1ZmYzYWI4OTBkYmIxOTJlNGJm
YWI1MWUyMWU2YTg0YzMuLjhlZTI4YjkwNzgyMjE1NzBlNTE3ZDEwYmI4ZDhmMDJmNmMyYWFkMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJz
eW5jIiB0byAiZmx1c2giIHJlbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQg
R3JhcGhpY3NMYXllckNsaWVudCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2Ug
dGhlIHRlcm0gImZsdXNoIiBpbnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGgg
dGhlIHJlc3Qgb2YgdGhlIGNvZGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisK
KzIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAg
ICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcg
bGF5ZXIgZmx1c2hpbmcvc3luY2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAwMTIyY2U3NWYxYjQ1NjE3
YjE1NGNiYTZhODAwNDE1ZjE2NmM1NmY4Li5hMzNhMDY0N2I1YmJhZTEzYjI4NTg4YWQwMTNkZjFj
NGU0MzUyN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTEwLTA0ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEZpbmFsIHBh
cnQgb2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xh
eWVyIGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRoYXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMi
IHRvIHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3RlYWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAg
ICAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1BhZ2VDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXJD
bGllbnRRdDo6c3luY1Jvb3RMYXllcik6CisKKzIwMTItMTAtMDQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgU3RhbmRhcmRpemUgb24gImZsdXNoIiB0
ZXJtaW5vbG9neSBmb3IgY29tcG9zaXRpbmcgbGF5ZXIgZmx1c2hpbmcvc3luY2luZwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzMjEKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IGI5OTU5OTBmMzc0Yjg4NGNiNWFlMTc5NDMxZmUyMTdlZDU0NTJiMjIuLjFm
NzU1ZjE4ZTE0MTdiOGZlNGMwYmIzMzRmNGEzYTZmN2IxY2I4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwyMSBAQAogMjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAorICAgICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1c2giIHJl
bmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODQzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZSBtZXRob2QgbmFtZXMgb24gR3JhcGhpY3NMYXllciBhbmQgR3JhcGhpY3NMYXllckNsaWVu
dCB0aGF0CisgICAgICAgIHJlZmVyIHRvICJzeW5jIiB0byB1c2UgdGhlIHRlcm0gImZsdXNoIiBp
bnN0ZWFkLCB0byBiZSBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNv
ZGUuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeUZs
dXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViVmlldzo6Zmx1c2hQZW5kaW5nR3JhcGhpY3NMYXll
ckNoYW5nZXMpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKworMjAxMi0xMC0wNCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBTdGFuZGFyZGl6ZSBvbiAi
Zmx1c2giIHRlcm1pbm9sb2d5IGZvciBjb21wb3NpdGluZyBsYXllciBmbHVzaGluZy9zeW5jaW5n
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODMyMQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggZjU3ODViOTI4MzE5ZWE5NzU0MzQ4ZTM3NjNmNDcyYTQ4Y2ZhZGQ3Zi4u
ZTdiY2FkYjRkZmQ5ODdkNGU4NGYzN2JhODMzZmIyMmZlNjdmNzRjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDUzIEBACiAyMDEyLTEwLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCisgICAgICAgIEZpbmFsIHBhcnQgb2YgInN5bmMiIHRvICJmbHVzaCIgcmVuYW1p
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDMw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
IG1ldGhvZCBuYW1lcyBvbiBHcmFwaGljc0xheWVyIGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRo
YXQKKyAgICAgICAgcmVmZXIgdG8gInN5bmMiIHRvIHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3Rl
YWQsIHRvIGJlIGNvbnNpc3RlbnQKKyAgICAgICAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRl
cmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OnBhaW50VG9DdXJy
ZW50R0xDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlUmVuZGVyZXI6OmZsdXNo
TGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5oOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6
bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1h
dGVkUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmRpZENoYW5nZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6ZGlkQ2hhbmdlRmlsdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6bm90aWZ5
Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3Jk
aW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENB
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBOjpub3RpZnlGbHVzaFJlcXVp
cmVkKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9jYS9MYXllclRyZWVIb3N0
Q0EuaDoKKyAgICAgICAgKExheWVyVHJlZUhvc3RDQSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlSG9zdEd0azo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUhvc3RHdGs6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmg6CisgICAgICAgIChMYXllclRyZWVI
b3N0R3RrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgIChUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorCisyMDEyLTEwLTA0ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFN0YW5kYXJkaXplIG9u
ICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoaW5nL3N5bmNp
bmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzIx
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCA5M2JkYzIyYTEyMmJkYWExOWIxNzlhNDhiZDVhZTQxMDQ2ZWM1NzEzLi4xNWIzYWEy
MTM3NDc2ODRjZWM5ZTJlNGEwNmFlMmMyZjZlM2UzYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zODUsOCArMzg1LDggQEAg
cHVibGljOgogICAgIC8vIFNvbWUgY29tcG9zaXRpbmcgc3lzdGVtcyBtYXkgZG8gaW50ZXJuYWwg
YmF0Y2hpbmcgdG8gc3luY2hyb25pemUgY29tcG9zaXRpbmcgdXBkYXRlcwogICAgIC8vIHdpdGgg
dXBkYXRlcyBkcmF3biBpbnRvIHRoZSB3aW5kb3cuIFRoZXNlIG1ldGhvZHMgZmx1c2ggaW50ZXJu
YWwgYmF0Y2hlZCBzdGF0ZSBvbiB0aGlzIGxheWVyCiAgICAgLy8gYW5kIGRlc2NlbmRhbnQgbGF5
ZXJzLCBhbmQgdGhpcyBsYXllciBvbmx5LgotICAgIHZpcnR1YWwgdm9pZCBzeW5jQ29tcG9zaXRp
bmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIC8qIGNsaXBSZWN0ICovKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIC8qIGNsaXBS
ZWN0ICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpIHsgfQogICAgIAogICAgIC8vIFJldHVybiBhIHN0cmluZyB3aXRoIGEgaHVt
YW4gcmVhZGFibGUgZm9ybSBvZiB0aGUgbGF5ZXIgdHJlZSwgSWYgZGVidWcgaXMgdHJ1ZSAKICAg
ICAvLyBwb2ludGVycyBmb3IgdGhlIGxheWVycyBhbmQgdGltaW5nIGRhdGEgd2lsbCBiZSBpbmNs
dWRlZCBpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDEwYjExNmQ5ZGEw
YWU2OWU0OTUxMGVjNmZlN2JmMzg4ZDNiNjQzY2EuLjNkNWRiYzgyZDg2NjkwNDc0MDM3ZjdjNWZj
MzhmNmQwOWYwNmVlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTYzLDkgKzYzLDkgQEAgcHVibGljOgog
ICAgIC8vIENhbGxiYWNrIGZvciB3aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGFuaW1hdGlvbiBz
dGFydGVkLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgPSAwOwogCi0gICAgLy8gTm90aWZpY2F0aW9uIHRo
YXQgYSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VkIHRoYXQgcmVxdWlyZXMgYSBzdWJzZXF1ZW50IGNh
bGwgdG8gc3luY0NvbXBvc2l0aW5nU3RhdGUoKQorICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGEg
bGF5ZXIgcHJvcGVydHkgY2hhbmdlZCB0aGF0IHJlcXVpcmVzIGEgc3Vic2VxdWVudCBjYWxsIHRv
IGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpCiAgICAgLy8gdG8gYXBwZWFyIG9uIHRoZSBzY3JlZW4u
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvR3Jh
cGhpY3NMYXllckJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvR3JhcGhpY3NMYXllckJsYWNrQmVycnkuaAppbmRleCBkOGQ2YjZhZTkzYjEz
MDExZmNmMWIxMmMwZmQxNTgzODM2YjI0ZmRhLi41Yzg2MTI2NGU1NjYxYjQwYmQxNDcxOTc3YTJh
NDlmOTIxYmQzNjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0dyYXBoaWNzTGF5ZXJCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFwaGljc0xheWVyQmxhY2tCZXJyeS5o
CkBAIC0xMTYsMTAgKzExNiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVn
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVn
Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgpOwogCi0gICAgdm9pZCBub3Rp
ZnlTeW5jUmVxdWlyZWQoKQorICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpCiAgICAgewog
ICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+bm90aWZ5U3luY1Jl
cXVpcmVkKHRoaXMpOworICAgICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZsdXNoUmVxdWlyZWQo
dGhpcyk7CiAgICAgfQogCiAgICAgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0
aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2ti
ZXJyeS9MYXllcldlYktpdFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcAppbmRleCA0MmI4YmVkNTg1NDQ4
ZjBlN2M3MGRmZGI0NjM4OGMzNmVlODA4ZjQwLi4xNDI5OTFjZjVkNTY1N2VkYjk1NDIzY2ZmZjRm
M2MzMGNmNGI3NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmNwcApAQCAtMTk1
LDExICsxOTUsMTEgQEAgdm9pZCBMYXllcldlYktpdFRocmVhZDo6c2V0RHJhd2FibGUoYm9vbCBp
c0RyYXdhYmxlKQogCiB2b2lkIExheWVyV2ViS2l0VGhyZWFkOjpzZXROZWVkc0NvbW1pdCgpCiB7
Ci0gICAgLy8gQ2FsbCBub3RpZnlTeW5jUmVxdWlyZWQoKSwgd2hpY2ggaW4gdGhpcyBpbXBsZW1l
bnRhdGlvbiBwbHVtYnMgdGhyb3VnaCB0bworICAgIC8vIENhbGwgbm90aWZ5Rmx1c2hSZXF1aXJl
ZCgpLCB3aGljaCBpbiB0aGlzIGltcGxlbWVudGF0aW9uIHBsdW1icyB0aHJvdWdoIHRvCiAgICAg
Ly8gY2FsbCBzY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpIG9uIHRoZSBXZWJWaWV3LCB3aGljaCB3
aWxsIGNhdXNlIHVzIHRvIGNvbW1pdAogICAgIC8vIGNoYW5nZXMgZG9uZSBvbiB0aGUgV2ViS2l0
IHRocmVhZCBmb3IgZGlzcGxheSBvbiB0aGUgQ29tcG9zaXRpbmcgdGhyZWFkLgogICAgIGlmICht
X293bmVyKQotICAgICAgICBtX293bmVyLT5ub3RpZnlTeW5jUmVxdWlyZWQoKTsKKyAgICAgICAg
bV9vd25lci0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIExheWVyV2ViS2l0VGhy
ZWFkOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSB0aW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5k
ZXggYzdiMjUyMjAzYjEwYzI2OTI4Mzg1NjJhOTk5YmMwNTliYjdlMTUxZi4uMjQ5NTRhNGI4ZGYy
ZmVjODA3YTJlNGYzNmZiMmVjYjNiYTZkNTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC04OTMsMTMg
Kzg5MywxMyBAQCBGbG9hdFBvaW50IEdyYXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVBvc2l0aW9uUmVs
YXRpdmVUb0Jhc2UoZmxvYXQmIHBhZ2VTY2FsZSkgY29ucwogICAgIHJldHVybiBGbG9hdFBvaW50
KCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZShjb25z
dCBGbG9hdFJlY3QmIGNsaXBSZWN0KQordm9pZCBHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewogICAgIFRyYW5zZm9ybVN0
YXRlIHN0YXRlKFRyYW5zZm9ybVN0YXRlOjpVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlv
biwgRmxvYXRRdWFkKGNsaXBSZWN0KSk7CiAgICAgcmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhzdGF0
ZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKQogewogICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcjsKICAgICBG
bG9hdFBvaW50IG9mZnNldCA9IGNvbXB1dGVQb3NpdGlvblJlbGF0aXZlVG9CYXNlKHBhZ2VTY2Fs
ZUZhY3Rvcik7CkBAIC0xMDA1LDggKzEwMDUsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cGxh
dGZvcm1DQUxheWVyRGlkQ3JlYXRlVGlsZXMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRpcgog
ICAgICAgICBzZXROZWVkc0Rpc3BsYXlJblJlY3QoZGlydHlSZWN0c1tpXSk7CiAKICAgICAvLyBF
bnN1cmUgdGhhdCB0aGUgbGF5b3V0IGlzIHVwIHRvIGRhdGUgYmVmb3JlIGFueSBpbmRpdmlkdWFs
IHRpbGVzIGFyZSBwYWludGVkIGJ5IHRlbGxpbmcgdGhlIGNsaWVudAotICAgIC8vIHRoYXQgaXQg
bmVlZHMgdG8gc3luYyBpdHMgbGF5ZXIgc3RhdGUsIHdoaWNoIHdpbGwgZW5kIHVwIHNjaGVkdWxp
bmcgdGhlIGxheWVyIGZsdXNoZXIuCi0gICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0
aGlzKTsKKyAgICAvLyB0aGF0IGl0IG5lZWRzIHRvIGZsdXNoIGl0cyBsYXllciBzdGF0ZSwgd2hp
Y2ggd2lsbCBlbmQgdXAgc2NoZWR1bGluZyB0aGUgbGF5ZXIgZmx1c2hlci4KKyAgICBjbGllbnQo
KS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogZmxvYXQgR3JhcGhpY3NMYXllckNB
OjpwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpCkBAIC0yNTg2LDcgKzI1ODYsNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlQ2xvbmVMYXllcnMoKQogCiBGbG9hdFBvaW50
IEdyYXBoaWNzTGF5ZXJDQTo6cG9zaXRpb25Gb3JDbG9uZVJvb3RMYXllcigpIGNvbnN0CiB7Ci0g
ICAgLy8gVGhpcyBjYW4gZ2V0IGNhbGxlZCBkdXJpbmcgYSBzeW5jIHdoZW4gd2UndmUganVzdCBy
ZW1vdmVkIHRoZSBtX3JlcGxpY2FMYXllci4KKyAgICAvLyBUaGlzIGNhbiBnZXQgY2FsbGVkIGR1
cmluZyBhIGZsdXNoIHdoZW4gd2UndmUganVzdCByZW1vdmVkIHRoZSBtX3JlcGxpY2FMYXllci4K
ICAgICBpZiAoIW1fcmVwbGljYUxheWVyKQogICAgICAgICByZXR1cm4gRmxvYXRQb2ludCgpOwog
CkBAIC0yODQzLDcgKzI4NDMsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bm90ZVN1YmxheWVy
c0NoYW5nZWQoKQogdm9pZCBHcmFwaGljc0xheWVyQ0E6Om5vdGVMYXllclByb3BlcnR5Q2hhbmdl
ZChMYXllckNoYW5nZUZsYWdzIGZsYWdzKQogewogICAgIGlmICghbV91bmNvbW1pdHRlZENoYW5n
ZXMgJiYgbV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlTeW5jUmVxdWlyZWQodGhp
cyk7CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogCiAgICAg
bV91bmNvbW1pdHRlZENoYW5nZXMgfD0gZmxhZ3M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGQ1YjRjMmM2
MTcwZTBmNGY0MWE1OTM2MzUwMjY3YTViNzczOGQwZDUuLmU2MzVhYmIyNzIxYmNiMWQ2Mzk4ODRi
YmVhM2Q1M2YzMDRkODEzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAvLyBFbmFibGUgdGhpcyB0byBhZGQgYSBsaWdo
dCByZWQgd2FzaCBvdmVyIHRoZSB2aXNpYmxlIHBvcnRpb24gb2YgVGlsZWQgTGF5ZXJzLCBhcyBj
b21wdXRlZAotLy8gYnkgc3luY0NvbXBvc2l0aW5nU3RhdGUoKS4KKy8vIGJ5IGZsdXNoQ29tcG9z
aXRpbmdTdGF0ZSgpLgogLy8gI2RlZmluZSBWSVNJQkxFX1RJTEVfV0FTSAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xMzEsOCArMTMxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZWN1cnNp
dmVDb21taXRDaGFuZ2VzKGNvbnN0IFRyYW5zZm9ybVN0YXRlJiwgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yID0gMSwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSA9IEZsb2F0
UG9pbnQoKSwgYm9vbCBhZmZlY3RlZEJ5UGFnZVNjYWxlID0gZmFsc2UpOwogCi0gICAgdmlydHVh
bCB2b2lkIHN5bmNDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1
YWwgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAg
ICB2aXJ0dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgT1ZFUlJJREU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDk1ZTA0YTg0YTkwMGU2
ZjI3ZmRkODlkOGJmOWE1MGI2Njg5YmQ4M2MuLjQyOTU0YTQ5OTYxY2EzY2ZmZGU2ZDNmZWFkMzg4
MGRkYzA0ZDk2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpub3Rp
ZnlDaGFuZ2UoVGV4dHVyZU1hcHBlckxheWVyOjpDaGFuZ2VNYXNrIGNoYQogICAgIG1fY2hhbmdl
TWFzayB8PSBjaGFuZ2VNYXNrOwogICAgIGlmICghY2xpZW50KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBjbGllbnQoKS0+bm90aWZ5U3luY1JlcXVpcmVkKHRoaXMpOworICAgIGNsaWVudCgpLT5u
b3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpkaWRTeW5jaHJvbml6ZSgpCkBAIC0zNjcsMTYgKzM2NywxNiBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvTWVkaWEoVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXIqCiAKIC8qIFxyZWltcCAoR3JhcGhpY3NMYXllci5oKQogKi8KLXZvaWQgR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKIHsKLSAgICBtX2xheWVyLT5zeW5jQ29tcG9zaXRpbmdT
dGF0ZSh0aGlzKTsKKyAgICBtX2xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcyk7CiB9
CiAKIC8qIFxyZWltcCAoR3JhcGhpY3NMYXllci5oKQogKi8KLXZvaWQgR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpCit2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3Qg
RmxvYXRSZWN0JikKIHsKLSAgICBtX2xheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZSh0aGlzLCBU
ZXh0dXJlTWFwcGVyTGF5ZXI6OlRyYXZlcnNlRGVzY2VuZGFudHMpOworICAgIG1fbGF5ZXItPmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSh0aGlzLCBUZXh0dXJlTWFwcGVyTGF5ZXI6OlRyYXZlcnNlRGVz
Y2VuZGFudHMpOwogfQogCiBib29sIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjphZGRBbmlt
YXRpb24oY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgSW50U2l6ZSYg
Ym94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBjb25zdCBTdHJpbmcmIGtleWZyYW1lc05h
bWUsIGRvdWJsZSB0aW1lT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaAppbmRleCA1MDA3MGNjMGYwOGU5OTJlYmFiYmNhMDQxZjhmZmI2YjE0YmJhNDkwLi42Mzdh
YmQ5ZDQ0MDMwM2IzZmFlOTE4ODgyOGNiMGVkM2NmZTZhZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNjksOCArNjksOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIGNhbnZhcykgeyBzZXRDb250ZW50c1RvTWVk
aWEoY2FudmFzKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZShjb25z
dCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShj
b25zdCBGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3QgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDdhMGQ0
NDQzMjFjNjhlYjliMTk3MmQyMzEzNmZiZjM0YTJlOTAwYzMuLmUzNmRiYzk0OGFmNGJkOGExOTY3
YWJmMjNkY2I0ZDU1YzRiZDRhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC00
MDIsMTIgKzQwMiwxMiBAQCBUZXh0dXJlTWFwcGVyTGF5ZXI6On5UZXh0dXJlTWFwcGVyTGF5ZXIo
KQogICAgICAgICBtX3BhcmVudC0+bV9jaGlsZHJlbi5yZW1vdmUobV9wYXJlbnQtPm1fY2hpbGRy
ZW4uZmluZCh0aGlzKSk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5jQ29tcG9z
aXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgaW50
IG9wdGlvbnMpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBpbnQgb3B0aW9ucykK
IHsKLSAgICBzeW5jQ29tcG9zaXRpbmdTdGF0ZShncmFwaGljc0xheWVyLCByb290TGF5ZXIoKS0+
bV90ZXh0dXJlTWFwcGVyLCBvcHRpb25zKTsKKyAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGUoZ3Jh
cGhpY3NMYXllciwgcm9vdExheWVyKCktPm1fdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7CiB9CiAK
LXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRleHR1
cmVNYXBwZXIpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
U2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlcikKIHsKICAgICBpbnQgY2hhbmdlTWFzayA9IGdyYXBoaWNzTGF5
ZXItPmNoYW5nZU1hc2soKTsKIApAQCAtNTE5LDE4ICs1MTksMTggQEAgdm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKICAgICAgICAgc2V0T3BhY2l0eShtX3N0YXRlLm9w
YWNpdHkpOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0NvbXBvc2l0aW5nU3Rh
dGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIGludCBvcHRpb25zKQordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6
OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhp
Y3NMYXllciwgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IG9wdGlvbnMpCiB7CiAg
ICAgaWYgKCF0ZXh0dXJlTWFwcGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZ3JhcGhp
Y3NMYXllciAmJiAhKG9wdGlvbnMgJiBDb21wdXRhdGlvbnNPbmx5KSkgewotICAgICAgICBzeW5j
Q29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcik7CisgICAg
ICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBl
cik7CiAgICAgICAgIGdyYXBoaWNzTGF5ZXItPmRpZFN5bmNocm9uaXplKCk7CiAgICAgfQogCiAg
ICAgaWYgKGdyYXBoaWNzTGF5ZXIgJiYgbV9zdGF0ZS5tYXNrTGF5ZXIpIHsKLSAgICAgICAgbV9z
dGF0ZS5tYXNrTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIoZ3JhcGhpY3NMYXllci0+bWFza0xheWVyKCkpLCB0ZXh0dXJlTWFwcGVyKTsKKyAg
ICAgICAgbV9zdGF0ZS5tYXNrTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPm1hc2tMYXllcigpKSwgdGV4dHVyZU1h
cHBlcik7CiAKICAgICAgICAgLy8gQSBtYXNrIGxheWVyIGhhcyBpdHMgcGFyZW50J3Mgc2l6ZSBi
eSBkZWZhdWx0LCBpbiBjYXNlIGl0J3Mgbm90IHNldCBzcGVjaWZpY2FsbHkuCiAgICAgICAgIGlm
IChtX3N0YXRlLm1hc2tMYXllci0+bV9zaXplLmlzRW1wdHkoKSkKQEAgLTUzOCw3ICs1MzgsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0NvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIqIGdyYXBoaQogICAgIH0KIAogICAgIGlmIChtX3N0YXRlLnJlcGxp
Y2FMYXllcikKLSAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0
YXRlKHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoZ3JhcGhpY3NMYXllci0+cmVwbGljYUxh
eWVyKCkpLCB0ZXh0dXJlTWFwcGVyKTsKKyAgICAgICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNz
TGF5ZXItPnJlcGxpY2FMYXllcigpKSwgdGV4dHVyZU1hcHBlcik7CiAKICAgICBzeW5jQW5pbWF0
aW9ucygpOwogICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSh0ZXh0dXJlTWFwcGVyLCBncmFwaGljc0xh
eWVyKTsKQEAgLTU1MiwxMSArNTUyLDExIEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5j
Q29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpCiAgICAg
ICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIo
Y2hpbGRyZW5baV0pOwogICAgICAgICAgICAgaWYgKCFsYXllcikKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIGxheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGNoaWxkcmVuW2ldKSwgdGV4dHVyZU1hcHBlciwgb3B0aW9u
cyk7CisgICAgICAgICAgICBsYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIoY2hpbGRyZW5baV0pLCB0ZXh0dXJlTWFwcGVyLCBvcHRpb25zKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoaW50IGkgPSBtX2NoaWxkcmVu
LnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKQotICAgICAgICAgICAgbV9jaGlsZHJlbltpXS0+c3lu
Y0NvbXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7CisgICAgICAgICAg
ICBtX2NoaWxkcmVuW2ldLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVyZU1hcHBlciwg
b3B0aW9ucyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKaW5kZXggMmY3ZjRi
ODIxMmZhMTg4NGI5ZDAwZjgwZTFlZjY3M2VjMTg5OWQzOC4uNTc0MGFjZjUyM2UyZGYzYzY0NWFl
NWIyM2I1NTY3MThjMWM3ODU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtMTE0LDgg
KzExNCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJMYXllcigpOwog
Ci0gICAgdm9pZCBzeW5jQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciosIGludCBzeW5jT3B0aW9ucyA9IDApOwotICAgIHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGUo
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBUZXh0dXJlTWFwcGVyKiwgaW50IHN5bmNPcHRp
b25zID0gMCk7CisgICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKKyAgICB2b2lkIGZsdXNoQ29tcG9z
aXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1cmVNYXBwZXIqLCBp
bnQgc3luY09wdGlvbnMgPSAwKTsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJ
bnRTaXplKG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOyB9CiAgICAgdm9pZCBzZXRU
cmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICB2b2lkIHNldE9wYWNp
dHkoZmxvYXQgdmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFsdWU7IH0KQEAgLTE0NCw3ICsxNDQsNyBA
QCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCB0YXJnZXRSZWN0Rm9yVGlsZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiB0b3RhbFRhcmdldFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QpIGNvbnN0
OwogICAgIHZvaWQgaW52YWxpZGF0ZVZpZXdwb3J0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZv
aWQgbm90aWZ5Q2hhbmdlKENoYW5nZU1hc2spOwotICAgIHZvaWQgc3luY0NvbXBvc2l0aW5nU3Rh
dGVTZWxmKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwgVGV4dHVyZU1hcHBlciopOworICAg
IHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciosIFRleHR1cmVNYXBwZXIqKTsKIAogICAgIHN0YXRpYyBpbnQgY29tcGFyZUdyYXBoaWNzTGF5
ZXJzWlZhbHVlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpOwogICAgIHN0YXRpYyB2b2lk
IHNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKiA+JiBhcnJheSwgaW50IGZp
cnN0LCBpbnQgbGFzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IDViZjFiM2I3YjQ3Zjg0NTVkYmE4NmRjMjk0NjA3YWU0MmE4YTE5
MzUuLjUwMTA0NTQ4NTNmY2YyZGUwYTM5ODExOGM4MDU0ZmNmNzk5MmU0OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNjc2LDcg
KzE2NzYsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbQogICAgIHJlbmRlcmVyKCktPmFuaW1h
dGlvbigpLT5ub3RpZnlBbmltYXRpb25TdGFydGVkKHJlbmRlcmVyKCksIHRpbWUpOwogfQogCi12
b2lkIFJlbmRlckxheWVyQmFja2luZzo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgaWYgKCFyZW5kZXJlcigpLT5kb2N1bWVudEJlaW5n
RGVzdHJveWVkKCkpCiAgICAgICAgIGNvbXBvc2l0b3IoKS0+c2NoZWR1bGVMYXllckZsdXNoKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXgg
Mzc1OTA4NDg5OGU0NWIwYTA5NWY4NDBkYjQ3ZGYwN2QyNzZhZDIyMy4uM2QyMjQ3YWY4N2NjNWNh
Y2I5ZDVhMDVkZjA3MGUzODU0ODEwYmY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgdXNpbmdUaWxlQ2FjaGUoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0IHsgcmV0dXJuIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXI7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHN0
YXJ0VGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
R3JhcGhpY3NMYXllciopOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3Qg
R3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA3YzgzODI4Y2RiMjUxOWUyOWJk
ZTZmMjA0OTdhYjFiYzdjY2NjMDRlLi5lNWNmMGFiY2E4NjgwOTY4MWQyYmRlNDUzZjIzOTVmYzg5
NDI1NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpzY2hlZHVsZUxheWVyRmx1c2goKQogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZs
dXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhib29sIGlzRmx1c2hSb290KQogewogICAgIC8vIEZyYW1l
Vmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCkgZmx1c2hlcyBl
YWNoIHN1YmZyYW1lLAotICAgIC8vIGJ1dCBHcmFwaGljc0xheWVyOjpzeW5jQ29tcG9zaXRpbmdT
dGF0ZSgpIHdpbGwgY3Jvc3MgZnJhbWUgYm91bmRhcmllcworICAgIC8vIGJ1dCBHcmFwaGljc0xh
eWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoKSB3aWxsIGNyb3NzIGZyYW1lIGJvdW5kYXJpZXMK
ICAgICAvLyBpZiB0aGUgR3JhcGhpY3NMYXllcnMgYXJlIGNvbm5lY3RlZCAodGhlIFJvb3RMYXll
ckF0dGFjaGVkVmlhRW5jbG9zaW5nRnJhbWUgY2FzZSkuCiAgICAgLy8gQXMgbG9uZyBhcyB3ZSdy
ZSBub3QgdGhlIHJvb3Qgb2YgdGhlIGZsdXNoLCB3ZSBjYW4gYmFpbC4KICAgICBpZiAoIWlzRmx1
c2hSb290ICYmIHJvb3RMYXllckF0dGFjaG1lbnQoKSA9PSBSb290TGF5ZXJBdHRhY2hlZFZpYUVu
Y2xvc2luZ0ZyYW1lKQpAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICAgICAg
aWYgKGZyYW1lVmlldykgewogICAgICAgICAgICAgLy8gRklYTUU6IFBhc3NpbmcgZnJhbWVSZWN0
KCkgaXMgY29ycmVjdCBvbmx5IHdoZW4gUmVuZGVyTGF5ZXJDb21wb3NpdG9yIHVzZXMgYSBTY3Jv
bGxMYXllciAoYXMgaW4gV2ViS2l0MikKICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgdGhlIHBh
c3NlZCBjbGlwIHJlY3QgbmVlZHMgdG8gdGFrZSBzY3JvbGxpbmcgaW50byBhY2NvdW50Ci0gICAg
ICAgICAgICByb290TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlKGZyYW1lVmlldy0+ZnJhbWVS
ZWN0KCkpOworICAgICAgICAgICAgcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUoZnJh
bWVWaWV3LT5mcmFtZVJlY3QoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggNjA2ZTVi
OGMzY2MyZTZhZGIxNDJlZDMzYWEzNTYzNDg2MjYzOTU3MS4uNzIyNDRiMTQzMDg2YTI4MDQ4NjUy
ZTUyMDkxZjZhN2ZiMjJlZDM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjI1LDcgKzIyNSw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IEltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgeyBzY2hlZHVsZUxheWVyRmx1c2goKTsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOyB9
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdy
YXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBHcmFwaGljc0xh
eWVyKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
Yk92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5LmNw
cAppbmRleCA3OTJhNDczYjAzZmJlMjBkNjg4NzBlNWY2NTExNmJkZjU0YWNlM2QwLi4wZDlhMDk5
NWY5YTQ2YzE2NWQ1ZjM2M2ZjM2Y3NjgxM2Y1MDhmMWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAKQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIFdlYk92
ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpyZXNldE92ZXJyaWRlcygpCiAgICAgfQogfQogCi12
b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpub3RpZnlTeW5jUmVxdWlyZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCit2b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0
VGhyZWFkOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KQogewogICAgIGlmIChXZWJQYWdlUHJpdmF0ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKICAgICAg
ICAgcGFnZS0+c2NoZWR1bGVSb290TGF5ZXJDb21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCmluZGV4IGQ2YzFkYzE3NmMyMDFkZDViZjY4ZTQxZTEy
NDNlOGFiZjIyZWU5ZmYuLjg0NmU1Y2M3YTU4NjM4ZWYwNzMyYTQxYzc4ZGI4OTAwN2MwMzA5Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheV9wLmgK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaApAQCAtMTY1
LDcgKzE2NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CiAgICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDk1YWEwN2IwYTRhZDg1NjIz
OTIwN2U5MGQ2ZjllYjYwNTI2YmE0NjkuLjdmOGYzNTk1OWNkN2Q5Y2FjMmZkOGIwMzdjYmU4MDRm
YTUyYWFiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAt
NTg4Myw3ICs1ODgzLDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6c2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpCiAgICAgbV9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uID0gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5U3luY1JlcXVp
cmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJQYWdlUHJpdmF0ZTo6bm90aWZ5Rmx1
c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKICAgICBzY2hlZHVsZVJvb3RMYXll
ckNvbW1pdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5k
ZXggMzExN2YyNzU1Yjk5NGQzNmQyN2IzOWZiZmRlMTc3ZGJjMDI0MGIzMC4uZjAyZGM3NjU3Yjg5
YjU2OWRiODMxOWE1NmJjNjNlMDdmN2Y5MjA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2VfcC5oCkBAIC0zOTgsNyArMzk4LDcgQEAgcHVibGljOgogCiAgICAgLy8gRmFs
bGJhY2sgR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRhdGlvbiwgdXNlZCBmb3IgdmFyaW91
cyBvdmVybGF5IGxheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGlu
Q2xpcCkgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENv
dW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdo
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFw
SGlnaGxpZ2h0LmNwcAppbmRleCBmMDYyNjNhZTc3ZDIxYWVmNWQ0YWRmYWM0YjY5Yjc2MjE1NzZl
OTU1Li40NTQ3MmFhZmQ5NGIwMzg3Y2NlNmYyYjE4MmViM2NkNjkxYTkxZGRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxp
Z2h0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZh
dWx0VGFwSGlnaGxpZ2h0LmNwcApAQCAtMTEwLDkgKzExMCw5IEBAIHZvaWQgRGVmYXVsdFRhcEhp
Z2hsaWdodDo6aGlkZSgpCiAgICAgICAgIG1fb3ZlcmxheS0+b3ZlcnJpZGUoKS0+YWRkQW5pbWF0
aW9uKGZhZGVBbmltYXRpb24pOwogfQogCi12b2lkIERlZmF1bHRUYXBIaWdobGlnaHQ6Om5vdGlm
eVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgRGVmYXVsdFRh
cEhpZ2hsaWdodDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKiBsYXll
cikKIHsKLSAgICBtX3BhZ2UtPm5vdGlmeVN5bmNSZXF1aXJlZChsYXllcik7CisgICAgbV9wYWdl
LT5ub3RpZnlGbHVzaFJlcXVpcmVkKGxheWVyKTsKIH0KIAogdm9pZCBEZWZhdWx0VGFwSGlnaGxp
Z2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQm
IGMsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiAvKmluQ2xpcCov
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVm
YXVsdFRhcEhpZ2hsaWdodC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5oCmluZGV4IGNjZjk2YjVkOWJmZTE5ZDFiMTExMGI5OGYz
MjhlMjg0OTQxNGIxODEuLjA2YzU1OTA1Nzk1MjA5M2ZhZDhjYTlhNWQxOGYwYTc3MjA2ZWZjYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1
bHRUYXBIaWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgaW5DbGlwKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3dSZXBh
aW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5jcHAKaW5kZXggOWNmZjViMjMwMGVlNmQzNDQ4
ZTBkOWMxNjAyNmZhYmFiMTI1NTVjOC4uMDgxNWRkOTdiY2IyOTVkZGViMDRiODZjMjMyMGEzNjU3
NzU1ZDNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcApAQCAt
NDIsOSArNDIsOSBAQCBJbnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KFdlYlBhZ2VQ
cml2YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KgogfQogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lkIEluc3BlY3Rv
ck92ZXJsYXk6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciogbGF5ZXIpCiB7Ci0gICAgbV93ZWJQYWdlLT5ub3RpZnlTeW5jUmVxdWlyZWQobGF5ZXIpOwor
ICAgIG1fd2ViUGFnZS0+bm90aWZ5Rmx1c2hSZXF1aXJlZChsYXllcik7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3Zl
cmxheUJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmgKaW5kZXggZGU2ZjUxZmYzMzI0ZmZlMDdmMzkz
MTNiZmMwM2JkN2Y4NThhZjUyNi4uOTExOTdjYzBjOWNiODNjMzZjMWMyZDQ1N2M2MjYxNDUyZDNk
MzEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5oCkBAIC01Miw3ICs1
Miw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CiAgICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAppbmRleCBjZDhjMzVkOTM4NTU5
NzBlMTM3MTFmZDFjNmE1ZGY0YmQ3N2JmODg0Li5lMWY0NzAxMGMwMTkxYmQ5MjlkNzc3MjhlYjI0
YmJkNzg1NGI1NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApAQCAtOTQsOSArOTQsOSBAQCB2
b2lkIFNlbGVjdGlvbk92ZXJsYXk6OmhpZGUoKQogICAgIG1fcGFnZS0+bV93ZWJQYWdlLT5yZW1v
dmVPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSk7CiB9CiAKLXZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6
bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBTZWxl
Y3Rpb25PdmVybGF5Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxh
eWVyKQogewotICAgIG1fcGFnZS0+bm90aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKKyAgICBtX3Bh
Z2UtPm5vdGlmeUZsdXNoUmVxdWlyZWQobGF5ZXIpOwogfQogCiB2b2lkIFNlbGVjdGlvbk92ZXJs
YXk6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYg
YywgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlv
bk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVj
dGlvbk92ZXJsYXkuaAppbmRleCBiZTYxZTc2NGI3ZGE2Mjk2ODVkOTcxODY5MmQ1MjM0MGY2NTFi
MWQxLi5jMWEwZjg2YjhjZThjYzUwZThkZjhlNjAxNmM0MDI2YWZiMTgxODVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9u
T3ZlcmxheS5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEdyYXBoaWNzTGF5
ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CiAg
ICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggZjFiOWM2
OGJjOWFiNDM4ODQ5Yzk0NjQ1Mjk5MTg2Yjg0NzhlMDVlNi4uMjFiOTcyNWIwZWE1ZDAwYTA4YmEz
NjQxNmU1YjgwNWMwZjNmZWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCkBAIC0xNjYsNyArMTY2LDcgQEAg
dm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXkKICAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgZW1wdHkg
c2luY2Ugd2UgZG9uJ3Qgc3VwcG9ydCBhbmltYXRpb25zIG9uIHRoZSBub24tY29tcG9zaXRlZCBj
b250ZW50LgogfQogCi12b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6bm90aWZ5U3luY1Jl
cXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQordm9pZCBOb25Db21wb3NpdGVk
Q29udGVudEhvc3Q6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopCiB7CiAgICAgbV93ZWJWaWV3LT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdC5oCmluZGV4IDY5Nzc2ZDkwZmI5N2QyMmFlZWYxMWE1MjIzZDY3YTRjOGYxN2Iz
ZTkuLjA4ZTljNjliMmY3Y2ExZjNlNGM4MDBlODkyMjgxOWMyZTk1NmJjYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
CkBAIC02OSw3ICs2OSw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NM
YXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7Ci0gICAgdmlydHVhbCB2b2lk
IG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1BhZ2VPdmVybGF5LmNwcAppbmRleCBiNWQxNTdhNGJhNjc1MWFjN2NjNzhlOGQ0YzMzMDNk
YjBiMzk2ZTlhLi5hMTZhMDEwNzdlYjM1YWJjODI3MDg3Nzk5Mjk1MzY1NDljNGI4ZjYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCkBAIC03NSw3ICs3NSw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhp
Y3NDb250ZXh0JiBnYywgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3Qm
IGluQ2xpcCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCA4MTIyNDZlNTc2ZDY2N2Fi
MzRjMDI2Mzg4MzEwYWEzNDUwYmE5ZTM1Li4wY2U4NDI1N2I1YmE3YmI4MzAxZWU3ZWQ2MTM3YmI1
ZGIwNDQ1ZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNw
YWNlIHsKIGNsYXNzIE1vY2tHcmFwaGljc0xheWVyQ2xpZW50IDogcHVibGljIEdyYXBoaWNzTGF5
ZXJDbGllbnQgewogICBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0
YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBP
VkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBH
cmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIE9WRVJSSURFIHsgfQogICAgIHZp
cnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENv
dW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJD
aHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JbWFnZUxheWVy
Q2hyb21pdW1UZXN0LmNwcAppbmRleCA1NTIxMmU1ZTg0YThiZTkwZThiMzhkODk1Yzk1NGNkOTBl
NzIxNGIxLi5iZmIwM2VkMzA0ZjQ5OGM4M2QwOGVmZDcxNTNiNjFhYTYyZmVlNWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSW1hZ2VMYXllckNocm9taXVt
VGVzdC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIHsKIGNsYXNzIE1vY2tHcmFwaGlj
c0xheWVyQ2xpZW50IDogcHVibGljIEdyYXBoaWNzTGF5ZXJDbGllbnQgewogICBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXll
ciosIGRvdWJsZSB0aW1lKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hS
ZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50
Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNz
TGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApIHsgfQogICAgIHZpcnR1
YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3Qg
R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKaW5kZXggNGEwODU1MmM5YWRhNGQ2ZDc5ZDdkNDA1NmU5
OTM2ZmEyNTJlMTMwMC4uYjFiZmY2NDg2YjIwODJhZmY0MjI3NWQxMTUxMjkzMzczY2Q4OGZjMSAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcApAQCAtNjgsNyArNjgs
NyBAQCBib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojppbml0aWFsaXplKEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3cpCiB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpz
eW5jTGF5ZXJzTm93KCkKIHsKICAgICBpZiAobV9yb290R3JhcGhpY3NMYXllcikKLSAgICAgICAg
bV9yb290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
KCk7CisgICAgICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNMYXllck9ubHkoKTsKIAogICAgIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyktPm1h
aW5GcmFtZSgpLT52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1l
cygpOwogfQpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqIHJvb3RMCiAgICAg
bV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlckdMOjpjcmVhdGUoKTsKICAgICBtX3Jvb3RU
ZXh0dXJlTWFwcGVyTGF5ZXItPnNldFRleHR1cmVNYXBwZXIobV90ZXh0dXJlTWFwcGVyLmdldCgp
KTsKIAotICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOworICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpjb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dC5oCmluZGV4IDkyNmIyMTlmYjkwZTAwNzAyOTk5MTA2M2RjZDRmYTkwNzc1MjA1NmIuLjY1
NzJlYTVlYWQyODEzYzc1YmY1N2NlMTQzOTFjMTlkMGVhNGMxNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBHcmFw
aGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKLSAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9Q
YWludCk7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50
ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcAppbmRleCAyZGI2MzIxNDAzNDc1ODg2NTMzZDJk
NTZkMGNkNDY4ZmE2Mzg4MjIxLi4zNzg5MDM0MjYzMGVjNTBkZjRmYjg5YTMwNWQxNzRlMTA5NTc1
YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcApAQCAt
ODksNyArODksNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjphdHRhY2hS
b290R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKiBncmFwaAogCiAgICAgbV90ZXh0dXJlTWFw
cGVyID0gVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyOjpjcmVhdGUoKTsKICAgICBtX3Jvb3RUZXh0
dXJlTWFwcGVyTGF5ZXItPnNldFRleHR1cmVNYXBwZXIobV90ZXh0dXJlTWFwcGVyLmdldCgpKTsK
LSAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoKTsKKyAgICBtX3Jvb3RHcmFwaGljc0xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVG
b3JUaGlzTGF5ZXJPbmx5KCk7CiB9CiAKIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OnNjaGVkdWxlUm9vdExheWVyUmVwYWludChjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtMTEw
LDcgKzExMCw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJv
b3RMYXllcihjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGlmICghbV9yb290R3JhcGhpY3NMYXll
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnNldFNpemUoc2l6
ZSk7Ci0gICAgbV9yb290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCk7CisgICAgbV9yb290R3JhcGhpY3NMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0xheWVyT25seSgpOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gc3luY0xheWVyc1Rp
bWVvdXRDYWxsYmFjayhBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCogY29udGV4dCkKQEAg
LTEzNSw3ICsxMzUsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5j
TGF5ZXJzTm93KCkKICAgICAgICAgY29yZShtX3dlYlZpZXcpLT5tYWluRnJhbWUoKS0+dmlldygp
LT5sYXlvdXQoKTsKIAogICAgIGlmIChtX3Jvb3RHcmFwaGljc0xheWVyKQotICAgICAgICBtX3Jv
b3RHcmFwaGljc0xheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsK
KyAgICAgICAgbV9yb290R3JhcGhpY3NMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOwogCiAgICAgY29yZShtX3dlYlZpZXcpLT5tYWluRnJhbWUoKS0+dmlldygp
LT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIH0KQEAgLTE1OCw3
ICsxNTgsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlBbmlt
YXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLAogewogCiB9Ci12b2lkIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NM
YXllciopCit2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENs
dXR0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcAppbmRleCA0ZDYzNmYyODE1NjhjZmIzYjRlZmU3
MDBlMmZmNDdjNTBkYmUzOGRiLi44N2NlYjZlYTAyNGFiNDBmOGE0ODNhODYxMzM3MjM4NzVlZTM2
ZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHAK
QEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpz
Y2hlZHVsZUxheWVyRmx1c2goKQogYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKIHsKICAgICBpZiAobV9yb290R3JhcGhpY3NMYXll
cikKLSAgICAgICAgbV9yb290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CisgICAgICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIHJldHVybiBjb3JlKG1fd2ViVmll
dyktPm1haW5GcmFtZSgpLT52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1
YmZyYW1lcygpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9Ci12b2lkIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopCit2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQogewogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAppbmRl
eCBlMmVkMDlhMTBhNjI4M2JlYzkwNjNlM2E2YmFmZGMwZDM0NzMzN2U3Li5lZmMyMDYxOTM0NGVi
MjVjMjg1NDZiZWQyZGRkN2M3NGY0NDVlYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dEdMLmNwcApAQCAtMzIyLDggKzMyMiw4IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ6OnNjaGVkdWxlTGF5ZXJGbHVzaCgpCiAKIGJvb2wgQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7Ci0gICAgbV9yb290
TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwotICAgIG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCk7CisgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoKTsKKyAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICByZXR1cm4gY29yZShtX3dlYlZpZXcpLT5t
YWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFt
ZXMoKTsKIH0KIApAQCAtMzcwLDcgKzM3MCw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQ6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosCiB7
CiAKIH0KLXZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlmeVN5bmNSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3ZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA4MTJmM2YwZTNiZGE2MmYyMTlk
N2E0Yjc3YjE5MzA3MGVhNDcxM2ZmLi4zM2IyMDA4ZjAxOTNiMTZkZDM3MWNiYTJjZDRkMmJlMDMy
ODdlOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02MzI5LDE0ICs2
MzI5LDE0IEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3Qgcm91bmRVcFRvUG93ZXJPZjIodWludDY0
X3QgbnVtKQogICAgIAogICAgIFRvIGZpeCB0aGlzLCB0aGUgR3JhcGhpY3NMYXllckNBIGNvZGUg
aW4gV2ViQ29yZSBkb2VzIG5vdCBjaGFuZ2UgdGhlIENBCiAgICAgbGF5ZXIgdHJlZSBkdXJpbmcg
c3R5bGUgY2hhbmdlcyBhbmQgbGF5b3V0OyBpdCBzdG9yZXMgdXAgYWxsIGNoYW5nZXMgYW5kCi0g
ICAgY29tbWl0cyB0aGVtIHZpYSBzeW5jQ29tcG9zaXRpbmdTdGF0ZSgpLiBUaGVyZSBhcmUgdGhl
biB0d28gc2l0dWF0aW9ucyBpbgotICAgIHdoaWNoIHdlIGNhbiBjYWxsIHN5bmNDb21wb3NpdGlu
Z1N0YXRlKCk6CisgICAgY29tbWl0cyB0aGVtIHZpYSBmbHVzaENvbXBvc2l0aW5nU3RhdGUoKS4g
VGhlcmUgYXJlIHRoZW4gdHdvIHNpdHVhdGlvbnMgaW4KKyAgICB3aGljaCB3ZSBjYW4gY2FsbCBm
bHVzaENvbXBvc2l0aW5nU3RhdGUoKToKICAgICAKLSAgICAxLiBXaGVuIHBhaW50aW5nLiBGcmFt
ZVZpZXc6OnBhaW50Q29udGVudHMoKSBtYWtlcyBhIGNhbGwgdG8gc3luY0NvbXBvc2l0aW5nU3Rh
dGUoKS4KKyAgICAxLiBXaGVuIHBhaW50aW5nLiBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMoKSBt
YWtlcyBhIGNhbGwgdG8gZmx1c2hDb21wb3NpdGluZ1N0YXRlKCkuCiAgICAgCiAgICAgMi4gV2hl
biBzdHlsZSBjaGFuZ2VzL2xheW91dCBoYXZlIG1hZGUgY2hhbmdlcyB0byB0aGUgbGF5ZXIgdHJl
ZSB3aGljaCBkbyBub3QKICAgICAgICByZXN1bHQgaW4gcGFpbnRpbmcuIEluIHRoaXMgY2FzZSB3
ZSBuZWVkIGEgcnVuIGxvb3Agb2JzZXJ2ZXIgdG8gZG8gYQotICAgICAgIHN5bmNDb21wb3NpdGlu
Z1N0YXRlKCkgYXQgYW4gYXBwcm9wcmlhdGUgdGltZS4gVGhlIG9ic2VydmVyIHdpbGwga2VlcCBm
aXJpbmcKKyAgICAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGUoKSBhdCBhbiBhcHByb3ByaWF0ZSB0
aW1lLiBUaGUgb2JzZXJ2ZXIgd2lsbCBrZWVwIGZpcmluZwogICAgICAgIHVudGlsIHRoZSB0aW1l
IGlzIHJpZ2h0IChlc3NlbnRpYWxseSB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIHBlbmRpbmcgbGF5
b3V0cykuCiAgICAgCiAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9QYWdlQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Q
YWdlQ2xpZW50UXQuY3BwCmluZGV4IGNhZTEzMDg0YzZmMDZhMWY1NWQ4MGQyOWU5Y2VlOWI0ZjU0
ZTVjMzcuLjE0MWY5OGUzMDgyYzIxMjdjNmY5NDFlMWQ5MjBjZTc3ZTA5MjlhMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5jcHAKQEAgLTEx
MCw3ICsxMTAsNyBAQCBUZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdDo6flRleHR1cmVNYXBwZXJM
YXllckNsaWVudFF0KCkKIAogdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXJDbGllbnRRdDo6c3luY1Jv
b3RMYXllcigpCiB7Ci0gICAgbV9yb290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgbV9yb290R3JhcGhpY3NMYXllci0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogfQogCiBUZXh0dXJlTWFwcGVyTGF5ZXIq
IFRleHR1cmVNYXBwZXJMYXllckNsaWVudFF0Ojpyb290TGF5ZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAppbmRleCA5NWE1MjhlNmEzMGJmMTcyZDk3NTEzZGEyNjBiNDBkYjM5ZmU1ZTMwLi40NzAxYmJl
MDhmNTE3MWU5MTFmN2RjNDZkYTVkZWY1NjkyMDEwYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApA
QCAtNjYzMSw3ICs2NjMxLDcgQEAgdm9pZCBXZWJWaWV3Ojpub3RpZnlBbmltYXRpb25TdGFydGVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKLXZvaWQgV2ViVmlldzo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKQordm9pZCBXZWJWaWV3Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKQogewogICAgIGZsdXNoUGVuZGluZ0dyYXBoaWNzTGF5ZXJDaGFuZ2VzU29vbigpOwogfQpA
QCAtNjY3Myw3ICs2NjczLDcgQEAgdm9pZCBXZWJWaWV3OjpmbHVzaFBlbmRpbmdHcmFwaGljc0xh
eWVyQ2hhbmdlcygpCiAKICAgICAvLyBVcGRhdGluZyBsYXlvdXQgbWlnaHQgaGF2ZSB0YWtlbiB1
cyBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZS4KICAgICBpZiAobV9iYWNraW5nTGF5ZXIpCi0gICAg
ICAgIG1fYmFja2luZ0xheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHko
KTsKKyAgICAgICAgbV9iYWNraW5nTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKTsKIAogICAgIHZpZXctPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1
YmZyYW1lcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IDY5NmUyYzc3YjM0MWI0NDI2ZTAzNTQ2
MWVjYzExYzI0MTViODUwNDkuLjk4ZmNiYjNlMWJkM2JiNTI2NTliMGM1ZGFkODZjZDIyMTk1MjNk
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTEwMTgsNyArMTAxOCw3IEBAIHByaXZhdGU6CiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5j
UmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CiAgICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmlu
ZGV4IGI5NGM2NmI5ZDM2NjAxMWJkODVjYWQzMjI3ZjA1ZGY3N2JjNDkzZWUuLjViOTYyZGI0YzRj
ZjRmYTM5MTNmOGM0MWNhYTIzYjZkM2ZkMTM4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpw
YWludFRvQ3VycmVudEdMQ29udGV4dChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cgog
ICAgIGlmIChjdXJyZW50Um9vdExheWVyLT5vcGFjaXR5KCkgIT0gb3BhY2l0eSB8fCBjdXJyZW50
Um9vdExheWVyLT50cmFuc2Zvcm0oKSAhPSBtYXRyaXgpIHsKICAgICAgICAgY3VycmVudFJvb3RM
YXllci0+c2V0T3BhY2l0eShvcGFjaXR5KTsKICAgICAgICAgY3VycmVudFJvb3RMYXllci0+c2V0
VHJhbnNmb3JtKG1hdHJpeCk7Ci0gICAgICAgIGN1cnJlbnRSb290TGF5ZXItPnN5bmNDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgICAgICBjdXJyZW50Um9vdExheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgfQogCiAgICAgbGF5
ZXItPnBhaW50KCk7CkBAIC0zOTMsNyArMzkzLDcgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6
Zmx1c2hMYXllckNoYW5nZXMoKQogewogICAgIG1fcmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0
aW9uID0gbV9wZW5kaW5nUmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uOwogCi0gICAgbV9y
b290TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlKEZsb2F0UmVjdCgpKTsKKyAgICBtX3Jvb3RM
YXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKEZsb2F0UmVjdCgpKTsKICAgICBjb21taXRUaWxl
T3BlcmF0aW9ucygpOwogCiAgICAgLy8gVGhlIHBlbmRpbmcgdGlsZXMgc3RhdGUgaXMgb24gaXRz
IHdheSBmb3IgdGhlIHNjcmVlbiwgdGVsbCB0aGUgd2ViIHByb2Nlc3MgdG8gcmVuZGVyIHRoZSBu
ZXh0IG9uZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCmluZGV4IDRlNDU2NzhlNmYw
MDNhZTUyMmMwOWRmMGJkM2U3N2Y2YTFkYTYxZGIuLjllOTllZjBhOWE4MDM4OTAzZmYwNGZiZGQz
YjRiY2U1MDhiYWUyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApAQCAtMTAw
LDcgKzEwMCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBSZWltcGxlbWVudGF0aW9ucyBmcm9tIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdC
b3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBwYWludENv
bnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggZjJhZmRiNWZiOGFiMzAwZWFlODgwOGU4
MzZlZjM2MDExOTZjYTM3OS4uY2U1NDhiMDE2MGUxMmQ0MTBlMjkxOWQ5OWY4MzVhZDk3OWEyYjZm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwCkBAIC02NSwyMSArNjUsMjEgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRpZENoYW5nZUxheWVyU3RhdGUoKQogewogICAgIG1fc2hvdWxkU3luY0xheWVy
U3RhdGUgPSB0cnVlOwogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPm5vdGlm
eVN5bmNSZXF1aXJlZCh0aGlzKTsKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWly
ZWQodGhpcyk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VB
bmltYXRlZFByb3BlcnRpZXMoKQogewogICAgIG1fc2hvdWxkU3luY0FuaW1hdGVkUHJvcGVydGll
cyA9IHRydWU7CiAgICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5U3lu
Y1JlcXVpcmVkKHRoaXMpOworICAgICAgICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0
aGlzKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUNoaWxk
cmVuKCkKIHsKICAgICBtX3Nob3VsZFN5bmNDaGlsZHJlbiA9IHRydWU7CiAgICAgaWYgKGNsaWVu
dCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5U3luY1JlcXVpcmVkKHRoaXMpOworICAgICAg
ICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmRpZENoYW5nZUZpbHRlcnMoKQogewogICAgIG1fc2hvdWxkU3luY0ZpbHRlcnMgPSB0cnVl
OwogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeVN5bmNSZXF1aXJl
ZCh0aGlzKTsKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CiB9
CiAjZW5kaWYKIApAQCAtMzQwLDcgKzM0MCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSgpCiAgICAgc2V0Q29udGVudHNUb0ltYWdlKGlt
YWdlLmdldCgpKTsKICAgICBtX2NhbnZhc05lZWRzRGlzcGxheSA9IHRydWU7CiAgICAgaWYgKGNs
aWVudCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5U3luY1JlcXVpcmVkKHRoaXMpOworICAg
ICAgICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKIH0KIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcikKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KQogICAgIG1fY2FudmFzUGxhdGZvcm1MYXllciA9IHBsYXRmb3JtTGF5ZXI7CiAgICAgbV9jYW52
YXNOZWVkc0Rpc3BsYXkgPSB0cnVlOwogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50
KCktPm5vdGlmeVN5bmNSZXF1aXJlZCh0aGlzKTsKKyAgICAgICAgY2xpZW50KCktPm5vdGlmeUZs
dXNoUmVxdWlyZWQodGhpcyk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCkBAIC00MzMs
MjAgKzQzMywyMCBAQCBXZWJMYXllcklEIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aWQoKSBj
b25zdAogICAgIHJldHVybiBtX2lkOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c3luY0NvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCiB7CiAgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbWFzayA9IHRv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKG1hc2tMYXllcigpKSkKLSAgICAgICAgbWFzay0+c3lu
Y0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgICAgIG1hc2stPmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIGlmIChDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIqIHJlcGxpY2EgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihyZXBs
aWNhTGF5ZXIoKSkpCi0gICAgICAgIHJlcGxpY2EtPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOworICAgICAgICByZXBsaWNhLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CiAKICAgICBtX0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudC0+
c3luY0ZpeGVkTGF5ZXJzKCk7CiAKLSAgICBzeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoKTsKKyAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCi0gICAg
ICAgIGNoaWxkcmVuKClbaV0tPnN5bmNDb21wb3NpdGluZ1N0YXRlKHJlY3QpOworICAgICAgICBj
aGlsZHJlbigpW2ldLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUocmVjdCk7CiB9CiAKIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciogdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXll
ciogbGF5ZXIpCkBAIC01NDUsNyArNTQ1LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmVuc3VyZUltYWdlQmFja2luZ1N0b3JlKCkKICAgICAgICAgbV9sYXllckluZm8uaW1hZ2VC
YWNraW5nU3RvcmVJRCA9IG1fQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50LT5hZG9wdElt
YWdlQmFja2luZ1N0b3JlKG1faW1hZ2UuZ2V0KCkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKK3ZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5
ZXJPbmx5KCkKIHsKICAgICAvLyBUaGUgcmVtb3RlIGltYWdlIG1pZ2h0IGhhdmUgYmVlbiByZWxl
YXNlZCBieSBwdXJnZUJhY2tpbmdTdG9yZXMuCiAgICAgZW5zdXJlSW1hZ2VCYWNraW5nU3RvcmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmgKaW5kZXggM2ViYTc5YjQyYzMwMjg3NTM4NzlmM2VmOWZiMmYwZGUwOWMyZjkwMi4u
ODdmZjc1YWJiYWM3YmIyNmJkMDVjZDY5MGVjMTRhMjdhZGQ3YmNkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTEs
NCArMSw0IEBACi0gICAgLyoKK2ZsdXNoQ29tcG9zaXRpbmdTdGF0ZSAgICAvKgogIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
IAogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKQEAgLTExNSw4ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb250ZW50
c05lZWRzRGlzcGxheSgpOwogICAgIHZvaWQgc2V0Q29udGVudHNTY2FsZShmbG9hdCk7CiAgICAg
dm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IEZsb2F0UG9p
bnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0NvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRS
ZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVy
T25seSgpOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxv
YXRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBzZXRGaWx0ZXJz
KGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDlmM2YwNjQ4MjNmYTNj
ZTU3ZDQ1ZWNiZDU4MGJiYjMzMzBhZDc2NTUuLjI3MmRmMDljNzg0ZGFhYzZiNDdlYzlmYmI3MGU3
NTJmYmY0YWZlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHAKQEAgLTI1OSwxMSArMjU5LDExIEBAIGJvb2wgTGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiAgICAgbV9kZXRhY2hlZExheWVy
cy5jbGVhcigpOwogCiAgICAgYm9vbCBkaWRTeW5jID0gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5t
YWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFt
ZXMoKTsKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+
Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAgIGlmIChtX3BhZ2VP
dmVybGF5TGF5ZXIpCi0gICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c3luY0NvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+Zmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCi0gICAgbV9yb290TGF5ZXIt
PnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgIG1fcm9vdExheWVy
LT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICBpZiAobV9z
aG91bGRTeW5jUm9vdExheWVyKSB7CiAgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIodG9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5pZCgpKSk7CkBAIC01MTQs
NyArNTE0LDcgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6bm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwKIHsKIH0KIAotdm9pZCBMYXllclRy
ZWVDb29yZGluYXRvcjo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggYzZjY2ZjYjkwMDc1N2Vk
NWVlNjcxYWQ1YTFlNjJkODk1OGUxMjYyOC4uNzRlMjBhZWZkMzVlOWYxNTk1MTYwYWRhYWEwMDJi
MGFjMTRiOWQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5oCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAg
ICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWlu
dENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENB
LmNwcAppbmRleCBmODgwYjg3YjBlMDdmYmJiMjZkZTM5MTUwOTFkY2Y3NDk2ZjQyY2E4Li4wODcy
ZjQzNTUwZTc2MmZkZjk2ZWY4YzgyMjQ5MmUzNDU2MzMzZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvY2EvTGF5ZXJUcmVlSG9zdENBLmNwcApA
QCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdENBOjpub3RpZnlBbmltYXRpb25T
dGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3ViCiB7CiB9CiAKLXZvaWQg
TGF5ZXJUcmVlSG9zdENBOjpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopCit2b2lkIExheWVyVHJlZUhvc3RDQTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikKIHsKIH0KIApAQCAtMjQ1LDEwICsyNDUsMTAgQEAg
dm9pZCBMYXllclRyZWVIb3N0Q0E6OmRpZFBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCkKIAog
Ym9vbCBMYXllclRyZWVIb3N0Q0E6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7Ci0gICAg
bV9yb290TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwotICAg
IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCk7CisgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKTsKKyAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9wYWdlT3ZlcmxheUxh
eWVyKQotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSgpOworICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIHJldHVybiBtX3dlYlBhZ2UtPmNv
cmVQYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1
ZGluZ1N1YmZyYW1lcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2NhL0xheWVyVHJlZUhvc3RDQS5oCmluZGV4IDkyYWU3MjY3NDdiNjQzNTk0ODY1
ODExNTM3YzQzZjA4OTQwZjRlYzUuLjljYjhjYTZhNTRmYzM4NmQyYmUzYzg5MjkyNDhjZmJlNWUw
MmM2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9M
YXllclRyZWVIb3N0Q0EuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Y2EvTGF5ZXJUcmVlSG9zdENBLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8v
IEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwotICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291
bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3Rr
LmNwcAppbmRleCA0NDFhYjllOWQzOTM1NWVjOTM5ZjI5NmNjNmY2ZGE1NjUzZWVmZTUxLi43N2Ex
YjE2N2QxN2VjZTEwYmVkYzIwNWIyNTJjODA4YTllOWIzODdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5j
cHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIExheWVyVHJlZUhvc3RHdGs6Om5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdQogewogfQogCi12
b2lkIExheWVyVHJlZUhvc3RHdGs6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikKK3ZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6bm90aWZ5Rmx1c2hSZXF1aXJl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikKIHsKIH0KIApAQCAtMjg3LDEwICsyODcs
MTAgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpsYXllckZsdXNoVGltZXJGaXJlZCgpCiAKIGJv
b2wgTGF5ZXJUcmVlSG9zdEd0azo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKIHsKLSAgICBt
X3Jvb3RMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7Ci0gICAg
bV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKTsKKyAgICBtX3Jvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOworICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5
ZXIpCi0gICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CisgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+Zmx1c2hDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCiAgICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29y
ZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVk
aW5nU3ViZnJhbWVzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCmluZGV4IGQ5YTgxNmMyZWJkZGI5ODVj
MTM3MmVjZWJjNmVmNTc2YzIwM2Y4MDAuLjYxYjlmYTY3MTU4MzM2YTM0NjNjZGMwY2Y3Y2M4OTgz
N2UwYjExMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvTGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKTsK
LSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVw
YWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IGEwNDQ3YjY5ZDgxNjRhYTYy
ZmJmOTA2ZTI1NzY3M2M0ZGJiN2MyMjAuLmY1MDQ4YTk4NWVlNTg3YmI3MmIzYjAwY2I1Mjk0N2Jj
YzhmM2RmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAg
LTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
bGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250
ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGNsaXBSZWN0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVn
Qm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQppbmRleCA2YmNiZTdiNzE2MjEzZWE5ZjVjODc4YTZmMDBlMDA3MzQzYzg2YzFk
Li45ZmJiMTcwYTYxZTE3MDM2NmI3NTBkNDgwMjQ3MmZmZDRjNjkxYjIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLAogewogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKQogewogfQogCkBAIC0zMDUsNyArMzA1LDcgQEAgYm9vbCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogCiAgICAgaWYgKG1fcGFnZU92ZXJs
YXlMYXllcikgewogICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldE5lZWRzRGlzcGxheSgp
OwotICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOworICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICB9CiAKICAgICBib29sIHJldHVyblZhbHVl
ID0gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBv
c2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsK
</data>
<flag name="review"
          id="179736"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="179752"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>