<?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>206824</bug_id>
          
          <creation_ts>2020-01-27 07:18:48 -0800</creation_ts>
          <short_desc>Blob media loading does not work with GPUProcess</short_desc>
          <delta_ts>2020-01-29 02:35:34 -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>Media</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>
          <dependson>206889</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1611393</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-27 07:18:48 -0800</bug_when>
    <thetext>Blob media loading does not work with GPUProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611394</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-27 07:19:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/58917596&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611869</commentid>
    <comment_count>2</comment_count>
      <attachid>388981</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-28 04:48:34 -0800</bug_when>
    <thetext>Created attachment 388981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611900</commentid>
    <comment_count>3</comment_count>
      <attachid>388981</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-28 06:54:34 -0800</bug_when>
    <thetext>Comment on attachment 388981
Patch

Clearing flags on attachment: 388981

Committed r255237: &lt;https://trac.webkit.org/changeset/255237&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611901</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-28 06:54:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612010</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-28 09:57:39 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 206889</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612013</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-28 09:58:29 -0800</bug_when>
    <thetext>Breaking win build apparently:
https://build.webkit.org/builders/Apple%20Win%2010%20Release%20%28Build%29/builds/10234

C:\cygwin\worker\win10-release\build\Source\WebCore\platform\graphics\avfoundation\cf\InbandTextTrackPrivateLegacyAVCF.cpp(47,32): error C2664: &apos;WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF(const WebCore::InbandTextTrackPrivateAVF &amp;)&apos;: cannot convert argument 1 from &apos;WebCore::MediaPlayerPrivateAVFoundationCF *&apos; to &apos;const WebCore::InbandTextTrackPrivateAVF &amp;&apos; [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\worker\win10-release\build\Source\WebCore\platform\graphics\avfoundation\cf\InbandTextTrackPrivateLegacyAVCF.cpp(49,1): message : Reason: cannot convert from &apos;WebCore::MediaPlayerPrivateAVFoundationCF *&apos; to &apos;const WebCore::InbandTextTrackPrivateAVF&apos; [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\worker\win10-release\build\Source\WebCore\platform\graphics\avfoundation\cf\InbandTextTrackPrivateLegacyAVCF.cpp(49,1): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  CookieStorageCFNet.cpp
  CredentialStorageCFNet.cpp
  DNSResolveQueueCFNet.cpp
C:\cygwin\worker\win10-release\build\Source\WebCore\platform\graphics\avfoundation\InbandTextTrackPrivateAVF.h(113,1): message : see declaration of &apos;WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF&apos; (compiling source file C:\cygwin\worker\win10-release\build\Source\WebCore\platform\graphics\avfoundation\cf\InbandTextTrackPrivateLegacyAVCF.cpp) [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\worker\win10-release\build\Source\WebCore\page\CaptionUserPreferencesMediaAF.cpp(131,9): error C2065: &apos;MTEnableCaption2015BehaviorPtrType&apos;: undeclared identifier [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\worker\win10-release\build\Source\WebCore\page\CaptionUserPreferencesMediaAF.cpp(131,44): error C2146: syntax error: missing &apos;;&apos; before identifier &apos;function&apos; [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\worker\win10-release\build\Source\WebCore\page\CaptionUserPreferencesMediaAF.cpp(131,44): error C2065: &apos;function&apos;: undeclared identifier [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\worker\win10-release\build\Source\WebCore\page\CaptionUserPreferencesMediaAF.cpp(131,55): error C3861: &apos;MTEnableCaption2015BehaviorPtr&apos;: identifier not found [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  FormDataStreamCFNet.cpp
C:\cygwin\worker\win10-release\build\Source\WebCore\page\CaptionUserPreferencesMediaAF.cpp(132,14): error C2065: &apos;function&apos;: undeclared identifier [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  LoaderRunLoopCF.cpp
  NetworkStorageSessionCFNet.cpp
  NetworkStorageSessionCFNetWin.cpp
  ProtectionSpaceCFNet.cpp
  ProxyServerCFNet.cpp
  ResourceErrorCF.cpp
  ResourceHandleCFNet.cpp
C:\cygwin\worker\win10-release\build\Source\WebCore\page\CaptionUserPreferencesMediaAF.cpp(132,27): error C3861: &apos;function&apos;: identifier not found [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
C:\cygwin\worker\win10-release\build\Source\WebCore\platform\graphics\avfoundation\cf\MediaPlayerPrivateAVFoundationCF.cpp(1531,48): error C2065: &apos;AVCFURLAssetInheritURIQueryComponentFromReferencingURIKey&apos;: undeclared identifier [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
  ResourceHandleCFURLConnectionDelegate.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612354</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-29 01:46:20 -0800</bug_when>
    <thetext>EWS win bot is fine and the files I modified in this patch are not compiled by Windows so this seems weird it causes a build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612356</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-29 01:50:10 -0800</bug_when>
    <thetext>Bot was still failing to compile after the rollout for a few versions and then went green with https://trac.webkit.org/changeset/255258/webkit which is just a test expectation change.

https://build.webkit.org/builders/Apple%20Win%2010%20Release%20%28Build%29/builds/10237 for instance is failing with the same build errors.

Let&apos;s try relanding it and see what bots think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612358</commentid>
    <comment_count>9</comment_count>
      <attachid>389114</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-29 01:52:01 -0800</bug_when>
    <thetext>Created attachment 389114
Patch for relanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612376</commentid>
    <comment_count>10</comment_count>
      <attachid>389114</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-29 02:35:33 -0800</bug_when>
    <thetext>Comment on attachment 389114
Patch for relanding

Clearing flags on attachment: 389114

Committed r255347: &lt;https://trac.webkit.org/changeset/255347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612377</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-29 02:35:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388981</attachid>
            <date>2020-01-28 04:48:34 -0800</date>
            <delta_ts>2020-01-29 01:51:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206824-20200128134833.patch</filename>
            <type>text/plain</type>
            <size>21504</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0ZmNjMDhlYjUzNDE2
OTdlZTA4ZWY3ZjU2NTg4ZjdhMDIzNjQzZS4uNzk1MjM0YWMxZGRiNTkwMTYzMzUxMjMxYWE1OGEy
OGY4ZjUzZTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAxLTI4ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBCbG9iIG1lZGlhIGxvYWRp
bmcgZG9lcyBub3Qgd29yayB3aXRoIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjgyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTg5MTc1OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgR1BVIHByb2Nlc3MgaXMgdXNpbmcgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyIGZvciB2YXJp
b3VzIGxvYWRzLCBpbmNsdWRpbmcgYmxvYiBsb2Fkcy4KKyAgICAgICAgSW4gR1BVIHByb2Nlc3Ms
IGxvYWRzIHdpbGwgZmFpbCBzaW5jZSB0aGlzIGxvYWRlciBleHBlY3RzIGEgQ2FjaGVkUmVzb3Vy
Y2UsIHdoaWNoIG9ubHkgV2ViUHJvY2VzcyBjYW4gaGF2ZS4KKyAgICAgICAgRm9yIHRoYXQgcmVh
c29uLCBtb3ZlIHRoZSBDYWNoZWRSZXNvdXJjZSBsb2FkZXIgcGFydCBvZiBXZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXIgdG8gYSBkZWRpY2F0ZWQgY2xhc3MgQ2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRl
ci4KKyAgICAgICAgSWYgbG9hZCBjYW5ub3QgaGFwcGVuIHdpdGggYSBDYWNoZWRSZXNvdXJjZSwg
dXNlIGEgbmV3IGNsYXNzIFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlciwgd2hpY2ggdXNlcyBh
IGxvYWRlciBmcm9tIE1lZGlhUGxheWVyOjpjcmVhdGVSZXNvdXJjZUxvYWRlci4KKyAgICAgICAg
VGhpcyBhbGxvd3MgdXNpbmcgdGhlIGxvYWRpbmcgcGF0aCBpbiBHUFVQcm9jZXNzIHVzZWQgZm9y
IEhUVFAgbG9hZHMsIHdoaWNoIHdvcmtzIGZvciBibG9iIGxvYWRzIGFzIHdlbGwuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyBhbmQgZW5hYmxlZCB0ZXN0cy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNv
cmVBVkZSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TWVkaWFMb2FkZXI6On5DYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTWVkaWFMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTWVkaWFMb2FkZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpub3RpZnlG
aW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpk
YXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9h
ZGVyOjp+UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6c3RvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6OnJlc3BvbnNlUmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjps
b2FkRmFpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRl
cjo6bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUmVzb3VyY2VNZWRp
YUxvYWRlcjo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVBVkZSZXNv
dXJjZUxvYWRlcjo6c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUFW
RlJlc291cmNlTG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6Om5ld0RhdGFTdG9yZWRJblNoYXJlZEJ1ZmZlcik6
CisKIDIwMjAtMDEtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjI1MzYzNCk6IGNyaWNidXp6LmNvbSBtZWRpYSBjb250cm9s
cyB2YW5pc2ggZGVwZW5kaW5nIG9uIHBhZ2Ugc2NhbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJj
ZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgKaW5kZXggZWNjZGJkMzFkOTI5YmFjOThk
M2RmY2UzZjVhNjJkMGFjZWVkN2I2Yy4uMDAzZjZmNjkyYmZkMzUxMzYzYjIwYTMxMjhlOTg0Zjkz
MGM3MzQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291
cmNlTG9hZGVyLmgKQEAgLTI3LDIyICsyNywyNCBAQAogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBV
U0UoQVZGT1VOREFUSU9OKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9MT0FERVJfREVMRUdBVEUpCiAK
LSNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIgotI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIE9CSkNfQ0xBU1MgQVZBc3Nl
dFJlc291cmNlTG9hZGluZ1JlcXVlc3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
Q2FjaGVkUmF3UmVzb3VyY2U7Ci1jbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIENh
Y2hlZFJlc291cmNlTWVkaWFMb2FkZXI7CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOworY2xhc3MgUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOworY2xhc3MgUmVz
b3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTaGFyZWRCdWZmZXI7
CiAKLWNsYXNzIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlcj4sIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50IHsKK2NsYXNz
IFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvcmVBVkZSZXNv
dXJjZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyogcGFyZW50LCBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdCAq
KTsKQEAgLTUyLDIwICs1NCwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wTG9hZGluZygpOwog
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCi0gICAgQ2FjaGVkUmF3UmVzb3VyY2UqIHJlc291cmNl
KCk7Ci0KIHByaXZhdGU6Ci0gICAgLy8gQ2FjaGVkUmVzb3VyY2VDbGllbnQKLSAgICB2b2lkIHJl
c3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRhdGFSZWNl
aXZlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IGNoYXIqLCBpbnQpIG92ZXJyaWRlOwotICAgIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmKSBvdmVycmlkZTsKKyAgICBXZWJDb3Jl
QVZGUmVzb3VyY2VMb2FkZXIoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFy
ZW50LCBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdCAqKTsKIAotICAgIHZvaWQgZnVsZmls
bFJlcXVlc3RXaXRoUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UmKTsKKyAgICBmcmllbmQgY2xhc3Mg
Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjsKKyAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1SZXNv
dXJjZU1lZGlhTG9hZGVyOworCisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGxvYWRGYWlsZWQoY29uc3QgUmVzb3VyY2VFcnJvciYp
OworICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CisgICAgdm9pZCBuZXdEYXRhU3RvcmVkSW5TaGFy
ZWRCdWZmZXIoU2hhcmVkQnVmZmVyJik7CiAKLSAgICBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIo
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFyZW50LCBBVkFzc2V0UmVzb3Vy
Y2VMb2FkaW5nUmVxdWVzdCAqKTsKICAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKiBtX3BhcmVudDsKICAgICBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVl
c3Q+IG1fYXZSZXF1ZXN0OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291
cmNlPiBtX3Jlc291cmNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRSZXNvdXJjZU1lZGlh
TG9hZGVyPiBtX3Jlc291cmNlTWVkaWFMb2FkZXI7CisgICAgV2Vha1B0cjxQbGF0Zm9ybVJlc291
cmNlTWVkaWFMb2FkZXI+IG1fcGxhdGZvcm1NZWRpYUxvYWRlcjsKKyAgICBzaXplX3QgbV9yZXNw
b25zZU9mZnNldCB7IDAgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQppbmRleCBiZTQwMzc4MDdiMThmNGNjMTY5NGZj
OTRlZjUxNzE1NGEyOWM2MDE1Li5jNDBkN2Y5Zjk0ZjA4OWM2ZjlhYzcyNmViNWRiZTk0MmUxZjRh
N2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNl
TG9hZGVyLm1tCkBAIC00Miw2ICs0MiwxNzUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyIGZpbmFsIDogQ2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcj4gY3JlYXRlKFdlYkNv
cmVBVkZSZXNvdXJjZUxvYWRlciYsIENhY2hlZFJlc291cmNlTG9hZGVyJiwgUmVzb3VyY2VSZXF1
ZXN0JiYpOworICAgIH5DYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyKCkgeyBzdG9wKCk7IH0KKwor
cHJpdmF0ZToKKyAgICBDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyKFdlYkNvcmVBVkZSZXNvdXJj
ZUxvYWRlciYsIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiYmKTsKKwor
ICAgIHZvaWQgc3RvcCgpOworCisgICAgLy8gQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQKKyAgICB2
b2lkIHJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGRhdGFS
ZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IGNoYXIqLCBpbnQpIGZpbmFsOworICAgIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmKSBmaW5hbDsKKworICAgIHZvaWQgZnVs
ZmlsbFJlcXVlc3RXaXRoUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UmKTsKKworICAgIFdlYkNvcmVB
VkZSZXNvdXJjZUxvYWRlciYgbV9wYXJlbnQ7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7Cit9OworCitzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVk
UmVzb3VyY2VNZWRpYUxvYWRlcj4gQ2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjo6Y3JlYXRlKFdl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlciYgcGFyZW50LCBDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9h
ZGVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXNvdXJjZVJlcXVlc3QpCit7CisgICAgLy8gRklYTUU6
IFNraXAgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY2hlY2sgaWYgdGhlIGVsZW1lbnQgdGhhdCBp
bml0aXRhdGVkIHRoaXMgcmVxdWVzdAorICAgIC8vIGlzIGluIGEgdXNlci1hZ2VudCBzaGFkb3cg
dHJlZS4gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNDk4
Pi4KKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChXVEZNb3ZlKHJlc291cmNlUmVx
dWVzdCksIFJlc291cmNlTG9hZGVyT3B0aW9ucygKKyAgICAgICAgU2VuZENhbGxiYWNrUG9saWN5
OjpTZW5kQ2FsbGJhY2tzLAorICAgICAgICBDb250ZW50U25pZmZpbmdQb2xpY3k6OkRvTm90U25p
ZmZDb250ZW50LAorICAgICAgICBEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZmZXJEYXRhLAorICAg
ICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UsCisgICAgICAgIENsaWVudENy
ZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzLAorICAgICAgICBG
ZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0LAorICAgICAgICBTZWN1cml0eUNoZWNrUG9s
aWN5OjpEb1NlY3VyaXR5Q2hlY2ssCisgICAgICAgIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3Jz
LAorICAgICAgICBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3k6OkRvTm90SW5jbHVkZUNlcnRpZmljYXRl
SW5mbywKKyAgICAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lD
aGVjaywKKyAgICAgICAgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLAor
ICAgICAgICBDYWNoaW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsKKworICAgIGF1dG8gcmVz
b3VyY2UgPSBsb2FkZXIucmVxdWVzdE1lZGlhKFdURk1vdmUocmVxdWVzdCkpLnZhbHVlX29yKG51
bGxwdHIpOworICAgIGlmICghcmVzb3VyY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcj4obmV3IENh
Y2hlZFJlc291cmNlTWVkaWFMb2FkZXIgeyBwYXJlbnQsIFdURk1vdmUocmVzb3VyY2UpIH0pOwor
fQorCitDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVy
KFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciYgcGFyZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSYXdSZXNvdXJjZT4mJiByZXNvdXJjZSkKKyAgICA6IG1fcGFyZW50KHBhcmVudCkKKyAg
ICAsIG1fcmVzb3VyY2UoV1RGTW92ZShyZXNvdXJjZSkpCit7CisgICAgbV9yZXNvdXJjZS0+YWRk
Q2xpZW50KCp0aGlzKTsKK30KKwordm9pZCBDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpzdG9w
KCkKK3sKKyAgICBpZiAoIW1fcmVzb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVz
b3VyY2UtPnJlbW92ZUNsaWVudCgqdGhpcyk7CisgICAgbV9yZXNvdXJjZSA9IG51bGxwdHI7Cit9
CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNo
ZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNT
RVJUX1VOVVNFRChyZXNvdXJjZSwgJnJlc291cmNlID09IG1fcmVzb3VyY2UpOworICAgIENvbXBs
ZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKworICAgIG1fcGFyZW50LnJlc3BvbnNlUmVjZWl2ZWQocmVz
cG9uc2UpOworfQorCit2b2lkIENhY2hlZFJlc291cmNlTWVkaWFMb2FkZXI6Om5vdGlmeUZpbmlz
aGVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKK3sKKyAgICBpZiAocmVzb3VyY2UubG9hZEZh
aWxlZE9yQ2FuY2VsZWQoKSkgeworICAgICAgICBtX3BhcmVudC5sb2FkRmFpbGVkKHJlc291cmNl
LnJlc291cmNlRXJyb3IoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9wYXJlbnQu
bG9hZEZpbmlzaGVkKCk7Cit9CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjo6ZGF0
YVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgY2hhciosIGludCkKK3sK
KyAgICBBU1NFUlQoJnJlc291cmNlID09IG1fcmVzb3VyY2UpOworICAgIGlmIChhdXRvKiBkYXRh
ID0gcmVzb3VyY2UucmVzb3VyY2VCdWZmZXIoKSkKKyAgICAgICAgbV9wYXJlbnQubmV3RGF0YVN0
b3JlZEluU2hhcmVkQnVmZmVyKCpkYXRhKTsKK30KKworY2xhc3MgUGxhdGZvcm1SZXNvdXJjZU1l
ZGlhTG9hZGVyIGZpbmFsIDogcHVibGljIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcj4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBXZWFrUHRyPFBsYXRm
b3JtUmVzb3VyY2VNZWRpYUxvYWRlcj4gY3JlYXRlKFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciYs
IFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciYsIFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICB+
UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyKCkgeyBzdG9wKCk7IH0KKworICAgIHZvaWQgc3Rv
cCgpOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcihXZWJDb3Jl
QVZGUmVzb3VyY2VMb2FkZXImLCBSZWY8UGxhdGZvcm1NZWRpYVJlc291cmNlPiYmKTsKKworICAg
IHZvaWQgbG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmlu
aXNoZWQoKTsKKworICAgIC8vIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudAorICAgIHZvaWQg
cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGZpbmFsIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7
IH0KKyAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9p
ZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVu
c2lnbmVkIGxvbmcgbG9uZykgZmluYWwgeyB9CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQoUGxhdGZv
cm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciosIGludCkgZmluYWw7CisgICAgdm9pZCBhY2Nl
c3NDb250cm9sQ2hlY2tGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpIGZpbmFsIHsgbG9hZEZhaWxlZChlcnJvcik7IH0KKyAgICB2b2lkIGxv
YWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpIGZpbmFsIHsgbG9hZEZhaWxlZChlcnJvcik7IH0KKyAgICB2b2lkIGxvYWRGaW5pc2hlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmKSBmaW5hbCB7IGxvYWRGaW5pc2hlZCgpOyB9CisKKyAgICBX
ZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXImIG1fcGFyZW50OworICAgIFJlZlB0cjxQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2U+IG1fcmVzb3VyY2U7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9idWZm
ZXI7Cit9OworCitXZWFrUHRyPFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcj4gUGxhdGZvcm1S
ZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUoV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyJiBwYXJl
bnQsIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0KQoreworICAgIGF1dG8gcmVzb3VyY2UgPSBsb2FkZXIucmVxdWVzdFJlc291cmNl
KFdURk1vdmUocmVxdWVzdCksIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlv
bjo6RGlzYWxsb3dDYWNoaW5nKTsKKyAgICBpZiAoIXJlc291cmNlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBhdXRvKiByZXNvdXJjZVBvaW50ZXIgPSByZXNvdXJjZS5nZXQoKTsKKyAg
ICBhdXRvIGNsaWVudCA9IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2Fk
ZXI+KG5ldyBQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXIgeyBwYXJlbnQsIHJlc291cmNlLnJl
bGVhc2VOb25OdWxsKCkgfSk7CisgICAgYXV0byByZXN1bHQgPSBtYWtlV2Vha1B0cihjbGllbnQu
Z2V0KCkpOworCisgICAgcmVzb3VyY2VQb2ludGVyLT5zZXRDbGllbnQoV1RGTW92ZShjbGllbnQp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6
OlBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcihXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXImIHBh
cmVudCwgUmVmPFBsYXRmb3JtTWVkaWFSZXNvdXJjZT4mJiByZXNvdXJjZSkKKyAgICA6IG1fcGFy
ZW50KHBhcmVudCkKKyAgICAsIG1fcmVzb3VyY2UoV1RGTW92ZShyZXNvdXJjZSkpCit7Cit9CisK
K3ZvaWQgUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1f
cmVzb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcmVzb3VyY2UgPSBXVEZNb3Zl
KG1fcmVzb3VyY2UpOworICAgIHJlc291cmNlLT5zdG9wKCk7CisgICAgcmVzb3VyY2UtPnNldENs
aWVudChudWxscHRyKTsKK30KKwordm9pZCBQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6OnJl
c3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fcGFyZW50LnJlc3Bv
bnNlUmVjZWl2ZWQocmVzcG9uc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlOjpZZXMpOworfQorCit2b2lkIFBsYXRmb3JtUmVzb3VyY2VNZWRp
YUxvYWRlcjo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBt
X3BhcmVudC5sb2FkRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBQbGF0Zm9ybVJlc291cmNlTWVk
aWFMb2FkZXI6OmxvYWRGaW5pc2hlZCgpCit7CisgICAgbV9wYXJlbnQubG9hZEZpbmlzaGVkKCk7
Cit9CisKK3ZvaWQgUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpkYXRhUmVjZWl2ZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciogZGF0YSwgaW50IHNpemUpCit7CisgICAg
aWYgKCFtX2J1ZmZlcikKKyAgICAgICAgbV9idWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhLCBzaXplKTsKKyAgICBlbHNlCisgICAgICAgIG1fYnVmZmVyLT5hcHBlbmQoZGF0YSwgc2l6
ZSk7CisgICAgbV9wYXJlbnQubmV3RGF0YVN0b3JlZEluU2hhcmVkQnVmZmVyKCptX2J1ZmZlcik7
Cit9CisKIFJlZjxXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI+IFdlYkNvcmVBVkZSZXNvdXJjZUxv
YWRlcjo6Y3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqIHBhcmVudCwg
QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3QgKmF2UmVxdWVzdCkKIHsKICAgICBBU1NFUlQo
YXZSZXF1ZXN0KTsKQEAgLTYyLDQ4ICsyMzEsMzggQEAgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Ojp+V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyKCkKIAogdm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0TG9hZGluZygpCiB7Ci0gICAgaWYgKG1fcmVzb3VyY2UgfHwgIW1fcGFyZW50
KQorICAgIGlmIChtX3Jlc291cmNlTWVkaWFMb2FkZXIgfHwgbV9wbGF0Zm9ybU1lZGlhTG9hZGVy
IHx8ICFtX3BhcmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1Jl
cXVlc3QgPSBbbV9hdlJlcXVlc3QuZ2V0KCkgcmVxdWVzdF07CiAKLSAgICBSZXNvdXJjZVJlcXVl
c3QgcmVzb3VyY2VSZXF1ZXN0KG5zUmVxdWVzdCk7Ci0gICAgcmVzb3VyY2VSZXF1ZXN0LnNldFBy
aW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpMb3cpOworICAgIFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KG5zUmVxdWVzdCk7CisgICAgcmVxdWVzdC5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQ
cmlvcml0eTo6TG93KTsKIAotICAgIC8vIEZJWE1FOiBTa2lwIENvbnRlbnQgU2VjdXJpdHkgUG9s
aWN5IGNoZWNrIGlmIHRoZSBlbGVtZW50IHRoYXQgaW5pdGl0YXRlZCB0aGlzIHJlcXVlc3QKLSAg
ICAvLyBpcyBpbiBhIHVzZXItYWdlbnQgc2hhZG93IHRyZWUuIFNlZSA8aHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzQ5OD4uCi0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMoCi0gICAgICAgIFNlbmRDYWxsYmFja1BvbGljeTo6U2VuZENhbGxiYWNrcywKLSAgICAgICAg
Q29udGVudFNuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmQ29udGVudCwKLSAgICAgICAgRGF0YUJ1
ZmZlcmluZ1BvbGljeTo6QnVmZmVyRGF0YSwKLSAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k6OkRvTm90VXNlLAotICAgICAgICBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tD
bGllbnRGb3JDcmVkZW50aWFscywKLSAgICAgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6
T21pdCwKLSAgICAgICAgU2VjdXJpdHlDaGVja1BvbGljeTo6RG9TZWN1cml0eUNoZWNrLAotICAg
ICAgICBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycywKLSAgICAgICAgQ2VydGlmaWNhdGVJbmZv
UG9saWN5OjpEb05vdEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8sCi0gICAgICAgIENvbnRlbnRTZWN1
cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2ssCi0gICAgICAgIERlZmVyc0xvYWRp
bmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywKLSAgICAgICAgQ2FjaGluZ1BvbGljeTo6RGlz
YWxsb3dDYWNoaW5nKSk7Ci0gICAgaWYgKGF1dG8qIGxvYWRlciA9IG1fcGFyZW50LT5wbGF5ZXIo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSkKLSAgICAgICAgbV9yZXNvdXJjZSA9IGxvYWRlci0+
cmVxdWVzdE1lZGlhKFdURk1vdmUocmVxdWVzdCkpLnZhbHVlX29yKG51bGxwdHIpOworICAgIGlm
IChhdXRvKiBsb2FkZXIgPSBtX3BhcmVudC0+cGxheWVyKCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCkpIHsKKyAgICAgICAgbV9yZXNvdXJjZU1lZGlhTG9hZGVyID0gQ2FjaGVkUmVzb3VyY2VNZWRp
YUxvYWRlcjo6Y3JlYXRlKCp0aGlzLCAqbG9hZGVyLCBXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICAg
ICAgaWYgKG1fcmVzb3VyY2VNZWRpYUxvYWRlcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9
CiAKLSAgICBpZiAobV9yZXNvdXJjZSkKLSAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KCp0
aGlzKTsKLSAgICBlbHNlIHsKLSAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gc3RhcnQgbG9h
ZCBmb3IgbWVkaWEgYXQgdXJsICVzIiwgW1tbbnNSZXF1ZXN0IFVSTF0gYWJzb2x1dGVTdHJpbmdd
IFVURjhTdHJpbmddKTsKLSAgICAgICAgW21fYXZSZXF1ZXN0LmdldCgpIGZpbmlzaExvYWRpbmdX
aXRoRXJyb3I6MF07CisgICAgaWYgKGF1dG8gbG9hZGVyID0gbV9wYXJlbnQtPnBsYXllcigpLT5j
cmVhdGVSZXNvdXJjZUxvYWRlcigpKSB7CisgICAgICAgIG1fcGxhdGZvcm1NZWRpYUxvYWRlciA9
IFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6Y3JlYXRlKCp0aGlzLCAqbG9hZGVyLCBXVEZN
b3ZlKHJlcXVlc3QpKTsKKyAgICAgICAgaWYgKG1fcGxhdGZvcm1NZWRpYUxvYWRlcikKKyAgICAg
ICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzdGFydCBs
b2FkIGZvciBtZWRpYSBhdCB1cmwgJXMiLCBbW1tuc1JlcXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10gVVRGOFN0cmluZ10pOworICAgIFttX2F2UmVxdWVzdC5nZXQoKSBmaW5pc2hMb2FkaW5nV2l0
aEVycm9yOjBdOwogfQogCiB2b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRp
bmcoKQogewotICAgIGlmICghbV9yZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9y
ZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKLSAgICBtX3Jlc291cmNlID0gMDsKKyAgICBt
X3Jlc291cmNlTWVkaWFMb2FkZXIgPSBudWxscHRyOwogCisgICAgaWYgKG1fcGxhdGZvcm1NZWRp
YUxvYWRlcikgeworICAgICAgICBtX3BsYXRmb3JtTWVkaWFMb2FkZXItPnN0b3AoKTsKKyAgICAg
ICAgbV9wbGF0Zm9ybU1lZGlhTG9hZGVyID0gbnVsbHB0cjsKKyAgICB9CiAgICAgaWYgKG1fcGFy
ZW50ICYmIG1fYXZSZXF1ZXN0KQogICAgICAgICBtX3BhcmVudC0+ZGlkU3RvcExvYWRpbmdSZXF1
ZXN0KG1fYXZSZXF1ZXN0LmdldCgpKTsKIH0KQEAgLTEyMCwyMyArMjc5LDIzIEBAIHZvaWQgV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyOjppbnZhbGlkYXRlKCkKICAgICB9KTsKIH0KIAotdm9pZCBX
ZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2Um
IHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgJnJlc291cmNlID09IG1fcmVzb3Vy
Y2UpOwotICAgIENvbXBsZXRpb25IYW5kbGVyQ2FsbGluZ1Njb3BlIGNvbXBsZXRpb25IYW5kbGVy
Q2FsbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLQogICAgIGludCBzdGF0dXMgPSBy
ZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpOwogICAgIGlmIChzdGF0dXMgJiYgKHN0YXR1cyA8IDIw
MCB8fCBzdGF0dXMgPiAyOTkpKSB7CiAgICAgICAgIFttX2F2UmVxdWVzdC5nZXQoKSBmaW5pc2hM
b2FkaW5nV2l0aEVycm9yOjBdOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgYXV0byYg
Y29udGVudFJhbmdlID0gcmVzcG9uc2UuY29udGVudFJhbmdlKCk7CisgICAgaWYgKGNvbnRlbnRS
YW5nZS5pc1ZhbGlkKCkpCisgICAgICAgIG1fcmVzcG9uc2VPZmZzZXQgPSBzdGF0aWNfY2FzdDxO
U1VJbnRlZ2VyPihjb250ZW50UmFuZ2UuZmlyc3RCeXRlUG9zaXRpb24oKSk7CisKICAgICBpZiAo
QVZBc3NldFJlc291cmNlTG9hZGluZ0NvbnRlbnRJbmZvcm1hdGlvblJlcXVlc3QqIGNvbnRlbnRJ
bmZvID0gW21fYXZSZXF1ZXN0LmdldCgpIGNvbnRlbnRJbmZvcm1hdGlvblJlcXVlc3RdKSB7CiAg
ICAgICAgIFN0cmluZyB1dGkgPSBVVElGcm9tTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSk7
CiAKICAgICAgICAgW2NvbnRlbnRJbmZvIHNldENvbnRlbnRUeXBlOnV0aV07CiAKLSAgICAgICAg
Y29uc3QgUGFyc2VkQ29udGVudFJhbmdlJiBjb250ZW50UmFuZ2UgPSBtX3Jlc291cmNlLT5yZXNw
b25zZSgpLmNvbnRlbnRSYW5nZSgpOwogICAgICAgICBbY29udGVudEluZm8gc2V0Q29udGVudExl
bmd0aDpjb250ZW50UmFuZ2UuaXNWYWxpZCgpID8gY29udGVudFJhbmdlLmluc3RhbmNlTGVuZ3Ro
KCkgOiByZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKV07CiAgICAgICAgIFtjb250ZW50
SW5mbyBzZXRCeXRlUmFuZ2VBY2Nlc3NTdXBwb3J0ZWQ6WUVTXTsKIApAQCAtMTQ3LDUyICszMDYs
MzcgQEAgdm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoQ2Fj
aGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdAogICAgIH0KIH0KIAotdm9pZCBXZWJDb3JlQVZG
UmVzb3VyY2VMb2FkZXI6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNv
bnN0IGNoYXIqLCBpbnQpCit2b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6bG9hZEZhaWxl
ZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAgICBmdWxmaWxsUmVxdWVzdFdpdGhS
ZXNvdXJjZShyZXNvdXJjZSk7CisgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzEzOTg3NDE3PiBTZXQg
dGhlIGNvbnRlbnRUeXBlIG9mIHRoZSBjb250ZW50SW5mb3JtYXRpb25SZXF1ZXN0IHRvIGFuIGVt
cHR5CisgICAgLy8gc3RyaW5nIHRvIHRyaWdnZXIgQVZBc3NldCdzIHBsYXlhYmxlIHZhbHVlIHRv
IGNvbXBsZXRlIGxvYWRpbmcuCisgICAgaWYgKFttX2F2UmVxdWVzdC5nZXQoKSBjb250ZW50SW5m
b3JtYXRpb25SZXF1ZXN0XSAmJiAhW1ttX2F2UmVxdWVzdC5nZXQoKSBjb250ZW50SW5mb3JtYXRp
b25SZXF1ZXN0XSBjb250ZW50VHlwZV0pCisgICAgICAgIFtbbV9hdlJlcXVlc3QuZ2V0KCkgY29u
dGVudEluZm9ybWF0aW9uUmVxdWVzdF0gc2V0Q29udGVudFR5cGU6QCIiXTsKKworICAgIFttX2F2
UmVxdWVzdC5nZXQoKSBmaW5pc2hMb2FkaW5nV2l0aEVycm9yOmVycm9yLm5zRXJyb3IoKV07Cisg
ICAgc3RvcExvYWRpbmcoKTsKIH0KIAotdm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKK3ZvaWQgV2ViQ29yZUFWRlJl
c291cmNlTG9hZGVyOjpsb2FkRmluaXNoZWQoKQogewotICAgIGlmIChyZXNvdXJjZS5sb2FkRmFp
bGVkT3JDYW5jZWxlZCgpKSB7Ci0gICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8xMzk4NzQxNz4g
U2V0IHRoZSBjb250ZW50VHlwZSBvZiB0aGUgY29udGVudEluZm9ybWF0aW9uUmVxdWVzdCB0byBh
biBlbXB0eQotICAgICAgICAvLyBzdHJpbmcgdG8gdHJpZ2dlciBBVkFzc2V0J3MgcGxheWFibGUg
dmFsdWUgdG8gY29tcGxldGUgbG9hZGluZy4KLSAgICAgICAgaWYgKFttX2F2UmVxdWVzdC5nZXQo
KSBjb250ZW50SW5mb3JtYXRpb25SZXF1ZXN0XSAmJiAhW1ttX2F2UmVxdWVzdC5nZXQoKSBjb250
ZW50SW5mb3JtYXRpb25SZXF1ZXN0XSBjb250ZW50VHlwZV0pCi0gICAgICAgICAgICBbW21fYXZS
ZXF1ZXN0LmdldCgpIGNvbnRlbnRJbmZvcm1hdGlvblJlcXVlc3RdIHNldENvbnRlbnRUeXBlOkAi
Il07Ci0KLSAgICAgICAgTlNFcnJvciogZXJyb3IgPSByZXNvdXJjZS5lcnJvck9jY3VycmVkKCkg
PyByZXNvdXJjZS5yZXNvdXJjZUVycm9yKCkubnNFcnJvcigpIDogbmlsOwotICAgICAgICBbbV9h
dlJlcXVlc3QuZ2V0KCkgZmluaXNoTG9hZGluZ1dpdGhFcnJvcjplcnJvcl07Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgZnVsZmlsbFJlcXVlc3RXaXRoUmVzb3VyY2UocmVzb3VyY2UpOwotICAgICAg
ICBbbV9hdlJlcXVlc3QuZ2V0KCkgZmluaXNoTG9hZGluZ107Ci0gICAgfQorICAgIFttX2F2UmVx
dWVzdC5nZXQoKSBmaW5pc2hMb2FkaW5nXTsKICAgICBzdG9wTG9hZGluZygpOwogfQogCi12b2lk
IFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6ZnVsZmlsbFJlcXVlc3RXaXRoUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2UmIHJlc291cmNlKQordm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6Om5l
d0RhdGFTdG9yZWRJblNoYXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXImIGRhdGEpCiB7Ci0gICAgQVNT
RVJUX1VOVVNFRChyZXNvdXJjZSwgJnJlc291cmNlID09IG1fcmVzb3VyY2UpOwogICAgIEFWQXNz
ZXRSZXNvdXJjZUxvYWRpbmdEYXRhUmVxdWVzdCogZGF0YVJlcXVlc3QgPSBbbV9hdlJlcXVlc3Qg
ZGF0YVJlcXVlc3RdOwogICAgIGlmICghZGF0YVJlcXVlc3QpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFNoYXJlZEJ1ZmZlciogZGF0YSA9IG1fcmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7Ci0g
ICAgaWYgKCFkYXRhKQotICAgICAgICByZXR1cm47Ci0KLSAgICBOU1VJbnRlZ2VyIHJlc3BvbnNl
T2Zmc2V0ID0gMDsKLSAgICBjb25zdCBQYXJzZWRDb250ZW50UmFuZ2UmIGNvbnRlbnRSYW5nZSA9
IG1fcmVzb3VyY2UtPnJlc3BvbnNlKCkuY29udGVudFJhbmdlKCk7Ci0gICAgaWYgKGNvbnRlbnRS
YW5nZS5pc1ZhbGlkKCkpCi0gICAgICAgIHJlc3BvbnNlT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8TlNV
SW50ZWdlcj4oY29udGVudFJhbmdlLmZpcnN0Qnl0ZVBvc2l0aW9uKCkpOwotCiAgICAgLy8gQ2hl
Y2sgZm9yIHBvc3NpYmxlIHVuc2lnbmVkIG92ZXJmbG93LgogICAgIEFTU0VSVChkYXRhUmVxdWVz
dC5jdXJyZW50T2Zmc2V0ID49IGRhdGFSZXF1ZXN0LnJlcXVlc3RlZE9mZnNldCk7CiAgICAgQVNT
RVJUKGRhdGFSZXF1ZXN0LnJlcXVlc3RlZExlbmd0aCA+PSAoZGF0YVJlcXVlc3QuY3VycmVudE9m
ZnNldCAtIGRhdGFSZXF1ZXN0LnJlcXVlc3RlZE9mZnNldCkpOwogCiAgICAgTlNVSW50ZWdlciBy
ZW1haW5pbmdMZW5ndGggPSBkYXRhUmVxdWVzdC5yZXF1ZXN0ZWRMZW5ndGggLSBzdGF0aWNfY2Fz
dDxOU1VJbnRlZ2VyPihkYXRhUmVxdWVzdC5jdXJyZW50T2Zmc2V0IC0gZGF0YVJlcXVlc3QucmVx
dWVzdGVkT2Zmc2V0KTsKIAotICAgIGF1dG8gYnl0ZXNUb1NraXAgPSBkYXRhUmVxdWVzdC5jdXJy
ZW50T2Zmc2V0IC0gcmVzcG9uc2VPZmZzZXQ7Ci0gICAgUmV0YWluUHRyPE5TQXJyYXk+IGFycmF5
ID0gZGF0YS0+Y3JlYXRlTlNEYXRhQXJyYXkoKTsKKyAgICBhdXRvIGJ5dGVzVG9Ta2lwID0gZGF0
YVJlcXVlc3QuY3VycmVudE9mZnNldCAtIG1fcmVzcG9uc2VPZmZzZXQ7CisgICAgYXV0byBhcnJh
eSA9IGRhdGEuY3JlYXRlTlNEYXRhQXJyYXkoKTsKICAgICBmb3IgKE5TRGF0YSAqc2VnbWVudCBp
biBhcnJheS5nZXQoKSkgewogICAgICAgICBpZiAoYnl0ZXNUb1NraXApIHsKICAgICAgICAgICAg
IGlmIChieXRlc1RvU2tpcCA+IHNlZ21lbnQubGVuZ3RoKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmFmN2IxYTNmZGM3
ZTIwYTQzNTE5ZGRkYWZlMWFhNjUyYzNhMzg4YS4uZGU4MmI1ZjE3YjE5NDUyMWZmMjZmMzQ5ZGRm
NDUzMWU2ZDhmNzBkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTI4ICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBCbG9iIG1lZGlhIGxvYWRpbmcg
ZG9lcyBub3Qgd29yayB3aXRoIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjgyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg5
MTc1OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAxLTI3ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTM2
MzQpOiBjcmljYnV6ei5jb20gbWVkaWEgY29udHJvbHMgdmFuaXNoIGRlcGVuZGluZyBvbiBwYWdl
IHNjYWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkOGY2
YmIzYzg1ZDhjNTNkOGQwNzQ2YzU3M2QxOWJkODA1MTFkZmU4Li4wMDFmYWVlMzJlNTk3ZTNmYTU3
NDg4ZTQzMzc0NDkxODIzMTRlOTRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vz
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE4Miw2ICsxODIsNyBAQCBtZWRpYSBbIFNraXAgXQogbWVkaWEvbWVkaWEt
Y29udHJvbGxlci5odG1sIFsgUGFzcyBdCiBtZWRpYS9tZWRpYS1wcmVsb2FkLW5vLWRlbGF5LWxv
YWRldmVudC5odG1sIFsgUGFzcyBdCiBtZWRpYS92aWRlby1zcmMuaHRtbCBbIFBhc3MgXQorbWVk
aWEvdmlkZW8tc3JjLWJsb2ItdXNpbmctb3Blbi1wYW5lbC5odG1sIFsgUGFzcyBdCiBtZWRpYS92
aWRlby1zb3VyY2UuaHRtbCBbIFBhc3MgXQogbWVkaWEvYXVkaW8tYXMtdmlkZW8tZnVsbHNjcmVl
bi5odG1sIFsgUGFzcyBdCiBtZWRpYS9hdWRpby1iYWNrZ3JvdW5kLXBsYXliYWNrLXBsYXlsaXN0
Lmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389114</attachid>
            <date>2020-01-29 01:52:01 -0800</date>
            <delta_ts>2020-01-29 02:35:33 -0800</delta_ts>
            <desc>Patch for relanding</desc>
            <filename>bug-206824-20200129105200.patch</filename>
            <type>text/plain</type>
            <size>21495</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg0YjE4YzY1OGNjZTE2
ZTQ5NjMwNDdkZmQ5ZTM1YTA4OTkzMDg4Ni4uODE3OTZiNWU0NTRlOWMwZTUyNDhmNmMzNzNiNWI4
YzVhNDMxNTMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAxLTI5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBCbG9iIG1lZGlhIGxvYWRp
bmcgZG9lcyBub3Qgd29yayB3aXRoIEdQVVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjgyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTg5MTc1OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
IEdQVSBwcm9jZXNzIGlzIHVzaW5nIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciBmb3IgdmFyaW91
cyBsb2FkcywgaW5jbHVkaW5nIGJsb2IgbG9hZHMuCisgICAgICAgIEluIEdQVSBwcm9jZXNzLCBs
b2FkcyB3aWxsIGZhaWwgc2luY2UgdGhpcyBsb2FkZXIgZXhwZWN0cyBhIENhY2hlZFJlc291cmNl
LCB3aGljaCBvbmx5IFdlYlByb2Nlc3MgY2FuIGhhdmUuCisgICAgICAgIEZvciB0aGF0IHJlYXNv
biwgbW92ZSB0aGUgQ2FjaGVkUmVzb3VyY2UgbG9hZGVyIHBhcnQgb2YgV2ViQ29yZUFWRlJlc291
cmNlTG9hZGVyIHRvIGEgZGVkaWNhdGVkIGNsYXNzIENhY2hlZFJlc291cmNlTWVkaWFMb2FkZXIu
CisgICAgICAgIElmIGxvYWQgY2Fubm90IGhhcHBlbiB3aXRoIGEgQ2FjaGVkUmVzb3VyY2UsIHVz
ZSBhIG5ldyBjbGFzcyBQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXIsIHdoaWNoIHVzZXMgYSBs
b2FkZXIgZnJvbSBNZWRpYVBsYXllcjo6Y3JlYXRlUmVzb3VyY2VMb2FkZXIuCisgICAgICAgIFRo
aXMgYWxsb3dzIHVzaW5nIHRoZSBsb2FkaW5nIHBhdGggaW4gR1BVUHJvY2VzcyB1c2VkIGZvciBI
VFRQIGxvYWRzLCB3aGljaCB3b3JrcyBmb3IgYmxvYiBsb2FkcyBhcyB3ZWxsLgorCisgICAgICAg
IENvdmVyZWQgYnkgZXhpc3RpbmcgYW5kIGVuYWJsZWQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3Jl
QVZGUmVzb3VyY2VMb2FkZXIubW06CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZU1l
ZGlhTG9hZGVyOjp+Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpzdG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTWVkaWFMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjo6bm90aWZ5Rmlu
aXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjo6ZGF0
YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRl
cjo6flBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6OlBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpyZXNwb25zZVJlY2Vp
dmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6bG9h
ZEZhaWxlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6
OmxvYWRGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVJlc291cmNlTWVkaWFM
b2FkZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXI6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyOjpsb2FkRmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOjpuZXdEYXRhU3RvcmVkSW5TaGFyZWRCdWZmZXIpOgor
CiAyMDIwLTAxLTI5ICBTdW5ueSBIZSAgPHN1bm55X2hlQGFwcGxlLmNvbT4KIAogICAgICAgICBO
dWxscHRyIGNyYXNoIHdoZW4gc2V0dGluZyBjdXN0b20gcHJvcGVydGllcyBvbiBkZXRhY2hlZCBz
dHlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCBlY2NkYmQzMWQ5MjliYWM5OGQzZGZjZTNmNWE2MmQwYWNlZWQ3YjZjLi4wMDNm
NmY2OTJiZmQzNTEzNjNiMjBhMzEyOGU5ODRmOTMwYzczNDBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaApAQCAtMjcsMjIgKzI3LDI0
IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pICYmIEhBVkUoQVZG
T1VOREFUSU9OX0xPQURFUl9ERUxFR0FURSkKIAotI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNl
Q2xpZW50LmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogT0JKQ19DTEFTUyBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdDsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDYWNoZWRSYXdSZXNvdXJjZTsKLWNsYXNzIENh
Y2hlZFJlc291cmNlTG9hZGVyOworY2xhc3MgQ2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlcjsKIGNs
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM7CitjbGFzcyBQbGF0Zm9ybVJl
c291cmNlTWVkaWFMb2FkZXI7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZTsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3MgV2ViQ29yZUFWRlJlc291cmNl
TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyPiwgQ2Fj
aGVkUmF3UmVzb3VyY2VDbGllbnQgeworY2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyPiB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXI+IGNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKiBwYXJlbnQsIEFW
QXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0ICopOwpAQCAtNTIsMjAgKzU0LDIyIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAg
ICBDYWNoZWRSYXdSZXNvdXJjZSogcmVzb3VyY2UoKTsKLQogcHJpdmF0ZToKLSAgICAvLyBDYWNo
ZWRSZXNvdXJjZUNsaWVudAotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJj
ZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiwgY29uc3Qg
Y2hhciosIGludCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSYpIG92ZXJyaWRlOworICAgIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcihNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDKiBwYXJlbnQsIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdS
ZXF1ZXN0ICopOwogCi0gICAgdm9pZCBmdWxmaWxsUmVxdWVzdFdpdGhSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZSYpOworICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOwor
ICAgIGZyaWVuZCBjbGFzcyBQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI7CisKKyAgICB2b2lk
IHJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgbG9h
ZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsK
KyAgICB2b2lkIG5ld0RhdGFTdG9yZWRJblNoYXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXImKTsKIAot
ICAgIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcihNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDKiBwYXJlbnQsIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0ICopOwogICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqIG1fcGFyZW50OwogICAgIFJldGFpblB0
cjxBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdD4gbV9hdlJlcXVlc3Q7Ci0gICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CisgICAgc3RkOjp1
bmlxdWVfcHRyPENhY2hlZFJlc291cmNlTWVkaWFMb2FkZXI+IG1fcmVzb3VyY2VNZWRpYUxvYWRl
cjsKKyAgICBXZWFrUHRyPFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcj4gbV9wbGF0Zm9ybU1l
ZGlhTG9hZGVyOworICAgIHNpemVfdCBtX3Jlc3BvbnNlT2Zmc2V0IHsgMCB9OwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1t
CmluZGV4IGJlNDAzNzgwN2IxOGY0Y2MxNjk0ZmM5NGVmNTE3MTU0YTI5YzYwMTUuLmM0MGQ3Zjlm
OTRmMDg5YzZmOWFjNzI2ZWI1ZGJlOTQyZTFmNGE3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJj
ZUxvYWRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KQEAgLTQyLDYgKzQyLDE3NSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFJlc291cmNlTWVkaWFMb2Fk
ZXIgZmluYWwgOiBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRSZXNv
dXJjZU1lZGlhTG9hZGVyPiBjcmVhdGUoV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyJiwgQ2FjaGVk
UmVzb3VyY2VMb2FkZXImLCBSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgfkNhY2hlZFJlc291cmNl
TWVkaWFMb2FkZXIoKSB7IHN0b3AoKTsgfQorCitwcml2YXRlOgorICAgIENhY2hlZFJlc291cmNl
TWVkaWFMb2FkZXIoV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyJiwgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmF3UmVzb3VyY2U+JiYpOworCisgICAgdm9pZCBzdG9wKCk7CisKKyAgICAvLyBD
YWNoZWRSYXdSZXNvdXJjZUNsaWVudAorICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChDYWNoZWRS
ZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOworICAgIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiwgY29u
c3QgY2hhciosIGludCkgZmluYWw7CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSYpIGZpbmFsOworCisgICAgdm9pZCBmdWxmaWxsUmVxdWVzdFdpdGhSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZSYpOworCisgICAgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyJiBtX3BhcmVudDsK
KyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNvdXJjZTsK
K307CisKK3N0ZDo6dW5pcXVlX3B0cjxDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyPiBDYWNoZWRS
ZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUoV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyJiBwYXJl
bnQsIENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlc291
cmNlUmVxdWVzdCkKK3sKKyAgICAvLyBGSVhNRTogU2tpcCBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSBjaGVjayBpZiB0aGUgZWxlbWVudCB0aGF0IGluaXRpdGF0ZWQgdGhpcyByZXF1ZXN0CisgICAg
Ly8gaXMgaW4gYSB1c2VyLWFnZW50IHNoYWRvdyB0cmVlLiBTZWUgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM0OTg+LgorICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgUmVzb3VyY2VMb2FkZXJPcHRpb25z
KAorICAgICAgICBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3MsCisgICAgICAgIENv
bnRlbnRTbmlmZmluZ1BvbGljeTo6RG9Ob3RTbmlmZkNvbnRlbnQsCisgICAgICAgIERhdGFCdWZm
ZXJpbmdQb2xpY3k6OkJ1ZmZlckRhdGEsCisgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
OjpEb05vdFVzZSwKKyAgICAgICAgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xp
ZW50Rm9yQ3JlZGVudGlhbHMsCisgICAgICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQsCisgICAgICAgIFNlY3VyaXR5Q2hlY2tQb2xpY3k6OkRvU2VjdXJpdHlDaGVjaywKKyAgICAg
ICAgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsCisgICAgICAgIENlcnRpZmljYXRlSW5mb1Bv
bGljeTo6RG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLAorICAgICAgICBDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrLAorICAgICAgICBEZWZlcnNMb2FkaW5n
UG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsCisgICAgICAgIENhY2hpbmdQb2xpY3k6OkRpc2Fs
bG93Q2FjaGluZykpOworCisgICAgYXV0byByZXNvdXJjZSA9IGxvYWRlci5yZXF1ZXN0TWVkaWEo
V1RGTW92ZShyZXF1ZXN0KSkudmFsdWVfb3IobnVsbHB0cik7CisgICAgaWYgKCFyZXNvdXJjZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDYWNo
ZWRSZXNvdXJjZU1lZGlhTG9hZGVyPihuZXcgQ2FjaGVkUmVzb3VyY2VNZWRpYUxvYWRlciB7IHBh
cmVudCwgV1RGTW92ZShyZXNvdXJjZSkgfSk7Cit9CisKK0NhY2hlZFJlc291cmNlTWVkaWFMb2Fk
ZXI6OkNhY2hlZFJlc291cmNlTWVkaWFMb2FkZXIoV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyJiBw
YXJlbnQsIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiYmIHJlc291cmNl
KQorICAgIDogbV9wYXJlbnQocGFyZW50KQorICAgICwgbV9yZXNvdXJjZShXVEZNb3ZlKHJlc291
cmNlKSkKK3sKKyAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQoKnRoaXMpOworfQorCit2b2lkIENh
Y2hlZFJlc291cmNlTWVkaWFMb2FkZXI6OnN0b3AoKQoreworICAgIGlmICghbV9yZXNvdXJjZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsK
KyAgICBtX3Jlc291cmNlID0gbnVsbHB0cjsKK30KKwordm9pZCBDYWNoZWRSZXNvdXJjZU1lZGlh
TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCAmcmVzb3Vy
Y2UgPT0gbV9yZXNvdXJjZSk7CisgICAgQ29tcGxldGlvbkhhbmRsZXJDYWxsaW5nU2NvcGUgY29t
cGxldGlvbkhhbmRsZXJDYWxsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworCisgICAg
bV9wYXJlbnQucmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7Cit9CisKK3ZvaWQgQ2FjaGVkUmVz
b3VyY2VNZWRpYUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNl
KQoreworICAgIGlmIChyZXNvdXJjZS5sb2FkRmFpbGVkT3JDYW5jZWxlZCgpKSB7CisgICAgICAg
IG1fcGFyZW50LmxvYWRGYWlsZWQocmVzb3VyY2UucmVzb3VyY2VFcnJvcigpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBtX3BhcmVudC5sb2FkRmluaXNoZWQoKTsKK30KKwordm9pZCBD
YWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJl
c291cmNlLCBjb25zdCBjaGFyKiwgaW50KQoreworICAgIEFTU0VSVCgmcmVzb3VyY2UgPT0gbV9y
ZXNvdXJjZSk7CisgICAgaWYgKGF1dG8qIGRhdGEgPSByZXNvdXJjZS5yZXNvdXJjZUJ1ZmZlcigp
KQorICAgICAgICBtX3BhcmVudC5uZXdEYXRhU3RvcmVkSW5TaGFyZWRCdWZmZXIoKmRhdGEpOwor
fQorCitjbGFzcyBQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXIgZmluYWwgOiBwdWJsaWMgUGxh
dGZvcm1NZWRpYVJlc291cmNlQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGxhdGZvcm1S
ZXNvdXJjZU1lZGlhTG9hZGVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgc3RhdGljIFdlYWtQdHI8UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyPiBjcmVh
dGUoV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyJiwgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
JiwgUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIH5QbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXIo
KSB7IHN0b3AoKTsgfQorCisgICAgdm9pZCBzdG9wKCk7CisKK3ByaXZhdGU6CisgICAgUGxhdGZv
cm1SZXNvdXJjZU1lZGlhTG9hZGVyKFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciYsIFJlZjxQbGF0
Zm9ybU1lZGlhUmVzb3VyY2U+JiYpOworCisgICAgdm9pZCBsb2FkRmFpbGVkKGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGaW5pc2hlZCgpOworCisgICAgLy8gUGxhdGZvcm1N
ZWRpYVJlc291cmNlQ2xpZW50CisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJikgZmluYWw7CisgICAgdm9pZCBy
ZWRpcmVjdFJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsgfQorICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNw
b25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGRhdGFTZW50KFBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBmaW5hbCB7IH0K
KyAgICB2b2lkIGRhdGFSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFy
KiwgaW50KSBmaW5hbDsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgZmluYWwgeyBsb2Fk
RmFpbGVkKGVycm9yKTsgfQorICAgIHZvaWQgbG9hZEZhaWxlZChQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgZmluYWwgeyBsb2FkRmFpbGVkKGVycm9y
KTsgfQorICAgIHZvaWQgbG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpIGZpbmFs
IHsgbG9hZEZpbmlzaGVkKCk7IH0KKworICAgIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciYgbV9w
YXJlbnQ7CisgICAgUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gbV9yZXNvdXJjZTsKKyAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKK307CisKK1dlYWtQdHI8UGxhdGZvcm1S
ZXNvdXJjZU1lZGlhTG9hZGVyPiBQbGF0Zm9ybVJlc291cmNlTWVkaWFMb2FkZXI6OmNyZWF0ZShX
ZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXImIHBhcmVudCwgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyJiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCit7CisgICAgYXV0byByZXNv
dXJjZSA9IGxvYWRlci5yZXF1ZXN0UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgUGxhdGZvcm1N
ZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9uOjpEaXNhbGxvd0NhY2hpbmcpOworICAgIGlm
ICghcmVzb3VyY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8qIHJlc291cmNl
UG9pbnRlciA9IHJlc291cmNlLmdldCgpOworICAgIGF1dG8gY2xpZW50ID0gc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcj4obmV3IFBsYXRmb3JtUmVzb3VyY2VNZWRp
YUxvYWRlciB7IHBhcmVudCwgcmVzb3VyY2UucmVsZWFzZU5vbk51bGwoKSB9KTsKKyAgICBhdXRv
IHJlc3VsdCA9IG1ha2VXZWFrUHRyKGNsaWVudC5nZXQoKSk7CisKKyAgICByZXNvdXJjZVBvaW50
ZXItPnNldENsaWVudChXVEZNb3ZlKGNsaWVudCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K1BsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6UGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVy
KFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlciYgcGFyZW50LCBSZWY8UGxhdGZvcm1NZWRpYVJlc291
cmNlPiYmIHJlc291cmNlKQorICAgIDogbV9wYXJlbnQocGFyZW50KQorICAgICwgbV9yZXNvdXJj
ZShXVEZNb3ZlKHJlc291cmNlKSkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVJlc291cmNlTWVkaWFM
b2FkZXI6OnN0b3AoKQoreworICAgIGlmICghbV9yZXNvdXJjZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byByZXNvdXJjZSA9IFdURk1vdmUobV9yZXNvdXJjZSk7CisgICAgcmVzb3VyY2Ut
PnN0b3AoKTsKKyAgICByZXNvdXJjZS0+c2V0Q2xpZW50KG51bGxwdHIpOworfQorCit2b2lkIFBs
YXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgbV9wYXJlbnQucmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7CisgICAg
Y29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7Cit9
CisKK3ZvaWQgUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVyOjpsb2FkRmFpbGVkKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQoreworICAgIG1fcGFyZW50LmxvYWRGYWlsZWQoZXJyb3IpOwor
fQorCit2b2lkIFBsYXRmb3JtUmVzb3VyY2VNZWRpYUxvYWRlcjo6bG9hZEZpbmlzaGVkKCkKK3sK
KyAgICBtX3BhcmVudC5sb2FkRmluaXNoZWQoKTsKK30KKwordm9pZCBQbGF0Zm9ybVJlc291cmNl
TWVkaWFMb2FkZXI6OmRhdGFSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBj
aGFyKiBkYXRhLCBpbnQgc2l6ZSkKK3sKKyAgICBpZiAoIW1fYnVmZmVyKQorICAgICAgICBtX2J1
ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIHNpemUpOworICAgIGVsc2UKKyAgICAg
ICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBzaXplKTsKKyAgICBtX3BhcmVudC5uZXdEYXRhU3Rv
cmVkSW5TaGFyZWRCdWZmZXIoKm1fYnVmZmVyKTsKK30KKwogUmVmPFdlYkNvcmVBVkZSZXNvdXJj
ZUxvYWRlcj4gV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOjpjcmVhdGUoTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyogcGFyZW50LCBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVz
dCAqYXZSZXF1ZXN0KQogewogICAgIEFTU0VSVChhdlJlcXVlc3QpOwpAQCAtNjIsNDggKzIzMSwz
OCBAQCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6On5XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIo
KQogCiB2b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6c3RhcnRMb2FkaW5nKCkKIHsKLSAg
ICBpZiAobV9yZXNvdXJjZSB8fCAhbV9wYXJlbnQpCisgICAgaWYgKG1fcmVzb3VyY2VNZWRpYUxv
YWRlciB8fCBtX3BsYXRmb3JtTWVkaWFMb2FkZXIgfHwgIW1fcGFyZW50KQogICAgICAgICByZXR1
cm47CiAKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9IFttX2F2UmVxdWVzdC5nZXQoKSBy
ZXF1ZXN0XTsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QobnNSZXF1ZXN0
KTsKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6
Okxvdyk7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobnNSZXF1ZXN0KTsKKyAgICByZXF1
ZXN0LnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5OjpMb3cpOwogCi0gICAgLy8gRklY
TUU6IFNraXAgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY2hlY2sgaWYgdGhlIGVsZW1lbnQgdGhh
dCBpbml0aXRhdGVkIHRoaXMgcmVxdWVzdAotICAgIC8vIGlzIGluIGEgdXNlci1hZ2VudCBzaGFk
b3cgdHJlZS4gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcz
NDk4Pi4KLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChXVEZNb3ZlKHJlc291cmNl
UmVxdWVzdCksIFJlc291cmNlTG9hZGVyT3B0aW9ucygKLSAgICAgICAgU2VuZENhbGxiYWNrUG9s
aWN5OjpTZW5kQ2FsbGJhY2tzLAotICAgICAgICBDb250ZW50U25pZmZpbmdQb2xpY3k6OkRvTm90
U25pZmZDb250ZW50LAotICAgICAgICBEYXRhQnVmZmVyaW5nUG9saWN5OjpCdWZmZXJEYXRhLAot
ICAgICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UsCi0gICAgICAgIENsaWVu
dENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzLAotICAgICAg
ICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0LAotICAgICAgICBTZWN1cml0eUNoZWNr
UG9saWN5OjpEb1NlY3VyaXR5Q2hlY2ssCi0gICAgICAgIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9D
b3JzLAotICAgICAgICBDZXJ0aWZpY2F0ZUluZm9Qb2xpY3k6OkRvTm90SW5jbHVkZUNlcnRpZmlj
YXRlSW5mbywKLSAgICAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xp
Y3lDaGVjaywKLSAgICAgICAgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5n
LAotICAgICAgICBDYWNoaW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsKLSAgICBpZiAoYXV0
byogbG9hZGVyID0gbV9wYXJlbnQtPnBsYXllcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKQot
ICAgICAgICBtX3Jlc291cmNlID0gbG9hZGVyLT5yZXF1ZXN0TWVkaWEoV1RGTW92ZShyZXF1ZXN0
KSkudmFsdWVfb3IobnVsbHB0cik7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IG1fcGFyZW50LT5w
bGF5ZXIoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSkgeworICAgICAgICBtX3Jlc291cmNlTWVk
aWFMb2FkZXIgPSBDYWNoZWRSZXNvdXJjZU1lZGlhTG9hZGVyOjpjcmVhdGUoKnRoaXMsICpsb2Fk
ZXIsIFdURk1vdmUocmVxdWVzdCkpOworICAgICAgICBpZiAobV9yZXNvdXJjZU1lZGlhTG9hZGVy
KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGlmIChtX3Jlc291cmNlKQotICAg
ICAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQoKnRoaXMpOwotICAgIGVsc2UgewotICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBzdGFydCBsb2FkIGZvciBtZWRpYSBhdCB1cmwgJXMiLCBbW1tu
c1JlcXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmluZ10gVVRGOFN0cmluZ10pOwotICAgICAgICBbbV9h
dlJlcXVlc3QuZ2V0KCkgZmluaXNoTG9hZGluZ1dpdGhFcnJvcjowXTsKKyAgICBpZiAoYXV0byBs
b2FkZXIgPSBtX3BhcmVudC0+cGxheWVyKCktPmNyZWF0ZVJlc291cmNlTG9hZGVyKCkpIHsKKyAg
ICAgICAgbV9wbGF0Zm9ybU1lZGlhTG9hZGVyID0gUGxhdGZvcm1SZXNvdXJjZU1lZGlhTG9hZGVy
OjpjcmVhdGUoKnRoaXMsICpsb2FkZXIsIFdURk1vdmUocmVxdWVzdCkpOworICAgICAgICBpZiAo
bV9wbGF0Zm9ybU1lZGlhTG9hZGVyKQorICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAg
IExPR19FUlJPUigiRmFpbGVkIHRvIHN0YXJ0IGxvYWQgZm9yIG1lZGlhIGF0IHVybCAlcyIsIFtb
W25zUmVxdWVzdCBVUkxdIGFic29sdXRlU3RyaW5nXSBVVEY4U3RyaW5nXSk7CisgICAgW21fYXZS
ZXF1ZXN0LmdldCgpIGZpbmlzaExvYWRpbmdXaXRoRXJyb3I6MF07CiB9CiAKIHZvaWQgV2ViQ29y
ZUFWRlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZygpCiB7Ci0gICAgaWYgKCFtX3Jlc291cmNl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Jlc291cmNlLT5yZW1vdmVDbGllbnQoKnRoaXMp
OwotICAgIG1fcmVzb3VyY2UgPSAwOworICAgIG1fcmVzb3VyY2VNZWRpYUxvYWRlciA9IG51bGxw
dHI7CiAKKyAgICBpZiAobV9wbGF0Zm9ybU1lZGlhTG9hZGVyKSB7CisgICAgICAgIG1fcGxhdGZv
cm1NZWRpYUxvYWRlci0+c3RvcCgpOworICAgICAgICBtX3BsYXRmb3JtTWVkaWFMb2FkZXIgPSBu
dWxscHRyOworICAgIH0KICAgICBpZiAobV9wYXJlbnQgJiYgbV9hdlJlcXVlc3QpCiAgICAgICAg
IG1fcGFyZW50LT5kaWRTdG9wTG9hZGluZ1JlcXVlc3QobV9hdlJlcXVlc3QuZ2V0KCkpOwogfQpA
QCAtMTIwLDIzICsyNzksMjMgQEAgdm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OmludmFs
aWRhdGUoKQogICAgIH0pOwogfQogCi12b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6cmVz
cG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHJl
c291cmNlLCAmcmVzb3VyY2UgPT0gbV9yZXNvdXJjZSk7Ci0gICAgQ29tcGxldGlvbkhhbmRsZXJD
YWxsaW5nU2NvcGUgY29tcGxldGlvbkhhbmRsZXJDYWxsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotCiAgICAgaW50IHN0YXR1cyA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CiAg
ICAgaWYgKHN0YXR1cyAmJiAoc3RhdHVzIDwgMjAwIHx8IHN0YXR1cyA+IDI5OSkpIHsKICAgICAg
ICAgW21fYXZSZXF1ZXN0LmdldCgpIGZpbmlzaExvYWRpbmdXaXRoRXJyb3I6MF07CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKKyAgICBhdXRvJiBjb250ZW50UmFuZ2UgPSByZXNwb25zZS5jb250
ZW50UmFuZ2UoKTsKKyAgICBpZiAoY29udGVudFJhbmdlLmlzVmFsaWQoKSkKKyAgICAgICAgbV9y
ZXNwb25zZU9mZnNldCA9IHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGNvbnRlbnRSYW5nZS5maXJz
dEJ5dGVQb3NpdGlvbigpKTsKKwogICAgIGlmIChBVkFzc2V0UmVzb3VyY2VMb2FkaW5nQ29udGVu
dEluZm9ybWF0aW9uUmVxdWVzdCogY29udGVudEluZm8gPSBbbV9hdlJlcXVlc3QuZ2V0KCkgY29u
dGVudEluZm9ybWF0aW9uUmVxdWVzdF0pIHsKICAgICAgICAgU3RyaW5nIHV0aSA9IFVUSUZyb21N
SU1FVHlwZShyZXNwb25zZS5taW1lVHlwZSgpKTsKIAogICAgICAgICBbY29udGVudEluZm8gc2V0
Q29udGVudFR5cGU6dXRpXTsKIAotICAgICAgICBjb25zdCBQYXJzZWRDb250ZW50UmFuZ2UmIGNv
bnRlbnRSYW5nZSA9IG1fcmVzb3VyY2UtPnJlc3BvbnNlKCkuY29udGVudFJhbmdlKCk7CiAgICAg
ICAgIFtjb250ZW50SW5mbyBzZXRDb250ZW50TGVuZ3RoOmNvbnRlbnRSYW5nZS5pc1ZhbGlkKCkg
PyBjb250ZW50UmFuZ2UuaW5zdGFuY2VMZW5ndGgoKSA6IHJlc3BvbnNlLmV4cGVjdGVkQ29udGVu
dExlbmd0aCgpXTsKICAgICAgICAgW2NvbnRlbnRJbmZvIHNldEJ5dGVSYW5nZUFjY2Vzc1N1cHBv
cnRlZDpZRVNdOwogCkBAIC0xNDcsNTIgKzMwNiwzNyBAQCB2b2lkIFdlYkNvcmVBVkZSZXNvdXJj
ZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0
CiAgICAgfQogfQogCi12b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2VpdmVk
KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgY2hhciosIGludCkKK3ZvaWQgV2ViQ29y
ZUFWRlJlc291cmNlTG9hZGVyOjpsb2FkRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
KQogewotICAgIGZ1bGZpbGxSZXF1ZXN0V2l0aFJlc291cmNlKHJlc291cmNlKTsKKyAgICAvLyA8
cmRhcjovL3Byb2JsZW0vMTM5ODc0MTc+IFNldCB0aGUgY29udGVudFR5cGUgb2YgdGhlIGNvbnRl
bnRJbmZvcm1hdGlvblJlcXVlc3QgdG8gYW4gZW1wdHkKKyAgICAvLyBzdHJpbmcgdG8gdHJpZ2dl
ciBBVkFzc2V0J3MgcGxheWFibGUgdmFsdWUgdG8gY29tcGxldGUgbG9hZGluZy4KKyAgICBpZiAo
W21fYXZSZXF1ZXN0LmdldCgpIGNvbnRlbnRJbmZvcm1hdGlvblJlcXVlc3RdICYmICFbW21fYXZS
ZXF1ZXN0LmdldCgpIGNvbnRlbnRJbmZvcm1hdGlvblJlcXVlc3RdIGNvbnRlbnRUeXBlXSkKKyAg
ICAgICAgW1ttX2F2UmVxdWVzdC5nZXQoKSBjb250ZW50SW5mb3JtYXRpb25SZXF1ZXN0XSBzZXRD
b250ZW50VHlwZTpAIiJdOworCisgICAgW21fYXZSZXF1ZXN0LmdldCgpIGZpbmlzaExvYWRpbmdX
aXRoRXJyb3I6ZXJyb3IubnNFcnJvcigpXTsKKyAgICBzdG9wTG9hZGluZygpOwogfQogCi12b2lk
IFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Um
IHJlc291cmNlKQordm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OmxvYWRGaW5pc2hlZCgp
CiB7Ci0gICAgaWYgKHJlc291cmNlLmxvYWRGYWlsZWRPckNhbmNlbGVkKCkpIHsKLSAgICAgICAg
Ly8gPHJkYXI6Ly9wcm9ibGVtLzEzOTg3NDE3PiBTZXQgdGhlIGNvbnRlbnRUeXBlIG9mIHRoZSBj
b250ZW50SW5mb3JtYXRpb25SZXF1ZXN0IHRvIGFuIGVtcHR5Ci0gICAgICAgIC8vIHN0cmluZyB0
byB0cmlnZ2VyIEFWQXNzZXQncyBwbGF5YWJsZSB2YWx1ZSB0byBjb21wbGV0ZSBsb2FkaW5nLgot
ICAgICAgICBpZiAoW21fYXZSZXF1ZXN0LmdldCgpIGNvbnRlbnRJbmZvcm1hdGlvblJlcXVlc3Rd
ICYmICFbW21fYXZSZXF1ZXN0LmdldCgpIGNvbnRlbnRJbmZvcm1hdGlvblJlcXVlc3RdIGNvbnRl
bnRUeXBlXSkKLSAgICAgICAgICAgIFtbbV9hdlJlcXVlc3QuZ2V0KCkgY29udGVudEluZm9ybWF0
aW9uUmVxdWVzdF0gc2V0Q29udGVudFR5cGU6QCIiXTsKLQotICAgICAgICBOU0Vycm9yKiBlcnJv
ciA9IHJlc291cmNlLmVycm9yT2NjdXJyZWQoKSA/IHJlc291cmNlLnJlc291cmNlRXJyb3IoKS5u
c0Vycm9yKCkgOiBuaWw7Ci0gICAgICAgIFttX2F2UmVxdWVzdC5nZXQoKSBmaW5pc2hMb2FkaW5n
V2l0aEVycm9yOmVycm9yXTsKLSAgICB9IGVsc2UgewotICAgICAgICBmdWxmaWxsUmVxdWVzdFdp
dGhSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgIFttX2F2UmVxdWVzdC5nZXQoKSBmaW5pc2hM
b2FkaW5nXTsKLSAgICB9CisgICAgW21fYXZSZXF1ZXN0LmdldCgpIGZpbmlzaExvYWRpbmddOwog
ICAgIHN0b3BMb2FkaW5nKCk7CiB9CiAKLXZvaWQgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOjpm
dWxmaWxsUmVxdWVzdFdpdGhSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCit2b2lk
IFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6bmV3RGF0YVN0b3JlZEluU2hhcmVkQnVmZmVyKFNo
YXJlZEJ1ZmZlciYgZGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCAmcmVzb3Vy
Y2UgPT0gbV9yZXNvdXJjZSk7CiAgICAgQVZBc3NldFJlc291cmNlTG9hZGluZ0RhdGFSZXF1ZXN0
KiBkYXRhUmVxdWVzdCA9IFttX2F2UmVxdWVzdCBkYXRhUmVxdWVzdF07CiAgICAgaWYgKCFkYXRh
UmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2hhcmVkQnVmZmVyKiBkYXRhID0gbV9y
ZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIE5TVUludGVnZXIgcmVzcG9uc2VPZmZzZXQgPSAwOwotICAgIGNvbnN0IFBhcnNl
ZENvbnRlbnRSYW5nZSYgY29udGVudFJhbmdlID0gbV9yZXNvdXJjZS0+cmVzcG9uc2UoKS5jb250
ZW50UmFuZ2UoKTsKLSAgICBpZiAoY29udGVudFJhbmdlLmlzVmFsaWQoKSkKLSAgICAgICAgcmVz
cG9uc2VPZmZzZXQgPSBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihjb250ZW50UmFuZ2UuZmlyc3RC
eXRlUG9zaXRpb24oKSk7Ci0KICAgICAvLyBDaGVjayBmb3IgcG9zc2libGUgdW5zaWduZWQgb3Zl
cmZsb3cuCiAgICAgQVNTRVJUKGRhdGFSZXF1ZXN0LmN1cnJlbnRPZmZzZXQgPj0gZGF0YVJlcXVl
c3QucmVxdWVzdGVkT2Zmc2V0KTsKICAgICBBU1NFUlQoZGF0YVJlcXVlc3QucmVxdWVzdGVkTGVu
Z3RoID49IChkYXRhUmVxdWVzdC5jdXJyZW50T2Zmc2V0IC0gZGF0YVJlcXVlc3QucmVxdWVzdGVk
T2Zmc2V0KSk7CiAKICAgICBOU1VJbnRlZ2VyIHJlbWFpbmluZ0xlbmd0aCA9IGRhdGFSZXF1ZXN0
LnJlcXVlc3RlZExlbmd0aCAtIHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGRhdGFSZXF1ZXN0LmN1
cnJlbnRPZmZzZXQgLSBkYXRhUmVxdWVzdC5yZXF1ZXN0ZWRPZmZzZXQpOwogCi0gICAgYXV0byBi
eXRlc1RvU2tpcCA9IGRhdGFSZXF1ZXN0LmN1cnJlbnRPZmZzZXQgLSByZXNwb25zZU9mZnNldDsK
LSAgICBSZXRhaW5QdHI8TlNBcnJheT4gYXJyYXkgPSBkYXRhLT5jcmVhdGVOU0RhdGFBcnJheSgp
OworICAgIGF1dG8gYnl0ZXNUb1NraXAgPSBkYXRhUmVxdWVzdC5jdXJyZW50T2Zmc2V0IC0gbV9y
ZXNwb25zZU9mZnNldDsKKyAgICBhdXRvIGFycmF5ID0gZGF0YS5jcmVhdGVOU0RhdGFBcnJheSgp
OwogICAgIGZvciAoTlNEYXRhICpzZWdtZW50IGluIGFycmF5LmdldCgpKSB7CiAgICAgICAgIGlm
IChieXRlc1RvU2tpcCkgewogICAgICAgICAgICAgaWYgKGJ5dGVzVG9Ta2lwID4gc2VnbWVudC5s
ZW5ndGgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAxY2Q0NWJmNjJiOTljMDI2NWMxM2U5MTFlMjFhMDE2MjZlN2Q5MTIz
Li5mN2U4MThjMTA0M2FkM2ZkNWZmZjU5NTEyMTk5Y2VmOWFiZTVmMWQ1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjAtMDEtMjkgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEJsb2IgbWVkaWEgbG9hZGluZyBkb2VzIG5vdCB3b3JrIHdpdGggR1BVUHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2ODI0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODkxNzU5Nj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIwLTAxLTI5ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IGNvbXBvc2l0aW5nL3ZpZGVvL3Bvc3Rlci5odG1sIHRlc3QgYnkgbWFr
aW5nIGJsZW5kaW5nIGltYWdlIG9wcXVlIHRvIGRlYWwgd2l0aCBmbGFrZXkgZmFpbHVyZXMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkOGY2YmIzYzg1ZDhj
NTNkOGQwNzQ2YzU3M2QxOWJkODA1MTFkZmU4Li4wMDFmYWVlMzJlNTk3ZTNmYTU3NDg4ZTQzMzc0
NDkxODIzMTRlOTRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE4Miw2ICsxODIsNyBAQCBtZWRpYSBbIFNraXAgXQogbWVkaWEvbWVkaWEtY29udHJvbGxl
ci5odG1sIFsgUGFzcyBdCiBtZWRpYS9tZWRpYS1wcmVsb2FkLW5vLWRlbGF5LWxvYWRldmVudC5o
dG1sIFsgUGFzcyBdCiBtZWRpYS92aWRlby1zcmMuaHRtbCBbIFBhc3MgXQorbWVkaWEvdmlkZW8t
c3JjLWJsb2ItdXNpbmctb3Blbi1wYW5lbC5odG1sIFsgUGFzcyBdCiBtZWRpYS92aWRlby1zb3Vy
Y2UuaHRtbCBbIFBhc3MgXQogbWVkaWEvYXVkaW8tYXMtdmlkZW8tZnVsbHNjcmVlbi5odG1sIFsg
UGFzcyBdCiBtZWRpYS9hdWRpby1iYWNrZ3JvdW5kLXBsYXliYWNrLXBsYXlsaXN0Lmh0bWwgWyBQ
YXNzIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>