<?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>219763</bug_id>
          
          <creation_ts>2020-12-10 16:52:59 -0800</creation_ts>
          <short_desc>Accept click measurement data from hosting application</short_desc>
          <delta_ts>2020-12-10 23:41:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1713772</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-10 16:52:59 -0800</bug_when>
    <thetext>Accept click measurement data from hosting application</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713773</commentid>
    <comment_count>1</comment_count>
      <attachid>415945</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-10 16:56:56 -0800</bug_when>
    <thetext>Created attachment 415945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713774</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-10 16:56:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/72121094&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713789</commentid>
    <comment_count>3</comment_count>
      <attachid>415945</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-12-10 17:48:57 -0800</bug_when>
    <thetext>Comment on attachment 415945
Patch

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

r+ with comments.

&gt; Source/WebCore/loader/PrivateClickMeasurement.h:243
&gt; +        , m_purchaser { WTFMove(purchaser) }

These will be in-memory-only for now since we&apos;re not updating the persistence layer. That&apos;s perfectly OK. However, it would be nice to restrict their size. I believe we&apos;ve said 100 characters max. Not a deal breaker.

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:79
&gt; +// FIXME: Move this to UIKitSPI.h

Do we need a bug tracking this?

&gt; Source/WebKit/UIProcess/WebPageProxy.h:2909
&gt; +    Optional&lt;WebCore::PrivateClickMeasurement&gt; m_privateClickMeasurement;

I wonder if this is too generic of a member name. Isn&apos;t m_newPageNavigationPrivateClickMeasurement a pretty good description even with your patch?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:56
&gt; +    _sourceIdentifier = 42;

Could we add a test with a too large sourceIdentifier? That&apos;s the most important input validation here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713790</commentid>
    <comment_count>4</comment_count>
      <attachid>415945</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-10 17:57:48 -0800</bug_when>
    <thetext>Comment on attachment 415945
Patch

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

&gt;&gt; Source/WebCore/loader/PrivateClickMeasurement.h:243
&gt;&gt; +        , m_purchaser { WTFMove(purchaser) }
&gt; 
&gt; These will be in-memory-only for now since we&apos;re not updating the persistence layer. That&apos;s perfectly OK. However, it would be nice to restrict their size. I believe we&apos;ve said 100 characters max. Not a deal breaker.

This was just to make the API getter work, which needs this information in memory to create a new event attribution.

&gt;&gt; Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:79
&gt;&gt; +// FIXME: Move this to UIKitSPI.h
&gt; 
&gt; Do we need a bug tracking this?

I think I should do it in this same patch.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.h:2909
&gt;&gt; +    Optional&lt;WebCore::PrivateClickMeasurement&gt; m_privateClickMeasurement;
&gt; 
&gt; I wonder if this is too generic of a member name. Isn&apos;t m_newPageNavigationPrivateClickMeasurement a pretty good description even with your patch?

In the first patch it&apos;s not, but if I move it to WKWebViewConfiguration, it will be.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:56
&gt;&gt; +    _sourceIdentifier = 42;
&gt; 
&gt; Could we add a test with a too large sourceIdentifier? That&apos;s the most important input validation here.

sourceIdentifier is a uint8_t, which doesn&apos;t allow sourceIdentifier to be larger than 255.  The language prevents me from overflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713800</commentid>
    <comment_count>5</comment_count>
      <attachid>415960</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-10 19:18:37 -0800</bug_when>
    <thetext>Created attachment 415960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713805</commentid>
    <comment_count>6</comment_count>
      <attachid>415963</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-10 20:01:39 -0800</bug_when>
    <thetext>Created attachment 415963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713837</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-10 23:41:41 -0800</bug_when>
    <thetext>Committed r270669: &lt;https://trac.webkit.org/changeset/270669&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415963.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415945</attachid>
            <date>2020-12-10 16:56:56 -0800</date>
            <delta_ts>2020-12-10 19:18:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219763-20201210165655.patch</filename>
            <type>text/plain</type>
            <size>29720</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWUzMTUxMzZmMjI2MTJl
ODY5NDQ4ZDc3ZmQyYzJmMjA1ZWRkOGI0Yi4uNzk1Y2IxZjdmZTJhNTE4ZGExOWEyNGFhOWYyNzNi
OTU5MjgwNTExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEyLTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWNjZXB0
IGNsaWNrIG1lYXN1cmVtZW50IGRhdGEgZnJvbSBob3N0aW5nIGFwcGxpY2F0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk3NjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcyMTIxMDk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgYW4gQVBJIHRlc3QuCisKKyAgICAgICAgKiBs
b2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlSUQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJjZURlc2NyaXB0aW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwdXJjaGFz
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpzb3Vy
Y2VJRCk6IERlbGV0ZWQuCisKIDIwMjAtMTItMTAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIExpbmUgYXZhaWxhYmxlIHdpZHRoIGNvbXB1dGF0
aW9uIHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgY29udGVudCBsb2dpY2FsIHJpZ2h0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggOTY5YmJiZDFjNTE0ZWY1ZGYzNTc5NTFiY2E2OTE0NDA0Nzk5MDQyNS4u
YjFiOWE4ZmExNDcwZTc2NWI5ZWJlZTY2ZjUwZGU4MTg3MGYwZjBkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTItMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBY2NlcHQgY2xpY2sgbWVhc3VyZW1lbnQg
ZGF0YSBmcm9tIGhvc3RpbmcgYXBwbGljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTc2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIx
MjEwOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwYWwvaW9zL1VJS2l0U29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvaW9zL1VJS2l0U29mdExp
bmsubW06CisKIDIwMjAtMTItMDcgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNv
bT4KIAogICAgICAgICBbQ01ha2VdIFJlbW92ZSBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGMzOTQ0Zjc4NGZkYjM0YTlmOGRkZThjZmI1NTQ5YmVmM2I5MjFlMWQuLmQ1ZTYzOTM1
YmRkOTdmN2UzMWViMzNkYWM3NTQzZDAxYWFiN2JhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMjAtMTItMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBBY2NlcHQgY2xpY2sgbWVhc3VyZW1lbnQgZGF0YSBmcm9tIGhvc3Rpbmcg
YXBwbGljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxOTc2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIxMjEwOTQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmJ1aWxkUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRGcm9tRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlRm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldEV2ZW50QXR0
cmlidXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZXZlbnRBdHRyaWJ1dGlvbl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBjb25zdCk6CisKIDIwMjAtMTItMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIElDRSBkb2VzIG5vdCByZXNvbHZlIGZvciBgdHVybnNgIHJl
bGF5IGNhbmRpZGF0ZXMgcm9vdGVkIGluIExldHNFbmNyeXB0IENBCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2lvcy9VSUtpdFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2lvcy9VSUtpdFNvZnRMaW5rLmgKaW5kZXggNDhlMmM1ZDg4NjYxYTkyZDc2YTJmOWJk
NGExMmQ0M2M4MDJkOWQzMS4uZGNiNmY4MzNhNTMwM2RlODQ5ZThhZjVmNDY0YzRmZGQ2MDMyZGMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pb3MvVUlLaXRTb2Z0TGluay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvaW9zL1VJS2l0U29mdExpbmsuaApAQCAtNjIs
NiArNjIsNyBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFVJVHJhaXRDb2xsZWN0
aW9uKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBVSVZpZXcpCiBTT0ZUX0xJTktf
Q0xBU1NfRk9SX0hFQURFUihQQUwsIFVJVmlld0NvbnRyb2xsZXIpCiBTT0ZUX0xJTktfQ0xBU1Nf
Rk9SX0hFQURFUihQQUwsIFVJV2luZG93KQorU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFM
LCBfVUlFdmVudEF0dHJpYnV0aW9uKTsKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgVUlLaXQsIF9VSUtpdEdldFRleHRFZmZlY3RzQ2F0YWxvZywgQ1VJQ2F0YWxvZyAqLCAodm9p
ZCksICgpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBVSUtpdCwgVUlBY2Nl
c3NpYmlsaXR5SXNHcmF5c2NhbGVFbmFibGVkLCBCT09MLCAodm9pZCksICgpKQogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBVSUtpdCwgVUlBY2Nlc3NpYmlsaXR5SXNJbnZlcnRD
b2xvcnNFbmFibGVkLCBCT09MLCAodm9pZCksICgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9pb3MvVUlLaXRTb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
aW9zL1VJS2l0U29mdExpbmsubW0KaW5kZXggNTM5YmM2NDg2ZjQ2MDdmMjY4NWYwODBiZTlkMmUy
ZDFmMDIyYzE5OS4uNDU3NWI3MDFkMDQ0MjgwZmY0MzJmZjU0MjE4ODU2YmMwMmNjMmU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9pb3MvVUlLaXRTb2Z0TGluay5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2lvcy9VSUtpdFNvZnRMaW5rLm1tCkBAIC02Miw2ICs2
Miw3IEBAIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFBBTCwgVUlLaXQsIFVJVHJhaXRDb2xs
ZWN0aW9uKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UoUEFMLCBVSUtpdCwgVUlWaWV3KQog
U09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UoUEFMLCBVSUtpdCwgVUlWaWV3Q29udHJvbGxlcikK
IFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFBBTCwgVUlLaXQsIFVJV2luZG93KQorU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0UoUEFMLCBVSUtpdCwgX1VJRXZlbnRBdHRyaWJ1dGlvbik7CiBT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFVJS2l0LCBfVUlLaXRHZXRUZXh0RWZm
ZWN0c0NhdGFsb2csIENVSUNhdGFsb2cgKiwgKHZvaWQpLCAoKSkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFBBTCwgVUlLaXQsIFVJQWNjZXNzaWJpbGl0eUlzR3JheXNjYWxlRW5hYmxl
ZCwgQk9PTCwgKHZvaWQpLCAoKSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwg
VUlLaXQsIFVJQWNjZXNzaWJpbGl0eUlzSW52ZXJ0Q29sb3JzRW5hYmxlZCwgQk9PTCwgKHZvaWQp
LCAoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
LmgKaW5kZXggZmNhZDU1YTk1ZGZhYzA5MTU5ZTAzYzhjNmEyOTBlZmZiNDcxYzY3ZS4uNzg1ZWI2
N2I3YWE5ODM4MmZiODg1MmJkY2JhNmE4MThkNzU0MzE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTIzNSwxMCArMjM1LDEyIEBA
IHB1YmxpYzoKICAgICB9OwogCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSA9IGRlZmF1
bHQ7Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoU291cmNlSUQgc291cmNlSUQsIGNvbnN0
IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRl
T25TaXRlLCBXYWxsVGltZSB0aW1lT2ZBZENsaWNrID0gV2FsbFRpbWU6Om5vdygpKQorICAgIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KFNvdXJjZUlEIHNvdXJjZUlELCBjb25zdCBTb3VyY2VTaXRl
JiBzb3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSwgU3Ry
aW5nJiYgc291cmNlRGVzY3JpcHRpb24gPSB7IH0sIFN0cmluZyYmIHB1cmNoYXNlciA9IHsgfSwg
V2FsbFRpbWUgdGltZU9mQWRDbGljayA9IFdhbGxUaW1lOjpub3coKSkKICAgICAgICAgOiBtX3Nv
dXJjZUlEIHsgc291cmNlSUQgfQogICAgICAgICAsIG1fc291cmNlU2l0ZSB7IHNvdXJjZVNpdGUg
fQogICAgICAgICAsIG1fYXR0cmlidXRlT25TaXRlIHsgYXR0cmlidXRlT25TaXRlIH0KKyAgICAg
ICAgLCBtX3NvdXJjZURlc2NyaXB0aW9uIHsgV1RGTW92ZShzb3VyY2VEZXNjcmlwdGlvbikgfQor
ICAgICAgICAsIG1fcHVyY2hhc2VyIHsgV1RGTW92ZShwdXJjaGFzZXIpIH0KICAgICAgICAgLCBt
X3RpbWVPZkFkQ2xpY2sgeyB0aW1lT2ZBZENsaWNrIH0KICAgICB7CiAgICAgfQpAQCAtMjU0LDEw
ICsyNTYsMTMgQEAgcHVibGljOgogICAgIFdhbGxUaW1lIHRpbWVPZkFkQ2xpY2soKSBjb25zdCB7
IHJldHVybiBtX3RpbWVPZkFkQ2xpY2s7IH0KICAgICBPcHRpb25hbDxXYWxsVGltZT4gZWFybGll
c3RUaW1lVG9TZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7IH07CiAg
ICAgdm9pZCBzZXRFYXJsaWVzdFRpbWVUb1NlbmQoV2FsbFRpbWUgdGltZSkgeyBtX2VhcmxpZXN0
VGltZVRvU2VuZCA9IHRpbWU7IH0KLSAgICBTb3VyY2VJRCBzb3VyY2VJRCgpIHsgcmV0dXJuIG1f
c291cmNlSUQ7IH0KKyAgICBjb25zdCBTb3VyY2VJRCYgc291cmNlSUQoKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZUlEOyB9CiAgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gYXR0
cmlidXRpb25UcmlnZ2VyRGF0YSgpIHsgcmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsg
fQogICAgIHZvaWQgc2V0QXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpIHsgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShh
dHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsgfQogCisgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNj
cmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KKyAgICBjb25z
dCBTdHJpbmcmIHB1cmNoYXNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CisKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiBkZWNvZGUoRGVjb2RlciYpOwogCkBAIC0yNjgsNiArMjczLDggQEAgcHJpdmF0
ZToKICAgICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgIFNvdXJjZVNpdGUgbV9zb3VyY2VTaXRl
OwogICAgIEF0dHJpYnV0ZU9uU2l0ZSBtX2F0dHJpYnV0ZU9uU2l0ZTsKKyAgICBTdHJpbmcgbV9z
b3VyY2VEZXNjcmlwdGlvbjsKKyAgICBTdHJpbmcgbV9wdXJjaGFzZXI7CiAgICAgV2FsbFRpbWUg
bV90aW1lT2ZBZENsaWNrOwogCiAgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwpAQCAtMjc3LDcgKzI4NCwxNCBAQCBwcml2YXRlOgog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgbV9zb3VyY2VJ
RC5pZCA8PCBtX3NvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4gPDwgbV9hdHRyaWJ1dGVPblNp
dGUucmVnaXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZBZENsaWNrIDw8IG1fYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKKyAgICBlbmNvZGVyIDw8IG1fc291
cmNlSUQuaWQKKyAgICAgICAgPDwgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluCisgICAg
ICAgIDw8IG1fYXR0cmlidXRlT25TaXRlLnJlZ2lzdHJhYmxlRG9tYWluCisgICAgICAgIDw8IG1f
c291cmNlRGVzY3JpcHRpb24KKyAgICAgICAgPDwgbV9wdXJjaGFzZXIKKyAgICAgICAgPDwgbV90
aW1lT2ZBZENsaWNrCisgICAgICAgIDw8IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YQorICAgICAg
ICA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
QEAgLTI5OCw2ICszMTIsMTYgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICBpZiAoIWF0
dHJpYnV0ZU9uUmVnaXN0cmFibGVEb21haW4pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAgICAgCisgICAgT3B0aW9uYWw8U3RyaW5nPiBzb3VyY2VEZXNjcmlwdGlvbjsKKyAgICBkZWNv
ZGVyID4+IHNvdXJjZURlc2NyaXB0aW9uOworICAgIGlmICghc291cmNlRGVzY3JpcHRpb24pCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8U3RyaW5nPiBw
dXJjaGFzZXI7CisgICAgZGVjb2RlciA+PiBwdXJjaGFzZXI7CisgICAgaWYgKCFwdXJjaGFzZXIp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCiAgICAgT3B0aW9uYWw8V2FsbFRp
bWU+IHRpbWVPZkFkQ2xpY2s7CiAgICAgZGVjb2RlciA+PiB0aW1lT2ZBZENsaWNrOwogICAgIGlm
ICghdGltZU9mQWRDbGljaykKQEAgLTMxMyw3ICszMzcsMTQgQEAgT3B0aW9uYWw8UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2QKICAgICBpZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICAgICAKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFNvdXJjZUlEIHsgV1RGTW92ZSgqc291cmNlSUQpIH0sIFNvdXJjZVNpdGUgeyBXVEZNb3ZlKCpz
b3VyY2VSZWdpc3RyYWJsZURvbWFpbikgfSwgQXR0cmlidXRlT25TaXRlIHsgV1RGTW92ZSgqYXR0
cmlidXRlT25SZWdpc3RyYWJsZURvbWFpbikgfSB9OworICAgIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uIHsKKyAgICAgICAgU291cmNlSUQgeyBXVEZNb3ZlKCpzb3VyY2VJRCkg
fSwKKyAgICAgICAgU291cmNlU2l0ZSB7IFdURk1vdmUoKnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWlu
KSB9LAorICAgICAgICBBdHRyaWJ1dGVPblNpdGUgeyBXVEZNb3ZlKCphdHRyaWJ1dGVPblJlZ2lz
dHJhYmxlRG9tYWluKSB9LAorICAgICAgICBXVEZNb3ZlKCpzb3VyY2VEZXNjcmlwdGlvbiksCisg
ICAgICAgIFdURk1vdmUoKnB1cmNoYXNlciksCisgICAgICAgIFdURk1vdmUoKnRpbWVPZkFkQ2xp
Y2spCisgICAgfTsKICAgICBhdHRyaWJ1dGlvbi5tX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBX
VEZNb3ZlKCphdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKICAgICBhdHRyaWJ1dGlvbi5tX2Vhcmxp
ZXN0VGltZVRvU2VuZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApp
bmRleCAyNGE5NTFlYzA2YjBkOTQ2OTFiOWEyNDUyZWI0NTBlM2M4YjIwYzJiLi45N2ZkYjRjZDBj
YjkyYjFhNTA5ZTVlYjA2NDU0MWE4ZTUzNDYwNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTI5MzksNyArMjkzOSw3
IEBAIFByaXZhdGVDbGlja01lYXN1cmVtZW50IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpidWlsZFByaXZhdGVDbGlja01lCiAgICAgYXV0byBzb3VyY2VJRCA9IHN0YXRlbWVu
dC0+Z2V0Q29sdW1uSW50KDIpOwogICAgIGF1dG8gdGltZU9mQWRDbGljayA9IGF0dHJpYnV0aW9u
VHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRl
ZCA/IHN0YXRlbWVudC0+Z2V0Q29sdW1uRG91YmxlKDUpIDogc3RhdGVtZW50LT5nZXRDb2x1bW5E
b3VibGUoMyk7CiAKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbihXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoc291cmNlSUQpLCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZShSZWdpc3RyYWJsZURvbWFpbjo6
dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKHNvdXJjZVNpdGVEb21h
aW4pKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZShS
ZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3Ry
aW5nKGF0dHJpYnV0ZU9uU2l0ZURvbWFpbikpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGlt
ZU9mQWRDbGljaykpOworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChzb3VyY2VJRCksIFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlKFJlZ2lzdHJhYmxlRG9tYWlu
Ojp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoc291cmNlU2l0ZURv
bWFpbikpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRl
KFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5T
dHJpbmcoYXR0cmlidXRlT25TaXRlRG9tYWluKSksIHsgfSwgeyB9LCBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHModGltZU9mQWRDbGljaykpOwogICAgIAogICAgIGlmIChhdHRyaWJ1dGlvblR5cGUg
PT0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkF0dHJpYnV0ZWQpIHsK
ICAgICAgICAgYXV0byBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gc3RhdGVtZW50LT5nZXRDb2x1
bW5JbnQoMyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
LmgKaW5kZXggNzYxYTFkYTBmNjViMzY5OTdiYWI0OWU2NmMyYzI4ZTlmZjBiMGM4Yy4uYWU0MDM4
ODQ3YmExZjY2MjMzYmIxMjUwMjU5YzcyYWNkMjcwYWNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaApAQCAtNDUsNiArNDUsNyBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogQGNsYXNzIFdLUERGQ29uZmlndXJhdGlvbjsKIEBjbGFzcyBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbjsKIEBjbGFzcyBXS1dlYlZpZXdDb25maWd1cmF0aW9uOworQGNs
YXNzIF9VSUV2ZW50QXR0cmlidXRpb247CiAKIEBwcm90b2NvbCBXS05hdmlnYXRpb25EZWxlZ2F0
ZTsKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA4NTRiMjMzMTAxMzJlN2Rh
ZGVlNjQ5M2VmNzYzYTE2MTgwNzVkMGRjLi42OTE5MzNlZTg5ODExYWUwN2M3ZGRhN2ZhOGIxZDM3
ZmI3MzJiODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTExMSw2ICsxMTEsNyBAQCB0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIEBjbGFzcyBXS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZTsKIEBjbGFzcyBXS0ZyYW1lSW5mbzsKIEBjbGFzcyBXS1dlYnBhZ2VQcmVmZXJlbmNlczsK
K0BjbGFzcyBfVUlFdmVudEF0dHJpYnV0aW9uOwogQGNsYXNzIF9XS0FwcGxpY2F0aW9uTWFuaWZl
c3Q7CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CiBAY2xhc3MgX1dLRnJhbWVUcmVlTm9kZTsKQEAg
LTM2Myw2ICszNjQsOCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogQGludGVyZmFjZSBXS1dlYlZp
ZXcgKFdLUHJpdmF0ZUlPUykKIAorQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0RXZlbnRBdHRyaWJ1dGlvbjopIF9VSUV2ZW50QXR0cmlidXRpb24gKl9ldmVudEF0dHJpYnV0
aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2NvbnRlbnRWaXNpYmxlUmVjdCBXS19BUElfQVZBSUxB
QkxFKGlvcygxMC4wKSk7CiAKIC8vIERFUkVDQVRFRDogVGhlIHNldHRlcnMgb2YgdGhlIHRocmVl
IGZvbGxvd2luZyBmdW5jdGlvbiBhcmUgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBvdmVycmlkZUxh
eW91dFBhcmFtZXRlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDg2MmI5NDg1
ZWYzODk0ZTQ0NTg3N2Y1MTYzNWZhNzhkM2NjZDg0ZmQuLjk3NDQzNDEwMWY4NGVjNTI0OTE4YWJj
MTRjM2YzMWZiN2FiZTZiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCkBAIC04Myw0
ICs4Myw4IEBAIHR5cGVkZWYgZW51bSB7CiAtICh2b2lkKV9kb0FmdGVyQWN0aXZpdHlTdGF0ZVVw
ZGF0ZToodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CiAKIC0gKE5TTnVtYmVyICop
X3N1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOihCT09MKW92ZXJyaWRlVGltZXIgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmc6KE5TVVJMICopdXJs
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rl
c3RpbmcubW0KaW5kZXggZjIyNDgzOWJkMGJlMjg1MWQ2YzM4MmMyODA0YjY3Y2I3MWM1M2Y2Ni4u
MTkyMzM2ZGRlNzk2ZmE4MmM5MjY3MmQ1NzQ0ZGQ5ZTU1MTY1MWQyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KQEAg
LTI5Niw2ICsyOTYsMjAgQEAKICAgICByZXR1cm4gQChfcGFnZS0+c3VzcGVuZE1lZGlhUGxheWJh
Y2tDb3VudGVyKCkpOwogfQogCistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nOihCT09MKW92ZXJyaWRlVGltZXIgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+c2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhvdmVycmlkZVRpbWVy
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKKy0gKHZvaWQpX3Nl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmc6KE5TVVJMICop
dXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7
CisgICAgX3BhZ2UtPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRl
c3RpbmcodXJsLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhh
bmRsZXIpXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIC0g
KHZvaWQpX2RpZFByZXNlbnRDb250YWN0UGlja2VyCiB7CiAgICAgLy8gRm9yIHN1YmNsYXNzZXMg
dG8gb3ZlcnJpZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tCmluZGV4IDRiNzY2MmExNjQ1OTRkZTZlNDNmZTQ0NDQ4ZTA5MjM3ZDcyYmVmMzIu
LjNlNTU3ODJlNmJiNzFjYTE3ODdmZGJkNDQ5ZWE2MGVhNzRlYzRkM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC02Miw2ICs2Miwx
MCBAQAogI2ltcG9ydCAiV0tEYXRhRGV0ZWN0b3JUeXBlc0ludGVybmFsLmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0IDxwYWwvaW9zL1VJS2l0U29mdExpbmsu
aD4KKyNlbmRpZgorCiAjZGVmaW5lIEZPUldBUkRfQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcoX2Fj
dGlvbikgXAogLSAodm9pZClfYWN0aW9uOihpZClzZW5kZXIgXAogeyBcCkBAIC03MSw2ICs3NSwy
MCBAQAogCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19J
RihfcGFnZSAmJiBfcGFnZS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFZpZXdTdGF0ZSwg
X19WQV9BUkdTX18pCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorLy8gRklYTUU6IE1vdmUg
dGhpcyB0byBVSUtpdFNQSS5oCitAaW50ZXJmYWNlIF9VSUV2ZW50QXR0cmlidXRpb24gOiBOU09i
amVjdCA8TlNDb3B5aW5nPgorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbiwgcmVhZG9ubHkp
IHVpbnQ4X3Qgc291cmNlSWRlbnRpZmllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBy
ZWFkb25seSkgTlNVUkwgKmF0dHJpYnV0ZU9uOworQHByb3BlcnR5IChub25hdG9taWMsIC8qbnVs
bGFibGUsKi8gY29weSwgcmVhZG9ubHkpIE5TVVJMICpyZXBvcnRFbmRwb2ludDsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNTdHJpbmcgKnNvdXJjZURlc2NyaXB0aW9u
OworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqcHVyY2hh
c2VyOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNlSWRlbnRpZmllcjoodWludDhfdClz
b3VyY2VJZGVudGlmaWVyIGF0dHJpYnV0ZU9uOihOU1VSTCAqKWF0dHJpYnV0ZU9uIHNvdXJjZURl
c2NyaXB0aW9uOihOU1N0cmluZyAqKXNvdXJjZURlc2NyaXB0aW9uIHB1cmNoYXNlcjooTlNTdHJp
bmcgKilwdXJjaGFzZXI7CistIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKKysg
KGluc3RhbmNldHlwZSluZXcgTlNfVU5BVkFJTEFCTEU7CitAZW5kCisjZW5kaWYKKwogc3RhdGlj
IGNvbnN0IFNlY29uZHMgZGVsYXlCZWZvcmVOb1Zpc2libGVDb250ZW50c1JlY3RzTG9nZ2luZyA9
IDFfczsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGRlbGF5QmVmb3JlTm9Db21taXRzTG9nZ2luZyA9
IDVfczsKIApAQCAtMjQwMCw2ICsyNDE4LDM3IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihVSVNlCiAK
IEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykKIAorLSAodm9pZClfc2V0
RXZlbnRBdHRyaWJ1dGlvbjooX1VJRXZlbnRBdHRyaWJ1dGlvbiAqKWF0dHJpYnV0aW9uCit7Cisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoYXR0cmlidXRpb24pIHsKKyAgICAgICAg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgbWVhc3VyZW1lbnQoCisgICAgICAgICAg
ICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoYXR0cmlidXRpb24u
c291cmNlSWRlbnRpZmllciksCisgICAgICAgICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlU2l0ZShhdHRyaWJ1dGlvbi5yZXBvcnRFbmRwb2ludCksCisgICAgICAg
ICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlKGF0
dHJpYnV0aW9uLmF0dHJpYnV0ZU9uKSwKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uLnNvdXJjZURl
c2NyaXB0aW9uLAorICAgICAgICAgICAgYXR0cmlidXRpb24ucHVyY2hhc2VyCisgICAgICAgICk7
CisgICAgICAgIF9wYWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKG1lYXN1
cmVtZW50KSk7CisgICAgfSBlbHNlCisgICAgICAgIF9wYWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChXVEY6Om51bGxvcHQpOworI2VuZGlmCit9CisKKy0gKF9VSUV2ZW50QXR0cmlidXRp
b24gKilfZXZlbnRBdHRyaWJ1dGlvbgoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
YXV0byYgbWVhc3VyZW1lbnQgPSBfcGFnZS0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAg
ICBpZiAoIW1lYXN1cmVtZW50IHx8ICFtZWFzdXJlbWVudC0+c291cmNlSUQoKS5pc1ZhbGlkKCkp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBhdXRvIGF0dHJpYnV0ZU9uVVJMID0gVVJMKFVS
TCgpLCBtYWtlU3RyaW5nKCJodHRwczovLyIsIG1lYXN1cmVtZW50LT5hdHRyaWJ1dGVPblNpdGUo
KS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSkpOworICAgIHJldHVybiBbW1BBTDo6YWxsb2Nf
VUlFdmVudEF0dHJpYnV0aW9uSW5zdGFuY2UoKSBpbml0V2l0aFNvdXJjZUlkZW50aWZpZXI6bWVh
c3VyZW1lbnQtPnNvdXJjZUlEKCkuaWQgYXR0cmlidXRlT246YXR0cmlidXRlT25VUkwgc291cmNl
RGVzY3JpcHRpb246bWVhc3VyZW1lbnQtPnNvdXJjZURlc2NyaXB0aW9uKCkgcHVyY2hhc2VyOm1l
YXN1cmVtZW50LT5wdXJjaGFzZXIoKV0gYXV0b3JlbGVhc2VdOworI2Vsc2UKKyAgICByZXR1cm4g
bmlsOworI2VuZGlmCit9CisKIC0gKENHUmVjdClfY29udGVudFZpc2libGVSZWN0CiB7CiAgICAg
cmV0dXJuIFtzZWxmIGNvbnZlcnRSZWN0OltzZWxmIGJvdW5kc10gdG9WaWV3OnNlbGYuX2N1cnJl
bnRDb250ZW50Vmlld107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBiNWEzY2M3NzEyNjcwNTUzZTVhMjgzYWMzYThiYTQzZmQ2ZDc1YTI3Li4wNWRkMDU2NzIz
NjczYjEzMmJmZTc4MDBlMTNlOGUwOWQ4MmJiMWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ2NjUsOCArNDY2NSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5m
b0RhdGEmCiAKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHByaXZhdGVDbGlja01lYXN1cmVt
ZW50OwotICAgICAgICBpZiAobV9uZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVt
ZW50KQotICAgICAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBtX25ld1BhZ2VOYXZp
Z2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CisgICAgICAgIGlmIChtX3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50KQorICAgICAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBtX3By
aXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgICAgICBlbHNlIGlmIChuYXZpZ2F0aW9uICYmIG5h
dmlnYXRpb24tPnByaXZhdGVDbGlja01lYXN1cmVtZW50KCkpCiAgICAgICAgICAgICBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCA9IG5hdmlnYXRpb24tPnByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7
CiAgICAgICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgewpAQCAtNDY3NCw3ICs0Njc0
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0
YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25J
RCgpLCAqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCAwKTsKICAgICAgICAgfQogICAgIH0KLSAg
ICBtX25ld1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQucmVzZXQoKTsKKyAg
ICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LnJlc2V0KCk7CiAKICAgICBpZiAoZnJhbWUtPmlz
TWFpbkZyYW1lKCkpIHsKICAgICAgICAgbV9tYWluRnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlk
ZXIgPSBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlcjsKQEAgLTU1NTAsNyArNTU1MCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEsIFdlYlBhCiAKICAgICAgICAgbmV3UGFnZS0+bV9zaG91bGRTdXBw
cmVzc0FwcExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uID0gbWFpbkZyYW1lVVJM
Lmhvc3QoKSA9PSByZXF1ZXN0LnVybCgpLmhvc3QoKTsKIAotICAgICAgICBuZXdQYWdlLT5tX25l
d1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDsKKyAgICAgICAgbmV3UGFnZS0+bV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IHBy
aXZhdGVDbGlja01lYXN1cmVtZW50OwogI2lmIEhBVkUoQVBQX1NTTykKICAgICAgICAgbmV3UGFn
ZS0+bV9zaG91bGRTdXBwcmVzc1NPQXV0aG9yaXphdGlvbkluTmV4dE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbiA9IHRydWU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggYzM3N2NiNDFmZjJhZjBhNzVmOTNiMWFmNzM3NmU0ODVhYWI0ZDdiZS4uNjY3OTRi
MjlmYzgyMWJkMGJjYTY4ZWNmNDViMzZlMzlhYWE4MzdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTY3Miw2ICs2NzIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXREZWxlZ2F0ZXNTY3JvbGxpbmcoYm9vbCBkZWxlZ2F0ZXNTY3JvbGxpbmcpIHsgbV9kZWxlZ2F0
ZXNTY3JvbGxpbmcgPSBkZWxlZ2F0ZXNTY3JvbGxpbmc7IH0KICAgICBib29sIGRlbGVnYXRlc1Nj
cm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVsZWdhdGVzU2Nyb2xsaW5nOyB9CiAKKyAgICB2
b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50KE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50PiYmIG1lYXN1cmVtZW50KSB7IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgPSBXVEZNb3ZlKG1lYXN1cmVtZW50KTsgfQorICAgIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSBjb25z
dCB7IHJldHVybiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50OyB9CisKICAgICBlbnVtIGNsYXNz
IEFjdGl2aXR5U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGUgOiBib29sIHsgRGVmZXJyYWJsZSwgSW1t
ZWRpYXRlIH07CiAgICAgZW51bSBjbGFzcyBBY3Rpdml0eVN0YXRlQ2hhbmdlUmVwbHlNb2RlIDog
Ym9vbCB7IEFzeW5jaHJvbm91cywgU3luY2hyb25vdXMgfTsKICAgICB2b2lkIGFjdGl2aXR5U3Rh
dGVEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IG1heUhh
dmVDaGFuZ2VkLCBBY3Rpdml0eVN0YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlID0gQWN0aXZpdHlTdGF0
ZUNoYW5nZURpc3BhdGNoTW9kZTo6RGVmZXJyYWJsZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZVJlcGx5
TW9kZSA9IEFjdGl2aXR5U3RhdGVDaGFuZ2VSZXBseU1vZGU6OkFzeW5jaHJvbm91cyk7CkBAIC0y
OTAzLDcgKzI5MDYsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1fc3VzcGVuZE1lZGlhUGxh
eWJhY2tDb3VudGVyIHsgMCB9OwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+IG1fbmV3UGFnZU5hdmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsK
KyAgICBPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMwY2I2NjBlNmNiOGZm
MmI0Nzg3NWRjNWEwNWQxZjBmZTMxN2VkMWUuLjQ4MmQ2ZmFkNzhkNjBmMjM5NTExYzdkMjFlOTY5
MmVhNzRmYTgyZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0xMi0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFjY2VwdCBjbGljayBtZWFzdXJlbWVu
dCBkYXRhIGZyb20gaG9zdGluZyBhcHBsaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MjEyMTA5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAgICAgICAgKHRlc3RDZXJ0aWZp
Y2F0ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0
dHJpYnV0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bTW9ja0V2ZW50QXR0cmlidXRpb24gaW5p
dFdpdGhSZXBvcnRFbmRwb2ludDphdHRyaWJ1dGVPbjpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oOgor
CiAyMDIwLTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gVGVzdFdlYktpdEFQSS5HUFVQcm9jZXNzLldlYlByb2Nlc3NUZXJtaW5hdGlvbkFmdGVy
VG9vTWFueUdQVVByb2Nlc3NDcmFzaGVzIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQ5N2YyNjZlNDA1ZWNmYWE0MTQxOTQ1OTkwODhhZDU0
MGJkNGQwOWUuLjhlZjRkNTk0ZTA3NTM0M2I5MTVjODBiNjhlZTE4YTk2NDNiZWZkNjggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKQEAgLTMyLDQgKzMyLDUgQEAgY29jb2EvVGVz
dFByb3RvY29sLm1tCiBjb2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbQogY29jb2EvVGVzdFdLV2ViVmll
dy5tbQogCitUZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCiBUZXN0cy9XZWJL
aXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQppbmRleCBjMmYzMWJmZWQ4N2VjMDhkMWMzYzZk
NmU1Mjg1ZjIwNThlYzZmMWY5Li45NjQwNzQ4YmY2MzAyOGQyYjc0NDg5OGNkMGQ0NjUzY2ZhOGJk
NWQzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0No
YWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0No
YWxsZW5nZS5tbQpAQCAtNDcsNyArNDcsNyBAQAogCiBzdGF0aWMgYm9vbCBuYXZpZ2F0aW9uRmlu
aXNoZWQ7CiAKLXN0YXRpYyBSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+IHRlc3RDZXJ0aWZp
Y2F0ZSgpCitSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+IHRlc3RDZXJ0aWZpY2F0ZSgpCiB7
CiAgICAgYXV0byBjZXJ0aWZpY2F0ZUJ5dGVzID0gVGVzdFdlYktpdEFQSTo6VENQU2VydmVyOjp0
ZXN0Q2VydGlmaWNhdGUoKTsKICAgICByZXR1cm4gYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNyZWF0
ZVdpdGhEYXRhKG51bGxwdHIsIChfX2JyaWRnZSBDRkRhdGFSZWYpW05TRGF0YSBkYXRhV2l0aEJ5
dGVzOmNlcnRpZmljYXRlQnl0ZXMuZGF0YSgpIGxlbmd0aDpjZXJ0aWZpY2F0ZUJ5dGVzLnNpemUo
KV0pKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjdlOTY2NzNkMDgxMTEwZjNlMDhh
NzJlZWNjZWZiMDk4YWU3M2VjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC0wLDAgKzEsMTIwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorCisjaW1wb3J0ICJIVFRQU2VydmVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVXRpbGl0
aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJz
aXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgorCitAaW50ZXJmYWNlIE1vY2tFdmVudEF0dHJpYnV0aW9u
IDogTlNPYmplY3QKKworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbiwgcmVhZG9ubHkpIHVp
bnQ4X3Qgc291cmNlSWRlbnRpZmllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCByZWFk
b25seSkgTlNVUkwgKmF0dHJpYnV0ZU9uOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHJl
YWRvbmx5KSBOU1VSTCAqcmVwb3J0RW5kcG9pbnQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgcmVhZG9ubHkpIE5TU3RyaW5nICpzb3VyY2VEZXNjcmlwdGlvbjsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNTdHJpbmcgKnB1cmNoYXNlcjsKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFJlcG9ydEVuZHBvaW50OihOU1VSTCAqKXJlcG9ydEVuZHBvaW50IGF0dHJp
YnV0ZU9uOihOU1VSTCAqKWF0dHJpYnV0ZU9uOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBN
b2NrRXZlbnRBdHRyaWJ1dGlvbgorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXBvcnRFbmRw
b2ludDooTlNVUkwgKilyZXBvcnRFbmRwb2ludCBhdHRyaWJ1dGVPbjooTlNVUkwgKilhdHRyaWJ1
dGVPbgoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgX3NvdXJjZUlkZW50aWZpZXIgPSA0MjsKKyAgICBfYXR0cmlidXRlT24gPSBh
dHRyaWJ1dGVPbjsKKyAgICBfcmVwb3J0RW5kcG9pbnQgPSByZXBvcnRFbmRwb2ludDsKKyAgICBf
c291cmNlRGVzY3JpcHRpb24gPSBAInRlc3Qgc291cmNlIGRlc2NyaXB0aW9uIjsKKyAgICBfcHVy
Y2hhc2VyID0gQCJ0ZXN0IHB1cmNoYXNlciI7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworQGVu
ZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoRXZlbnRBdHRyaWJ1dGlvbiwg
QmFzaWMpCit7CisgICAgYm9vbCBkb25lID0gZmFsc2U7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIo
WyZkb25lLCBjb25uZWN0aW9uQ291bnQgPSAwXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSBtdXRh
YmxlIHsKKyAgICAgICAgc3dpdGNoICgrK2Nvbm5lY3Rpb25Db3VudCkgeworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbY29ubmVjdGlv
bl0gKFZlY3RvcjxjaGFyPiYmIHJlcXVlc3QxKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RS
VUUoc3RybnN0cihyZXF1ZXN0MS5kYXRhKCksICJHRVQgL2NvbnZlcnNpb25SZXF1ZXN0QmVmb3Jl
UmVkaXJlY3QgSFRUUC8xLjFcclxuIiwgcmVxdWVzdDEuc2l6ZSgpKSk7CisgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciogcmVkaXJlY3QgPSAiSFRUUC8xLjEgMzAyIEZvdW5kXHJcbiIKKyAgICAg
ICAgICAgICAgICAgICAgIkxvY2F0aW9uOiAvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFz
dXJlbWVudC8xMlxyXG4iCisgICAgICAgICAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogMFxy
XG5cclxuIjsKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQocmVkaXJlY3QsIFtjb25u
ZWN0aW9uXSB7CisgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1
ZXN0KFtjb25uZWN0aW9uXSAoVmVjdG9yPGNoYXI+JiYgcmVxdWVzdDIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDIuZGF0YSgpLCAiR0VUIC8u
d2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzEyIEhUVFAvMS4xXHJcbiIsIHJl
cXVlc3QyLnNpemUoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmVz
cG9uc2UgPSAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQ29udGVudC1MZW5ndGg6IDBcclxuXHJcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLnNlbmQocmVzcG9uc2UpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFsm
ZG9uZV0gKFZlY3RvcjxjaGFyPiYmIHJlcXVlc3QzKSB7CisgICAgICAgICAgICAgICAgcmVxdWVz
dDMuYXBwZW5kKCdcMCcpOworICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVx
dWVzdDMuZGF0YSgpLCAiUE9TVCAvIEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QzLnNpemUoKSkpOwor
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGJvZHlCZWdpbiA9IHN0cm5zdHIocmVxdWVzdDMu
ZGF0YSgpLCAiXHJcblxyXG4iLCByZXF1ZXN0My5zaXplKCkpICsgc3RybGVuKCJcclxuXHJcbiIp
OworICAgICAgICAgICAgICAgIEVYUEVDVF9TVFJFUShib2R5QmVnaW4sICJ7XCJzb3VyY2VfZW5n
YWdlbWVudF90eXBlXCI6XCJjbGlja1wiLFwic291cmNlX3NpdGVcIjpcIjEyNy4wLjAuMVwiLFwi
c291cmNlX2lkXCI6NDIsXCJhdHRyaWJ1dGVkX29uX3NpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJ0
cmlnZ2VyX2RhdGFcIjoxMixcInZlcnNpb25cIjoxfSIpOworICAgICAgICAgICAgICAgIGRvbmUg
PSB0cnVlOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0sIEhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwcyk7CisgICAgTlNVUkwgKnNlcnZlclVS
TCA9IHNlcnZlci5yZXF1ZXN0KCkuVVJMOworCisgICAgYXV0byBleGFtcGxlVVJMID0gW05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUuY29tLyJdOworICAgIGF1dG8gd2ViVmll
dyA9IFtbV0tXZWJWaWV3IG5ld10gYXV0b3JlbGVhc2VdOworICAgIFt3ZWJWaWV3LmNvbmZpZ3Vy
YXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6
WUVTXTsKKyAgICBbd2ViVmlldy5jb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX2FsbG93
VExTQ2VydGlmaWNhdGVDaGFpbjpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0gZm9ySG9z
dDpzZXJ2ZXJVUkwuaG9zdF07CisgICAgYXV0byBhdHRyaWJ1dGlvbiA9IFtbW01vY2tFdmVudEF0
dHJpYnV0aW9uIGFsbG9jXSBpbml0V2l0aFJlcG9ydEVuZHBvaW50OnNlcnZlci5yZXF1ZXN0KCku
VVJMIGF0dHJpYnV0ZU9uOmV4YW1wbGVVUkxdIGF1dG9yZWxlYXNlXTsKKyAgICB3ZWJWaWV3Ll9l
dmVudEF0dHJpYnV0aW9uID0gKF9VSUV2ZW50QXR0cmlidXRpb24gKilhdHRyaWJ1dGlvbjsKKyAg
ICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVz
dGluZzpzZXJ2ZXJVUkwgY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgW3dlYlZpZXcgX3Nl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6WUVTIGNvbXBs
ZXRpb25IYW5kbGVyOl57CisgICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJzaW9uUmVxdWVzdEJlZm9y
ZVJlZGlyZWN0Jyx7bW9kZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNlcnZlclVSTF07CisgICAg
ICAgICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6ZXhhbXBsZVVSTF07
CisgICAgICAgIH1dOworICAgIH1dOworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIuaCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oCmluZGV4IDQ5NDZlNTRiMTJmNTVk
ZDM0NGU1YjI2MmJmYjVmYmU4MzE2MTU2NTcuLjM5NWRhZjkzMWUyOGE3MWU3N2I4MGYxMDE3OGY1
NTk0ODVmMzUxYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNl
cnZlci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oCkBAIC0x
NjUsNSArMTY1LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQog
CitSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+IHRlc3RDZXJ0aWZpY2F0ZSgpOwogUmV0YWlu
UHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRlbnRpdHkoKTsKIFJldGFpblB0cjxTZWNJZGVudGl0
eVJlZj4gdGVzdElkZW50aXR5MigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415960</attachid>
            <date>2020-12-10 19:18:37 -0800</date>
            <delta_ts>2020-12-10 20:01:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219763-20201210191836.patch</filename>
            <type>text/plain</type>
            <size>36262</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWUzMTUxMzZmMjI2MTJl
ODY5NDQ4ZDc3ZmQyYzJmMjA1ZWRkOGI0Yi4uMDBhMjYzMDQ0YTcyMDZhNWE2YTU2YjQ0OWQyODVl
MTZkZjk1M2U4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEyLTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWNjZXB0
IGNsaWNrIG1lYXN1cmVtZW50IGRhdGEgZnJvbSBob3N0aW5nIGFwcGxpY2F0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk3NjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcyMTIxMDk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2ls
YW5kZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBhbiBBUEkgdGVzdC4KKworICAgICAgICAqIGxv
YWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpzb3VyY2VJRCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlRGVzY3JpcHRpb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnB1cmNoYXNl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpk
ZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJj
ZUlEKTogRGVsZXRlZC4KKwogMjAyMC0xMi0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gTGluZSBhdmFpbGFibGUgd2lkdGggY29tcHV0YXRp
b24gc2hvdWxkIGJlIGJhc2VkIG9uIHRoZSBjb250ZW50IGxvZ2ljYWwgcmlnaHQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGMzOTQ0Zjc4NGZkYjM0YTlmOGRkZThjZmI1NTQ5YmVmM2I5MjFlMWQuLjIxNWViZDY4NDU4
ZWY4OGUzZmNmMTVmNDk5YzlhYmQyMjYwMTE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMjAtMTItMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBBY2NlcHQgY2xpY2sgbWVhc3VyZW1lbnQgZGF0YSBmcm9tIGhvc3RpbmcgYXBw
bGljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxOTc2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIxMjEwOTQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YnVpbGRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEZyb21EYXRhYmFzZSk6CisgICAgICAgICogUGxhdGZvcm0vaW9zL1VJ
S2l0U29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm0vaW9zL1VJS2l0U29mdExp
bmsubW06IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6Y29w
eSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
OgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQpOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6cHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0
RXZlbnRBdHRyaWJ1dGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
ZXZlbnRBdHRyaWJ1dGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZzpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9uZXdQYWdlTmF2
aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktpdDo6bV9saW1p
dHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMi0xMCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSUNFIGRvZXMgbm90IHJlc29sdmUgZm9y
IGB0dXJuc2AgcmVsYXkgY2FuZGlkYXRlcyByb290ZWQgaW4gTGV0c0VuY3J5cHQgQ0EKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKaW5kZXggZmNh
ZDU1YTk1ZGZhYzA5MTU5ZTAzYzhjNmEyOTBlZmZiNDcxYzY3ZS4uNzg1ZWI2N2I3YWE5ODM4MmZi
ODg1MmJkY2JhNmE4MThkNzU0MzE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTIzNSwxMCArMjM1LDEyIEBAIHB1YmxpYzoKICAg
ICB9OwogCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSA9IGRlZmF1bHQ7Ci0gICAgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoU291cmNlSUQgc291cmNlSUQsIGNvbnN0IFNvdXJjZVNpdGUm
IHNvdXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0ZU9uU2l0ZSYgYXR0cmlidXRlT25TaXRlLCBXYWxs
VGltZSB0aW1lT2ZBZENsaWNrID0gV2FsbFRpbWU6Om5vdygpKQorICAgIFByaXZhdGVDbGlja01l
YXN1cmVtZW50KFNvdXJjZUlEIHNvdXJjZUlELCBjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRl
LCBjb25zdCBBdHRyaWJ1dGVPblNpdGUmIGF0dHJpYnV0ZU9uU2l0ZSwgU3RyaW5nJiYgc291cmNl
RGVzY3JpcHRpb24gPSB7IH0sIFN0cmluZyYmIHB1cmNoYXNlciA9IHsgfSwgV2FsbFRpbWUgdGlt
ZU9mQWRDbGljayA9IFdhbGxUaW1lOjpub3coKSkKICAgICAgICAgOiBtX3NvdXJjZUlEIHsgc291
cmNlSUQgfQogICAgICAgICAsIG1fc291cmNlU2l0ZSB7IHNvdXJjZVNpdGUgfQogICAgICAgICAs
IG1fYXR0cmlidXRlT25TaXRlIHsgYXR0cmlidXRlT25TaXRlIH0KKyAgICAgICAgLCBtX3NvdXJj
ZURlc2NyaXB0aW9uIHsgV1RGTW92ZShzb3VyY2VEZXNjcmlwdGlvbikgfQorICAgICAgICAsIG1f
cHVyY2hhc2VyIHsgV1RGTW92ZShwdXJjaGFzZXIpIH0KICAgICAgICAgLCBtX3RpbWVPZkFkQ2xp
Y2sgeyB0aW1lT2ZBZENsaWNrIH0KICAgICB7CiAgICAgfQpAQCAtMjU0LDEwICsyNTYsMTMgQEAg
cHVibGljOgogICAgIFdhbGxUaW1lIHRpbWVPZkFkQ2xpY2soKSBjb25zdCB7IHJldHVybiBtX3Rp
bWVPZkFkQ2xpY2s7IH0KICAgICBPcHRpb25hbDxXYWxsVGltZT4gZWFybGllc3RUaW1lVG9TZW5k
KCkgY29uc3QgeyByZXR1cm4gbV9lYXJsaWVzdFRpbWVUb1NlbmQ7IH07CiAgICAgdm9pZCBzZXRF
YXJsaWVzdFRpbWVUb1NlbmQoV2FsbFRpbWUgdGltZSkgeyBtX2VhcmxpZXN0VGltZVRvU2VuZCA9
IHRpbWU7IH0KLSAgICBTb3VyY2VJRCBzb3VyY2VJRCgpIHsgcmV0dXJuIG1fc291cmNlSUQ7IH0K
KyAgICBjb25zdCBTb3VyY2VJRCYgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUlE
OyB9CiAgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gYXR0cmlidXRpb25Ucmln
Z2VyRGF0YSgpIHsgcmV0dXJuIG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsgfQogICAgIHZvaWQg
c2V0QXR0cmlidXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEpIHsgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhKTsgfQogCisgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VEZXNjcmlwdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlRGVzY3JpcHRpb247IH0KKyAgICBjb25zdCBTdHJpbmcmIHB1
cmNoYXNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHVyY2hhc2VyOyB9CisKICAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBk
ZWNvZGUoRGVjb2RlciYpOwogCkBAIC0yNjgsNiArMjczLDggQEAgcHJpdmF0ZToKICAgICBTb3Vy
Y2VJRCBtX3NvdXJjZUlEOwogICAgIFNvdXJjZVNpdGUgbV9zb3VyY2VTaXRlOwogICAgIEF0dHJp
YnV0ZU9uU2l0ZSBtX2F0dHJpYnV0ZU9uU2l0ZTsKKyAgICBTdHJpbmcgbV9zb3VyY2VEZXNjcmlw
dGlvbjsKKyAgICBTdHJpbmcgbV9wdXJjaGFzZXI7CiAgICAgV2FsbFRpbWUgbV90aW1lT2ZBZENs
aWNrOwogCiAgICAgT3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gbV9hdHRyaWJ1dGlv
blRyaWdnZXJEYXRhOwpAQCAtMjc3LDcgKzI4NCwxNCBAQCBwcml2YXRlOgogdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgbV9zb3VyY2VJRC5pZCA8PCBtX3Nv
dXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4gPDwgbV9hdHRyaWJ1dGVPblNpdGUucmVnaXN0cmFi
bGVEb21haW4gPDwgbV90aW1lT2ZBZENsaWNrIDw8IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA8
PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKKyAgICBlbmNvZGVyIDw8IG1fc291cmNlSUQuaWQKKyAg
ICAgICAgPDwgbV9zb3VyY2VTaXRlLnJlZ2lzdHJhYmxlRG9tYWluCisgICAgICAgIDw8IG1fYXR0
cmlidXRlT25TaXRlLnJlZ2lzdHJhYmxlRG9tYWluCisgICAgICAgIDw8IG1fc291cmNlRGVzY3Jp
cHRpb24KKyAgICAgICAgPDwgbV9wdXJjaGFzZXIKKyAgICAgICAgPDwgbV90aW1lT2ZBZENsaWNr
CisgICAgICAgIDw8IG1fYXR0cmlidXRpb25UcmlnZ2VyRGF0YQorICAgICAgICA8PCBtX2Vhcmxp
ZXN0VGltZVRvU2VuZDsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTI5OCw2ICsz
MTIsMTYgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICBpZiAoIWF0dHJpYnV0ZU9uUmVn
aXN0cmFibGVEb21haW4pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCisgICAg
T3B0aW9uYWw8U3RyaW5nPiBzb3VyY2VEZXNjcmlwdGlvbjsKKyAgICBkZWNvZGVyID4+IHNvdXJj
ZURlc2NyaXB0aW9uOworICAgIGlmICghc291cmNlRGVzY3JpcHRpb24pCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8U3RyaW5nPiBwdXJjaGFzZXI7Cisg
ICAgZGVjb2RlciA+PiBwdXJjaGFzZXI7CisgICAgaWYgKCFwdXJjaGFzZXIpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgCiAgICAgT3B0aW9uYWw8V2FsbFRpbWU+IHRpbWVPZkFk
Q2xpY2s7CiAgICAgZGVjb2RlciA+PiB0aW1lT2ZBZENsaWNrOwogICAgIGlmICghdGltZU9mQWRD
bGljaykKQEAgLTMxMyw3ICszMzcsMTQgQEAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpkZWNvZGUoRGVjb2RlciYgZGVjb2QKICAgICBp
ZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAg
ICAKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFNvdXJjZUlEIHsg
V1RGTW92ZSgqc291cmNlSUQpIH0sIFNvdXJjZVNpdGUgeyBXVEZNb3ZlKCpzb3VyY2VSZWdpc3Ry
YWJsZURvbWFpbikgfSwgQXR0cmlidXRlT25TaXRlIHsgV1RGTW92ZSgqYXR0cmlidXRlT25SZWdp
c3RyYWJsZURvbWFpbikgfSB9OworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0
aW9uIHsKKyAgICAgICAgU291cmNlSUQgeyBXVEZNb3ZlKCpzb3VyY2VJRCkgfSwKKyAgICAgICAg
U291cmNlU2l0ZSB7IFdURk1vdmUoKnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKSB9LAorICAgICAg
ICBBdHRyaWJ1dGVPblNpdGUgeyBXVEZNb3ZlKCphdHRyaWJ1dGVPblJlZ2lzdHJhYmxlRG9tYWlu
KSB9LAorICAgICAgICBXVEZNb3ZlKCpzb3VyY2VEZXNjcmlwdGlvbiksCisgICAgICAgIFdURk1v
dmUoKnB1cmNoYXNlciksCisgICAgICAgIFdURk1vdmUoKnRpbWVPZkFkQ2xpY2spCisgICAgfTsK
ICAgICBhdHRyaWJ1dGlvbi5tX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKCphdHRy
aWJ1dGlvblRyaWdnZXJEYXRhKTsKICAgICBhdHRyaWJ1dGlvbi5tX2VhcmxpZXN0VGltZVRvU2Vu
ZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCAyNGE5NTFl
YzA2YjBkOTQ2OTFiOWEyNDUyZWI0NTBlM2M4YjIwYzJiLi45N2ZkYjRjZDBjYjkyYjFhNTA5ZTVl
YjA2NDU0MWE4ZTUzNDYwNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTI5MzksNyArMjkzOSw3IEBAIFByaXZhdGVD
bGlja01lYXN1cmVtZW50IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpidWls
ZFByaXZhdGVDbGlja01lCiAgICAgYXV0byBzb3VyY2VJRCA9IHN0YXRlbWVudC0+Z2V0Q29sdW1u
SW50KDIpOwogICAgIGF1dG8gdGltZU9mQWRDbGljayA9IGF0dHJpYnV0aW9uVHlwZSA9PSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCA/IHN0YXRlbWVu
dC0+Z2V0Q29sdW1uRG91YmxlKDUpIDogc3RhdGVtZW50LT5nZXRDb2x1bW5Eb3VibGUoMyk7CiAK
LSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoc291cmNlSUQpLCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZShSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3Jl
YXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKHNvdXJjZVNpdGVEb21haW4pKSwgV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0ZU9uU2l0ZShSZWdpc3RyYWJsZURv
bWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKGF0dHJpYnV0
ZU9uU2l0ZURvbWFpbikpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZU9mQWRDbGljaykp
OworICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChzb3VyY2VJRCksIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRD
cmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoc291cmNlU2l0ZURvbWFpbikpLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlKFJlZ2lzdHJhYmxl
RG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoYXR0cmli
dXRlT25TaXRlRG9tYWluKSksIHsgfSwgeyB9LCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGlt
ZU9mQWRDbGljaykpOwogICAgIAogICAgIGlmIChhdHRyaWJ1dGlvblR5cGUgPT0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkF0dHJpYnV0ZWQpIHsKICAgICAgICAgYXV0
byBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoMyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2lvcy9VSUtpdFNvZnRMaW5rLmggYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL2lvcy9VSUtpdFNvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE2
ZjFkNjA0ZjM3MjBhODgyZGYxZDRkNjE2NDE4OTE3NjM2NzcyMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vaW9zL1VJS2l0U29mdExpbmsuaApAQCAtMCwwICsxLDM3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisK
K1NPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJLaXQsIFVJS2l0KQorCitTT0ZUX0xJ
TktfQ0xBU1NfRk9SX0hFQURFUihXZWJLaXQsIF9VSUV2ZW50QXR0cmlidXRpb24pOworCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vaW9zL1VJS2l0U29mdExpbmsu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2lvcy9VSUtpdFNvZnRMaW5rLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQwZWM5ZWMzODkzOGMxYmMwOGExZmIzNTNiMmQ2NmQ3ZDA1NzRiMmEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2lvcy9VSUtpdFNvZnRMaW5rLm1tCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDx3dGYvU29m
dExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFdlYktpdCwgVUlL
aXQpCisKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFdlYktpdCwgVUlLaXQsIF9VSUV2ZW50
QXR0cmlidXRpb24pCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlL
aXRTUEkuaAppbmRleCAyNDE3Nzg5ZGJjMmZhOWVmYzhhNDUyZTU5NDdlNThhMjY0NWYxNjc2Li5h
ZGQwNTc2ZDQ2Njk3NzMyOTlkYmYxMWQ1Yzk0OTkyMTlkODFjZTNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtMTM0Nyw2ICsxMzQ3LDE3IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0U3VwcHJlc3NTb2Z0d2FyZUtleWJvYXJkOikgQk9PTCBf
c3VwcHJlc3NTb2Z0d2FyZUtleWJvYXJkOwogQGVuZAogCitAaW50ZXJmYWNlIF9VSUV2ZW50QXR0
cmlidXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5nPgorQHByb3BlcnR5IChub25hdG9taWMsIGFz
c2lnbiwgcmVhZG9ubHkpIHVpbnQ4X3Qgc291cmNlSWRlbnRpZmllcjsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNVUkwgKmF0dHJpYnV0ZU9uOworQHByb3BlcnR5IChu
b25hdG9taWMsIC8qbnVsbGFibGUsKi8gY29weSwgcmVhZG9ubHkpIE5TVVJMICpyZXBvcnRFbmRw
b2ludDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNTdHJpbmcgKnNv
dXJjZURlc2NyaXB0aW9uOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBO
U1N0cmluZyAqcHVyY2hhc2VyOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNlSWRlbnRp
ZmllcjoodWludDhfdClzb3VyY2VJZGVudGlmaWVyIGF0dHJpYnV0ZU9uOihOU1VSTCAqKWF0dHJp
YnV0ZU9uIHNvdXJjZURlc2NyaXB0aW9uOihOU1N0cmluZyAqKXNvdXJjZURlc2NyaXB0aW9uIHB1
cmNoYXNlcjooTlNTdHJpbmcgKilwdXJjaGFzZXI7CistIChpbnN0YW5jZXR5cGUpaW5pdCBOU19V
TkFWQUlMQUJMRTsKKysgKGluc3RhbmNldHlwZSluZXcgTlNfVU5BVkFJTEFCTEU7CitAZW5kCisK
IEBpbnRlcmZhY2UgX1VJTmF2aWdhdGlvbkludGVyYWN0aXZlVHJhbnNpdGlvbkJhc2UgKCkKIC0g
KHZvaWQpX3N0b3BJbnRlcmFjdGl2ZVRyYW5zaXRpb247CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggOGE1YjU2MTA4NWUzNjNiZWI2OTY2YzdkNGUzZDQ1NmMxYTVjZjgxOC4uMDA5MWU4
Nzk5OWUxNzZiZmJjZWU5OTAxZDFkMGJhNzFiYTZiNmJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dApAQCAtODQsNiArODQsNyBAQCBQbGF0Zm9ybS9mb3VuZGF0aW9uL0xvZ2dpbmdGb3VuZGF0aW9u
Lm1tCiAKIFBsYXRmb3JtL2lvcy9BY2Nlc3NpYmlsaXR5SU9TLm1tCiBQbGF0Zm9ybS9pb3MvUGF5
bWVudEF1dGhvcml6YXRpb25Db250cm9sbGVyLm1tCitQbGF0Zm9ybS9pb3MvVUlLaXRTb2Z0TGlu
ay5tbQogCiBQbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tCiBQbGF0Zm9ybS9J
UEMvY29jb2EvTWFjaE1lc3NhZ2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCAzNDJmMDVkN2QxMTA4M2Y3MGUz
NjE2MzkwZWRiNDY0ODYzZGMxZDI3Li43YmM0YWY2ZTk3ZDU4YzE3NTcxZmZjNTY0YjMyNWMyNTVh
YjU2NTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdl
Q29uZmlndXJhdGlvbi5jcHAKQEAgLTk0LDYgKzk0LDcgQEAgUmVmPFBhZ2VDb25maWd1cmF0aW9u
PiBQYWdlQ29uZmlndXJhdGlvbjo6Y29weSgpIGNvbnN0CiAjZW5kaWYKIAogICAgIGNvcHktPm1f
bWVkaWFDYXB0dXJlRW5hYmxlZCA9IHRoaXMtPm1fbWVkaWFDYXB0dXJlRW5hYmxlZDsKKyAgICBj
b3B5LT5tX3ByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gdGhpcy0+bV9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDsKIAogICAgIHJldHVybiBjb3B5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmNmM3NTk1MDZhYmVhODQz
MTMxNzRhMWZlYmQ1YmQxOTY5YjBlZWRiLi5jNWMwYTMwZTM3ZGYzMjEzYmEyYjViY2I5ZmE5OTMw
NjNhMjNmZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9j
a2luZy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgpAQCAtMTY0LDYgKzE2NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nKFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nIHZhbHVlKSB7IG1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcg
PSB2YWx1ZTsgfQogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKCkgY29uc3QgeyByZXR1cm4g
bV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzsgfQogICAgIAorICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+JiYgbWVhc3VyZW1lbnQpIHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9
IFdURk1vdmUobWVhc3VyZW1lbnQpOyB9CisgICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7IH0KKyAgICAKIHByaXZhdGU6CiAKICAg
ICBSZWZQdHI8V2ViS2l0OjpXZWJQcm9jZXNzUG9vbD4gbV9wcm9jZXNzUG9vbDsKQEAgLTIxMyw2
ICsyMTcsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZWRpYUNhcHR1cmVFbmFibGVkIHsgZmFs
c2UgfTsKIAogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
IG1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBXZWJDb3JlOjpTaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8gfTsKKworICAgIE9wdGlvbmFsPFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IGRiMDE2
MDUzMjJkZjU2ZjFlM2UwNjMxZDhkOTQ4NjVhYTE1NjdlNGQuLjViMWU2NjdjZDY5ZjUwZmFiNjJk
ZTQ0M2I5YmM0NTNhMmExMGIxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC01MSw4ICs1
MSw4IEBACiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0jaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCA8V2ViQ29yZS9EZXZp
Y2UuaD4KKyNpbXBvcnQgIlVJS2l0U29mdExpbmsuaCIKICNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjbGFzcyBMYXp5SW5pdGlhbGl6ZWQgewpAQCAtNzExLDYgKzcxMSwzMSBAQCBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCistICh2b2lkKV9zZXRFdmVudEF0dHJpYnV0aW9uOihfVUlFdmVudEF0dHJpYnV0aW9uICop
YXR0cmlidXRpb24KK3sKKyAgICBpZiAoYXR0cmlidXRpb24pIHsKKyAgICAgICAgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgbWVhc3VyZW1lbnQoCisgICAgICAgICAgICBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoYXR0cmlidXRpb24uc291cmNlSWRl
bnRpZmllciksCisgICAgICAgICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZShhdHRyaWJ1dGlvbi5yZXBvcnRFbmRwb2ludCksCisgICAgICAgICAgICBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRlT25TaXRlKGF0dHJpYnV0aW9u
LmF0dHJpYnV0ZU9uKSwKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uLnNvdXJjZURlc2NyaXB0aW9u
LAorICAgICAgICAgICAgYXR0cmlidXRpb24ucHVyY2hhc2VyCisgICAgICAgICk7CisgICAgICAg
IF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZSht
ZWFzdXJlbWVudCkpOworICAgIH0gZWxzZQorICAgICAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdURjo6bnVsbG9wdCk7Cit9CisKKy0gKF9VSUV2ZW50
QXR0cmlidXRpb24gKilfZXZlbnRBdHRyaWJ1dGlvbgoreworICAgIGF1dG8mIG1lYXN1cmVtZW50
ID0gX3BhZ2VDb25maWd1cmF0aW9uLT5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgIGlm
ICghbWVhc3VyZW1lbnQgfHwgIW1lYXN1cmVtZW50LT5zb3VyY2VJRCgpLmlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKworICAgIGF1dG8gYXR0cmlidXRlT25VUkwgPSBVUkwoVVJMKCks
IG1ha2VTdHJpbmcoImh0dHBzOi8vIiwgbWVhc3VyZW1lbnQtPmF0dHJpYnV0ZU9uU2l0ZSgpLnJl
Z2lzdHJhYmxlRG9tYWluLnN0cmluZygpKSk7CisgICAgcmV0dXJuIFtbV2ViS2l0OjphbGxvY19V
SUV2ZW50QXR0cmlidXRpb25JbnN0YW5jZSgpIGluaXRXaXRoU291cmNlSWRlbnRpZmllcjptZWFz
dXJlbWVudC0+c291cmNlSUQoKS5pZCBhdHRyaWJ1dGVPbjphdHRyaWJ1dGVPblVSTCBzb3VyY2VE
ZXNjcmlwdGlvbjptZWFzdXJlbWVudC0+c291cmNlRGVzY3JpcHRpb24oKSBwdXJjaGFzZXI6bWVh
c3VyZW1lbnQtPnB1cmNoYXNlcigpXSBhdXRvcmVsZWFzZV07Cit9CisKIC0gKEJPT0wpX2NsaWVu
dE5hdmlnYXRpb25zUnVuQXRGb3JlZ3JvdW5kUHJpb3JpdHkKIHsKICAgICByZXR1cm4gX3BhZ2VD
b25maWd1cmF0aW9uLT5jbGllbnROYXZpZ2F0aW9uc1J1bkF0Rm9yZWdyb3VuZFByaW9yaXR5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDg2YjljZWIyYTcxZjhlODhl
ODU5NTA2YjA2MTNlMzc5NzdhNDg0MDAuLmRjOWMzODcwMWZlYmMxMmQxNjlhZWY2OTAyY2I5MmQy
MTVmMmRiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0zNyw2ICsz
Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiAj
ZW5kaWYKIAogQGNsYXNzIFdLV2ViVmlldzsKK0BjbGFzcyBfVUlFdmVudEF0dHJpYnV0aW9uOwog
QGNsYXNzIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3Q7CiBAY2xhc3MgX1dLVmlzaXRlZExpbmtTdG9y
ZTsKIEBjbGFzcyBfV0tXZWJzaXRlRGF0YVN0b3JlOwpAQCAtODQsNiArODUsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0SWdub3Jlc0FwcEJvdW5kRG9tYWluczopIEJPT0wgX2lnbm9yZXNB
cHBCb3VuZERvbWFpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5LCBzZXR0ZXI9X3NldEV2ZW50QXR0cmlidXRpb246KSBfVUlFdmVudEF0dHJpYnV0aW9u
ICpfZXZlbnRBdHRyaWJ1dGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDbGllbnROYXZpZ2F0aW9uc1J1bkF0Rm9y
ZWdyb3VuZFByaW9yaXR5OikgQk9PTCBfY2xpZW50TmF2aWdhdGlvbnNSdW5BdEZvcmVncm91bmRQ
cmlvcml0eSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHk6KSBCT09M
IF9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgiX2NsaWVudE5hdmlnYXRpb25zUnVuQXRGb3JlZ3JvdW5kUHJpb3JpdHkiLCBp
b3MoOS4wLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJ
bmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZTopIEJPT0wgX2lu
bGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEwLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKaW5kZXggODYyYjk0
ODVlZjM4OTRlNDQ1ODc3ZjUxNjM1ZmE3OGQzY2NkODRmZC4uOTc0NDM0MTAxZjg0ZWM1MjQ5MThh
YmMxNGMzZjMxZmI3YWJlNmJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTgz
LDQgKzgzLDggQEAgdHlwZWRlZiBlbnVtIHsKIC0gKHZvaWQpX2RvQWZ0ZXJBY3Rpdml0eVN0YXRl
VXBkYXRlOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAogLSAoTlNOdW1iZXIg
Kilfc3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKy0gKHZvaWQpX3NldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6KEJPT0wpb3ZlcnJpZGVUaW1lciBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZzooTlNVUkwgKil1
cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
VGVzdGluZy5tbQppbmRleCBmMjI0ODM5YmQwYmUyODUxZDZjMzgyYzI4MDRiNjdjYjcxYzUzZjY2
Li4xOTIzMzZkZGU3OTZmYTgyYzkyNjcyZDU3NDRkZDllNTUxNjUxZDIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpA
QCAtMjk2LDYgKzI5NiwyMCBAQAogICAgIHJldHVybiBAKF9wYWdlLT5zdXNwZW5kTWVkaWFQbGF5
YmFja0NvdW50ZXIoKSk7CiB9CiAKKy0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50
T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6KEJPT0wpb3ZlcnJpZGVUaW1lciBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5zZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG92ZXJyaWRlVGlt
ZXIsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcild
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKworLSAodm9pZClf
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZzooTlNVUkwg
Kil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIK
K3sKKyAgICBfcGFnZS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9y
VGVzdGluZyh1cmwsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwog
LSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXIKIHsKICAgICAvLyBGb3Igc3ViY2xhc3Nl
cyB0byBvdmVycmlkZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGI1YTNjYzc3MTI2NzA1NTNlNWEyODNhYzNhOGJhNDNmZDZkNzVhMjcuLjFiODg5MDEzMGU5
NGM4OWEzMzZkNTdiNmRlYWRkMDY5ZGVkMTE3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNTI0LDYgKzUyNCw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFn
ZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
UmVmCiAgICAgLCBtX2lnbm9yZXNBcHBCb3VuZERvbWFpbnMobV9jb25maWd1cmF0aW9uLT5pZ25v
cmVzQXBwQm91bmREb21haW5zKCkpCiAgICAgLCBtX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3Vu
ZERvbWFpbnMobV9jb25maWd1cmF0aW9uLT5saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21h
aW5zKCkpCiAjZW5kaWYKKyAgICAsIG1fbmV3UGFnZU5hdmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudChtX2NvbmZpZ3VyYXRpb24tPnByaXZhdGVDbGlja01lYXN1cmVtZW50KCkpCiB7CiAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiY29uc3RydWN0b3I6Iik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdh
YzFkNDQ4NDhlMWY4YjI1NGY0MWIwZGQ4MzUwMTk4MjZkNzc4ZWYuLjZkZjE5MWY4OTYyMWIyNGU1
YTQ4MGVmN2I2ZmNlMWY1YmU0YTg1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU1Myw2ICs1NTUzLDggQEAKIAkJREY3NDI3NUMy
NEY0OTU1MDAwRjhBQkU5IC8qIFBERlBsdWdpbklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUERGUGx1Z2luSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlERjg0Q0VFMjI0OUFBMjFGMDA5MDk2RjYgLyogV0tQREZIVURWaWV3Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQREZIVURWaWV3Lm1t
OyBwYXRoID0gUERGL1dLUERGSFVEVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJREY4NENFRTMyNDlBQTIxRjAwOTA5NkY2IC8qIFdLUERGSFVEVmlldy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1BERkhVRFZpZXcuaDsgcGF0aCA9IFBERi9XS1BERkhV
RFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREY4NTIzQkEyNTgzMTc2RjAw
QUVBREQwIC8qIFVJS2l0U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVUlLaXRTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjg1MjNC
QjI1ODMxN0E5MDBBRUFERDAgLyogVUlLaXRTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJS2l0U29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQu
aWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGlt
YWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9IFJlc291cmNlcy9XZWJLaXQuaWNu
czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0QTk1NDcxNkUwMTZBNDAwNjhERTgy
IC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxOTUsNiArOTE5Nyw4IEBACiAJCQkJ
QTE4MkQ1QjIxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MubW0gKi8sCiAJCQkJ
QTE3OThCNEYyMjMwQTBGRTAwMDc2NEJEIC8qIFBheW1lbnRBdXRob3JpemF0aW9uQ29udHJvbGxl
ci5oICovLAogCQkJCUExNzk4QjUwMjIzMEEwRkUwMDA3NjRCRCAvKiBQYXltZW50QXV0aG9yaXph
dGlvbkNvbnRyb2xsZXIubW0gKi8sCisJCQkJREY4NTIzQkEyNTgzMTc2RjAwQUVBREQwIC8qIFVJ
S2l0U29mdExpbmsuaCAqLywKKwkJCQlERjg1MjNCQjI1ODMxN0E5MDBBRUFERDAgLyogVUlLaXRT
b2Z0TGluay5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBjMGNiNjYwZTZjYjhmZjJiNDc4NzVkYzVhMDVkMWYwZmUzMTdlZDFlLi40NDJkZjhmNTFj
ODYxYTU0MWU1ZGNjOGEzMTNjZjhmODQyNzcxYmM2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMTItMTAgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBY2Nl
cHQgY2xpY2sgbWVhc3VyZW1lbnQgZGF0YSBmcm9tIGhvc3RpbmcgYXBwbGljYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTc2MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzIxMjEwOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBX
aWxhbmRlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbToKKyAg
ICAgICAgKHRlc3RDZXJ0aWZpY2F0ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bTW9ja0V2
ZW50QXR0cmlidXRpb24gaW5pdFdpdGhSZXBvcnRFbmRwb2ludDphdHRyaWJ1dGVPbjpdKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29j
b2EvSFRUUFNlcnZlci5oOgorCiAyMDIwLTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gVGVzdFdlYktpdEFQSS5HUFVQcm9jZXNzLldlYlByb2Nl
c3NUZXJtaW5hdGlvbkFmdGVyVG9vTWFueUdQVVByb2Nlc3NDcmFzaGVzIGlzIGEgZmxha3kgZmFp
bHVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0IGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGQ5N2YyNjZlNDA1ZWNm
YWE0MTQxOTQ1OTkwODhhZDU0MGJkNGQwOWUuLjhlZjRkNTk0ZTA3NTM0M2I5MTVjODBiNjhlZTE4
YTk2NDNiZWZkNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29h
LnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKQEAgLTMyLDQg
KzMyLDUgQEAgY29jb2EvVGVzdFByb3RvY29sLm1tCiBjb2NvYS9UZXN0VUlEZWxlZ2F0ZS5tbQog
Y29jb2EvVGVzdFdLV2ViVmlldy5tbQogCitUZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0
aW9uLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9UTFNEZXByZWNhdGlvbi5tbQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA4MDY3ZDQ1ODMxYjJkMzBlMzU1ZDQwMjc1MTE1YmRmNzAxYjE5MzhmLi5i
ZWE5ZjYyZjMwYmUxZjA0YjZjNjZmNWM5ZTQ3Y2IyNzViZWQwNzY5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjgxMSw2ICsyODExLDcgQEAKIAkJRDNCRTVFMzQxRTRDRTg1RTAwRkQ1NjNB
IC8qIFdLV2ViVmlld0dldENvbnRlbnRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tXZWJWaWV3R2V0Q29udGVudHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURDNjlBQTYyMUNGNzdDNjUwMEM2MjcyRiAvKiBTY29wZWRMYW1iZGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NvcGVkTGFtYmRhLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY0QjI3MzgyMUE0NzcyNzAwOUJEMUNBIC8qIFdL
TlNEaWN0aW9uYXJ5RW1wdHlEaWN0aW9uYXJ5Q3Jhc2gubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjg1MjNCQzI1ODMxQjc3MDBBRUFERDAg
LyogRXZlbnRBdHRyaWJ1dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEV2ZW50QXR0cmlidXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CURGQjhGRjMxMjQ5MkY1MUEwMEYwMEIwRCAvKiBQcmVjb25uZWN0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJlY29ubmVjdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTEyMjBEOUYxNTVCMjU0ODAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlz
YWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVs
ZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjIwREM5MTU1QjI4N0Qw
MDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGlu
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMyNzQsNiArMzI3NSw3IEBACiAJCQkJRjQ2MTI4RDYyMTFFNDg5QzAwRDlGQURCIC8qIERyYWdB
bmREcm9wVGVzdHMubW0gKi8sCiAJCQkJQTE1NTAyMjgxRTA1MDIwQjAwQTI0QzU3IC8qIER1cGxp
Y2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMubW0gKi8sCiAJCQkJRjQ0RDA2NDYxRjM5NUM0RDAw
MUEwRTI5IC8qIEVkaXRvclN0YXRlVGVzdHMubW0gKi8sCisJCQkJREY4NTIzQkMyNTgzMUI3NzAw
QUVBREQwIC8qIEV2ZW50QXR0cmlidXRpb24ubW0gKi8sCiAJCQkJQ0RBMjlCMjgyMEZEMkE5OTAw
RjE1Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbSAqLywKIAkJCQkxRDEyQkVCRjI0
NUJFRjg1MDA0QzBCN0EgLyogRXhpdFBpUE9uU3VzcGVuZFZpZGVvRWxlbWVudC5tbSAqLywKIAkJ
CQkyRDgxMDRDQjFCRUMxM0U3MDAyMERBNDYgLyogRmluZEluUGFnZS5tbSAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXgg
YzJmMzFiZmVkODdlYzA4ZDFjM2M2ZDZlNTI4NWYyMDU4ZWM2ZjFmOS4uOTY0MDc0OGJmNjMwMjhk
MmI3NDQ4OThjZDBkNDY1M2NmYThiZDVkMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KQEAgLTQ3LDcgKzQ3LDcgQEAKIAogc3Rh
dGljIGJvb2wgbmF2aWdhdGlvbkZpbmlzaGVkOwogCi1zdGF0aWMgUmV0YWluUHRyPFNlY0NlcnRp
ZmljYXRlUmVmPiB0ZXN0Q2VydGlmaWNhdGUoKQorUmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVm
PiB0ZXN0Q2VydGlmaWNhdGUoKQogewogICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IFRlc3RX
ZWJLaXRBUEk6OlRDUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCk7CiAgICAgcmV0dXJuIGFkb3B0
Q0YoU2VjQ2VydGlmaWNhdGVDcmVhdGVXaXRoRGF0YShudWxscHRyLCAoX19icmlkZ2UgQ0ZEYXRh
UmVmKVtOU0RhdGEgZGF0YVdpdGhCeXRlczpjZXJ0aWZpY2F0ZUJ5dGVzLmRhdGEoKSBsZW5ndGg6
Y2VydGlmaWNhdGVCeXRlcy5zaXplKCldKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmM0OTIxZjMxZjM1NWU5MDRkM2QxOTBhNmQyMjVjN2RmMzZjMzdlZQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlv
bi5tbQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiSFRUUFNlcnZlci5oIgorI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaCIKKyNpbXBvcnQgIlV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KKworQGludGVyZmFj
ZSBNb2NrRXZlbnRBdHRyaWJ1dGlvbiA6IE5TT2JqZWN0CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBhc3NpZ24sIHJlYWRvbmx5KSB1aW50OF90IHNvdXJjZUlkZW50aWZpZXI7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TVVJMICphdHRyaWJ1dGVPbjsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNVUkwgKnJlcG9ydEVuZHBvaW50OworQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqc291cmNlRGVzY3Jp
cHRpb247CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICpw
dXJjaGFzZXI7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXBvcnRFbmRwb2ludDooTlNVUkwg
KilyZXBvcnRFbmRwb2ludCBhdHRyaWJ1dGVPbjooTlNVUkwgKilhdHRyaWJ1dGVPbjsKKworQGVu
ZAorCitAaW1wbGVtZW50YXRpb24gTW9ja0V2ZW50QXR0cmlidXRpb24KKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoUmVwb3J0RW5kcG9pbnQ6KE5TVVJMICopcmVwb3J0RW5kcG9pbnQgYXR0cmli
dXRlT246KE5TVVJMICopYXR0cmlidXRlT24KK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGlu
aXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9zb3VyY2VJZGVudGlmaWVyID0gNDI7
CisgICAgX2F0dHJpYnV0ZU9uID0gYXR0cmlidXRlT247CisgICAgX3JlcG9ydEVuZHBvaW50ID0g
cmVwb3J0RW5kcG9pbnQ7CisgICAgX3NvdXJjZURlc2NyaXB0aW9uID0gQCJ0ZXN0IHNvdXJjZSBk
ZXNjcmlwdGlvbiI7CisgICAgX3B1cmNoYXNlciA9IEAidGVzdCBwdXJjaGFzZXIiOworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitU
RVNUKEV2ZW50QXR0cmlidXRpb24sIEJhc2ljKQoreworICAgIGJvb2wgZG9uZSA9IGZhbHNlOwor
ICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFsmZG9uZSwgY29ubmVjdGlvbkNvdW50ID0gMF0gKENvbm5l
Y3Rpb24gY29ubmVjdGlvbikgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoKytjb25uZWN0aW9u
Q291bnQpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZl
SFRUUFJlcXVlc3QoW2Nvbm5lY3Rpb25dIChWZWN0b3I8Y2hhcj4mJiByZXF1ZXN0MSkgeworICAg
ICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDEuZGF0YSgpLCAiR0VUIC9j
b252ZXJzaW9uUmVxdWVzdEJlZm9yZVJlZGlyZWN0IEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QxLnNp
emUoKSkpOworICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJlZGlyZWN0ID0gIkhUVFAvMS4x
IDMwMiBGb3VuZFxyXG4iCisgICAgICAgICAgICAgICAgICAgICJMb2NhdGlvbjogLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMTJcclxuIgorICAgICAgICAgICAgICAgICAg
ICAiQ29udGVudC1MZW5ndGg6IDBcclxuXHJcbiI7CisgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi5zZW5kKHJlZGlyZWN0LCBbY29ubmVjdGlvbl0geworICAgICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLnJlY2VpdmVIVFRQUmVxdWVzdChbY29ubmVjdGlvbl0gKFZlY3RvcjxjaGFyPiYmIHJl
cXVlc3QyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJl
cXVlc3QyLmRhdGEoKSwgIkdFVCAvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC8xMiBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlID0gIkhUVFAvMS4xIDIwMCBPS1xyXG4iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAwXHJcblxyXG4iOworICAg
ICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKHJlc3BvbnNlKTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBjb25uZWN0aW9u
LnJlY2VpdmVIVFRQUmVxdWVzdChbJmRvbmVdIChWZWN0b3I8Y2hhcj4mJiByZXF1ZXN0Mykgewor
ICAgICAgICAgICAgICAgIHJlcXVlc3QzLmFwcGVuZCgnXDAnKTsKKyAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QzLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4i
LCByZXF1ZXN0My5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBib2R5QmVn
aW4gPSBzdHJuc3RyKHJlcXVlc3QzLmRhdGEoKSwgIlxyXG5cclxuIiwgcmVxdWVzdDMuc2l6ZSgp
KSArIHN0cmxlbigiXHJcblxyXG4iKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfU1RSRVEoYm9k
eUJlZ2luLCAie1wic291cmNlX2VuZ2FnZW1lbnRfdHlwZVwiOlwiY2xpY2tcIixcInNvdXJjZV9z
aXRlXCI6XCIxMjcuMC4wLjFcIixcInNvdXJjZV9pZFwiOjQyLFwiYXR0cmlidXRlZF9vbl9zaXRl
XCI6XCJleGFtcGxlLmNvbVwiLFwidHJpZ2dlcl9kYXRhXCI6MTIsXCJ2ZXJzaW9uXCI6MX0iKTsK
KyAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMp
OworICAgIE5TVVJMICpzZXJ2ZXJVUkwgPSBzZXJ2ZXIucmVxdWVzdCgpLlVSTDsKKworICAgIGF1
dG8gZXhhbXBsZVVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9leGFtcGxlLmNv
bS8iXTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uID0gW1tbTW9ja0V2ZW50QXR0cmlidXRpb24gYWxs
b2NdIGluaXRXaXRoUmVwb3J0RW5kcG9pbnQ6c2VydmVyLnJlcXVlc3QoKS5VUkwgYXR0cmlidXRl
T246ZXhhbXBsZVVSTF0gYXV0b3JlbGVhc2VdOworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
KmNvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSBhdXRvcmVsZWFz
ZV07CisgICAgY29uZmlndXJhdGlvbi5fZXZlbnRBdHRyaWJ1dGlvbiA9IChfVUlFdmVudEF0dHJp
YnV0aW9uICopYXR0cmlidXRpb247CisgICAgYXV0byB3ZWJWaWV3ID0gW1tbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSBhdXRvcmVsZWFzZV07CisgICAgW2NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsKKyAgICBbY29uZmlndXJhdGlvbi53
ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46QFsoaWQpdGVzdENlcnRp
ZmljYXRlKCkuZ2V0KCldIGZvckhvc3Q6c2VydmVyVVJMLmhvc3RdOworICAgIFt3ZWJWaWV3IF9z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nOnNlcnZlclVS
TCBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6
XnsKKyAgICAgICAgICAgIE5TU3RyaW5nICpodG1sID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNpb25SZXF1ZXN0QmVmb3JlUmVkaXJlY3QnLHtt
b2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2VydmVyVVJMXTsKKyAgICAgICAgICAgIFt3ZWJW
aWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpleGFtcGxlVVJMXTsKKyAgICAgICAgfV07
CisgICAgfV07CisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9IVFRQU2VydmVyLmgKaW5kZXggNDk0NmU1NGIxMmY1NWRkMzQ0ZTViMjYyYmZi
NWZiZTgzMTYxNTY1Ny4uMzk1ZGFmOTMxZTI4YTcxZTc3YjgwZjEwMTc4ZjU1OTQ4NWYzNTFjMiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLmgKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLmgKQEAgLTE2NSw1ICsxNjUsNiBA
QCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKK1JldGFpblB0cjxT
ZWNDZXJ0aWZpY2F0ZVJlZj4gdGVzdENlcnRpZmljYXRlKCk7CiBSZXRhaW5QdHI8U2VjSWRlbnRp
dHlSZWY+IHRlc3RJZGVudGl0eSgpOwogUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiB0ZXN0SWRl
bnRpdHkyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415963</attachid>
            <date>2020-12-10 20:01:39 -0800</date>
            <delta_ts>2020-12-10 23:41:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219763-20201210200139.patch</filename>
            <type>text/plain</type>
            <size>33603</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWUzMTUxMzZmMjI2MTJl
ODY5NDQ4ZDc3ZmQyYzJmMjA1ZWRkOGI0Yi4uMDBhMjYzMDQ0YTcyMDZhNWE2YTU2YjQ0OWQyODVl
MTZkZjk1M2U4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEyLTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWNjZXB0
IGNsaWNrIG1lYXN1cmVtZW50IGRhdGEgZnJvbSBob3N0aW5nIGFwcGxpY2F0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk3NjMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcyMTIxMDk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2ls
YW5kZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBhbiBBUEkgdGVzdC4KKworICAgICAgICAqIGxv
YWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpzb3VyY2VJRCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlRGVzY3JpcHRpb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnB1cmNoYXNl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Ojpk
ZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNvdXJj
ZUlEKTogRGVsZXRlZC4KKwogMjAyMC0xMi0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gTGluZSBhdmFpbGFibGUgd2lkdGggY29tcHV0YXRp
b24gc2hvdWxkIGJlIGJhc2VkIG9uIHRoZSBjb250ZW50IGxvZ2ljYWwgcmlnaHQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGMzOTQ0Zjc4NGZkYjM0YTlmOGRkZThjZmI1NTQ5YmVmM2I5MjFlMWQuLjhlNTJjOWM1YWRl
YzlmMzZmMzUxYmE4MzA1OTg0NWRhYzA4MzNjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMjAtMTItMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBBY2NlcHQgY2xpY2sgbWVhc3VyZW1lbnQgZGF0YSBmcm9tIGhvc3RpbmcgYXBw
bGljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxOTc2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIxMjEwOTQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YnVpbGRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEZyb21EYXRhYmFzZSk6CisgICAgICAgICogUGxhdGZvcm0vaW9zL1VJ
S2l0U29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm0vaW9zL1VJS2l0U29mdExp
bmsubW06IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b25VUkxGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRFdmVu
dEF0dHJpYnV0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2V2ZW50QXR0cmlidXRpb25d
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgY29uc3QpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIwLTEyLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBJQ0UgZG9lcyBub3QgcmVzb2x2ZSBmb3IgYHR1cm5zYCByZWxheSBjYW5k
aWRhdGVzIHJvb3RlZCBpbiBMZXRzRW5jcnlwdCBDQQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaAppbmRleCBmY2FkNTVhOTVkZmFjMDkxNTllMDNj
OGM2YTI5MGVmZmI0NzFjNjdlLi43ODVlYjY3YjdhYTk4MzgyZmI4ODUyYmRjYmE2YTgxOGQ3NTQz
MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuaApAQCAtMjM1LDEwICsyMzUsMTIgQEAgcHVibGljOgogICAgIH07CiAKICAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpID0gZGVmYXVsdDsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChTb3VyY2VJRCBzb3VyY2VJRCwgY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3Qg
QXR0cmlidXRlT25TaXRlJiBhdHRyaWJ1dGVPblNpdGUsIFdhbGxUaW1lIHRpbWVPZkFkQ2xpY2sg
PSBXYWxsVGltZTo6bm93KCkpCisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoU291cmNlSUQg
c291cmNlSUQsIGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IEF0dHJpYnV0ZU9u
U2l0ZSYgYXR0cmlidXRlT25TaXRlLCBTdHJpbmcmJiBzb3VyY2VEZXNjcmlwdGlvbiA9IHsgfSwg
U3RyaW5nJiYgcHVyY2hhc2VyID0geyB9LCBXYWxsVGltZSB0aW1lT2ZBZENsaWNrID0gV2FsbFRp
bWU6Om5vdygpKQogICAgICAgICA6IG1fc291cmNlSUQgeyBzb3VyY2VJRCB9CiAgICAgICAgICwg
bV9zb3VyY2VTaXRlIHsgc291cmNlU2l0ZSB9CiAgICAgICAgICwgbV9hdHRyaWJ1dGVPblNpdGUg
eyBhdHRyaWJ1dGVPblNpdGUgfQorICAgICAgICAsIG1fc291cmNlRGVzY3JpcHRpb24geyBXVEZN
b3ZlKHNvdXJjZURlc2NyaXB0aW9uKSB9CisgICAgICAgICwgbV9wdXJjaGFzZXIgeyBXVEZNb3Zl
KHB1cmNoYXNlcikgfQogICAgICAgICAsIG1fdGltZU9mQWRDbGljayB7IHRpbWVPZkFkQ2xpY2sg
fQogICAgIHsKICAgICB9CkBAIC0yNTQsMTAgKzI1NiwxMyBAQCBwdWJsaWM6CiAgICAgV2FsbFRp
bWUgdGltZU9mQWRDbGljaygpIGNvbnN0IHsgcmV0dXJuIG1fdGltZU9mQWRDbGljazsgfQogICAg
IE9wdGlvbmFsPFdhbGxUaW1lPiBlYXJsaWVzdFRpbWVUb1NlbmQoKSBjb25zdCB7IHJldHVybiBt
X2VhcmxpZXN0VGltZVRvU2VuZDsgfTsKICAgICB2b2lkIHNldEVhcmxpZXN0VGltZVRvU2VuZChX
YWxsVGltZSB0aW1lKSB7IG1fZWFybGllc3RUaW1lVG9TZW5kID0gdGltZTsgfQotICAgIFNvdXJj
ZUlEIHNvdXJjZUlEKCkgeyByZXR1cm4gbV9zb3VyY2VJRDsgfQorICAgIGNvbnN0IFNvdXJjZUlE
JiBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSUQ7IH0KICAgICBPcHRpb25hbDxB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkgeyByZXR1cm4g
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGlvbihBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSkgeyBtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpOyB9CiAKKyAg
ICBjb25zdCBTdHJpbmcmIHNvdXJjZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2VEZXNjcmlwdGlvbjsgfQorICAgIGNvbnN0IFN0cmluZyYgcHVyY2hhc2VyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wdXJjaGFzZXI7IH0KKwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7CiAK
QEAgLTI2OCw2ICsyNzMsOCBAQCBwcml2YXRlOgogICAgIFNvdXJjZUlEIG1fc291cmNlSUQ7CiAg
ICAgU291cmNlU2l0ZSBtX3NvdXJjZVNpdGU7CiAgICAgQXR0cmlidXRlT25TaXRlIG1fYXR0cmli
dXRlT25TaXRlOworICAgIFN0cmluZyBtX3NvdXJjZURlc2NyaXB0aW9uOworICAgIFN0cmluZyBt
X3B1cmNoYXNlcjsKICAgICBXYWxsVGltZSBtX3RpbWVPZkFkQ2xpY2s7CiAKICAgICBPcHRpb25h
bDxBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBtX2F0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CkBAIC0y
NzcsNyArMjg0LDE0IEBAIHByaXZhdGU6CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
Ci0gICAgZW5jb2RlciA8PCBtX3NvdXJjZUlELmlkIDw8IG1fc291cmNlU2l0ZS5yZWdpc3RyYWJs
ZURvbWFpbiA8PCBtX2F0dHJpYnV0ZU9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX3RpbWVP
ZkFkQ2xpY2sgPDwgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhIDw8IG1fZWFybGllc3RUaW1lVG9T
ZW5kOworICAgIGVuY29kZXIgPDwgbV9zb3VyY2VJRC5pZAorICAgICAgICA8PCBtX3NvdXJjZVNp
dGUucmVnaXN0cmFibGVEb21haW4KKyAgICAgICAgPDwgbV9hdHRyaWJ1dGVPblNpdGUucmVnaXN0
cmFibGVEb21haW4KKyAgICAgICAgPDwgbV9zb3VyY2VEZXNjcmlwdGlvbgorICAgICAgICA8PCBt
X3B1cmNoYXNlcgorICAgICAgICA8PCBtX3RpbWVPZkFkQ2xpY2sKKyAgICAgICAgPDwgbV9hdHRy
aWJ1dGlvblRyaWdnZXJEYXRhCisgICAgICAgIDw8IG1fZWFybGllc3RUaW1lVG9TZW5kOwogfQog
CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMjk4LDYgKzMxMiwxNiBAQCBPcHRpb25hbDxQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZAogICAgIGlmICghYXR0cmlidXRlT25SZWdpc3RyYWJsZURvbWFpbikKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAKKyAgICBPcHRpb25hbDxTdHJpbmc+IHNv
dXJjZURlc2NyaXB0aW9uOworICAgIGRlY29kZXIgPj4gc291cmNlRGVzY3JpcHRpb247CisgICAg
aWYgKCFzb3VyY2VEZXNjcmlwdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICAKKyAgICBPcHRpb25hbDxTdHJpbmc+IHB1cmNoYXNlcjsKKyAgICBkZWNvZGVyID4+IHB1cmNo
YXNlcjsKKyAgICBpZiAoIXB1cmNoYXNlcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICAKICAgICBPcHRpb25hbDxXYWxsVGltZT4gdGltZU9mQWRDbGljazsKICAgICBkZWNvZGVy
ID4+IHRpbWVPZkFkQ2xpY2s7CiAgICAgaWYgKCF0aW1lT2ZBZENsaWNrKQpAQCAtMzEzLDcgKzMz
NywxNCBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZAogICAgIGlmICghZWFybGllc3RUaW1lVG9T
ZW5kKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgU291cmNlSUQgeyBXVEZNb3ZlKCpzb3VyY2VJRCkg
fSwgU291cmNlU2l0ZSB7IFdURk1vdmUoKnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBBdHRy
aWJ1dGVPblNpdGUgeyBXVEZNb3ZlKCphdHRyaWJ1dGVPblJlZ2lzdHJhYmxlRG9tYWluKSB9IH07
CisgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geworICAgICAgICBTb3Vy
Y2VJRCB7IFdURk1vdmUoKnNvdXJjZUlEKSB9LAorICAgICAgICBTb3VyY2VTaXRlIHsgV1RGTW92
ZSgqc291cmNlUmVnaXN0cmFibGVEb21haW4pIH0sCisgICAgICAgIEF0dHJpYnV0ZU9uU2l0ZSB7
IFdURk1vdmUoKmF0dHJpYnV0ZU9uUmVnaXN0cmFibGVEb21haW4pIH0sCisgICAgICAgIFdURk1v
dmUoKnNvdXJjZURlc2NyaXB0aW9uKSwKKyAgICAgICAgV1RGTW92ZSgqcHVyY2hhc2VyKSwKKyAg
ICAgICAgV1RGTW92ZSgqdGltZU9mQWRDbGljaykKKyAgICB9OwogICAgIGF0dHJpYnV0aW9uLm1f
YXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoKmF0dHJpYnV0aW9uVHJpZ2dlckRhdGEp
OwogICAgIGF0dHJpYnV0aW9uLm1fZWFybGllc3RUaW1lVG9TZW5kID0gV1RGTW92ZSgqZWFybGll
c3RUaW1lVG9TZW5kKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDI0YTk1MWVjMDZiMGQ5NDY5MWI5YTI0NTJl
YjQ1MGUzYzhiMjBjMmIuLjk3ZmRiNGNkMGNiOTJiMWE1MDllNWViMDY0NTQxYThlNTM0NjA3MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmNwcApAQCAtMjkzOSw3ICsyOTM5LDcgQEAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmJ1aWxkUHJpdmF0ZUNsaWNrTWUKICAg
ICBhdXRvIHNvdXJjZUlEID0gc3RhdGVtZW50LT5nZXRDb2x1bW5JbnQoMik7CiAgICAgYXV0byB0
aW1lT2ZBZENsaWNrID0gYXR0cmlidXRpb25UeXBlID09IFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25UeXBlOjpBdHRyaWJ1dGVkID8gc3RhdGVtZW50LT5nZXRDb2x1bW5Eb3VibGUo
NSkgOiBzdGF0ZW1lbnQtPmdldENvbHVtbkRvdWJsZSgzKTsKIAotICAgIFByaXZhdGVDbGlja01l
YXN1cmVtZW50IGF0dHJpYnV0aW9uKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VJRChzb3VyY2VJRCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VTaXRlKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVE
b21haW5TdHJpbmcoc291cmNlU2l0ZURvbWFpbikpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRlT25TaXRlKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVh
dGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoYXR0cmlidXRlT25TaXRlRG9tYWluKSksIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lT2ZBZENsaWNrKSk7CisgICAgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgYXR0cmlidXRpb24oV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZUlEKHNvdXJjZUlEKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJs
ZURvbWFpblN0cmluZyhzb3VyY2VTaXRlRG9tYWluKSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENy
ZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhhdHRyaWJ1dGVPblNpdGVEb21haW4pKSwg
eyB9LCB7IH0sIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lT2ZBZENsaWNrKSk7CiAgICAg
CiAgICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uVHlwZTo6QXR0cmlidXRlZCkgewogICAgICAgICBhdXRvIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEgPSBzdGF0ZW1lbnQtPmdldENvbHVtbkludCgzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vaW9zL1VJS2l0U29mdExpbmsuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vaW9zL1VJS2l0U29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTZmMWQ2MDRmMzcyMGE4ODJkZjFk
NGQ2MTY0MTg5MTc2MzY3NzIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9pb3MvVUlLaXRTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIlVJS2l0
U1BJLmgiCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09S
S19GT1JfSEVBREVSKFdlYktpdCwgVUlLaXQpCisKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVS
KFdlYktpdCwgX1VJRXZlbnRBdHRyaWJ1dGlvbik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9pb3MvVUlLaXRTb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vaW9zL1VJS2l0U29mdExpbmsubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBlYzllYzM4OTM4YzFi
YzA4YTFmYjM1M2IyZDY2ZDdkMDU3NGIyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vaW9zL1VJS2l0U29mdExpbmsubW0KQEAgLTAsMCArMSwzNyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
I2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZU
X0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoV2ViS2l0LCBVSUtpdCkKKworU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0UoV2ViS2l0LCBVSUtpdCwgX1VJRXZlbnRBdHRyaWJ1dGlvbikKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEku
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDI0MTc3
ODlkYmMyZmE5ZWZjOGE0NTJlNTk0N2U1OGEyNjQ1ZjE2NzYuLmFkZDA1NzZkNDY2OTc3MzI5OWRi
ZjExZDVjOTQ5OTIxOWQ4MWNlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9V
SUtpdFNQSS5oCkBAIC0xMzQ3LDYgKzEzNDcsMTcgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVn
ZXIsIF9VSUNvbnRleHRNZW51TGF5b3V0KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRTdXBwcmVzc1NvZnR3YXJlS2V5Ym9hcmQ6KSBCT09MIF9zdXBwcmVzc1NvZnR3YXJlS2V5
Ym9hcmQ7CiBAZW5kCiAKK0BpbnRlcmZhY2UgX1VJRXZlbnRBdHRyaWJ1dGlvbiA6IE5TT2JqZWN0
IDxOU0NvcHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduLCByZWFkb25seSkgdWlu
dDhfdCBzb3VyY2VJZGVudGlmaWVyOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHJlYWRv
bmx5KSBOU1VSTCAqYXR0cmlidXRlT247CitAcHJvcGVydHkgKG5vbmF0b21pYywgLypudWxsYWJs
ZSwqLyBjb3B5LCByZWFkb25seSkgTlNVUkwgKnJlcG9ydEVuZHBvaW50OworQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqc291cmNlRGVzY3JpcHRpb247CitA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICpwdXJjaGFzZXI7
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2VJZGVudGlmaWVyOih1aW50OF90KXNvdXJj
ZUlkZW50aWZpZXIgYXR0cmlidXRlT246KE5TVVJMICopYXR0cmlidXRlT24gc291cmNlRGVzY3Jp
cHRpb246KE5TU3RyaW5nICopc291cmNlRGVzY3JpcHRpb24gcHVyY2hhc2VyOihOU1N0cmluZyAq
KXB1cmNoYXNlcjsKKy0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOworKyAoaW5z
dGFuY2V0eXBlKW5ldyBOU19VTkFWQUlMQUJMRTsKK0BlbmQKKwogQGludGVyZmFjZSBfVUlOYXZp
Z2F0aW9uSW50ZXJhY3RpdmVUcmFuc2l0aW9uQmFzZSAoKQogLSAodm9pZClfc3RvcEludGVyYWN0
aXZlVHJhbnNpdGlvbjsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA4YTViNTYxMDg1
ZTM2M2JlYjY5NjZjN2Q0ZTNkNDU2YzFhNWNmODE4Li4wMDkxZTg3OTk5ZTE3NmJmYmNlZTk5MDFk
MWQwYmE3MWJhNmI2YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC04NCw2ICs4NCw3IEBA
IFBsYXRmb3JtL2ZvdW5kYXRpb24vTG9nZ2luZ0ZvdW5kYXRpb24ubW0KIAogUGxhdGZvcm0vaW9z
L0FjY2Vzc2liaWxpdHlJT1MubW0KIFBsYXRmb3JtL2lvcy9QYXltZW50QXV0aG9yaXphdGlvbkNv
bnRyb2xsZXIubW0KK1BsYXRmb3JtL2lvcy9VSUtpdFNvZnRMaW5rLm1tCiAKIFBsYXRmb3JtL0lQ
Qy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0KIFBsYXRmb3JtL0lQQy9jb2NvYS9NYWNoTWVzc2Fn
ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IDg1NGIyMzMxMDEzMmU3ZGFkZWU2NDkzZWY3NjNhMTYxODA3NWQw
ZGMuLjY5MTkzM2VlODk4MTFhZTA3YzdkZGE3ZmE4YjFkMzdmYjczMmI4NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApA
QCAtMTExLDYgKzExMSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0
RWRnZSkgewogQGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlOwogQGNsYXNzIFdLRnJhbWVJ
bmZvOwogQGNsYXNzIFdLV2VicGFnZVByZWZlcmVuY2VzOworQGNsYXNzIF9VSUV2ZW50QXR0cmli
dXRpb247CiBAY2xhc3MgX1dLQXBwbGljYXRpb25NYW5pZmVzdDsKIEBjbGFzcyBfV0tGcmFtZUhh
bmRsZTsKIEBjbGFzcyBfV0tGcmFtZVRyZWVOb2RlOwpAQCAtMzYzLDYgKzM2NCw4IEBAIGZvciB0
aGlzIHByb3BlcnR5LgogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tQcml2YXRlSU9TKQogCitA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRFdmVudEF0dHJpYnV0aW9uOikg
X1VJRXZlbnRBdHRyaWJ1dGlvbiAqX2V2ZW50QXR0cmlidXRpb24gV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVj
dCBfY29udGVudFZpc2libGVSZWN0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIAogLy8g
REVSRUNBVEVEOiBUaGUgc2V0dGVycyBvZiB0aGUgdGhyZWUgZm9sbG93aW5nIGZ1bmN0aW9uIGFy
ZSBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIG92ZXJyaWRlTGF5b3V0UGFyYW1ldGVycy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGVGb3JUZXN0aW5nLmgKaW5kZXggODYyYjk0ODVlZjM4OTRlNDQ1ODc3ZjUxNjM1ZmE3
OGQzY2NkODRmZC4uOTc0NDM0MTAxZjg0ZWM1MjQ5MThhYmMxNGMzZjMxZmI3YWJlNmJjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTgzLDQgKzgzLDggQEAgdHlwZWRlZiBlbnVt
IHsKIC0gKHZvaWQpX2RvQWZ0ZXJBY3Rpdml0eVN0YXRlVXBkYXRlOih2b2lkICheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlcjsKIAogLSAoTlNOdW1iZXIgKilfc3VzcGVuZE1lZGlhUGxheWJhY2tD
b3VudGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CisKKy0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZv
clRlc3Rpbmc6KEJPT0wpb3ZlcnJpZGVUaW1lciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQppbmRleCBmMjI0ODM5
YmQwYmUyODUxZDZjMzgyYzI4MDRiNjdjYjcxYzUzZjY2Li4xOTIzMzZkZGU3OTZmYTgyYzkyNjcy
ZDU3NDRkZDllNTUxNjUxZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtMjk2LDYgKzI5NiwyMCBAQAogICAg
IHJldHVybiBAKF9wYWdlLT5zdXNwZW5kTWVkaWFQbGF5YmFja0NvdW50ZXIoKSk7CiB9CiAKKy0g
KHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6
KEJPT0wpb3ZlcnJpZGVUaW1lciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21w
bGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKG92ZXJyaWRlVGltZXIsIFtjb21wbGV0aW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKKyAgICB9KTsKK30KKworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+c2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyh1cmwsIFtjb21wbGV0aW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfZGlkUHJlc2VudENvbnRh
Y3RQaWNrZXIKIHsKICAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggNGI3NjYy
YTE2NDU5NGRlNmU0M2ZlNDQ0NDhlMDkyMzdkNzJiZWYzMi4uNzUzOTc5NTdlYzI3YmJkOTFkZDFl
ZDk5ZWVjNDAyYzY0NmIwZTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTYyLDYgKzYyLDggQEAKICNpbXBvcnQgIldLRGF0YURl
dGVjdG9yVHlwZXNJbnRlcm5hbC5oIgogI2VuZGlmCiAKKyNpbmNsdWRlICJVSUtpdFNvZnRMaW5r
LmgiCisKICNkZWZpbmUgRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5UVklFVyhfYWN0aW9uKSBc
CiAtICh2b2lkKV9hY3Rpb246KGlkKXNlbmRlciBcCiB7IFwKQEAgLTI0MDAsNiArMjQwMiwzMSBA
QCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24oVUlTZQogCiBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3IChX
S1ByaXZhdGVJT1MpCiAKKy0gKHZvaWQpX3NldEV2ZW50QXR0cmlidXRpb246KF9VSUV2ZW50QXR0
cmlidXRpb24gKilhdHRyaWJ1dGlvbgoreworICAgIGlmIChhdHRyaWJ1dGlvbikgeworICAgICAg
ICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBtZWFzdXJlbWVudCgKKyAgICAgICAg
ICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChhdHRyaWJ1dGlv
bi5zb3VyY2VJZGVudGlmaWVyKSwKKyAgICAgICAgICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VTaXRlKGF0dHJpYnV0aW9uLnJlcG9ydEVuZHBvaW50KSwKKyAgICAg
ICAgICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGVPblNpdGUo
YXR0cmlidXRpb24uYXR0cmlidXRlT24pLAorICAgICAgICAgICAgYXR0cmlidXRpb24uc291cmNl
RGVzY3JpcHRpb24sCisgICAgICAgICAgICBhdHRyaWJ1dGlvbi5wdXJjaGFzZXIKKyAgICAgICAg
KTsKKyAgICAgICAgX3BhZ2UtPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50KFdURk1vdmUobWVh
c3VyZW1lbnQpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgX3BhZ2UtPnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50KFdURjo6bnVsbG9wdCk7Cit9CisKKy0gKF9VSUV2ZW50QXR0cmlidXRpb24gKilf
ZXZlbnRBdHRyaWJ1dGlvbgoreworICAgIGF1dG8mIG1lYXN1cmVtZW50ID0gX3BhZ2UtPnByaXZh
dGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgaWYgKCFtZWFzdXJlbWVudCB8fCAhbWVhc3VyZW1l
bnQtPnNvdXJjZUlEKCkuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgYXV0
byBhdHRyaWJ1dGVPblVSTCA9IFVSTChVUkwoKSwgbWFrZVN0cmluZygiaHR0cHM6Ly8iLCBtZWFz
dXJlbWVudC0+YXR0cmlidXRlT25TaXRlKCkucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpKTsK
KyAgICByZXR1cm4gW1tXZWJLaXQ6OmFsbG9jX1VJRXZlbnRBdHRyaWJ1dGlvbkluc3RhbmNlKCkg
aW5pdFdpdGhTb3VyY2VJZGVudGlmaWVyOm1lYXN1cmVtZW50LT5zb3VyY2VJRCgpLmlkIGF0dHJp
YnV0ZU9uOmF0dHJpYnV0ZU9uVVJMIHNvdXJjZURlc2NyaXB0aW9uOm1lYXN1cmVtZW50LT5zb3Vy
Y2VEZXNjcmlwdGlvbigpIHB1cmNoYXNlcjptZWFzdXJlbWVudC0+cHVyY2hhc2VyKCldIGF1dG9y
ZWxlYXNlXTsKK30KKwogLSAoQ0dSZWN0KV9jb250ZW50VmlzaWJsZVJlY3QKIHsKICAgICByZXR1
cm4gW3NlbGYgY29udmVydFJlY3Q6W3NlbGYgYm91bmRzXSB0b1ZpZXc6c2VsZi5fY3VycmVudENv
bnRlbnRWaWV3XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGI1YTNjYzc3MTI2NzA1NTNlNWEyODNhYzNhOGJhNDNmZDZkNzVhMjcuLjA1ZGQwNTY3MjM2NzNi
MTMyYmZlNzgwMGUxM2U4ZTA5ZDgyYmIxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNDY2NSw4ICs0NjY1LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0
YSYKIAogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSkgewogICAgICAgICBPcHRpb25hbDxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7
Ci0gICAgICAgIGlmIChtX25ld1BhZ2VOYXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
Ci0gICAgICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG1fbmV3UGFnZU5hdmlnYXRp
b25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICAgICAgaWYgKG1fcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpCisgICAgICAgICAgICBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG1fcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ7CiAgICAgICAgIGVsc2UgaWYgKG5hdmlnYXRpb24gJiYgbmF2aWdh
dGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSkKICAgICAgICAgICAgIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50ID0gbmF2aWdhdGlvbi0+cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKICAg
ICAgICAgaWYgKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSB7CkBAIC00Njc0LDcgKzQ2NzQsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRhU3Rv
cmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTdG9y
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCks
ICpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCksIDApOwogICAgICAgICB9CiAgICAgfQotICAgIG1f
bmV3UGFnZU5hdmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5yZXNldCgpOworICAgIG1f
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQucmVzZXQoKTsKIAogICAgIGlmIChmcmFtZS0+aXNNYWlu
RnJhbWUoKSkgewogICAgICAgICBtX21haW5GcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciA9
IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyOwpAQCAtNTU1MCw3ICs1NTUwLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UoRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5n
RnJhbWVJbmZvRGF0YSwgV2ViUGEKIAogICAgICAgICBuZXdQYWdlLT5tX3Nob3VsZFN1cHByZXNz
QXBwTGlua3NJbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gPSBtYWluRnJhbWVVUkwuaG9z
dCgpID09IHJlcXVlc3QudXJsKCkuaG9zdCgpOwogCi0gICAgICAgIG5ld1BhZ2UtPm1fbmV3UGFn
ZU5hdmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IHByaXZhdGVDbGlja01lYXN1cmVt
ZW50OworICAgICAgICBuZXdQYWdlLT5tX3ByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ7CiAjaWYgSEFWRShBUFBfU1NPKQogICAgICAgICBuZXdQYWdlLT5t
X3Nob3VsZFN1cHByZXNzU09BdXRob3JpemF0aW9uSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lz
aW9uID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBjMzc3Y2I0MWZmMmFmMGE3NWY5M2IxYWY3Mzc2ZTQ4NWFhYjRkN2JlLi42Njc5NGIyOWZj
ODIxYmQwYmNhNjhlY2Y0NWIzNmUzOWFhYTgzN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNjcyLDYgKzY3Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERl
bGVnYXRlc1Njcm9sbGluZyhib29sIGRlbGVnYXRlc1Njcm9sbGluZykgeyBtX2RlbGVnYXRlc1Nj
cm9sbGluZyA9IGRlbGVnYXRlc1Njcm9sbGluZzsgfQogICAgIGJvb2wgZGVsZWdhdGVzU2Nyb2xs
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9kZWxlZ2F0ZXNTY3JvbGxpbmc7IH0KIAorICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+JiYgbWVhc3VyZW1lbnQpIHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9
IFdURk1vdmUobWVhc3VyZW1lbnQpOyB9CisgICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7IH0KKwogICAgIGVudW0gY2xhc3MgQWN0
aXZpdHlTdGF0ZUNoYW5nZURpc3BhdGNoTW9kZSA6IGJvb2wgeyBEZWZlcnJhYmxlLCBJbW1lZGlh
dGUgfTsKICAgICBlbnVtIGNsYXNzIEFjdGl2aXR5U3RhdGVDaGFuZ2VSZXBseU1vZGUgOiBib29s
IHsgQXN5bmNocm9ub3VzLCBTeW5jaHJvbm91cyB9OwogICAgIHZvaWQgYWN0aXZpdHlTdGF0ZURp
ZENoYW5nZShPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gbWF5SGF2ZUNo
YW5nZWQsIEFjdGl2aXR5U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGUgPSBBY3Rpdml0eVN0YXRlQ2hh
bmdlRGlzcGF0Y2hNb2RlOjpEZWZlcnJhYmxlLCBBY3Rpdml0eVN0YXRlQ2hhbmdlUmVwbHlNb2Rl
ID0gQWN0aXZpdHlTdGF0ZUNoYW5nZVJlcGx5TW9kZTo6QXN5bmNocm9ub3VzKTsKQEAgLTI5MDMs
NyArMjkwNiw3IEBAIHByaXZhdGU6CiAKICAgICBzaXplX3QgbV9zdXNwZW5kTWVkaWFQbGF5YmFj
a0NvdW50ZXIgeyAwIH07CiAKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudD4gbV9uZXdQYWdlTmF2aWdhdGlvblByaXZhdGVDbGlja01lYXN1cmVtZW50OworICAg
IE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBtX3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YWMxZDQ0ODQ4ZTFm
OGIyNTRmNDFiMGRkODM1MDE5ODI2ZDc3OGVmLi42ZGYxOTFmODk2MjFiMjRlNWE0ODBlZjdiNmZj
ZTFmNWJlNGE4NTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTU1NTMsNiArNTU1Myw4IEBACiAJCURGNzQyNzVDMjRGNDk1NTAwMEY4
QUJFOSAvKiBQREZQbHVnaW5JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBERlBsdWdpbklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJREY4NENFRTIyNDlBQTIxRjAwOTA5NkY2IC8qIFdLUERGSFVEVmlldy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLUERGSFVEVmlldy5tbTsgcGF0aCA9IFBE
Ri9XS1BERkhVRFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGODRDRUUz
MjQ5QUEyMUYwMDkwOTZGNiAvKiBXS1BERkhVRFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV0tQREZIVURWaWV3Lmg7IHBhdGggPSBQREYvV0tQREZIVURWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURGODUyM0JBMjU4MzE3NkYwMEFFQUREMCAvKiBV
SUtpdFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJS2l0U29m
dExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREY4NTIzQkIyNTgzMTdBOTAw
QUVBREQwIC8qIFVJS2l0U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBVSUtpdFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5pY25zOyBu
YW1lID0gV2ViS2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0LmljbnM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTk1LDYgKzkxOTcsOCBAQAogCQkJCUExODJENUIyMUJF
NkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tICovLAogCQkJCUExNzk4QjRGMjIz
MEEwRkUwMDA3NjRCRCAvKiBQYXltZW50QXV0aG9yaXphdGlvbkNvbnRyb2xsZXIuaCAqLywKIAkJ
CQlBMTc5OEI1MDIyMzBBMEZFMDAwNzY0QkQgLyogUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9s
bGVyLm1tICovLAorCQkJCURGODUyM0JBMjU4MzE3NkYwMEFFQUREMCAvKiBVSUtpdFNvZnRMaW5r
LmggKi8sCisJCQkJREY4NTIzQkIyNTgzMTdBOTAwQUVBREQwIC8qIFVJS2l0U29mdExpbmsubW0g
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzBjYjY2
MGU2Y2I4ZmYyYjQ3ODc1ZGM1YTA1ZDFmMGZlMzE3ZWQxZS4uNDQyZGY4ZjUxYzg2MWE1NDFlNWRj
YzhhMzEzY2Y4Zjg0Mjc3MWJjNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEyLTEwICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWNjZXB0IGNsaWNrIG1l
YXN1cmVtZW50IGRhdGEgZnJvbSBob3N0aW5nIGFwcGxpY2F0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk3NjMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzcyMTIxMDk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06CisgICAgICAgICh0ZXN0
Q2VydGlmaWNhdGUpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbTogQWRkZWQuCisgICAgICAgICgtW01vY2tFdmVudEF0dHJpYnV0
aW9uIGluaXRXaXRoUmVwb3J0RW5kcG9pbnQ6YXR0cmlidXRlT246XSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2
ZXIuaDoKKwogMjAyMC0xMi0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIFRlc3RXZWJLaXRBUEkuR1BVUHJvY2Vzcy5XZWJQcm9jZXNzVGVybWluYXRp
b25BZnRlclRvb01hbnlHUFVQcm9jZXNzQ3Jhc2hlcyBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCBkOTdmMjY2ZTQwNWVjZmFhNDE0MTk0NTk5
MDg4YWQ1NDBiZDRkMDllLi44ZWY0ZDU5NGUwNzUzNDNiOTE1YzgwYjY4ZWUxOGE5NjQzYmVmZDY4
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMiw0ICszMiw1IEBAIGNv
Y29hL1Rlc3RQcm90b2NvbC5tbQogY29jb2EvVGVzdFVJRGVsZWdhdGUubW0KIGNvY29hL1Rlc3RX
S1dlYlZpZXcubW0KIAorVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQogVGVz
dHMvV2ViS2l0Q29jb2EvVExTRGVwcmVjYXRpb24ubW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KaW5kZXggYzJmMzFiZmVkODdlYzA4
ZDFjM2M2ZDZlNTI4NWYyMDU4ZWM2ZjFmOS4uOTY0MDc0OGJmNjMwMjhkMmI3NDQ4OThjZDBkNDY1
M2NmYThiZDVkMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9DaGFsbGVuZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9DaGFsbGVuZ2UubW0KQEAgLTQ3LDcgKzQ3LDcgQEAKIAogc3RhdGljIGJvb2wgbmF2aWdh
dGlvbkZpbmlzaGVkOwogCi1zdGF0aWMgUmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVmPiB0ZXN0
Q2VydGlmaWNhdGUoKQorUmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVmPiB0ZXN0Q2VydGlmaWNh
dGUoKQogewogICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IFRlc3RXZWJLaXRBUEk6OlRDUFNl
cnZlcjo6dGVzdENlcnRpZmljYXRlKCk7CiAgICAgcmV0dXJuIGFkb3B0Q0YoU2VjQ2VydGlmaWNh
dGVDcmVhdGVXaXRoRGF0YShudWxscHRyLCAoX19icmlkZ2UgQ0ZEYXRhUmVmKVtOU0RhdGEgZGF0
YVdpdGhCeXRlczpjZXJ0aWZpY2F0ZUJ5dGVzLmRhdGEoKSBsZW5ndGg6Y2VydGlmaWNhdGVCeXRl
cy5zaXplKCldKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEzNGZiOWQ2ZDY4YzQx
ZTYzN2EwMWFiNmQ1MTY5MDU2YzdiNGQzMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMCwwICsx
LDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiSFRUUFNlcnZlci5oIgorI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQg
IlV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KKworQGludGVyZmFjZSBNb2NrRXZlbnRBdHRy
aWJ1dGlvbiA6IE5TT2JqZWN0CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24sIHJlYWRv
bmx5KSB1aW50OF90IHNvdXJjZUlkZW50aWZpZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgcmVhZG9ubHkpIE5TVVJMICphdHRyaWJ1dGVPbjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5LCByZWFkb25seSkgTlNVUkwgKnJlcG9ydEVuZHBvaW50OworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqc291cmNlRGVzY3JpcHRpb247CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICpwdXJjaGFzZXI7CistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhSZXBvcnRFbmRwb2ludDooTlNVUkwgKilyZXBvcnRFbmRwb2lu
dCBhdHRyaWJ1dGVPbjooTlNVUkwgKilhdHRyaWJ1dGVPbjsKKworQGVuZAorCitAaW1wbGVtZW50
YXRpb24gTW9ja0V2ZW50QXR0cmlidXRpb24KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVw
b3J0RW5kcG9pbnQ6KE5TVVJMICopcmVwb3J0RW5kcG9pbnQgYXR0cmlidXRlT246KE5TVVJMICop
YXR0cmlidXRlT24KK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIF9zb3VyY2VJZGVudGlmaWVyID0gNDI7CisgICAgX2F0dHJpYnV0
ZU9uID0gYXR0cmlidXRlT247CisgICAgX3JlcG9ydEVuZHBvaW50ID0gcmVwb3J0RW5kcG9pbnQ7
CisgICAgX3NvdXJjZURlc2NyaXB0aW9uID0gQCJ0ZXN0IHNvdXJjZSBkZXNjcmlwdGlvbiI7Cisg
ICAgX3B1cmNoYXNlciA9IEAidGVzdCBwdXJjaGFzZXIiOworCisgICAgcmV0dXJuIHNlbGY7Cit9
CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKEV2ZW50QXR0cmli
dXRpb24sIEJhc2ljKQoreworICAgIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIEhUVFBTZXJ2ZXIg
c2VydmVyKFsmZG9uZSwgY29ubmVjdGlvbkNvdW50ID0gMF0gKENvbm5lY3Rpb24gY29ubmVjdGlv
bikgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoKytjb25uZWN0aW9uQ291bnQpIHsKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoW2Nv
bm5lY3Rpb25dIChWZWN0b3I8Y2hhcj4mJiByZXF1ZXN0MSkgeworICAgICAgICAgICAgICAgIEVY
UEVDVF9UUlVFKHN0cm5zdHIocmVxdWVzdDEuZGF0YSgpLCAiR0VUIC9jb252ZXJzaW9uUmVxdWVz
dEJlZm9yZVJlZGlyZWN0IEhUVFAvMS4xXHJcbiIsIHJlcXVlc3QxLnNpemUoKSkpOworICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIHJlZGlyZWN0ID0gIkhUVFAvMS4xIDMwMiBGb3VuZFxyXG4i
CisgICAgICAgICAgICAgICAgICAgICJMb2NhdGlvbjogLy53ZWxsLWtub3duL3ByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQvMTJcclxuIgorICAgICAgICAgICAgICAgICAgICAiQ29udGVudC1MZW5n
dGg6IDBcclxuXHJcbiI7CisgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKHJlZGlyZWN0
LCBbY29ubmVjdGlvbl0geworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVI
VFRQUmVxdWVzdChbY29ubmVjdGlvbl0gKFZlY3RvcjxjaGFyPiYmIHJlcXVlc3QyKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJuc3RyKHJlcXVlc3QyLmRhdGEoKSwg
IkdFVCAvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8xMiBIVFRQLzEuMVxy
XG4iLCByZXF1ZXN0Mi5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIHJlc3BvbnNlID0gIkhUVFAvMS4xIDIwMCBPS1xyXG4iCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAwXHJcblxyXG4iOworICAgICAgICAgICAgICAgICAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKHJlc3BvbnNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBjb25uZWN0aW9uLnJlY2VpdmVIVFRQUmVx
dWVzdChbJmRvbmVdIChWZWN0b3I8Y2hhcj4mJiByZXF1ZXN0MykgeworICAgICAgICAgICAgICAg
IHJlcXVlc3QzLmFwcGVuZCgnXDAnKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzdHJu
c3RyKHJlcXVlc3QzLmRhdGEoKSwgIlBPU1QgLyBIVFRQLzEuMVxyXG4iLCByZXF1ZXN0My5zaXpl
KCkpKTsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBib2R5QmVnaW4gPSBzdHJuc3RyKHJl
cXVlc3QzLmRhdGEoKSwgIlxyXG5cclxuIiwgcmVxdWVzdDMuc2l6ZSgpKSArIHN0cmxlbigiXHJc
blxyXG4iKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfU1RSRVEoYm9keUJlZ2luLCAie1wic291
cmNlX2VuZ2FnZW1lbnRfdHlwZVwiOlwiY2xpY2tcIixcInNvdXJjZV9zaXRlXCI6XCIxMjcuMC4w
LjFcIixcInNvdXJjZV9pZFwiOjQyLFwiYXR0cmlidXRlZF9vbl9zaXRlXCI6XCJleGFtcGxlLmNv
bVwiLFwidHJpZ2dlcl9kYXRhXCI6MTIsXCJ2ZXJzaW9uXCI6MX0iKTsKKyAgICAgICAgICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9LCBIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMpOworICAgIE5TVVJMICpz
ZXJ2ZXJVUkwgPSBzZXJ2ZXIucmVxdWVzdCgpLlVSTDsKKworICAgIGF1dG8gZXhhbXBsZVVSTCA9
IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9leGFtcGxlLmNvbS8iXTsKKyAgICBhdXRv
IGF0dHJpYnV0aW9uID0gW1tbTW9ja0V2ZW50QXR0cmlidXRpb24gYWxsb2NdIGluaXRXaXRoUmVw
b3J0RW5kcG9pbnQ6c2VydmVyLnJlcXVlc3QoKS5VUkwgYXR0cmlidXRlT246ZXhhbXBsZVVSTF0g
YXV0b3JlbGVhc2VdOworICAgIGF1dG8gd2ViVmlldyA9IFtbV0tXZWJWaWV3IG5ld10gYXV0b3Jl
bGVhc2VdOworICAgIHdlYlZpZXcuX2V2ZW50QXR0cmlidXRpb24gPSAoX1VJRXZlbnRBdHRyaWJ1
dGlvbiAqKWF0dHJpYnV0aW9uOworICAgIFt3ZWJWaWV3LmNvbmZpZ3VyYXRpb24ud2Vic2l0ZURh
dGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsKKyAgICBbd2Vi
Vmlldy5jb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNhdGVD
aGFpbjpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0gZm9ySG9zdDpzZXJ2ZXJVUkwuaG9z
dF07CisgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVS
TEZvclRlc3Rpbmc6c2VydmVyVVJMIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIFt3ZWJW
aWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOllF
UyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICAgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQ+ZmV0Y2goJyVAY29udmVyc2lvblJlcXVl
c3RCZWZvcmVSZWRpcmVjdCcse21vZGU6J25vLWNvcnMnfSk8L3NjcmlwdD4iLCBzZXJ2ZXJVUkxd
OworICAgICAgICAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOmV4YW1w
bGVVUkxdOworICAgICAgICB9XTsKKyAgICB9XTsKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVy
LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIuaAppbmRleCA0OTQ2ZTU0
YjEyZjU1ZGQzNDRlNWIyNjJiZmI1ZmJlODMxNjE1NjU3Li4zOTVkYWY5MzFlMjhhNzFlNzdiODBm
MTAxNzhmNTU5NDg1ZjM1MWMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L0hUVFBTZXJ2ZXIuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIu
aApAQCAtMTY1LDUgKzE2NSw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKIAorUmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVmPiB0ZXN0Q2VydGlmaWNhdGUoKTsK
IFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gdGVzdElkZW50aXR5KCk7CiBSZXRhaW5QdHI8U2Vj
SWRlbnRpdHlSZWY+IHRlc3RJZGVudGl0eTIoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>