<?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>222461</bug_id>
          
          <creation_ts>2021-02-25 23:13:33 -0800</creation_ts>
          <short_desc>[GPUP] Allow painting of GPUP hosted video from the WebContent process</short_desc>
          <delta_ts>2021-02-26 16:04:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222268</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=221823</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=221825</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=221838</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=221820</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733679</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-25 23:13:33 -0800</bug_when>
    <thetext>[GPUP] Allow painting of GPUP hosted video from the WebContent process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733681</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-25 23:19:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/74778890&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733682</commentid>
    <comment_count>2</comment_count>
      <attachid>421616</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-25 23:21:48 -0800</bug_when>
    <thetext>Created attachment 421616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733684</commentid>
    <comment_count>3</comment_count>
      <attachid>421618</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-25 23:55:48 -0800</bug_when>
    <thetext>Created attachment 421618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733687</commentid>
    <comment_count>4</comment_count>
      <attachid>421619</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-26 00:15:44 -0800</bug_when>
    <thetext>Created attachment 421619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733772</commentid>
    <comment_count>5</comment_count>
      <attachid>421619</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-26 08:28:54 -0800</bug_when>
    <thetext>Comment on attachment 421619
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:304
&gt; +    auto status = CVPixelBufferCreateWithIOSurface(kCFAllocatorDefault, m_surface.get(), nullptr, &amp;rawBuffer);

Don&apos;t we want the pixel buffer to be GL/GLES compatible if possible? 

If so, see `ImageTransferSessionVT::ioSurfacePixelBufferCreationOptions`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733800</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-26 09:28:32 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #5)
&gt; Comment on attachment 421619 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421619&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:304
&gt; &gt; +    auto status = CVPixelBufferCreateWithIOSurface(kCFAllocatorDefault, m_surface.get(), nullptr, &amp;rawBuffer);
&gt; 
&gt; Don&apos;t we want the pixel buffer to be GL/GLES compatible if possible? 
&gt; 
&gt; If so, see `ImageTransferSessionVT::ioSurfacePixelBufferCreationOptions`.

Because we&apos;re merely transferring an existing IOSurface, that presumably is already GL compatible due to the flags we pass into the AVPlayerItemVideoOutput, I don&apos;t think we need to do any conformance here.  But I&apos;ll look into this to make sure the resulting pixel buffer _is_ GL compatible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733889</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-26 11:28:42 -0800</bug_when>
    <thetext>Committed r273568: &lt;https://commits.webkit.org/r273568&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421619.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733993</commentid>
    <comment_count>8</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 14:56:24 -0800</bug_when>
    <thetext>*** Bug 221791 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734000</commentid>
    <comment_count>9</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 15:01:52 -0800</bug_when>
    <thetext>*** Bug 221790 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734004</commentid>
    <comment_count>10</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 15:03:40 -0800</bug_when>
    <thetext>*** Bug 221806 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734006</commentid>
    <comment_count>11</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 15:05:40 -0800</bug_when>
    <thetext>*** Bug 221797 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734010</commentid>
    <comment_count>12</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 15:07:50 -0800</bug_when>
    <thetext>*** Bug 221838 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734012</commentid>
    <comment_count>13</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 15:10:09 -0800</bug_when>
    <thetext>*** Bug 221823 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734015</commentid>
    <comment_count>14</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 15:12:52 -0800</bug_when>
    <thetext>*** Bug 221825 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734017</commentid>
    <comment_count>15</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 15:15:41 -0800</bug_when>
    <thetext>*** Bug 221818 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734054</commentid>
    <comment_count>16</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 16:04:46 -0800</bug_when>
    <thetext>*** Bug 222268 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421616</attachid>
            <date>2021-02-25 23:21:48 -0800</date>
            <delta_ts>2021-02-25 23:59:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222461-20210225232147.patch</filename>
            <type>text/plain</type>
            <size>23515</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlhNzc1YmYzZjViZmU2
