<?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>36663</bug_id>
          
          <creation_ts>2010-03-26 08:35:29 -0700</creation_ts>
          <short_desc>Rename QTKit based media engine class name</short_desc>
          <delta_ts>2011-01-24 12:19:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>51249</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>abarth</cc>
    
    <cc>ademar</cc>
    
    <cc>eric</cc>
    
    <cc>pnormand</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>204588</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-03-26 08:35:29 -0700</bug_when>
    <thetext>As noted in https://bugs.webkit.org/show_bug.cgi?id=36654, it is possible to use a GStreamer based media engine on OSX as well as the QTKit based media engine so we should use a non-generic class name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204675</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-03-26 10:50:48 -0700</bug_when>
    <thetext>Additionnally I think it would be good to have a WTF_USE_... define to enable the QTKit player and same for QuickTime (or whatever is currently used on the windows port).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286295</commentid>
    <comment_count>2</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2010-09-28 09:23:20 -0700</bug_when>
    <thetext>Qt backends were renamed in &lt;http://trac.webkit.org/changeset/68526&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286328</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-28 10:11:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/68526 might have broken Qt Windows 32-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/68523
http://trac.webkit.org/changeset/68524
http://trac.webkit.org/changeset/68525
http://trac.webkit.org/changeset/68526
http://trac.webkit.org/changeset/68527
http://trac.webkit.org/changeset/68528
http://trac.webkit.org/changeset/68529
http://trac.webkit.org/changeset/68530
http://trac.webkit.org/changeset/68531</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309002</commentid>
    <comment_count>4</comment_count>
      <attachid>73830</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-13 12:17:45 -0800</bug_when>
    <thetext>Created attachment 73830
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309102</commentid>
    <comment_count>5</comment_count>
      <attachid>73830</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-11-14 12:38:21 -0800</bug_when>
    <thetext>Comment on attachment 73830
Proposed patch

Marking this attachment as a patch since it is a patch and it is flagged for review. Moreover, this will cause the EWS bots to build with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309802</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-16 10:30:15 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310116</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-16 21:41:22 -0800</bug_when>
    <thetext>This change might be responsible for some test failures:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r72115%20(20918)/results.html

All of the failures seem to be caused by failing to load some resource.  Could you look into this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310117</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-16 21:46:23 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; This change might be responsible for some test failures:
&gt; http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r72115%20(20918)/results.html
&gt; 
&gt; All of the failures seem to be caused by failing to load some resource.  Could you look into this?

Oops, this was a false alert.  The failure was caused by r72115, not r72117.  Sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310119</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-16 21:49:02 -0800</bug_when>
    <thetext>This changed the name of the OS X media engine class. The code change is *only* used by HTMLMediaElement, it has absolutely nothing to do with the loader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339179</commentid>
    <comment_count>10</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-01-24 12:19:04 -0800</bug_when>
    <thetext>Revision r68526 cherry-picked into qtwebkit-2.2 with commit 600bc9b &lt;http://gitorious.org/webkit/qtwebkit/commit/600bc9b&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73830</attachid>
            <date>2010-11-13 12:17:45 -0800</date>
            <delta_ts>2010-11-15 13:12:09 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_2.txt</filename>
            <type>text/plain</type>
            <size>30828</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTk3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsOTQgQEAKKzIwMTAtMTEtMTMgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lIFFUS2l0IGJhc2VkIG1lZGlhIGVuZ2luZSBjbGFzcyBuYW1lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjY2MworCisgICAgICAgIE5v
