<?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>188405</bug_id>
          
          <creation_ts>2018-08-08 00:48:15 -0700</creation_ts>
          <short_desc>[Nicosia] Add the Nicosia-specific PlatformLayer type alias</short_desc>
          <delta_ts>2018-08-08 13:54:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>187385</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>magomez</cc>
    
    <cc>noam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1448702</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-08 00:48:15 -0700</bug_when>
    <thetext>[Nicosia] Add the Nicosia-specific PlatformLayer type alias</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448704</commentid>
    <comment_count>1</comment_count>
      <attachid>346759</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-08 01:20:52 -0700</bug_when>
    <thetext>Created attachment 346759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448705</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-08 01:22:54 -0700</bug_when>
    <thetext>Attachment 346759 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:857:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448708</commentid>
    <comment_count>3</comment_count>
      <attachid>346759</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-08 01:43:36 -0700</bug_when>
    <thetext>Comment on attachment 346759
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:777
&gt; +        [&amp;](TextureMapperPlatformLayerProxy&amp; proxy)

Do we really need to capture everything? I prefer explicit capture and I guess &apos;this&apos; is the only thing we need to capture here, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448713</commentid>
    <comment_count>4</comment_count>
      <attachid>346761</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-08 02:30:06 -0700</bug_when>
    <thetext>Created attachment 346761
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448714</commentid>
    <comment_count>5</comment_count>
      <attachid>346761</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-08 02:31:10 -0700</bug_when>
    <thetext>Comment on attachment 346761
Patch for landing

Clearing flags on attachment: 346761

Committed r234688: &lt;https://trac.webkit.org/changeset/234688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448715</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-08 02:31:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448716</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-08 02:32:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/43039520&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448792</commentid>
    <comment_count>8</comment_count>
      <attachid>346779</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-08-08 11:36:21 -0700</bug_when>
    <thetext>Created attachment 346779
WinCairo build fix

An #ifdef guard around USE(NICOSIA) was missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448807</commentid>
    <comment_count>9</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-08-08 12:27:13 -0700</bug_when>
    <thetext>This broke the WinCairo build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448808</commentid>
    <comment_count>10</comment_count>
      <attachid>346784</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-08-08 12:27:42 -0700</bug_when>
    <thetext>Created attachment 346784
Build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448830</commentid>
    <comment_count>11</comment_count>
      <attachid>346784</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-08 13:54:12 -0700</bug_when>
    <thetext>Comment on attachment 346784
Build fix

Clearing flags on attachment: 346784

Committed r234710: &lt;https://trac.webkit.org/changeset/234710&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448831</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-08 13:54:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346759</attachid>
            <date>2018-08-08 01:20:52 -0700</date>
            <delta_ts>2018-08-08 02:30:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188405-20180808102051.patch</filename>
            <type>text/plain</type>
            <size>34985</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0Njg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzM5MmY2YmZhOTU0ZmY0