ZDAxOWFkYjhjMTdhM2VhNjc3MTYzNDg3MC4uY2M3N2IyNjdiZWFjZDIwZWYyNDhiOTk0YzE4ZmZh
MGE0OTJhNjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAyLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBBbGxvdyBwYWlu
dGluZyBvZiBHUFVQIGhvc3RlZCB2aWRlbyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gQ2hhbmdlIHRo
ZSByZXR1cm4gdHlwZSBvZiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgdG8gcmV0dXJuIGEg
UmV0YWluUHRyPD4KKyAgICAgICAgICByYXRoZXIgdGhhbiBqdXN0IGEgcmF3IHBvaW50ZXIuCisK
KyAgICAgICAgLSBBZGQgdXRpbGl0eSBtZXRob2RzIG9uIElPU3VyZmFjZSB0byByZXRyaWV2ZSBh
biBJT1N1cmZhY2UgZnJvbSBhIENWUGl4ZWxCdWZmZXIKKyAgICAgICAgICBhbmQgdG8gcmVjb25z
dGl0dXRlIGEgQ1ZQaXhlbEJ1ZmZlciBmcm9tIGFuIElPU3VyZmFjZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVG
cm9tUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVQaXhl
bEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisKIDIwMjEtMDItMjMgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmVhbWxpbmUgSW1hZ2VEYXRhIHNpemUgY2Fs
Y3VsYXRpb25zIGFuZCBoYW5kbGUgb3V0LW9mLW1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNWNmZjZhY2Qz
NzdjY2ZmM2Q2NDRiNzMzODkyZGFhZWUyZWQ4ZjgxLi5hYmMzZGJhZWMzZDc4NjlmMGJiMmY3N2I0
YzZjMTBkZGFmMDZkMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTI1ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBBbGxvdyBw
YWludGluZyBvZiBHUFVQIGhvc3RlZCB2aWRlbyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ2MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDb2Nv
YSBpbXBsZW1lbnRhdGlvbnMgZm9yIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBhbmQgcGl4
ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpLgorICAgICAgICBVc2UgdGhvc2UgbWV0aG9kcyB0byBp
bXBsZW1lbnQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoKS4KKworICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5hdGl2ZUlt
YWdlRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOgorCiAyMDIxLTAyLTI1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBTb21lIG1l
ZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMg
ZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCmluZGV4IDRiMGFjYzdkYzEwYTAzZmFlMTA5ZjUyMzY5YjY5NjBhYjE1OGYwMTUuLmM2
ZTU5OGM5ZGJkZDA1ZmE1YzA4OTNmMzMxOWE3YjczZDNhZmI1NmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEwMTUsNyArMTAx
NSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKIAogI2Vsc2UKIAotQ1ZQaXhlbEJ1ZmZlclJl
ZiBNZWRpYVBsYXllcjo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCitSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXI6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQog
ewogICAgIHJldHVybiBtX3ByaXZhdGUtPnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4
IDRkYjlkNzI1ODYzM2YxYmQ0YzBmNjliNjIyZTdhYjAzMjJmYzIwODkuLmY4MTEzMjZkMjVmYjFh
YTJhMDk5Mjc5MzUzNmU4OTAyZDU4ZjI3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNDQ0LDcgKzQ0NCw3IEBAIHB1YmxpYzoKICNp
ZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NH
TGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NH
TGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
ZmxpcFkpOwogI2Vsc2UKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyRm9yQ3VycmVu
dFRpbWUoKTsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSgpOwogI2VuZGlmCiAKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUlt
YWdlRm9yQ3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggYzZhN2NjMzg4ZjJmMzRhM2Y0NDEy
M2UyZjI1ZDUzNzk3OTlhYTI4Ni4uYmRkOTkwNmFkNjY1NzhmOGMwMjU3ZWU0NGVhZGYyNGQ1OTU4
NGQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAjaWYgIVVTRShB
VkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBH
Q0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJldHVy
biBmYWxzZTsgfQogI2Vsc2UKLSAgICB2aXJ0dWFsIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgeyByZXR1
cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCAxNDUxYWNjMzlkODc3ZDk4ZjdhYTk2ODQ2N2RmYmU3MjYwMGRiOGY5
Li45Nzg3M2ZhYWVkN2RmNjBiNmZjMjU3Y2ZjZmQwYjI5ZTk1MjcxYzNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0yNTQsNyArMjU0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRG
b3JWaWRlb091dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKIAotICAgIENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAKICNpZiBF
TkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA0MjE1ZjliMTJmMzcxZGU2MDc1YWVhNzFmMWJm
ZGY5YjM3N2YyNzQ3Li41NzYxYzA5OWIxZjE5NGZhMWYwZDgwM2M2OTVkMDQyZmJlNDQ4M2E5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTIzOTEsMTMgKzIzOTEsMTMgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFw
aGljc0NvbnRleHQmIGMKIAogfQogCi1DVlBpeGVsQnVmZmVyUmVmIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyLmdldCgpOworICAgIHJldHVybiBtX2xhc3RQ
aXhlbEJ1ZmZlcjsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmgKaW5kZXggN2FjNTMyZjBmOTliZjM0NjE2YWRhN2ZhNjIyYjcxODZkZGQ1ZDdh
Ni4uNTVhNGQ1OGY4ZDgwZjY5OTRiM2Y0Mjk5ZTk5YjUxYjUyNjM4NWYyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmgKQEAgLTIyMSw3ICsyMjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBk
YXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAgIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7
CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlk
ZTsKICAgICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3RlbSBmbGlwcyB0aGUgaW50
byBvciBvdXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KaW5kZXggMzQwNTRiN2JhYTQ5NjY3MjcxYmMzMmVkYmM2NWY1OTA5NzczOGJiNi4u
MjhiZGMzY2I0MGIyN2I3ZDQ4OTZjYzAwNGQxNTJhZGY3YzkyYjQ4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQpAQCAtNjIzLDcgKzYyMyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0Nv
CiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBv
dXRwdXRSZWN0LCBpbWFnZVJlY3QpOwogfQogCi1DVlBpeGVsQnVmZmVyUmVmIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCitS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJl
ZW4gYXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEg
c2lnbmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlm
IHRoYXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAt
NjM4LDcgKzYzOCw3IEBAIENWUGl4ZWxCdWZmZXJSZWYgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lCiAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gbV9sYXN0UGl4ZWxCdWZmZXIuZ2V0KCk7
CisgICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CmluZGV4IDJjNDc0ZTExN2FkNzJmNTEyMzBlNjA4NDIwM2QzMDQzMWYxYjYzNzYuLmM1MDZlMDRm
YjcxOWFiODcxMmUyZDAyOTlmNmU1ZmIwYmQxNjZhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBAIC0zNSw2ICszNSw4IEBA
CiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX1JHQjEwIDEKICNlbmRpZgogCit1c2luZyBDVlBpeGVs
QnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNz
IE1hY2hTZW5kUmlnaHQ7CiBjbGFzcyBUZXh0U3RyZWFtOwpAQCAtMTA0LDYgKzEwNiw3IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gY3JlYXRlRnJvbVNlbmRSaWdodChjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmJiwgQ0dDb2xv
clNwYWNlUmVmKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRl
RnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVmLCBDR0NvbG9yU3BhY2VSZWYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1hZ2Uo
Q0dJbWFnZVJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+IGNyZWF0ZUZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmKTsKICAgICAK
ICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQogICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1hZ2VCdWZmZXIoUmVmUHRyPEltYWdl
QnVmZmVyPik7CkBAIC0xMjIsNiArMTI1LDcgQEAgcHVibGljOgogICAgIC8vIHRoZSBzdXJmYWNl
LCBvciBhbiBleHBlbnNpdmUgR1BVIHJlYWRiYWNrIGNhbiByZXN1bHQuCiAgICAgV0VCQ09SRV9F
WFBPUlQgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlKCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBzaW5rSW50b0ltYWdlKHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIoKTsKIAogI2lmZGVmIF9fT0JKQ19fCiAgICAg
aWQgYXNMYXllckNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gKF9fYnJpZGdlIGlkKW1fc3VyZmFj
ZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvSU9TdXJmYWNlLm1tCmluZGV4IGNmN2NiNmU1M2NkNDk4MzZjYjQ5M2FhY2JlMTZiYjA1ZTQz
NzRiNjguLjU0OGEyZTZlYWM2YWQ5ZmE4YzgzMjNmOTZiMWVlNWU3NjJlMjNhNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0K
QEAgLTQwLDYgKzQwLDggQEAKICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKKyNpbXBvcnQgPFdlYkNvcmUvQ29yZVZpZGVvU29mdExp
bmsuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gSU9TdXJmYWNlOjpzdXJmYWNlRnJvbVBvb2woSW50U2l6ZSBzaXplLCBJbnRTaXpl
IGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwgRm9ybWF0IHBpeGVsRm9y
bWF0KQpAQCAtMTAyLDYgKzEwNCwyMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1
cmZhY2U6OmNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVmIGltYWdlKQogICAgIHJldHVybiBzdXJm
YWNlOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZUZy
b21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKQoreworICAgIGlmICgh
cGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBzdXJmYWNl
ID0gQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZShwaXhlbEJ1ZmZlcik7CisgICAgaWYgKCFzdXJm
YWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gY29sb3JTcGFjZSA9IENW
SW1hZ2VCdWZmZXJHZXRDb2xvclNwYWNlKHBpeGVsQnVmZmVyKTsKKyAgICBpZiAoIWNvbG9yU3Bh
Y2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGNyZWF0ZUZyb21TdXJm
YWNlKHN1cmZhY2UsIGNvbG9yU3BhY2UpOworfQorCiB2b2lkIElPU3VyZmFjZTo6bW92ZVRvUG9v
bChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZhY2UpCiB7CiAgICAgSU9TdXJmYWNl
UG9vbDo6c2hhcmVkUG9vbCgpLmFkZFN1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSk7CkBAIC0yODAs
NiArMjk4LDE2IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBJT1N1cmZhY2U6OnNpbmtJbnRvSW1h
Z2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3VyZmFjCiAgICAgcmV0dXJuIGFkb3B0Q0Yo
Q0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1hZ2VSZWZlcmVuY2Uoc3VyZmFjZS0+ZW5zdXJlUGxh
dGZvcm1Db250ZXh0KCkpKTsKIH0KIAorUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IElPU3Vy
ZmFjZTo6Y3JlYXRlUGl4ZWxCdWZmZXIoKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcmF3QnVm
ZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRo
SU9TdXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc3VyZmFjZS5nZXQoKSwgbnVsbHB0ciwg
JnJhd0J1ZmZlcik7CisgICAgaWYgKHN0YXR1cyA9PSBub0VyciAmJiByYXdCdWZmZXIpCisgICAg
ICAgIHJldHVybiBhZG9wdENGKHJhd0J1ZmZlcik7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
Kwogdm9pZCBJT1N1cmZhY2U6OnNldENvbnRleHRTaXplKEludFNpemUgY29udGV4dFNpemUpCiB7
CiAgICAgaWYgKGNvbnRleHRTaXplID09IG1fY29udGV4dFNpemUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmNwcAppbmRleCBhZjk5MWIxNzVlOTVkNmM4NDZiYmE2ZWQ5NDVkYjUy
MzFkN2NkNThjLi5jYmQ2NTkxMTkzMjUxZGQxN2QxZmIwNGQ1YzA0YWZlYjk3YjM5ZWZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTI3MSw3ICsyNzEsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBs
YXllciYgcGxheWVyLCBQbGF0Zm9ybQogCiAgICAgVU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5
QWxwaGEpOwogICAgIEFTU0VSVF9VTlVTRUQob3V0cHV0VGFyZ2V0LCBvdXRwdXRUYXJnZXQgPT0g
R3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwotICAgIHJldHVybiBjb250ZXh0Q1YtPmNv
cHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShwaXhlbEJ1ZmZlciwgb3V0cHV0VGV4dHVyZSwgbGV2ZWws
IGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShm
bGlwWSkpOworICAgIHJldHVybiBjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShw
aXhlbEJ1ZmZlci5nZXQoKSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOwogI2Vsc2UKICAg
ICByZXR1cm4gcGxheWVyLmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSh0aGlzLCBv
dXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cAppbmRleCBiNGQxZWFmMmNkYjE5YjA4MmYyZWUwY2IyNmNkZDA3ZTcyNTFkMWE5Li4zOTFhNGQ0
ZWQ5NTdiMTg0MzU0MjgyOWJmYjg4MjA5ZGExYjE3NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBA
IC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JT1N1
cmZhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFJlY3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUu
aD4KQEAgLTEwMTAsNiArMTAxMSw2MCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNl
dFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9vbCBzaG91bGRFbmFibAogI2VuZGlm
CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50
VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3BsYXllcikgeworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYXV0byBuYXRpdmVJbWFnZSA9IG1fcGxheWVyLT5uYXRpdmVJbWFnZUZvckN1cnJl
bnRUaW1lKCk7CisgICAgaWYgKCFuYXRpdmVJbWFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEY6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBw
bGF0Zm9ybUltYWdlID0gbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKTsKKyAgICBpZiAoIXBs
YXRmb3JtSW1hZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6
Y3JlYXRlRnJvbUltYWdlKHBsYXRmb3JtSW1hZ2UuZ2V0KCkpOworICAgIGlmICghc3VyZmFjZSkg
eworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoc3VyZmFjZS0+Y3JlYXRlU2VuZFJp
Z2h0KCkpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnBpeGVsQnVmZmVyRm9y
Q3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXVEY6Ok1hY2hTZW5k
UmlnaHQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworI2lmICFVU0UoQVZGT1VOREFUSU9O
KQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7CisjZWxzZQorICAgIGlmICgh
bV9wbGF5ZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBtX3BsYXllci0+
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlRnJvbVBpeGVsQnVm
ZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKyAgICBpZiAoIXN1cmZhY2UpIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpKTsKKyNlbmRp
ZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDYyYzU1MGM0YTg3MDJjMDU1YmRiNmE1NzE1YjhlZmNk
MDdjZTRhZDAuLmU3MGNhMWQ2MWMzM2M2OTRhNjlmZGJlOGExZTU0ZjQzOTc4NTQyNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaApAQCAtMjg2LDYgKzI4Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVB
dWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAgICAgdm9pZCBzZXRTaG91bGRFbmFibGVBdWRpb1NvdXJj
ZVByb3ZpZGVyKGJvb2wpOwogCisgICAgdm9pZCBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmKT4mJik7
CisgICAgdm9pZCBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmKT4mJik7CisKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwg
eyByZXR1cm4gbV9sb2dnZXI7IH0KICAgICBjb25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihtX2NvbmZpZ3Vy
YXRpb24ubG9nSWRlbnRpZmllcik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggODM2N2VjM2ZiMzI4YTg1Zjk0YWYzM2MzMmQ3YjFlMDIzNWJlNDJiNS4uY2E2ZThhMWY4
OGI0ODY3MzkyNzgzMjcwNjQ3N2FmMmQ2MmY5YjQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4KQEAgLTEyNiw2ICsxMjYsOSBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBs
YXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIENyZWF0ZUF1ZGlvU291cmNlUHJvdmlkZXIo
KQogICAgIFNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9vbCBzaG91bGRFbmFi
bGUpCiAjZW5kaWYKKworICAgIE5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSAtPiAoT3B0aW9u
YWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0KSBTeW5jaHJvbm91cworICAgIFBpeGVsQnVmZmVy
Rm9yQ3VycmVudFRpbWUoKSAtPiAoT3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0KSBT
eW5jaHJvbm91cwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRl
eCA4Y2I0NjE4MjVjYzY0MTk1ODFiMzdkZGExYzQ2NjkzNjIyNTdjOWM4Li4yYWRlYWNjZTBkMTQ1
NmY5MzA1ZmYwMzhhN2E3Y2Y2YmM0MTczMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
TGF5ZXIuaD4KQEAgLTgzOCwxNCArODM5LDIyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uCiB9
CiAjZW5kaWYKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChjb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNv
bnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBuYXRpdmVJbWFn
ZUZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFuYXRpdmVJbWFnZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgRmxvYXRSZWN0IGltYWdlUmVjdCB7IEZsb2F0UG9pbnQ6Onplcm8oKSwgbmF0aXZl
SW1hZ2UtPnNpemUoKSB9OworICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCpuYXRpdmVJbWFn
ZSwgaW1hZ2VSZWN0LnNpemUoKSwgcmVjdCwgaW1hZ2VSZWN0KTsKIH0KIAogI2lmICFVU0UoQVZG
T1VOREFUSU9OKQpAQCAtODU0LDEzICs4NjMsMjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGkK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KKyNlbGlmICFQTEFU
Rk9STShDT0NPQSkKK1JldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09D
T0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KKyNlbmRpZgogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
aAppbmRleCBmMjhlYTkzMmZjYzE1M2Q4YjcwMzNkZjExMDIyMjU5NWMxZDVkODc3Li5jOTk1MjE5
NzVhMWQ3NjNkMTA5NTUxZDg0N2ZhNmQ0OGFiZDRjOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKQEAgLTI4Myw2ICsyODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JikgZmluYWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5
VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0wq
LCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVt
LCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CisjZWxzZQorICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAjZW5kaWYK
ICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29j
b2EubW0KaW5kZXggNGYzZGU3NzNjMTIzNmYzMzBmNTQwYTljOGQ2NDEwMGNmYjA1YmJjMC4uN2E3
ZmQ2YzE3OTFjNDNmNjUxZGYyMmVlZTExMDgzNDdhMWZlMWQ4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29h
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCkBAIC0yOSw4ICsyOSwxMyBAQAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNpbXBvcnQgIlJlbW90
ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbXBvcnQgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlN
ZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1wb3J0IDxX
ZWJDb3JlL0NvbG9yU3BhY2VDRy5oPgorI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01Nyw2ICs2
Miw0MiBAQCBQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQogfQogI2VuZGlmCiAKK1JlZlB0cjxOYXRpdmVJ
bWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1l
KCkKK3sKKyAgICBPcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQ7CisgICAgaWYgKCFj
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Ok5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Ok5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWU6OlJlcGx5KHNlbmRSaWdodCksIG1faWQpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghc2VuZFJpZ2h0KQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6
Y3JlYXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKCpzZW5kUmlnaHQpLCBzUkdCQ29sb3JTcGFjZVJl
ZigpKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
YXV0byBwbGF0Zm9ybUltYWdlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpzaW5rSW50b0ltYWdlKFdU
Rk1vdmUoc3VyZmFjZSkpOworICAgIGlmICghcGxhdGZvcm1JbWFnZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKHBsYXRm
b3JtSW1hZ2UpKTsKK30KKworUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCit7CisgICAgT3B0aW9u
YWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0OworICAgIGlmICghY29ubmVjdGlvbigpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpOYXRpdmVJbWFnZUZv
ckN1cnJlbnRUaW1lOjpSZXBseShzZW5kUmlnaHQpLCBtX2lkKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBpZiAoIXNlbmRSaWdodCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmln
aHQoV1RGTW92ZSgqc2VuZFJpZ2h0KSwgbnVsbHB0cik7CisgICAgaWYgKCFzdXJmYWNlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBzdXJmYWNlLT5jcmVhdGVQaXhlbEJ1
ZmZlcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCg==
</data>
<flag name="commit-queue"
          id="440497"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421618</attachid>
            <date>2021-02-25 23:55:48 -0800</date>
            <delta_ts>2021-02-26 01:03:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222461-20210225235547.patch</filename>
            <type>text/plain</type>
            <size>26266</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlhNzc1YmYzZjViZmU2