IG5ldyB0ZXN0cyBhcyB0aGlzIGp1c3QgcmVuYW1lcyBhIGNsYXNzIGFuZCByZXN0cnVjdHVyZXMg
ZXhpc3RpbmcgY29kZSByZXN0cnVjdHVyaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5zdGFsbGVkTWVkaWFFbmdp
bmVzKTogVXNlIGEgbWFjcm8gd2l0aCB0aGUgcGxhdGZvcm0gbWVkaWEgcGxheWVyIGNsYXNzIG5h
bWUgdG8gcmVkdWNlIHRoZQorICAgICAgICBudW1iZXIgb2YgI2lmcyBpbiB0aGUgY29kZS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5o
OiBSZW5hbWUgTWVkaWFQbGF5ZXJQcml2YXRlIHRvIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Ojp+TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWVWaWV3KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkZXRhY2hRVE1vdmllVmlldyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRWaWRlb1JlbmRl
cmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkZXN0cm95
UVRWaWRlb1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpjcmVhdGVRVE1vdmllTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OmRlc3Ryb3lRVE1vdmllTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmN1cnJlbnRSZW5kZXJpbmdNb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRVcFZpZGVvUmVu
ZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp0ZWFy
RG93blZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpoYXNTZXRVcFZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJlc3VtZUxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OmxvYWRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6cHJlcGFyZVRvUGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1NZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpjdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVRVEtpdDo6c2Vlayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6ZG9TZWVrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpjYW5jZWxTZWVrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpzZWVrVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6cGF1c2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpzZWVraW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpuYXR1cmFsU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtp
dDo6aGFzVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
Omhhc0F1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojpz
dXBwb3J0c0Z1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQ6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6aGFzQ2xvc2VkQ2FwdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UHJlc2VydmVzUGl0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmJ1ZmZlcmVkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjptYXhUaW1lU2Vla2FibGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Om1heFRpbWVMb2FkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmJ5dGVzTG9hZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp0b3RhbEJ5dGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjYW5jZWxMb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjYWNoZU1vdmllU2NhbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmlzUmVhZHlGb3JWaWRl
b1NldHVwKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwcmVw
YXJlRm9yUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0Ojp1cGRhdGVTdGF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQ6OmxvYWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpzaXplQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVRVEtpdDo6dGltZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OmRpZEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6c2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6cmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBhaW50KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpnZXRTdXBwb3J0ZWRUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c3VwcG9ydHNUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojppc0F2YWlsYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGlzYWJsZVVuc3VwcG9ydGVk
VHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzYXdV
bnN1cHBvcnRlZFRyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Omhhc1NpbmdsZVNl
Y3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
Ojptb3ZpZUxvYWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpzZXRQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjptZWRpYVRpbWVGb3JUaW1lVmFsdWUpOgorICAgICAgICAoLVtXZWJDb3JlTW92aWVPYnNl
cnZlciBpbml0V2l0aENhbGxiYWNrOl0pOgorCiAyMDEwLTExLTEzICBEYXZpZCBIeWF0dCAgPGh5
YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDk0OTYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCShyZXZpc2lvbiA3MTkxNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NywxOSArNDcsMjQgQEAKIAogI2lmIFBM
QVRGT1JNKE1BQykKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIgorI2RlZmlu
ZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0CiAj
ZWxpZiBPUyhXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJp
dmF0ZVdpbkNFLmgiCisjZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlCiAjZWxpZiBQTEFURk9STShXSU4pCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oIgotI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrdGltZVdpbi5oIgorI2RlZmluZSBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1l
IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQKICNlbGlmIFBMQVRGT1JN
KFFUKQogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZVF0LmgiCisjZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQbGF5ZXJQ
cml2YXRlUXQKICNlbHNlCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmgiCisj
ZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05hbWUgTWVkaWFQbGF5ZXJQcml2YXRlUGhv
bm9uCiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZUNocm9taXVtLmgiCisjZGVmaW5lIFBsYXRmb3JtTWVkaWFFbmdpbmVDbGFzc05h
bWUgTWVkaWFQbGF5ZXJQcml2YXRlCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MTY1LDI2ICsxNzAsMTEgQEAgc3RhdGljIFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiYgaW5z
dAogCiAgICAgaWYgKCFlbmdpbmVzUXVlcmllZCkgewogICAgICAgICBlbmdpbmVzUXVlcmllZCA9
IHRydWU7CisKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgICAgICBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCi0K
LSNpZiBQTEFURk9STShXSU4pCi0gICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoYWRkTWVkaWFFbmdpbmUpOwotI2VsaWYg
UExBVEZPUk0oUVQpCi0jaWYgVVNFKFFUX01VTFRJTUVESUEpCi0gICAgICAgIE1lZGlhUGxheWVy
UHJpdmF0ZVF0OjpyZWdpc3Rlck1lZGlhRW5naW5lKGFkZE1lZGlhRW5naW5lKTsKLSNlbHNlCi0g
ICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVBob25vbjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRN
ZWRpYUVuZ2luZSk7Ci0jZW5kaWYKLSNlbGlmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShF
RkwpCi0gICAgICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgYWxsIHRoZSBNZWRpYUVuZ2luZXMgYXJl
IG5hbWVkCi0gICAgICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZS4gVGhpcyBjb2RlIHdpbGwgbmVl
ZCBhbiB1cGRhdGUgd2hlbiBidWcKLSAgICAgICAgLy8gMzY2NjMgaXMgYWRyZXNzZWQuCi0gICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2lu
ZSk7Ci0jZW5kaWYKLQotICAgICAgICAvLyByZWdpc3RlciBhZGRpdGlvbmFsIGVuZ2luZXMgaGVy
ZQorICAgICAgICBQbGF0Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lOjpyZWdpc3Rlck1lZGlhRW5n
aW5lKGFkZE1lZGlhRW5naW5lKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIGluc3RhbGxlZEVu
Z2luZXM7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgJKHJldmlzaW9uIDcxOTE3KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAkod29ya2luZyBj
b3B5KQpAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBXZWJDb3JlTW92aWVPYnNlcnZlcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKQEAg
LTY3LDggKzY3LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkRW5kKCk7CiAKIHByaXZhdGU6Ci0g
ICAgTWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKik7Ci0gICAgfk1lZGlhUGxheWVyUHJp
dmF0ZSgpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CisgICAg
fk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KCk7CiAKICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAg
IHN0YXRpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UqIGNyZWF0ZShNZWRpYVBsYXllciog
cGxheWVyKTsKQEAgLTE2Myw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU3Rh
dGVzKCk7CiAgICAgdm9pZCBkb1NlZWsoKTsKICAgICB2b2lkIGNhbmNlbFNlZWsoKTsKLSAgICB2
b2lkIHNlZWtUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZT4qKTsKKyAgICB2b2lk
IHNlZWtUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0PiopOwogICAgIGZs
b2F0IG1heFRpbWVMb2FkZWQoKSBjb25zdDsKICAgICB2b2lkIGRpc2FibGVVbnN1cHBvcnRlZFRy
YWNrcygpOwogICAgIApAQCAtMTg0LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PFdlYkNvcmVNb3ZpZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICBTdHJpbmcgbV9tb3Zp
ZVVSTDsKICAgICBmbG9hdCBtX3NlZWtUbzsKLSAgICBUaW1lcjxNZWRpYVBsYXllclByaXZhdGU+
IG1fc2Vla1RpbWVyOworICAgIFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0PiBtX3NlZWtU
aW1lcjsKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwogICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKICAgICBJbnRSZWN0IG1fcmVj
dDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCShyZXZpc2lvbiA3MTkxNykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjQsMTEgKzE2NCwxMSBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBAaW50ZXJm
YWNlIFdlYkNvcmVNb3ZpZU9ic2VydmVyIDogTlNPYmplY3QKIHsKLSAgICBNZWRpYVBsYXllclBy
aXZhdGUqIG1fY2FsbGJhY2s7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQqIG1fY2FsbGJh
Y2s7CiAgICAgTlNWaWV3KiBtX3ZpZXc7CiAgICAgQk9PTCBtX2RlbGF5Q2FsbGJhY2tzOwogfQot
LShpZClpbml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXllclByaXZhdGUqKWNhbGxiYWNrOworLShp
ZClpbml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXllclByaXZhdGVRVEtpdCopY2FsbGJhY2s7CiAt
KHZvaWQpZGlzY29ubmVjdDsKIC0odm9pZClzZXRWaWV3OihOU1ZpZXcqKXZpZXc7CiAtKHZvaWQp
cmVwYWludDsKQEAgLTE5MiwyMiArMTkyLDIyIEBAIHN0YXRpYyBjb25zdCBsb25nIG1pbmltdW1R
dWlja1RpbWVWZXJzaW8KICNlbmRpZgogCiAKLU1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSog
TWVkaWFQbGF5ZXJQcml2YXRlOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikgCitNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2UqIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUoTWVk
aWFQbGF5ZXIqIHBsYXllcikgCiB7IAotICAgIHJldHVybiBuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
KHBsYXllcik7CisgICAgcmV0dXJuIG5ldyBNZWRpYVBsYXllclByaXZhdGVRVEtpdChwbGF5ZXIp
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsK
ICAgICBpZiAoaXNBdmFpbGFibGUoKSkKICAgICAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3Vw
cG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSk7CiB9CiAKLU1lZGlhUGxheWVyUHJpdmF0ZTo6TWVk
aWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fb2JqY09ic2VydmVyKEFkb3B0TlMsIFtbV2ViQ29y
ZU1vdmllT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pCiAgICAgLCBtX3Nl
ZWtUbygtMSkKLSAgICAsIG1fc2Vla1RpbWVyKHRoaXMsICZNZWRpYVBsYXllclByaXZhdGU6OnNl
ZWtUaW1lckZpcmVkKQorICAgICwgbV9zZWVrVGltZXIodGhpcywgJk1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpzZWVrVGltZXJGaXJlZCkKICAgICAsIG1fbmV0d29ya1N0YXRlKE1lZGlhUGxheWVy
OjpFbXB0eSkKICAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCiAg
ICAgLCBtX3JlY3QoKQpAQCAtMjMyLDcgKzIzMiw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVk
aWFQbGF5ZXJQcml2YXRlKE0KIHsKIH0KIAotTWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQbGF5
ZXJQcml2YXRlKCkKK01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp+TWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQoKQogewogICAgIHRlYXJEb3duVmlkZW9SZW5kZXJpbmcoKTsKIApAQCAtMjQwLDcgKzI0
MCw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSgKICAgICBbbV9v
YmpjT2JzZXJ2ZXIuZ2V0KCkgZGlzY29ubmVjdF07CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlOjpjcmVhdGVRVE1vdmllKGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZShjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBOU1VS
TCAqY29jb2FVUkwgPSBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsKICAgICBOU0RpY3Rpb25h
cnkgKm1vdmllQXR0cmlidXRlcyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Rz
QW5kS2V5czoKQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgdm9pZCBkaXNhYmxlQ29tcG9uZW50
c09uY2UoKQogICAgICAgICB3a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KGNvbXBvbmVudHNUb0Rp
c2FibGVbaV0pOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlUVRNb3ZpZShO
U1VSTCAqdXJsLCBOU0RpY3Rpb25hcnkgKm1vdmllQXR0cmlidXRlcykKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWUoTlNVUkwgKnVybCwgTlNEaWN0aW9uYXJ5ICpt
b3ZpZUF0dHJpYnV0ZXMpCiB7CiAgICAgZGlzYWJsZUNvbXBvbmVudHNPbmNlKCk7CiAKQEAgLTM3
NSw3ICszNzUsNyBAQCBzdGF0aWMgQ2xhc3MgUVRWaWRlb1JlbmRlcmVyQ2xhc3MoKQogICAgICBy
ZXR1cm4gUVRWaWRlb1JlbmRlcmVyV2ViS2l0T25seUNsYXNzOwogfQogCi12b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6Y3JlYXRlUVRNb3ZpZVZpZXcoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6Y3JlYXRlUVRNb3ZpZVZpZXcoKQogewogICAgIGRldGFjaFFUTW92aWVWaWV3KCk7CiAK
QEAgLTQyMCw3ICs0MjAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlUVRNb3Zp
ZVZpCiAgICAgW21fb2JqY09ic2VydmVyLmdldCgpIHNldERlbGF5Q2FsbGJhY2tzOk5PXTsKIH0K
IAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmRldGFjaFFUTW92aWVWaWV3KCkKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRldGFjaFFUTW92aWVWaWV3KCkKIHsKICAgICBpZiAobV9x
dE1vdmllVmlldykgewogICAgICAgICBbbV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2V0VmlldzpuaWxd
OwpAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkZXRhY2hRVE1v
dmllVmkKICAgICB9CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjcmVhdGVRVFZpZGVv
UmVuZGVyZXIoUVRWaWRlb1JlbmRlcmVyTW9kZSByZW5kZXJlck1vZGUpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVFZpZGVvUmVuZGVyZXIoUVRWaWRlb1JlbmRlcmVyTW9k
ZSByZW5kZXJlck1vZGUpCiB7CiAgICAgZGVzdHJveVFUVmlkZW9SZW5kZXJlcigpOwogCkBAIC00
NTUsNyArNDU1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmNyZWF0ZVFUVmlkZW9SZQog
ICAgIH0KIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmRlc3Ryb3lRVFZpZGVvUmVuZGVy
ZXIoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGVzdHJveVFUVmlkZW9SZW5kZXJl
cigpCiB7CiAgICAgaWYgKCFtX3F0VmlkZW9SZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwpAQCAt
NDcxLDcgKzQ3MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkZXN0cm95UVRWaWRlb1IK
ICAgICBtX3F0VmlkZW9SZW5kZXJlciA9IG5pbDsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZh
dGU6OmNyZWF0ZVFUTW92aWVMYXllcigpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojpj
cmVhdGVRVE1vdmllTGF5ZXIoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoIW1fcXRNb3ZpZSkKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZTo6Y3JlYXRlUVRNb3ZpZUxhCiAjZW5kaWYKIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6OmRlc3Ryb3lRVE1vdmllTGF5ZXIoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtp
dDo6ZGVzdHJveVFUTW92aWVMYXllcigpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGlmICghbV9xdFZpZGVvTGF5ZXIpCkBAIC01MDUsNyArNTA1LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGU6OmRlc3Ryb3lRVE1vdmllTAogI2VuZGlmCiB9CiAKLU1lZGlhUGxh
eWVyUHJpdmF0ZTo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3VycmVu
dFJlbmRlcmluZ01vZGUoKSBjb25zdAorTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUmVu
ZGVyaW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3VycmVudFJlbmRlcmluZ01vZGUo
KSBjb25zdAogewogICAgIGlmIChtX3F0TW92aWVWaWV3KQogICAgICAgICByZXR1cm4gTWVkaWFS
ZW5kZXJpbmdNb3ZpZVZpZXc7CkBAIC01MTksNyArNTE5LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRl
OjpNZWRpYVJlbmRlcmluZ01vZGUgTQogICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ05vbmU7CiB9
CiAKLU1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJp
dmF0ZTo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpIGNvbnN0CitNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwcmVmZXJy
ZWRSZW5kZXJpbmdNb2RlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxheWVyLT5mcmFtZVZpZXco
KSB8fCAhbV9xdE1vdmllKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdOb25lOwpAQCAt
NTM1LDcgKzUzNSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZTo6TWVkaWFSZW5kZXJpbmdNb2RlIE0K
ICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdTb2Z0d2FyZVJlbmRlcmVyOwogfQogCi12b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6c2V0VXBWaWRlb1JlbmRlcmluZygpCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpzZXRVcFZpZGVvUmVuZGVyaW5nKCkKIHsKICAgICBpZiAoIWlzUmVhZHlG
b3JWaWRlb1NldHVwKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0VXBWaWRlb1JlbmRlCiAgICAgICAgIG1fcGxheWVyLT5t
ZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxh
eWVyKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnRlYXJEb3duVmlkZW9SZW5kZXJp
bmcoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6dGVhckRvd25WaWRlb1JlbmRlcmlu
ZygpCiB7CiAgICAgaWYgKG1fcXRNb3ZpZVZpZXcpCiAgICAgICAgIGRldGFjaFFUTW92aWVWaWV3
KCk7CkBAIC01NzYsMTQgKzU3NiwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dGVhckRv
d25WaWRlb1JlCiAgICAgICAgIGRlc3Ryb3lRVE1vdmllTGF5ZXIoKTsKIH0KIAotYm9vbCBNZWRp
YVBsYXllclByaXZhdGU6Omhhc1NldFVwVmlkZW9SZW5kZXJpbmcoKSBjb25zdAorYm9vbCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6aGFzU2V0VXBWaWRlb1JlbmRlcmluZygpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fcXRNb3ZpZVZpZXcKICAgICAgICAgfHwgbV9xdFZpZGVvTGF5ZXIKICAgICAg
ICAgfHwgbV9xdFZpZGVvUmVuZGVyZXI7CiB9CiAKLVFUVGltZSBNZWRpYVBsYXllclByaXZhdGU6
OmNyZWF0ZVFUVGltZShmbG9hdCB0aW1lKSBjb25zdAorUVRUaW1lIE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpjcmVhdGVRVFRpbWUoZmxvYXQgdGltZSkgY29uc3QKIHsKICAgICBpZiAoIW1ldGFE
YXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBRVE1ha2VUaW1lKDAsIDYwMCk7CkBAIC01
OTEsNyArNTkxLDcgQEAgUVRUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y3JlYXRlUVRUaW1lKAog
ICAgIHJldHVybiBRVE1ha2VUaW1lKHRpbWUgKiB0aW1lU2NhbGUsIHRpbWVTY2FsZSk7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpyZXN1bWVMb2FkKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OnJlc3VtZUxvYWQoKQogewogICAgIG1fZGVsYXlpbmdMb2FkID0gZmFsc2U7
CiAKQEAgLTU5OSw3ICs1OTksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cmVzdW1lTG9h
ZCgpCiAgICAgICAgIGxvYWRJbnRlcm5hbChtX21vdmllVVJMKTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGU6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Ojpsb2FkKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIG1fbW92aWVVUkwgPSB1
cmw7CiAKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9hZChj
b25zdCBTdHJpCiAgICAgbG9hZEludGVybmFsKHVybCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpsb2FkSW50ZXJuYWwoY29uc3QgU3RyaW5nJiB1cmwpCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Ojpsb2FkSW50ZXJuYWwoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgaWYg
KG1fbmV0d29ya1N0YXRlICE9IE1lZGlhUGxheWVyOjpMb2FkaW5nKSB7CiAgICAgICAgIG1fbmV0
d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRpbmc7CkBAIC02MzQsMTMgKzYzNCwxMyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9hZEludGVybmFsKGNvCiAgICAgW21fb2JqY09ic2Vy
dmVyLmdldCgpIHNldERlbGF5Q2FsbGJhY2tzOk5PXTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6OnByZXBhcmVUb1BsYXkoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cHJl
cGFyZVRvUGxheSgpCiB7CiAgICAgaWYgKCFtX3F0TW92aWUgfHwgbV9kZWxheWluZ0xvYWQpCiAg
ICAgICAgIHJlc3VtZUxvYWQoKTsKIH0KIAotUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllclByaXZh
dGU6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAorUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiB7CiAgICAgUGxhdGZvcm1NZWRpYSBwbTsK
ICAgICBwbS50eXBlID0gUGxhdGZvcm1NZWRpYTo6UVRNb3ZpZVR5cGU7CkBAIC02NDksMTMgKzY0
OSwxMyBAQCBQbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGxhdGZvCiB9CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1QbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXll
clByaXZhdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAorUGxhdGZvcm1MYXllciogTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3F0
VmlkZW9MYXllci5nZXQoKTsKIH0KICNlbmRpZgogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
cGxheSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwbGF5KCkKIHsKICAgICBpZiAo
IW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTY2OCw3ICs2NjgsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGxheSgpCiAgICAgW21fb2JqY09ic2VydmVyLmdl
dCgpIHNldERlbGF5Q2FsbGJhY2tzOk5PXTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6
OnBhdXNlKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBhdXNlKCkKIHsKICAgICBp
ZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTY4MSw3ICs2ODEs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGF1c2UoKQogICAgIFttX29iamNPYnNlcnZl
ci5nZXQoKSBzZXREZWxheUNhbGxiYWNrczpOT107CiB9CiAKLWZsb2F0IE1lZGlhUGxheWVyUHJp
dmF0ZTo6ZHVyYXRpb24oKSBjb25zdAorZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmR1
cmF0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAg
IHJldHVybiAwOwpAQCAtNjk1LDcgKzY5NSw3IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6
ZHVyYXRpb24oKSBjb24KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbWUudGltZVZh
bHVlKSAvIHRpbWUudGltZVNjYWxlOwogfQogCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGU6OmN1
cnJlbnRUaW1lKCkgY29uc3QKK2Zsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjdXJyZW50
VGltZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQogICAgICAgICBy
ZXR1cm4gMDsKQEAgLTcwMyw3ICs3MDMsNyBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6OmN1
cnJlbnRUaW1lKCkgCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih0aW1lLnRpbWVWYWx1
ZSkgLyB0aW1lLnRpbWVTY2FsZTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNlZWso
ZmxvYXQgdGltZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNlZWsoZmxvYXQgdGlt
ZSkKIHsKICAgICAvLyBOb3RoaW5nIHRvIGRvIGlmIHdlIGFyZSBhbHJlYWR5IGluIHRoZSBtaWRk
bGUgb2YgYSBzZWVrIHRvIHRoZSBzYW1lIHRpbWUuCiAgICAgaWYgKHRpbWUgPT0gbV9zZWVrVG8p
CkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNlZWsoZmxvYXQg
dGltZQogICAgICAgICBtX3NlZWtUaW1lci5zdGFydCgwLCAwLjVmKTsKIH0KIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGU6OmRvU2VlaygpIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6
ZG9TZWVrKCkgCiB7CiAgICAgUVRUaW1lIHF0dGltZSA9IGNyZWF0ZVFUVGltZShtX3NlZWtUbyk7
CiAgICAgLy8gc2V0Q3VycmVudFRpbWUgZ2VuZXJhdGVzIHNldmVyYWwgZXZlbnQgY2FsbGJhY2tz
LCB1cGRhdGUgYWZ0ZXJ3YXJkcwpAQCAtNzQ0LDEzICs3NDQsMTMgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGU6OmRvU2VlaygpIAogICAgIFttX29iamNPYnNlcnZlci5nZXQoKSBzZXREZWxheUNh
bGxiYWNrczpOT107CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjYW5jZWxTZWVrKCkK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNhbmNlbFNlZWsoKQogewogICAgIG1fc2Vl
a1RvID0gLTE7CiAgICAgbV9zZWVrVGltZXIuc3RvcCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZTo6c2Vla1RpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlPiopCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZWVrVGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXll
clByaXZhdGVRVEtpdD4qKQogeyAgICAgICAgCiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgp
fHwgIXNlZWtpbmcoKSB8fCBjdXJyZW50VGltZSgpID09IG1fc2Vla1RvKSB7CiAgICAgICAgIGNh
bmNlbFNlZWsoKTsKQEAgLTc3MSwyMSArNzcxLDIxIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
OjpzZWVrVGltZXJGaXJlZCgKICAgICB9CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpw
YXVzZWQoKSBjb25zdAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGF1c2VkKCkgY29u
c3QKIHsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIHJldHVybiBbbV9xdE1vdmllLmdldCgpIHJhdGVdID09IDA7CiB9CiAKLWJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlOjpzZWVraW5nKCkgY29uc3QKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQ6OnNlZWtpbmcoKSBjb25zdAogewogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBtX3NlZWtUbyA+PSAwOwogfQogCi1J
bnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZTo6bmF0dXJhbFNpemUoKSBjb25zdAorSW50U2l6ZSBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bmF0dXJhbFNpemUoKSBjb25zdAogewogICAgIGlmICgh
bWV0YURhdGFBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKQEAgLTgwMSwy
MSArODAxLDIxIEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlOjpuYXR1cmFsU2l6ZSgKICAg
ICByZXR1cm4gSW50U2l6ZShuYXR1cmFsU2l6ZS53aWR0aCAqIG1fc2NhbGVGYWN0b3Iud2lkdGgo
KSwgbmF0dXJhbFNpemUuaGVpZ2h0ICogbV9zY2FsZUZhY3Rvci5oZWlnaHQoKSk7CiB9CiAKLWJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNWaWRlbygpIGNvbnN0Citib29sIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpoYXNWaWRlbygpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWls
YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIFtbbV9xdE1vdmllLmdl
dCgpIGF0dHJpYnV0ZUZvcktleTpRVE1vdmllSGFzVmlkZW9BdHRyaWJ1dGVdIGJvb2xWYWx1ZV07
CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNBdWRpbygpIGNvbnN0Citib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpoYXNBdWRpbygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3F0
TW92aWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gW1ttX3F0TW92aWUuZ2V0
KCkgYXR0cmlidXRlRm9yS2V5OlFUTW92aWVIYXNBdWRpb0F0dHJpYnV0ZV0gYm9vbFZhbHVlXTsK
IH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0
Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25z
dAogewogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKQogICAgIHJldHVybiB0cnVlOwpAQCAtODI1LDIwICs4MjUsMjAgQEAgYm9v
bCBNZWRpYVBsYXllclByaXZhdGU6OnN1cHBvcnRzRnVsbHNjcgogI2VuZGlmCiB9CiAKLXZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQordm9pZCBNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKIHsKICAgICBpZiAobV9x
dE1vdmllKQogICAgICAgICBbbV9xdE1vdmllLmdldCgpIHNldFZvbHVtZTp2b2x1bWVdOyAgCiB9
CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0Citi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7
CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgcmV0dXJuIHdrUVRNb3ZpZUhhc0Nsb3NlZENhcHRpb25zKG1fcXRNb3ZpZS5nZXQoKSk7ICAK
IH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZShi
b29sIGNsb3NlZENhcHRpb25zVmlzaWJsZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcHRpb25zVmlzaWJsZSkKIHsK
ICAgICBpZiAobWV0YURhdGFBdmFpbGFibGUoKSkgewogICAgICAgICB3a1FUTW92aWVTZXRTaG93
Q2xvc2VkQ2FwdGlvbnMobV9xdE1vdmllLmdldCgpLCBjbG9zZWRDYXB0aW9uc1Zpc2libGUpOwpA
QCAtODUyLDEzICs4NTIsMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldENsb3NlZENh
cHRpbwogICAgIH0KIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldFJhdGUoZmxvYXQg
cmF0ZSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNldFJhdGUoZmxvYXQgcmF0ZSkK
IHsKICAgICBpZiAobV9xdE1vdmllKQogICAgICAgICBbbV9xdE1vdmllLmdldCgpIHNldFJhdGU6
cmF0ZV07CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRQcmVzZXJ2ZXNQaXRjaChi
b29sIHByZXNlcnZlc1BpdGNoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UHJl
c2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKIHsKICAgICBpZiAoIW1fcXRNb3ZpZSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtODc2LDcgKzg3Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlOjpzZXRQcmVzZXJ2ZXNQaXQKICAgICBjcmVhdGVRVE1vdmllKFttb3ZpZUF0dHJpYnV0ZXMg
dmFsdWVGb3JLZXk6UVRNb3ZpZVVSTEF0dHJpYnV0ZV0sIG1vdmllQXR0cmlidXRlcyk7CiB9CiAK
LVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCgpIGNv
bnN0CitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpidWZm
ZXJlZCgpIGNvbnN0CiB7CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1l
UmFuZ2VzOjpjcmVhdGUoKTsKICAgICBmbG9hdCBsb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7CkBA
IC04ODUsNyArODg1LDcgQEAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZh
dAogICAgIHJldHVybiB0aW1lUmFuZ2VzLnJlbGVhc2UoKTsKIH0KIAotZmxvYXQgTWVkaWFQbGF5
ZXJQcml2YXRlOjptYXhUaW1lU2Vla2FibGUoKSBjb25zdAorZmxvYXQgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6Om1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2
YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTg5NywxNCArODk3LDE0IEBAIGZsb2F0
IE1lZGlhUGxheWVyUHJpdmF0ZTo6bWF4VGltZVNlZWthYmwKICAgICByZXR1cm4gd2tRVE1vdmll
TWF4VGltZVNlZWthYmxlKG1fcXRNb3ZpZS5nZXQoKSk7CiB9CiAKLWZsb2F0IE1lZGlhUGxheWVy
UHJpdmF0ZTo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CitmbG9hdCBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJs
ZSgpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gd2tRVE1vdmllTWF4VGltZUxvYWRl
ZChtX3F0TW92aWUuZ2V0KCkpOyAKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpi
eXRlc0xvYWRlZCgpIGNvbnN0Cit1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Ynl0
ZXNMb2FkZWQoKSBjb25zdAogewogICAgIGZsb2F0IGR1ciA9IGR1cmF0aW9uKCk7CiAgICAgaWYg
KCFkdXIpCkBAIC05MTIsMTQgKzkxMiwxNCBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGU6
OmJ5dGVzTG9hZGVkCiAgICAgcmV0dXJuIHRvdGFsQnl0ZXMoKSAqIG1heFRpbWVMb2FkZWQoKSAv
IGR1cjsKIH0KIAotdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp0b3RhbEJ5dGVzKCkgY29u
c3QKK3Vuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp0b3RhbEJ5dGVzKCkgY29uc3QK
IHsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IHJldHVybiBbW21fcXRNb3ZpZS5nZXQoKSBhdHRyaWJ1dGVGb3JLZXk6UVRNb3ZpZURhdGFTaXpl
QXR0cmlidXRlXSBpbnRWYWx1ZV07CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjYW5j
ZWxMb2FkKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNhbmNlbExvYWQoKQogewog
ICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGJldHRlciB3YXkgdG8gY2hlY2sgZm9yIHRoaXM/CiAg
ICAgaWYgKG1fbmV0d29ya1N0YXRlIDwgTWVkaWFQbGF5ZXI6OkxvYWRpbmcgfHwgbV9uZXR3b3Jr
U3RhdGUgPT0gTWVkaWFQbGF5ZXI6OkxvYWRlZCkKQEAgLTkzMSw3ICs5MzEsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6Y2FuY2VsTG9hZCgpCiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjYWNoZU1vdmllU2NhbGUoKQordm9pZCBNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6Y2FjaGVNb3ZpZVNjYWxlKCkKIHsKICAgICBOU1NpemUgaW5pdGlh
bFNpemUgPSBOU1plcm9TaXplOwogICAgIE5TU2l6ZSBuYXR1cmFsU2l6ZSA9IFtbbV9xdE1vdmll
LmdldCgpIGF0dHJpYnV0ZUZvcktleTpRVE1vdmllTmF0dXJhbFNpemVBdHRyaWJ1dGVdIHNpemVW
YWx1ZV07CkBAIC05NTYsMTIgKzk1NiwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6Y2Fj
aGVNb3ZpZVNjYWxlCiAgICAgICAgIG1fc2NhbGVGYWN0b3Iuc2V0SGVpZ2h0KGluaXRpYWxTaXpl
LmhlaWdodCAvIG5hdHVyYWxTaXplLmhlaWdodCk7CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlOjppc1JlYWR5Rm9yVmlkZW9TZXR1cCgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Ojppc1JlYWR5Rm9yVmlkZW9TZXR1cCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcmVh
ZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6SGF2ZU1ldGFkYXRhICYmIG1fcGxheWVyLT52aXNpYmxl
KCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpwcmVwYXJlRm9yUmVuZGVyaW5nKCkK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnByZXBhcmVGb3JSZW5kZXJpbmcoKQogewog
ICAgIGlmIChtX2lzQWxsb3dlZFRvUmVuZGVyKQogICAgICAgICByZXR1cm47CkBAIC05NzYsNyAr
OTc2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnByZXBhcmVGb3JSZW5kZQogICAgICAg
ICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2Rl
Q2hhbmdlZChtX3BsYXllcik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp1cGRhdGVT
dGF0ZXMoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6dXBkYXRlU3RhdGVzKCkKIHsK
ICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG9sZE5ldHdvcmtTdGF0ZSA9IG1fbmV0d29y
a1N0YXRlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG9sZFJlYWR5U3RhdGUgPSBtX3Jl
YWR5U3RhdGU7CkBAIC0xMDkxLDEzICsxMDkxLDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
Ojp1cGRhdGVTdGF0ZXMoKQogICAgIH0KIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6Omxv
YWRTdGF0ZUNoYW5nZWQoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bG9hZFN0YXRl
Q2hhbmdlZCgpCiB7CiAgICAgaWYgKCFtX2hhc1Vuc3VwcG9ydGVkVHJhY2tzKQogICAgICAgICB1
cGRhdGVTdGF0ZXMoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnJhdGVDaGFuZ2Vk
KCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJhdGVDaGFuZ2VkKCkKIHsKICAgICBp
ZiAobV9oYXNVbnN1cHBvcnRlZFRyYWNrcykKICAgICAgICAgcmV0dXJuOwpAQCAtMTEwNiwxMyAr
MTEwNiwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cmF0ZUNoYW5nZWQoKQogICAgIG1f
cGxheWVyLT5yYXRlQ2hhbmdlZCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2l6
ZUNoYW5nZWQoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2l6ZUNoYW5nZWQoKQog
ewogICAgIGlmICghbV9oYXNVbnN1cHBvcnRlZFRyYWNrcykKICAgICAgICAgbV9wbGF5ZXItPnNp
emVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp0aW1lQ2hhbmdlZCgp
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp0aW1lQ2hhbmdlZCgpCiB7CiAgICAgaWYg
KG1faGFzVW5zdXBwb3J0ZWRUcmFja3MpCiAgICAgICAgIHJldHVybjsKQEAgLTExMjgsNyArMTEy
OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp0aW1lQ2hhbmdlZCgpCiAgICAgbV9wbGF5
ZXItPnRpbWVDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkaWRFbmQo
KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGlkRW5kKCkKIHsKICAgICBpZiAobV9o
YXNVbnN1cHBvcnRlZFRyYWNrcykKICAgICAgICAgcmV0dXJuOwpAQCAtMTE1MCw3ICsxMTUwLDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmRpZEVuZCgpCiAgICAgbV9wbGF5ZXItPnRpbWVD
aGFuZ2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRTaXplKGNvbnN0IElu
dFNpemUmKSAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNldFNpemUoY29uc3QgSW50
U2l6ZSYpIAogeyAKICAgICAvLyBEb24ndCByZXNpemUgdGhlIHZpZXcgbm93IGJlY2F1c2UgW3Zp
ZXcgc2V0RnJhbWVdIGFsc28gcmVzaXplcyB0aGUgbW92aWUgaXRzZWxmLCBhbmQgYmVjYXVzZQog
ICAgIC8vIHRoZSByZW5kZXJlciBjYWxscyB0aGlzIGZ1bmN0aW9uIGltbWVkaWF0ZWx5IHdoZW4g
d2UgcmVwb3J0IGEgc2l6ZSBjaGFuZ2UgKFFUTW92aWVTaXplRGlkQ2hhbmdlTm90aWZpY2F0aW9u
KQpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldFNpemUo
Y29uc3QgSQogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS82MzM2MDkyPiBSRUdSRVNTSU9OOiBydHNw
IG1vdmllIGRvZXMgbm90IHJlc2l6ZSBjb3JyZWN0bHkKIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGU6OnNldFZpc2libGUoYm9vbCBiKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6
c2V0VmlzaWJsZShib29sIGIpCiB7CiAgICAgaWYgKG1fdmlzaWJsZSAhPSBiKSB7CiAgICAgICAg
IG1fdmlzaWJsZSA9IGI7CkBAIC0xMTcyLDcgKzExNzIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6c2V0VmlzaWJsZShib29sCiAgICAgfQogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0
ZTo6aGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0Citib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKIHsKICAgICAvLyBXaGVuIHVz
aW5nIGEgUVRNb3ZpZUxheWVyIHJldHVybiB0cnVlIGFzIHNvb24gYXMgdGhlIG1vdmllIHJlYWNo
ZXMgUVRNb3ZpZUxvYWRTdGF0ZVBsYXlhYmxlIAogICAgIC8vIGJlY2F1c2UgYWx0aG91Z2ggd2Ug
ZG9uJ3QgKmtub3cqIHdoZW4gdGhlIGZpcnN0IGZyYW1lIGhhcyBkZWNvZGVkLCBieSB0aGUgdGlt
ZSB3ZSBnZXQgYW5kIApAQCAtMTE4Niw3ICsxMTg2LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZh
dGU6Omhhc0F2YWlsYWJsZVZpZAogICAgIHJldHVybiBtX3ZpZGVvRnJhbWVIYXNEcmF3bjsKIH0K
IAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnJlcGFpbnQoKQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVwYWludCgpCiB7CiAgICAgaWYgKG1faGFzVW5zdXBwb3J0ZWRUcmFja3Mp
CiAgICAgICAgIHJldHVybjsKQEAgLTEyMDQsNyArMTIwNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpyZXBhaW50KCkKICAgICBtX3BsYXllci0+cmVwYWludCgpOwogfQogCi12b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBJbnRSZWN0JiByKQogewogICAgIGlkIHF0VmlkZW9SZW5kZXJlciA9IG1fcXRWaWRl
b1JlbmRlcmVyLmdldCgpOwogICAgIGlmICghcXRWaWRlb1JlbmRlcmVyICYmIGN1cnJlbnRSZW5k
ZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdNb3ZpZUxheWVyKSB7CkBAIC0xMjE4LDcgKzEy
MTgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhCiAgICAgcGFp
bnQoY29udGV4dCwgcik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpwYWludChHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHIpCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJl
Y3QmIHIpCiB7CiAgICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSB8fCBtX2hhc1Vu
c3VwcG9ydGVkVHJhY2tzKQogICAgICAgICByZXR1cm47CkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBz
dGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVNb2Rlcm5UeXBlc0NhCiAgICAgcmV0dXJuIGNhY2hl
OwogfSAKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYgc3VwcG9ydGVkVHlwZXMpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHN1cHBvcnRlZFR5cGVzKQogewog
ICAgIHN1cHBvcnRlZFR5cGVzID0gbWltZU1vZGVyblR5cGVzQ2FjaGUoKTsKICAgICAKQEAgLTEz
NjgsNyArMTM2OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpnZXRTdXBwb3J0ZWRUeXAK
ICAgICAgICAgc3VwcG9ydGVkVHlwZXMuYWRkKCppdCk7CiB9IAogCi1NZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGNvZGVjcykKIHsKICAgICAvLyBPbmx5IHJldHVybiAiSXNTdXBwb3J0ZWQi
IGlmIHRoZXJlIGlzIG5vIGNvZGVjcyBwYXJhbWV0ZXIgZm9yIG5vdyBhcyB0aGVyZSBpcyBubyB3
YXkgdG8gYXNrIFFUIGlmIGl0IHN1cHBvcnRzIGFuCiAgICAgLy8gZXh0ZW5kZWQgTUlNRSB0eXBl
IHlldC4KQEAgLTEzODAsNyArMTM4MCw3IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVk
aWFQbGF5ZXJQcmkKICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwogfQog
Ci1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6aXNBdmFpbGFibGUoKQorYm9vbCBNZWRpYVBsYXll
clByaXZhdGVRVEtpdDo6aXNBdmFpbGFibGUoKQogewogI2lmZGVmIEJVSUxESU5HX09OX1RJR0VS
CiAgICAgU0ludDMyIHZlcnNpb247CkBAIC0xNDAxLDcgKzE0MDEsNyBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6aXNBdmFpbGFibGUoKQogI2VuZGlmCiB9CiAgICAgCi12b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6ZGlzYWJsZVVuc3VwcG9ydGVkVHJhY2tzKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OmRpc2FibGVVbnN1cHBvcnRlZFRyYWNrcygpCiB7CiAgICAgaWYgKCFtX3F0
TW92aWUpIHsKICAgICAgICAgbV9lbmFibGVkVHJhY2tDb3VudCA9IDA7CkBAIC0xNDkxLDM1ICsx
NDkxLDM1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkaXNhYmxlVW5zdXBwb3IKICAgICB9
CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzYXdVbnN1cHBvcnRlZFRyYWNrcygpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzYXdVbnN1cHBvcnRlZFRyYWNrcygpCiB7CiAg
ICAgbV9oYXNVbnN1cHBvcnRlZFRyYWNrcyA9IHRydWU7CiAgICAgbV9wbGF5ZXItPm1lZGlhUGxh
eWVyQ2xpZW50KCktPm1lZGlhUGxheWVyU2F3VW5zdXBwb3J0ZWRUcmFja3MobV9wbGF5ZXIpOwog
fQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotYm9vbCBNZWRpYVBsYXllclBy
aXZhdGU6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAorYm9vbCBNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7
CiAgICAgLy8gQWxzbyBkb24ndCBjbGFpbSB0byBzdXBwb3J0IGFjY2VsZXJhdGVkIHJlbmRlcmlu
ZyB3aGVuIGluIHRoZSBtZWRpYSBkb2N1bWVudCwgYXMgd2Ugd2lsbCB0aGVuIHJlbmRlciAKICAg
ICAvLyB2aWEgUVRNb3ZpZVZpZXcgd2hpY2ggaXMgYWxyZWFkeSBhY2NlbGVyYXRlZC4KICAgICBy
ZXR1cm4gaXNSZWFkeUZvclZpZGVvU2V0dXAoKSAmJiBnZXRRVE1vdmllTGF5ZXJDbGFzcygpICE9
IE5pbCAmJiAhbV9wbGF5ZXItPmluTWVkaWFEb2N1bWVudCgpOwogfQogCi12b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQordm9pZCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQog
ewogICAgIC8vIFNldCB1cCBvciBjaGFuZ2UgdGhlIHJlbmRlcmluZyBwYXRoIGlmIG5lY2Vzc2Fy
eS4KICAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CiB9CiAjZW5kaWYKIAotYm9vbCBNZWRpYVBs
YXllclByaXZhdGU6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKK2Jvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQ6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsKICAg
ICAvLyBXZSB0ZWxsIHF1aWNrdGltZSB0byBkaXNhbGxvdyByZXNvdXJjZXMgdGhhdCBjb21lIGZy
b20gZGlmZmVyZW50IG9yaWdpbnMKICAgICAvLyBzbyB3ZSBrbm93IGFsbCBtZWRpYSBpcyBzaW5n
bGUgb3JpZ2luLgogICAgIHJldHVybiB0cnVlOwogfQogCi1NZWRpYVBsYXllcjo6TW92aWVMb2Fk
VHlwZSBNZWRpYVBsYXllclByaXZhdGU6Om1vdmllTG9hZFR5cGUoKSBjb25zdAorTWVkaWFQbGF5
ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Om1vdmllTG9hZFR5cGUo
KSBjb25zdAogewogICAgIGlmICghbV9xdE1vdmllKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OlVua25vd247CkBAIC0xNTMzLDE0ICsxNTMzLDE0IEBAIE1lZGlhUGxheWVyOjpNb3ZpZUxv
YWRUeXBlIE1lZGlhUGxheWVyUHIKICAgICByZXR1cm4gbW92aWVUeXBlOwogfQogCi12b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZTo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2Fk
KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6
UHJlbG9hZCBwcmVsb2FkKQogewogICAgIG1fcHJlbG9hZCA9IHByZWxvYWQ7CiAgICAgaWYgKG1f
ZGVsYXlpbmdMb2FkICYmIG1fcHJlbG9hZCAhPSBNZWRpYVBsYXllcjo6Tm9uZSkKICAgICAgICAg
cmVzdW1lTG9hZCgpOwogfQogCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1lZGlhVGltZUZv
clRpbWVWYWx1ZShmbG9hdCB0aW1lVmFsdWUpIGNvbnN0CitmbG9hdCBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRpbWVWYWx1ZSkgY29uc3QKIHsK
ICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiB0aW1lVmFsdWU7
CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1lZGlhVGlt
ZUZvclRpCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlTW92aWVPYnNlcnZlcgogCi0tIChpZClp
bml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXllclByaXZhdGUqKWNhbGxiYWNrCistIChpZClpbml0
V2l0aENhbGxiYWNrOihNZWRpYVBsYXllclByaXZhdGVRVEtpdCopY2FsbGJhY2sKIHsKICAgICBt
X2NhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgcmV0dXJuIFtzdXBlciBpbml0XTsK
</data>
<flag name="review"
          id="64343"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>