ZjU5NTBjNzA0MmRkM2I4YzI0ZTQ1NTRhNC4uMzFhODRlMzg1OGEyMzhjMWNlMGZmNTEyMzI4Mzlm
YjM3YzgyMjBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDE4LTA4LTA4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbTmljb3NpYV0gQWRk
IHRoZSBOaWNvc2lhLXNwZWNpZmljIFBsYXRmb3JtTGF5ZXIgdHlwZSBhbGlhcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgTmljb3NpYS1zcGVj
aWZpYyBQbGF0Zm9ybUxheWVyIHR5cGUgYWxpYXMgdGhhdCBwb2ludHMgdG8gdGhlCisgICAgICAg
IE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIgdHlwZS4gVGhpcyBpcyBndWFyZGVkIGJ5IHRoZSBVU0Uo
TklDT1NJQSkgbWFjcm8sCisgICAgICAgIHdoaWNoIGd1YXJkcyBhZGRpdGlvbmFsIGNvZGUgaW4g
dGhpcyBwYXRjaCBidXQgd2lsbCBiZSBhZGRlZCB0byBvdGhlcgorICAgICAgICBOaWNvc2lhLXNw
ZWNpZmljIGNsYXNzZXMgbGF0ZXIuCisKKyAgICAgICAgVG8ga2VlcCB0aGluZ3MgYnVpbGRhYmxl
IHdoZW4gVVNFKE5JQ09TSUEpIGlzIGRlZmluZWQsIGFkZGl0aW9uYWwKKyAgICAgICAgY2hhbmdl
cyBhcmUgbWFkZSB0byBjbGFzc2VzIHRoYXQgb3BlcmF0ZSB3aXRoIHBsYXRmb3JtIGxheWVycy4K
KyAgICAgICAgQ2Fpcm8tc3BlY2lmaWMgSW1hZ2VCdWZmZXIgaW1wbGVtZW50YXRpb24gYW5kIHRo
ZSByZWxhdGVkCisgICAgICAgIEltYWdlQnVmZmVyRGF0YSBjbGFzcyBhcmUgbW9kaWZpZWQgdG8g
d29yayB3aXRoIGEgTmljb3NpYTo6Q29udGVudExheWVyCisgICAgICAgIG9iamVjdC4gVGhpcyBv
YmplY3QgaXMgdXNpbmcgdGhlIFRleHR1cmVNYXBwZXItc3BlY2lmaWMgSW1wbCBjbGFzcyB3aGlj
aAorICAgICAgICBpbnRlcm5hbGx5IGtlZXBzIGEgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQ
cm94eSBvYmplY3QuIFRoaXMgd2F5CisgICAgICAgIHdlIGNhbiByZXVzZSBleGlzdGluZyBjb2Rl
IHRoYXQgYWxzbyB3b3JrcyB3aXRoIGFuIG9iamVjdCBvZiB0aGlzIHR5cGUsCisgICAgICAgIG9u
bHkgZGlmZmVyZW5jZSBpcyB3aGVyZSB0aGUgcHJveHkgb2JqZWN0IGlzIGtlcHQuIE1haW4gZGlm
ZmVyZW5jZSBpcyBpbgorICAgICAgICB0aGUgSW1hZ2VCdWZmZXI6OnBsYXRmb3JtTGF5ZXIoKSBt
ZXRob2QsIHdoZXJlIHBvaW50ZXIgdG8gdGhlCisgICAgICAgIE5pY29zaWE6OkNvbnRlbnRMYXll
ciBvYmplY3QgaXMgcmV0dXJuZWQgd2hlbiBVU0UoTklDT1NJQSkgaXMgZW5hYmxlZC4KKworICAg
ICAgICBTaW1pbGFyIGFwcHJvYWNoIGlzIHRha2VkIGZvciB0aGUgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZSBjbGFzcy4KKyAgICAgICAgV2hlbiBVU0UoTklDT1NJQSkgaXMgZW5hYmxl
ZCwgYSBOaWNvc2lhOjpDb250ZW50TGF5ZXIgb2JqZWN0IGlzCisgICAgICAgIGNvbnN0cnVjdGVk
LCBhbmQgd2l0aCB0aGUgVGV4dHVyZU1hcHBlci1zcGVjaWZpYyBJbXBsIHdlIGFnYWluIG9wZXJh
dGUKKyAgICAgICAgb24gdGhlIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkgb2JqZWN0
IGxpa2UgYmVmb3JlLCBzbyBhbGwgb2YKKyAgICAgICAgdGhlIHByb3h5LXNwZWNpZmljIGNvZGUg
aXMgYnVuZGxlZCBpbnRvIGhlbHBlciBsYW1iZGFzIHRoYXQgb3BlcmF0ZSBvbgorICAgICAgICB0
aGUgZ2l2ZW4gcHJveHkgb2JqZWN0LiBJbiB0aGUgcGxhdGZvcm1MYXllcigpIG1ldGhvZCwgd2Ug
YWdhaW4gcmV0dXJuCisgICAgICAgIHBvaW50ZXIgdG8gdGhlIE5pY29zaWE6OkNvbnRlbnRMYXll
ciBvYmplY3Qgd2hlbiBVU0UoTklDT1NJQSkgaXMgb24uCisKKyAgICAgICAgRm9yIHRoZSBHcmFw
aGljc0NvbnRleHQzRCBpbnRlZ3JhdGlvbiwgd2UgaGF2ZSB0byBwcm92aWRlIGEgc2VwYXJhdGUK
KyAgICAgICAgY2xhc3MgdGhhdCByZXBsaWNhdGVzIG1vc3Qgb2YgdGhlIGZ1bmN0aW9uYWxpdHkg
Y3VycmVudGx5IHByZXNlbnQgaW4gdGhlCisgICAgICAgIFRleHR1cmVNYXBwZXJHQzNEUGxhdGZv
cm1MYXllciBjbGFzcy4gTWFpbiBkaWZmZXJlbmNlIGlzIHRoYXQgaW4gdGhlIG5ldworICAgICAg
ICBOaWNvc2lhOjpHQzNETGF5ZXIgY2xhc3MsIGEgTmljb3NpYTo6Q29udGVudExheWVyIG9iamVj
dCBpcyBzcGF3bmVkIHdpdGgKKyAgICAgICAgdGhlIFRleHR1cmVNYXBwZXItc3BlY2lmaWMgSW1w
bC4gVGhlIHByb3h5IG9iamVjdCBoZWxkIGJ5IHRoYXQgSW1wbCBpcworICAgICAgICB0aGVuIGFn
YWluIHVzZWQgdG8gcHVzaCBuZXcgYnVmZmVycyBpbnRvIHRoZSByZW5kZXJpbmcgcGlwZWxpbmUu
IEFzCisgICAgICAgIGJlZm9yZSwgcG9pbnRlciB0byB0aGUgTmljb3NpYTo6Q29udGVudExheWVy
IGlzIHJldHVybmVkIGluIHRoZQorICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1M
YXllcigpIG9iamVjdC4KKworICAgICAgICBJbnRlZ3JhdGlvbiBvZiB0aGUgR3JhcGhpY3NDb250
ZXh0M0QgY2xhc3MgaW50byBOaWNvc2lhIGxheWVyaW5nIG5lZWRzCisgICAgICAgIGZ1cnRoZXIg
d29yayBpbiB0aGUgZnV0dXJlLiBUYXJnZXQgc2hvdWxkIGJlIHByb3ZpZGluZyBhIGNsYXNzIHRo
YXQgaXMKKyAgICAgICAgbm90IHNwZWNpZmljIHRvIHRoZSBUZXh0dXJlTWFwcGVyIGxheWVyLiBB
ZGRpdGlvbmFsbHksIHdoZW4gVVNFKE5JQ09TSUEpCisgICAgICAgIGlzIGVuYWJsZWQsIHdlIHJl
bW92ZSB0aGUgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyIGNsYXNzIGZyb20KKyAgICAg
ICAgY29tcGlsYXRpb24gc2luY2UgaXQgZGVwZW5kcyBvbiBhIFBsYXRmb3JtTGF5ZXIgdHlwZSBh
bGlhcyB0byB0aGUKKyAgICAgICAgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eVByb3Zp
ZGVyIGNsYXNzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBkb2Vzbid0IGFkZHJlc3MgdGhl
IGFidW5kYW5jZSBvZiBtYWNyb3MgdGhhdCB0aGlzIGNvZGUKKyAgICAgICAgbm93IHVzZXMuIFdo
aWxlIFVTRShOSUNPU0lBKSBpcyBpbnRyb2R1Y2VkLCB3ZSBoYXZlIHRvIHdvcmsgYXJvdW5kCisg
ICAgICAgIGZvdXIgYWRkaXRpb25hbCBtYWNyb3MgaW4gdGhpcyBjb2RlOiBVU0UoVEVYVFVSRV9N
QVBQRVIpLAorICAgICAgICBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpLCBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpIGFuZAorICAgICAgICBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
LiBJbiBhIGxvdCBvZiBwbGFjZXMgdGhlc2UgYXJlIHVzZWQKKyAgICAgICAgaW50ZXJjaGFuZ2Vh
Ymx5LCBidXQgdGhleSBzaG91bGQgYmUgbWVyZ2VkIGFuZCBzaW1wbGlmaWVkIGluIHVzZS4gSSBo
b3BlCisgICAgICAgIHRvIGFwcHJvYWNoIHRoaXMgb25jZSB0aGUgVVNFKE5JQ09TSUEpIGZ1bmN0
aW9uYWxpdHkgbGFuZHMgYW5kIGlzIHR1cm5lZAorICAgICAgICBvbiBmb3IgcG9ydHMgdGhhdCBj
dXJyZW50bHkgYnVpbGQgd2l0aCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpLgorCisgICAgICAg
ICogcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0YTo6SW1hZ2VC
dWZmZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0YTo6fkltYWdlQnVm
ZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnN3YXBCdWZmZXJz
SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnBsYXRmb3JtTGF5ZXIg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0
YUNhaXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnN3YXBCdWZmZXJzSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Zmx1c2hDdXJyZW50QnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4
bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKE5pY29zaWE6OkdDM0RM
YXllcjo6R0MzRExheWVyKToKKyAgICAgICAgKE5pY29zaWE6OkdDM0RMYXllcjo6fkdDM0RMYXll
cik6CisgICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCk6Cisg
ICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgIChO
aWNvc2lhOjpHQzNETGF5ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaDogQWRkZWQuCisg
ICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OmNvbnRlbnRMYXllciBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250
ZXh0M0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0
Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6
cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlUGxhdGZvcm1MYXllcik6CisKIDIwMTgt
MDgtMDcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3Vy
Y2VVc2FnZU92ZXJsYXkgc2hvdWxkIHVzZSBwaHlzaWNhbCBmb290cHJpbnQgZm9yIGl0cyAiRm9v
dHByaW50IiBsYWJlbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVy
ZU1hcHBlci5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21h
a2UKaW5kZXggMDlkZWE2Nzk0YTI1YzA2MDg0MjUyMTExYjAyZjdkMmQzNWUwMzE3ZC4uM2M3OGZl
YTUwYzAwMTU2NGQ4MmM2NGFiMmQzNTM2ZmI5YTFhNTAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCkBAIC02MCw2ICs2MCw3IEBAIGlmIChVU0VfQ09P
UkRJTkFURURfR1JBUEhJQ1MpCiAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUNvbXBvc2l0aW9uTGF5ZXJUZXh0dXJlTWFwcGVySW1wbC5jcHAKICAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUNvbnRlbnRMYXllclRl
eHR1cmVNYXBwZXJJbXBsLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3Rl
eG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcAogICAgICkKIGVsc2UgKCkKICAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDQzMDhhY2YxNDI1MjJhYjlkYTMwMDYxYzdh
ODM2NWI2YTI5MGZlZTcuLmI1ZjliYjdjY2Y5NjI0NDI4YTljMjdhZTE4MGU0NTUxMzI2OWNiOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaApAQCAtNzQsNiArNzQsMTIgQEAgT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlw
ZWRlZiBzdHJ1Y3QgX19JT1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKICNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkKIAorI2lmIFVTRShOSUNPU0lBKQorbmFtZXNwYWNlIE5pY29zaWEgeworY2xhc3Mg
R0MzRExheWVyOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB0eXBlZGVmIHVu
c2lnbmVkIEdMdWludDsKIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsK
QEAgLTE0ODEsNyArMTQ4NywxMCBAQCBwcml2YXRlOgogICAgIC8vIEVycm9ycyByYWlzZWQgYnkg
c3ludGhlc2l6ZUdMRXJyb3IoKS4KICAgICBMaXN0SGFzaFNldDxHQzNEZW51bT4gbV9zeW50aGV0
aWNFcnJvcnM7CiAKLSNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKE5JQ09TSUEpICYm
IFVTRShURVhUVVJFX01BUFBFUikKKyAgICBmcmllbmQgY2xhc3MgTmljb3NpYTo6R0MzRExheWVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxOaWNvc2lhOjpHQzNETGF5ZXI+IG1fbmljb3NpYUxheWVy
OworI2VsaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogICAgIGZyaWVuZCBjbGFzcyBUZXh0dXJlTWFw
cGVyR0MzRFBsYXRmb3JtTGF5ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJH
QzNEUGxhdGZvcm1MYXllcj4gbV90ZXhtYXBMYXllcjsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxheWVyLmgKaW5kZXggMTBmY2YxNDg1ZWNl
MTJiMjQ3Y2IzNmZkNjQ3ZTcyMTY1YWY3OGY1MC4uOTJiYTMyZDEwMTcwOTdlYjJmN2NkMzY5NTIy
NmYzM2ZkOTNkZGNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtTGF5ZXIuaApAQCAtMzAsNiArMzAsMTEgQEAgT0JKQ19DTEFTUyBDQUxheWVyOwog
dHlwZWRlZiBDQUxheWVyIFBsYXRmb3JtTGF5ZXI7CiAjZWxpZiBQTEFURk9STShXSU4pICYmIFVT
RShDQSkKIHR5cGVkZWYgc3RydWN0IF9DQUNGTGF5ZXIgUGxhdGZvcm1MYXllcjsKKyNlbGlmIFVT
RShOSUNPU0lBKQorbmFtZXNwYWNlIE5pY29zaWEgeworY2xhc3MgUGxhdGZvcm1MYXllcjsKK30K
K3R5cGVkZWYgTmljb3NpYTo6UGxhdGZvcm1MYXllciBQbGF0Zm9ybUxheWVyOwogI2VsaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNh
aXJvLmNwcAppbmRleCA4OWE0MWYxZjU3OGFmZjZiNzJiNjlkZTI0NjQ3ZmI1ZTc0ZWYyMDdlLi40
NTZhZjc4NmQwOTI1OTAxN2M0MzE3NWQyZDY0MDg3MTc2MmU4YTRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNh
aXJvLmNwcApAQCAtOTEsOCArOTEsMTMgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1ZmZlckRh
dGEoY29uc3QgSW50U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2QKICNlbmRp
ZgogewogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDU19USFJFQURFRCkKLSAgICBpZiAobV9yZW5kZXJpbmdNb2RlID09IFJlbmRlcmlu
Z01vZGU6OkFjY2VsZXJhdGVkKQorICAgIGlmIChtX3JlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5n
TW9kZTo6QWNjZWxlcmF0ZWQpIHsKKyNpZiBVU0UoTklDT1NJQSkKKyAgICAgICAgbV9uaWNvc2lh
TGF5ZXIgPSBOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5
ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpOworI2Vsc2UKICAgICAg
ICAgbV9wbGF0Zm9ybUxheWVyUHJveHkgPSBhZG9wdFJlZihuZXcgVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJQcm94eSk7CisjZW5kaWYKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtMTAyLDYgKzEw
NywxMCBAQCBJbWFnZUJ1ZmZlckRhdGE6On5JbWFnZUJ1ZmZlckRhdGEoKQogICAgICAgICByZXR1
cm47CiAKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19USFJFQURFRCkgJiYgVVNFKE5JQ09TSUEpCisgICAgZG93bmNhc3Q8Tmlj
b3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBs
KCkpLmludmFsaWRhdGVDbGllbnQoKTsKKyNlbmRpZgorCiAgICAgR0xDb250ZXh0KiBwcmV2aW91
c0FjdGl2ZUNvbnRleHQgPSBHTENvbnRleHQ6OmN1cnJlbnQoKTsKICAgICBQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpLnNoYXJpbmdHTENvbnRleHQoKS0+bWFr
ZUNvbnRleHRDdXJyZW50KCk7CiAKQEAgLTEzOSwxMCArMTQ4LDEyIEBAIHZvaWQgSW1hZ2VCdWZm
ZXJEYXRhOjpjcmVhdGVDb21wb3NpdG9yQnVmZmVyKCkKICAgICBjYWlyb19zZXRfYW50aWFsaWFz
KG1fY29tcG9zaXRvckNyLmdldCgpLCBDQUlST19BTlRJQUxJQVNfTk9ORSk7CiB9CiAKKyNpZiAh
VVNFKE5JQ09TSUEpCiBSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gSW1h
Z2VCdWZmZXJEYXRhOjpwcm94eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1MYXll
clByb3h5LmNvcHlSZWYoKTsKIH0KKyNlbmRpZgogCiB2b2lkIEltYWdlQnVmZmVyRGF0YTo6c3dh
cEJ1ZmZlcnNJZk5lZWRlZCgpCiB7CkBAIC0xNTAsOCArMTYxLDE4IEBAIHZvaWQgSW1hZ2VCdWZm
ZXJEYXRhOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkKIAogICAgIGlmICghbV9jb21wb3NpdG9yVGV4
dHVyZSkgewogICAgICAgICBjcmVhdGVDb21wb3NpdG9yQnVmZmVyKCk7Ci0gICAgICAgIExvY2tI
b2xkZXIgaG9sZGVyKG1fcGxhdGZvcm1MYXllclByb3h5LT5sb2NrKCkpOwotICAgICAgICBtX3Bs
YXRmb3JtTGF5ZXJQcm94eS0+cHVzaE5leHRCdWZmZXIoc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4obV9jb21wb3NpdG9yVGV4dHVyZSwgbV9zaXplLCBU
ZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kLCBHTF9SR0JBKSk7CisKKyAgICAgICAgYXV0byBw
cm94eU9wZXJhdGlvbiA9CisgICAgICAgICAgICBbdGhpc10oVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eSYgcHJveHkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTG9ja0hv
bGRlciBob2xkZXIocHJveHkubG9jaygpKTsKKyAgICAgICAgICAgICAgICBwcm94eS5wdXNoTmV4
dEJ1ZmZlcihzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
PihtX2NvbXBvc2l0b3JUZXh0dXJlLCBtX3NpemUsIFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxl
bmQsIEdMX1JHQkEpKTsKKyAgICAgICAgICAgIH07CisjaWYgVVNFKE5JQ09TSUEpCisgICAgICAg
IHByb3h5T3BlcmF0aW9uKGRvd25jYXN0PE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBw
ZXJJbXBsPihtX25pY29zaWFMYXllci0+aW1wbCgpKS5wcm94eSgpKTsKKyNlbHNlCisgICAgICAg
IHByb3h5T3BlcmF0aW9uKCptX3BsYXRmb3JtTGF5ZXJQcm94eSk7CisjZW5kaWYKICAgICB9CiAK
ICAgICAvLyBJdCB3b3VsZCBiZSBncmVhdCBpZiB3ZSBjb3VsZCBqdXN0IHN3YXAgdGhlIGJ1ZmZl
cnMgaGVyZSBhcyB3ZSBkbyB3aXRoIHdlYmdsLCBidXQgdGhhdCBicmVha3MgdGhlIGNhc2VzCkBA
IC02NzEsOCArNjkyLDEzIEBAIHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpwYWludFRvVGV4dHVyZU1h
cHBlcihUZXh0dXJlTWFwcGVyJiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGCiBQbGF0Zm9ybUxheWVy
KiBJbWFnZUJ1ZmZlcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKEFDQ0VM
RVJBVEVEXzJEX0NBTlZBUykKKyNpZiBVU0UoTklDT1NJQSkKKyAgICBpZiAobV9kYXRhLm1fcmVu
ZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKKyAgICAgICAgcmV0dXJu
IG1fZGF0YS5tX25pY29zaWFMYXllci5nZXQoKTsKKyNlbHNlCiAgICAgaWYgKG1fZGF0YS5tX3Rl
eHR1cmUpCiAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PEltYWdlQnVmZmVyRGF0YSo+KCZtX2Rh
dGEpOworI2VuZGlmCiAjZW5kaWYKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckRhdGFD
YWlyby5oCmluZGV4IDEyMDUyOGZkNGEwZjcyODZjMTQ2Yzc2MzZlYTBiYmVjYzhlNDQyOWIuLmEz
ZGQ5NDkzOTYyNjhiZDEzM2FjYzAyYTU2NjgyZmYwZmI2YzJiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0YUNhaXJvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJE
YXRhQ2Fpcm8uaApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5UHJvdmlkZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEFDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJiYgVVNFKE5JQ09TSUEpCisjaW5jbHVkZSAiTmljb3NpYUNvbnRlbnRM
YXllclRleHR1cmVNYXBwZXJJbXBsLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBJbnRTaXplOwpAQCAtNDUsOCArNDksMTIgQEAgY2xhc3MgVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJQcm94eTsKIAogY2xhc3MgSW1hZ2VCdWZmZXJEYXRhCiAjaWYgRU5BQkxFKEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUykKKyNpZiBVU0UoTklDT1NJQSkKKyAgICA6IHB1YmxpYyBOaWNv
c2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Q2xpZW50CisjZWxzZQogICAgIDog
cHVibGljIFBsYXRmb3JtTGF5ZXIKICNlbmRpZgorI2VuZGlmCiB7CiBwdWJsaWM6CiAgICAgSW1h
Z2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmLCBSZW5kZXJpbmdNb2RlKTsKQEAgLTYyLDE0ICs3
MCwyMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVDYWlyb0dMU3VyZmFjZSgpOwogCiAjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2lmIFVTRShOSUNPU0lBKQorICAg
IHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRlZCgpIG92ZXJyaWRlOworI2Vsc2UKICAgICBSZWZQdHI8
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gcHJveHkoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIHN3YXBCdWZmZXJzSWZOZWVkZWQoKSBvdmVycmlkZTsKKyNlbmRpZgogICAgIHZv
aWQgY3JlYXRlQ29tcG9zaXRvckJ1ZmZlcigpOwogCi0gICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHk+IG1fcGxhdGZvcm1MYXllclByb3h5OwogICAgIFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+IG1fY29tcG9zaXRvclN1cmZhY2U7CiAgICAgdWludDMyX3QgbV9jb21wb3Np
dG9yVGV4dHVyZTsKICAgICBSZWZQdHI8Y2Fpcm9fdD4gbV9jb21wb3NpdG9yQ3I7CisKKyNpZiBV
U0UoTklDT1NJQSkKKyAgICBSZWZQdHI8Tmljb3NpYTo6Q29udGVudExheWVyPiBtX25pY29zaWFM
YXllcjsKKyNlbHNlCisgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+
IG1fcGxhdGZvcm1MYXllclByb3h5OworI2VuZGlmCiAjZWxzZQogICAgIHZpcnR1YWwgdm9pZCBw
YWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyJiwgY29uc3QgRmxvYXRSZWN0JiB0YXJn
ZXQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNw
cAppbmRleCBkNzNmMjQxOTk2ZTVhYjU0MjA4ZTk3OTliZDYyNmY3ZGRlMjEwZTM4Li42YWExNGQ3
Nzg0ZTQzNzI3OWViNzc5Y2Y3NmQ4OTVlY2IxNzZkNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0yODQsMTMgKzI4NCwy
MSBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlKE1lZGlhUGxheWVyKiBwbAogICAgICwgbV9uZXR3b3JrU3RhdGUoTWVkaWFQ
bGF5ZXI6OkVtcHR5KQogICAgICwgbV9kcmF3VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAm
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cmVwYWludCkKICNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCisjaWYgVVNFKE5JQ09TSUEpCisgICAgLCBtX25pY29zaWFMYXllcihOaWNv
c2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFw
cGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQorI2Vsc2UKICAgICAsIG1fcGxhdGZvcm1M
YXllclByb3h5KGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5KCkp
KQogI2VuZGlmCisjZW5kaWYKIHsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoKQogeworI2lmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkgJiYgVVNFKE5JQ09TSUEpCisgICAgZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVu
dExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBsKCkpLmludmFsaWRh
dGVDbGllbnQoKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBt
X3Byb3RlY3Rpb25Db25kaXRpb24ubm90aWZ5QWxsKCk7CiAjZW5kaWYKQEAgLTczNSw2ICs3NDMs
MjAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjphY2NlbGVyYXRlZFJl
bmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiB9CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCitQ
bGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwbGF0Zm9ybUxh
eWVyKCkgY29uc3QKK3sKKyNpZiBVU0UoTklDT1NJQSkKKyAgICByZXR1cm4gbV9uaWNvc2lhTGF5
ZXIucHRyKCk7CisjZWxzZQorICAgIHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UqPih0aGlzKTsKKyNlbmRpZgorfQorCisjaWYgVVNFKE5JQ09TSUEpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnN3YXBCdWZmZXJzSWZOZWVkZWQo
KQoreworfQorI2Vsc2UKIFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5PiBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwcm94eSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fcGxhdGZvcm1MYXllclByb3h5LmNvcHlSZWYoKTsKQEAgLTc0Myw2ICs3NjUsNyBAQCBS
ZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6cHJveHkoKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkKIHsKIH0KKyNlbmRpZgogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCkKIHsKQEAg
LTc1MCwzMiArNzczLDQyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6
cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogICAgIGlmICghR1NUX0lTX1NBTVBMRShtX3NhbXBs
ZS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fcGxh
dGZvcm1MYXllclByb3h5LT5sb2NrKCkpOworICAgIGF1dG8gcHJveHlPcGVyYXRpb24gPQorICAg
ICAgICBbJl0oVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCisgICAgICAg
IHsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7CiAKLSAgICBp
ZiAoIW1fcGxhdGZvcm1MYXllclByb3h5LT5pc0FjdGl2ZSgpKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICBpZiAoIXByb3h5LmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEdzdFZpZGVvRnJhbWVIb2xkZXI+IGZyYW1lSG9sZGVy
ID0gc3RkOjptYWtlX3VuaXF1ZTxHc3RWaWRlb0ZyYW1lSG9sZGVyPihtX3NhbXBsZS5nZXQoKSwg
dGV4TWFwRmxhZ0Zyb21PcmllbnRhdGlvbihtX3ZpZGVvU291cmNlT3JpZW50YXRpb24pLCAhbV91
c2luZ0ZhbGxiYWNrVmlkZW9TaW5rKTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHc3RW
aWRlb0ZyYW1lSG9sZGVyPiBmcmFtZUhvbGRlciA9IHN0ZDo6bWFrZV91bmlxdWU8R3N0VmlkZW9G
cmFtZUhvbGRlcj4obV9zYW1wbGUuZ2V0KCksIHRleE1hcEZsYWdGcm9tT3JpZW50YXRpb24obV92
aWRlb1NvdXJjZU9yaWVudGF0aW9uKSwgIW1fdXNpbmdGYWxsYmFja1ZpZGVvU2luayk7CiAKICNp
ZiBVU0UoR1NUUkVBTUVSX0dMKQotICAgIEdMdWludCB0ZXh0dXJlSUQgPSBmcmFtZUhvbGRlci0+
dGV4dHVyZUlEKCk7Ci0gICAgaWYgKHRleHR1cmVJRCkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IGxheWVyQnVmZmVyID0gc3RkOjpt
YWtlX3VuaXF1ZTxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4odGV4dHVyZUlELCBm
cmFtZUhvbGRlci0+c2l6ZSgpLCBmcmFtZUhvbGRlci0+ZmxhZ3MoKSwgR3JhcGhpY3NDb250ZXh0
M0Q6OlJHQkEpOwotICAgICAgICBsYXllckJ1ZmZlci0+c2V0VW5tYW5hZ2VkQnVmZmVyRGF0YUhv
bGRlcihXVEZNb3ZlKGZyYW1lSG9sZGVyKSk7Ci0gICAgICAgIG1fcGxhdGZvcm1MYXllclByb3h5
LT5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGxheWVyQnVmZmVyKSk7Ci0gICAgfSBlbHNlCisgICAg
ICAgICAgICBHTHVpbnQgdGV4dHVyZUlEID0gZnJhbWVIb2xkZXItPnRleHR1cmVJRCgpOworICAg
ICAgICAgICAgaWYgKHRleHR1cmVJRCkgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbGF5ZXJCdWZmZXIgPSBzdGQ6Om1h
a2VfdW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPih0ZXh0dXJlSUQsIGZy
YW1lSG9sZGVyLT5zaXplKCksIGZyYW1lSG9sZGVyLT5mbGFncygpLCBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQSk7CisgICAgICAgICAgICAgICAgbGF5ZXJCdWZmZXItPnNldFVubWFuYWdlZEJ1ZmZl
ckRhdGFIb2xkZXIoV1RGTW92ZShmcmFtZUhvbGRlcikpOworICAgICAgICAgICAgICAgIHByb3h5
LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJCdWZmZXIpKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorI2VuZGlmCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBidWZmZXIgPSBwcm94eS5nZXRBdmFp
bGFibGVCdWZmZXIoZnJhbWVIb2xkZXItPnNpemUoKSwgR0xfRE9OVF9DQVJFKTsKKyAgICAgICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoIWJ1ZmZlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0
byB0ZXh0dXJlID0gQml0bWFwVGV4dHVyZUdMOjpjcmVhdGUoVGV4dHVyZU1hcHBlckNvbnRleHRB
dHRyaWJ1dGVzOjpnZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIHRleHR1cmUtPnJlc2V0KGZy
YW1lSG9sZGVyLT5zaXplKCksIGZyYW1lSG9sZGVyLT5oYXNBbHBoYUNoYW5uZWwoKSA/IEJpdG1h
cFRleHR1cmU6OlN1cHBvcnRzQWxwaGEgOiBCaXRtYXBUZXh0dXJlOjpOb0ZsYWcpOworICAgICAg
ICAgICAgICAgICAgICBidWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyQnVmZmVyPihXVEZNb3ZlKHRleHR1cmUpKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgZnJhbWVIb2xkZXItPnVwZGF0ZVRleHR1cmUoYnVmZmVyLT50ZXh0dXJl
R0woKSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLT5zZXRFeHRyYUZsYWdzKHRleE1hcEZsYWdG
cm9tT3JpZW50YXRpb24obV92aWRlb1NvdXJjZU9yaWVudGF0aW9uKSB8IChmcmFtZUhvbGRlci0+
aGFzQWxwaGFDaGFubmVsKCkgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMCkpOwor
ICAgICAgICAgICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKFdURk1vdmUoYnVmZmVyKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisKKyNpZiBVU0UoTklDT1NJQSkKKyAgICBwcm94eU9w
ZXJhdGlvbihkb3duY2FzdDxOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4o
bV9uaWNvc2lhTGF5ZXItPmltcGwoKSkucHJveHkoKSk7CisjZWxzZQorICAgIHByb3h5T3BlcmF0
aW9uKCptX3BsYXRmb3JtTGF5ZXJQcm94eSk7CiAjZW5kaWYKLSAgICB7Ci0gICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gYnVmZmVyID0gbV9w
bGF0Zm9ybUxheWVyUHJveHktPmdldEF2YWlsYWJsZUJ1ZmZlcihmcmFtZUhvbGRlci0+c2l6ZSgp
LCBHTF9ET05UX0NBUkUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIWJ1ZmZlcikpIHsKLSAgICAg
ICAgICAgIGF1dG8gdGV4dHVyZSA9IEJpdG1hcFRleHR1cmVHTDo6Y3JlYXRlKFRleHR1cmVNYXBw
ZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0KCkpOwotICAgICAgICAgICAgdGV4dHVyZS0+cmVzZXQo
ZnJhbWVIb2xkZXItPnNpemUoKSwgZnJhbWVIb2xkZXItPmhhc0FscGhhQ2hhbm5lbCgpID8gQml0
bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IEJpdG1hcFRleHR1cmU6Ok5vRmxhZyk7Ci0gICAg
ICAgICAgICBidWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyQnVmZmVyPihXVEZNb3ZlKHRleHR1cmUpKTsKLSAgICAgICAgfQotICAgICAgICBmcmFtZUhv
bGRlci0+dXBkYXRlVGV4dHVyZShidWZmZXItPnRleHR1cmVHTCgpKTsKLSAgICAgICAgYnVmZmVy
LT5zZXRFeHRyYUZsYWdzKHRleE1hcEZsYWdGcm9tT3JpZW50YXRpb24obV92aWRlb1NvdXJjZU9y
aWVudGF0aW9uKSB8IChmcmFtZUhvbGRlci0+aGFzQWxwaGFDaGFubmVsKCkgPyBUZXh0dXJlTWFw
cGVyR0w6OlNob3VsZEJsZW5kIDogMCkpOwotICAgICAgICBtX3BsYXRmb3JtTGF5ZXJQcm94eS0+
cHVzaE5leHRCdWZmZXIoV1RGTW92ZShidWZmZXIpKTsKLSAgICB9CiB9CiAjZW5kaWYgLy8gVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQogCkBAIC04MTgsOCArODUxLDE4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxlKiBzYW1wbGUp
CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgIGlmIChtX3VzaW5nRmFsbGJhY2tWaWRl
b1NpbmspIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fZHJhd011dGV4KTsKLSAgICAgICAg
aWYgKCFtX3BsYXRmb3JtTGF5ZXJQcm94eS0+c2NoZWR1bGVVcGRhdGVPbkNvbXBvc2l0b3JUaHJl
YWQoW3RoaXNdIHsgdGhpcy0+cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKTsgfSkpCisgICAgICAg
IGF1dG8gcHJveHlPcGVyYXRpb24gPQorICAgICAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHJldHVybiBwcm94eS5zY2hlZHVsZVVwZGF0ZU9uQ29tcG9zaXRvclRocmVhZChbdGhpc10geyB0
aGlzLT5wdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpOyB9KTsKKyAgICAgICAgICAgIH07CisjaWYg
VVNFKE5JQ09TSUEpCisgICAgICAgIGlmICghcHJveHlPcGVyYXRpb24oZG93bmNhc3Q8Tmljb3Np
YTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBsKCkp
LnByb3h5KCkpKQogICAgICAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICAgICAgaWYgKCFwcm94
eU9wZXJhdGlvbigqbV9wbGF0Zm9ybUxheWVyUHJveHkpKQorICAgICAgICAgICAgcmV0dXJuOwor
I2VuZGlmCiAgICAgICAgIG1fZHJhd1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogICAgICAgICBt
X2RyYXdDb25kaXRpb24ud2FpdChtX2RyYXdNdXRleCk7CiAgICAgfSBlbHNlCkBAIC04ODEsMTIg
KzkyNCwyMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmZsdXNoQ3Vy
cmVudEJ1ZmZlcigpCiAgICAgbV9zYW1wbGUgPSBhZG9wdEdSZWYoZ3N0X3NhbXBsZV9uZXcobnVs
bHB0ciwgZ3N0X3NhbXBsZV9nZXRfY2FwcyhtX3NhbXBsZS5nZXQoKSksCiAgICAgICAgIGdzdF9z
YW1wbGVfZ2V0X3NlZ21lbnQobV9zYW1wbGUuZ2V0KCkpLCBpbmZvID8gZ3N0X3N0cnVjdHVyZV9j
b3B5KGluZm8pIDogbnVsbHB0cikpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3BsYXRmb3JtTGF5ZXJQcm94eS0+bG9jaygpKTsKKyAgICBhdXRvIHByb3h5T3BlcmF0aW9u
ID0KKyAgICAgICAgW10oVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHByb3h5LmxvY2soKSk7CiAK
LSAgICAgICAgaWYgKG1fcGxhdGZvcm1MYXllclByb3h5LT5pc0FjdGl2ZSgpKQotICAgICAgICAg
ICAgbV9wbGF0Zm9ybUxheWVyUHJveHktPmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5n
VGV4dHVyZSgpOwotICAgIH0KKyAgICAgICAgICAgIGlmIChwcm94eS5pc0FjdGl2ZSgpKQorICAg
ICAgICAgICAgICAgIHByb3h5LmRyb3BDdXJyZW50QnVmZmVyV2hpbGVQcmVzZXJ2aW5nVGV4dHVy
ZSgpOworICAgICAgICB9OworCisjaWYgVVNFKE5JQ09TSUEpCisgICAgcHJveHlPcGVyYXRpb24o
ZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fbmljb3Np
YUxheWVyLT5pbXBsKCkpLnByb3h5KCkpOworI2Vsc2UKKyAgICBwcm94eU9wZXJhdGlvbigqbV9w
bGF0Zm9ybUxheWVyUHJveHkpOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5kZXggMzBjYTAyZTI5ZDdh
MzI2YzZkMmI3MWEzMzhiYjE5NGZhNDNiNWU3NS4uYTRmMDI0Y2QxM2FmMGM3ZjEwMzgwOWEwZDYz
YjE1NWUxNmEzMjYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5oCkBAIC0zNyw4ICszNywxMiBAQAogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaWYgVVNFKE5JQ09TSUEpCisjaW5j
bHVkZSAiTmljb3NpYUNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsLmgiCisjZWxzZQogI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHlQcm92aWRlci5oIgogI2VuZGlm
CisjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgX0dzdFN0cmVhbVZvbHVtZSBHc3RTdHJlYW1Wb2x1
bWU7CiB0eXBlZGVmIHN0cnVjdCBfR3N0VmlkZW9JbmZvIEdzdFZpZGVvSW5mbzsKQEAgLTYzLDgg
KzY3LDEyIEBAIHZvaWQgcmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpOwogCiBjbGFz
cyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U+CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorI2lmIFVTRShOSUNPU0lB
KQorICAgICwgcHVibGljIE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpD
bGllbnQKKyNlbHNlCiAgICAgLCBwdWJsaWMgUGxhdGZvcm1MYXllcgogI2VuZGlmCisjZW5kaWYK
IHsKIAogcHVibGljOgpAQCAtMTI2LDcgKzEzNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFjY2Vs
ZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAKICNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCi0gICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZSo+KHRoaXMpOyB9CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92
ZXJyaWRlOwogI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKICAgICAvLyBGSVhNRTogQWNjZWxlcmF0
ZWQgcmVuZGVyaW5nIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCBmb3IgV2luQ2Fpcm8geWV0Lgog
ICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CkBAIC0xNzUsOSArMTgzLDEzIEBAIHByb3RlY3RlZDoKICNlbmRpZgog
CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorICAgIHZvaWQgcHVzaFRleHR1cmVUb0NvbXBv
c2l0b3IoKTsKKyNpZiBVU0UoTklDT1NJQSkKKyAgICB2b2lkIHN3YXBCdWZmZXJzSWZOZWVkZWQo
KSBvdmVycmlkZTsKKyNlbHNlCiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
UHJveHk+IHByb3h5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVl
ZGVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpOworI2Vu
ZGlmCiAjZW5kaWYKIAogICAgIEdzdEVsZW1lbnQqIHZpZGVvU2luaygpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9TaW5rLmdldCgpOyB9CkBAIC0yMzgsOCArMjUwLDEyIEBAIHByb3RlY3RlZDoKICAg
ICBSdW5Mb29wOjpUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlPiBtX2RyYXdU
aW1lcjsKIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoTklDT1NJQSkKKyAg
ICBSZWY8Tmljb3NpYTo6Q29udGVudExheWVyPiBtX25pY29zaWFMYXllcjsKKyNlbHNlCiAgICAg
UmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+IG1fcGxhdGZvcm1MYXllclBy
b3h5OwogI2VuZGlmCisjZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAgICAgR1JlZlB0
cjxHc3RHTENvbnRleHQ+IG1fZ2xDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0Mz
RExheWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTMzYzBkOWZhYzU4MGIxNjU3OTdiNDM3MzQyZWI5NDI5
ZmZlZWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5jcHAKQEAgLTAsMCArMSwxMDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENv
cHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkCisgKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5pY29zaWFHQzNETGF5ZXIuaCIK
KworI2lmIFVTRShOSUNPU0lBKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgi
CisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuaCIKKyNpbmNsdWRl
ICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5LmgiCisjZW5kaWYKKworI2luY2x1ZGUg
IkdMQ29udGV4dC5oIgorCituYW1lc3BhY2UgTmljb3NpYSB7CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitHQzNETGF5ZXI6OkdDM0RMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4
dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorICAgIDogbV9j
b250ZXh0KGNvbnRleHQpCisgICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lhOjpDb250ZW50TGF5
ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRl
RmFjdG9yeSgqdGhpcykpKQoreworICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW46CisgICAgICAgIG1fZ2xDb250ZXh0
ID0gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KCZQbGF0Zm9ybURpc3BsYXk6OnNo
YXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3c6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0dDM0RMYXll
cjo6fkdDM0RMYXllcigpCit7CisgICAgZG93bmNhc3Q8Q29udGVudExheWVyVGV4dHVyZU1hcHBl
ckltcGw+KG1fY29udGVudExheWVyLT5pbXBsKCkpLmludmFsaWRhdGVDbGllbnQoKTsKK30KKwor
Ym9vbCBHQzNETGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgQVNTRVJUKG1fZ2xD
b250ZXh0KTsKKyAgICByZXR1cm4gbV9nbENvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwor
fQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RMYXllcjo6cGxhdGZvcm1Db250ZXh0
KCkKK3sKKyAgICBBU1NFUlQobV9nbENvbnRleHQpOworICAgIHJldHVybiBtX2dsQ29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCk7Cit9CisKK3ZvaWQgR0MzRExheWVyOjpzd2FwQnVmZmVyc0lmTmVl
ZGVkKCkKK3sKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgaWYg
KG1fY29udGV4dC5sYXllckNvbXBvc2l0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9j
b250ZXh0LnByZXBhcmVUZXh0dXJlKCk7CisgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZShtX2NvbnRl
eHQubV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC5tX2N1cnJlbnRIZWlnaHQpOworICAgIFRleHR1
cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEZsaXBUZXh0
dXJlIHwgKG1fY29udGV4dC5tX2F0dHJzLmFscGhhID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRC
bGVuZCA6IDApOworCisgICAgeworICAgICAgICBhdXRvJiBwcm94eSA9IGRvd25jYXN0PE5pY29z
aWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsPihtX2NvbnRlbnRMYXllci0+aW1wbCgp
KS5wcm94eSgpOworCisgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKHByb3h5LmxvY2soKSk7Cisg
ICAgICAgIHByb3h5LnB1c2hOZXh0QnVmZmVyKHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+KG1fY29udGV4dC5tX2NvbXBvc2l0b3JUZXh0dXJlLCB0ZXh0
dXJlU2l6ZSwgZmxhZ3MsIG1fY29udGV4dC5tX2ludGVybmFsQ29sb3JGb3JtYXQpKTsKKyAgICB9
CisKKyAgICBtX2NvbnRleHQubWFya0xheWVyQ29tcG9zaXRlZCgpOworI2VuZGlmCit9CisKK30g
Ly8gbmFtZXNwYWNlIE5pY29zaWEKKworI2VuZGlmIC8vIFVTRShOSUNPU0lBKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzJkYjlkZDM3YTZmMGQ5ZmE4ZDRkMTg4ZWIxOGY4YWUxNDc1YTAwYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05p
Y29zaWFHQzNETGF5ZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZAorICog
ICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBIT0xERVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgVVNFKE5JQ09TSUEpICYmIFVTRShURVhUVVJFX01BUFBFUikKKworI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiTmljb3NpYUNvbnRlbnRMYXllclRleHR1cmVNYXBw
ZXJJbXBsLmgiCisjaW5jbHVkZSA8bWVtb3J5PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBHTENvbnRleHQ7Cit9CisKK25hbWVzcGFjZSBOaWNvc2lhIHsKKworY2xhc3MgR0MzRExheWVy
IDogcHVibGljIENvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQgeworcHVibGlj
OgorICAgIEdDM0RMYXllcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCYsIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7CisgICAgdmlydHVhbCB+R0MzRExheWVyKCk7
CisKKyAgICBDb250ZW50TGF5ZXImIGNvbnRlbnRMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGVudExheWVyOyB9CisgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpOworCisgICAgdm9pZCBzd2FwQnVm
ZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0QmIG1fY29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R0xD
b250ZXh0PiBtX2dsQ29udGV4dDsKKworICAgIFJlZjxDb250ZW50TGF5ZXI+IG1fY29udGVudExh
eWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQorCisjZW5kaWYgLy8gVVNFKE5JQ09T
SUEpICYmIFVTRShURVhUVVJFX01BUFBFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dDNEVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggYTAyNmU4Y2JiYWFiNmFmNjRkNGZkMGM1Zjc4OTE5
OTgyNjhlOWIwMi4uYjdjYzI2YTEwMGY5ZWNkMmJhOWNmNjc0ZmFmYzhkZmQxOTNmMDFjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
Q29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKQEAgLTUz
LDYgKzUzLDggQEAKICNpbmNsdWRlICJFeHRlbnNpb25zM0RPcGVuR0wuaCIKICNlbmRpZgogCisj
aW5jbHVkZSAiTmljb3NpYUdDM0RMYXllci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
YXRpYyBjb25zdCBzaXplX3QgTWF4QWN0aXZlQ29udGV4dHMgPSAxNjsKQEAgLTEwNSw3ICsxMDcs
MTEgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICAgICA6IG1fYXR0cnMoYXR0cmlidXRlcykK
IHsKICAgICBBU1NFUlRfVU5VU0VEKHNoYXJlZENvbnRleHQsICFzaGFyZWRDb250ZXh0KTsKKyNp
ZiBVU0UoTklDT1NJQSkKKyAgICBtX25pY29zaWFMYXllciA9IHN0ZDo6bWFrZV91bmlxdWU8Tmlj
b3NpYTo6R0MzRExheWVyPigqdGhpcywgcmVuZGVyU3R5bGUpOworI2Vsc2UKICAgICBtX3RleG1h
cExheWVyID0gc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+
KCp0aGlzLCByZW5kZXJTdHlsZSk7CisjZW5kaWYKIAogICAgIG1ha2VDb250ZXh0Q3VycmVudCgp
OwogCkBAIC0yNzAsNyArMjc2LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9y
TWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VDYWxsCiAKIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgpCiB7CisjaWYgVVNFKE5JQ09T
SUEpCisgICAgcmV0dXJuIG1fbmljb3NpYUxheWVyLT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKKyNl
bHNlCiAgICAgcmV0dXJuIG1fdGV4bWFwTGF5ZXItPm1ha2VDb250ZXh0Q3VycmVudCgpOworI2Vu
ZGlmCiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKCkKQEAgLTI3
OSw3ICsyODksMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQog
CiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEKCkKIHsKKyNpZiBVU0UoTklDT1NJQSkKKyAgICByZXR1cm4gbV9uaWNv
c2lhTGF5ZXItPnBsYXRmb3JtQ29udGV4dCgpOworI2Vsc2UKICAgICByZXR1cm4gbV90ZXhtYXBM
YXllci0+cGxhdGZvcm1Db250ZXh0KCk7CisjZW5kaWYKIH0KIAogUGxhdGZvcm0zRE9iamVjdCBH
cmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlKCkgY29uc3QKQEAgLTI5OCw3ICszMTIs
MTEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiAK
IFBsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QK
IHsKKyNpZiBVU0UoTklDT1NJQSkKKyAgICByZXR1cm4gJm1fbmljb3NpYUxheWVyLT5jb250ZW50
TGF5ZXIoKTsKKyNlbHNlCiAgICAgcmV0dXJuIG1fdGV4bWFwTGF5ZXIuZ2V0KCk7CisjZW5kaWYK
IH0KIAogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNE
UGxhdGZvcm1MYXllci5jcHAKaW5kZXggNmM1NjhlNDU0NGMzZDc0NzY4MzJkMmM1YjI0ZThhZTRi
YzAxMWE4Yi4uNDVhMTgxMTMzYzRmMThhODY0NGQyZjBjYjEzY2E1YWY3YTdkMWEyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHQzNEUGxhdGZvcm1MYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHAKQEAgLTIwLDcg
KzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0Mz
RFBsYXRmb3JtTGF5ZXIuaCIKIAotI2lmIEVOQUJMRShHUkFQSElDU19DT05URVhUXzNEKSAmJiBV
U0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfM0QpICYmIFVT
RShURVhUVVJFX01BUFBFUikgJiYgIVVTRShOSUNPU0lBKQogCiAjaW5jbHVkZSAiQml0bWFwVGV4
dHVyZUdMLmgiCiAjaW5jbHVkZSAiR0xDb250ZXh0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdDM0RQbGF0Zm9ybUxheWVyLmgKaW5kZXggYmFiNTAzNmM4NTg5NTUwZWRhZGEzN2M1Y2Ex
OTJjNjIwZDcwOTZmMi4uZTQ5MmEyNTEzZDY0OGMyNjA1NTQxOGM1YTBlYzlkOWY1NTRlMmEwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIuaApAQCAtMTks
NyArMTksNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShHUkFQSElDU19DT05URVhU
XzNEKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRf
M0QpICYmIFVTRShURVhUVVJFX01BUFBFUikgJiYgIVVTRShOSUNPU0lBKQogCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IGFiYWE3MWM0NmViMTQzNTAyYjMwODVjN2Q2ODMwY2YxOGY4ZTQzNzUuLmJlMjE2ODBmYmQy
YjE5MTkzOWRhZTVhMGNhNWYyOWY0YjY5ZDgwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00MzIsMTAgKzQzMiwx
MyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3Bs
YXkoKQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9QbGF0Zm9y
bUxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3Nl
KQogewogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpZiBVU0UoTklD
T1NJQSkKKyNlbHNlCiAgICAgaWYgKG1fcGxhdGZvcm1MYXllciAhPSBwbGF0Zm9ybUxheWVyKQog
ICAgICAgICBtX3Nob3VsZFN5bmNQbGF0Zm9ybUxheWVyID0gdHJ1ZTsKIAogICAgIG1fcGxhdGZv
cm1MYXllciA9IHBsYXRmb3JtTGF5ZXI7CisjZW5kaWYKICAgICBub3RpZnlGbHVzaFJlcXVpcmVk
KCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwbGF0Zm9ybUxheWVyKTsKQEAgLTc0MiwyOCAr
NzQ1LDM0IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQW5pbWF0aW9ucygp
CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jUGxhdGZvcm1MYXllcigpCiB7
Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQogICAgIGlmICghbV9zaG91
bGRTeW5jUGxhdGZvcm1MYXllcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zaG91bGRTeW5j
UGxhdGZvcm1MYXllciA9IGZhbHNlOworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJF
QURFRCkKKyNpZiBVU0UoTklDT1NJQSkKKyNlbHNlCiAgICAgbV9sYXllclN0YXRlLnBsYXRmb3Jt
TGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICBpZiAobV9wbGF0Zm9ybUxheWVyKQogICAgICAgICBt
X2xheWVyU3RhdGUucGxhdGZvcm1MYXllclByb3h5ID0gbV9wbGF0Zm9ybUxheWVyLT5wcm94eSgp
OwogI2VuZGlmCisjZW5kaWYKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVw
ZGF0ZVBsYXRmb3JtTGF5ZXIoKQogewotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJF
QURFRCkKICAgICBpZiAoIW1fc2hvdWxkVXBkYXRlUGxhdGZvcm1MYXllcikKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9zaG91bGRVcGRhdGVQbGF0Zm9ybUxheWVyID0gZmFsc2U7CisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2lmIFVTRShOSUNPU0lBKQorI2Vsc2UK
ICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllclVwZGF0ZWQgPSB0cnVlOwogICAgIGlmICht
X3BsYXRmb3JtTGF5ZXIpCiAgICAgICAgIG1fcGxhdGZvcm1MYXllci0+c3dhcEJ1ZmZlcnNJZk5l
ZWRlZCgpOwogI2VuZGlmCisjZW5kaWYKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346761</attachid>
            <date>2018-08-08 02:30:06 -0700</date>
            <delta_ts>2018-08-08 02:30:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188405-20180808113005.patch</filename>
            <type>text/plain</type>
            <size>34990</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNmOTYyZjAzZTRjOWUw
MTY2YmYzZDM5ZDExZDZmNmY0MzY4ZDU4NS4uNTQ4MjczOTI2NjM5YTlhNTE2ZDhlZTYyYmQ1OWM3
MjVlNzc2YjFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDE4LTA4LTA4ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbTmljb3NpYV0gQWRk
IHRoZSBOaWNvc2lhLXNwZWNpZmljIFBsYXRmb3JtTGF5ZXIgdHlwZSBhbGlhcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWRkIGEgTmljb3Np
YS1zcGVjaWZpYyBQbGF0Zm9ybUxheWVyIHR5cGUgYWxpYXMgdGhhdCBwb2ludHMgdG8gdGhlCisg
ICAgICAgIE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIgdHlwZS4gVGhpcyBpcyBndWFyZGVkIGJ5IHRo
ZSBVU0UoTklDT1NJQSkgbWFjcm8sCisgICAgICAgIHdoaWNoIGd1YXJkcyBhZGRpdGlvbmFsIGNv
ZGUgaW4gdGhpcyBwYXRjaCBidXQgd2lsbCBiZSBhZGRlZCB0byBvdGhlcgorICAgICAgICBOaWNv
c2lhLXNwZWNpZmljIGNsYXNzZXMgbGF0ZXIuCisKKyAgICAgICAgVG8ga2VlcCB0aGluZ3MgYnVp
bGRhYmxlIHdoZW4gVVNFKE5JQ09TSUEpIGlzIGRlZmluZWQsIGFkZGl0aW9uYWwKKyAgICAgICAg
Y2hhbmdlcyBhcmUgbWFkZSB0byBjbGFzc2VzIHRoYXQgb3BlcmF0ZSB3aXRoIHBsYXRmb3JtIGxh
eWVycy4KKyAgICAgICAgQ2Fpcm8tc3BlY2lmaWMgSW1hZ2VCdWZmZXIgaW1wbGVtZW50YXRpb24g
YW5kIHRoZSByZWxhdGVkCisgICAgICAgIEltYWdlQnVmZmVyRGF0YSBjbGFzcyBhcmUgbW9kaWZp
ZWQgdG8gd29yayB3aXRoIGEgTmljb3NpYTo6Q29udGVudExheWVyCisgICAgICAgIG9iamVjdC4g
VGhpcyBvYmplY3QgaXMgdXNpbmcgdGhlIFRleHR1cmVNYXBwZXItc3BlY2lmaWMgSW1wbCBjbGFz
cyB3aGljaAorICAgICAgICBpbnRlcm5hbGx5IGtlZXBzIGEgVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eSBvYmplY3QuIFRoaXMgd2F5CisgICAgICAgIHdlIGNhbiByZXVzZSBleGlzdGlu
ZyBjb2RlIHRoYXQgYWxzbyB3b3JrcyB3aXRoIGFuIG9iamVjdCBvZiB0aGlzIHR5cGUsCisgICAg
ICAgIG9ubHkgZGlmZmVyZW5jZSBpcyB3aGVyZSB0aGUgcHJveHkgb2JqZWN0IGlzIGtlcHQuIE1h
aW4gZGlmZmVyZW5jZSBpcyBpbgorICAgICAgICB0aGUgSW1hZ2VCdWZmZXI6OnBsYXRmb3JtTGF5
ZXIoKSBtZXRob2QsIHdoZXJlIHBvaW50ZXIgdG8gdGhlCisgICAgICAgIE5pY29zaWE6OkNvbnRl
bnRMYXllciBvYmplY3QgaXMgcmV0dXJuZWQgd2hlbiBVU0UoTklDT1NJQSkgaXMgZW5hYmxlZC4K
KworICAgICAgICBTaW1pbGFyIGFwcHJvYWNoIGlzIHRha2VkIGZvciB0aGUgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZSBjbGFzcy4KKyAgICAgICAgV2hlbiBVU0UoTklDT1NJQSkgaXMg
ZW5hYmxlZCwgYSBOaWNvc2lhOjpDb250ZW50TGF5ZXIgb2JqZWN0IGlzCisgICAgICAgIGNvbnN0
cnVjdGVkLCBhbmQgd2l0aCB0aGUgVGV4dHVyZU1hcHBlci1zcGVjaWZpYyBJbXBsIHdlIGFnYWlu
IG9wZXJhdGUKKyAgICAgICAgb24gdGhlIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkg
b2JqZWN0IGxpa2UgYmVmb3JlLCBzbyBhbGwgb2YKKyAgICAgICAgdGhlIHByb3h5LXNwZWNpZmlj
IGNvZGUgaXMgYnVuZGxlZCBpbnRvIGhlbHBlciBsYW1iZGFzIHRoYXQgb3BlcmF0ZSBvbgorICAg
ICAgICB0aGUgZ2l2ZW4gcHJveHkgb2JqZWN0LiBJbiB0aGUgcGxhdGZvcm1MYXllcigpIG1ldGhv
ZCwgd2UgYWdhaW4gcmV0dXJuCisgICAgICAgIHBvaW50ZXIgdG8gdGhlIE5pY29zaWE6OkNvbnRl
bnRMYXllciBvYmplY3Qgd2hlbiBVU0UoTklDT1NJQSkgaXMgb24uCisKKyAgICAgICAgRm9yIHRo
ZSBHcmFwaGljc0NvbnRleHQzRCBpbnRlZ3JhdGlvbiwgd2UgaGF2ZSB0byBwcm92aWRlIGEgc2Vw
YXJhdGUKKyAgICAgICAgY2xhc3MgdGhhdCByZXBsaWNhdGVzIG1vc3Qgb2YgdGhlIGZ1bmN0aW9u
YWxpdHkgY3VycmVudGx5IHByZXNlbnQgaW4gdGhlCisgICAgICAgIFRleHR1cmVNYXBwZXJHQzNE
UGxhdGZvcm1MYXllciBjbGFzcy4gTWFpbiBkaWZmZXJlbmNlIGlzIHRoYXQgaW4gdGhlIG5ldwor
ICAgICAgICBOaWNvc2lhOjpHQzNETGF5ZXIgY2xhc3MsIGEgTmljb3NpYTo6Q29udGVudExheWVy
IG9iamVjdCBpcyBzcGF3bmVkIHdpdGgKKyAgICAgICAgdGhlIFRleHR1cmVNYXBwZXItc3BlY2lm
aWMgSW1wbC4gVGhlIHByb3h5IG9iamVjdCBoZWxkIGJ5IHRoYXQgSW1wbCBpcworICAgICAgICB0
aGVuIGFnYWluIHVzZWQgdG8gcHVzaCBuZXcgYnVmZmVycyBpbnRvIHRoZSByZW5kZXJpbmcgcGlw
ZWxpbmUuIEFzCisgICAgICAgIGJlZm9yZSwgcG9pbnRlciB0byB0aGUgTmljb3NpYTo6Q29udGVu
dExheWVyIGlzIHJldHVybmVkIGluIHRoZQorICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6cGxh
dGZvcm1MYXllcigpIG9iamVjdC4KKworICAgICAgICBJbnRlZ3JhdGlvbiBvZiB0aGUgR3JhcGhp
Y3NDb250ZXh0M0QgY2xhc3MgaW50byBOaWNvc2lhIGxheWVyaW5nIG5lZWRzCisgICAgICAgIGZ1
cnRoZXIgd29yayBpbiB0aGUgZnV0dXJlLiBUYXJnZXQgc2hvdWxkIGJlIHByb3ZpZGluZyBhIGNs
YXNzIHRoYXQgaXMKKyAgICAgICAgbm90IHNwZWNpZmljIHRvIHRoZSBUZXh0dXJlTWFwcGVyIGxh
eWVyLiBBZGRpdGlvbmFsbHksIHdoZW4gVVNFKE5JQ09TSUEpCisgICAgICAgIGlzIGVuYWJsZWQs
IHdlIHJlbW92ZSB0aGUgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyIGNsYXNzIGZyb20K
KyAgICAgICAgY29tcGlsYXRpb24gc2luY2UgaXQgZGVwZW5kcyBvbiBhIFBsYXRmb3JtTGF5ZXIg
dHlwZSBhbGlhcyB0byB0aGUKKyAgICAgICAgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94
eVByb3ZpZGVyIGNsYXNzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBkb2Vzbid0IGFkZHJl
c3MgdGhlIGFidW5kYW5jZSBvZiBtYWNyb3MgdGhhdCB0aGlzIGNvZGUKKyAgICAgICAgbm93IHVz
ZXMuIFdoaWxlIFVTRShOSUNPU0lBKSBpcyBpbnRyb2R1Y2VkLCB3ZSBoYXZlIHRvIHdvcmsgYXJv
dW5kCisgICAgICAgIGZvdXIgYWRkaXRpb25hbCBtYWNyb3MgaW4gdGhpcyBjb2RlOiBVU0UoVEVY
VFVSRV9NQVBQRVIpLAorICAgICAgICBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpLCBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpIGFuZAorICAgICAgICBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhS
RUFERUQpLiBJbiBhIGxvdCBvZiBwbGFjZXMgdGhlc2UgYXJlIHVzZWQKKyAgICAgICAgaW50ZXJj
aGFuZ2VhYmx5LCBidXQgdGhleSBzaG91bGQgYmUgbWVyZ2VkIGFuZCBzaW1wbGlmaWVkIGluIHVz
ZS4gSSBob3BlCisgICAgICAgIHRvIGFwcHJvYWNoIHRoaXMgb25jZSB0aGUgVVNFKE5JQ09TSUEp
IGZ1bmN0aW9uYWxpdHkgbGFuZHMgYW5kIGlzIHR1cm5lZAorICAgICAgICBvbiBmb3IgcG9ydHMg
dGhhdCBjdXJyZW50bHkgYnVpbGQgd2l0aCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpLgorCisg
ICAgICAgICogcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0YTo6
SW1hZ2VCdWZmZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0YTo6fklt
YWdlQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnN3YXBC
dWZmZXJzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnBsYXRmb3Jt
TGF5ZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyRGF0YUNhaXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
Ojp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnN3YXBCdWZm
ZXJzSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Zmx1c2hDdXJyZW50QnVm
ZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKE5pY29zaWE6
OkdDM0RMYXllcjo6R0MzRExheWVyKToKKyAgICAgICAgKE5pY29zaWE6OkdDM0RMYXllcjo6fkdD
M0RMYXllcik6CisgICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVu
dCk6CisgICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OnBsYXRmb3JtQ29udGV4dCk6CisgICAg
ICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaDogQWRk
ZWQuCisgICAgICAgIChOaWNvc2lhOjpHQzNETGF5ZXI6OmNvbnRlbnRMYXllciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVy
ZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhp
Y3NDb250ZXh0M0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VD
b250ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlUGxhdGZvcm1MYXllcik6CisK
IDIwMTgtMDgtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW2Nzcy1ncmlkXSBVcGRhdGUgYmVoYXZpb3Igb2YgcGVyY2VudGFnZSByb3cgdHJh
Y2tzIGFuZCBndXR0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0
dXJlTWFwcGVyLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5j
bWFrZQppbmRleCAwOWRlYTY3OTRhMjVjMDYwODQyNTIxMTFiMDJmN2QyZDM1ZTAzMTdkLi4zYzc4
ZmVhNTBjMDAxNTY0ZDgyYzY0YWIyZDM1MzZmYjlhMWE1MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RleHR1cmVNYXBwZXIuY21ha2UKQEAgLTYwLDYgKzYwLDcgQEAgaWYgKFVTRV9D
T09SRElOQVRFRF9HUkFQSElDUykKIAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L3RleG1hcC9OaWNvc2lhQ29tcG9zaXRpb25MYXllclRleHR1cmVNYXBwZXJJbXBsLmNwcAogICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhQ29udGVudExheWVy
VGV4dHVyZU1hcHBlckltcGwuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
dGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCiAgICAgKQogZWxzZSAoKQogICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggNDMwOGFjZjE0MjUyMmFiOWRhMzAwNjFj
N2E4MzY1YjZhMjkwZmVlNy4uYjVmOWJiN2NjZjk2MjQ0MjhhOWMyN2FlMTgwZTQ1NTEzMjY5Y2I4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzRC5oCkBAIC03NCw2ICs3NCwxMiBAQCBPQkpDX0NMQVNTIFdlYkdMTGF5ZXI7CiB0
eXBlZGVmIHN0cnVjdCBfX0lPU3VyZmFjZSogSU9TdXJmYWNlUmVmOwogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQogCisjaWYgVVNFKE5JQ09TSUEpCituYW1lc3BhY2UgTmljb3NpYSB7CitjbGFz
cyBHQzNETGF5ZXI7Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShDT0NPQSkKIHR5cGVkZWYg
dW5zaWduZWQgR0x1aW50OwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
OwpAQCAtMTQ4MSw3ICsxNDg3LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gRXJyb3JzIHJhaXNlZCBi
eSBzeW50aGVzaXplR0xFcnJvcigpLgogICAgIExpc3RIYXNoU2V0PEdDM0RlbnVtPiBtX3N5bnRo
ZXRpY0Vycm9yczsKIAotI2lmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoTklDT1NJQSkg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorICAgIGZyaWVuZCBjbGFzcyBOaWNvc2lhOjpHQzNETGF5
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE5pY29zaWE6OkdDM0RMYXllcj4gbV9uaWNvc2lhTGF5
ZXI7CisjZWxpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgZnJpZW5kIGNsYXNzIFRleHR1cmVN
YXBwZXJHQzNEUGxhdGZvcm1MYXllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBl
ckdDM0RQbGF0Zm9ybUxheWVyPiBtX3RleG1hcExheWVyOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaAppbmRleCAxMGZjZjE0ODVl
Y2UxMmIyNDdjYjM2ZmQ2NDdlNzIxNjVhZjc4ZjUwLi45MmJhMzJkMTAxNzA5N2ViMmY3Y2QzNjk1
MjI2ZjMzZmQ5M2RkY2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1MYXllci5oCkBAIC0zMCw2ICszMCwxMSBAQCBPQkpDX0NMQVNTIENBTGF5ZXI7
CiB0eXBlZGVmIENBTGF5ZXIgUGxhdGZvcm1MYXllcjsKICNlbGlmIFBMQVRGT1JNKFdJTikgJiYg
VVNFKENBKQogdHlwZWRlZiBzdHJ1Y3QgX0NBQ0ZMYXllciBQbGF0Zm9ybUxheWVyOworI2VsaWYg
VVNFKE5JQ09TSUEpCituYW1lc3BhY2UgTmljb3NpYSB7CitjbGFzcyBQbGF0Zm9ybUxheWVyOwor
fQordHlwZWRlZiBOaWNvc2lhOjpQbGF0Zm9ybUxheWVyIFBsYXRmb3JtTGF5ZXI7CiAjZWxpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5UHJvdmlkZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCmluZGV4IDg5YTQxZjFmNTc4YWZmNmI3MmI2OWRlMjQ2NDdmYjVlNzRlZjIwN2Uu
LjQ1NmFmNzg2ZDA5MjU5MDE3YzQzMTc1ZDJkNjQwODcxNzYyZThhNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCkBAIC05MSw4ICs5MSwxMyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVy
RGF0YShjb25zdCBJbnRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZAogI2Vu
ZGlmCiB7CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKQotICAgIGlmIChtX3JlbmRlcmluZ01vZGUgPT0gUmVuZGVy
aW5nTW9kZTo6QWNjZWxlcmF0ZWQpCisgICAgaWYgKG1fcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJp
bmdNb2RlOjpBY2NlbGVyYXRlZCkgeworI2lmIFVTRShOSUNPU0lBKQorICAgICAgICBtX25pY29z
aWFMYXllciA9IE5pY29zaWE6OkNvbnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRM
YXllclRleHR1cmVNYXBwZXJJbXBsOjpjcmVhdGVGYWN0b3J5KCp0aGlzKSk7CisjZWxzZQogICAg
ICAgICBtX3BsYXRmb3JtTGF5ZXJQcm94eSA9IGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5KTsKKyNlbmRpZgorICAgIH0KICNlbmRpZgogfQogCkBAIC0xMDIsNiAr
MTA3LDEwIEBAIEltYWdlQnVmZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgpCiAgICAgICAgIHJl
dHVybjsKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKSAmJiBVU0UoTklDT1NJQSkKKyAgICBkb3duY2FzdDxO
aWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9uaWNvc2lhTGF5ZXItPmlt
cGwoKSkuaW52YWxpZGF0ZUNsaWVudCgpOworI2VuZGlmCisKICAgICBHTENvbnRleHQqIHByZXZp
b3VzQWN0aXZlQ29udGV4dCA9IEdMQ29udGV4dDo6Y3VycmVudCgpOwogICAgIFBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkuc2hhcmluZ0dMQ29udGV4dCgpLT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKIApAQCAtMTM5LDEwICsxNDgsMTIgQEAgdm9pZCBJbWFnZUJ1
ZmZlckRhdGE6OmNyZWF0ZUNvbXBvc2l0b3JCdWZmZXIoKQogICAgIGNhaXJvX3NldF9hbnRpYWxp
YXMobV9jb21wb3NpdG9yQ3IuZ2V0KCksIENBSVJPX0FOVElBTElBU19OT05FKTsKIH0KIAorI2lm
ICFVU0UoTklDT1NJQSkKIFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5PiBJ
bWFnZUJ1ZmZlckRhdGE6OnByb3h5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wbGF0Zm9ybUxh
eWVyUHJveHkuY29weVJlZigpOwogfQorI2VuZGlmCiAKIHZvaWQgSW1hZ2VCdWZmZXJEYXRhOjpz
d2FwQnVmZmVyc0lmTmVlZGVkKCkKIHsKQEAgLTE1MCw4ICsxNjEsMTggQEAgdm9pZCBJbWFnZUJ1
ZmZlckRhdGE6OnN3YXBCdWZmZXJzSWZOZWVkZWQoKQogCiAgICAgaWYgKCFtX2NvbXBvc2l0b3JU
ZXh0dXJlKSB7CiAgICAgICAgIGNyZWF0ZUNvbXBvc2l0b3JCdWZmZXIoKTsKLSAgICAgICAgTG9j
a0hvbGRlciBob2xkZXIobV9wbGF0Zm9ybUxheWVyUHJveHktPmxvY2soKSk7Ci0gICAgICAgIG1f
cGxhdGZvcm1MYXllclByb3h5LT5wdXNoTmV4dEJ1ZmZlcihzdGQ6Om1ha2VfdW5pcXVlPFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihtX2NvbXBvc2l0b3JUZXh0dXJlLCBtX3NpemUs
IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQsIEdMX1JHQkEpKTsKKworICAgICAgICBhdXRv
IHByb3h5T3BlcmF0aW9uID0KKyAgICAgICAgICAgIFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZv
cm1MYXllclByb3h5JiBwcm94eSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBMb2Nr
SG9sZGVyIGhvbGRlcihwcm94eS5sb2NrKCkpOworICAgICAgICAgICAgICAgIHByb3h5LnB1c2hO
ZXh0QnVmZmVyKHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZm
ZXI+KG1fY29tcG9zaXRvclRleHR1cmUsIG1fc2l6ZSwgVGV4dHVyZU1hcHBlckdMOjpTaG91bGRC
bGVuZCwgR0xfUkdCQSkpOworICAgICAgICAgICAgfTsKKyNpZiBVU0UoTklDT1NJQSkKKyAgICAg
ICAgcHJveHlPcGVyYXRpb24oZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1h
cHBlckltcGw+KG1fbmljb3NpYUxheWVyLT5pbXBsKCkpLnByb3h5KCkpOworI2Vsc2UKKyAgICAg
ICAgcHJveHlPcGVyYXRpb24oKm1fcGxhdGZvcm1MYXllclByb3h5KTsKKyNlbmRpZgogICAgIH0K
IAogICAgIC8vIEl0IHdvdWxkIGJlIGdyZWF0IGlmIHdlIGNvdWxkIGp1c3Qgc3dhcCB0aGUgYnVm
ZmVycyBoZXJlIGFzIHdlIGRvIHdpdGggd2ViZ2wsIGJ1dCB0aGF0IGJyZWFrcyB0aGUgY2FzZXMK
QEAgLTY3MSw4ICs2OTIsMTMgQEAgdm9pZCBJbWFnZUJ1ZmZlckRhdGE6OnBhaW50VG9UZXh0dXJl
TWFwcGVyKFRleHR1cmVNYXBwZXImIHRleHR1cmVNYXBwZXIsIGNvbnN0IEYKIFBsYXRmb3JtTGF5
ZXIqIEltYWdlQnVmZmVyOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoQUND
RUxFUkFURURfMkRfQ0FOVkFTKQorI2lmIFVTRShOSUNPU0lBKQorICAgIGlmIChtX2RhdGEubV9y
ZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKQorICAgICAgICByZXR1
cm4gbV9kYXRhLm1fbmljb3NpYUxheWVyLmdldCgpOworI2Vsc2UKICAgICBpZiAobV9kYXRhLm1f
dGV4dHVyZSkKICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SW1hZ2VCdWZmZXJEYXRhKj4oJm1f
ZGF0YSk7CisjZW5kaWYKICNlbmRpZgogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhQ2Fpcm8u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyRGF0
YUNhaXJvLmgKaW5kZXggMTIwNTI4ZmQ0YTBmNzI4NmMxNDZjNzYzNmVhMGJiZWNjOGU0NDI5Yi4u
YTNkZDk0OTM5NjI2OGJkMTMzYWNjMDJhNTY2ODJmZjBmYjZjMmJmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhQ2Fpcm8u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckRhdGFDYWlyby5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyUHJveHlQcm92aWRlci5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQUNDRUxF
UkFURURfMkRfQ0FOVkFTKSAmJiBVU0UoTklDT1NJQSkKKyNpbmNsdWRlICJOaWNvc2lhQ29udGVu
dExheWVyVGV4dHVyZU1hcHBlckltcGwuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEludFNpemU7CkBAIC00NSw4ICs0OSwxMiBAQCBjbGFzcyBUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllclByb3h5OwogCiBjbGFzcyBJbWFnZUJ1ZmZlckRhdGEKICNpZiBFTkFCTEUo
QUNDRUxFUkFURURfMkRfQ0FOVkFTKQorI2lmIFVTRShOSUNPU0lBKQorICAgIDogcHVibGljIE5p
Y29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQKKyNlbHNlCiAgICAg
OiBwdWJsaWMgUGxhdGZvcm1MYXllcgogI2VuZGlmCisjZW5kaWYKIHsKIHB1YmxpYzoKICAgICBJ
bWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYsIFJlbmRlcmluZ01vZGUpOwpAQCAtNjIsMTQg
KzcwLDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZUNhaXJvR0xTdXJmYWNlKCk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE5JQ09TSUEpCisg
ICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CisjZWxzZQogICAgIFJlZlB0
cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5PiBwcm94eSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRlZCgpIG92ZXJyaWRlOworI2VuZGlmCiAgICAg
dm9pZCBjcmVhdGVDb21wb3NpdG9yQnVmZmVyKCk7CiAKLSAgICBSZWZQdHI8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJQcm94eT4gbV9wbGF0Zm9ybUxheWVyUHJveHk7CiAgICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gbV9jb21wb3NpdG9yU3VyZmFjZTsKICAgICB1aW50MzJfdCBtX2NvbXBv
c2l0b3JUZXh0dXJlOwogICAgIFJlZlB0cjxjYWlyb190PiBtX2NvbXBvc2l0b3JDcjsKKworI2lm
IFVTRShOSUNPU0lBKQorICAgIFJlZlB0cjxOaWNvc2lhOjpDb250ZW50TGF5ZXI+IG1fbmljb3Np
YUxheWVyOworI2Vsc2UKKyAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94
eT4gbV9wbGF0Zm9ybUxheWVyUHJveHk7CisjZW5kaWYKICNlbHNlCiAgICAgdmlydHVhbCB2b2lk
IHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXImLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5KTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
Y3BwCmluZGV4IGQ3M2YyNDE5OTZlNWFiNTQyMDhlOTc5OWJkNjI2ZjdkZGUyMTBlMzguLjQ5Y2Nm
ODY0NDVmNDlmNTg1MTIyYTFhY2Q3YTMxYTRjZjJkM2NlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTI4NCwxMyArMjg0
LDIxIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIqIHBsCiAgICAgLCBtX25ldHdvcmtTdGF0ZShNZWRp
YVBsYXllcjo6RW1wdHkpCiAgICAgLCBtX2RyYXdUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMs
ICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpyZXBhaW50KQogI2lmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoTklDT1NJQSkKKyAgICAsIG1fbmljb3NpYUxheWVyKE5p
Y29zaWE6OkNvbnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVN
YXBwZXJJbXBsOjpjcmVhdGVGYWN0b3J5KCp0aGlzKSkpCisjZWxzZQogICAgICwgbV9wbGF0Zm9y
bUxheWVyUHJveHkoYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHko
KSkpCiAjZW5kaWYKKyNlbmRpZgogewogfQogCiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSgpCiB7CisjaWYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKSAmJiBVU0UoTklDT1NJQSkKKyAgICBkb3duY2FzdDxOaWNvc2lhOjpDb250
ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9uaWNvc2lhTGF5ZXItPmltcGwoKSkuaW52YWxp
ZGF0ZUNsaWVudCgpOworI2VuZGlmCisKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAg
IG1fcHJvdGVjdGlvbkNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKICNlbmRpZgpAQCAtNzM1LDYgKzc0
MywyMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkKIH0KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
K1BsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAoreworI2lmIFVTRShOSUNPU0lBKQorICAgIHJldHVybiBtX25pY29zaWFM
YXllci5wdHIoKTsKKyNlbHNlCisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZSo+KHRoaXMpOworI2VuZGlmCit9CisKKyNpZiBVU0UoTklDT1NJQSkK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c3dhcEJ1ZmZlcnNJZk5lZWRl
ZCgpCit7Cit9CisjZWxzZQogUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnByb3h5KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9wbGF0Zm9ybUxheWVyUHJveHkuY29weVJlZigpOwpAQCAtNzQzLDYgKzc2NSw3IEBA
IFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5PiBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlOjpwcm94eSgpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6OnN3YXBCdWZmZXJzSWZOZWVkZWQoKQogewogfQorI2VuZGlmCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogewpA
QCAtNzUwLDMyICs3NzMsNDIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjpwdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpCiAgICAgaWYgKCFHU1RfSVNfU0FNUExFKG1fc2Ft
cGxlLmdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja0hvbGRlciBob2xkZXIobV9w
bGF0Zm9ybUxheWVyUHJveHktPmxvY2soKSk7CisgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9Cisg
ICAgICAgIFt0aGlzXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94eSkKKyAg
ICAgICAgeworICAgICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygpKTsKIAot
ICAgIGlmICghbV9wbGF0Zm9ybUxheWVyUHJveHktPmlzQWN0aXZlKCkpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIGlmICghcHJveHkuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3N0VmlkZW9GcmFtZUhvbGRlcj4gZnJhbWVI
b2xkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEdzdFZpZGVvRnJhbWVIb2xkZXI+KG1fc2FtcGxlLmdl
dCgpLCB0ZXhNYXBGbGFnRnJvbU9yaWVudGF0aW9uKG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlvbiks
ICFtX3VzaW5nRmFsbGJhY2tWaWRlb1NpbmspOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEdzdFZpZGVvRnJhbWVIb2xkZXI+IGZyYW1lSG9sZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxHc3RW
aWRlb0ZyYW1lSG9sZGVyPihtX3NhbXBsZS5nZXQoKSwgdGV4TWFwRmxhZ0Zyb21PcmllbnRhdGlv
bihtX3ZpZGVvU291cmNlT3JpZW50YXRpb24pLCAhbV91c2luZ0ZhbGxiYWNrVmlkZW9TaW5rKTsK
IAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCi0gICAgR0x1aW50IHRleHR1cmVJRCA9IGZyYW1lSG9s
ZGVyLT50ZXh0dXJlSUQoKTsKLSAgICBpZiAodGV4dHVyZUlEKSB7Ci0gICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4gbGF5ZXJCdWZmZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPih0ZXh0dXJl
SUQsIGZyYW1lSG9sZGVyLT5zaXplKCksIGZyYW1lSG9sZGVyLT5mbGFncygpLCBHcmFwaGljc0Nv
bnRleHQzRDo6UkdCQSk7Ci0gICAgICAgIGxheWVyQnVmZmVyLT5zZXRVbm1hbmFnZWRCdWZmZXJE
YXRhSG9sZGVyKFdURk1vdmUoZnJhbWVIb2xkZXIpKTsKLSAgICAgICAgbV9wbGF0Zm9ybUxheWVy
UHJveHktPnB1c2hOZXh0QnVmZmVyKFdURk1vdmUobGF5ZXJCdWZmZXIpKTsKLSAgICB9IGVsc2UK
KyAgICAgICAgICAgIEdMdWludCB0ZXh0dXJlSUQgPSBmcmFtZUhvbGRlci0+dGV4dHVyZUlEKCk7
CisgICAgICAgICAgICBpZiAodGV4dHVyZUlEKSB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBsYXllckJ1ZmZlciA9IHN0
ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+KHRleHR1cmVJ
RCwgZnJhbWVIb2xkZXItPnNpemUoKSwgZnJhbWVIb2xkZXItPmZsYWdzKCksIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0JBKTsKKyAgICAgICAgICAgICAgICBsYXllckJ1ZmZlci0+c2V0VW5tYW5hZ2Vk
QnVmZmVyRGF0YUhvbGRlcihXVEZNb3ZlKGZyYW1lSG9sZGVyKSk7CisgICAgICAgICAgICAgICAg
cHJveHkucHVzaE5leHRCdWZmZXIoV1RGTW92ZShsYXllckJ1ZmZlcikpOworICAgICAgICAgICAg
fSBlbHNlCisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IGJ1ZmZlciA9IHByb3h5Lmdl
dEF2YWlsYWJsZUJ1ZmZlcihmcmFtZUhvbGRlci0+c2l6ZSgpLCBHTF9ET05UX0NBUkUpOworICAg
ICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghYnVmZmVyKSkgeworICAgICAgICAgICAgICAgICAg
ICBhdXRvIHRleHR1cmUgPSBCaXRtYXBUZXh0dXJlR0w6OmNyZWF0ZShUZXh0dXJlTWFwcGVyQ29u
dGV4dEF0dHJpYnV0ZXM6OmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dHVyZS0+cmVz
ZXQoZnJhbWVIb2xkZXItPnNpemUoKSwgZnJhbWVIb2xkZXItPmhhc0FscGhhQ2hhbm5lbCgpID8g
Qml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBoYSA6IEJpdG1hcFRleHR1cmU6Ok5vRmxhZyk7Cisg
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSkpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBmcmFtZUhvbGRlci0+dXBkYXRlVGV4dHVyZShidWZmZXItPnRl
eHR1cmVHTCgpKTsKKyAgICAgICAgICAgICAgICBidWZmZXItPnNldEV4dHJhRmxhZ3ModGV4TWFw
RmxhZ0Zyb21PcmllbnRhdGlvbihtX3ZpZGVvU291cmNlT3JpZW50YXRpb24pIHwgKGZyYW1lSG9s
ZGVyLT5oYXNBbHBoYUNoYW5uZWwoKSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAw
KSk7CisgICAgICAgICAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoV1RGTW92ZShidWZmZXIp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworI2lmIFVTRShOSUNPU0lBKQorICAgIHBy
b3h5T3BlcmF0aW9uKGRvd25jYXN0PE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJ
bXBsPihtX25pY29zaWFMYXllci0+aW1wbCgpKS5wcm94eSgpKTsKKyNlbHNlCisgICAgcHJveHlP
cGVyYXRpb24oKm1fcGxhdGZvcm1MYXllclByb3h5KTsKICNlbmRpZgotICAgIHsKLSAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPiBidWZmZXIg
PSBtX3BsYXRmb3JtTGF5ZXJQcm94eS0+Z2V0QXZhaWxhYmxlQnVmZmVyKGZyYW1lSG9sZGVyLT5z
aXplKCksIEdMX0RPTlRfQ0FSRSk7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghYnVmZmVyKSkgewot
ICAgICAgICAgICAgYXV0byB0ZXh0dXJlID0gQml0bWFwVGV4dHVyZUdMOjpjcmVhdGUoVGV4dHVy
ZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzOjpnZXQoKSk7Ci0gICAgICAgICAgICB0ZXh0dXJlLT5y
ZXNldChmcmFtZUhvbGRlci0+c2l6ZSgpLCBmcmFtZUhvbGRlci0+aGFzQWxwaGFDaGFubmVsKCkg
PyBCaXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhIDogQml0bWFwVGV4dHVyZTo6Tm9GbGFnKTsK
LSAgICAgICAgICAgIGJ1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJCdWZmZXI+KFdURk1vdmUodGV4dHVyZSkpOwotICAgICAgICB9Ci0gICAgICAgIGZy
YW1lSG9sZGVyLT51cGRhdGVUZXh0dXJlKGJ1ZmZlci0+dGV4dHVyZUdMKCkpOwotICAgICAgICBi
dWZmZXItPnNldEV4dHJhRmxhZ3ModGV4TWFwRmxhZ0Zyb21PcmllbnRhdGlvbihtX3ZpZGVvU291
cmNlT3JpZW50YXRpb24pIHwgKGZyYW1lSG9sZGVyLT5oYXNBbHBoYUNoYW5uZWwoKSA/IFRleHR1
cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKSk7Ci0gICAgICAgIG1fcGxhdGZvcm1MYXllclBy
b3h5LT5wdXNoTmV4dEJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpOwotICAgIH0KIH0KICNlbmRpZiAv
LyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKQEAgLTgxOCw4ICs4NTEsMTggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RTYW1wbGUqIHNh
bXBsZSkKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAgICAgaWYgKG1fdXNpbmdGYWxsYmFj
a1ZpZGVvU2luaykgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9kcmF3TXV0ZXgpOwotICAg
ICAgICBpZiAoIW1fcGxhdGZvcm1MYXllclByb3h5LT5zY2hlZHVsZVVwZGF0ZU9uQ29tcG9zaXRv
clRocmVhZChbdGhpc10geyB0aGlzLT5wdXNoVGV4dHVyZVRvQ29tcG9zaXRvcigpOyB9KSkKKyAg
ICAgICAgYXV0byBwcm94eU9wZXJhdGlvbiA9CisgICAgICAgICAgICBbdGhpc10oVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJQcm94eSYgcHJveHkpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHByb3h5LnNjaGVkdWxlVXBkYXRlT25Db21wb3NpdG9yVGhyZWFkKFt0aGlz
XSB7IHRoaXMtPnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCk7IH0pOworICAgICAgICAgICAgfTsK
KyNpZiBVU0UoTklDT1NJQSkKKyAgICAgICAgaWYgKCFwcm94eU9wZXJhdGlvbihkb3duY2FzdDxO
aWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9uaWNvc2lhTGF5ZXItPmlt
cGwoKSkucHJveHkoKSkpCiAgICAgICAgICAgICByZXR1cm47CisjZWxzZQorICAgICAgICBpZiAo
IXByb3h5T3BlcmF0aW9uKCptX3BsYXRmb3JtTGF5ZXJQcm94eSkpCisgICAgICAgICAgICByZXR1
cm47CisjZW5kaWYKICAgICAgICAgbV9kcmF3VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiAgICAg
ICAgIG1fZHJhd0NvbmRpdGlvbi53YWl0KG1fZHJhd011dGV4KTsKICAgICB9IGVsc2UKQEAgLTg4
MSwxMiArOTI0LDIwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Zmx1
c2hDdXJyZW50QnVmZmVyKCkKICAgICBtX3NhbXBsZSA9IGFkb3B0R1JlZihnc3Rfc2FtcGxlX25l
dyhudWxscHRyLCBnc3Rfc2FtcGxlX2dldF9jYXBzKG1fc2FtcGxlLmdldCgpKSwKICAgICAgICAg
Z3N0X3NhbXBsZV9nZXRfc2VnbWVudChtX3NhbXBsZS5nZXQoKSksIGluZm8gPyBnc3Rfc3RydWN0
dXJlX2NvcHkoaW5mbykgOiBudWxscHRyKSk7CiAKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fcGxhdGZvcm1MYXllclByb3h5LT5sb2NrKCkpOworICAgIGF1dG8gcHJveHlPcGVy
YXRpb24gPQorICAgICAgICBbXShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5JiBwcm94
eSkKKyAgICAgICAgeworICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIocHJveHkubG9jaygp
KTsKIAotICAgICAgICBpZiAobV9wbGF0Zm9ybUxheWVyUHJveHktPmlzQWN0aXZlKCkpCi0gICAg
ICAgICAgICBtX3BsYXRmb3JtTGF5ZXJQcm94eS0+ZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNl
cnZpbmdUZXh0dXJlKCk7Ci0gICAgfQorICAgICAgICAgICAgaWYgKHByb3h5LmlzQWN0aXZlKCkp
CisgICAgICAgICAgICAgICAgcHJveHkuZHJvcEN1cnJlbnRCdWZmZXJXaGlsZVByZXNlcnZpbmdU
ZXh0dXJlKCk7CisgICAgICAgIH07CisKKyNpZiBVU0UoTklDT1NJQSkKKyAgICBwcm94eU9wZXJh
dGlvbihkb3duY2FzdDxOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9u
aWNvc2lhTGF5ZXItPmltcGwoKSkucHJveHkoKSk7CisjZWxzZQorICAgIHByb3h5T3BlcmF0aW9u
KCptX3BsYXRmb3JtTGF5ZXJQcm94eSk7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCAzMGNhMDJl
MjlkN2EzMjZjNmQyYjcxYTMzOGJiMTk0ZmE0M2I1ZTc1Li5hNGYwMjRjZDEzYWYwYzdmMTAzODA5
YTBkNjNiMTU1ZTE2YTMyNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTM3LDggKzM3LDEyIEBACiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoTklDT1NJQSkK
KyNpbmNsdWRlICJOaWNvc2lhQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGwuaCIKKyNlbHNl
CiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eVByb3ZpZGVyLmgiCiAj
ZW5kaWYKKyNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCBfR3N0U3RyZWFtVm9sdW1lIEdzdFN0cmVh
bVZvbHVtZTsKIHR5cGVkZWYgc3RydWN0IF9Hc3RWaWRlb0luZm8gR3N0VmlkZW9JbmZvOwpAQCAt
NjMsOCArNjcsMTIgQEAgdm9pZCByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1lbnRzKCk7CiAK
IGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgOiBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZT4KICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaWYgVVNFKE5J
Q09TSUEpCisgICAgLCBwdWJsaWMgTmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlcklt
cGw6OkNsaWVudAorI2Vsc2UKICAgICAsIHB1YmxpYyBQbGF0Zm9ybUxheWVyCiAjZW5kaWYKKyNl
bmRpZgogewogCiBwdWJsaWM6CkBAIC0xMjYsNyArMTM0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsKIAogI2lmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gY29uc3RfY2FzdDxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlKj4odGhpcyk7IH0KKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3Qgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogICAgIC8vIEZJWE1FOiBBY2Nl
bGVyYXRlZCByZW5kZXJpbmcgaGFzIG5vdCBiZWVuIGltcGxlbWVudGVkIGZvciBXaW5DYWlybyB5
ZXQuCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTE3NSw5ICsxODMsMTMgQEAgcHJvdGVjdGVkOgogI2Vu
ZGlmCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisgICAgdm9pZCBwdXNoVGV4dHVyZVRv
Q29tcG9zaXRvcigpOworI2lmIFVTRShOSUNPU0lBKQorICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5l
ZWRlZCgpIG92ZXJyaWRlOworI2Vsc2UKICAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJQcm94eT4gcHJveHkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHN3YXBCdWZmZXJz
SWZOZWVkZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCk7
CisjZW5kaWYKICNlbmRpZgogCiAgICAgR3N0RWxlbWVudCogdmlkZW9TaW5rKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWRlb1NpbmsuZ2V0KCk7IH0KQEAgLTIzOCw4ICsyNTAsMTIgQEAgcHJvdGVjdGVk
OgogICAgIFJ1bkxvb3A6OlRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U+IG1f
ZHJhd1RpbWVyOwogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorI2lmIFVTRShOSUNPU0lB
KQorICAgIFJlZjxOaWNvc2lhOjpDb250ZW50TGF5ZXI+IG1fbmljb3NpYUxheWVyOworI2Vsc2UK
ICAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eT4gbV9wbGF0Zm9ybUxh
eWVyUHJveHk7CiAjZW5kaWYKKyNlbmRpZgogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKICAgICBH
UmVmUHRyPEdzdEdMQ29udGV4dD4gbV9nbENvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29z
aWFHQzNETGF5ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1MzNjMGQ5ZmFjNTgwYjE2NTc5N2I0MzczNDJl
Yjk0MjlmZmVlYzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcApAQCAtMCwwICsxLDEw
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmljb3NpYUdDM0RMYXll
ci5oIgorCisjaWYgVVNFKE5JQ09TSUEpICYmIFVTRShURVhUVVJFX01BUFBFUikKKworI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVy
R0wuaCIKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkuaCIKKyNlbmRpZgorCisjaW5j
bHVkZSAiR0xDb250ZXh0LmgiCisKK25hbWVzcGFjZSBOaWNvc2lhIHsKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK0dDM0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBj
b250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCisgICAg
OiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fY29udGVudExheWVyKE5pY29zaWE6OkNvbnRl
bnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpj
cmVhdGVGYWN0b3J5KCp0aGlzKSkpCit7CisgICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgeworICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoKKyAgICAgICAgbV9nbENv
bnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxh
eTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworR0Mz
RExheWVyOjp+R0MzRExheWVyKCkKK3sKKyAgICBkb3duY2FzdDxDb250ZW50TGF5ZXJUZXh0dXJl
TWFwcGVySW1wbD4obV9jb250ZW50TGF5ZXItPmltcGwoKSkuaW52YWxpZGF0ZUNsaWVudCgpOwor
fQorCitib29sIEdDM0RMYXllcjo6bWFrZUNvbnRleHRDdXJyZW50KCkKK3sKKyAgICBBU1NFUlQo
bV9nbENvbnRleHQpOworICAgIHJldHVybiBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50
KCk7Cit9CisKK1BsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR0MzRExheWVyOjpwbGF0Zm9ybUNv
bnRleHQoKQoreworICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CisgICAgcmV0dXJuIG1fZ2xDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKK30KKwordm9pZCBHQzNETGF5ZXI6OnN3YXBCdWZmZXJz
SWZOZWVkZWQoKQoreworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAg
ICBpZiAobV9jb250ZXh0LmxheWVyQ29tcG9zaXRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2NvbnRleHQucHJlcGFyZVRleHR1cmUoKTsKKyAgICBJbnRTaXplIHRleHR1cmVTaXplKG1f
Y29udGV4dC5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0Lm1fY3VycmVudEhlaWdodCk7CisgICAg
VGV4dHVyZU1hcHBlckdMOjpGbGFncyBmbGFncyA9IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkRmxp
cFRleHR1cmUgfCAobV9jb250ZXh0Lm1fYXR0cnMuYWxwaGEgPyBUZXh0dXJlTWFwcGVyR0w6OlNo
b3VsZEJsZW5kIDogMCk7CisKKyAgICB7CisgICAgICAgIGF1dG8mIHByb3h5ID0gZG93bmNhc3Q8
Tmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw+KG1fY29udGVudExheWVyLT5p
bXBsKCkpLnByb3h5KCk7CisKKyAgICAgICAgTG9ja0hvbGRlciBob2xkZXIocHJveHkubG9jaygp
KTsKKyAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoc3RkOjptYWtlX3VuaXF1ZTxUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4obV9jb250ZXh0Lm1fY29tcG9zaXRvclRleHR1cmUs
IHRleHR1cmVTaXplLCBmbGFncywgbV9jb250ZXh0Lm1faW50ZXJuYWxDb2xvckZvcm1hdCkpOwor
ICAgIH0KKworICAgIG1fY29udGV4dC5tYXJrTGF5ZXJDb21wb3NpdGVkKCk7CisjZW5kaWYKK30K
KworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQorCisjZW5kaWYgLy8gVVNFKE5JQ09TSUEpICYmIFVT
RShURVhUVVJFX01BUFBFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMmRiOWRkMzdhNmYwZDlmYThkNGQxODhlYjE4ZjhhZTE0NzVhMDBiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDM0RMYXllci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxOCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
CisgKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIEhPTERFUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBVU0UoTklDT1NJQSkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorCisjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJOaWNvc2lhQ29udGVudExheWVyVGV4dHVy
ZU1hcHBlckltcGwuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIEdMQ29udGV4dDsKK30KKworbmFtZXNwYWNlIE5pY29zaWEgeworCitjbGFzcyBHQzNE
TGF5ZXIgOiBwdWJsaWMgQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudCB7Citw
dWJsaWM6CisgICAgR0MzRExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICB2aXJ0dWFsIH5HQzNETGF5
ZXIoKTsKKworICAgIENvbnRlbnRMYXllciYgY29udGVudExheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZW50TGF5ZXI7IH0KKyAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCk7CisKKyAgICB2b2lkIHN3
YXBCdWZmZXJzSWZOZWVkZWQoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRCYgbV9jb250ZXh0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpHTENvbnRleHQ+IG1fZ2xDb250ZXh0OworCisgICAgUmVmPENvbnRlbnRMYXllcj4gbV9jb250
ZW50TGF5ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBOaWNvc2lhCisKKyNlbmRpZiAvLyBVU0Uo
TklDT1NJQSkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3ND
b250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcAppbmRleCBhMDI2ZThjYmJhYWI2YWY2NGQ0ZmQwYzVm
Nzg5MTk5ODI2OGU5YjAyLi5iN2NjMjZhMTAwZjllY2QyYmE5Y2Y2NzRmYWZjOGRmZDE5M2YwMWNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NDb250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcApA
QCAtNTMsNiArNTMsOCBAQAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgogI2VuZGlm
CiAKKyNpbmNsdWRlICJOaWNvc2lhR0MzRExheWVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IHNpemVfdCBNYXhBY3RpdmVDb250ZXh0cyA9IDE2OwpAQCAtMTA1LDcg
KzEwNywxMSBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3ND
b250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvcwogICAgIDogbV9hdHRycyhhdHRyaWJ1
dGVzKQogewogICAgIEFTU0VSVF9VTlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQp
OworI2lmIFVTRShOSUNPU0lBKQorICAgIG1fbmljb3NpYUxheWVyID0gc3RkOjptYWtlX3VuaXF1
ZTxOaWNvc2lhOjpHQzNETGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7CisjZWxzZQogICAgIG1f
dGV4bWFwTGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1M
YXllcj4oKnRoaXMsIHJlbmRlclN0eWxlKTsKKyNlbmRpZgogCiAgICAgbWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAKQEAgLTI3MCw3ICsyNzYsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0
RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGwKIAog
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6bWFrZUNvbnRleHRDdXJyZW50KCkKIHsKKyNpZiBVU0Uo
TklDT1NJQSkKKyAgICByZXR1cm4gbV9uaWNvc2lhTGF5ZXItPm1ha2VDb250ZXh0Q3VycmVudCgp
OworI2Vsc2UKICAgICByZXR1cm4gbV90ZXhtYXBMYXllci0+bWFrZUNvbnRleHRDdXJyZW50KCk7
CisjZW5kaWYKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQpA
QCAtMjc5LDcgKzI4OSwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1
cygpCiAKIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QoKQogeworI2lmIFVTRShOSUNPU0lBKQorICAgIHJldHVybiBt
X25pY29zaWFMYXllci0+cGxhdGZvcm1Db250ZXh0KCk7CisjZWxzZQogICAgIHJldHVybiBtX3Rl
eG1hcExheWVyLT5wbGF0Zm9ybUNvbnRleHQoKTsKKyNlbmRpZgogfQogCiBQbGF0Zm9ybTNET2Jq
ZWN0IEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybVRleHR1cmUoKSBjb25zdApAQCAtMjk4LDcg
KzMxMiwxMSBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29u
c3QKIAogUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIoKSBj
b25zdAogeworI2lmIFVTRShOSUNPU0lBKQorICAgIHJldHVybiAmbV9uaWNvc2lhTGF5ZXItPmNv
bnRlbnRMYXllcigpOworI2Vsc2UKICAgICByZXR1cm4gbV90ZXhtYXBMYXllci5nZXQoKTsKKyNl
bmRpZgogfQogCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdDM0RQbGF0Zm9ybUxheWVyLmNwcAppbmRleCA2YzU2OGU0NTQ0YzNkNzQ3NjgzMmQyYzViMjRl
OGFlNGJjMDExYThiLi40NWExODExMzNjNGYxOGE4NjQ0ZDJmMGNiMTNjYTVhZjdhN2QxYTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcApAQCAt
MjAsNyArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJHQzNEUGxhdGZvcm1MYXllci5oIgogCi0jaWYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfM0Qp
ICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBFTkFCTEUoR1JBUEhJQ1NfQ09OVEVYVF8zRCkg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiAhVVNFKE5JQ09TSUEpCiAKICNpbmNsdWRlICJCaXRt
YXBUZXh0dXJlR0wuaCIKICNpbmNsdWRlICJHTENvbnRleHQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRm
b3JtTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIuaAppbmRleCBiYWI1MDM2Yzg1ODk1NTBlZGFkYTM3
YzVjYTE5MmM2MjBkNzA5NmYyLi5lNDkyYTI1MTNkNjQ4YzI2MDU1NDE4YzVhMGVjOWQ5ZjU1NGUy
YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oCkBA
IC0xOSw3ICsxOSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEdSQVBISUNTX0NP
TlRFWFRfM0QpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBFTkFCTEUoR1JBUEhJQ1NfQ09O
VEVYVF8zRCkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiAhVVNFKE5JQ09TSUEpCiAKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5j
cHAKaW5kZXggYWJhYTcxYzQ2ZWIxNDM1MDJiMzA4NWM3ZDY4MzBjZjE4ZjhlNDM3NS4uYmUyMTY4
MGZiZDJiMTkxOTM5ZGFlNWEwY2E1ZjI5ZjRiNjlkODBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTQzMiwxMCAr
NDMyLDEzIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRz
RGlzcGxheSgpCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllciwgQ29udGVudHNMYXllclB1
cnBvc2UpCiB7CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2lmIFVT
RShOSUNPU0lBKQorI2Vsc2UKICAgICBpZiAobV9wbGF0Zm9ybUxheWVyICE9IHBsYXRmb3JtTGF5
ZXIpCiAgICAgICAgIG1fc2hvdWxkU3luY1BsYXRmb3JtTGF5ZXIgPSB0cnVlOwogCiAgICAgbV9w
bGF0Zm9ybUxheWVyID0gcGxhdGZvcm1MYXllcjsKKyNlbmRpZgogICAgIG5vdGlmeUZsdXNoUmVx
dWlyZWQoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBsYXRmb3JtTGF5ZXIpOwpAQCAtNzQy
LDI4ICs3NDUsMzQgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRp
b25zKCkKIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQbGF0Zm9ybUxheWVy
KCkKIHsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCiAgICAgaWYgKCFt
X3Nob3VsZFN5bmNQbGF0Zm9ybUxheWVyKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Nob3Vs
ZFN5bmNQbGF0Zm9ybUxheWVyID0gZmFsc2U7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X1RIUkVBREVEKQorI2lmIFVTRShOSUNPU0lBKQorI2Vsc2UKICAgICBtX2xheWVyU3RhdGUucGxh
dGZvcm1MYXllckNoYW5nZWQgPSB0cnVlOwogICAgIGlmIChtX3BsYXRmb3JtTGF5ZXIpCiAgICAg
ICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyUHJveHkgPSBtX3BsYXRmb3JtTGF5ZXItPnBy
b3h5KCk7CiAjZW5kaWYKKyNlbmRpZgogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6dXBkYXRlUGxhdGZvcm1MYXllcigpCiB7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X1RIUkVBREVEKQogICAgIGlmICghbV9zaG91bGRVcGRhdGVQbGF0Zm9ybUxheWVyKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX3Nob3VsZFVwZGF0ZVBsYXRmb3JtTGF5ZXIgPSBmYWxzZTsKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE5JQ09TSUEpCisj
ZWxzZQogICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyVXBkYXRlZCA9IHRydWU7CiAgICAg
aWYgKG1fcGxhdGZvcm1MYXllcikKICAgICAgICAgbV9wbGF0Zm9ybUxheWVyLT5zd2FwQnVmZmVy
c0lmTmVlZGVkKCk7CiAjZW5kaWYKKyNlbmRpZgogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346779</attachid>
            <date>2018-08-08 11:36:21 -0700</date>
            <delta_ts>2018-08-08 12:26:59 -0700</delta_ts>
            <desc>WinCairo build fix</desc>
            <filename>bug-188405.diff</filename>
            <type>text/plain</type>
            <size>1153</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxMDY1N2YzOWJmOC4uY2E1YjA4Y2UyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOC0wOC0wOCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnku
Y29tPgorCisgICAgICAgIFtOaWNvc2lhXSBBZGQgdGhlIE5pY29zaWEtc3BlY2lmaWMgUGxhdGZv
cm1MYXllciB0eXBlIGFsaWFzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODg0MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQzMDM5NTIwPgorCisg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHA6CisKIDIwMTgtMDgt
MDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBYSFIgY29udGVudCBzb21ldGltZXMgc2hvd3MgYXMgZXJyb3IgZXZlbiB0aG91
Z2ggbG9hZCBzdWNjZWVkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVy
ZU1hcHBlci5jcHAKaW5kZXggYjdjYzI2YTEwMGYuLmUyNjI4MWQ2MWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RU
ZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcApAQCAtNTMsNyArNTMsOSBA
QAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgogI2VuZGlmCiAKKyNpZiBVU0UoTklD
T1NJQSkKICNpbmNsdWRlICJOaWNvc2lhR0MzRExheWVyLmgiCisjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346784</attachid>
            <date>2018-08-08 12:27:42 -0700</date>
            <delta_ts>2018-08-08 13:54:12 -0700</delta_ts>
            <desc>Build fix</desc>
            <filename>bug-188405.diff</filename>
            <type>text/plain</type>
            <size>1153</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxMDY1N2YzOWJmOC4uY2E1YjA4Y2UyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOC0wOC0wOCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnku
Y29tPgorCisgICAgICAgIFtOaWNvc2lhXSBBZGQgdGhlIE5pY29zaWEtc3BlY2lmaWMgUGxhdGZv
cm1MYXllciB0eXBlIGFsaWFzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODg0MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQzMDM5NTIwPgorCisg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHA6CisKIDIwMTgtMDgt
MDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBYSFIgY29udGVudCBzb21ldGltZXMgc2hvd3MgYXMgZXJyb3IgZXZlbiB0aG91
Z2ggbG9hZCBzdWNjZWVkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVy
ZU1hcHBlci5jcHAKaW5kZXggYjdjYzI2YTEwMGYuLmUyNjI4MWQ2MWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RU
ZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJlTWFwcGVyLmNwcApAQCAtNTMsNyArNTMsOSBA
QAogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgogI2VuZGlmCiAKKyNpZiBVU0UoTklD
T1NJQSkKICNpbmNsdWRlICJOaWNvc2lhR0MzRExheWVyLmgiCisjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>