<?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>208319</bug_id>
          
          <creation_ts>2020-02-27 08:42:37 -0800</creation_ts>
          <short_desc>Check for navigation to app-bound domain during script evaluation</short_desc>
          <delta_ts>2020-03-03 09:09:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>aestes</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623505</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-02-27 08:42:37 -0800</bug_when>
    <thetext>We should check for navigation to app-bound domain during script evaluation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623506</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-02-27 08:45:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/57569321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623597</commentid>
    <comment_count>2</comment_count>
      <attachid>391894</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-02-27 12:07:08 -0800</bug_when>
    <thetext>Created attachment 391894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623605</commentid>
    <comment_count>3</comment_count>
      <attachid>391896</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-02-27 12:17:51 -0800</bug_when>
    <thetext>Created attachment 391896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624194</commentid>
    <comment_count>4</comment_count>
      <attachid>391896</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-28 17:16:07 -0800</bug_when>
    <thetext>Comment on attachment 391896
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        * bindings/js/ScriptController.cpp:
&gt; +        (WebCore::ScriptController::executeScriptInWorld):
&gt; +        * loader/FrameLoaderClient.h:
&gt; +        * page/Frame.cpp:
&gt; +        (WebCore::Frame::injectUserScriptImmediately):

Please fill in the ChangeLog ensuring that you include why this change is being done, and what issue it is fixing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624877</commentid>
    <comment_count>5</comment_count>
      <attachid>392233</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-03-02 18:05:53 -0800</bug_when>
    <thetext>Created attachment 392233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624925</commentid>
    <comment_count>6</comment_count>
      <attachid>392233</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-03-02 20:37:10 -0800</bug_when>
    <thetext>Comment on attachment 392233
Patch

I think this looks correct based on what we discussed with Andy. Feel free to land this if the wk2 run completes successfully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624926</commentid>
    <comment_count>7</comment_count>
      <attachid>392233</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-03-02 20:38:21 -0800</bug_when>
    <thetext>Comment on attachment 392233
Patch

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

&gt; Source/WebKit/ChangeLog:56
&gt; +        (WebKit::WebPage::runJavaScript):

So much state threading! :-D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625057</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-03-03 08:18:35 -0800</bug_when>
    <thetext>Thanks for the review! Looks like all EWS are green. Style bot seems to always complain when adding a new function to FrameLoaderClient.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625075</commentid>
    <comment_count>9</comment_count>
      <attachid>392233</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-03 09:08:17 -0800</bug_when>
    <thetext>Comment on attachment 392233
Patch

Clearing flags on attachment: 392233

Committed r257780: &lt;https://trac.webkit.org/changeset/257780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625076</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-03 09:08:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625077</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-03 09:09:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/59998428&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391894</attachid>
            <date>2020-02-27 12:07:08 -0800</date>
            <delta_ts>2020-02-27 12:17:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208319-20200227120707.patch</filename>
            <type>text/plain</type>
            <size>23734</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI2MmFhMGMwNTkzZGY4
MGZhNzAzNjNkNGNjMmUxZDYzODBmZjA4ZC4uZDVlYTMwNTNiNzUwOGUyODkzZWY3Y2RmY2ZhYWY0
ZWNiYTY2ZmI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNrIGZv
ciBuYXZpZ2F0aW9uIHRvIGFwcC1ib3VuZCBkb21haW4gZHVyaW5nIHNjcmlwdCBldmFsdWF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzMTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NTY5MzIxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0
SW5Xb3JsZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW5qZWN0VXNlclNj
cmlwdEltbWVkaWF0ZWx5KToKKwogMjAyMC0wMi0yNiAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVl
QGFwcGxlLmNvbT4KIAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIFdlYkNvcmU6OmNhbkhhdmVD
aGlsZHJlbkZvckVkaXRpbmcgdmlhIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDQxNzY2M2UzMGVhNjI0ZWUzM2UxMWVlODY4ZGM3ZWNlNWQ5YzA1YjQuLjgyZDg5
NDZmMjRkYTQyYzVkOWYzODVkNWJiZjA1ZjZlMGVmZmQ4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMjAtMDItMjcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5j
b20+CisKKyAgICAgICAgQ2hlY2sgZm9yIG5hdmlnYXRpb24gdG8gYXBwLWJvdW5kIGRvbWFpbiBk
dXJpbmcgc2NyaXB0IGV2YWx1YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc1NjkzMjE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5j
ZXMgX2luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5j
ZXMgX3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOl0pOgorICAgICAgICBBZGQgU1BJIGZv
ciB0ZXN0aW5nIHB1cnBvc2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cnVuSmF2YVNjcmlwdCk6CisKIDIwMjAtMDItMjYgIEphY29iIFVwaG9mZiAgPGphY29iX3VwaG9m
ZkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NzUwOC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5k
ZXggYTIzODVjZGQ3NTkxNGUyYWRiMjY3YjFjZWU0NGE5MDEzZTNiODE3MS4uYWFlY2ViMzUzOTVk
ZTAyNjQ1N2QzODNjYzFlOThmNzY1Njg0MzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRl
ICJQbHVnaW5WaWV3QmFzZS5oIgogI2luY2x1ZGUgIlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCisjaW5jbHVkZSAiUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgog
I2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1l
bnRQYXJzZXIuaCIKQEAgLTU3NSw2ICs1NzYsOSBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0Q29udHJv
bGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGRJZ25vcmluZ0V4Y2VwdGlvbihET01XcmFwcGVyVwog
CiBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxk
KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKIHsKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5pc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKCkgJiYgbV9mcmFtZS5pc01haW5GcmFtZSgp
ICYmICFtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4oKSkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworCiAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgZ2VzdHVyZUluZGljYXRvcihwYXJhbWV0ZXJzLmZvcmNlVXNlckdlc3R1cmUgPT0gRm9yY2VV
c2VyR2VzdHVyZTo6WWVzID8gT3B0aW9uYWw8UHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGU+KFBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSkgOiBXVEY6Om51bGxvcHQpOwogCiAgICAgaWYgKCFjYW5FeGVj
dXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkgfHwgaXNQYXVzZWQoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNWM4YWJiNjFlMzBiNzBiODJj
ODZmZjg1MmU2MjcxOTRhNmNkYmVjYy4uMjc2Yjc0ZjYwMjM3NTdiMjBhZDIwMzQ3Y2IwMDQwNmJj
OTE1MzczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTM3OSw2ICszNzksOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgQWxsb3dzQ29u
dGVudEphdmFTY3JpcHQgYWxsb3dzQ29udGVudEphdmFTY3JpcHRGcm9tTW9zdFJlY2VudE5hdmln
YXRpb24oKSBjb25zdCB7IHJldHVybiBBbGxvd3NDb250ZW50SmF2YVNjcmlwdDo6WWVzOyB9CisK
KyAgICB2aXJ0dWFsIGJvb2wgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpIHsgcmV0dXJu
IGZhbHNlOyB9CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKaW5kZXggMTY3ZjdlYjMwMzhlM2RkYmRlNzU3YzBhZGY1NjkwNzM2NTBlZDg1OS4uMGYyNDY2
ZDU1MGNjOTFjOGYzOTVjNTI1ZGE2ZDllODNiOGYwZjQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
QEAgLTYyMiw2ICs2MjIsOSBAQCB2b2lkIEZyYW1lOjppbmplY3RVc2VyU2NyaXB0cyhVc2VyU2Ny
aXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lKQogCiB2b2lkIEZyYW1lOjppbmplY3RVc2Vy
U2NyaXB0SW1tZWRpYXRlbHkoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29uc3QgVXNlclNjcmlw
dCYgc2NyaXB0KQogeworICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoKSAmJiBpc01haW5GcmFtZSgpICYm
ICFsb2FkZXIoKS5jbGllbnQoKS5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKICAg
ICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDE0MjAxMWZiYjNlMzZl
NmJjOWJmZjUxODNmNmFmYjU2YzczYzRmOWYuLmQ2YjNkM2FkMTQ5OTUwNjBmMTNhYjgzMzljZTA2
OGRmOTkxYjU3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0zNTUsNiArMzU1LDE2IEBAIC0gKHZvaWQpX3NldExhcmdl
SW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDooQk9PTClfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdF
bmFibGVkCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJs
ZWQoX2xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZCk7CiB9CiAKKy0gKEJPT0wpX2luQXBw
QnJvd3NlclByaXZhY3lFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+aXNJbkFw
cEJyb3dzZXJQcml2YWN5RW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRJbkFwcEJyb3dzZXJQ
cml2YWN5RW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRJc0lu
QXBwQnJvd3NlclByaXZhY3lFbmFibGVkKGVuYWJsZWQpOworfQorCiAtIChCT09MKV9hbmltYXRl
ZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5h
bmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXgg
MzA4NzM1OWZiNjU4ZDg5MDY5NGE0OGVmZTY3YzkwNmYyNTkyNTM3OC4uNGMwMjI4MGY2ZmY4ZWMw
MzA5NDMxMTFkODhhMTlkY2E5NGNhNzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTc3LDYgKzc3
LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3Ip
IHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkRHJhd2luZ0Vu
YWJsZWQ6KSBCT09MIF9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2luZ0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ6
KSBCT09MIF9sYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOikgQk9PTCBfaW5BcHBCcm93c2VyUHJpdmFj
eUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFuaW1hdGVkSW1hZ2VBc3lu
Y0RlY29kaW5nRW5hYmxlZDopIEJPT0wgX2FuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkOikgQk9PTCBfdGV4
dEF1dG9zaXppbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAu
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3VicGl4ZWxBbnRpYWxpYXNl
ZExheWVyVGV4dEVuYWJsZWQ6KSBCT09MIF9zdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRjYjBkY2RjY2FmNjA2ZDYzNjVkNDg2Mjk0ODhm
ODA2M2RiZjg2YTkuLjY0NjM4ZGZhOGU0ZjY5NmUyYjZiMzAxMzIyNjEyYWQ4ZjY2MWJiN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTk1MSw2ICsxOTUxLDE1IEBAIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbmlzaGVkTG9hZGluZ0FwcGxpY2F0aW9uTWFuaWZl
c3QodWludDY0X3QgY2FsbGJhY2tJCiB9CiAjZW5kaWYgLy8gRU5BQkxFKEFQUExJQ0FUSU9OX01B
TklGRVNUKQogCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojppc05hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluKCkKK3sKKyAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAg
IGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiB3
ZWJQYWdlLT5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCkgPT0gTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW46OlllczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBQ
UkVGSVhfUEFSQU1FVEVSUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBkYjg4MTk4
NTA0YWYzNjY3M2MwN2I5ZWIyMjc4NTIxY2MyNGQ2MGM2Li5mYWU3OWNhNzUzNDBiOWZhZjhiMjFh
NTMxN2ZlMGM2NThjN2E4MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjg5
LDYgKzI4OSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKICAgICBPcHRpb25hbDxGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXI+IG1f
ZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyOwogI2VuZGlmCisKKyAgICBib29s
IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSBmaW5hbDsKIH07CiAKIC8vIEFzIGxvbmcg
YXMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCBleGlzdHMgaW4gV2ViQ29yZSwgdGhpcyBjYW4gcmV0
dXJuIDAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGQ5MDNjZTVlOTQzOTVlNjFlZDkxYmMwYjEyYzNjM2EwMTI5ZWZiN2YuLjJhOWI0NzhhZWU3
NDlhODEyNWM0ZGQwOGExOGJmMjNjODRkOWNiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDM1LDYgKzM0MzUsMTEgQEAgdm9pZCBXZWJQ
YWdlOjpydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiBmcmFtZSwgUnVuSmF2YVNjcmlwdFBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXIKIAogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNj
cmlwdFZhbHVlQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgZGV0YWlscywgY2FsbGJhY2tJRCkpOwog
ICAgIH07CisgICAgCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCgpICYmIGZyYW1lLT5pc01haW5GcmFt
ZSgpICYmIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSA9PSBOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbjo6Tm8pIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
Y3JpcHRWYWx1ZUNhbGxiYWNrKHsgfSwgRXhjZXB0aW9uRGV0YWlscyB7ICJVbmFibGUgdG8gZXhl
Y3V0ZSBKYXZhU2NyaXB0Il9zIH0sIGNhbGxiYWNrSUQpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIEpTTG9ja0hvbGRlciBsb2NrKGNvbW1vblZNKCkpOwogICAgIGZyYW1lLT5jb3Jl
RnJhbWUoKS0+c2NyaXB0KCkuZXhlY3V0ZUFzeW5jaHJvbm91c1VzZXJBZ2VudFNjcmlwdEluV29y
bGQod29ybGQtPmNvcmVXb3JsZCgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBXVEZNb3ZlKHJlc29s
dmVGdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDAwNjg2YTA3MzdhYWQ2YWQ5Yzk4ZDgyZDlkYTQ0NmE4MTYzNTE2N2UuLjdmYzQ5
Y2FmZjYxZjQwYzZkMjZjODgyNjBiYTBiNTJiNDRhM2UyNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMi0y
NyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBD
aGVjayBmb3IgbmF2aWdhdGlvbiB0byBhcHAtYm91bmQgZG9tYWluIGR1cmluZyBzY3JpcHQgZXZh
bHVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA4MzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzU2OTMyMT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbTogQWRkZWQuCisgICAg
ICAgICgtW1Rlc3RJbkFwcEJyb3dzZXJTY3JpcHRNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENv
bnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgIChURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2VyLXBy
aXZhY3ktdGVzdC11c2VyLWFnZW50LXNjcmlwdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11
c2VyLXNjcmlwdC5odG1sOiBBZGRlZC4KKwogMjAyMC0wMi0yNiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBTUEkgdG8gcXVlcnkgV0tG
cmFtZUluZm9zIGluIGEgV0tXZWJWaWV3CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYxNTdi
Yzk2MjhlMDIxOTg0MTRlZGYxNDQwZDI2OGZkMWEwNDJjNDAuLjYyNzM0YzBmZjE5YzQ1NTk2Y2Ez
MGVhNTNkMDhlNzc1MWI3ODkxMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTIsNiAr
MjUyLDkgQEAKIAkJNDZGQTJGRUUyMzg0NkNBNTAwMENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGQTJGRUQy
Mzg0NkM5QTAwMENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3BwICovOyB9OwogCQk0NkZBQ0Y3NDIz
RTg4NDIzMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkZBQ0Y3MzIzRTg4M0VFMDBB
OUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCAqLzsgfTsKIAkJNDkwOUVFM0EyRDA5NDgw
Qzg4OTgyRDU2IC8qIE1hcmthYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEVDNzlGMTY4QkU0NTRFNTc5RTQxN0IwNSAvKiBNYXJrYWJsZS5jcHAg
Ki87IH07CisJCTQ5QUVFRjZEMjQwNzM1OUQwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBRUVG
NkIyNDA3MzU4NjAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0gKi87IH07CisJCTQ5
QUVFRjcyMjQwNzNGQzkwMEM4N0U0QyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNl
ci1zY3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OUFFRUY2RTI0MDczRjkzMDBDODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS10ZXN0LXVzZXItc2NyaXB0Lmh0bWwgKi87IH07CisJCTQ5QUVFRjczMjQwNzNGQzkwMEM4
N0U0QyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1hZ2VudC1zY3JpcHQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OUFFRUY2RjI0MDczRjkzMDBDODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVz
ZXItYWdlbnQtc2NyaXB0Lmh0bWwgKi87IH07CiAJCTRCRkRGRkE3MTMxNDc3NkMwMDYxRjI0QiAv
KiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhp
dFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi87IH07CiAJCTUxMDQ3NzcyMUQyOThE
REQwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDQ3NzZGMUQyOThEODUwMDk3
NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5zcWxpdGUzICovOyB9OwogCQk1MTA0Nzc3MzFEMjk4
REREMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNDc3NzAxRDI5OEQ4
NTAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5LnNxbGl0ZTMtc2htICovOyB9OwpAQCAtMTM0
MCw2ICsxMzQzLDggQEAKIAkJCQlGNDVCNjNGQjFGMTk3RjRBMDA5RDM4QjkgLyogaW1hZ2UtbWFw
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMzEyOEE4MTUyMzc2NDEzMzAwRDkwRDQw
IC8qIGltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNzI4M0E5RDAyMkZBNzU0
OTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQk0OUFFRUY3MzI0MDczRkM5MDBDODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJ
CQkJNDlBRUVGNzIyNDA3M0ZDOTAwQzg3RTRDIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3ktdGVz
dC11c2VyLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzNTc4NkNEMjBG
NkEyOTEwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk5MzU3ODZDRTIwRjZBMkExMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzNTc4NkNDMjBGNkEyNzAwMDAwQ0RGQyAvKiBJbmRl
eGVkREIuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODQ4LDYgKzE4NTMs
OSBAQAogCQk0NkZBMkZFRDIzODQ2QzlBMDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQSGVhZGVyTWFwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2IC8qIGJl
Zm9yZXVubG9hZC1zbG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYmVmb3Jl
dW5sb2FkLXNsb3cuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5QUVFRjY4
MjQwNzI3NkYwMEM4N0U0QyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7
IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OUFFRUY2
QjI0MDczNTg2MDBDODdFNEMgLyogSW5BcHBCcm93c2VyUHJpdmFjeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluQXBwQnJvd3NlclByaXZhY3kubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5QUVFRjZFMjQwNzNGOTMwMEM4N0U0QyAvKiBpbi1h
cHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5QUVFRjZGMjQwNzNGOTMwMEM4N0U0
QyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1hZ2VudC1zY3JpcHQuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3Qt
dXNlci1hZ2VudC1zY3JpcHQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRB
NDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gZ2V0VXNlck1lZGlhLmh0bWw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNiAvKiBvbmRldmljZWNo
YW5nZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gb25kZXZpY2VjaGFuZ2UuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMDgsNiArMzAxNiw3IEBACiAJCQkJ
NTEwNDc3NzUxRDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lm1tICovLAogCQkJ
CTUxMTBGQ0VGMUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAog
CQkJCTkzQkNCQzgwMjNDQzZFRTgwMENBMjIyMSAvKiBJREJPYmplY3RTdG9yZUluZm9VcGdyYWRl
VG9WMi5tbSAqLywKKwkJCQk0OUFFRUY2QjI0MDczNTg2MDBDODdFNEMgLyogSW5BcHBCcm93c2Vy
UHJpdmFjeS5tbSAqLywKIAkJCQk1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYgLyogSW5kZXhlZERC
RGF0YWJhc2VQcm9jZXNzS2lsbC5tbSAqLywKIAkJCQlDQUIwRkY1NDIyMzMyQzNBMDA2Q0E1QjAg
LyogSW5kZXhlZERCRmlsZU5hbWUubW0gKi8sCiAJCQkJOTM5OUJBMDEyMzcxMTBBRTAwODM5MkJG
IC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1tICovLApAQCAtMzQ4Nyw2ICszNDk2LDggQEAKIAkJ
CQlGNDVCNjNGQTFGMTk3RjMzMDA5RDM4QjkgLyogaW1hZ2UtbWFwLmh0bWwgKi8sCiAJCQkJMzEy
OEE4MTQyMzc2NDBGRDAwRDkwRDQwIC8qIGltYWdlLmh0bWwgKi8sCiAJCQkJNzI4M0E5Q0UyMkZB
NkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCAqLywKKwkJCQk0OUFF
RUY2RjI0MDczRjkzMDBDODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXIt
YWdlbnQtc2NyaXB0Lmh0bWwgKi8sCisJCQkJNDlBRUVGNkUyNDA3M0Y5MzAwQzg3RTRDIC8qIGlu
LWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLXNjcmlwdC5odG1sICovLAogCQkJCTkzNEZB
NUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLywKIAkJCQk5MzRGQTVD
NjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htICovLAogCQkJCTkzNEZB
NUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi8sCkBAIC00ODQy
LDYgKzQ4NTMsNyBAQAogCQkJCTUxMDQ3Nzc4MUQyOTkyM0IwMDk3NDdFQiAvKiBJREJEZWxldGVS
ZWNvdmVyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMTBGQ0ZBMUUwMUNEQjgwMDZGOEQwQiAv
KiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCQ0JDODMyM0ND
NkYyQTAwQ0EyMjIxIC8qIElEQk9iamVjdFN0b3JlSW5mb1VwZ3JhZGVUb1YyLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDlBRUVGNkQyNDA3MzU5RDAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclByaXZh
Y3kubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUE1ODc4NjFEMjczQUE5MDA0QkE5QUYgLyogSW5k
ZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNBQjBGRjU1
MjIzMzJDNTcwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzOTlCQTA0MjM3MTExNDAwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhMjVhNGVl
ZGZjOGQ0MDUxNjA1NDg1N2U5ZDcyY2JlYzNmYmUwMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0K
QEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIldLV2ViVmlld0NvbmZp
Z3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oPgorI2lt
cG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorCitzdGF0aWMgYm9vbCBpc0RvbmU7CitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCB1c2VyU2Ny
aXB0U291cmNlID0gQCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5qZWN0ZWQgPSB0cnVlIjsKKworQGlu
dGVyZmFjZSBUZXN0SW5BcHBCcm93c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8
V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RJbkFw
cEJyb3dzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcgorCistICh2b2lkKXVzZXJDb250ZW50Q29udHJv
bGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlk
UmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBp
c0RvbmUgPSB0cnVlOworfQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBOb25BcHBCb3VuZERvbWFp
bkZhaWxlZFVzZXJTY3JpcHRzKQoreworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5T
KFtbVGVzdEluQXBwQnJvd3NlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7Cisg
ICAgYXV0byB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdp
dGhTb3VyY2U6dXNlclNjcmlwdFNvdXJjZSBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVj
dGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpZRVNdKTsKKworICAgIFdL
V2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAg
IFtjb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNzYWdlSGFu
ZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEluQXBwQnJvd3NlclByaXZhY3ki
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRJbkFwcEJyb3dzZXJQcml2
YWN5RW5hYmxlZDpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW4t
YXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2NyaXB0IiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworCisgICAgW2NvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRV
c2VyU2NyaXB0SW1tZWRpYXRlbHk6dXNlclNjcmlwdC5nZXQoKV07CisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAid2luZG93LndrVXNlclNjcmlwdEluamVjdGVkIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXN1bHQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX0VRKFlFUywgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5qZWN0ZWQiXSBib29sVmFsdWVdKTsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKCEhZXJyb3IpOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAg
IH1dOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZpc0RvbmUpOworCisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0SW5BcHBC
cm93c2VyUHJpdmFjeUVuYWJsZWQ6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKKworICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBbY29uZmln
dXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTY3JpcHRJbW1lZGlhdGVseTp1
c2VyU2NyaXB0LmdldCgpXTsKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2lu
ZG93LndrVXNlclNjcmlwdEluamVjdGVkIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJs
ZSByZXN1bHQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX0ZB
TFNFKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKCEhZXJyb3IpOworICAgICAgICBpc0Rv
bmUgPSB0cnVlOworICAgIH1dOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworfQorCitURVNUKFdlYktpdCwgTm9uQXBwQm91bmRE
b21haW5GYWlsZWRVc2VyQWdlbnRTY3JpcHRzKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOk5PXTsKKworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisKKyAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3Qt
dXNlci1hZ2VudC1zY3JpcHQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5q
ZWN0ZWQiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgX051bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAq
IF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfRVEoWUVTLCBbW3dlYlZpZXcgb2Jq
ZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy53a1VzZXJTY3JpcHRJbmplY3RlZCJd
IGJvb2xWYWx1ZV0pOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgaXNE
b25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVu
YWJsZWQ6WUVTXTsKKworICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworICAgIFt3ZWJWaWV3MiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlv
bl07CisKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LndrVXNlclNj
cmlwdEluamVjdGVkIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXN1bHQsIE5T
RXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKHJlc3VsdCk7
CisgICAgICAgIEVYUEVDVF9UUlVFKCEhZXJyb3IpOworICAgICAgICBpc0RvbmUgPSB0cnVlOwor
ICAgIH1dOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc0RvbmUpOworfQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaW4tYXBwLWJy
b3dzZXItcHJpdmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2Vy
LWFnZW50LXNjcmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZDUwMjZjMWFkZGJiOTg0YTNjMmM1ZGEw
YzljYmExZDk4OGViNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLWFnZW50LXNj
cmlwdC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgd2luZG93LndrVXNlclNjcmlwdEluamVjdGVkID0gdHJ1ZTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pbi1hcHAt
YnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2Ny
aXB0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0MWE0ZjY1NWNkYjQ2NTgzNWJiYzkyZWI2Y2FiNDEwNDAw
NTk2NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2NyaXB0Lmh0bWwKQEAgLTAs
MCArMSw1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SW5BcHBCcm93c2VyUHJpdmFjeS5wb3N0TWVzc2Fn
ZSgiZG9uZSIpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391896</attachid>
            <date>2020-02-27 12:17:51 -0800</date>
            <delta_ts>2020-03-02 18:05:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208319-20200227121750.patch</filename>
            <type>text/plain</type>
            <size>23734</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDExNTIxNjNmMWU0YTU2
ZmMzOWMzNjQ0ZjA4OTBjMjMwNjkyMWMxMy4uZGYxN2EyM2I4MWFkMzJiMTE2ZDg2ZWI2MWQ2NzMw
Njk1MzhlYmM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTI3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNrIGZv
ciBuYXZpZ2F0aW9uIHRvIGFwcC1ib3VuZCBkb21haW4gZHVyaW5nIHNjcmlwdCBldmFsdWF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzMTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NTY5MzIxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0
SW5Xb3JsZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW5qZWN0VXNlclNj
cmlwdEltbWVkaWF0ZWx5KToKKwogMjAyMC0wMi0yNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgogCiAgICAgICAgIE1lZGlhUmVzb3VyY2VMb2FkZXIgb2JqZWN0cyBhcmUgbGVha2lu
ZyBvbiByZWRkaXQuY29tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzMWVlYjY3MWQ4YjZjZTJlN2FkMTQwZjc1NDI1
YmU3ZDdjZmZkZWYuLmUwNTkxNGU3MzhiMjQ0MWQzZGE3NmFmMGRjODlmYmM5MTc5OTk0YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDItMjcgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hlY2sgZm9yIG5hdmlnYXRpb24gdG8g
YXBwLWJvdW5kIGRvbWFpbiBkdXJpbmcgc2NyaXB0IGV2YWx1YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODMxOQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTc1NjkzMjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAg
ICAgICgtW1dLUHJlZmVyZW5jZXMgX2luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkXSk6CisgICAg
ICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOl0pOgor
ICAgICAgICBBZGQgU1BJIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cnVuSmF2YVNjcmlwdCk6CisKIDIwMjAtMDItMjcgIFRpbSBNb25y
b2UgIDx0aW1tb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBHUFUgUHJvY2VzcyBzdXBwb3J0
IGZvciBhY2Nlc3NMb2cgZXQgYWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGEyMzg1Y2RkNzU5MTRlMmFkYjI2N2IxY2VlNDRhOTAx
M2UzYjgxNzEuLmFhZWNlYjM1Mzk1ZGUwMjY0NTdkMzgzY2MxZTk4Zjc2NTY4NDM1NDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01
MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJSdW5K
YXZhU2NyaXB0UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3Jp
cHREaXNhbGxvd2VkU2NvcGUuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCkBAIC01NzUsNiArNTc2LDkgQEAgSlND
OjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkSWdub3JpbmdF
eGNlcHRpb24oRE9NV3JhcHBlclcKIAogVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVy
OjpleGVjdXRlU2NyaXB0SW5Xb3JsZChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBSdW5KYXZhU2Ny
aXB0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7CisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCgpICYm
IG1fZnJhbWUuaXNNYWluRnJhbWUoKSAmJiAhbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5pc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCkpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKwog
ICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IocGFyYW1ldGVycy5mb3Jj
ZVVzZXJHZXN0dXJlID09IEZvcmNlVXNlckdlc3R1cmU6OlllcyA/IE9wdGlvbmFsPFByb2Nlc3Np
bmdVc2VyR2VzdHVyZVN0YXRlPihQcm9jZXNzaW5nVXNlckdlc3R1cmUpIDogV1RGOjpudWxsb3B0
KTsKIAogICAgIGlmICghY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpIHx8
IGlzUGF1c2VkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDVjOGFiYjYxZTMwYjcwYjgyYzg2ZmY4NTJlNjI3MTk0YTZjZGJlY2MuLjI3NmI3NGY2MDIz
NzU3YjIwYWQyMDM0N2NiMDA0MDZiYzkxNTM3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNzksNiArMzc5LDkgQEAgcHVibGljOgogI2VuZGlmCiAK
ICAgICB2aXJ0dWFsIEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IGFsbG93c0NvbnRlbnRKYXZhU2Ny
aXB0RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gQWxsb3dzQ29udGVu
dEphdmFTY3JpcHQ6OlllczsgfQorCisgICAgdmlydHVhbCBib29sIGlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4oKSB7IHJldHVybiBmYWxzZTsgfQorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDE2N2Y3ZWIzMDM4ZTNkZGJkZTc1N2MwYWRm
NTY5MDczNjUwZWQ4NTkuLjBmMjQ2NmQ1NTBjYzkxYzhmMzk1YzUyNWRhNmQ5ZTgzYjhmMGY0OTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02MjIsNiArNjIyLDkgQEAgdm9pZCBGcmFtZTo6aW5q
ZWN0VXNlclNjcmlwdHMoVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSkKIAog
dm9pZCBGcmFtZTo6aW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIGNvbnN0IFVzZXJTY3JpcHQmIHNjcmlwdCkKIHsKKyAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
KCkgJiYgaXNNYWluRnJhbWUoKSAmJiAhbG9hZGVyKCkuY2xpZW50KCkuaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbigpKQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvKiBkb2N1bWVudCA9
IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bQppbmRleCAxNDIwMTFmYmIzZTM2ZTZiYzliZmY1MTgzZjZhZmI1NmM3M2M0ZjlmLi5kNmIzZDNh
ZDE0OTk1MDYwZjEzYWI4MzM5Y2UwNjhkZjk5MWI1NzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMzU1LDYgKzM1NSwx
NiBAQCAtICh2b2lkKV9zZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ6KEJPT0wpX2xh
cmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZAogICAgIF9wcmVmZXJlbmNlcy0+c2V0TGFyZ2VJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkKF9sYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQp
OwogfQogCistIChCT09MKV9pbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZAoreworICAgIHJldHVy
biBfcHJlZmVyZW5jZXMtPmlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoKTsKK30KKworLSAo
dm9pZClfc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAg
IF9wcmVmZXJlbmNlcy0+c2V0SXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZChlbmFibGVkKTsK
K30KKwogLSAoQk9PTClfYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkCiB7CiAgICAg
cmV0dXJuIF9wcmVmZXJlbmNlcy0+YW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oCmluZGV4IDMwODczNTlmYjY1OGQ4OTA2OTRhNDhlZmU2N2M5MDZmMjU5
MjUzNzguLjRjMDIyODBmNmZmOGVjMDMwOTQzMTExZDg4YTE5ZGNhOTRjYTc5NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oCkBAIC03Nyw2ICs3Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9X
S0VkaXRhYmxlTGlua0JlaGF2aW9yKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOikgQk9PTCBfYWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQ6KSBCT09M
IF9kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFn
ZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDopIEJP
T0wgX2luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRBbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ6KSBCT09MIF9hbmltYXRlZElt
YWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwg
aW9zKDEwLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRBdXRvc2l6
aW5nRW5hYmxlZDopIEJPT0wgX3RleHRBdXRvc2l6aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFN1YnBpeGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkOikgQk9PTCBfc3VicGl4ZWxB
bnRpYWxpYXNlZExheWVyVGV4dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiks
IGlvcygxMC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0Y2IwZGNk
Y2NhZjYwNmQ2MzY1ZDQ4NjI5NDg4ZjgwNjNkYmY4NmE5Li42NDYzOGRmYThlNGY2OTZlMmI2YjMw
MTMyMjYxMmFkOGY2NjFiYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAg
LTE5NTEsNiArMTk1MSwxNSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExv
YWRpbmdBcHBsaWNhdGlvbk1hbmlmZXN0KHVpbnQ2NF90IGNhbGxiYWNrSQogfQogI2VuZGlmIC8v
IEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKIAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpCit7CisgICAgYXV0byogd2ViUGFnZSA9
IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICByZXR1cm4gd2ViUGFnZS0+aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bigpID09IE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOjpZZXM7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjdW5kZWYgUFJFRklYX1BBUkFNRVRFUlMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggZGI4ODE5ODUwNGFmMzY2NzNjMDdiOWViMjI3ODUyMWNjMjRkNjBjNi4u
ZmFlNzljYTc1MzQwYjlmYWY4YjIxYTUzMTdmZTBjNjU4YzdhODFjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTI4OSw2ICsyODksOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgT3B0aW9uYWw8RnJhbWVTcGVjaWZpY1N0b3Jh
Z2VBY2Nlc3NJZGVudGlmaWVyPiBtX2ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzSWRlbnRpZmll
cjsKICNlbmRpZgorCisgICAgYm9vbCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCkgZmlu
YWw7CiB9OwogCiAvLyBBcyBsb25nIGFzIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgZXhpc3RzIGlu
IFdlYkNvcmUsIHRoaXMgY2FuIHJldHVybiAwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1Nzk5MzYyZjk3NTJjMDcyYzY3NmI2YjI0MTE5Zjc1
ZDcxODY3NTMzLi4wZDg5NDExY2MyNGIxZDMwNGFlMWQ4YjMzOWUzMzE0MWFjNzVmMjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzQzNyw2
ICszNDM3LDExIEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdChXZWJGcmFtZSogZnJhbWUs
IFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVyCiAKICAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTY3JpcHRWYWx1ZUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGRl
dGFpbHMsIGNhbGxiYWNrSUQpKTsKICAgICB9OworICAgIAorICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQo
KSAmJiBmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
KCkgPT0gTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46Ok5vKSB7CisgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyaXB0VmFsdWVDYWxsYmFjayh7IH0sIEV4Y2VwdGlvbkRl
dGFpbHMgeyAiVW5hYmxlIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCJfcyB9LCBjYWxsYmFja0lEKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayhjb21tb25W
TSgpKTsKICAgICBmcmFtZS0+Y29yZUZyYW1lKCktPnNjcmlwdCgpLmV4ZWN1dGVBc3luY2hyb25v
dXNVc2VyQWdlbnRTY3JpcHRJbldvcmxkKHdvcmxkLT5jb3JlV29ybGQoKSwgV1RGTW92ZShwYXJh
bWV0ZXJzKSwgV1RGTW92ZShyZXNvbHZlRnVuY3Rpb24pKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZjRiZjI2ODY2MDdmZGEwZGRhMzNkZDcx
MDk3YmQ3Zjk5OTYwZWUwLi4xN2M0OTk5NjQzMjNhMDEzNTlmY2Y4ZjUyNTIyZmY5ZTgyZTU2Y2Q5
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjAtMDItMjcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBh
cHBsZS5jb20+CisKKyAgICAgICAgQ2hlY2sgZm9yIG5hdmlnYXRpb24gdG8gYXBwLWJvdW5kIGRv
bWFpbiBkdXJpbmcgc2NyaXB0IGV2YWx1YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc1
NjkzMjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclBy
aXZhY3kubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0SW5BcHBCcm93c2VyU2NyaXB0TWVzc2Fn
ZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0p
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9pbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1hZ2VudC1zY3JpcHQuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pbi1hcHAt
YnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbDogQWRkZWQuCisKIDIwMjAtMDIt
MjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBBZGQgU1BJIHRvIHF1ZXJ5IFdLRnJhbWVJbmZvcyBpbiBhIFdLV2ViVmlldwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzOTRjYTk4N2JjMmU3ZjY0ZDMxMGVmZTM0ODc1ZWNmNDdmYmViNjU4
Li5lZGViOGM4ZWFmNjM0OTBhMDE2ZjgzNjRiYTUyZTc4YjcxNGYxNWVlIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjUyLDYgKzI1Miw5IEBACiAJCTQ2RkEyRkVFMjM4NDZDQTUwMDBDQ0Iw
QyAvKiBIVFRQSGVhZGVyTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2RkEyRkVEMjM4NDZDOUEwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNw
cCAqLzsgfTsKIAkJNDZGQUNGNzQyM0U4ODQyMzAwQTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZGQUNGNzMyM0U4ODNFRTAwQTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgKi87
IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4MkQ1NiAvKiBNYXJrYWJsZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQzc5RjE2OEJFNDU0RTU3OUU0
MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9OworCQk0OUFFRUY2RDI0MDczNTlEMDBDODdFNEMg
LyogSW5BcHBCcm93c2VyUHJpdmFjeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5QUVFRjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQ
cml2YWN5Lm1tICovOyB9OworCQk0OUFFRUY3MjI0MDczRkM5MDBDODdFNEMgLyogaW4tYXBwLWJy
b3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBRUVGNkUyNDA3M0Y5MzAwQzg3RTRD
IC8qIGluLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLXNjcmlwdC5odG1sICovOyB9Owor
CQk0OUFFRUY3MzI0MDczRkM5MDBDODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0
LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDlBRUVGNkYyNDA3M0Y5MzAwQzg3RTRDIC8qIGluLWFwcC1i
cm93c2VyLXByaXZhY3ktdGVzdC11c2VyLWFnZW50LXNjcmlwdC5odG1sICovOyB9OwogCQk0QkZE
RkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2
MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICov
OyB9OwogCQk1MTA0Nzc3MjFEMjk4REREMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3Fs
aXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTA0Nzc2RjFEMjk4RDg1MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMyAq
LzsgfTsKIAkJNTEwNDc3NzMxRDI5OERERDAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5LnNx
bGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMDQ3NzcwMUQyOThEODUwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5zcWxp
dGUzLXNobSAqLzsgfTsKQEAgLTEzNDAsNiArMTM0Myw4IEBACiAJCQkJRjQ1QjYzRkIxRjE5N0Y0
QTAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTMx
MjhBODE1MjM3NjQxMzMwMEQ5MEQ0MCAvKiBpbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTcyODNBOUQwMjJGQTc1NDkwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNDlBRUVGNzMyNDA3M0ZDOTAwQzg3RTRD
IC8qIGluLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLWFnZW50LXNjcmlwdC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQ5QUVFRjcyMjQwNzNGQzkwMEM4N0U0QyAvKiBpbi1h
cHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8qIElu
ZGV4ZWREQi5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZDQzIw
RjZBMjcwMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2Vz
ICovLApAQCAtMTg0Nyw2ICsxODUyLDkgQEAKIAkJNDZFQkQ4NDYyMzcyMzFFNjAwMjIzQTZFIC8q
IFJlc3RvcmVTY3JvbGxQb3NpdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJlc3RvcmVTY3JvbGxQb3NpdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZGQTJGRUQyMzg0NkM5QTAwMENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUEhlYWRlck1hcC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkFDRjczMjNFODgzRUUwMEE5RUJDNiAvKiBi
ZWZvcmV1bmxvYWQtc2xvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJlZm9y
ZXVubG9hZC1zbG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OUFFRUY2
QjI0MDczNTg2MDBDODdFNEMgLyogSW5BcHBCcm93c2VyUHJpdmFjeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluQXBwQnJvd3NlclByaXZhY3kubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5QUVFRjZFMjQwNzNGOTMwMEM4N0U0QyAvKiBpbi1h
cHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5QUVFRjZGMjQwNzNGOTMwMEM4N0U0
QyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1hZ2VudC1zY3JpcHQuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3Qt
dXNlci1hZ2VudC1zY3JpcHQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRB
NDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gZ2V0VXNlck1lZGlhLmh0bWw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNiAvKiBvbmRldmljZWNo
YW5nZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gb25kZXZpY2VjaGFuZ2UuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwMDYsNiArMzAxNCw3IEBACiAJCQkJ
NTEwNDc3NzUxRDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lm1tICovLAogCQkJ
CTUxMTBGQ0VGMUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAog
CQkJCTkzQkNCQzgwMjNDQzZFRTgwMENBMjIyMSAvKiBJREJPYmplY3RTdG9yZUluZm9VcGdyYWRl
VG9WMi5tbSAqLywKKwkJCQk0OUFFRUY2QjI0MDczNTg2MDBDODdFNEMgLyogSW5BcHBCcm93c2Vy
UHJpdmFjeS5tbSAqLywKIAkJCQk1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYgLyogSW5kZXhlZERC
RGF0YWJhc2VQcm9jZXNzS2lsbC5tbSAqLywKIAkJCQlDQUIwRkY1NDIyMzMyQzNBMDA2Q0E1QjAg
LyogSW5kZXhlZERCRmlsZU5hbWUubW0gKi8sCiAJCQkJOTM5OUJBMDEyMzcxMTBBRTAwODM5MkJG
IC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1tICovLApAQCAtMzQ4NSw2ICszNDk0LDggQEAKIAkJ
CQlGNDVCNjNGQTFGMTk3RjMzMDA5RDM4QjkgLyogaW1hZ2UtbWFwLmh0bWwgKi8sCiAJCQkJMzEy
OEE4MTQyMzc2NDBGRDAwRDkwRDQwIC8qIGltYWdlLmh0bWwgKi8sCiAJCQkJNzI4M0E5Q0UyMkZB
NkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCAqLywKKwkJCQk0OUFF
RUY2RjI0MDczRjkzMDBDODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXIt
YWdlbnQtc2NyaXB0Lmh0bWwgKi8sCisJCQkJNDlBRUVGNkUyNDA3M0Y5MzAwQzg3RTRDIC8qIGlu
LWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLXNjcmlwdC5odG1sICovLAogCQkJCTkzNEZB
NUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLywKIAkJCQk5MzRGQTVD
NjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htICovLAogCQkJCTkzNEZB
NUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi8sCkBAIC00ODQw
LDYgKzQ4NTEsNyBAQAogCQkJCTUxMDQ3Nzc4MUQyOTkyM0IwMDk3NDdFQiAvKiBJREJEZWxldGVS
ZWNvdmVyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMTBGQ0ZBMUUwMUNEQjgwMDZGOEQwQiAv
KiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCQ0JDODMyM0ND
NkYyQTAwQ0EyMjIxIC8qIElEQk9iamVjdFN0b3JlSW5mb1VwZ3JhZGVUb1YyLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDlBRUVGNkQyNDA3MzU5RDAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclByaXZh
Y3kubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUE1ODc4NjFEMjczQUE5MDA0QkE5QUYgLyogSW5k
ZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNBQjBGRjU1
MjIzMzJDNTcwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzOTlCQTA0MjM3MTExNDAwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhMjVhNGVl
ZGZjOGQ0MDUxNjA1NDg1N2U5ZDcyY2JlYzNmYmUwMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0K
QEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIldLV2ViVmlld0NvbmZp
Z3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oPgorI2lt
cG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorCitzdGF0aWMgYm9vbCBpc0RvbmU7CitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCB1c2VyU2Ny
aXB0U291cmNlID0gQCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5qZWN0ZWQgPSB0cnVlIjsKKworQGlu
dGVyZmFjZSBUZXN0SW5BcHBCcm93c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8
V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RJbkFw
cEJyb3dzZXJTY3JpcHRNZXNzYWdlSGFuZGxlcgorCistICh2b2lkKXVzZXJDb250ZW50Q29udHJv
bGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlk
UmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBp
c0RvbmUgPSB0cnVlOworfQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBOb25BcHBCb3VuZERvbWFp
bkZhaWxlZFVzZXJTY3JpcHRzKQoreworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5T
KFtbVGVzdEluQXBwQnJvd3NlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7Cisg
ICAgYXV0byB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdp
dGhTb3VyY2U6dXNlclNjcmlwdFNvdXJjZSBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVj
dGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpZRVNdKTsKKworICAgIFdL
V2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAg
IFtjb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNzYWdlSGFu
ZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEluQXBwQnJvd3NlclByaXZhY3ki
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRJbkFwcEJyb3dzZXJQcml2
YWN5RW5hYmxlZDpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW4t
YXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2NyaXB0IiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworCisgICAgW2NvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRV
c2VyU2NyaXB0SW1tZWRpYXRlbHk6dXNlclNjcmlwdC5nZXQoKV07CisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAid2luZG93LndrVXNlclNjcmlwdEluamVjdGVkIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXN1bHQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX0VRKFlFUywgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5qZWN0ZWQiXSBib29sVmFsdWVdKTsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKCEhZXJyb3IpOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAg
IH1dOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZpc0RvbmUpOworCisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0SW5BcHBC
cm93c2VyUHJpdmFjeUVuYWJsZWQ6WUVTXTsKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKKworICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBbY29uZmln
dXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTY3JpcHRJbW1lZGlhdGVseTp1
c2VyU2NyaXB0LmdldCgpXTsKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2lu
ZG93LndrVXNlclNjcmlwdEluamVjdGVkIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJs
ZSByZXN1bHQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX0ZB
TFNFKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKCEhZXJyb3IpOworICAgICAgICBpc0Rv
bmUgPSB0cnVlOworICAgIH1dOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworfQorCitURVNUKFdlYktpdCwgTm9uQXBwQm91bmRE
b21haW5GYWlsZWRVc2VyQWdlbnRTY3JpcHRzKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOk5PXTsKKworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisKKyAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3Qt
dXNlci1hZ2VudC1zY3JpcHQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5q
ZWN0ZWQiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgX051bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAq
IF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfRVEoWUVTLCBbW3dlYlZpZXcgb2Jq
ZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy53a1VzZXJTY3JpcHRJbmplY3RlZCJd
IGJvb2xWYWx1ZV0pOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgaXNE
b25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0SW5BcHBCcm93c2VyUHJpdmFjeUVu
YWJsZWQ6WUVTXTsKKworICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworICAgIFt3ZWJWaWV3MiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlv
bl07CisKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LndrVXNlclNj
cmlwdEluamVjdGVkIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXN1bHQsIE5T
RXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKHJlc3VsdCk7
CisgICAgICAgIEVYUEVDVF9UUlVFKCEhZXJyb3IpOworICAgICAgICBpc0RvbmUgPSB0cnVlOwor
ICAgIH1dOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc0RvbmUpOworfQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaW4tYXBwLWJy
b3dzZXItcHJpdmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2Vy
LWFnZW50LXNjcmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmZDUwMjZjMWFkZGJiOTg0YTNjMmM1ZGEw
YzljYmExZDk4OGViNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLWFnZW50LXNj
cmlwdC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgICAgd2luZG93LndrVXNlclNjcmlwdEluamVjdGVkID0gdHJ1ZTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pbi1hcHAt
YnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2Ny
aXB0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE0MWE0ZjY1NWNkYjQ2NTgzNWJiYzkyZWI2Y2FiNDEwNDAw
NTk2NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2NyaXB0Lmh0bWwKQEAgLTAs
MCArMSw1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SW5BcHBCcm93c2VyUHJpdmFjeS5wb3N0TWVzc2Fn
ZSgiZG9uZSIpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392233</attachid>
            <date>2020-03-02 18:05:53 -0800</date>
            <delta_ts>2020-03-03 09:08:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208319-20200302180552.patch</filename>
            <type>text/plain</type>
            <size>68619</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWNjYzkwMTM0NmRkMGFk