ZDAxOWFkYjhjMTdhM2VhNjc3MTYzNDg3MC4uY2M3N2IyNjdiZWFjZDIwZWYyNDhiOTk0YzE4ZmZh
MGE0OTJhNjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAyLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBBbGxvdyBwYWlu
dGluZyBvZiBHUFVQIGhvc3RlZCB2aWRlbyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gQ2hhbmdlIHRo
ZSByZXR1cm4gdHlwZSBvZiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgdG8gcmV0dXJuIGEg
UmV0YWluUHRyPD4KKyAgICAgICAgICByYXRoZXIgdGhhbiBqdXN0IGEgcmF3IHBvaW50ZXIuCisK
KyAgICAgICAgLSBBZGQgdXRpbGl0eSBtZXRob2RzIG9uIElPU3VyZmFjZSB0byByZXRyaWV2ZSBh
biBJT1N1cmZhY2UgZnJvbSBhIENWUGl4ZWxCdWZmZXIKKyAgICAgICAgICBhbmQgdG8gcmVjb25z
dGl0dXRlIGEgQ1ZQaXhlbEJ1ZmZlciBmcm9tIGFuIElPU3VyZmFjZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVG
cm9tUGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVQaXhl
bEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisKIDIwMjEtMDItMjMgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmVhbWxpbmUgSW1hZ2VEYXRhIHNpemUgY2Fs
Y3VsYXRpb25zIGFuZCBoYW5kbGUgb3V0LW9mLW1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNWNmZjZhY2Qz
NzdjY2ZmM2Q2NDRiNzMzODkyZGFhZWUyZWQ4ZjgxLi5hYmMzZGJhZWMzZDc4NjlmMGJiMmY3N2I0
YzZjMTBkZGFmMDZkMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTI1ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBBbGxvdyBw
YWludGluZyBvZiBHUFVQIGhvc3RlZCB2aWRlbyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ2MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDb2Nv
YSBpbXBsZW1lbnRhdGlvbnMgZm9yIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBhbmQgcGl4
ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpLgorICAgICAgICBVc2UgdGhvc2UgbWV0aG9kcyB0byBp
bXBsZW1lbnQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoKS4KKworICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5hdGl2ZUlt
YWdlRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOgorCiAyMDIxLTAyLTI1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBTb21lIG1l
ZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMg
ZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZp
ZGVvU29mdExpbmsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVv
U29mdExpbmsuY3BwCmluZGV4IGEwNWZiYjM3YzU2NmIyMWQ2Y2QxMWZkYjBlOWMwZmUzY2IxZjMz
MmQuLjVmZjIzYzNiMGQ2ZDA0MTkxYWI1NjA1YjFhOGQ2ZTA3NmIxOTBmZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKQEAg
LTQ2LDYgKzQ2LDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29y
ZVZpZGVvLCBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGUs
IENWUmV0dXJuLChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBwb29s
QXR0cmlidXRlcywgQ0ZEaWN0aW9uYXJ5UmVmIHBpeGVsQnVmZmVyQXR0cmlidXRlcywgQ1ZQaXhl
bEJ1ZmZlclBvb2xSZWYqIHBvb2xPdXQpLCAoYWxsb2NhdG9yLCBwb29sQXR0cmlidXRlcywgcGl4
ZWxCdWZmZXJBdHRyaWJ1dGVzLCBwb29sT3V0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZl
ciwgQ1ZSZXR1cm4sIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIENWUGl4ZWxCdWZmZXJQb29s
UmVmIHBpeGVsQnVmZmVyUG9vbCwgQ1ZQaXhlbEJ1ZmZlclJlZiogcGl4ZWxCdWZmZXJPdXQpLCAo
YWxsb2NhdG9yLCBwaXhlbEJ1ZmZlclBvb2wsIHBpeGVsQnVmZmVyT3V0KSkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywgQ1ZQaXhlbEJ1ZmZlckdldElP
U3VyZmFjZSwgSU9TdXJmYWNlUmVmLCAoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciksIChw
aXhlbEJ1ZmZlcikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBDb3Jl
VmlkZW8sIENWSW1hZ2VCdWZmZXJHZXRDb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYsIChDVklt
YWdlQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKKwogU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhl
bEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYsIFdFQkNPUkVfRVhQT1JUKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhl
bEJ1ZmZlckNHQml0bWFwQ29udGV4dENvbXBhdGliaWxpdHlLZXksIENGU3RyaW5nUmVmKQogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBrQ1ZQaXhlbEJ1
ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5oCmluZGV4IGFlNmNjZDdi
M2Y1MjlhYTRmNDU4ZWYzOTg1OWQxZmFhZGYwMDQ3NzcuLjk4NWZiZTg2MWVjM2ExYWYyNWY5NDIz
MDkyZGRiNzQ1MGZlYWViZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL0NvcmVWaWRlb1NvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvQ29yZVZpZGVvU29mdExpbmsuaApAQCAtNjIsNiArNjIsOCBAQCBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZh
Y2UsIElPUwogI2RlZmluZSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlIHNvZnRMaW5rX0NvcmVW
aWRlb19DVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJQb29sR2V0UGl4ZWxCdWZmZXJB
dHRyaWJ1dGVzLCBDRkRpY3Rpb25hcnlSZWYsIChDVlBpeGVsQnVmZmVyUG9vbFJlZiBwb29sKSwg
KHBvb2wpKQogI2RlZmluZSBDVlBpeGVsQnVmZmVyUG9vbEdldFBpeGVsQnVmZmVyQXR0cmlidXRl
cyBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZQaXhlbEJ1ZmZlclBvb2xHZXRQaXhlbEJ1ZmZlckF0dHJp
YnV0ZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZJbWFnZUJ1ZmZlckdldENvbG9yU3BhY2UsIENHQ29sb3JTcGFjZVJlZiwgKENWSW1hZ2VCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZmZXIpKQorI2RlZmluZSBDVkltYWdlQnVmZmVy
R2V0Q29sb3JTcGFjZSBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZJbWFnZUJ1ZmZlckdldENvbG9yU3Bh
Y2UKIAogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBr
Q1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleSwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtD
VlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IGdldF9Db3JlVmlkZW9fa0NWUGl4ZWxCdWZm
ZXJQaXhlbEZvcm1hdFR5cGVLZXkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDRiMGFjYzdkYzEwYTAzZmFlMTA5ZjUyMzY5YjY5
NjBhYjE1OGYwMTUuLmM2ZTU5OGM5ZGJkZDA1ZmE1YzA4OTNmMzMxOWE3YjczZDNhZmI1NmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTEwMTUsNyArMTAxNSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKIAogI2Vsc2UKIAot
Q1ZQaXhlbEJ1ZmZlclJlZiBNZWRpYVBsYXllcjo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgp
CitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXI6OnBpeGVsQnVmZmVyRm9y
Q3VycmVudFRpbWUoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPnBpeGVsQnVmZmVyRm9yQ3Vy
cmVudFRpbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oCmluZGV4IDRkYjlkNzI1ODYzM2YxYmQ0YzBmNjliNjIyZTdhYjAzMjJmYzIwODku
LmY4MTEzMjZkMjVmYjFhYTJhMDk5Mjc5MzUzNmU4OTAyZDU4ZjI3NTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNDQ0LDcgKzQ0NCw3
IEBAIHB1YmxpYzoKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBib29sIGNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmpl
Y3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRl
cm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11bHRp
cGx5QWxwaGEsIGJvb2wgZmxpcFkpOwogI2Vsc2UKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwogI2VuZGlmCiAKICAgICBSZWZQdHI8TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggYzZhN2Nj
Mzg4ZjJmMzRhM2Y0NDEyM2UyZjI1ZDUzNzk3OTlhYTI4Ni4uYmRkOTkwNmFkNjY1NzhmOGMwMjU3
ZWU0NGVhZGYyNGQ1OTU4NGQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJs
aWM6CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmpl
Y3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29s
LCBib29sKSB7IHJldHVybiBmYWxzZTsgfQogI2Vsc2UKLSAgICB2aXJ0dWFsIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAg
ICB2aXJ0dWFsIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAgICAgdmlydHVhbCBSZWZQdHI8
TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRy
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAxNDUxYWNjMzlkODc3ZDk4ZjdhYTk2ODQ2
N2RmYmU3MjYwMGRiOGY5Li45Nzg3M2ZhYWVkN2RmNjBiNmZjMjU3Y2ZjZmQwYjI5ZTk1MjcxYzNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0yNTQsNyArMjU0LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsK
ICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKIAotICAg
IENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtl
eUFkZGVkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA0MjE1ZjliMTJmMzcx
ZGU2MDc1YWVhNzFmMWJmZGY5YjM3N2YyNzQ3Li41NzYxYzA5OWIxZjE5NGZhMWYwZDgwM2M2OTVk
MDQyZmJlNDQ4M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTIzOTEsMTMgKzIzOTEs
MTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhW
aWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGMKIAogfQogCi1DVlBpeGVsQnVmZmVyUmVmIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUoKQorUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxh
c3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyLmdldCgpOworICAg
IHJldHVybiBtX2xhc3RQaXhlbEJ1ZmZlcjsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1l
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggN2FjNTMyZjBmOTliZjM0NjE2YWRhN2Zh
NjIyYjcxODZkZGQ1ZDdhNi4uNTVhNGQ1OGY4ZDgwZjY5OTRiM2Y0Mjk5ZTk5YjUxYjUyNjM4NWYy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMSw3ICsyMjEsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJy
aWRlOwotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZp
bmFsOworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmco
KSBjb25zdCBvdmVycmlkZTsKICAgICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3Rl
bSBmbGlwcyB0aGUgaW50byBvciBvdXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMzQwNTRiN2JhYTQ5NjY3MjcxYmMzMmVkYmM2
NWY1OTA5NzczOGJiNi4uMjhiZGMzY2I0MGIyN2I3ZDQ4OTZjYzAwNGQxNTJhZGY3YzkyYjQ4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjIzLDcgKzYyMyw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29u
dGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFn
ZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwogfQogCi1DVlBpeGVsQnVmZmVy
UmVmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSgpCitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKIHsKICAg
ICAvLyBXZSBoYXZlIGJlZW4gYXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28g
dGFrZSB0aGF0IGFzIGEgc2lnbmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBz
ZXNzaW9uLCBldmVuIGlmIHRoYXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJl
IGRpc3BsYXllZApAQCAtNjM4LDcgKzYzOCw3IEBAIENWUGl4ZWxCdWZmZXJSZWYgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gbV9sYXN0UGl4
ZWxCdWZmZXIuZ2V0KCk7CisgICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOwogfQogCiBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aGFzQXZhaWxhYmxlVmlkZW9G
cmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oCmluZGV4IDJjNDc0ZTExN2FkNzJmNTEyMzBlNjA4NDIwM2QzMDQzMWYx
YjYzNzYuLmM1MDZlMDRmYjcxOWFiODcxMmUyZDAyOTlmNmU1ZmIwYmQxNjZhZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBA
IC0zNSw2ICszNSw4IEBACiAjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX1JHQjEwIDEKICNlbmRpZgog
Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCiBuYW1lc3Bh
Y2UgV1RGIHsKIGNsYXNzIE1hY2hTZW5kUmlnaHQ7CiBjbGFzcyBUZXh0U3RyZWFtOwpAQCAtMTA0
LDYgKzEwNiw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbVNlbmRSaWdodChjb25zdCBXVEY6Ok1hY2hTZW5k
UmlnaHQmJiwgQ0dDb2xvclNwYWNlUmVmKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gY3JlYXRlRnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVmLCBDR0NvbG9yU3BhY2VSZWYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBj
cmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVm
ZmVyUmVmKTsKICAgICAKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tSW1hZ2VCdWZm
ZXIoUmVmUHRyPEltYWdlQnVmZmVyPik7CkBAIC0xMjIsNiArMTI1LDcgQEAgcHVibGljOgogICAg
IC8vIHRoZSBzdXJmYWNlLCBvciBhbiBleHBlbnNpdmUgR1BVIHJlYWRiYWNrIGNhbiByZXN1bHQu
CiAgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBzaW5rSW50
b0ltYWdlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIoKTsKIAogI2lmZGVm
IF9fT0JKQ19fCiAgICAgaWQgYXNMYXllckNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gKF9fYnJp
ZGdlIGlkKW1fc3VyZmFjZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IGNmN2NiNmU1M2NkNDk4MzZjYjQ5
M2FhY2JlMTZiYjA1ZTQzNzRiNjguLjU0OGEyZTZlYWM2YWQ5ZmE4YzgzMjNmOTZiMWVlNWU3NjJl
MjNhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UubW0KQEAgLTQwLDYgKzQwLDggQEAKICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKKyNpbXBvcnQgPFdlYkNvcmUv
Q29yZVZpZGVvU29mdExpbmsuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbmxpbmUgc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4gSU9TdXJmYWNlOjpzdXJmYWNlRnJvbVBvb2woSW50U2l6
ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwg
Rm9ybWF0IHBpeGVsRm9ybWF0KQpAQCAtMTAyLDYgKzEwNCwyMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8
SU9TdXJmYWNlPiBJT1N1cmZhY2U6OmNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVmIGltYWdlKQog
ICAgIHJldHVybiBzdXJmYWNlOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1
cmZhY2U6OmNyZWF0ZUZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
KQoreworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgYXV0byBzdXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZShwaXhlbEJ1ZmZlcik7
CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8g
Y29sb3JTcGFjZSA9IENWSW1hZ2VCdWZmZXJHZXRDb2xvclNwYWNlKHBpeGVsQnVmZmVyKTsKKyAg
ICBpZiAoIWNvbG9yU3BhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJu
IGNyZWF0ZUZyb21TdXJmYWNlKHN1cmZhY2UsIGNvbG9yU3BhY2UpOworfQorCiB2b2lkIElPU3Vy
ZmFjZTo6bW92ZVRvUG9vbChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIHN1cmZhY2UpCiB7
CiAgICAgSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLmFkZFN1cmZhY2UoV1RGTW92ZShzdXJm
YWNlKSk7CkBAIC0yODAsNiArMjk4LDE2IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBJT1N1cmZh
Y2U6OnNpbmtJbnRvSW1hZ2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3VyZmFjCiAgICAg
cmV0dXJuIGFkb3B0Q0YoQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1hZ2VSZWZlcmVuY2Uoc3Vy
ZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCkpKTsKIH0KIAorUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IElPU3VyZmFjZTo6Y3JlYXRlUGl4ZWxCdWZmZXIoKQoreworICAgIENWUGl4ZWxC
dWZmZXJSZWYgcmF3QnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxC
dWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fc3VyZmFjZS5n
ZXQoKSwgbnVsbHB0ciwgJnJhd0J1ZmZlcik7CisgICAgaWYgKHN0YXR1cyA9PSBub0VyciAmJiBy
YXdCdWZmZXIpCisgICAgICAgIHJldHVybiBhZG9wdENGKHJhd0J1ZmZlcik7CisKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwogdm9pZCBJT1N1cmZhY2U6OnNldENvbnRleHRTaXplKEludFNpemUg
Y29udGV4dFNpemUpCiB7CiAgICAgaWYgKGNvbnRleHRTaXplID09IG1fY29udGV4dFNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCBhZjk5MWIxNzVlOTVkNmM4
NDZiYmE2ZWQ5NDVkYjUyMzFkN2NkNThjLi5jYmQ2NTkxMTkzMjUxZGQxN2QxZmIwNGQ1YzA0YWZl
Yjk3YjM5ZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTI3
MSw3ICsyNzEsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjb3B5VGV4dHVyZUZy
b21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybQogCiAgICAgVU5VU0VEX1ZBUklB
QkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VSVF9VTlVTRUQob3V0cHV0VGFyZ2V0LCBv
dXRwdXRUYXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwotICAgIHJldHVy
biBjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShwaXhlbEJ1ZmZlciwgb3V0cHV0
VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29u
dGV4dEdMOjpGbGlwWShmbGlwWSkpOworICAgIHJldHVybiBjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1
ZmZlclRvVGV4dHVyZShwaXhlbEJ1ZmZlci5nZXQoKSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlw
WSkpOwogI2Vsc2UKICAgICByZXR1cm4gcGxheWVyLmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZSh0aGlzLCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5h
bEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCBiNGQxZWFmMmNkYjE5YjA4MmYyZWUwY2IyNmNkZDA3ZTcy
NTFkMWE5Li4zOTFhNGQ0ZWQ5NTdiMTg0MzU0MjgyOWJmYjg4MjA5ZGExYjE3NWFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiVGV4dFRyYWNrUHJpdmF0
ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVSZW1vdGVDb25m
aWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVBsYXllclByaXZhdGUuaD4KQEAgLTEwMTAsNiArMTAxMSw2MCBAQCB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OnNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9vbCBzaG91
bGRFbmFibAogI2VuZGlmCiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdURjo6
TWFjaFNlbmRSaWdodD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX3Bs
YXllcikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBuYXRpdmVJbWFnZSA9IG1fcGxheWVyLT5uYXRp
dmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFuYXRpdmVJbWFnZSkgeworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYXV0byBwbGF0Zm9ybUltYWdlID0gbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2Uo
KTsKKyAgICBpZiAoIXBsYXRmb3JtSW1hZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGOjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc3VyZmFj
ZSA9IElPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKHBsYXRmb3JtSW1hZ2UuZ2V0KCkpOworICAg
IGlmICghc3VyZmFjZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoc3VyZmFj
ZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxXVEY6Ok1hY2hTZW5kUmlnaHQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworI2lmICFV
U0UoQVZGT1VOREFUSU9OKQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7Cisj
ZWxzZQorICAgIGlmICghbV9wbGF5ZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
OjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBtX3BsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghcGl4
ZWxCdWZmZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlRnJvbVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpKTsKKyAgICBpZiAoIXN1cmZhY2Up
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1cmZhY2UtPmNyZWF0ZVNlbmRS
aWdodCgpKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDYyYzU1MGM0YTg3MDJjMDU1
YmRiNmE1NzE1YjhlZmNkMDdjZTRhZDAuLmU3MGNhMWQ2MWMzM2M2OTRhNjlmZGJlOGExZTU0ZjQz
OTc4NTQyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtMjg2LDYgKzI4Niw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjcmVhdGVBdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAgICAgdm9pZCBzZXRTaG91bGRF
bmFibGVBdWRpb1NvdXJjZVByb3ZpZGVyKGJvb2wpOwogCisgICAgdm9pZCBuYXRpdmVJbWFnZUZv
ckN1cnJlbnRUaW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V1RGOjpNYWNoU2Vu
ZFJpZ2h0PiYmKT4mJik7CisgICAgdm9pZCBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmKT4mJik7CisK
ICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVy
TG9nZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KICAgICBjb25zdCB2b2lkKiBtZWRp
YVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZv
aWQqPihtX2NvbmZpZ3VyYXRpb24ubG9nSWRlbnRpZmllcik7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggODM2N2VjM2ZiMzI4YTg1Zjk0YWYzM2MzMmQ3YjFlMDIzNWJl
NDJiNS4uY2E2ZThhMWY4OGI0ODY3MzkyNzgzMjcwNjQ3N2FmMmQ2MmY5YjQxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEyNiw2ICsxMjYsOSBAQCBtZXNzYWdlcyAt
PiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIENyZWF0ZUF1ZGlv
U291cmNlUHJvdmlkZXIoKQogICAgIFNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIo
Ym9vbCBzaG91bGRFbmFibGUpCiAjZW5kaWYKKworICAgIE5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSAtPiAoT3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0KSBTeW5jaHJvbm91cwor
ICAgIFBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSAtPiAoT3B0aW9uYWw8TWFjaFNlbmRSaWdo
dD4gc2VuZFJpZ2h0KSBTeW5jaHJvbm91cwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcAppbmRleCA4Y2I0NjE4MjVjYzY0MTk1ODFiMzdkZGExYzQ2NjkzNjIyNTdjOWM4
Li4yYWRlYWNjZTBkMTQ1NmY5MzA1ZmYwMzhhN2E3Y2Y2YmM0MTczMmYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBs
YXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KQEAgLTgzOCwxNCArODM5LDIyIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgY29uCiB9CiAjZW5kaWYKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBwYWludEN1cnJl
bnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoY29udGV4dC5w
YWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbmF0aXZlSW1h
Z2UgPSBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFuYXRpdmVJbWFnZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRSZWN0IGltYWdlUmVjdCB7IEZsb2F0UG9pbnQ6
Onplcm8oKSwgbmF0aXZlSW1hZ2UtPnNpemUoKSB9OworICAgIGNvbnRleHQuZHJhd05hdGl2ZUlt
YWdlKCpuYXRpdmVJbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgcmVjdCwgaW1hZ2VSZWN0KTsKIH0K
IAogI2lmICFVU0UoQVZGT1VOREFUSU9OKQpAQCAtODU0LDEzICs4NjMsMjEgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShX
ZWJDb3JlOjpHcmFwaGkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsK
IH0KKyNlbGlmICFQTEFURk9STShDT0NPQSkKK1JldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQogI2VuZGlmCiAKKyNp
ZiAhUExBVEZPUk0oQ09DT0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KKyNlbmRpZgogCiBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaAppbmRleCBmMjhlYTkzMmZjYzE1M2Q4YjcwMzNkZjExMDIyMjU5NWMx
ZDVkODc3Li5jOTk1MjE5NzVhMWQ3NjNkMTA5NTUxZDg0N2ZhNmQ0OGFiZDRjOWJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI4Myw2ICsyODMsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04p
CiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NH
TGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CisjZWxzZQorICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IG5hdGl2ZUlt
YWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlQ29jb2EubW0KaW5kZXggNGYzZGU3NzNjMTIzNmYzMzBmNTQwYTljOGQ2NDEw
MGNmYjA1YmJjMC4uN2E3ZmQ2YzE3OTFjNDNmNjUxZGYyMmVlZTExMDgzNDdhMWZlMWQ4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCkBAIC0yOSw4
ICsyOSwxMyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCiAK
ICNpbXBvcnQgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbXBvcnQgIlJlbW90ZU1l
ZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW1wb3J0IDxXZWJDb3JlL0NvbG9yU3BhY2VDRy5oPgorI2ltcG9ydCA8V2ViQ29yZS9J
T1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKyNpbXBvcnQgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC01Nyw2ICs2Miw0MiBAQCBQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQogfQogI2VuZGlmCiAK
K1JlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXRpdmVJbWFn
ZUZvckN1cnJlbnRUaW1lKCkKK3sKKyAgICBPcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmln
aHQ7CisgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6Ok5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSwgTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6Ok5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWU6OlJlcGx5KHNlbmRS
aWdodCksIG1faWQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghc2VuZFJp
Z2h0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNv
cmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKCpzZW5kUmlnaHQpLCBz
UkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgYXV0byBwbGF0Zm9ybUltYWdlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpz
aW5rSW50b0ltYWdlKFdURk1vdmUoc3VyZmFjZSkpOworICAgIGlmICghcGxhdGZvcm1JbWFnZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gTmF0aXZlSW1hZ2U6OmNyZWF0
ZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2UpKTsKK30KKworUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgp
Cit7CisgICAgT3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0OworICAgIGlmICghY29u
bmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQaXhl
bEJ1ZmZlckZvckN1cnJlbnRUaW1lKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpOYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lOjpSZXBseShzZW5kUmlnaHQpLCBtX2lkKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIXNlbmRSaWdodCkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNy
ZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZSgqc2VuZFJpZ2h0KSwgbnVsbHB0cik7CisgICAgaWYg
KCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBzdXJmYWNl
LT5jcmVhdGVQaXhlbEJ1ZmZlcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCg==
</data>
<flag name="commit-queue"
          id="440504"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421619</attachid>
            <date>2021-02-26 00:15:44 -0800</date>
            <delta_ts>2021-02-26 11:28:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222461-20210226001543.patch</filename>
            <type>text/plain</type>
            <size>26503</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlhNzc1YmYzZjViZmU2