MDk5Y2Q4ODlmNzRiYTY1ZmQ2MGNjNWFhMC4uNGMyZWUwMDAyNDk1NzAxOTk4MTc0NGNhZTcyZDRj
Zjg4NWQ5N2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAzLTAyICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNrIGZv
ciBuYXZpZ2F0aW9uIHRvIGFwcC1ib3VuZCBkb21haW4gZHVyaW5nIHNjcmlwdCBldmFsdWF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzMTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NTY5MzIxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0
SW5Xb3JsZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW5qZWN0VXNlclNj
cmlwdEltbWVkaWF0ZWx5KToKKwogMjAyMC0wMy0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFBhdGg6OlBhdGgoY29uc3QgUGF0aCYpIGFu
ZCBQYXRoOjpvcGVyYXRvcj0oY29uc3QgUGF0aCYpIGNoZWFwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ4MzNmY2Ni
MWU1NjQ2N2YzNzMzMTNlYTY0ODVjYzQ5M2E0YTVkNjQuLjU0MDEwMjEyN2UwZDYwZjRmNmQzZGRh
OTZmZDVjY2Y4ZWZjNDgzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjAtMDMtMDIg
IEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hl
Y2sgZm9yIG5hdmlnYXRpb24gdG8gYXBwLWJvdW5kIGRvbWFpbiBkdXJpbmcgc2NyaXB0IGV2YWx1
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc1NjkzMjE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTXVjaCBvZiB0aGlzIHBhdGNoIGlzIHBh
c3NpbmcgYXJvdW5kIGEgbmV3IHBhcmFtZXRlciwKKyAgICAgICAgbV9oYXNOYXZpZ2F0ZWRBd2F5
RnJvbUFwcEJvdW5kRG9tYWluLCB0byB0aGUgV2ViIENvbnRlbnQgUHJvY2VzcyB0bworICAgICAg
ICBpbmRpY2F0ZSBjb25kaXRpb25zIGZvciBzY3JpcHQgZXZhbHVhdGlvbi4gCisKKyAgICAgICAg
KiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFyYW1l
dGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1BvbGljeURlY2lzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlBvbGljeURlY2lzaW9uOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQb2xpY3lEZWNpc2lvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgX2luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkXSk6CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgX3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9zZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlBy
b3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0
V2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omxv
YWREYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZp
Z2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRJc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpz
ZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luY1NoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91
bmREb21haW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6aGFzTmF2aWdh
dGVkQXdheUZyb21BcHBCb3VuZERvbWFpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YUltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpsb2FkRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRB
bHRlcm5hdGVIVE1MKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnVuSmF2YVNjcmlwdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW5U
ZXN0aW5nKToKKyAgICAgICAgQSBuZXcgY2FsbCB0byBtYW51YWxseSBzZXQgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiB0byBtaW1pYworICAgICAgICB0ZXN0IGNhc2VzIGluIHdoaWNoIGEg
d2ViVmlldyBzd2l0Y2hlcyBiZXR3ZWVuIGFwcC1ib3VuZCBhbmQKKyAgICAgICAgbm9uLWFwcC1i
b3VuZCBkb21haW5zLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldElzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4pOiBEZWxldGVkLgorICAgICAgICBNb3ZlZCB0byBoZWFkZXIgZmls
ZSBiZWNhdXNlIGl0cyBzZXR0aW5nIGEgcHJpdmF0ZSB2YXJpYWJsZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2V0SGFzTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAt
MDMtMDIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnQgdGhlIHJlbW90ZSBJbWFnZUJ1ZmZlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBhMjM4NWNkZDc1OTE0ZTJh
ZGIyNjdiMWNlZTQ0YTkwMTNlM2I4MTcxLi42MmU4ZDBiYjllZTE4MGUyNzQ3NjRlY2QyMTdhMjBk
MWNjMDRkZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgi
CiAjaW5jbHVkZSAiUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291
cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgpAQCAtNTc1
LDYgKzU3Niw5IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0
SW5Xb3JsZElnbm9yaW5nRXhjZXB0aW9uKERPTVdyYXBwZXJXCiAKIFZhbHVlT3JFeGNlcHRpb24g
U2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCwgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogeworICAgIGlmIChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzSW5BcHBCcm93c2VyUHJp
dmFjeUVuYWJsZWQoKSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5oYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKCkpCisgICAgICAg
IHJldHVybiBqc051bGwoKTsKKwogICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRp
Y2F0b3IocGFyYW1ldGVycy5mb3JjZVVzZXJHZXN0dXJlID09IEZvcmNlVXNlckdlc3R1cmU6Olll
cyA/IE9wdGlvbmFsPFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlPihQcm9jZXNzaW5nVXNlckdl
c3R1cmUpIDogV1RGOjpudWxsb3B0KTsKIAogICAgIGlmICghY2FuRXhlY3V0ZVNjcmlwdHMoQWJv
dXRUb0V4ZWN1dGVTY3JpcHQpIHx8IGlzUGF1c2VkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDVjOGFiYjYxZTMwYjcwYjgyYzg2ZmY4NTJlNjI3MTk0
YTZjZGJlY2MuLmE5NjhhYzhlOGQ3NzcyYTZkM2RlZWM2NzFiYjQ2ZWZhODJkYjBjYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNzksNiArMzc5LDkg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0
IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3Qg
eyByZXR1cm4gQWxsb3dzQ29udGVudEphdmFTY3JpcHQ6OlllczsgfQorCisgICAgdmlydHVhbCBi
b29sIGhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4oKSB7IHJldHVybiBmYWxzZTsg
fQorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4
IDQ2MGU0MWQzMzNiNzdmNDZhOGM2NDI2MWZlOTNmNjljMmVjMzJiNzcuLjM1NjdiYTViM2Q5YWVj
NmEwZTNhZGYyMTc5N2RlNTgwNjc3MzhiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02MjIs
NiArNjIyLDkgQEAgdm9pZCBGcmFtZTo6aW5qZWN0VXNlclNjcmlwdHMoVXNlclNjcmlwdEluamVj
dGlvblRpbWUgaW5qZWN0aW9uVGltZSkKIAogdm9pZCBGcmFtZTo6aW5qZWN0VXNlclNjcmlwdElt
bWVkaWF0ZWx5KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIGNvbnN0IFVzZXJTY3JpcHQmIHNjcmlw
dCkKIHsKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5p
c0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKCkgJiYgaXNNYWluRnJhbWUoKSAmJiBsb2FkZXIo
KS5jbGllbnQoKS5oYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKCkpCisgICAgICAg
IHJldHVybjsKKwogICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKICAgICBp
ZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFy
YW1ldGVycy5jcHAKaW5kZXggMjg5NjhlZGNhNmNhOTI5YWUxZGJlYzMwNjFjMmU0YzU5NDMyNDBl
OS4uNmU1Njk5YTZmMGE3OGRkOGI4YzA4MTM2MjY0YWUyMTNjMjg3ZjhmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcApAQCAtNTcsNiArNTcsNyBAQCB2b2lkIExvYWRQ
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIuZW5jb2RlRW51bShsb2NrQmFja0ZvcndhcmRMaXN0KTsKICAgICBlbmNvZGVyIDw8IGNsaWVu
dFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKICAgICBlbmNvZGVyIDw8IGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW47CisgICAgZW5jb2RlciA8PCBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJv
dW5kRG9tYWluOwogCiAgICAgcGxhdGZvcm1FbmNvZGUoZW5jb2Rlcik7CiB9CkBAIC0xMzcsNiAr
MTM4LDkgQEAgYm9vbCBMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgTG9hZFBhcmFtZXRlcnMmIGRhdGEpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLmlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLmhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91
bmREb21haW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCiAgICAgaWYgKCFwbGF0Zm9y
bURlY29kZShkZWNvZGVyLCBkYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAppbmRleCAyNjEyMjM2OWUxYzIzNDZmNzlmZDY2Nzhj
YWQ2MDU1MGVjOGIyYTQ3Li5hZjRkNDFlMmFlNjAwYmI4MDQ2NjIzNTU2NzU3NDlhNDhhMmQ1MGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTcxLDcgKzcxLDggQEAg
c3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0
IGxvY2tCYWNrRm9yd2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpObyB9
OwogICAgIFN0cmluZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CiAgICAgTmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiB7IE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluOjpObyB9OwotICAgIAorICAgIE5hdmlnYXRlZEF3YXlGcm9t
QXBwQm91bmREb21haW4gaGFzTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiB7IE5hdmln
YXRlZEF3YXlGcm9tQXBwQm91bmREb21haW46Ok5vIH07CisKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBkYXRhRGV0ZWN0aW9uQ29udGV4dDsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUG9saWN5RGVjaXNpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1BvbGljeURlY2lzaW9uLmgKaW5kZXggNjRmNGUyZDYwMjIwZjY2
NWUyMDBhNTUzZDI3YjVhNzBjYTg0MzZlZS4uZjM5MDRiYTU0YzMyZTgzODdmNjI0YmZhNmRlOWVk
OTc0MjMxNTYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUG9saWN5RGVjaXNp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qb2xpY3lEZWNpc2lvbi5oCkBAIC0zMiwx
MCArMzIsMTIgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluIHsgWWVzLCBObyB9OworZW51bSBjbGFzcyBOYXZpZ2F0ZWRBd2F5RnJv
bUFwcEJvdW5kRG9tYWluIHsgWWVzLCBOb307CiAKIHN0cnVjdCBQb2xpY3lEZWNpc2lvbiB7CiAg
ICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIgeyB9OwogICAgIE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4geyBO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8gfTsKKyAgICBOYXZpZ2F0ZWRBd2F5RnJvbUFw
cEJvdW5kRG9tYWluIGhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4geyBOYXZpZ2F0
ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOjpObyB9OwogICAgIFdlYkNvcmU6OlBvbGljeUFjdGlv
biBwb2xpY3lBY3Rpb24geyBXZWJDb3JlOjpQb2xpY3lBY3Rpb246Oklnbm9yZSB9OwogICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCB7IDAgfTsKICAgICBEb3dubG9hZElEIGRvd25sb2FkSUQgeyAw
IH07CkBAIC00Niw2ICs0OCw3IEBAIHN0cnVjdCBQb2xpY3lEZWNpc2lvbiB7CiAgICAgewogICAg
ICAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CiAgICAgICAgIGVuY29kZXIgPDwgaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbjsKKyAgICAgICAgZW5jb2RlciA8PCBoYXNOYXZpZ2F0ZWRBd2F5
RnJvbUFwcEJvdW5kRG9tYWluOwogICAgICAgICBlbmNvZGVyIDw8IHBvbGljeUFjdGlvbjsKICAg
ICAgICAgZW5jb2RlciA8PCBuYXZpZ2F0aW9uSUQ7CiAgICAgICAgIGVuY29kZXIgPDwgZG93bmxv
YWRJRDsKQEAgLTY0LDYgKzY3LDExIEBAIHN0cnVjdCBQb2xpY3lEZWNpc2lvbiB7CiAgICAgICAg
IGRlY29kZXIgPj4gZGVjb2RlZElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgICAg
IGlmICghZGVjb2RlZElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pCiAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgT3B0aW9uYWw8TmF2aWdhdGVk
QXdheUZyb21BcHBCb3VuZERvbWFpbj4gZGVjb2RlZEhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91
bmREb21haW47CisgICAgICAgIGRlY29kZXIgPj4gZGVjb2RlZEhhc05hdmlnYXRlZEF3YXlGcm9t
QXBwQm91bmREb21haW47CisgICAgICAgIGlmICghZGVjb2RlZEhhc05hdmlnYXRlZEF3YXlGcm9t
QXBwQm91bmREb21haW4pCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAg
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBvbGljeUFjdGlvbj4gZGVjb2RlZFBvbGljeUFjdGlvbjsK
ICAgICAgICAgZGVjb2RlciA+PiBkZWNvZGVkUG9saWN5QWN0aW9uOwpAQCAtODUsNyArOTMsNyBA
QCBzdHJ1Y3QgUG9saWN5RGVjaXNpb24gewogICAgICAgICBpZiAoIWRlY29kZWRXZWJzaXRlUG9s
aWNpZXNEYXRhKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBy
ZXR1cm4ge3sgV1RGTW92ZSgqZGVjb2RlZElkZW50aWZpZXIpLCBXVEZNb3ZlKCpkZWNvZGVkSXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiksIFdURk1vdmUoKmRlY29kZWRQb2xpY3lBY3Rpb24p
LCBXVEZNb3ZlKCpkZWNvZGVkTmF2aWdhdGlvbklEKSwgV1RGTW92ZSgqZGVjb2RlZERvd25sb2Fk
SUQpLCBXVEZNb3ZlKCpkZWNvZGVkV2Vic2l0ZVBvbGljaWVzRGF0YSkgfX07CisgICAgICAgIHJl
dHVybiB7eyBXVEZNb3ZlKCpkZWNvZGVkSWRlbnRpZmllciksIFdURk1vdmUoKmRlY29kZWRJc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKSwgV1RGTW92ZSgqZGVjb2RlZEhhc05hdmlnYXRlZEF3
YXlGcm9tQXBwQm91bmREb21haW4pLCBXVEZNb3ZlKCpkZWNvZGVkUG9saWN5QWN0aW9uKSwgV1RG
TW92ZSgqZGVjb2RlZE5hdmlnYXRpb25JRCksIFdURk1vdmUoKmRlY29kZWREb3dubG9hZElEKSwg
V1RGTW92ZSgqZGVjb2RlZFdlYnNpdGVQb2xpY2llc0RhdGEpIH19OwogICAgIH0KIH07CiAKQEAg
LTEwMSw0ICsxMDksMTIgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6Ok5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViS2l0OjpOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViS2l0OjpOYXZpZ2F0
ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluLAorICAgICAgICBXZWJLaXQ6Ok5hdmlnYXRlZEF3YXlG
cm9tQXBwQm91bmREb21haW46OlllcywKKyAgICAgICAgV2ViS2l0OjpOYXZpZ2F0ZWRBd2F5RnJv
bUFwcEJvdW5kRG9tYWluOjpObworICAgID47Cit9OworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDE0MjAxMWZiYjNl
MzZlNmJjOWJmZjUxODNmNmFmYjU2YzczYzRmOWYuLmQ2YjNkM2FkMTQ5OTUwNjBmMTNhYjgzMzlj
ZTA2OGRmOTkxYjU3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0zNTUsNiArMzU1LDE2IEBAIC0gKHZvaWQpX3NldExh
cmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDooQk9PTClfbGFyZ2VJbWFnZUFzeW5jRGVjb2Rp
bmdFbmFibGVkCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0Vu
YWJsZWQoX2xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZCk7CiB9CiAKKy0gKEJPT0wpX2lu
QXBwQnJvd3NlclByaXZhY3lFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+aXNJ
bkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRJbkFwcEJyb3dz
ZXJQcml2YWN5RW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRJ
c0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKGVuYWJsZWQpOworfQorCiAtIChCT09MKV9hbmlt
YXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2Vz
LT5hbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5k
ZXggMzA4NzM1OWZiNjU4ZDg5MDY5NGE0OGVmZTY3YzkwNmYyNTkyNTM3OC4uNGMwMjI4MGY2ZmY4
ZWMwMzA5NDMxMTFkODhhMTlkY2E5NGNhNzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTc3LDYg
Kzc3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWRpdGFibGVMaW5rQmVoYXZp
b3IpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQ6KSBCT09MIF9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2lu
Z0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJs
ZWQ6KSBCT09MIF9sYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOikgQk9PTCBfaW5BcHBCcm93c2VyUHJp
dmFjeUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFuaW1hdGVkSW1hZ2VB
c3luY0RlY29kaW5nRW5hYmxlZDopIEJPT0wgX2FuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkOikgQk9PTCBf
dGV4dEF1dG9zaXppbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3VicGl4ZWxBbnRpYWxp
YXNlZExheWVyVGV4dEVuYWJsZWQ6KSBCT09MIF9zdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDgzZjg5
YzQxYWE4NmYxNWE0MTE2MWIwNWFjMzkxNWQyYzRmMjhkZmQuLmE0YjI0MDI0Zjc3MjY3YzM5NTE1
YzY0MjFlYjkxZTlhYzFkMjUwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjU4MSw2ICsyNTgxLDEzIEBAIC0gKHZvaWQpX3NhdmVC
YWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbQog
ICAgIF9wYWdlLT5yZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoaXRlbS5faXRlbSk7CiB9CiAKKy0g
KHZvaWQpX3NldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46KEJPT0wpaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+c2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
blRlc3RpbmcoaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oKSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIC0gKGlkIDxfV0tJbnB1dERlbGVnYXRlPilfaW5w
dXREZWxlZ2F0ZQogewogICAgIHJldHVybiBfaW5wdXREZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCmluZGV4IDJlNTg4ZThlZmViNDNmY2YxYjMwZjBiOTkyMWNjYjM0YTM3MjVhMDIu
LjE2NGFlMTQwZTI3YTZmMzA0YTgxMjM2ZDhmZDBiODk5YWVkZWRhMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAt
MzM2LDYgKzMzNiw4IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9nZXRQcm9jZXNz
RGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX3NldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46
KEJPT0wpaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiAjaWYgVEFSR0VUX09TX0lQSE9O
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3Bw
CmluZGV4IGY2ZGEyMTc1Mzc3OWQ5YmVjYzY0ZGY5Y2YzYmZkN2Y1ZTM5NDdlNjkuLjA1ZWVhMDQ4
YTNlYzViZmQwNzlmZDIzNzVkYjM0NjIwNjFmY2I3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTE0OCwxNCArMTQ4LDE0IEBA
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKCkKICAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RnJlZXplTGF5ZXJUcmVlRHVlVG9Td2lwZUFuaW1hdGlv
bigpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZERhdGEoQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRE
YXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBj
b25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgTmF2aWdhdGVkQXdh
eUZyb21BcHBCb3VuZERvbWFpbiBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluLCBP
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiBwYWdlUHJv
eHlJRD0lIiBQUkl1NjQgIiB3ZWJQYWdlSUQ9JSIgUFJJdTY0LCBtX3BhZ2UuaWRlbnRpZmllcigp
LnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0KCkpOwogCi0gICAgbV9wYWdlLmxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQs
IG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEs
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyksIG5hdmlnYXRpb24ubGFz
dE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKKyAgICBt
X3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBt
X3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJM
LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIGlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmRE
b21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlv
bkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24s
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmln
YXRpb24sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbiwgTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiBoYXNOYXZpZ2F0ZWRBd2F5
RnJvbUFwcEJvdW5kRG9tYWluLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNp
dGVQb2xpY2llcykKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImxvYWRSZXF1ZXN0OiBwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiB3ZWJQYWdlSUQ9JSIgUFJJ
dTY0LCBtX3BhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0
KCkpOwogCkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9h
ZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXMKICAgICBp
ZiAobmF2aWdhdGlvbi5mcm9tSXRlbSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlz
dCgpID09IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAgICAgbmF2aWdh
dGlvbi5mcm9tSXRlbSgpLT5zZXRMYXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9jZXNzLT5jb3Jl
UHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdh
dGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwg
V1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlv
blNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgV1RG
TW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgaGFzTmF2aWdh
dGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0K
IAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5h
dmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIE9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMzQ0LDcgKzM0
NCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgaWYgKCFpc01haW5GcmFtZSB8
fCAobV9tYWluRnJhbWUgJiYgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKSB8fCBu
YXZpZ2F0aW9uSUQgIT0gbV9uYXZpZ2F0aW9uSUQpIHsKLSAgICAgICAgcmVwbHkoUG9saWN5RGVj
aXNpb24geyBpZGVudGlmaWVyLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8sIFdlYkNv
cmU6OlBvbGljeUFjdGlvbjo6SWdub3JlLCBuYXZpZ2F0aW9uSUQsIERvd25sb2FkSUQoKSwgV1RG
OjpudWxsb3B0IH0pOworICAgICAgICByZXBseShQb2xpY3lEZWNpc2lvbiB7IGlkZW50aWZpZXIs
IE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOjpObywgTmF2aWdhdGVkQXdheUZyb21BcHBCb3Vu
ZERvbWFpbjo6Tm8sIFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6SWdub3JlLCBuYXZpZ2F0aW9uSUQs
IERvd25sb2FkSUQoKSwgV1RGOjpudWxsb3B0IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRl
eCA3YTBlMjBkNzYxNzEyZWVhNTM0NmNhY2ZiYWQ0MDZkNGQxZGYwNDM3Li5lMTZkZThjYzg3YTg5
YTIyMGNlZjM3YzA2NzMyZDkzMTA1YTE4ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTkyLDggKzkyLDggQEAgcHVibGljOgogICAg
IExheWVySG9zdGluZ0NvbnRleHRJRCBjb250ZXh0SURGb3JWaXNpYmlsaXR5UHJvcGFnYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRJREZvclZpc2liaWxpdHlQcm9wYWdhdGlvbjsgfQog
I2VuZGlmCiAKLSAgICB2b2lkIGxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5j
b2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9
IFdURjo6bnVsbG9wdCk7Ci0gICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdU
Rjo6bnVsbG9wdCk7CisgICAgdm9pZCBsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwg
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21h
aW4sIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOworICAg
IHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4s
IE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4sIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbShB
UEk6Ok5hdmlnYXRpb24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgT3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzZkNzUwOGQyYTMxYzEzNGExYTRmZTY2MDBj
ZGYyNmNjMjUwYzY3ZS4uZjFkY2MwYjAyOGI3MDQ5YWMyZmI1YWYzNmM5YjhlMTk1ZjUzNWU1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjgzLDExICsx
MjgzLDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvCiAgICAgaWYgKHNob3VsZFVzZUZvcmVn
cm91bmRQcmlvcml0eUZvckNsaWVudE5hdmlnYXRpb24oKSkKICAgICAgICAgbmF2aWdhdGlvbi0+
c2V0Rm9yZWdyb3VuZEFjdGl2aXR5KHByb2Nlc3MoKS50aHJvdHRsZXIoKS5mb3JlZ3JvdW5kQWN0
aXZpdHkoIkNsaWVudCBuYXZpZ2F0aW9uIl9zKS5tb3ZlVG9VbmlxdWVQdHIoKSk7CiAKLSAgICBs
b2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2Vi
UGFnZUlELCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
bywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpKTsKKyAgICBsb2FkUmVxdWVzdFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0
aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbigpLCBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKCkp
OwogICAgIHJldHVybiBuYXZpZ2F0aW9uOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJl
cXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZp
Z2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwg
QVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiBo
YXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluLCBPcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBBU1NFUlQoIW1faXNDbG9zZWQpOwog
CkBAIC0xMzEwLDYgKzEzMTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRo
TmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIGxvYWRQ
YXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2Fy
ZExpc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rv
cnkgPSBuYXZpZ2F0aW9uLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOwogICAgIGxv
YWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluOworICAgIGxvYWRQYXJhbWV0ZXJzLmhhc05hdmlnYXRlZEF3YXlGcm9t
QXBwQm91bmREb21haW4gPSBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOwogICAg
IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUocHJvY2VzcywgdXJsLCBtX3Bh
Z2VMb2FkU3RhdGUucmVzb3VyY2VEaXJlY3RvcnlVUkwoKSwgbG9hZFBhcmFtZXRlcnMuc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQ
YXJhbWV0ZXJzKTsKQEAgLTE0MDQsMTEgKzE0MDUsMTEgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5Ojpsb2FkRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEs
IGMKICAgICBpZiAoc2hvdWxkVXNlRm9yZWdyb3VuZFByaW9yaXR5Rm9yQ2xpZW50TmF2aWdhdGlv
bigpKQogICAgICAgICBuYXZpZ2F0aW9uLT5zZXRGb3JlZ3JvdW5kQWN0aXZpdHkocHJvY2Vzcygp
LnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0eSgiQ2xpZW50IG5hdmlnYXRpb24iX3MpLm1v
dmVUb1VuaXF1ZVB0cigpKTsKIAotICAgIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBl
LCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZDo6Tm8sIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGOjpudWxsb3B0LCBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKKyAgICBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBN
SU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQ6Ok5vLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIGhhc05hdmlnYXRl
ZEF3YXlGcm9tQXBwQm91bmREb21haW4oKSwgV1RGOjpudWxsb3B0LCBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KTsKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEFQSTo6TmF2aWdh
dGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBT
dHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4g
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQsIE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIGlzTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4sIE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4gaGFzTmF2aWdhdGVkQXdh
eUZyb21BcHBCb3VuZERvbWFpbiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJz
aXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJs
b2FkRGF0YVdpdGhOYXZpZ2F0aW9uIik7CiAKQEAgLTE0MjksNyArMTQzMCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMgPSBXVEZN
b3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAgbG9hZFBh
cmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW47Ci0KKyAgICBsb2FkUGFyYW1ldGVycy5oYXNOYXZpZ2F0ZWRBd2F5RnJvbUFw
cEJvdW5kRG9tYWluID0gaGFzTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbjsKICAgICBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHByb2Nlc3Mt
PmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwpAQCAtMzExMSw2ICsz
MTEyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4oYm9vbCBpc01haW5GcmFtZSwgY29uc3QgVVJMJgogICAgICAgICBpZiAoIWlzQXBwQm91bmRE
b21haW4ocmVxdWVzdFVSTCkpIHsKICAgICAgICAgICAgIG1fY29uZmlndXJhdGlvbi0+c2V0V2Vi
Vmlld0NhdGVnb3J5KFdlYlZpZXdDYXRlZ29yeTo6SW5BcHBCcm93c2VyKTsKICAgICAgICAgICAg
IG1faXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluOjpObzsKKyAgICAgICAgICAgIG1faGFzTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFp
biA9IE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW46OlllczsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnNldFdlYlZpZXdDYXRl
Z29yeShXZWJWaWV3Q2F0ZWdvcnk6OkFwcEJvdW5kRG9tYWluKTsKQEAgLTMxMTgsNiArMzEyMCwx
MSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbihi
b29sIGlzTWFpbkZyYW1lLCBjb25zdCBVUkwmCiAgICAgfQogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpblRlc3RpbmcoYm9vbCBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpT
ZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluVGVzdGluZyhpc05hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZyYW1lUHJveHkm
IGZyYW1lLCBBUEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFJlZjxQb2xpY3lEZWNpc2lv
blNlbmRlcj4mJiBzZW5kZXIpCiB7CiAgICAgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IHdlYnNpdGVE
YXRhU3RvcmUgPSBtX3dlYnNpdGVEYXRhU3RvcmUuY29weVJlZigpOwpAQCAtMzIwNSw3ICszMjEy
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
KFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZl
ZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2
aWdhdGlvbiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMs
IFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiBzZW5kZXIsIFdpbGxDb250aW51ZUxvYWRJbk5l
d1Byb2Nlc3Mgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcykKIHsKICAgICBpZiAoIWhhc1J1
bm5pbmdQcm9jZXNzKCkpIHsKLSAgICAgICAgc2VuZGVyLT5zZW5kKFBvbGljeURlY2lzaW9uIHsg
c2VuZGVyLT5pZGVudGlmaWVyKCksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgUG9s
aWN5QWN0aW9uOjpJZ25vcmUsIDAsIERvd25sb2FkSUQoKSwgV1RGOjpudWxsb3B0IH0pOworICAg
ICAgICBzZW5kZXItPnNlbmQoUG9saWN5RGVjaXNpb24geyBzZW5kZXItPmlkZW50aWZpZXIoKSwg
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJv
dW5kRG9tYWluKCksIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCBEb3dubG9hZElEKCksIFdURjo6
bnVsbG9wdCB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzIyOCw3ICszMjM1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9u
IGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKgogICAgICAgICBtX2RlY2lkZVBvbGljeUZvclJlc3Bv
bnNlUmVxdWVzdCA9IHsgfTsKICAgICB9CiAKLSAgICBzZW5kZXItPnNlbmQoUG9saWN5RGVjaXNp
b24geyBzZW5kZXItPmlkZW50aWZpZXIoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigp
LCBhY3Rpb24sIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGRv
d25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSB9KTsKKyAgICBzZW5kZXItPnNlbmQo
UG9saWN5RGVjaXNpb24geyBzZW5kZXItPmlkZW50aWZpZXIoKSwgaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbigpLCBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKCksIGFjdGlv
biwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgZG93bmxvYWRJ
RCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpIH0pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIHVzZWRMZWdhY3lUTFMsIGJvb2wg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250
ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
QEAgLTMzMDUsOSArMzMxMiw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRp
b25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgICAgIC8v
IEZJWE1FOiBXb3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGluZyB3aXRoIHRoZSBsYXN0IHBvbGlj
eSBkZWxlZ2F0ZSwgZXRjCiAgICAgICAgIEFTU0VSVCghbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVl
c3QoKS5pc0VtcHR5KCkpOwogICAgICAgICBpZiAoYXV0byYgc3Vic3RpdHV0ZURhdGEgPSBuYXZp
Z2F0aW9uLT5zdWJzdGl0dXRlRGF0YSgpKQotICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2Ut
PmxvYWREYXRhKG5hdmlnYXRpb24sIHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuZGF0YSgpLCBz
dWJzdGl0dXRlRGF0YS0+Y29udGVudC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEtPk1JTUVUeXBl
LCBzdWJzdGl0dXRlRGF0YS0+ZW5jb2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNlVVJMLCBzdWJz
dGl0dXRlRGF0YS0+dXNlckRhdGEuZ2V0KCksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4o
KSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQ
YWdlLT5sb2FkRGF0YShuYXZpZ2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LmRhdGEo
KSwgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRhLT5NSU1F
VHlwZSwgc3Vic3RpdHV0ZURhdGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFzZVVSTCwg
c3Vic3RpdHV0ZURhdGEtPnVzZXJEYXRhLmdldCgpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluKCksIGhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJz
aXRlUG9saWNpZXMpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9wcm92aXNpb25hbFBh
Z2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24t
PmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgICAgICAgICAgbV9wcm92aXNpb25h
bFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCB7IG5hdmlnYXRp
b24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbigpLCBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vi
c2l0ZVBvbGljaWVzKSk7CiAgICAgfTsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyLT5z
aG91bGRQYXVzZUxvYWRpbmcoKm1fcHJvdmlzaW9uYWxQYWdlKSkKICAgICAgICAgbV9pbnNwZWN0
b3JDb250cm9sbGVyLT5zZXRDb250aW51ZUxvYWRpbmdDYWxsYmFjaygqbV9wcm92aXNpb25hbFBh
Z2UsIFdURk1vdmUoY29udGludWF0aW9uKSk7CkBAIC01MDE5LDcgKzUwMjYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2NlcwogCiAgICAgaWYgKCFjaGVja1VSTFJlY2VpdmVkRnJvbUN1cnJlbnRP
clByZXZpb3VzV2ViUHJvY2Vzcyhwcm9jZXNzLCByZXF1ZXN0LnVybCgpKSkgewogICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3MsICJJZ25vcmluZyByZXF1ZXN0IHRv
IGxvYWQgdGhpcyBtYWluIHJlc291cmNlIGJlY2F1c2UgaXQgaXMgb3V0c2lkZSB0aGUgc2FuZGJv
eCIpOwotICAgICAgICBzZW5kZXItPnNlbmQoUG9saWN5RGVjaXNpb24geyBzZW5kZXItPmlkZW50
aWZpZXIoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBQb2xpY3lBY3Rpb246Okln
bm9yZSwgMCwgRG93bmxvYWRJRCgpLCBXVEY6Om51bGxvcHQgfSk7CisgICAgICAgIHNlbmRlci0+
c2VuZChQb2xpY3lEZWNpc2lvbiB7IHNlbmRlci0+aWRlbnRpZmllcigpLCBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluKCksIGhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4oKSwg
UG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIERvd25sb2FkSUQoKSwgV1RGOjpudWxsb3B0IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MjQyLDcgKzUyNDksNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eQogICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV1RGTW92
ZShwcm9jZXNzKSwgKmZyYW1lLCBXVEZNb3ZlKGZyYW1lSW5mbyksIG5hdmlnYXRpb25JRCwgV1RG
TW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8p
LCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEs
IHNlbmRlci5jb3B5UmVmKCkpOwogCiAgICAgLy8gSWYgdGhlIGNsaWVudCBkaWQgbm90IHJlc3Bv
bmQgc3luY2hyb25vdXNseSwgcHJvY2VlZCB3aXRoIHRoZSBsb2FkLgotICAgIHNlbmRlci0+c2Vu
ZChQb2xpY3lEZWNpc2lvbiB7IHNlbmRlci0+aWRlbnRpZmllcigpLCBpc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluKCksIFBvbGljeUFjdGlvbjo6VXNlLCBuYXZpZ2F0aW9uSUQsIERvd25sb2Fk
SUQoKSwgV1RGOjpudWxsb3B0IH0pOworICAgIHNlbmRlci0+c2VuZChQb2xpY3lEZWNpc2lvbiB7
IHNlbmRlci0+aWRlbnRpZmllcigpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIGhh
c05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4oKSwgUG9saWN5QWN0aW9uOjpVc2UsIG5h
dmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51bGxvcHQgfSk7CiB9CiAKIHZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzNDMyMjgyOWMxMWRhMzQzMWZhZGJlZTc4NmY2
Njg0ZTgyN2NjMzNhLi45MGMwNWUwZmI2ZjVjYzEwY2EzNThlZTAxNjgzYTFjMDIyZGYxYzVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTYyMyw4ICsxNjIzLDgg
QEAgcHVibGljOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgT3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBs
aXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmln
YXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBl
LCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9
IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdl
YkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKLSAg
ICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
QVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5n
JiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91
bmREb21haW4sIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQs
IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkUmVx
dWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3Qq
IHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE5hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluLCBOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluLCBPcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKICAgICB2b2lkIGJh
Y2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2Vi
Q29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGNvbnN0IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50
cyYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9v
bCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJh
bWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jRGVsYXllZFJlcGx5JiYpOwog
I2lmIFVTRShRVUlDS19MT09LKQpAQCAtMTcwNSw2ICsxNzA1LDggQEAgcHVibGljOgogICAgIHZv
aWQgcmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCk7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0
SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpblRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYs
IFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMjI2Niw3ICsyMjY4LDggQEAgcHJpdmF0ZToK
ICAgICBib29sIGlzQXBwQm91bmREb21haW4oY29uc3QgVVJMJikgY29uc3Q7CiAgICAgdm9pZCBz
ZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKGJvb2wgaXNNYWluRnJhbWUsIGNvbnN0IFVS
TCYpOwogICAgIE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIGlzTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4oKSBjb25zdCB7IHJldHVybiBtX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47
IH0KLQorICAgIE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4gaGFzTmF2aWdhdGVkQXdh
eUZyb21BcHBCb3VuZERvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzTmF2aWdhdGVkQXdheUZy
b21BcHBCb3VuZERvbWFpbjsgfQorICAgICAgICAKICAgICBjb25zdCBJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3dlYlBhZ2VJRDsKICAgICBX
ZWFrUHRyPFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsKQEAgLTI3NTIsNiArMjc1NSw3IEBAIHBy
aXZhdGU6CiAjZW5kaWYKICAgICAgICAgCiAgICAgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4g
bV9pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIHsgTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW46Ok5vIH07CisgICAgTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiBtX2hhc05hdmln
YXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4geyBOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9t
YWluOjpObyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAppbmRleCBiODE4YTY2ZmYxMGZmZWIxODFhYTE4M2NmNGIyMjI1OGEzYzEx
NTExLi44Y2YzZmUxMjVhYzUwMjc0ZTIyYmQyOWM0MzFjYjk0YzYxMDliZGFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTg0MCw3ICs4NDAsNyBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9ucwogICAgIHVpbnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGlj
eUxpc3RlbmVyKGlkZW50aWZpZXIsIFdURk1vdmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2
aWdhdGlvbkFjdGlvbjo6Tm8pOwogICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1f
ZnJhbWUtPmluZm8oKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVz
dCwgY2FuU2hvd1Jlc3BvbnNlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRh
dGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2Vy
RGF0YS5nZXQoKSkuZ2V0KCkpKSkpIHsKICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVM
RUFTRV9MT0coTmV0d29yaywgImRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2U6IGlnbm9y
aW5nIGJlY2F1c2UgV2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSBmYWlsZWQi
KTsKLSAgICAgICAgbV9mcmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQs
IFBvbGljeURlY2lzaW9uIHsgaWRlbnRpZmllciwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46
Ok5vLCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0gfSk7CisgICAgICAgIG1fZnJh
bWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lEZWNpc2lvbiB7
IGlkZW50aWZpZXIsIE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOjpObywgTmF2aWdhdGVkQXdh
eUZyb21BcHBCb3VuZERvbWFpbjo6Tm8sIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7IH0sIHsg
fSB9KTsKICAgICB9CiB9CiAKQEAgLTEwMDcsMTcgKzEwMDcsMTcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IE5hdmlnYXQKICAgICAgICAgUG9saWN5RGVjaXNpb24gcG9saWN5RGVjaXNpb247CiAKICAgICAg
ICAgaWYgKCF3ZWJQYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUt
PmlzTWFpbkZyYW1lKCksIG1fZnJhbWUtPmluZm8oKSwgcmVxdWVzdElkZW50aWZpZXIsIGRvY3Vt
ZW50TG9hZGVyLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIG9yaWdpbmF0
aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQsIG5hdmlnYXRpb25BY3Rpb24ucmVz
b3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyByZXF1ZXN0
Lmh0dHBCb2R5KCkgfSwgcmVkaXJlY3RSZXNwb25zZSwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmM6OlJlcGx5KHBvbGljeURlY2lzaW9uKSkpIHsKLSAgICAgICAgICAgIG1fZnJhbWUtPmRp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lEZWNpc2lvbiB7IHJlcXVl
c3RJZGVudGlmaWVyLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8sIFBvbGljeUFjdGlv
bjo6SWdub3JlLCAwLCB7IH0sIHsgfSB9KTsKKyAgICAgICAgICAgIG1fZnJhbWUtPmRpZFJlY2Vp
dmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lEZWNpc2lvbiB7IHJlcXVlc3RJZGVu
dGlmaWVyLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8sIE5hdmlnYXRlZEF3YXlGcm9t
QXBwQm91bmREb21haW46Ok5vLCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0gfSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBtX2ZyYW1lLT5kaWRS
ZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVjaXNpb24geyBwb2xpY3lE
ZWNpc2lvbi5pZGVudGlmaWVyLCBwb2xpY3lEZWNpc2lvbi5pc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluLCBwb2xpY3lEZWNpc2lvbi5wb2xpY3lBY3Rpb24sIDAsIHBvbGljeURlY2lzaW9uLmRv
d25sb2FkSUQsIHsgfX0pOworICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNp
b24obGlzdGVuZXJJRCwgUG9saWN5RGVjaXNpb24geyBwb2xpY3lEZWNpc2lvbi5pZGVudGlmaWVy
LCBwb2xpY3lEZWNpc2lvbi5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBwb2xpY3lEZWNp
c2lvbi5oYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluLCBwb2xpY3lEZWNpc2lvbi5w
b2xpY3lBY3Rpb24sIDAsIHBvbGljeURlY2lzaW9uLmRvd25sb2FkSUQsIHsgfX0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKHBvbGljeURlY2lzaW9uTW9kZSA9PSBQb2xp
Y3lEZWNpc2lvbk1vZGU6OkFzeW5jaHJvbm91cyk7CiAgICAgaWYgKCF3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
YyhtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgcmVxdWVzdElkZW50aWZpZXIs
IGRvY3VtZW50TG9hZGVyLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIG9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQsIG5hdmlnYXRpb25BY3Rp
b24ucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBy
ZXF1ZXN0Lmh0dHBCb2R5KCkgfSwgcmVkaXJlY3RSZXNwb25zZSwgVXNlckRhdGEoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSku
Z2V0KCkpLCBsaXN0ZW5lcklEKSkpCi0gICAgICAgIG1fZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lEZWNpc2lvbiB7IHJlcXVlc3RJZGVudGlmaWVyLCBO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8sIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7
IH0sIHsgfSB9KTsKKyAgICAgICAgbV9mcmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxp
c3RlbmVySUQsIFBvbGljeURlY2lzaW9uIHsgcmVxdWVzdElkZW50aWZpZXIsIE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluOjpObywgTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbjo6Tm8s
IFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7IH0sIHsgfSB9KTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y2FuY2VsUG9saWN5Q2hlY2soKQpAQCAtMTk1Miw2ICsxOTUyLDE1IEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbmlzaGVkTG9hZGluZ0FwcGxpY2F0aW9uTWFu
aWZlc3QodWludDY0X3QgY2FsbGJhY2tJCiB9CiAjZW5kaWYgLy8gRU5BQkxFKEFQUExJQ0FUSU9O
X01BTklGRVNUKQogCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpoYXNOYXZpZ2F0ZWRBd2F5
RnJvbUFwcEJvdW5kRG9tYWluKCkKK3sKKyAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFn
ZSgpOworICAgIGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAg
IHJldHVybiB3ZWJQYWdlLT5oYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKCkgPT0g
TmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbjo6WWVzOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI3VuZGVmIFBSRUZJWF9QQVJBTUVURVJTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IGRiODgxOTg1MDRhZjM2NjczYzA3YjllYjIyNzg1MjFjYzI0ZDYwYzYuLjUw
YjQyODAyMDcyYjIzZTFlMDk5N2MwYzAyY2JiNWIwYWVhYmY5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0yODksNiArMjg5LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIE9wdGlvbmFsPEZyYW1lU3BlY2lmaWNTdG9yYWdl
QWNjZXNzSWRlbnRpZmllcj4gbV9mcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXI7
CiAjZW5kaWYKKworICAgIGJvb2wgaGFzTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbigp
IGZpbmFsOwogfTsKIAogLy8gQXMgbG9uZyBhcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGV4aXN0
cyBpbiBXZWJDb3JlLCB0aGlzIGNhbiByZXR1cm4gMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTliZDE4MDMwMDcwMWFkNzEwZGQ5MTgyMzVj
YzQ5NmI3NDkxNGE5ZS4uYjg5OGU0MTA1YzNjMGIzZTljN2YxZDVlNjMwODQxYTkzOTlhOTMyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1
NzYsNiArMTU3Niw3IEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFt
ZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0CiB2b2lkIFdlYlBhZ2U6Omxv
YWRSZXF1ZXN0KExvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgc2V0SXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbihsb2FkUGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluKTsKKyAgICBzZXRIYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWlu
KGxvYWRQYXJhbWV0ZXJzLmhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4pOwogCiAg
ICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXI7CiAKQEAgLTE2MTEsOSArMTYx
MiwxMCBAQCBOT19SRVRVUk4gdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVzdFdhaXRpbmdGb3JQcm9j
ZXNzTGF1bmNoKExvYWRQYXJhbWV0ZXJzJiYsIFVSTAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbXBsKHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNo
YXJlZEJ1ZmZlciwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGlu
Z05hbWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCit2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW1wbCh1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1
ZmZlcj4mJiBzaGFyZWRCdWZmZXIsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZW5jb2RpbmdOYW1lLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFVSTCYgdW5yZWFjaGFi
bGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgTmF2aWdhdGVkQXdheUZyb21BcHBCb3Vu
ZERvbWFpbiBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluLCBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAgICAgc2V0
SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbihpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
KTsKKyAgICBzZXRIYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKGhhc05hdmlnYXRl
ZEF3YXlGcm9tQXBwQm91bmREb21haW4pOwogCiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyIHN0b3BwZXI7CiAKQEAgLTE2NDEsNyArMTY0Myw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERh
dGEoTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycykKIAogICAgIGF1dG8gc2hhcmVkQnVm
ZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
bG9hZFBhcmFtZXRlcnMuZGF0YS5kYXRhKCkpLCBsb2FkUGFyYW1ldGVycy5kYXRhLnNpemUoKSk7
CiAgICAgVVJMIGJhc2VVUkwgPSBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nLmlzRW1wdHko
KSA/IFdURjo6YmxhbmtVUkwoKSA6IFVSTChVUkwoKSwgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0
cmluZyk7Ci0gICAgbG9hZERhdGFJbXBsKGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwgbG9h
ZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBXVEZNb3ZlKGxvYWRQYXJh
bWV0ZXJzLndlYnNpdGVQb2xpY2llcyksIFdURk1vdmUoc2hhcmVkQnVmZmVyKSwgbG9hZFBhcmFt
ZXRlcnMuTUlNRVR5cGUsIGxvYWRQYXJhbWV0ZXJzLmVuY29kaW5nTmFtZSwgYmFzZVVSTCwgVVJM
KCksIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhLCBsb2FkUGFyYW1ldGVycy5pc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5KTsKKyAgICBsb2FkRGF0YUltcGwobG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklELCBsb2Fk
UGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFdURk1vdmUobG9hZFBhcmFt
ZXRlcnMud2Vic2l0ZVBvbGljaWVzKSwgV1RGTW92ZShzaGFyZWRCdWZmZXIpLCBsb2FkUGFyYW1l
dGVycy5NSU1FVHlwZSwgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lLCBiYXNlVVJMLCBVUkwo
KSwgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEsIGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIGxvYWRQYXJhbWV0ZXJzLmhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91
bmREb21haW4sIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OmxvYWRBbHRlcm5hdGVIVE1MKExvYWRQYXJhbWV0ZXJzJiYgbG9h
ZFBhcmFtZXRlcnMpCkBAIC0xNjUzLDcgKzE2NTUsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRBbHRl
cm5hdGVIVE1MKExvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiAgICAgVVJMIHByb3Zp
c2lvbmFsTG9hZEVycm9yVVJMID0gbG9hZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxMb2FkRXJyb3JV
UkxTdHJpbmcuaXNFbXB0eSgpID8gVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLnBy
b3Zpc2lvbmFsTG9hZEVycm9yVVJMU3RyaW5nKTsKICAgICBhdXRvIHNoYXJlZEJ1ZmZlciA9IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGxvYWRQYXJh
bWV0ZXJzLmRhdGEuZGF0YSgpKSwgbG9hZFBhcmFtZXRlcnMuZGF0YS5zaXplKCkpOwogICAgIG1f
bWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc2V0UHJvdmlzaW9uYWxMb2FkRXJyb3JC
ZWluZ0hhbmRsZWRVUkwocHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwpOyAgICAKLSAgICBsb2FkRGF0
YUltcGwobG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklELCBsb2FkUGFyYW1ldGVycy5zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQsIFdURk1vdmUobG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGlj
aWVzKSwgV1RGTW92ZShzaGFyZWRCdWZmZXIpLCBsb2FkUGFyYW1ldGVycy5NSU1FVHlwZSwgbG9h
ZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lLCBiYXNlVVJMLCB1bnJlYWNoYWJsZVVSTCwgbG9hZFBh
cmFtZXRlcnMudXNlckRhdGEsIGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4pOworICAgIGxvYWREYXRhSW1wbChsb2FkUGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQsIGxv
YWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgV1RGTW92ZShsb2FkUGFy
YW1ldGVycy53ZWJzaXRlUG9saWNpZXMpLCBXVEZNb3ZlKHNoYXJlZEJ1ZmZlciksIGxvYWRQYXJh
bWV0ZXJzLk1JTUVUeXBlLCBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUsIGJhc2VVUkwsIHVu
cmVhY2hhYmxlVVJMLCBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSwgbG9hZFBhcmFtZXRlcnMuaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgbG9hZFBhcmFtZXRlcnMuaGFzTmF2aWdhdGVkQXdh
eUZyb21BcHBCb3VuZERvbWFpbik7CiAgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2Fk
ZXIoKS5zZXRQcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCh7IH0pOwogfQogCkBA
IC0zMjgxLDYgKzMyODMsOCBAQCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUoTGF5
ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
UG9saWN5RGVjaXNpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFBvbGljeURlY2lzaW9uJiYgcG9saWN5RGVjaXNpb24pCiB7CiAgICAgc2V0SXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbihwb2xpY3lEZWNpc2lvbi5pc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluKTsKKyAgICBzZXRIYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKHBvbGlj
eURlY2lzaW9uLmhhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4pOworCiAgICAgV2Vi
RnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQzOSw2ICszNDQzLDExIEBA
IHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdChXZWJGcmFtZSogZnJhbWUsIFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVyCiAKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTY3JpcHRWYWx1ZUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGRldGFpbHMsIGNhbGxi
YWNrSUQpKTsKICAgICB9OworICAgIAorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLmlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQoKSAmJiBmcmFtZS0+
aXNNYWluRnJhbWUoKSAmJiBoYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluKCkgPT0g
TmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbjo6WWVzKSB7CisgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2NyaXB0VmFsdWVDYWxsYmFjayh7IH0sIEV4Y2VwdGlvbkRl
dGFpbHMgeyAiVW5hYmxlIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCJfcyB9LCBjYWxsYmFja0lEKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayhjb21tb25W
TSgpKTsKICAgICBmcmFtZS0+Y29yZUZyYW1lKCktPnNjcmlwdCgpLmV4ZWN1dGVBc3luY2hyb25v
dXNVc2VyQWdlbnRTY3JpcHRJbldvcmxkKHdvcmxkLT5jb3JlV29ybGQoKSwgV1RGTW92ZShwYXJh
bWV0ZXJzKSwgV1RGTW92ZShyZXNvbHZlRnVuY3Rpb24pKTsKQEAgLTcwMzMsMTEgKzcwNDIsNiBA
QCB2b2lkIFdlYlBhZ2U6OnNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRp
YVR5cGUpCiAgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpzZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKE5hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pCi17Ci0gICAg
bV9pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbjsKLX0KLQogYm9vbCBXZWJQYWdlOjpzaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3IoUmVu
ZGVyaW5nUHVycG9zZSBwdXJwb3NlKQogewogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKQEAgLTcw
NTMsNiArNzA1NywxMiBAQCBib29sIFdlYlBhZ2U6OnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0Zv
cihSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lk
IFdlYlBhZ2U6OnNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW5UZXN0aW5nKGJvb2wgaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIG1faXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9
IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPyBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bjo6WWVzIDogTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46Ok5vOworICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDNhNjhjNzk2ODE5NDA3MzBmNTZiNzQ0Zjk5OGQxMjY5Njc5NTg0YTEuLjM1ZmE2Nzgz
MzllOGQxY2YxZDM0OGMzODY2OTVlZmMyNDdkYWVmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyOTIsOCArMTI5MiwxMSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGdldEFsbEZyYW1lcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxGcmFt
ZUluZm9EYXRhPiYmKT4mJik7CiAKLSAgICB2b2lkIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4oTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pOworICAgIHZvaWQgc2V0SXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpblRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikgeyBtX2lzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOyB9
CiAgICAgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbigpIGNvbnN0IHsgcmV0dXJuIG1faXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjsgfQor
ICAgIE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4gaGFzTmF2aWdhdGVkQXdheUZyb21B
cHBCb3VuZERvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzTmF2aWdhdGVkQXdheUZyb21BcHBC
b3VuZERvbWFpbjsgfQorICAgIHZvaWQgc2V0SGFzTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERv
bWFpbihOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluIG5hdmlnYXRlZEF3YXlGcm9tQXBw
Qm91bmREb21haW4pIHsgbV9oYXNOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluID0gbmF2
aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbjsgfQogCiAgICAgYm9vbCBzaG91bGRVc2VSZW1v
dGVSZW5kZXJpbmdGb3IoV2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSk7CiAgICAgCkBAIC0xMzkw
LDcgKzEzOTMsNyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZy
YW1lKik7CiAKLSAgICB2b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJv
b2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIE1JTUVU
eXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nTmFtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25z
dCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRhJiwgTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBs
b2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBl
bmNvZGluZ05hbWUsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBj
b25zdCBVc2VyRGF0YSYsIE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBOYXZpZ2F0ZWRBd2F5
RnJvbUFwcEJvdW5kRG9tYWluLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogCiAgICAgLy8gQWN0aW9ucwogICAgIHZvaWQgdHJ5Q2xvc2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CkBAIC0yMDgyLDYgKzIwODUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAg
ICAgCiAgICAgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gbV9pc05hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluIHsgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46Ok5vIH07CisgICAgTmF2aWdh
dGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiBtX2hhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmRE
b21haW4geyBOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOjpObyB9OwogfTsKIAogI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzM1NGMxOTIwODc0MDg5YmYwMDMw
YzYzNjNhYTg1ODYwMGRjYzg4NS4uNWY5M2UxNjQyYWI0OGU1OGJmYWQzMTI3NGU2YzMzMjYyYTUy
ZWRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCkBAIC02MDUsNCArNjA1LDYgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKICAgICBHZXRQcm9jZXNzRGlzcGxheU5hbWUoKSAtPiAoU3RyaW5nIGRpc3BsYXlOYW1lKSBB
c3luYwogCiAgICAgU2V0SGFzUmVzb3VyY2VMb2FkQ2xpZW50KGJvb2wgaGFzKQorICAgIFNldElz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW5UZXN0aW5nKGJvb2wgaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbikgLT4gKCkgQXN5bmMKKwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI0MTA1MTEzMTQ0OThiNTg0ZTgzOWMxNDA3MjRjMDBj
N2YzZGRmNWEuLjVmNDZiYTQ5ZjlhOGE0OTAyZGRhZGFiYzYxMzcyOGM5M2NkODNhNTAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAyMC0wMy0wMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNv
bT4KKworICAgICAgICBDaGVjayBmb3IgbmF2aWdhdGlvbiB0byBhcHAtYm91bmQgZG9tYWluIGR1
cmluZyBzY3JpcHQgZXZhbHVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzU2OTMyMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5t
bTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RJbkFwcEJyb3dzZXJTY3JpcHRNZXNzYWdlSGFuZGxl
ciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lu
LWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLWFnZW50LXNjcmlwdC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2Vy
LXByaXZhY3ktdGVzdC11c2VyLXNjcmlwdC5odG1sOiBBZGRlZC4KKwogMjAyMC0wMy0wMiAgSm9o
biBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzOiBFbmFibGUgY29va2llIGJsb2NraW5nIGFuZCB0aGUgU3RvcmFnZSBBY2Nlc3Mg
QVBJIGluIGVwaGVtZXJhbCBzZXNzaW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmOGFi
MDhjNGRkZDUxNzNkYjBhOTljZjhhZjJiMzBhNGMxODc5MjRlLi4xZTYzYTM0Y2IzOTc4ZWU4Mzkw
ZGYyZWY1YzQ0ZDgyMTliNjJmODY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjUyLDYg
KzI1Miw5IEBACiAJCTQ2RkEyRkVFMjM4NDZDQTUwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkEyRkVE
MjM4NDZDOUEwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLzsgfTsKIAkJNDZGQUNGNzQy
M0U4ODQyMzAwQTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGQUNGNzMyM0U4ODNFRTAw
QTlFQkM2IC8qIGJlZm9yZXVubG9hZC1zbG93Lmh0bWwgKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4
MEM4ODk4MkQ1NiAvKiBNYXJrYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFQzc5RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3Bw
ICovOyB9OworCQk0OUFFRUY2RDI0MDczNTlEMDBDODdFNEMgLyogSW5BcHBCcm93c2VyUHJpdmFj
eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QUVF
RjZCMjQwNzM1ODYwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tICovOyB9OworCQk0
OUFFRUY3MjI0MDczRkM5MDBDODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVz
ZXItc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDlBRUVGNkUyNDA3M0Y5MzAwQzg3RTRDIC8qIGluLWFwcC1icm93c2VyLXBy
aXZhY3ktdGVzdC11c2VyLXNjcmlwdC5odG1sICovOyB9OworCQk0OUFFRUY3MzI0MDczRkM5MDBD
ODdFNEMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlBRUVGNkYyNDA3M0Y5MzAwQzg3RTRDIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11
c2VyLWFnZW50LXNjcmlwdC5odG1sICovOyB9OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIg
LyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBI
aXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9OwogCQk1MTA0Nzc3MjFEMjk4
REREMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA0Nzc2RjFEMjk4RDg1MDA5
NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMyAqLzsgfTsKIAkJNTEwNDc3NzMxRDI5
OERERDAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5LnNxbGl0ZTMtc2htIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDQ3NzcwMUQyOThE
ODUwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5zcWxpdGUzLXNobSAqLzsgfTsKQEAgLTEz
NDEsNiArMTM0NCw4IEBACiAJCQkJRjQ1QjYzRkIxRjE5N0Y0QTAwOUQzOEI5IC8qIGltYWdlLW1h
cC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTMxMjhBODE1MjM3NjQxMzMwMEQ5MEQ0
MCAvKiBpbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTcyODNBOUQwMjJGQTc1
NDkwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJNDlBRUVGNzMyNDA3M0ZDOTAwQzg3RTRDIC8qIGluLWFwcC1icm93c2VyLXBy
aXZhY3ktdGVzdC11c2VyLWFnZW50LXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAor
CQkJCTQ5QUVFRjcyMjQwNzNGQzkwMEM4N0U0QyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRl
c3QtdXNlci1zY3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZDRDIw
RjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZDQzIwRjZBMjcwMDAwMENERkMgLyogSW5k
ZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTg0OSw2ICsxODU0
LDkgQEAKIAkJNDZGQTJGRUQyMzg0NkM5QTAwMENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUEhlYWRlck1hcC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RkFDRjczMjNFODgzRUUwMEE5RUJDNiAvKiBi
ZWZvcmV1bmxvYWQtc2xvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJlZm9y
ZXVubG9hZC1zbG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUFFRUY2
ODI0MDcyNzZGMDBDODdFNEMgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1s
OyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDlBRUVG
NkIyNDA3MzU4NjAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbkFwcEJyb3dzZXJQcml2YWN5Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OUFFRUY2RTI0MDczRjkzMDBDODdFNEMgLyogaW4t
YXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2NyaXB0Lmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItc2NyaXB0Lmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0OUFFRUY2RjI0MDczRjkzMDBDODdF
NEMgLyogaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW4tYXBwLWJyb3dzZXItcHJpdmFjeS10ZXN0
LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVkaWEuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGdldFVzZXJNZWRpYS5odG1sOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjYgLyogb25kZXZpY2Vj
aGFuZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IG9uZGV2aWNlY2hhbmdlLmh0
bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDExLDYgKzMwMTksNyBAQAogCQkJ
CTUxMDQ3Nzc1MUQyOThFMDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5tbSAqLywKIAkJ
CQk1MTEwRkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5tbSAqLywK
IAkJCQk5M0JDQkM4MDIzQ0M2RUU4MDBDQTIyMjEgLyogSURCT2JqZWN0U3RvcmVJbmZvVXBncmFk
ZVRvVjIubW0gKi8sCisJCQkJNDlBRUVGNkIyNDA3MzU4NjAwQzg3RTRDIC8qIEluQXBwQnJvd3Nl
clByaXZhY3kubW0gKi8sCiAJCQkJNTFBNTg3ODQxRDI3MkVGMzAwNEJBOUFGIC8qIEluZGV4ZWRE
QkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gKi8sCiAJCQkJQ0FCMEZGNTQyMjMzMkMzQTAwNkNBNUIw
IC8qIEluZGV4ZWREQkZpbGVOYW1lLm1tICovLAogCQkJCTkzOTlCQTAxMjM3MTEwQUUwMDgzOTJC
RiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSAqLywKQEAgLTM0OTAsNiArMzQ5OSw4IEBACiAJ
CQkJRjQ1QjYzRkExRjE5N0YzMzAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sICovLAogCQkJCTMx
MjhBODE0MjM3NjQwRkQwMEQ5MEQ0MCAvKiBpbWFnZS5odG1sICovLAogCQkJCTcyODNBOUNFMjJG
QTZCQkUwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgKi8sCisJCQkJNDlB
RUVGNkYyNDA3M0Y5MzAwQzg3RTRDIC8qIGluLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2Vy
LWFnZW50LXNjcmlwdC5odG1sICovLAorCQkJCTQ5QUVFRjZFMjQwNzNGOTMwMEM4N0U0QyAvKiBp
bi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbCAqLywKIAkJCQk5MzRG
QTVDNzIwRjY5RkVFMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi8sCiAJCQkJOTM0RkE1
QzYyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLywKIAkJCQk5MzRG
QTVDNTIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsICovLApAQCAtNDg0
NSw2ICs0ODU2LDcgQEAKIAkJCQk1MTA0Nzc3ODFEMjk5MjNCMDA5NzQ3RUIgLyogSURCRGVsZXRl
UmVjb3ZlcnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTEwRkNGQTFFMDFDREI4MDA2RjhEMEIg
LyogSURCSW5kZXhVcGdyYWRlVG9WMi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQkNCQzgzMjND
QzZGMkEwMENBMjIyMSAvKiBJREJPYmplY3RTdG9yZUluZm9VcGdyYWRlVG9WMi5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTQ5QUVFRjZEMjQwNzM1OUQwMEM4N0U0QyAvKiBJbkFwcEJyb3dzZXJQcml2
YWN5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIElu
ZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDQUIwRkY1
NTIyMzMyQzU3MDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk5Mzk5QkEwNDIzNzExMTQwMDA4MzkyQkYgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWU0NTFl
MzU1YzJkODgxNTQ1NTE3OTEyNGQ3MDcxMTg4Mjc0MDgzCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1t
CkBAIC0wLDAgKzEsMTc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVn
YXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25m
aWd1cmF0aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KKyNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworc3RhdGljIGJvb2wgaXNEb25lOworc3RhdGljIE5TU3RyaW5nICogY29uc3QgdXNlclNj
cmlwdFNvdXJjZSA9IEAid2luZG93LndrVXNlclNjcmlwdEluamVjdGVkID0gdHJ1ZSI7CisKK0Bp
bnRlcmZhY2UgVGVzdEluQXBwQnJvd3NlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3Qg
PFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0SW5B
cHBCcm93c2VyU2NyaXB0TWVzc2FnZUhhbmRsZXIKKworLSAodm9pZCl1c2VyQ29udGVudENvbnRy
b2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRp
ZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAg
aXNEb25lID0gdHJ1ZTsKK30KKworQGVuZAorCitURVNUKFdlYktpdCwgTm9uQXBwQm91bmREb21h
aW5GYWlsZWRVc2VyU2NyaXB0cykKK3sKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHRO
UyhbW1Rlc3RJbkFwcEJyb3dzZXJTY3JpcHRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwor
ICAgIGF1dG8gdXNlclNjcmlwdCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIGluaXRX
aXRoU291cmNlOnVzZXJTY3JpcHRTb3VyY2UgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6WUVTXSk7CisKKyAgICBX
S1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAg
ICBbY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RJbkFwcEJyb3dzZXJQcml2YWN5
Il07CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0SW5BcHBCcm93c2VyUHJp
dmFjeUVuYWJsZWQ6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImlu
LWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLXNjcmlwdCIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRG
aW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7
CisKKyAgICBbY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTY3Jp
cHRJbW1lZGlhdGVseTp1c2VyU2NyaXB0LmdldCgpXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5qZWN0ZWQiIGNvbXBsZXRpb25IYW5kbGVy
Ol4oaWQgX051bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAg
ICAgICBFWFBFQ1RfRVEoWUVTLCBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAIndpbmRvdy53a1VzZXJTY3JpcHRJbmplY3RlZCJdIGJvb2xWYWx1ZV0pOworICAgICAgICBF
WFBFQ1RfRkFMU0UoISFlcnJvcik7CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisK
KyAgICBpc0RvbmUgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9u
ZSk7CisKKyAgICBpc0RvbmUgPSBmYWxzZTsKKworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEluQXBwQnJvd3NlclByaXZhY3lFbmFibGVkOllFU107CisgICAgYXV0byB3ZWJW
aWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisKKyAgICBbd2ViVmlldzIgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
OworCisgICAgW2NvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU2Ny
aXB0SW1tZWRpYXRlbHk6dXNlclNjcmlwdC5nZXQoKV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRl
SmF2YVNjcmlwdDpAIndpbmRvdy53a1VzZXJTY3JpcHRJbmplY3RlZCIgY29tcGxldGlvbkhhbmRs
ZXI6XihpZCBfTnVsbGFibGUgcmVzdWx0LCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9GQUxTRShyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRSghIWVycm9y
KTsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIGlzRG9uZSA9IGZhbHNl
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKK30KKworVEVTVChXZWJL
aXQsIE5vbkFwcEJvdW5kRG9tYWluRmFpbGVkVXNlckFnZW50U2NyaXB0cykKK3sKKyAgICBXS1dl
YlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxl
ZDpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW4tYXBwLWJyb3dz
ZXItcHJpdmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlz
aE5hdmlnYXRpb25dOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93
LndrVXNlclNjcmlwdEluamVjdGVkIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSBy
ZXN1bHQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX0VRKFlF
UywgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2Vy
U2NyaXB0SW5qZWN0ZWQiXSBib29sVmFsdWVdKTsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAg
ICB9XTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNEb25lKTsKKworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEluQXBw
QnJvd3NlclByaXZhY3lFbmFibGVkOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBbd2ViVmlldzIgX3Rlc3Rfd2FpdEZvckRp
ZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpA
IndpbmRvdy53a1VzZXJTY3JpcHRJbmplY3RlZCIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBfTnVs
bGFibGUgcmVzdWx0LCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVD
VF9GQUxTRShyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRSghIWVycm9yKTsKKyAgICAgICAg
aXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKK30KKworVEVTVChXZWJLaXQsIFN3YXBCYWNr
VG9BcHBCb3VuZFJlamVjdHNVc2VyU2NyaXB0KQoreworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIg
PSBhZG9wdE5TKFtbVGVzdEluQXBwQnJvd3NlclNjcmlwdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CisgICAgYXV0byB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxv
Y10gaW5pdFdpdGhTb3VyY2U6dXNlclNjcmlwdFNvdXJjZSBpbmplY3Rpb25UaW1lOldLVXNlclNj
cmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpZRVNdKTsK
KworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOworICAgIFtjb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEluQXBwQnJvd3Nl
clByaXZhY3kiXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRJbkFwcEJy
b3dzZXJQcml2YWN5RW5hYmxlZDpZRVNdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAImluLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLXNjcmlwdCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmlzRG9uZSk7CisKKyAgICBbY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgX2Fk
ZFVzZXJTY3JpcHRJbW1lZGlhdGVseTp1c2VyU2NyaXB0LmdldCgpXTsKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5qZWN0ZWQiIGNvbXBsZXRp
b25IYW5kbGVyOl4oaWQgX051bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJv
cikgeworICAgICAgICBFWFBFQ1RfRkFMU0UocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUo
ISFlcnJvcik7CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBpc0RvbmUg
PSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBp
c0RvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbjpZRVMgY29tcGxldGlvbkhhbmRsZXI6IF4odm9pZCkgeworICAgICAgICBpc0RvbmUgPSB0
cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAg
ICAKKyAgICBpc0RvbmUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi51c2VyQ29udGVudENv
bnRyb2xsZXIgX2FkZFVzZXJTY3JpcHRJbW1lZGlhdGVseTp1c2VyU2NyaXB0LmdldCgpXTsKKyAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5qZWN0
ZWQiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgX051bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAqIF9O
dWxsYWJsZSBlcnJvcikgeworICAgICAgICBFWFBFQ1RfRkFMU0UocmVzdWx0KTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoISFlcnJvcik7CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKKyNlbmRpZiAvLyBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9pbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRlc3QtdXNlci1hZ2VudC1z
Y3JpcHQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaW4tYXBw
LWJyb3dzZXItcHJpdmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2ZkNTAyNmMxYWRkYmI5ODRhM2MyYzVkYTBjOWNiYTFkOTg4ZWI1YQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaW4tYXBwLWJyb3dzZXIt
cHJpdmFjeS10ZXN0LXVzZXItYWdlbnQtc2NyaXB0Lmh0bWwKQEAgLTAsMCArMSw1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICB3aW5kb3cud2tVc2VyU2NyaXB0SW5q
ZWN0ZWQgPSB0cnVlOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL2luLWFwcC1icm93c2VyLXByaXZhY3ktdGVzdC11c2VyLXNjcmlw
dC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pbi1hcHAtYnJv
d3Nlci1wcml2YWN5LXRlc3QtdXNlci1zY3JpcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTQxYTRmNjU1
Y2RiNDY1ODM1YmJjOTJlYjZjYWI0MTA0MDA1OTY3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pbi1hcHAtYnJvd3Nlci1wcml2YWN5LXRl
c3QtdXNlci1zY3JpcHQuaHRtbApAQCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJv
ZHk+Cis8c2NyaXB0PgorICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RJbkFw
cEJyb3dzZXJQcml2YWN5LnBvc3RNZXNzYWdlKCJkb25lIik7Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>