ZDAxOWFkYjhjMTdhM2VhNjc3MTYzNDg3MC4uYjE2MzljMjlmZGQ4YWJlZThlNjVhYTEyYThhZjlm
NzI4ODJiNDcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTAyLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBBbGxvdyBwYWlu
dGluZyBvZiBHUFVQIGhvc3RlZCB2aWRlbyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gQ2hhbmdlIHRo
ZSByZXR1cm4gdHlwZSBvZiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgdG8gcmV0dXJuIGEg
UmV0YWluUHRyPD4KKyAgICAgICAgICByYXRoZXIgdGhhbiBqdXN0IGEgcmF3IHBvaW50ZXIuCisK
KyAgICAgICAgLSBBZGQgdXRpbGl0eSBtZXRob2RzIG9uIElPU3VyZmFjZSB0byByZXRyaWV2ZSBh
biBJT1N1cmZhY2UgZnJvbSBhIENWUGl4ZWxCdWZmZXIKKyAgICAgICAgICBhbmQgdG8gcmVjb25z
dGl0dXRlIGEgQ1ZQaXhlbEJ1ZmZlciBmcm9tIGFuIElPU3VyZmFjZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5rLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
b2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
OgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVQaXhlbEJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisKIDIwMjEtMDItMjMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFN0cmVhbWxpbmUgSW1hZ2VEYXRhIHNpemUgY2FsY3VsYXRpb25zIGFuZCBoYW5k
bGUgb3V0LW9mLW1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNWNmZjZhY2QzNzdjY2ZmM2Q2NDRiNzMzODky
ZGFhZWUyZWQ4ZjgxLi4zNTRhM2VmNzJiMTVmMmIzMWZmOWZmMWMwYmM5NmVmMzhlM2RkOTAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTI1ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBBbGxvdyBwYWludGluZyBvZiBHUFVQIGhv
c3RlZCB2aWRlbyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQ2MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDb2NvYSBpbXBsZW1lbnRhdGlvbnMg
Zm9yIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBhbmQgcGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZSgpLgorICAgICAgICBVc2UgdGhvc2UgbWV0aG9kcyB0byBpbXBsZW1lbnQgcGFpbnRDdXJy
ZW50RnJhbWVJbkNvbnRleHQoKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFp
bnQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXRpdmVJbWFnZUZvckN1
cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKToKKwogMjAyMS0wMi0yNSAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gU29tZSBtZWRpYS1jYXBh
YmlsaXRpZXMgdGVzdHMgZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlzIGVuYWJsZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRM
aW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVWaWRlb1NvZnRMaW5r
LmNwcAppbmRleCBhMDVmYmIzN2M1NjZiMjFkNmNkMTFmZGIwZTljMGZlM2NiMWYzMzJkLi41ZmYy
M2MzYjBkNmQwNDE5MWFiNTYwNWIxYThkNmUwNzZiMTkwZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuY3BwCkBAIC00Niw2ICs0
Niw4IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywg
Q1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NP
VVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlLCBDVlJldHVy
biwoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDRkRpY3Rpb25hcnlSZWYgcG9vbEF0dHJpYnV0
ZXMsIENGRGljdGlvbmFyeVJlZiBwaXhlbEJ1ZmZlckF0dHJpYnV0ZXMsIENWUGl4ZWxCdWZmZXJQ
b29sUmVmKiBwb29sT3V0KSwgKGFsbG9jYXRvciwgcG9vbEF0dHJpYnV0ZXMsIHBpeGVsQnVmZmVy
QXR0cmlidXRlcywgcG9vbE91dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJD
b3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZmZXIsIENWUmV0
dXJuLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhl
bEJ1ZmZlclBvb2wsIENWUGl4ZWxCdWZmZXJSZWYqIHBpeGVsQnVmZmVyT3V0KSwgKGFsbG9jYXRv
ciwgcGl4ZWxCdWZmZXJQb29sLCBwaXhlbEJ1ZmZlck91dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBDb3JlVmlkZW8sIENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2Us
IElPU3VyZmFjZVJlZiwgKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpLCAocGl4ZWxCdWZm
ZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgQ29yZVZpZGVvLCBD
VkltYWdlQnVmZmVyR2V0Q29sb3JTcGFjZSwgQ0dDb2xvclNwYWNlUmVmLCAoQ1ZJbWFnZUJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciksIChwaXhlbEJ1ZmZlcikpCisKIFNPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJQ
aXhlbEZvcm1hdFR5cGVLZXksIENGU3RyaW5nUmVmLCBXRUJDT1JFX0VYUE9SVCkKIFNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJD
R0JpdG1hcENvbnRleHRDb21wYXRpYmlsaXR5S2V5LCBDRlN0cmluZ1JlZikKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxCdWZmZXJDR0lt
YWdlQ29tcGF0aWJpbGl0eUtleSwgQ0ZTdHJpbmdSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9Db3JlVmlkZW9Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvQ29yZVZpZGVvU29mdExpbmsuaAppbmRleCBhZTZjY2Q3YjNmNTI5YWE0
ZjQ1OGVmMzk4NTlkMWZhYWRmMDA0Nzc3Li45ODVmYmU4NjFlYzNhMWFmMjVmOTQyMzA5MmRkYjc0
NTBmZWFlYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db3Jl
VmlkZW9Tb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvcmVW
aWRlb1NvZnRMaW5rLmgKQEAgLTYyLDYgKzYyLDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoV2ViQ29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlLCBJT1MK
ICNkZWZpbmUgQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZSBzb2Z0TGlua19Db3JlVmlkZW9fQ1ZQ
aXhlbEJ1ZmZlckdldElPU3VyZmFjZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2Vi
Q29yZSwgQ29yZVZpZGVvLCBDVlBpeGVsQnVmZmVyUG9vbEdldFBpeGVsQnVmZmVyQXR0cmlidXRl
cywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCksIChwb29sKSkK
ICNkZWZpbmUgQ1ZQaXhlbEJ1ZmZlclBvb2xHZXRQaXhlbEJ1ZmZlckF0dHJpYnV0ZXMgc29mdExp
bmtfQ29yZVZpZGVvX0NWUGl4ZWxCdWZmZXJQb29sR2V0UGl4ZWxCdWZmZXJBdHRyaWJ1dGVzCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBDb3JlVmlkZW8sIENWSW1hZ2VC
dWZmZXJHZXRDb2xvclNwYWNlLCBDR0NvbG9yU3BhY2VSZWYsIChDVkltYWdlQnVmZmVyUmVmIHBp
eGVsQnVmZmVyKSwgKHBpeGVsQnVmZmVyKSkKKyNkZWZpbmUgQ1ZJbWFnZUJ1ZmZlckdldENvbG9y
U3BhY2Ugc29mdExpbmtfQ29yZVZpZGVvX0NWSW1hZ2VCdWZmZXJHZXRDb2xvclNwYWNlCiAKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIENvcmVWaWRlbywga0NWUGl4ZWxC
dWZmZXJQaXhlbEZvcm1hdFR5cGVLZXksIENGU3RyaW5nUmVmKQogI2RlZmluZSBrQ1ZQaXhlbEJ1
ZmZlclBpeGVsRm9ybWF0VHlwZUtleSBnZXRfQ29yZVZpZGVvX2tDVlBpeGVsQnVmZmVyUGl4ZWxG
b3JtYXRUeXBlS2V5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcAppbmRleCA0YjBhY2M3ZGMxMGEwM2ZhZTEwOWY1MjM2OWI2OTYwYWIxNThm
MDE1Li5jNmU1OThjOWRiZGQwNWZhNWMwODkzZjMzMTlhN2I3M2QzYWZiNTZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDE1
LDcgKzEwMTUsNyBAQCBib29sIE1lZGlhUGxheWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9y
bVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqIGNvbnRleHQsCiAKICNlbHNlCiAKLUNWUGl4ZWxC
dWZmZXJSZWYgTWVkaWFQbGF5ZXI6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRU
aW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1l
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAppbmRleCA0ZGI5ZDcyNTg2MzNmMWJkNGMwZjY5YjYyMmU3YWIwMzIyZmMyMDg5Li5mODExMzI2
ZDI1ZmIxYWEyYTA5OTI3OTM1MzZlODkwMmQ1OGYyNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJs
aWM6CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9Q
bGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1
cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKTsKICNlbHNlCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZv
ckN1cnJlbnRUaW1lKCk7CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWUoKTsKICNlbmRpZgogCiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IGM2YTdjYzM4OGYyZjM0
YTNmNDQxMjNlMmYyNWQ1Mzc5Nzk5YWEyODYuLmJkZDk5MDZhZDY2NTc4ZjhjMDI1N2VlNDRlYWRm
MjRkNTk1ODRkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHVibGljOgogI2lm
ICFVU0UoQVZGT1VOREFUSU9OKQogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9Q
bGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dM
ZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkg
eyByZXR1cm4gZmFsc2U7IH0KICNlbHNlCi0gICAgdmlydHVhbCBDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVh
bCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgp
IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUlt
YWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMTQ1MWFjYzM5ZDg3N2Q5OGY3YWE5Njg0NjdkZmJlNzI2
MDBkYjhmOS4uOTc4NzNmYWFlZDdkZjYwYjZmYzI1N2NmY2ZkMGIyOWU5NTI3MWMzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMjU0LDcgKzI1NCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgdm9p
ZCB3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CiAKLSAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOwog
CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBrZXlBZGRlZCgp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNDIxNWY5YjEyZjM3MWRlNjA3NWFl
YTcxZjFiZmRmOWIzNzdmMjc0Ny4uNTc2MWMwOTliMWYxOTRmYTFmMGQ4MDNjNjk1ZDA0MmZiZTQ0
ODNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yMzkxLDEzICsyMzkxLDEzIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRw
dXQoR3JhcGhpY3NDb250ZXh0JiBjCiAKIH0KIAotQ1ZQaXhlbEJ1ZmZlclJlZiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK1Jl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKIHsKICAgICB1cGRhdGVMYXN0UGl4ZWxC
dWZmZXIoKTsKICAgICBpZiAoIW1fbGFzdFBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIHJldHVybiBtX2xhc3RQaXhlbEJ1ZmZlci5nZXQoKTsKKyAgICByZXR1cm4g
bV9sYXN0UGl4ZWxCdWZmZXI7CiB9CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDdhYzUzMmYwZjk5YmYzNDYxNmFkYTdmYTYyMmI3MTg2
ZGRkNWQ3YTYuLjU1YTRkNThmOGQ4MGY2OTk0YjNmNDI5OWU5OWI1MWI1MjYzODVmMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMjEsNyArMjIxLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIHVwZGF0ZUxhc3RJbWFnZSgpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUlu
Q29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAg
ICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAg
ICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgp
IGZpbmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgLy8gY2FsbGVkIHdoZW4gdGhlIHJlbmRlcmluZyBzeXN0ZW0gZmxpcHMg
dGhlIGludG8gb3Igb3V0IG9mIGFjY2VsZXJhdGVkIHJlbmRlcmluZyBtb2RlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCmluZGV4IDM0MDU0YjdiYWE0OTY2NzI3MWJjMzJlZGJjNjVmNTkwOTc3
MzhiYjYuLjI4YmRjM2NiNDBiMjdiN2Q0ODk2Y2MwMDRkMTUyYWRmN2M5MmI0ODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3Jh
cGhpY3NDbwogICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNp
emUoKSwgb3V0cHV0UmVjdCwgaW1hZ2VSZWN0KTsKIH0KIAotQ1ZQaXhlbEJ1ZmZlclJlZiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUoKQorUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgLy8gV2Ug
aGF2ZSBiZWVuIGFza2VkIHRvIHBhaW50IGludG8gYSBXZWJHTCBjYW52YXMsIHNvIHRha2UgdGhh
dCBhcyBhIHNpZ25hbCB0byBjcmVhdGUKICAgICAvLyBhIGRlY29tcHJlc3Npb24gc2Vzc2lvbiwg
ZXZlbiBpZiB0aGF0IG1lYW5zIHRoZSBuYXRpdmUgdmlkZW8gY2FuJ3QgYWxzbyBiZSBkaXNwbGF5
ZWQKQEAgLTYzOCw3ICs2MzgsNyBAQCBDVlBpeGVsQnVmZmVyUmVmIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZQogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVy
LmdldCgpOworICAgIHJldHVybiBtX2xhc3RQaXhlbEJ1ZmZlcjsKIH0KIAogYm9vbCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UuaAppbmRleCAyYzQ3NGUxMTdhZDcyZjUxMjMwZTYwODQyMDNkMzA0MzFmMWI2Mzc2Li5j
NTA2ZTA0ZmI3MTlhYjg3MTJlMmQwMjk5ZjZlNWZiMGJkMTY2YWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAtMzUsNiAr
MzUsOCBAQAogI2RlZmluZSBIQVZFX0lPU1VSRkFDRV9SR0IxMCAxCiAjZW5kaWYKIAordXNpbmcg
Q1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKKwogbmFtZXNwYWNlIFdURiB7
CiBjbGFzcyBNYWNoU2VuZFJpZ2h0OwogY2xhc3MgVGV4dFN0cmVhbTsKQEAgLTEwNCw2ICsxMDYs
NyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+IGNyZWF0ZUZyb21TZW5kUmlnaHQoY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiYs
IENHQ29sb3JTcGFjZVJlZik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
IGNyZWF0ZUZyb21TdXJmYWNlKElPU3VyZmFjZVJlZiwgQ0dDb2xvclNwYWNlUmVmKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJv
bUltYWdlKENHSW1hZ2VSZWYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8SU9TdXJmYWNlPiBjcmVhdGVGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZik7
CiAgICAgCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKICAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gY3JlYXRlRnJvbUltYWdlQnVmZmVyKFJlZlB0
cjxJbWFnZUJ1ZmZlcj4pOwpAQCAtMTIyLDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICAvLyB0aGUg
c3VyZmFjZSwgb3IgYW4gZXhwZW5zaXZlIEdQVSByZWFkYmFjayBjYW4gcmVzdWx0LgogICAgIFdF
QkNPUkVfRVhQT1JUIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZSgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc2lua0ludG9JbWFnZShz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKCk7CiAKICNpZmRlZiBfX09CSkNf
XwogICAgIGlkIGFzTGF5ZXJDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIChfX2JyaWRnZSBpZClt
X3N1cmZhY2UuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCBjZjdjYjZlNTNjZDQ5ODM2Y2I0OTNhYWNiZTE2
YmIwNWU0Mzc0YjY4Li41NDhhMmU2ZWFjNmFkOWZhOGM4MzIzZjk2YjFlZTVlNzYyZTIzYTY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tCkBAIC00MCw2ICs0MCw4IEBACiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2lt
cG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCisjaW1wb3J0IDxXZWJDb3JlL0NvcmVWaWRl
b1NvZnRMaW5rLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEludFNpemUgc2l6ZSwg
SW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UsIEZvcm1hdCBw
aXhlbEZvcm1hdCkKQEAgLTEwMiw2ICsxMDQsMjIgQEAgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZSkKICAgICByZXR1
cm4gc3VyZmFjZTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gSU9TdXJmYWNlOjpj
cmVhdGVGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikKK3sKKyAg
ICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8g
c3VyZmFjZSA9IENWUGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UocGl4ZWxCdWZmZXIpOworICAgIGlm
ICghc3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIGNvbG9yU3Bh
Y2UgPSBDVkltYWdlQnVmZmVyR2V0Q29sb3JTcGFjZShwaXhlbEJ1ZmZlcik7CisgICAgaWYgKCFj
b2xvclNwYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBjcmVhdGVG
cm9tU3VyZmFjZShzdXJmYWNlLCBjb2xvclNwYWNlKTsKK30KKwogdm9pZCBJT1N1cmZhY2U6Om1v
dmVUb1Bvb2woc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBzdXJmYWNlKQogewogICAgIElP
U3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5hZGRTdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpOwpA
QCAtMjgwLDYgKzI5OCwxNiBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gSU9TdXJmYWNlOjpzaW5r
SW50b0ltYWdlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHN1cmZhYwogICAgIHJldHVybiBh
ZG9wdENGKENHSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlUmVmZXJlbmNlKHN1cmZhY2UtPmVu
c3VyZVBsYXRmb3JtQ29udGV4dCgpKSk7CiB9CiAKK1JldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBJT1N1cmZhY2U6OmNyZWF0ZVBpeGVsQnVmZmVyKCkKK3sKKyAgICBDVlBpeGVsQnVmZmVyUmVm
IHJhd0J1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3Jl
YXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3N1cmZhY2UuZ2V0KCksIG51
bGxwdHIsICZyYXdCdWZmZXIpOworICAgIGlmIChzdGF0dXMgPT0gbm9FcnIgJiYgcmF3QnVmZmVy
KQorICAgICAgICByZXR1cm4gYWRvcHRDRihyYXdCdWZmZXIpOworCisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKIHZvaWQgSU9TdXJmYWNlOjpzZXRDb250ZXh0U2l6ZShJbnRTaXplIGNvbnRleHRT
aXplKQogewogICAgIGlmIChjb250ZXh0U2l6ZSA9PSBtX2NvbnRleHRTaXplKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggYWY5OTFiMTc1ZTk1ZDZjODQ2YmJhNmVk
OTQ1ZGI1MjMxZDdjZDU4Yy4uY2JkNjU5MTE5MzI1MWRkMTdkMWZiMDRkNWMwNGFmZWI5N2IzOWVm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCkBAIC0yNzEsNyArMjcx
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y29weVRleHR1cmVGcm9tTWVkaWEo
TWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm0KIAogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVt
dWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91dHB1dFRhcmdldCwgb3V0cHV0VGFy
Z2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLSAgICByZXR1cm4gY29udGV4
dENWLT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxCdWZmZXIsIG91dHB1dFRleHR1cmUs
IGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6
RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5UGl4ZWxCdWZmZXJUb1Rl
eHR1cmUocGl4ZWxCdWZmZXIuZ2V0KCksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKICNl
bHNlCiAgICAgcmV0dXJuIHBsYXllci5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUo
dGhpcywgb3V0cHV0VGV4dHVyZSwgb3V0cHV0VGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQs
IGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlBbHBoYSwgZmxpcFkpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaAppbmRleCA2MmM1NTBjNGE4NzAyYzA1NWJkYjZhNTcxNWI4ZWZjZDA3Y2U0YWQwLi43Zjli
MDQ4ZjNlY2E1ZmRmOGNiY2Q1NzIyNTdkMWE5ZGRhZWM3MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAg
LTI4Niw2ICsyODYsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUF1ZGlvU291cmNlUHJv
dmlkZXIoKTsKICAgICB2b2lkIHNldFNob3VsZEVuYWJsZUF1ZGlvU291cmNlUHJvdmlkZXIoYm9v
bCk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIG5hdGl2ZUltYWdlRm9yQ3VycmVu
dFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXVEY6Ok1hY2hTZW5kUmlnaHQ+
JiYpPiYmKTsKKyAgICB2b2lkIHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxXVEY6Ok1hY2hTZW5kUmlnaHQ+JiYpPiYmKTsKKyNlbmRpZgor
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXll
ckxvZ2dlcigpIGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CiAgICAgY29uc3Qgdm9pZCogbWVk
aWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2
b2lkKj4obV9jb25maWd1cmF0aW9uLmxvZ0lkZW50aWZpZXIpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDgzNjdlYzNmYjMyOGE4NWY5NGFmMzNjMzJkN2IxZTAyMzVi
ZTQyYjUuLjY1NWM2M2MxNWViZmU4ZDg4NjA5YmM5MmY3ZGE1MzVhMjQxYWI4MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjYsNiArMTI2LDExIEBAIG1lc3NhZ2Vz
IC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgQ3JlYXRlQXVk
aW9Tb3VyY2VQcm92aWRlcigpCiAgICAgU2V0U2hvdWxkRW5hYmxlQXVkaW9Tb3VyY2VQcm92aWRl
cihib29sIHNob3VsZEVuYWJsZSkKICNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
TmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChPcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBz
ZW5kUmlnaHQpIFN5bmNocm9ub3VzCisgICAgUGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIC0+
IChPcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQpIFN5bmNocm9ub3VzCisjZW5kaWYK
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
Y29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQppbmRleCA4
M2RhN2E0M2ExZGU1Y2Q0NjVjYmFlODcwN2IxNmVmYjhkY2Y3MjMzLi4wYWY3ZDllZTJhZDA1NDVi
MDAxNDg4OGIyYjNjZTE1OGM1MWQ4MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQu
aCIKICNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW1wb3J0
IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSU9TdXJmYWNlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0
Lmg+CiAKQEAgLTc2LDYgKzc3LDYwIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0
VmlkZW9JbmxpbmVTaXplRmVuY2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpCiAgICAgc2V0
VmlkZW9JbmxpbmVTaXplSWZQb3NzaWJsZSgqbV9pbmxpbmVMYXllckhvc3RpbmdDb250ZXh0LCBz
aXplKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpuYXRpdmVJbWFnZUZvckN1
cnJlbnRUaW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJp
Z2h0PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fcGxheWVyKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gbV9wbGF5ZXItPm5hdGl2ZUltYWdlRm9y
Q3VycmVudFRpbWUoKTsKKyAgICBpZiAoIW5hdGl2ZUltYWdlKSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURjo6bnVsbG9wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBh
dXRvIHBsYXRmb3JtSW1hZ2UgPSBuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpOworICAgIGlm
ICghcGxhdGZvcm1JbWFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxv
cHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzdXJmYWNlID0gV2ViQ29y
ZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UocGxhdGZvcm1JbWFnZS5nZXQoKSk7CisgICAg
aWYgKCFzdXJmYWNlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdXJmYWNl
LT5jcmVhdGVTZW5kUmlnaHQoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFdURjo6TWFjaFNlbmRSaWdodD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisjaWYgIVVT
RShBVkZPVU5EQVRJT04pCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsKKyNl
bHNlCisgICAgaWYgKCFtX3BsYXllcikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6
Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IG1fcGxheWVyLT5waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFwaXhl
bEJ1ZmZlcikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJm
YWNlOjpjcmVhdGVGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCkpOworICAgIGlmICgh
c3VyZmFjZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoc3VyZmFjZS0+Y3Jl
YXRlU2VuZFJpZ2h0KCkpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA4Y2I0NjE4MjVjYzY0MTk1ODFiMzdkZGExYzQ2Njkz
NjIyNTdjOWM4Li4yYWRlYWNjZTBkMTQ1NmY5MzA1ZmYwMzhhN2E3Y2Y2YmM0MTczMmYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5
Vmlld0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KQEAgLTgzOCwxNCArODM5LDIyIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaWRlb0lubGluZVNpemVGZW5jZWQoY29u
c3QgSW50U2l6ZSYgc2l6ZSwgY29uCiB9CiAjZW5kaWYKIAotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAo
Y29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
bmF0aXZlSW1hZ2UgPSBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCFuYXRp
dmVJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRSZWN0IGltYWdlUmVjdCB7IEZs
b2F0UG9pbnQ6Onplcm8oKSwgbmF0aXZlSW1hZ2UtPnNpemUoKSB9OworICAgIGNvbnRleHQuZHJh
d05hdGl2ZUltYWdlKCpuYXRpdmVJbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgcmVjdCwgaW1hZ2VS
ZWN0KTsKIH0KIAogI2lmICFVU0UoQVZGT1VOREFUSU9OKQpAQCAtODU0LDEzICs4NjMsMjEgQEAg
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZShXZWJDb3JlOjpHcmFwaGkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KKyNlbGlmICFQTEFURk9STShDT0NPQSkKK1JldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQogI2Vu
ZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KKyNlbmRpZgogCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0CiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCBmMjhlYTkzMmZjYzE1M2Q4YjcwMzNkZjEx
MDIyMjU5NWMxZDVkODc3Li5jOTk1MjE5NzVhMWQ3NjNkMTA5NTUxZDg0N2ZhNmQ0OGFiZDRjOWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI4Myw2ICsyODMsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAjaWYgIVVTRShBVkZP
VU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NH
TGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7Cisj
ZWxzZQorICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCkgZmluYWw7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+
IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KaW5kZXggNGYzZGU3NzNjMTIzNmYzMzBmNTQw
YTljOGQ2NDEwMGNmYjA1YmJjMC4uN2E3ZmQ2YzE3OTFjNDNmNjUxZGYyMmVlZTExMDgzNDdhMWZl
MWQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2Nv
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1t
CkBAIC0yOSw4ICsyOSwxMyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0o
Q09DT0EpCiAKICNpbXBvcnQgIlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbXBvcnQg
IlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0NvbG9yU3BhY2VDRy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJP
YmpDLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KKyNpbXBvcnQg
PHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CkBAIC01Nyw2ICs2Miw0MiBAQCBQbGF0Zm9ybUxheWVyQ29udGFpbmVyIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlVmlkZW9GdWxsc2NyZWVuTGF5ZXIoKQogfQog
I2VuZGlmCiAKK1JlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKK3sKKyAgICBPcHRpb25hbDxNYWNoU2VuZFJpZ2h0
PiBzZW5kUmlnaHQ7CisgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Ok5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSwgTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Ok5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWU6OlJl
cGx5KHNlbmRSaWdodCksIG1faWQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlm
ICghc2VuZFJpZ2h0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gc3VyZmFj
ZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNlbmRSaWdodChXVEZNb3ZlKCpzZW5k
UmlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgYXV0byBwbGF0Zm9ybUltYWdlID0gV2ViQ29yZTo6SU9T
dXJmYWNlOjpzaW5rSW50b0ltYWdlKFdURk1vdmUoc3VyZmFjZSkpOworICAgIGlmICghcGxhdGZv
cm1JbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gTmF0aXZlSW1h
Z2U6OmNyZWF0ZShXVEZNb3ZlKHBsYXRmb3JtSW1hZ2UpKTsKK30KKworUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJy
ZW50VGltZSgpCit7CisgICAgT3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJpZ2h0OworICAg
IGlmICghY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpQaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpOYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lOjpSZXBseShzZW5kUmlnaHQpLCBt
X2lkKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIXNlbmRSaWdodCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1
cmZhY2U6OmNyZWF0ZUZyb21TZW5kUmlnaHQoV1RGTW92ZSgqc2VuZFJpZ2h0KSwgbnVsbHB0cik7
CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVy
biBzdXJmYWNlLT5jcmVhdGVQaXhlbEJ1ZmZlcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>