<?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>16145</bug_id>
          
          <creation_ts>2007-11-26 12:35:47 -0800</creation_ts>
          <short_desc>[gtk] Implement media support in GTK backend</short_desc>
          <delta_ts>2007-12-05 21:39:42 -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>WebKitGTK</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>christian</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>62386</commentid>
    <comment_count>0</comment_count>
    <who name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</who>
    <bug_when>2007-11-26 12:35:47 -0800</bug_when>
    <thetext>The GTK+ backend currently doesn&apos;t implement media playback support for HTML 5. It should be done with GStreamer.

I am working on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62422</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-26 18:43:05 -0800</bug_when>
    <thetext>Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63150</commentid>
    <comment_count>2</comment_count>
      <attachid>17677</attachid>
    <who name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</who>
    <bug_when>2007-12-03 09:57:30 -0800</bug_when>
    <thetext>Created attachment 17677
First try

First version to be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63171</commentid>
    <comment_count>3</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-03 12:50:51 -0800</bug_when>
    <thetext>I haven&apos;t looked too closely yet, but apart from the small coding issues we discussed earlier, this looks great!

+gtk-port:DEFINES += ENABLE_VIDEO=1

We&apos;ll need to change that so VIDEO is only enabled when gtk-port is being compiled using the x11 backend, since the GStreamer backend is x11-specific right now.

In fact it might be best to have video disabled by default for a couple of weeks until we make the feature usable and figure out how check for availability of GStreamer/gnome-vfs properly in the build system.

I&apos;d be happy to help complete this feature at some point (making the video render in the right place) if you don&apos;t have the time to do it yourself.

Really nice work :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63184</commentid>
    <comment_count>4</comment_count>
      <attachid>17685</attachid>
    <who name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</who>
    <bug_when>2007-12-03 15:36:10 -0800</bug_when>
    <thetext>Created attachment 17685
2nd try

Fix licensing (now LGPL), re-apply coding conventions, disable by default on Gtk+ port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63246</commentid>
    <comment_count>5</comment_count>
      <attachid>17685</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-04 08:35:13 -0800</bug_when>
    <thetext>Comment on attachment 17685
2nd try

r=me

There are a few glaring style issues I&apos;ll clean up before landing, and a few more that should probably be fixed once this is in, hopefully along with patches to complete the feature.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63247</commentid>
    <comment_count>6</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-04 08:52:17 -0800</bug_when>
    <thetext>Landed in r28389 with a few minor cleanups. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63377</commentid>
    <comment_count>7</comment_count>
      <attachid>17725</attachid>
    <who name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</who>
    <bug_when>2007-12-05 13:19:13 -0800</bug_when>
    <thetext>Created attachment 17725
More clean-up

Further clean up of the code.  Removed unnecessary code and commented code.  Variables now uses the code style guidelines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63403</commentid>
    <comment_count>8</comment_count>
      <attachid>17685</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-12-05 19:47:47 -0800</bug_when>
    <thetext>Comment on attachment 17685
2nd try

Clearing review flag as this was landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63410</commentid>
    <comment_count>9</comment_count>
      <attachid>17725</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-05 21:39:42 -0800</bug_when>
    <thetext>Comment on attachment 17725
More clean-up

r=me

Looking much cleaner.

ChangeLog next time please.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17677</attachid>
            <date>2007-12-03 09:57:30 -0800</date>
            <delta_ts>2007-12-03 15:36:10 -0800</delta_ts>
            <desc>First try</desc>
            <filename>HTML5-media-gstreamer.patch</filename>
            <type>text/plain</type>
            <size>31392</size>
            <attacher name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODM0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODUgQEAKKzIwMDctMTItMDMgIFBpZXJyZS1MdWMgQmVhdWRvaW4gIDxwaWVycmUt
bHVjLmJlYXVkb2luQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBvZiBhIGZpeCB0byAjMTYxNDUuICAKKyAgICAg
ICAgVGhpcyBpbXBsZW1lbnRzIHRoZSBtZWRpYSB0YWdzIG9mIEhUTUwgNSBvbiB0aGUgR1RLKyBw
b3J0IGJhc2VkIG9uIHRoZSAKKyAgICAgICAgTWFjIHBvcnQuIE1lZGlhIHRlc3RzIHBhc3MgYWx0
aG91Z2ggc29tZSB0ZXN0cyByZXF1aXJlZCBhIHNtYWxsIG1vZGlmaWNhdGlvbnM6IAorICAgICAg
ICBBcyBwZXIgdGhlIEhUTUwgNSBzcGVjLCB0aGUgbG9hZGluZyBvZiB0aGUgY2xpcCBzaG91bGQg
c3RhcnQgb25seSBhZnRlciAKKyAgICAgICAgYWxsIHNjcmlwdCBhcmUgZG9uZS4gIEJ1dCBpbiB0
aGUgY2FzZSBvZiB0aGUgdGVzdHMsIHRoZSBsb2FkaW5nIHN0YXJ0cyAKKyAgICAgICAgYmVmb3Jl
IHNvbWUgY2FsbGJhY2tzIGdldCByZWdpc3RlcmVkLiAgVGhpcyBoYXMgYmVlbiBkaXNjdXNzZWQg
d2l0aCAKKyAgICAgICAgQW50dGkgS29pdmlzdG8sIGFuZCB0aGUgdGVzdHMgc2hvdWxkIGJlIHVw
ZGF0ZWQuCisKKyAgICAgICAgVGhlcmUgaXMgb25seSBvbmUga25vd24gaXNzdWU6IG9uZSB0aW1l
IGluIDEwIHRyaWVzLCBsb2FkaW5nIGEgYnVmZmVyZWQgCisgICAgICAgIGNsaXAgd2lsbCBuZXZl
ciBlbmQgYnVmZmVyaW5nLiAgVGhlIGJ1ZmZlcmluZyB3aWxsIHN0YWxsIGF0IDk3JSBmb3Igbm8g
CisgICAgICAgIGFwcGFyZW50IHJlYXNvbnMuICBSZWxvYWRpbmcgdGhlIHBhZ2UgdXN1YWxseSB3
b3JrcyBhcm91bmQgdGhlIHByb2JsZW0uCisgICAgICAgIE9uIHRoZSBHU3RyZWFtZXIgc2lkZSwg
c29tZSBjb2RlY3MgZG9uJ3QgcmV0dXJuIGNvcnJlY3QgdmFsdWVzLCB0aGVyZWZvcmUKKyAgICAg
ICAgdGhleSBtYWtlIHRoZSB0ZXN0cyBmYWlsLiAgRm9yIGluc3RhbmNlIEguMjY0IHdpbGwgbWFr
ZSB0aGUgdmlkZW8tZW5kIAorICAgICAgICB0ZXN0IGZhaWwuCisKKyAgICAgICAgVGhpcyB2ZXJz
aW9uIGRpc3BsYXlzIHZpZGVvIGluIGEgcG9wIHVwIHdpbmRvdy4gIEEgcGxhY2UgaG9sZGVyIGlz
IGRyYXduCisgICAgICAgIG9uIHRoZSBwYWdlIHdoZXJlIHRoZSB2aWRlbyBzaG91bGQgYXBwZWFy
LgorCisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgIEVuYWJsZSB2aWRlbyBmb3IgR3Rr
IGJ1aWxkcworICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgIEFkZGVkIGEgbG9n
Z2luZyBsZXZlbCBmb3IgTWVkaWEgc3R1ZmYKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
b3ZpZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01vdmllUHJpdmF0ZUdT
dHJlYW1lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6bW92aWVfcHJpdmF0ZV9lcnJv
cl9jYik6CisgICAgICAgIChXZWJDb3JlOjptb3ZpZV9wcml2YXRlX2Vvc19jYik6CisgICAgICAg
IChXZWJDb3JlOjptb3ZpZV9wcml2YXRlX3N0YXRlX2NiKToKKyAgICAgICAgKFdlYkNvcmU6Om1v
dmllX3ByaXZhdGVfYnVmZmVyaW5nX2NiKToKKyAgICAgICAgKFdlYkNvcmU6Om1vdmllX3ByaXZh
dGVfd2luZG93X2lkX2NiKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6TW92aWVQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6fk1vdmllUHJpdmF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmxvYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TW92aWVQcml2YXRlOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6
cGF1c2UpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpkdXJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vdmllUHJpdmF0ZTo6c2Vlayk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6
OnNldEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjphZGRDdWVQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OnJlbW92ZUN1ZVBvaW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6Y2xlYXJDdWVQb2ludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TW92aWVQcml2YXRlOjpzdGFydEN1ZVBvaW50VGltZXJJZk5lZWRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmNhbmNlbFNlZWspOgorICAgICAgICAoV2ViQ29y
ZTo6TW92aWVQcml2YXRlOjpjdWVQb2ludFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TW92aWVQcml2YXRlOjpwYXVzZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpz
ZWVraW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6bmF0dXJhbFNpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpoYXNWaWRlbyk6CisgICAgICAgIChXZWJD
b3JlOjpNb3ZpZVByaXZhdGU6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVBy
aXZhdGU6OnNldE11dGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6c2V0UmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmRhdGFSYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6bmV0d29ya1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmllUHJpdmF0ZTo6cmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZh
dGU6Om1heFRpbWVCdWZmZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6Om1h
eFRpbWVTZWVrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6Om1heFRpbWVM
b2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpieXRlc0xvYWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OnRvdGFsQnl0ZXNLbm93bik6CisgICAgICAg
IChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OnRvdGFsQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
TW92aWVQcml2YXRlOjpjYW5jZWxMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0
ZTo6dXBkYXRlU3RhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6bG9hZFN0
YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OnJhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6c2l6ZUNoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjp0aW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb3ZpZVByaXZhdGU6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQ
cml2YXRlOjpkaWRFbmQpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpMb2FkaW5n
RmFpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6c2V0UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OnNldFZpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TW92aWVQcml2YXRlOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6
OmdldFN1cHBvcnRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6Y3Jl
YXRlR1NUUGxheUJpbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01vdmllUHJp
dmF0ZUdTdHJlYW1lci5oOiBBZGRlZC4KKwogMjAwNy0xMi0wMyAgQWxwIFRva2VyICA8YWxwQGF0
b2tlci5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpJbmRleDogV2ViQ29y
ZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lv
biAyODM0NSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTc0LDYg
Kzc0LDcgQEAgZ3RrLXBvcnQ6IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YU0xUPQogIyFjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfWEJMPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YQkw9MQogcXQt
cG9ydDogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9Lik6IERFRklORVMgKz0gRU5BQkxF
X1NWRz0xCiBndGstcG9ydDpERUZJTkVTICs9IEVOQUJMRV9TVkc9MQorZ3RrLXBvcnQ6REVGSU5F
UyArPSBFTkFCTEVfVklERU89MQogCiBERUZJTkVTICs9IFdURl9DSEFOR0VTPTEKIApAQCAtMTA4
MCw2ICsxMDgxLDQwIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JQ09OREFUQUJBU0U9MSkK
ICAgICAgICAgbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlTm9uZS5jcHAKIH0KIAorY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKKyAgICBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfVklERU89MQorICAgIAorCisgICAgSURMX0JJTkRJTkdTICs9IFwKKyAgICAg
ICAgaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbCBcCisgICAgICAgIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwgXAorICAgICAgICBodG1sL0hUTUxTb3VyY2VFbGVtZW50LmlkbCBcCisgICAgICAg
IGh0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGwgXAorICAgICAgICBodG1sL01lZGlhRXJyb3IuaWRs
IFwKKyAgICAgICAgaHRtbC9UaW1lUmFuZ2VzLmlkbCBcCisgICAgICAgIGh0bWwvVm9pZENhbGxi
YWNrLmlkbCAKKworICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBodG1sL0hUTUxBdWRpb0VsZW1l
bnQuY3BwIFwKKyAgICAgICAgaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisgICAgICAgIGh0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwIFwKKyAgICAgICAgaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmNwcCBcCisgICAgICAgIGh0bWwvVGltZVJhbmdlcy5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9Nb3ZpZS5jcHAgXAorICAgICAgICByZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwIFwK
KyAgICAgICAgcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL2pz
L0pTSFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yLmNwcCAKKyAgICAgICAgCisgICAgZ3RrLXBv
cnQ6IHsKKyAgICAgICAgU09VUkNFUyArPSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9ndGsvTW92aWVQcml2YXRlR1N0cmVhbWVyLmNwcAorICAgICAgICAKKyAgICAgICAgUEtHQ09O
RklHICs9IGdzdHJlYW1lci0wLjEwIGdzdHJlYW1lci1wbHVnaW5zLWJhc2UtMC4xMCBnbm9tZS12
ZnMtMi4wCisgICAgICAgIExJQlMgKz0gLWxnc3RpbnRlcmZhY2VzLTAuMTAgLWxnc3RiYXNlLTAu
MTAgLWxnc3R2aWRlby0wLjEwCisgICAgCisgICAgfQorfQorCiBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfWFBBVEg9MSkgewogICAgIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJM
RV9YUEFUSD0xCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcAkocmV2aXNpb24gMjgzNDUpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw0ICs1NCw2
IEBAIFdURkxvZ0NoYW5uZWwgTG9nRlRQID0gICAgICAgICAgICAgICB7IDAKIFdURkxvZ0NoYW5u
ZWwgTG9nVGhyZWFkaW5nID0gICAgICAgICB7IDB4MDA0MDAwMDAsICJXZWJDb3JlTG9nTGV2ZWwi
LCBXVEZMb2dDaGFubmVsT2ZmIH07CiBXVEZMb2dDaGFubmVsIExvZ1N0b3JhZ2VBUEkgPSAgICAg
ICAgeyAweDAwODAwMDAwLCAiV2ViQ29yZUxvZ0xldmVsIiwgV1RGTG9nQ2hhbm5lbE9mZiB9Owog
CitXVEZMb2dDaGFubmVsIExvZ01lZGlhID0gICAgICAgICAgICAgeyAweDAxMDAwMDAwLCAiV2Vi
Q29yZUxvZ0xldmVsIiwgV1RGTG9nQ2hhbm5lbE9mZiB9OworCiB9CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAkocmV2aXNpb24gMjgzNDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZXh0ZXJu
IFdURkxvZ0NoYW5uZWwgTG9nRlRQOwogICAgIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ1RocmVh
ZGluZzsKICAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBMb2dTdG9yYWdlQVBJOworICAgIGV4dGVy
biBXVEZMb2dDaGFubmVsIExvZ01lZGlhOwogCiAgICAgdm9pZCBJbml0aWFsaXplTG9nZ2luZ0No
YW5uZWxzSWZOZWNlc3NhcnkoKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TW92aWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTW92aWUu
Y3BwCShyZXZpc2lvbiAyODM0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTW92aWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBACiAKICNpZiBQTEFURk9STShNQUMp
CiAjaW5jbHVkZSAiTW92aWVQcml2YXRlUVRLaXQuaCIKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyNp
bmNsdWRlICJNb3ZpZVByaXZhdGVHU3RyZWFtZXIuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Nb3ZpZVByaXZhdGVH
U3RyZWFtZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L01vdmllUHJpdmF0ZUdTdHJlYW1lci5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9Nb3ZpZVByaXZhdGVHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDY3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3IENvbGxhYm9yYSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEF1dGhvcjogUGllcnJlLUx1YyBCZWF1ZG9p
biA8cGllcnJlLWx1Yy5iZWF1ZG9pbkBjb2xsYWJvcmEuY28udWs+CisgKiAKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dGUKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJUyBFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIk1vdmllUHJp
dmF0ZUdTdHJlYW1lci5oIgorCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisj
aW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRl
ICJNb3ZpZS5oIgorI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCisjaW5jbHVkZSA8Z2RrL2dka3guaD4KKyNp
bmNsdWRlIDxnc3QvZ3N0Lmg+CisjaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMveG92ZXJsYXkuaD4K
KyNpbmNsdWRlIDxnc3QvaW50ZXJmYWNlcy9taXhlci5oPgorI2luY2x1ZGUgPGdzdC9iYXNlL2dz
dGJhc2VzcmMuaD4KKyNpbmNsdWRlIDxnc3QvdmlkZW8vdmlkZW8uaD4KKyNpbmNsdWRlIDxsaWJn
bm9tZXZmcy9nbm9tZS12ZnMuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworLy8gTG9jYWwgdmFyLCBmb3Igc3RyYW5nZSByZWFzb25zLCBhIG1lbWJlciB2YXIg
d2lsbCBtYWtlIHRoZSBhcHAgY3Jhc2gKK0dka1dpbmRvdyAqIG1fd2luZG93OworCitnYm9vbGVh
biBtb3ZpZV9wcml2YXRlX2Vycm9yX2NiKEdzdEJ1cyAqYnVzLCBHc3RNZXNzYWdlICptZXNzYWdl
LCBncG9pbnRlciBkYXRhKQoreworICAgIGlmIChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2UpID09
IEdTVF9NRVNTQUdFX0VSUk9SKQorICAgIHsKKyAgICAgICAgR0Vycm9yICplcnI7CisgICAgICAg
IGdjaGFyICpkZWJ1ZzsKKworICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdl
LCAmZXJyLCAmZGVidWcpOworICAgICAgICBpZiAoZXJyLT5jb2RlID09IDMpeworICAgICAgICAg
ICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJGaWxlIG5vdCBmb3VuZFxuIik7CisgICAgICAgICAgICBN
b3ZpZVByaXZhdGUgKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TW92aWVQcml2YXRlKj4oZGF0YSk7
CisgICAgICAgICAgICBpZiAobXApICAgICAgIAorICAgICAgICAgICAgICAgIG1wLT5Mb2FkaW5n
RmFpbGVkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMT0dfVkVSQk9TRShNZWRp
YSwgIkVycm9yOiAlZCwgJXNcbiIsIGVyci0+Y29kZSwgIGVyci0+bWVzc2FnZSk7CisgICAgICAg
ICAgICBnX2Vycm9yX2ZyZWUoZXJyKTsKKyAgICAgICAgICAgIGdfZnJlZShkZWJ1Zyk7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2dib29sZWFuIG1vdmllX3ByaXZh
dGVfZW9zX2NiKEdzdEJ1cyAqYnVzLCBHc3RNZXNzYWdlICptZXNzYWdlLCBncG9pbnRlciBkYXRh
KQoreworICAgIGlmIChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2UpID09IEdTVF9NRVNTQUdFX0VP
UykKKyAgICB7CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiRU5EIE9GIFNUUkVBTVxuIik7
CisgICAgICAgIE1vdmllUHJpdmF0ZSAqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNb3ZpZVByaXZh
dGUqPihkYXRhKTsgICAgICAgCisgICAgICAgIG1wLT5kaWRFbmQoKTsKKyAgICB9CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2dib29sZWFuIG1vdmllX3ByaXZhdGVfc3RhdGVfY2IoR3N0QnVzICpi
dXMsIEdzdE1lc3NhZ2UgKm1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCit7CisgICAgaWYgKEdTVF9N
RVNTQUdFX1RZUEUobWVzc2FnZSkgPT0gR1NUX01FU1NBR0VfU1RBVEVfQ0hBTkdFRCkKKyAgICB7
CisgICAgICAgIE1vdmllUHJpdmF0ZSAqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNb3ZpZVByaXZh
dGUqPihkYXRhKTsgICAgICAgCisgICAgICAgIG1wLT51cGRhdGVTdGF0ZXMoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2dib29sZWFuIG1vdmllX3ByaXZhdGVfYnVmZmVyaW5nX2Ni
KEdzdEJ1cyAqYnVzLCBHc3RNZXNzYWdlICptZXNzYWdlLCBncG9pbnRlciBkYXRhKQoreworICAg
IGlmIChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2UpID09IEdTVF9NRVNTQUdFX0JVRkZFUklORykK
KyAgICB7ICAgCisgICAgICAgIGdpbnQgcGVyY2VudCA9IDA7CisgICAgICAgIGdzdF9tZXNzYWdl
X3BhcnNlX2J1ZmZlcmluZyhtZXNzYWdlLCAmcGVyY2VudCk7CisgICAgICAgIExPR19WRVJCT1NF
KE1lZGlhLCAiQnVmZmVyaW5nICVkXG4iLCBwZXJjZW50KTsgICAgCisgICAgICAgIAorICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy8gU2V0dXAgdGhlIG92ZXJsYXkgd2hlbiB0aGUgbWVz
c2FnZSBpcyByZWNlaXZlZAorR3N0QnVzU3luY1JlcGx5IG1vdmllX3ByaXZhdGVfd2luZG93X2lk
X2NiKEdzdEJ1cyAqIGJ1cywgR3N0TWVzc2FnZSAqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCit7
CisgICAgaWYgKEdTVF9NRVNTQUdFX1RZUEUobWVzc2FnZSkgIT0gR1NUX01FU1NBR0VfRUxFTUVO
VCkKKyAgICAgICAgcmV0dXJuIEdTVF9CVVNfUEFTUzsKKworICAgIGlmICghZ3N0X3N0cnVjdHVy
ZV9oYXNfbmFtZShtZXNzYWdlLT5zdHJ1Y3R1cmUsICJwcmVwYXJlLXh3aW5kb3ctaWQiKSkKKyAg
ICAgICAgcmV0dXJuIEdTVF9CVVNfUEFTUzsKKworICAgIC8vIERpc2FibGVkIGZvciBub3cgYXMg
aXQgaXMgYW5ub3lpbmc6IHRoZSBvdmVybGF5IGlmIGRvbmUgZm9yIHRoZSB3aG9sZSB3ZWIgcGFn
ZQorICAgIC8vIG5vdCBvbmx5IHRoZSBzcGVjaWZpZWQgUmVjdC4uLgorCisgICAgLy9nc3RfeF9v
dmVybGF5X3NldF94d2luZG93X2lkKAorICAgIC8vICAgIEdTVF9YX09WRVJMQVkoR1NUX01FU1NB
R0VfU1JDKG1lc3NhZ2UpKSwKKyAgICAvLyAgICBHREtfV0lORE9XX1hJRChtX3dpbmRvdykpOwor
ICAgIHJldHVybiBHU1RfQlVTX0RST1A7Cit9CisKK01vdmllUHJpdmF0ZTo6TW92aWVQcml2YXRl
KE1vdmllKiBtb3ZpZSkKKyAgICA6IG1fbW92aWUobW92aWUpCisgICAgLCBtX3BsYXlCaW4oMCkK
KyAgICAsIG1fdmlkZW9fc2luaygwKQorICAgICwgbV9zb3VyY2UoMCkKKyAgICAsIG1fc2Vla1Rv
KC0xKQorICAgICwgbV9yYXRlKDEuMGYpCisgICAgLCBtX2VuZFRpbWUoc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OmluZmluaXR5KCkpCisgICAgLCBtX2VuZFJlYWNoZWQoZmFsc2UpCisgICAg
LCBtX29sZFZvbHVtZSgwLjVmKQorICAgICwgbV9wcmV2aW91c1RpbWVDdWVUaW1lckZpcmVkKDAp
CisgICAgLCBtX25ldHdvcmtTdGF0ZShNb3ZpZTo6RW1wdHkpCisgICAgLCBtX3JlYWR5U3RhdGUo
TW92aWU6OkRhdGFVbmF2YWlsYWJsZSkKKyAgICAsIG1fc3RhcnRlZFBsYXlpbmcoZmFsc2UpCisg
ICAgLCBtX2lzU3RyZWFtaW5nKGZhbHNlKQoreworICAgIC8vRklYTUUgV2Ugc2hvdWxkIHBhc3Mg
dGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUKKyAgICBnc3RfaW5pdCgwLCBOVUxM
KTsKK30KKworTW92aWVQcml2YXRlOjp+TW92aWVQcml2YXRlKCkKK3sKKyAgICBnc3RfZWxlbWVu
dF9zZXRfc3RhdGUobV9wbGF5QmluLCBHU1RfU1RBVEVfTlVMTCk7CisgICAgZ3N0X29iamVjdF91
bnJlZihHU1RfT0JKRUNUKG1fcGxheUJpbikpOworfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6bG9h
ZChTdHJpbmcgdXJsKQoreworICAgIExPR19WRVJCT1NFKE1lZGlhLCAiTE9BRCAlc1xuIiwgdXJs
LnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChtX25ldHdvcmtTdGF0ZSAhPSBNb3ZpZTo6TG9hZGlu
ZykgeworICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1vdmllOjpMb2FkaW5nOworICAgICAgICBt
X21vdmllLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CisgICAgfQorICAgIGlmIChtX3JlYWR5U3Rh
dGUgIT0gTW92aWU6OkRhdGFVbmF2YWlsYWJsZSkgeworICAgICAgICBtX3JlYWR5U3RhdGUgPSBN
b3ZpZTo6RGF0YVVuYXZhaWxhYmxlOworICAgICAgICBtX21vdmllLT5yZWFkeVN0YXRlQ2hhbmdl
ZCgpOworICAgIH0KKworICAgIGNhbmNlbFNlZWsoKTsKKyAgICBjcmVhdGVHU1RQbGF5QmluKHVy
bCk7CisgICAgcGF1c2UoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnBsYXkoKQoreworICAg
IGNhbmNlbFNlZWsoKTsKKyAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlBMQVlcbiIpOworICAgIC8v
IFdoZW4gZW5kIHJlYWNoZWQsIHJld2luZCBmb3IgVGVzdCB2aWRlby1zZWVrLXBhc3QtZW5kLXBs
YXlpbmcKKyAgICBpZiAobV9lbmRSZWFjaGVkKQorICAgICAgICBzZWVrKDApOworICAgIG1fZW5k
UmVhY2hlZCA9IGZhbHNlOworCisgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbiwg
R1NUX1NUQVRFX1BMQVlJTkcpOworICAgIG1fc3RhcnRlZFBsYXlpbmcgPSB0cnVlOworfQorCit2
b2lkIE1vdmllUHJpdmF0ZTo6cGF1c2UoKQoreworICAgIGNhbmNlbFNlZWsoKTsKKyAgICBMT0df
VkVSQk9TRShNZWRpYSwgIlBBVVNFXG4iKTsKKyAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9w
bGF5QmluLCBHU1RfU1RBVEVfUEFVU0VEKTsKKyAgICBtX3N0YXJ0ZWRQbGF5aW5nID0gZmFsc2U7
Cit9CisKK2Zsb2F0IE1vdmllUHJpdmF0ZTo6ZHVyYXRpb24oKQoreworICAgIGlmICghbV9wbGF5
QmluKQorICAgICAgICByZXR1cm4gMC4wOworCisgICAgR3N0Rm9ybWF0IGZtdCA9IEdTVF9GT1JN
QVRfVElNRTsKKyAgICBnaW50NjQgbGVuID0gMDsKKworICAgIGlmIChnc3RfZWxlbWVudF9xdWVy
eV9kdXJhdGlvbihtX3BsYXlCaW4sICZmbXQsICZsZW4pKSAKKyAgICAgICAgTE9HX1ZFUkJPU0Uo
TWVkaWEsICJkdXJhdGlvbjogJSIgR1NUX1RJTUVfRk9STUFUICJcbiIsIEdTVF9USU1FX0FSR1Mo
bGVuKSk7CisgICAgZWxzZSAKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJkdXJhdGlvbiBx
dWVyeSBmYWlsZWRcbiAiKTsKKyAgICBpZiAoKEdzdENsb2NrVGltZSlsZW4gPT0gR1NUX0NMT0NL
X1RJTUVfTk9ORSl7CisgICAgICAgIG1faXNTdHJlYW1pbmcgPSB0cnVlOworICAgICAgICByZXR1
cm4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCk7CisgICAgfQorICAgIHJl
dHVybiAoZmxvYXQpIChsZW4gLyAxMDAwMDAwMDAwLjApOworICAgIC8vRklYTUU6IGhhbmRsZSAz
LjE0LjkuNSBwcm9wZXJseQorfQorCitmbG9hdCBNb3ZpZVByaXZhdGU6OmN1cnJlbnRUaW1lKCkg
Y29uc3QKK3sgCisgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybiAwOworICAgIGlm
IChzZWVraW5nKCkpCisgICAgICAgIHJldHVybiBtX3NlZWtUbzsKKyAgICAvLyBOZWNlc3Nhcnkg
YXMgc29tZXRpbWVzLCBnc3RyZWFtZXIgcmV0dXJuIDA6MDAgYXQgdGhlIEVPUworICAgIGlmICht
X2VuZFJlYWNoZWQpCisgICAgICAgIHJldHVybiBtX2VuZFRpbWU7CisKKyAgICBmbG9hdCByZXQ7
CisgICAgR3N0UXVlcnkgKnF1ZXJ5OworICAgIGdib29sZWFuIHJlczsKKworICAgIHF1ZXJ5ID0g
Z3N0X3F1ZXJ5X25ld19wb3NpdGlvbihHU1RfRk9STUFUX1RJTUUpOworICAgIHJlcyA9IGdzdF9l
bGVtZW50X3F1ZXJ5KG1fcGxheUJpbiwgcXVlcnkpOworICAgIGlmIChyZXMpIHsKKyAgICAgICAg
Z2ludDY0IHBvc2l0aW9uOworICAgICAgICBnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24ocXVlcnks
IE5VTEwsICZwb3NpdGlvbik7CisgICAgICAgIHJldCA9IChmbG9hdCkgKHBvc2l0aW9uIC8gMTAw
MDAwMDAwMC4wKTsKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJjdXJyZW50VGltZSAlIiBH
U1RfVElNRV9GT1JNQVQiXG4iLCBHU1RfVElNRV9BUkdTKHBvc2l0aW9uKSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJwb3NpdGlvbiBxdWVyeSBmYWlsZWQuLi5c
biIpOworICAgICAgICByZXQgPSAwLjA7CisgICAgfQorICAgIGdzdF9xdWVyeV91bnJlZihxdWVy
eSk7CisgICAgcmV0dXJuIHJldDsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnNlZWsoZmxvYXQg
dGltZSkKK3sKKyAgICBjYW5jZWxTZWVrKCk7CisgICAgR3N0Q2xvY2tUaW1lIHNlYyA9IChHc3RD
bG9ja1RpbWUpKHRpbWUgKiBHU1RfU0VDT05EKTsKKworICAgIGlmICghbV9wbGF5QmluKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgaWYgKG1faXNTdHJlYW1pbmcpCisgICAgICAgIHJldHVy
bjsKKworICAgIExPR19WRVJCT1NFKE1lZGlhLCAic2VlazogJSIgR1NUX1RJTUVfRk9STUFUICJc
biIsIEdTVF9USU1FX0FSR1Moc2VjKSk7CisgICAgLy8gRklYTUU6IFdoYXQgaGFwcGVucyB3aGVu
IHRoZSBzZWVrZWQgcG9zaXRpb24gaXMgbm90IGF2YWlsYWJsZT8KKyAgICBpZiAoIWdzdF9lbGVt
ZW50X3NlZWsoIG1fcGxheUJpbiwgbV9yYXRlLCAKKyAgICAgICAgICAgIEdTVF9GT1JNQVRfVElN
RSwgCisgICAgICAgICAgICAoR3N0U2Vla0ZsYWdzKShHU1RfU0VFS19GTEFHX0ZMVVNIKSwKKyAg
ICAgICAgICAgIEdTVF9TRUVLX1RZUEVfU0VULCBzZWMsCisgICAgICAgICAgICBHU1RfU0VFS19U
WVBFX05PTkUsIEdTVF9DTE9DS19USU1FX05PTkUpKQorICAgICAgICBMT0dfVkVSQk9TRShNZWRp
YSwgInNlZWsgdG8gJWYgZmFpbGVkIiwgdGltZSk7IAorfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6
c2V0RW5kVGltZShmbG9hdCB0aW1lKQoreworICAgIGlmICghbV9wbGF5QmluKQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKG1faXNTdHJlYW1pbmcpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
bV9lbmRUaW1lICE9IHRpbWUpIHsKKyAgICAgICAgbV9lbmRUaW1lID0gdGltZTsKKyAgICAgICAg
R3N0Q2xvY2tUaW1lIHN0YXJ0ID0gKEdzdENsb2NrVGltZSkoY3VycmVudFRpbWUoKSAqIEdTVF9T
RUNPTkQpOworICAgICAgICBHc3RDbG9ja1RpbWUgZW5kICAgPSAoR3N0Q2xvY2tUaW1lKSh0aW1l
ICogR1NUX1NFQ09ORCk7CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAic2V0RW5kVGltZTog
JSIgR1NUX1RJTUVfRk9STUFUICJcbiIsIEdTVF9USU1FX0FSR1MoZW5kKSk7CisgICAgICAgIC8v
IEZJWE1FOiBXaGF0IGhhcHBlbnMgd2hlbiB0aGUgc2Vla2VkIHBvc2l0aW9uIGlzIG5vdCBhdmFp
bGFibGU/CisgICAgICAgIGlmKCFnc3RfZWxlbWVudF9zZWVrKCBtX3BsYXlCaW4sIG1fcmF0ZSwg
CisgICAgICAgICAgICAgICAgR1NUX0ZPUk1BVF9USU1FLCAKKyAgICAgICAgICAgICAgICAoR3N0
U2Vla0ZsYWdzKShHU1RfU0VFS19GTEFHX0ZMVVNIIHwgR1NUX1NFRUtfRkxBR19BQ0NVUkFURSks
CisgICAgICAgICAgICAgICAgR1NUX1NFRUtfVFlQRV9TRVQsIHN0YXJ0LAorICAgICAgICAgICAg
ICAgIEdTVF9TRUVLX1RZUEVfU0VULCBlbmQgKSkKKyAgICAgICAgICAgIExPR19WRVJCT1NFKE1l
ZGlhLCAic2VlayB0byAlZiBmYWlsZWQiLCB0aW1lKTsKKyAgICB9Cit9CisKK3ZvaWQgTW92aWVQ
cml2YXRlOjphZGRDdWVQb2ludChmbG9hdCB0aW1lKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpyZW1vdmVDdWVQb2ludChmbG9hdCB0aW1lKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpjbGVhckN1ZVBv
aW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6
OnN0YXJ0Q3VlUG9pbnRUaW1lcklmTmVlZGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIE1vdmllUHJpdmF0ZTo6Y2FuY2VsU2VlaygpCit7CisgICAgaWYgKG1fc2Vla1Rv
ID4gLTEpCisgICAgICAgIG1fc2Vla1RvID0gLTE7Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpj
dWVQb2ludFRpbWVyRmlyZWQoVGltZXI8TW92aWVQcml2YXRlPiopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworYm9vbCBNb3ZpZVByaXZhdGU6OnBhdXNlZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICFtX3N0YXJ0ZWRQbGF5aW5nOworfQorCitib29sIE1vdmllUHJpdmF0ZTo6c2Vla2lu
ZygpIGNvbnN0Cit7CisgICAgIGlmICghbV9wbGF5QmluKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIG1fc2Vla1RvID49IDA7Cit9CisKKy8vIFJldHVybnMgdGhlIHNpemUgb2Yg
dGhlIHZpZGVvCisvLyBEb25lOiAyMS0xMS0yMDA3CitJbnRTaXplIE1vdmllUHJpdmF0ZTo6bmF0
dXJhbFNpemUoKQoreworICAgIGludCB4ID0gMCwgeSA9IDA7CisgICAgaWYgKGhhc1ZpZGVvKCkp
IHsKKyAgICAgICAgR3N0UGFkICogcGFkID0gTlVMTDsKKyAgICAgICAgcGFkID0gZ3N0X2VsZW1l
bnRfZ2V0X3BhZChtX3ZpZGVvX3NpbmssICJzaW5rIik7CisgICAgICAgIGlmIChwYWQpCisgICAg
ICAgICAgICBnc3RfdmlkZW9fZ2V0X3NpemUoR1NUX1BBRChwYWQpLCAmeCwgJnkpOworICAgIH0K
KyAgICByZXR1cm4gSW50U2l6ZSh4LCB5KTsKK30KKworLy8gRG9uZTogMjEtMTEtMjAwNworYm9v
bCBNb3ZpZVByaXZhdGU6Omhhc1ZpZGVvKCkKK3sKKyAgICBnaW50IGN1cnJlbnRWaWRlbyA9IC0x
OworICAgIGlmIChtX3BsYXlCaW4pCisgICAgICAgIGdfb2JqZWN0X2dldChHX09CSkVDVChtX3Bs
YXlCaW4pLCAiY3VycmVudC12aWRlbyIsICZjdXJyZW50VmlkZW8sIE5VTEwpOworICAgIHJldHVy
biBjdXJyZW50VmlkZW8gPiAtMTsKK30KKworLy8gRG9uZTogMjctMTEtMjAwNwordm9pZCBNb3Zp
ZVByaXZhdGU6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCit7CisgICAgbV9vbGRWb2x1bWUgPSB2
b2x1bWU7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJWb2x1bWUgdG8gJWZcbiIsIHZvbHVtZSk7
CisgICAgc2V0TXV0ZWQoZmFsc2UpOworfQorCisvLyBEb25lOiAyNy0xMS0yMDA3Cit2b2lkIE1v
dmllUHJpdmF0ZTo6c2V0TXV0ZWQoYm9vbCBiKQoreworICAgIGlmICghbV9wbGF5QmluKSAKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKGIpCisgICAgeworICAgICAgICBnX29iamVjdF9nZXQo
R19PQkpFQ1QobV9wbGF5QmluKSwgInZvbHVtZSIsICZtX29sZFZvbHVtZSwgTlVMTCk7CisgICAg
ICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4pLCAidm9sdW1lIiwgKGRvdWJsZSkw
LjAsIE5VTEwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVDVCht
X3BsYXlCaW4pLCAidm9sdW1lIiwgbV9vbGRWb2x1bWUsIE5VTEwpOworICAgIH0KK30KKworLy8g
RG9uZTogMjctMTEtMjAwNwordm9pZCBNb3ZpZVByaXZhdGU6OnNldFJhdGUoZmxvYXQgcmF0ZSkK
K3sKKyAgICBpZiAocmF0ZSA9PSAwLjApeworICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUo
bV9wbGF5QmluLCBHU1RfU1RBVEVfUEFVU0VEKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gCisg
ICAgaWYgKG1faXNTdHJlYW1pbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmF0ZSA9IHJh
dGU7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJTZXQgUmF0ZSB0byAlZlxuIiwgcmF0ZSk7Cisg
ICAgaWYgKCFnc3RfZWxlbWVudF9zZWVrKCBtX3BsYXlCaW4sIHJhdGUsCisgICAgICAgICAgICBH
U1RfRk9STUFUX1RJTUUsCisgICAgICAgICAgICAoR3N0U2Vla0ZsYWdzKShHU1RfU0VFS19GTEFH
X0ZMVVNIIHwgR1NUX1NFRUtfRkxBR19BQ0NVUkFURSksCisgICAgICAgICAgICBHU1RfU0VFS19U
WVBFX1NFVCwgKEdzdENsb2NrVGltZSkgKGN1cnJlbnRUaW1lKCkgKiBHU1RfU0VDT05EKSwKKyAg
ICAgICAgICAgIEdTVF9TRUVLX1RZUEVfU0VULCAoR3N0Q2xvY2tUaW1lKSAobV9lbmRUaW1lICog
R1NUX1NFQ09ORCkpKSAgIAorICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlNldCBSYXRlIHRv
ICVmIGZhaWxlZCIsIHJhdGUpOworfQorCitpbnQgTW92aWVQcml2YXRlOjpkYXRhUmF0ZSgpIGNv
bnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMTsKK30KKworTW92aWU6
Ok5ldHdvcmtTdGF0ZSBNb3ZpZVByaXZhdGU6Om5ldHdvcmtTdGF0ZSgpCit7CisgICAgcmV0dXJu
IG1fbmV0d29ya1N0YXRlOworfQorCitNb3ZpZTo6UmVhZHlTdGF0ZSBNb3ZpZVByaXZhdGU6OnJl
YWR5U3RhdGUoKQoreworICAgIHJldHVybiBtX3JlYWR5U3RhdGU7Cit9CisKK2Zsb2F0IE1vdmll
UHJpdmF0ZTo6bWF4VGltZUJ1ZmZlcmVkKCkKK3sKKyAgICAvL1RPRE8KKyAgICBMT0dfVkVSQk9T
RShNZWRpYSwgIi0tbWF4VGltZUJ1ZmZlcmVkXG4iKTsKKyAgICAvLyBydHNwIHN0cmVhbXMgYXJl
IG5vdCBidWZmZXJlZAorICAgIHJldHVybiBtX2lzU3RyZWFtaW5nID8gMCA6IG1heFRpbWVMb2Fk
ZWQoKTsKK30KKworZmxvYXQgTW92aWVQcml2YXRlOjptYXhUaW1lU2Vla2FibGUoKQoreworICAg
IC8vVE9ETworICAgIExPR19WRVJCT1NFKE1lZGlhLCAiLS1tYXhUaW1lU2Vla2FibGVcbiIpOwor
ICAgIGlmIChtX2lzU3RyZWFtaW5nKQorICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0
czxmbG9hdD46OmluZmluaXR5KCk7CisgICAgLy8gaW5maW5pdGUgZHVyYXRpb24gbWVhbnMgbGl2
ZSBzdHJlYW0KKyAgICByZXR1cm4gbWF4VGltZUxvYWRlZCgpOworfQorCitmbG9hdCBNb3ZpZVBy
aXZhdGU6Om1heFRpbWVMb2FkZWQoKQoreworICAgIC8vVE9ETworICAgIExPR19WRVJCT1NFKE1l
ZGlhLCAiLS1tYXhUaW1lTG9hZGVkXG4iKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBkdXJhdGlvbigpOyAKK30KKwordW5zaWduZWQgTW92aWVQcml2YXRlOjpieXRlc0xvYWRl
ZCgpCit7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICItLWJ5dGVzTG9hZGVkXG4iKTsKKyAgICAv
KmlmICghbV9wbGF5QmluKQorICAgICAgICByZXR1cm4gMDsKKyAgICBmbG9hdCBkdXIgPSBkdXJh
dGlvbigpOworICAgIGZsb2F0IG1heFRpbWUgPSBtYXhUaW1lTG9hZGVkKCk7CisgICAgaWYgKCFk
dXIpCisgICAgICAgIHJldHVybiAwOyovCisgICAgcmV0dXJuIDE7Ly90b3RhbEJ5dGVzKCkgKiBt
YXhUaW1lIC8gZHVyOworfQorCitib29sIE1vdmllUHJpdmF0ZTo6dG90YWxCeXRlc0tub3duKCkK
K3sKKyAgICBMT0dfVkVSQk9TRShNZWRpYSwgIi0tdG90YWxCeXRlc0tub3duXG4iKTsKKyAgICBy
ZXR1cm4gdG90YWxCeXRlcygpID4gMDsKK30KKwordW5zaWduZWQgTW92aWVQcml2YXRlOjp0b3Rh
bEJ5dGVzKCkKK3sKKyAgICAKKyAgICBMT0dfVkVSQk9TRShNZWRpYSwgIi0tdG90YWxCeXRlc1xu
Iik7CisgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKCFt
X3NvdXJjZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgLypHc3RGb3JtYXQgZm10ID0gR1NUX0ZP
Uk1BVF9CWVRFUzsKKyAgICAKKworICAgIGlmIChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbiht
X3BsYXlCaW4sICZmbXQsICZsZW4pKSAKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3Rh
bEJ5dGVzOiAlZFxuIiwgKGxlbikpOworICAgIGVsc2UgeworICAgICAgICBMT0dfVkVSQk9TRShN
ZWRpYSwgInRvdGFsQnl0ZXMgZmFpbGVkXG4gIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0q
LworICAgIGd1aW50NjQgbGVuOworICAgIGlmIChHX09CSkVDVF9UWVBFX05BTUUobV9zb3VyY2Up
ID09ICJHc3RGaWxlU3JjIil7CisgICAgICAgIC8vIEZJWE1FOiBHZXQgZmlsZSBzaXplIHNvbWUg
b3RoZXIgd2F5LCBtYXliZSB3aXRoIHRoZSBmZCBwcm9wZXJ0eQorICAgICAgICBsZW4gPSAwOwor
ICAgIH0gZWxzZSBpZiAoR19PQkpFQ1RfVFlQRV9OQU1FKG1fc291cmNlKSA9PSAiR3N0R25vbWVW
RlNTcmMiKSB7CisgICAgICAgIAorICAgICAgICAvKkdub21lVkZTSGFuZGxlICogaGFuZGxlOwor
ICAgICAgICBnX29iamVjdF9nZXQobV9zb3VyY2UsICJoYW5kbGUiLCBoYW5kbGUsIE5VTEwpOwor
ICAgICAgICBHbm9tZVZGU0ZpbGVJbmZvIGluZm87CisgICAgICAgIGdub21lX3Zmc19nZXRfZmls
ZV9pbmZvX2Zyb21faGFuZGxlKGhhbmRsZSwgJmluZm8sIAorICAgICAgICAgICAgR05PTUVfVkZT
X0ZJTEVfSU5GT19ERUZBVUxUKTsKKyAgICAgICAgbGVuID0gaW5mby5zaXplOyovCisgICAgfQor
ICAgIHJldHVybiAxMDA7Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpjYW5jZWxMb2FkKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6dXBkYXRlU3Rh
dGVzKCkKK3sKKyAgICAvLyBUaGVyZSBpcyBubyAoa25vd24pIHdheSB0byBnZXQgc3VjaCBsZXZl
bCBvZiBpbmZvcm1hdGlvbiBhYm91dAorICAgIC8vIHRoZSBzdGF0ZSBvZiBHU3RyZWFtZXIsIHRo
ZXJlZm9yZSwgd2hlbiBpbiBQQVVTRUQgc3RhdGUsCisgICAgLy8gd2UgYXJlIHN1cmUgd2UgY2Fu
IGRpc3BsYXkgdGhlIGZpcnN0IGZyYW1lIGFuZCBnbyB0byBwbGF5CisKKyAgICBNb3ZpZTo6TmV0
d29ya1N0YXRlIG9sZE5ldHdvcmtTdGF0ZSA9IG1fbmV0d29ya1N0YXRlOworICAgIE1vdmllOjpS
ZWFkeVN0YXRlIG9sZFJlYWR5U3RhdGUgPSBtX3JlYWR5U3RhdGU7CisgICAgR3N0U3RhdGUgc3Rh
dGU7CisgICAgR3N0U3RhdGUgcGVuZGluZzsKKyAgICAKKyAgICBpZiAoIW1fcGxheUJpbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fc2Vla1RvID49IGN1cnJlbnRUaW1lKCkpCisgICAg
ICAgIG1fc2Vla1RvID0gLTE7CisKKyAgICBHc3RTdGF0ZUNoYW5nZVJldHVybiByZXQgPSBnc3Rf
ZWxlbWVudF9nZXRfc3RhdGUgKG1fcGxheUJpbiwgCisgICAgICAgICZzdGF0ZSwgJnBlbmRpbmcs
IDI1MCAqIEdTVF9OU0VDT05EKTsKKworICAgIHN3aXRjaChyZXQpIHsKKyAgICBjYXNlIEdTVF9T
VEFURV9DSEFOR0VfU1VDQ0VTUzoKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJTdGF0ZTog
JXMsIHBlbmRpbmc6ICVzXG4iLCAKKyAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9u
YW1lKHN0YXRlKSwgCisgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShwZW5k
aW5nKSk7CisKKyAgICAgICAgaWYgKHN0YXRlID09IEdTVF9TVEFURV9SRUFEWSl7CisgICAgICAg
ICAgICBtX3JlYWR5U3RhdGUgPSBNb3ZpZTo6Q2FuUGxheVRocm91Z2g7CisgICAgICAgIH0gZWxz
ZSBpZiAoc3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCl7CisgICAgICAgICAgICBtX3JlYWR5U3Rh
dGUgPSBNb3ZpZTo6Q2FuUGxheVRocm91Z2g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fbmV0
d29ya1N0YXRlIDwgTW92aWU6OkxvYWRlZCkKKyAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0g
TW92aWU6OkxvYWRlZDsKKworICAgICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAic291cmNl
IiwgJm1fc291cmNlLCBOVUxMKTsKKyAgICAgICAgaWYgKCFtX3NvdXJjZSkKKyAgICAgICAgICAg
IExPR19WRVJCT1NFKE1lZGlhLCAibV9zb3VyY2UgaXMgTlVMTCIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfQVNZTkM6CisgICAgICAgIExPR19WRVJCT1NFKE1l
ZGlhLCAiQXN5bmM6IFN0YXRlOiAlcywgcGVuZGluZzogJXNcbiIsIAorICAgICAgICAgICAgZ3N0
X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoc3RhdGUpLCAKKyAgICAgICAgICAgIGdzdF9lbGVtZW50
X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKKyAgICAgICAgLy8gQ2hhbmdlIGluIHByb2dyZXNz
CisgICAgICAgIHJldHVybjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hB
TkdFX05PX1BSRVJPTEw6CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiTm8gcHJlcm9sbDog
U3RhdGU6ICVzLCBwZW5kaW5nOiAlc1xuIiwgCisgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0
ZV9nZXRfbmFtZShzdGF0ZSksIAorICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25h
bWUocGVuZGluZykpOworICAgICAgICBpZiAoc3RhdGUgPT0gR1NUX1NUQVRFX1JFQURZKXsKKyAg
ICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1vdmllOjpDYW5QbGF5OworICAgICAgICB9IGVsc2Ug
aWYgKHN0YXRlID09IEdTVF9TVEFURV9QQVVTRUQpeworICAgICAgICAgICAgbV9yZWFkeVN0YXRl
ID0gTW92aWU6OkNhblBsYXk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fbmV0d29ya1N0YXRl
IDwgTW92aWU6OkxvYWRlZE1ldGFEYXRhKQorICAgICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBN
b3ZpZTo6TG9hZGVkTWV0YURhdGE7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIExPR19WRVJCT1NFKE1lZGlhLCAiRWxzZSA6ICVkXG4iLCByZXQpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgCisgICAgaWYgKHNlZWtpbmcoKSkKKyAgICAgICAgbV9yZWFkeVN0YXRl
ID0gTW92aWU6OkRhdGFVbmF2YWlsYWJsZTsKKyAgICAKKyAgICBpZiAobV9uZXR3b3JrU3RhdGUg
IT0gb2xkTmV0d29ya1N0YXRlKXsKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJOZXR3b3Jr
IFN0YXRlIENoYW5nZWQgZnJvbSAldSB0byAldVxuIiwgCisgICAgICAgICAgICBvbGROZXR3b3Jr
U3RhdGUsIG1fbmV0d29ya1N0YXRlKTsKKyAgICAgICAgbV9tb3ZpZS0+bmV0d29ya1N0YXRlQ2hh
bmdlZCgpOworICAgIH0KKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IG9sZFJlYWR5U3RhdGUpewor
ICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlJlYWR5IFN0YXRlIENoYW5nZWQgZnJvbSAldSB0
byAldVxuIiwgCisgICAgICAgICAgICBvbGRSZWFkeVN0YXRlLCBtX3JlYWR5U3RhdGUpOworICAg
ICAgICBtX21vdmllLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOworICAgIH0KK30KKwordm9pZCBNb3Zp
ZVByaXZhdGU6OmxvYWRTdGF0ZUNoYW5nZWQoKQoreworICAgIHVwZGF0ZVN0YXRlcygpOworfQor
Cit2b2lkIE1vdmllUHJpdmF0ZTo6cmF0ZUNoYW5nZWQoKQoreworICAgIHVwZGF0ZVN0YXRlcygp
OworfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6c2l6ZUNoYW5nZWQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjp0aW1lQ2hhbmdlZCgpCit7CisgICAg
dXBkYXRlU3RhdGVzKCk7CisgICAgbV9tb3ZpZS0+dGltZUNoYW5nZWQoKTsKK30KKwordm9pZCBN
b3ZpZVByaXZhdGU6OnZvbHVtZUNoYW5nZWQoKQoreworICAgIG1fbW92aWUtPnZvbHVtZUNoYW5n
ZWQoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OmRpZEVuZCgpCit7CisgICAgbV9lbmRSZWFj
aGVkID0gdHJ1ZTsKKyAgICBwYXVzZSgpOworICAgIHRpbWVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQg
TW92aWVQcml2YXRlOjpMb2FkaW5nRmFpbGVkKCkKK3sKKyAgICBpZiAobV9uZXR3b3JrU3RhdGUg
IT0gTW92aWU6OkxvYWRGYWlsZWQpIHsKKyAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBNb3ZpZTo6
TG9hZEZhaWxlZDsKKyAgICAgICAgbV9tb3ZpZS0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOworICAg
IH0KKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IE1vdmllOjpEYXRhVW5hdmFpbGFibGUpIHsKKyAg
ICAgICAgbV9yZWFkeVN0YXRlID0gTW92aWU6OkRhdGFVbmF2YWlsYWJsZTsKKyAgICAgICAgbV9t
b3ZpZS0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgTW92aWVQcml2YXRl
OjpzZXRSZWN0KGNvbnN0IEludFJlY3QmIHIpIAoreyAKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIE1vdmllUHJpdmF0ZTo6c2V0VmlzaWJsZShib29sIGIpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogcCwgY29uc3QgSW50UmVjdCYgcikKK3sKKyAgICAvLyBGSVhNRSBkbyB0aGUgcmVhbCB0aGlu
ZyAgICAKKyAgICBpZiAocC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47Cisg
ICAgLy8gRm9yIG5vdyBkcmF3IGEgcGxhY2Vob2xkZXIgcmVjdGFuZ2xlCisgICAgcC0+ZHJhd1Jl
Y3Qocik7CisgICAgLy8gVGhpcyB3aWxsIGJlIHVzZWQgdG8gZHJhdyB3aXRoIFhPdmVybGF5Cisg
ICAgbV93aW5kb3cgPSBwLT5nZGtEcmF3YWJsZSgpOworfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICAvLyBGSVhN
RSBkbyB0aGUgcmVhbCB0aGluZyAgICAKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHR5cGVz
LmFkZChTdHJpbmcoInZpZGVvL3gtdGhlb3JhK29nZyIpKTsKK30gCisKK3ZvaWQgTW92aWVQcml2
YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCit7CisgICAgR3N0RWxlbWVudCogYXVk
aW9fc2luazsKKyAgICBHc3RCdXMgKiBidXM7CisKKyAgICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVu
dF9mYWN0b3J5X21ha2UoInBsYXliaW4iLCAicGxheSIpOworCisgICAgYnVzID0gZ3N0X3BpcGVs
aW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGxheUJpbikpOworCisgICAgZ3N0X2J1c19zZXRf
c3luY19oYW5kbGVyKGJ1cywgKEdzdEJ1c1N5bmNIYW5kbGVyKSBtb3ZpZV9wcml2YXRlX3dpbmRv
d19pZF9jYiwgbV9wbGF5QmluKTsKKyAgICBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2goYnVzKTsK
KworICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAibWVzc2FnZTo6ZXJyb3IiLCBHX0NBTExCQUNL
KG1vdmllX3ByaXZhdGVfZXJyb3JfY2IpLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1
cywgIm1lc3NhZ2U6OmVvcyIsIEdfQ0FMTEJBQ0sobW92aWVfcHJpdmF0ZV9lb3NfY2IpLCB0aGlz
KTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2U6OnByZXBhcmUteHdpbmRvdy1p
ZCIsIEdfQ0FMTEJBQ0sobW92aWVfcHJpdmF0ZV93aW5kb3dfaWRfY2IpLCBOVUxMKTsKKyAgICBn
X3NpZ25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2U6OnN0YXRlLWNoYW5nZWQiLCBHX0NBTExCQUNL
KG1vdmllX3ByaXZhdGVfc3RhdGVfY2IpLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1
cywgIm1lc3NhZ2U6OmJ1ZmZlcmluZyIsIEdfQ0FMTEJBQ0sobW92aWVfcHJpdmF0ZV9idWZmZXJp
bmdfY2IpLCB0aGlzKTsKKworICAgIGdzdF9vYmplY3RfdW5yZWYoYnVzKTsKKyAgICAKKyAgICBn
X29iamVjdF9zZXQoR19PQkpFQ1QobV9wbGF5QmluKSwgInVyaSIsIHVybC51dGY4KCkuZGF0YSgp
LCBOVUxMKTsKKyAgICBhdWRpb19zaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJnY29u
ZmF1ZGlvc2luayIsIE5VTEwpOworICAgIG1fdmlkZW9fc2luayA9IGdzdF9lbGVtZW50X2ZhY3Rv
cnlfbWFrZSgiZ2NvbmZ2aWRlb3NpbmsiLCBOVUxMKTsKKworICAgIGdfb2JqZWN0X3NldChtX3Bs
YXlCaW4sICJhdWRpby1zaW5rIiwgYXVkaW9fc2luaywgTlVMTCk7CisgICAgZ19vYmplY3Rfc2V0
KG1fcGxheUJpbiwgInZpZGVvLXNpbmsiLCBtX3ZpZGVvX3NpbmssIE5VTEwpOworCisgICAgc2V0
Vm9sdW1lKG1fb2xkVm9sdW1lKTsKK30KKworfQorCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQcml2YXRlR1N0cmVhbWVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQcml2YXRlR1N0cmVhbWVyLmgJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Nb3ZpZVByaXZh
dGVHU3RyZWFtZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNyBDb2xsYWJvcmEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIE1vdmllUHJpdmF0ZUdTdHJlYW1lcl9oCisjZGVmaW5lIE1vdmllUHJpdmF0ZUdT
dHJlYW1lcl9oCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlICJNb3ZpZS5oIgorI2lu
Y2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAid3RmL05vbmNvcHlhYmxlLmgiCisKKyNpbmNsdWRl
IDxndGsvZ3RrLmg+CisKK3R5cGVkZWYgc3RydWN0IF9Hc3RFbGVtZW50IEdzdEVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR3N0TWVzc2FnZSBHc3RNZXNzYWdlOwordHlwZWRlZiBzdHJ1Y3QgX0dz
dEJ1cyBHc3RCdXM7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKKyAgICBjbGFzcyBJbnRTaXplOworICAgIGNsYXNzIEludFJlY3Q7CisgICAgY2xh
c3MgU3RyaW5nOworCisgICAgZ2Jvb2xlYW4gbW92aWVfcHJpdmF0ZV9lcnJvcl9jYiAoR3N0QnVz
ICpidXMsIEdzdE1lc3NhZ2UgKm1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpOworICAgIGdib29sZWFu
IG1vdmllX3ByaXZhdGVfZW9zX2NiIChHc3RCdXMgKmJ1cywgR3N0TWVzc2FnZSAqbWVzc2FnZSwg
Z3BvaW50ZXIgZGF0YSk7CisgICAgZ2Jvb2xlYW4gbW92aWVfcHJpdmF0ZV9zdGF0ZV9jYiAoR3N0
QnVzICpidXMsIEdzdE1lc3NhZ2UgKm1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpOworCisgICAgY2xh
c3MgTW92aWVQcml2YXRlIDogTm9uY29weWFibGUKKyAgICB7CisgICAgZnJpZW5kIGdib29sZWFu
IG1vdmllX3ByaXZhdGVfZXJyb3JfY2IgKEdzdEJ1cyAqYnVzLCBHc3RNZXNzYWdlICptZXNzYWdl
LCBncG9pbnRlciBkYXRhKTsKKyAgICBmcmllbmQgZ2Jvb2xlYW4gbW92aWVfcHJpdmF0ZV9lb3Nf
Y2IgKEdzdEJ1cyAqYnVzLCBHc3RNZXNzYWdlICptZXNzYWdlLCBncG9pbnRlciBkYXRhKTsKKyAg
ICBmcmllbmQgZ2Jvb2xlYW4gbW92aWVfcHJpdmF0ZV9zdGF0ZV9jYiAoR3N0QnVzICpidXMsIEdz
dE1lc3NhZ2UgKm1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpOworCisgICAgcHVibGljOgorICAgICAg
ICBNb3ZpZVByaXZhdGUoTW92aWUqIG0pOworICAgICAgICB+TW92aWVQcml2YXRlKCk7CisgICAg
ICAgIAorICAgICAgICBJbnRTaXplIG5hdHVyYWxTaXplKCk7CisgICAgICAgIGJvb2wgaGFzVmlk
ZW8oKTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgbG9hZChTdHJpbmcgdXJsKTsKKyAgICAgICAg
dm9pZCBjYW5jZWxMb2FkKCk7CisgICAgICAgIAorICAgICAgICB2b2lkIHBsYXkoKTsKKyAgICAg
ICAgdm9pZCBwYXVzZSgpOyAgICAKKyAgICAgICAgCisgICAgICAgIGJvb2wgcGF1c2VkKCkgY29u
c3Q7CisgICAgICAgIGJvb2wgc2Vla2luZygpIGNvbnN0OworICAgICAgICAKKyAgICAgICAgZmxv
YXQgZHVyYXRpb24oKTsKKyAgICAgICAgZmxvYXQgY3VycmVudFRpbWUoKSBjb25zdDsKKyAgICAg
ICAgdm9pZCBzZWVrKGZsb2F0IHRpbWUpOworICAgICAgICB2b2lkIHNldEVuZFRpbWUoZmxvYXQg
dGltZSk7CisgICAgICAgIAorICAgICAgICB2b2lkIGFkZEN1ZVBvaW50KGZsb2F0IHRpbWUpOwor
ICAgICAgICB2b2lkIHJlbW92ZUN1ZVBvaW50KGZsb2F0IHRpbWUpOworICAgICAgICB2b2lkIGNs
ZWFyQ3VlUG9pbnRzKCk7CisgICAgICAgIAorICAgICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOwor
ICAgICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CisgICAgICAgIHZvaWQgc2V0TXV0ZWQoYm9v
bCk7CisgICAgICAgIAorICAgICAgICBpbnQgZGF0YVJhdGUoKSBjb25zdDsKKyAgICAgICAgCisg
ICAgICAgIE1vdmllOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCk7CisgICAgICAgIE1vdmll
OjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKTsKKyAgICAgICAgCisgICAgICAgIGZsb2F0IG1heFRp
bWVCdWZmZXJlZCgpOworICAgICAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKTsKKyAgICAgICAg
dW5zaWduZWQgYnl0ZXNMb2FkZWQoKTsKKyAgICAgICAgYm9vbCB0b3RhbEJ5dGVzS25vd24oKTsK
KyAgICAgICAgdW5zaWduZWQgdG90YWxCeXRlcygpOworICAgICAgICAKKyAgICAgICAgdm9pZCBz
ZXRWaXNpYmxlKGJvb2wpOworICAgICAgICB2b2lkIHNldFJlY3QoY29uc3QgSW50UmVjdCYgcik7
CisgICAgICAgIAorICAgICAgICB2b2lkIGxvYWRTdGF0ZUNoYW5nZWQoKTsKKyAgICAgICAgdm9p
ZCByYXRlQ2hhbmdlZCgpOworICAgICAgICB2b2lkIHNpemVDaGFuZ2VkKCk7CisgICAgICAgIHZv
aWQgdGltZUNoYW5nZWQoKTsKKyAgICAgICAgdm9pZCB2b2x1bWVDaGFuZ2VkKCk7CisgICAgICAg
IHZvaWQgZGlkRW5kKCk7CisgICAgICAgIHZvaWQgTG9hZGluZ0ZhaWxlZCgpOworICAgICAgICAK
KyAgICAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IEludFJlY3QmIHIp
OworICAgICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4m
IHR5cGVzKTsKKyAgICAgICAgCisgICAgcHJpdmF0ZToKKyAgICAgICAgCisgICAgICAgIHZvaWQg
dXBkYXRlU3RhdGVzKCk7CisgICAgICAgIHZvaWQgY2FuY2VsU2VlaygpOworICAgICAgICB2b2lk
IGN1ZVBvaW50VGltZXJGaXJlZChUaW1lcjxNb3ZpZVByaXZhdGU+Kik7CisgICAgICAgIGZsb2F0
IG1heFRpbWVMb2FkZWQoKTsKKyAgICAgICAgdm9pZCBzdGFydEN1ZVBvaW50VGltZXJJZk5lZWRl
ZCgpOworCisgICAgICAgIHZvaWQgY3JlYXRlR1NUUGxheUJpbihTdHJpbmcgdXJsKTsKKyAgICAg
ICAgCisgICAgcHJpdmF0ZTogICAgCisgICAgICAgIE1vdmllKiBtX21vdmllOworICAgICAgICBH
c3RFbGVtZW50KiBtX3BsYXlCaW47CisgICAgICAgIEdzdEVsZW1lbnQqIG1fdmlkZW9fc2luazsK
KyAgICAgICAgR3N0RWxlbWVudCogbV9zb3VyY2U7CisgICAgICAgIGZsb2F0IG1fc2Vla1RvOwor
ICAgICAgICBmbG9hdCBtX3JhdGU7CisgICAgICAgIGZsb2F0IG1fZW5kVGltZTsKKyAgICAgICAg
Ym9vbCBtX2VuZFJlYWNoZWQ7CisgICAgICAgIGRvdWJsZSBtX29sZFZvbHVtZTsKKyAgICAgICAg
ZmxvYXQgbV9wcmV2aW91c1RpbWVDdWVUaW1lckZpcmVkOworICAgICAgICBNb3ZpZTo6TmV0d29y
a1N0YXRlIG1fbmV0d29ya1N0YXRlOworICAgICAgICBNb3ZpZTo6UmVhZHlTdGF0ZSBtX3JlYWR5
U3RhdGU7CisgICAgICAgIGJvb2wgbV9zdGFydGVkUGxheWluZzsKKyAgICAgICAgYm9vbCBtX2lz
U3RyZWFtaW5nOworICAgIH07CisKK30KKworI2VuZGlmCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17685</attachid>
            <date>2007-12-03 15:36:10 -0800</date>
            <delta_ts>2007-12-05 19:47:47 -0800</delta_ts>
            <desc>2nd try</desc>
            <filename>HTML5-media-gstreamer-1.patch</filename>
            <type>text/plain</type>
            <size>30370</size>
            <attacher name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODM0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODggQEAKKzIwMDctMTItMDMgIFBpZXJyZS1MdWMgQmVhdWRvaW4gIDxwaWVycmUt
bHVjLmJlYXVkb2luQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBvZiBhIGZpeCB0byAjMTYxNDUuICAKKyAgICAg
ICAgVGhpcyBpbXBsZW1lbnRzIHRoZSBtZWRpYSB0YWdzIG9mIEhUTUwgNSBvbiB0aGUgR1RLKyBw
b3J0IGJhc2VkIG9uIHRoZSAKKyAgICAgICAgTWFjIHBvcnQuIE1lZGlhIHRlc3RzIHBhc3MgYWx0
aG91Z2ggc29tZSB0ZXN0cyByZXF1aXJlZCBhIHNtYWxsIG1vZGlmaWNhdGlvbnM6IAorICAgICAg
ICBBcyBwZXIgdGhlIEhUTUwgNSBzcGVjLCB0aGUgbG9hZGluZyBvZiB0aGUgY2xpcCBzaG91bGQg
c3RhcnQgb25seSBhZnRlciAKKyAgICAgICAgYWxsIHNjcmlwdCBhcmUgZG9uZS4gIEJ1dCBpbiB0
aGUgY2FzZSBvZiB0aGUgdGVzdHMsIHRoZSBsb2FkaW5nIHN0YXJ0cyAKKyAgICAgICAgYmVmb3Jl
IHNvbWUgY2FsbGJhY2tzIGdldCByZWdpc3RlcmVkLiAgVGhpcyBoYXMgYmVlbiBkaXNjdXNzZWQg
d2l0aCAKKyAgICAgICAgQW50dGkgS29pdmlzdG8sIGFuZCB0aGUgdGVzdHMgc2hvdWxkIGJlIHVw
ZGF0ZWQuCisKKyAgICAgICAgVGhlcmUgaXMgb25seSBvbmUga25vd24gaXNzdWU6IG9uZSB0aW1l
IGluIDEwIHRyaWVzLCBsb2FkaW5nIGEgYnVmZmVyZWQgCisgICAgICAgIGNsaXAgd2lsbCBuZXZl
ciBlbmQgYnVmZmVyaW5nLiAgVGhlIGJ1ZmZlcmluZyB3aWxsIHN0YWxsIGF0IDk3JSBmb3Igbm8g
CisgICAgICAgIGFwcGFyZW50IHJlYXNvbnMuICBSZWxvYWRpbmcgdGhlIHBhZ2UgdXN1YWxseSB3
b3JrcyBhcm91bmQgdGhlIHByb2JsZW0uCisgICAgICAgIE9uIHRoZSBHU3RyZWFtZXIgc2lkZSwg
c29tZSBjb2RlY3MgZG9uJ3QgcmV0dXJuIGNvcnJlY3QgdmFsdWVzLCB0aGVyZWZvcmUKKyAgICAg
ICAgdGhleSBtYWtlIHRoZSB0ZXN0cyBmYWlsLiAgRm9yIGluc3RhbmNlIEguMjY0IHdpbGwgbWFr
ZSB0aGUgdmlkZW8tZW5kIAorICAgICAgICB0ZXN0IGZhaWwuICBUaGlzIHNob3VsZCBiZSBmaXhl
ZCBpbiBHU3RyZWFtZXIgMC4xMC4xNS4KKworICAgICAgICBUaGlzIHZlcnNpb24gZGlzcGxheXMg
dmlkZW8gaW4gYSBwb3AgdXAgd2luZG93LiAgQSBwbGFjZSBob2xkZXIgaXMgZHJhd24KKyAgICAg
ICAgb24gdGhlIHBhZ2Ugd2hlcmUgdGhlIHZpZGVvIHNob3VsZCBhcHBlYXIuCisKKyAgICAgICAg
QnkgZGVmYXVsdCwgaXQgaXMgdHVybmVkIG9mZiBpbiBXZWJDb3JlLnBybyB1bnRpbCB3ZSBmaWd1
cmUgYSB3YXkgdG8gCisgICAgICAgIGRldGVjdCB0aGUgeDExIGJhY2tlbmQuCisKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgRW5hYmxlIHZpZGVvIGZvciBHdGsgYnVpbGRzCisgICAg
ICAgICogcGxhdGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAg
ICAqIHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgQWRkZWQgYSBsb2dnaW5nIGxldmVsIGZv
ciBNZWRpYSBzdHVmZgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01vdmllLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQcml2YXRlR1N0cmVhbWVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjptb3ZpZV9wcml2YXRlX2Vycm9yX2NiKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1vdmllX3ByaXZhdGVfZW9zX2NiKToKKyAgICAgICAgKFdlYkNvcmU6Om1v
dmllX3ByaXZhdGVfc3RhdGVfY2IpOgorICAgICAgICAoV2ViQ29yZTo6bW92aWVfcHJpdmF0ZV9i
dWZmZXJpbmdfY2IpOgorICAgICAgICAoV2ViQ29yZTo6bW92aWVfcHJpdmF0ZV93aW5kb3dfaWRf
Y2IpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpNb3ZpZVByaXZhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjp+TW92aWVQcml2YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdmllUHJpdmF0ZTo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZh
dGU6OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpwYXVzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmllUHJpdmF0ZTo6Y3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2
YXRlOjpzZWVrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6c2V0RW5kVGltZSk6
CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmFkZEN1ZVBvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6cmVtb3ZlQ3VlUG9pbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TW92aWVQcml2YXRlOjpjbGVhckN1ZVBvaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNb3Zp
ZVByaXZhdGU6OnN0YXJ0Q3VlUG9pbnRUaW1lcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmllUHJpdmF0ZTo6Y2FuY2VsU2Vlayk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZh
dGU6OmN1ZVBvaW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6
OnBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OnNlZWtpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpuYXR1cmFsU2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNb3ZpZVByaXZhdGU6Omhhc1ZpZGVvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJp
dmF0ZTo6c2V0Vm9sdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6c2V0TXV0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpzZXRSYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6ZGF0YVJhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW92
aWVQcml2YXRlOjpuZXR3b3JrU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRl
OjpyZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6bWF4VGltZUJ1
ZmZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6bWF4VGltZVNlZWthYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6bWF4VGltZUxvYWRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmJ5dGVzTG9hZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vdmllUHJpdmF0ZTo6dG90YWxCeXRlc0tub3duKToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
dmllUHJpdmF0ZTo6dG90YWxCeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6
OmNhbmNlbExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjp1cGRhdGVTdGF0
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpsb2FkU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6cmF0ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TW92aWVQcml2YXRlOjpzaXplQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
b3ZpZVByaXZhdGU6OnRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0
ZTo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmRpZEVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZhdGU6OmxvYWRpbmdGYWlsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpzZXRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmllUHJpdmF0ZTo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3ZpZVByaXZh
dGU6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdmllUHJpdmF0ZTo6Z2V0U3VwcG9ydGVk
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6TW92aWVQcml2YXRlOjpjcmVhdGVHU1RQbGF5Qmlu
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQcml2YXRlR1N0cmVhbWVy
Lmg6IEFkZGVkLgorCiAyMDA3LTEyLTAzICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJv
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDI4MzQ1KQorKysg
V2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsNyBAQCBndGst
cG9ydDohY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hTTFQ9CiAjIWNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9YQkw9Lik6IERFRklORVMgKz0gRU5BQkxFX1hCTD0xCiBxdC1wb3J0OiAhY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1NWRz0uKTogREVGSU5FUyArPSBFTkFCTEVfU1ZHPTEKIGd0ay1w
b3J0OkRFRklORVMgKz0gRU5BQkxFX1NWRz0xCisjZ3RrLXBvcnQ6REVGSU5FUyArPSBFTkFCTEVf
VklERU89MQogCiBERUZJTkVTICs9IFdURl9DSEFOR0VTPTEKIApAQCAtMTA4MCw2ICsxMDgxLDQw
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JQ09OREFUQUJBU0U9MSkKICAgICAgICAgbG9h
ZGVyL2ljb24vSWNvbkRhdGFiYXNlTm9uZS5jcHAKIH0KIAorY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1ZJREVPPTEpIHsKKyAgICBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
VklERU89MQorICAgIAorCisgICAgSURMX0JJTkRJTkdTICs9IFwKKyAgICAgICAgaHRtbC9IVE1M
QXVkaW9FbGVtZW50LmlkbCBcCisgICAgICAgIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwgXAor
ICAgICAgICBodG1sL0hUTUxTb3VyY2VFbGVtZW50LmlkbCBcCisgICAgICAgIGh0bWwvSFRNTFZp
ZGVvRWxlbWVudC5pZGwgXAorICAgICAgICBodG1sL01lZGlhRXJyb3IuaWRsIFwKKyAgICAgICAg
aHRtbC9UaW1lUmFuZ2VzLmlkbCBcCisgICAgICAgIGh0bWwvVm9pZENhbGxiYWNrLmlkbCAKKwor
ICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBodG1sL0hUTUxBdWRpb0VsZW1lbnQuY3BwIFwKKyAg
ICAgICAgaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisgICAgICAgIGh0bWwvSFRNTFNvdXJj
ZUVsZW1lbnQuY3BwIFwKKyAgICAgICAgaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisgICAg
ICAgIGh0bWwvVGltZVJhbmdlcy5jcHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Nb3Zp
ZS5jcHAgXAorICAgICAgICByZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwIFwKKyAgICAgICAgcmVu
ZGVyaW5nL1JlbmRlck1lZGlhLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL2pzL0pTSFRNTEF1ZGlv
RWxlbWVudENvbnN0cnVjdG9yLmNwcCAKKyAgICAgICAgCisgICAgZ3RrLXBvcnQ6IHsKKyAgICAg
ICAgU09VUkNFUyArPSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQ
cml2YXRlR1N0cmVhbWVyLmNwcAorICAgICAgICAKKyAgICAgICAgUEtHQ09ORklHICs9IGdzdHJl
YW1lci0wLjEwIGdzdHJlYW1lci1wbHVnaW5zLWJhc2UtMC4xMCBnbm9tZS12ZnMtMi4wCisgICAg
ICAgIExJQlMgKz0gLWxnc3RpbnRlcmZhY2VzLTAuMTAgLWxnc3RiYXNlLTAuMTAgLWxnc3R2aWRl
by0wLjEwCisgICAgCisgICAgfQorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFBBVEg9
MSkgewogICAgIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFUSD0xCiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcAkocmV2aXNpb24gMjgzNDUpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw0ICs1NCw2IEBAIFdURkxvZ0No
YW5uZWwgTG9nRlRQID0gICAgICAgICAgICAgICB7IDAKIFdURkxvZ0NoYW5uZWwgTG9nVGhyZWFk
aW5nID0gICAgICAgICB7IDB4MDA0MDAwMDAsICJXZWJDb3JlTG9nTGV2ZWwiLCBXVEZMb2dDaGFu
bmVsT2ZmIH07CiBXVEZMb2dDaGFubmVsIExvZ1N0b3JhZ2VBUEkgPSAgICAgICAgeyAweDAwODAw
MDAwLCAiV2ViQ29yZUxvZ0xldmVsIiwgV1RGTG9nQ2hhbm5lbE9mZiB9OwogCitXVEZMb2dDaGFu
bmVsIExvZ01lZGlhID0gICAgICAgICAgICAgeyAweDAxMDAwMDAwLCAiV2ViQ29yZUxvZ0xldmVs
IiwgV1RGTG9nQ2hhbm5lbE9mZiB9OworCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0xvZ2dp
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAkocmV2aXNpb24g
MjgzNDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAkod29ya2luZyBjb3B5KQpAQCAt
NTIsNiArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZXh0ZXJuIFdURkxvZ0NoYW5u
ZWwgTG9nRlRQOwogICAgIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ1RocmVhZGluZzsKICAgICBl
eHRlcm4gV1RGTG9nQ2hhbm5lbCBMb2dTdG9yYWdlQVBJOworICAgIGV4dGVybiBXVEZMb2dDaGFu
bmVsIExvZ01lZGlhOwogCiAgICAgdm9pZCBJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNl
c3NhcnkoKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTW92aWUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTW92aWUuY3BwCShyZXZpc2lv
biAyODM0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTW92aWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMyw4IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAi
TW92aWVQcml2YXRlUVRLaXQuaCIKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJNb3Zp
ZVByaXZhdGVHU3RyZWFtZXIuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Nb3ZpZVByaXZhdGVHU3RyZWFtZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01vdmllUHJpdmF0
ZUdTdHJlYW1lci5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9Nb3ZpZVByaXZhdGVHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3IENvbGxhYm9yYSBMdGQuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKiAKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNp
bmNsdWRlICJNb3ZpZVByaXZhdGVHU3RyZWFtZXIuaCIKKworI2luY2x1ZGUgIkNTdHJpbmcuaCIK
KyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSA8Z2RrL2dka3guaD4KKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlIDxnc3QvYmFzZS9nc3RiYXNlc3JjLmg+CisjaW5j
bHVkZSA8Z3N0L2dzdC5oPgorI2luY2x1ZGUgPGdzdC9pbnRlcmZhY2VzL21peGVyLmg+CisjaW5j
bHVkZSA8Z3N0L2ludGVyZmFjZXMveG92ZXJsYXkuaD4KKyNpbmNsdWRlIDxnc3QvdmlkZW8vdmlk
ZW8uaD4KKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUg
PGxpYmdub21ldmZzL2dub21lLXZmcy5oPgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxt
YXRoLmg+CisjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vdmllLmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCisj
aW5jbHVkZSAiV2lkZ2V0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTG9jYWwgdmFy
LCBmb3Igc3RyYW5nZSByZWFzb25zLCBhIG1lbWJlciB2YXIgd2lsbCBtYWtlIHRoZSBhcHAgY3Jh
c2gKK0dka1dpbmRvdyogbV93aW5kb3c7CisKK2dib29sZWFuIG1vdmllX3ByaXZhdGVfZXJyb3Jf
Y2IoR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCit7Cisg
ICAgaWYgKEdTVF9NRVNTQUdFX1RZUEUobWVzc2FnZSkgPT0gR1NUX01FU1NBR0VfRVJST1IpCisg
ICAgeworICAgICAgICBHRXJyb3IqIGVycjsKKyAgICAgICAgZ2NoYXIqIGRlYnVnOworCisgICAg
ICAgIGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKG1lc3NhZ2UsICZlcnIsICZkZWJ1Zyk7CisgICAg
ICAgIGlmIChlcnItPmNvZGUgPT0gMykgeworICAgICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEs
ICJGaWxlIG5vdCBmb3VuZCIpOworICAgICAgICAgICAgTW92aWVQcml2YXRlKiBtcCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8TW92aWVQcml2YXRlKj4oZGF0YSk7CisgICAgICAgICAgICBpZiAobXApICAg
ICAgIAorICAgICAgICAgICAgICAgIG1wLT5sb2FkaW5nRmFpbGVkKCk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkVycm9yOiAlZCwgJXMiLCBlcnIt
PmNvZGUsICBlcnItPm1lc3NhZ2UpOworICAgICAgICAgICAgZ19lcnJvcl9mcmVlKGVycik7Cisg
ICAgICAgICAgICBnX2ZyZWUoZGVidWcpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCitnYm9vbGVhbiBtb3ZpZV9wcml2YXRlX2Vvc19jYihHc3RCdXMqIGJ1cywgR3N0
TWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBpZiAoR1NUX01FU1NBR0Vf
VFlQRShtZXNzYWdlKSA9PSBHU1RfTUVTU0FHRV9FT1MpCisgICAgeworICAgICAgICBMT0dfVkVS
Qk9TRShNZWRpYSwgIkVORCBPRiBTVFJFQU0iKTsKKyAgICAgICAgTW92aWVQcml2YXRlKiBtcCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8TW92aWVQcml2YXRlKj4oZGF0YSk7ICAgICAgIAorICAgICAgICBt
cC0+ZGlkRW5kKCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitnYm9vbGVhbiBtb3Zp
ZV9wcml2YXRlX3N0YXRlX2NiKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG9p
bnRlciBkYXRhKQoreworICAgIGlmIChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2UpID09IEdTVF9N
RVNTQUdFX1NUQVRFX0NIQU5HRUQpCisgICAgeworICAgICAgICBNb3ZpZVByaXZhdGUqIG1wID0g
cmVpbnRlcnByZXRfY2FzdDxNb3ZpZVByaXZhdGUqPihkYXRhKTsgICAgICAgCisgICAgICAgIG1w
LT51cGRhdGVTdGF0ZXMoKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2dib29sZWFu
IG1vdmllX3ByaXZhdGVfYnVmZmVyaW5nX2NiKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNz
YWdlLCBncG9pbnRlciBkYXRhKQoreworICAgIGlmIChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2Up
ID09IEdTVF9NRVNTQUdFX0JVRkZFUklORykKKyAgICB7ICAgCisgICAgICAgIGdpbnQgcGVyY2Vu
dCA9IDA7CisgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX2J1ZmZlcmluZyhtZXNzYWdlLCAmcGVy
Y2VudCk7CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiQnVmZmVyaW5nICVkIiwgcGVyY2Vu
dCk7ICAgIAorICAgICAgICAKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIFNldHVw
IHRoZSBvdmVybGF5IHdoZW4gdGhlIG1lc3NhZ2UgaXMgcmVjZWl2ZWQKK0dzdEJ1c1N5bmNSZXBs
eSBtb3ZpZV9wcml2YXRlX3dpbmRvd19pZF9jYihHc3RCdXMqIGJ1cywgR3N0TWVzc2FnZSogbWVz
c2FnZSwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBpZiAoR1NUX01FU1NBR0VfVFlQRShtZXNzYWdl
KSAhPSBHU1RfTUVTU0FHRV9FTEVNRU5UKQorICAgICAgICByZXR1cm4gR1NUX0JVU19QQVNTOwor
CisgICAgaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19uYW1lKG1lc3NhZ2UtPnN0cnVjdHVyZSwgInBy
ZXBhcmUteHdpbmRvdy1pZCIpKQorICAgICAgICByZXR1cm4gR1NUX0JVU19QQVNTOworCisgICAg
Ly8gRGlzYWJsZWQgZm9yIG5vdyBhcyBpdCBpcyBhbm5veWluZzogdGhlIG92ZXJsYXkgaWYgZG9u
ZSBmb3IgdGhlIHdob2xlIHdlYiBwYWdlCisgICAgLy8gbm90IG9ubHkgdGhlIHNwZWNpZmllZCBS
ZWN0Li4uCisKKyAgICAvL2dzdF94X292ZXJsYXlfc2V0X3h3aW5kb3dfaWQoCisgICAgLy8gICAg
R1NUX1hfT1ZFUkxBWShHU1RfTUVTU0FHRV9TUkMobWVzc2FnZSkpLAorICAgIC8vICAgIEdES19X
SU5ET1dfWElEKG1fd2luZG93KSk7CisgICAgcmV0dXJuIEdTVF9CVVNfRFJPUDsKK30KKworTW92
aWVQcml2YXRlOjpNb3ZpZVByaXZhdGUoTW92aWUqIG1vdmllKQorICAgIDogbV9tb3ZpZShtb3Zp
ZSkKKyAgICAsIG1fcGxheUJpbigwKQorICAgICwgbV92aWRlb19zaW5rKDApCisgICAgLCBtX3Nv
dXJjZSgwKQorICAgICwgbV9zZWVrVG8oLTEpCisgICAgLCBtX3JhdGUoMS4wZikKKyAgICAsIG1f
ZW5kVGltZShzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKSkKKyAgICAsIG1f
ZW5kUmVhY2hlZChmYWxzZSkKKyAgICAsIG1fb2xkVm9sdW1lKDAuNWYpCisgICAgLCBtX3ByZXZp
b3VzVGltZUN1ZVRpbWVyRmlyZWQoMCkKKyAgICAsIG1fbmV0d29ya1N0YXRlKE1vdmllOjpFbXB0
eSkKKyAgICAsIG1fcmVhZHlTdGF0ZShNb3ZpZTo6RGF0YVVuYXZhaWxhYmxlKQorICAgICwgbV9z
dGFydGVkUGxheWluZyhmYWxzZSkKKyAgICAsIG1faXNTdHJlYW1pbmcoZmFsc2UpCit7CisgICAg
Ly9GSVhNRSBXZSBzaG91bGQgcGFzcyB0aGUgYXJndW1lbnRzIGZyb20gdGhlIGNvbW1hbmQgbGlu
ZQorICAgIGdzdF9pbml0KDAsIE5VTEwpOworfQorCitNb3ZpZVByaXZhdGU6On5Nb3ZpZVByaXZh
dGUoKQoreworICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4sIEdTVF9TVEFURV9O
VUxMKTsKKyAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1QobV9wbGF5QmluKSk7Cit9CisK
K3ZvaWQgTW92aWVQcml2YXRlOjpsb2FkKFN0cmluZyB1cmwpCit7CisgICAgTE9HX1ZFUkJPU0Uo
TWVkaWEsICJMT0FEICVzIiwgdXJsLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChtX25ldHdvcmtT
dGF0ZSAhPSBNb3ZpZTo6TG9hZGluZykgeworICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1vdmll
OjpMb2FkaW5nOworICAgICAgICBtX21vdmllLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CisgICAg
fQorICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gTW92aWU6OkRhdGFVbmF2YWlsYWJsZSkgeworICAg
ICAgICBtX3JlYWR5U3RhdGUgPSBNb3ZpZTo6RGF0YVVuYXZhaWxhYmxlOworICAgICAgICBtX21v
dmllLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOworICAgIH0KKworICAgIGNhbmNlbFNlZWsoKTsKKyAg
ICBjcmVhdGVHU1RQbGF5QmluKHVybCk7CisgICAgcGF1c2UoKTsKK30KKwordm9pZCBNb3ZpZVBy
aXZhdGU6OnBsYXkoKQoreworICAgIGNhbmNlbFNlZWsoKTsKKyAgICBMT0dfVkVSQk9TRShNZWRp
YSwgIlBMQVkiKTsKKyAgICAvLyBXaGVuIGVuZCByZWFjaGVkLCByZXdpbmQgZm9yIFRlc3Qgdmlk
ZW8tc2Vlay1wYXN0LWVuZC1wbGF5aW5nCisgICAgaWYgKG1fZW5kUmVhY2hlZCkKKyAgICAgICAg
c2VlaygwKTsKKyAgICBtX2VuZFJlYWNoZWQgPSBmYWxzZTsKKworICAgIGdzdF9lbGVtZW50X3Nl
dF9zdGF0ZShtX3BsYXlCaW4sIEdTVF9TVEFURV9QTEFZSU5HKTsKKyAgICBtX3N0YXJ0ZWRQbGF5
aW5nID0gdHJ1ZTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnBhdXNlKCkKK3sKKyAgICBjYW5j
ZWxTZWVrKCk7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJQQVVTRSIpOworICAgIGdzdF9lbGVt
ZW50X3NldF9zdGF0ZShtX3BsYXlCaW4sIEdTVF9TVEFURV9QQVVTRUQpOworICAgIG1fc3RhcnRl
ZFBsYXlpbmcgPSBmYWxzZTsKK30KKworZmxvYXQgTW92aWVQcml2YXRlOjpkdXJhdGlvbigpCit7
CisgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybiAwLjA7CisKKyAgICBHc3RGb3Jt
YXQgZm10ID0gR1NUX0ZPUk1BVF9USU1FOworICAgIGdpbnQ2NCBsZW4gPSAwOworCisgICAgaWYg
KGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fcGxheUJpbiwgJmZtdCwgJmxlbikpIAorICAg
ICAgICBMT0dfVkVSQk9TRShNZWRpYSwgImR1cmF0aW9uOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdT
VF9USU1FX0FSR1MobGVuKSk7CisgICAgZWxzZSAKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEs
ICJkdXJhdGlvbiBxdWVyeSBmYWlsZWQgIik7CisgICAgCisgICAgaWYgKChHc3RDbG9ja1RpbWUp
bGVuID09IEdTVF9DTE9DS19USU1FX05PTkUpIHsKKyAgICAgICAgbV9pc1N0cmVhbWluZyA9IHRy
dWU7CisgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHko
KTsKKyAgICB9CisgICAgcmV0dXJuIChmbG9hdCkgKGxlbiAvIDEwMDAwMDAwMDAuMCk7CisgICAg
Ly9GSVhNRTogaGFuZGxlIDMuMTQuOS41IHByb3Blcmx5Cit9CisKK2Zsb2F0IE1vdmllUHJpdmF0
ZTo6Y3VycmVudFRpbWUoKSBjb25zdAoreyAKKyAgICBpZiAoIW1fcGxheUJpbikKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgaWYgKHNlZWtpbmcoKSkKKyAgICAgICAgcmV0dXJuIG1fc2Vla1RvOwor
ICAgIC8vIE5lY2Vzc2FyeSBhcyBzb21ldGltZXMsIGdzdHJlYW1lciByZXR1cm4gMDowMCBhdCB0
aGUgRU9TCisgICAgaWYgKG1fZW5kUmVhY2hlZCkKKyAgICAgICAgcmV0dXJuIG1fZW5kVGltZTsK
KworICAgIGZsb2F0IHJldDsKKyAgICBHc3RRdWVyeSogcXVlcnk7CisgICAgZ2Jvb2xlYW4gcmVz
OworCisgICAgcXVlcnkgPSBnc3RfcXVlcnlfbmV3X3Bvc2l0aW9uKEdTVF9GT1JNQVRfVElNRSk7
CisgICAgcmVzID0gZ3N0X2VsZW1lbnRfcXVlcnkobV9wbGF5QmluLCBxdWVyeSk7CisgICAgaWYg
KHJlcykgeworICAgICAgICBnaW50NjQgcG9zaXRpb247CisgICAgICAgIGdzdF9xdWVyeV9wYXJz
ZV9wb3NpdGlvbihxdWVyeSwgTlVMTCwgJnBvc2l0aW9uKTsKKyAgICAgICAgcmV0ID0gKGZsb2F0
KSAocG9zaXRpb24gLyAxMDAwMDAwMDAwLjApOworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwg
ImN1cnJlbnRUaW1lICUiIEdTVF9USU1FX0ZPUk1BVCwgR1NUX1RJTUVfQVJHUyhwb3NpdGlvbikp
OworICAgIH0gZWxzZSB7CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAicG9zaXRpb24gcXVl
cnkgZmFpbGVkLi4uIik7CisgICAgICAgIHJldCA9IDAuMDsKKyAgICB9CisgICAgZ3N0X3F1ZXJ5
X3VucmVmKHF1ZXJ5KTsKKyAgICByZXR1cm4gcmV0OworfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6
c2VlayhmbG9hdCB0aW1lKQoreworICAgIGNhbmNlbFNlZWsoKTsKKyAgICBHc3RDbG9ja1RpbWUg
c2VjID0gKEdzdENsb2NrVGltZSkodGltZSAqIEdTVF9TRUNPTkQpOworCisgICAgaWYgKCFtX3Bs
YXlCaW4pCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAobV9pc1N0cmVhbWluZykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJzZWVrOiAlIiBHU1RfVElN
RV9GT1JNQVQsIEdTVF9USU1FX0FSR1Moc2VjKSk7CisgICAgLy8gRklYTUU6IFdoYXQgaGFwcGVu
cyB3aGVuIHRoZSBzZWVrZWQgcG9zaXRpb24gaXMgbm90IGF2YWlsYWJsZT8KKyAgICBpZiAoIWdz
dF9lbGVtZW50X3NlZWsoIG1fcGxheUJpbiwgbV9yYXRlLCAKKyAgICAgICAgICAgIEdTVF9GT1JN
QVRfVElNRSwgCisgICAgICAgICAgICAoR3N0U2Vla0ZsYWdzKShHU1RfU0VFS19GTEFHX0ZMVVNI
KSwKKyAgICAgICAgICAgIEdTVF9TRUVLX1RZUEVfU0VULCBzZWMsCisgICAgICAgICAgICBHU1Rf
U0VFS19UWVBFX05PTkUsIEdTVF9DTE9DS19USU1FX05PTkUpKQorICAgICAgICBMT0dfVkVSQk9T
RShNZWRpYSwgInNlZWsgdG8gJWYgZmFpbGVkIiwgdGltZSk7IAorfQorCit2b2lkIE1vdmllUHJp
dmF0ZTo6c2V0RW5kVGltZShmbG9hdCB0aW1lKQoreworICAgIGlmICghbV9wbGF5QmluKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKG1faXNTdHJlYW1pbmcpCisgICAgICAgIHJldHVybjsKKyAg
ICBpZiAobV9lbmRUaW1lICE9IHRpbWUpIHsKKyAgICAgICAgbV9lbmRUaW1lID0gdGltZTsKKyAg
ICAgICAgR3N0Q2xvY2tUaW1lIHN0YXJ0ID0gKEdzdENsb2NrVGltZSkoY3VycmVudFRpbWUoKSAq
IEdTVF9TRUNPTkQpOworICAgICAgICBHc3RDbG9ja1RpbWUgZW5kICAgPSAoR3N0Q2xvY2tUaW1l
KSh0aW1lICogR1NUX1NFQ09ORCk7CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAic2V0RW5k
VGltZTogJSIgR1NUX1RJTUVfRk9STUFULCBHU1RfVElNRV9BUkdTKGVuZCkpOworICAgICAgICAv
LyBGSVhNRTogV2hhdCBoYXBwZW5zIHdoZW4gdGhlIHNlZWtlZCBwb3NpdGlvbiBpcyBub3QgYXZh
aWxhYmxlPworICAgICAgICBpZiAoIWdzdF9lbGVtZW50X3NlZWsoIG1fcGxheUJpbiwgbV9yYXRl
LCAKKyAgICAgICAgICAgICAgICBHU1RfRk9STUFUX1RJTUUsIAorICAgICAgICAgICAgICAgIChH
c3RTZWVrRmxhZ3MpKEdTVF9TRUVLX0ZMQUdfRkxVU0ggfCBHU1RfU0VFS19GTEFHX0FDQ1VSQVRF
KSwKKyAgICAgICAgICAgICAgICBHU1RfU0VFS19UWVBFX1NFVCwgc3RhcnQsCisgICAgICAgICAg
ICAgICAgR1NUX1NFRUtfVFlQRV9TRVQsIGVuZCApKQorICAgICAgICAgICAgTE9HX1ZFUkJPU0Uo
TWVkaWEsICJzZWVrIHRvICVmIGZhaWxlZCIsIHRpbWUpOworICAgIH0KK30KKwordm9pZCBNb3Zp
ZVByaXZhdGU6OmFkZEN1ZVBvaW50KGZsb2F0IHRpbWUpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnJlbW92ZUN1ZVBvaW50KGZsb2F0IHRpbWUpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OmNsZWFyQ3Vl
UG9pbnRzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIE1vdmllUHJpdmF0
ZTo6c3RhcnRDdWVQb2ludFRpbWVySWZOZWVkZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpjYW5jZWxTZWVrKCkKK3sKKyAgICBpZiAobV9zZWVr
VG8gPiAtMSkKKyAgICAgICAgbV9zZWVrVG8gPSAtMTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6
OmN1ZVBvaW50VGltZXJGaXJlZChUaW1lcjxNb3ZpZVByaXZhdGU+KikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitib29sIE1vdmllUHJpdmF0ZTo6cGF1c2VkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIW1fc3RhcnRlZFBsYXlpbmc7Cit9CisKK2Jvb2wgTW92aWVQcml2YXRlOjpzZWVr
aW5nKCkgY29uc3QKK3sKKyAgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gbV9zZWVrVG8gPj0gMDsKK30KKworLy8gUmV0dXJucyB0aGUgc2l6ZSBv
ZiB0aGUgdmlkZW8KKy8vIERvbmU6IDIxLTExLTIwMDcKK0ludFNpemUgTW92aWVQcml2YXRlOjpu
YXR1cmFsU2l6ZSgpCit7CisgICAgaW50IHggPSAwLCB5ID0gMDsKKyAgICBpZiAoaGFzVmlkZW8o
KSkgeworICAgICAgICBHc3RQYWQqIHBhZCA9IE5VTEw7CisgICAgICAgIHBhZCA9IGdzdF9lbGVt
ZW50X2dldF9wYWQobV92aWRlb19zaW5rLCAic2luayIpOworICAgICAgICBpZiAocGFkKQorICAg
ICAgICAgICAgZ3N0X3ZpZGVvX2dldF9zaXplKEdTVF9QQUQocGFkKSwgJngsICZ5KTsKKyAgICB9
CisgICAgcmV0dXJuIEludFNpemUoeCwgeSk7Cit9CisKKy8vIERvbmU6IDIxLTExLTIwMDcKK2Jv
b2wgTW92aWVQcml2YXRlOjpoYXNWaWRlbygpCit7CisgICAgZ2ludCBjdXJyZW50VmlkZW8gPSAt
MTsKKyAgICBpZiAobV9wbGF5QmluKQorICAgICAgICBnX29iamVjdF9nZXQoR19PQkpFQ1QobV9w
bGF5QmluKSwgImN1cnJlbnQtdmlkZW8iLCAmY3VycmVudFZpZGVvLCBOVUxMKTsKKyAgICByZXR1
cm4gY3VycmVudFZpZGVvID4gLTE7Cit9CisKKy8vIERvbmU6IDI3LTExLTIwMDcKK3ZvaWQgTW92
aWVQcml2YXRlOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQoreworICAgIG1fb2xkVm9sdW1lID0g
dm9sdW1lOworICAgIExPR19WRVJCT1NFKE1lZGlhLCAiVm9sdW1lIHRvICVmIiwgdm9sdW1lKTsK
KyAgICBzZXRNdXRlZChmYWxzZSk7Cit9CisKKy8vIERvbmU6IDI3LTExLTIwMDcKK3ZvaWQgTW92
aWVQcml2YXRlOjpzZXRNdXRlZChib29sIGIpCit7CisgICAgaWYgKCFtX3BsYXlCaW4pIAorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoYikgeworICAgICAgICBnX29iamVjdF9nZXQoR19PQkpF
Q1QobV9wbGF5QmluKSwgInZvbHVtZSIsICZtX29sZFZvbHVtZSwgTlVMTCk7CisgICAgICAgIGdf
b2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4pLCAidm9sdW1lIiwgKGRvdWJsZSkwLjAsIE5V
TEwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlC
aW4pLCAidm9sdW1lIiwgbV9vbGRWb2x1bWUsIE5VTEwpOworICAgIH0KK30KKworLy8gRG9uZTog
MjctMTEtMjAwNwordm9pZCBNb3ZpZVByaXZhdGU6OnNldFJhdGUoZmxvYXQgcmF0ZSkKK3sKKyAg
ICBpZiAocmF0ZSA9PSAwLjApIHsKKyAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxh
eUJpbiwgR1NUX1NUQVRFX1BBVVNFRCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IAorICAgIGlm
IChtX2lzU3RyZWFtaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JhdGUgPSByYXRlOwor
ICAgIExPR19WRVJCT1NFKE1lZGlhLCAiU2V0IFJhdGUgdG8gJWYiLCByYXRlKTsKKyAgICBpZiAo
IWdzdF9lbGVtZW50X3NlZWsoIG1fcGxheUJpbiwgcmF0ZSwKKyAgICAgICAgICAgIEdTVF9GT1JN
QVRfVElNRSwKKyAgICAgICAgICAgIChHc3RTZWVrRmxhZ3MpKEdTVF9TRUVLX0ZMQUdfRkxVU0gg
fCBHU1RfU0VFS19GTEFHX0FDQ1VSQVRFKSwKKyAgICAgICAgICAgIEdTVF9TRUVLX1RZUEVfU0VU
LCAoR3N0Q2xvY2tUaW1lKSAoY3VycmVudFRpbWUoKSAqIEdTVF9TRUNPTkQpLAorICAgICAgICAg
ICAgR1NUX1NFRUtfVFlQRV9TRVQsIChHc3RDbG9ja1RpbWUpIChtX2VuZFRpbWUgKiBHU1RfU0VD
T05EKSkpICAgCisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiU2V0IFJhdGUgdG8gJWYgZmFp
bGVkIiwgcmF0ZSk7Cit9CisKK2ludCBNb3ZpZVByaXZhdGU6OmRhdGFSYXRlKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAxOworfQorCitNb3ZpZTo6TmV0d29y
a1N0YXRlIE1vdmllUHJpdmF0ZTo6bmV0d29ya1N0YXRlKCkKK3sKKyAgICByZXR1cm4gbV9uZXR3
b3JrU3RhdGU7Cit9CisKK01vdmllOjpSZWFkeVN0YXRlIE1vdmllUHJpdmF0ZTo6cmVhZHlTdGF0
ZSgpCit7CisgICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsKK30KKworZmxvYXQgTW92aWVQcml2YXRl
OjptYXhUaW1lQnVmZmVyZWQoKQoreworICAgIC8vVE9ETworICAgIExPR19WRVJCT1NFKE1lZGlh
LCAibWF4VGltZUJ1ZmZlcmVkIik7CisgICAgLy8gcnRzcCBzdHJlYW1zIGFyZSBub3QgYnVmZmVy
ZWQKKyAgICByZXR1cm4gbV9pc1N0cmVhbWluZyA/IDAgOiBtYXhUaW1lTG9hZGVkKCk7Cit9CisK
K2Zsb2F0IE1vdmllUHJpdmF0ZTo6bWF4VGltZVNlZWthYmxlKCkKK3sKKyAgICAvL1RPRE8KKyAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgIm1heFRpbWVTZWVrYWJsZSIpOworICAgIGlmIChtX2lzU3Ry
ZWFtaW5nKQorICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmlu
aXR5KCk7CisgICAgLy8gaW5maW5pdGUgZHVyYXRpb24gbWVhbnMgbGl2ZSBzdHJlYW0KKyAgICBy
ZXR1cm4gbWF4VGltZUxvYWRlZCgpOworfQorCitmbG9hdCBNb3ZpZVByaXZhdGU6Om1heFRpbWVM
b2FkZWQoKQoreworICAgIC8vVE9ETworICAgIExPR19WRVJCT1NFKE1lZGlhLCAibWF4VGltZUxv
YWRlZCIpOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGR1cmF0aW9uKCk7IAor
fQorCit1bnNpZ25lZCBNb3ZpZVByaXZhdGU6OmJ5dGVzTG9hZGVkKCkKK3sKKyAgICBMT0dfVkVS
Qk9TRShNZWRpYSwgImJ5dGVzTG9hZGVkIik7CisgICAgLyppZiAoIW1fcGxheUJpbikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgZmxvYXQgZHVyID0gZHVyYXRpb24oKTsKKyAgICBmbG9hdCBtYXhU
aW1lID0gbWF4VGltZUxvYWRlZCgpOworICAgIGlmICghZHVyKQorICAgICAgICByZXR1cm4gMDsq
LworICAgIHJldHVybiAxOy8vdG90YWxCeXRlcygpICogbWF4VGltZSAvIGR1cjsKK30KKworYm9v
bCBNb3ZpZVByaXZhdGU6OnRvdGFsQnl0ZXNLbm93bigpCit7CisgICAgTE9HX1ZFUkJPU0UoTWVk
aWEsICJ0b3RhbEJ5dGVzS25vd24iKTsKKyAgICByZXR1cm4gdG90YWxCeXRlcygpID4gMDsKK30K
KwordW5zaWduZWQgTW92aWVQcml2YXRlOjp0b3RhbEJ5dGVzKCkKK3sKKyAgICAKKyAgICBMT0df
VkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMiKTsKKyAgICBpZiAoIW1fcGxheUJpbikKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIW1fc291cmNlKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICAvKkdzdEZvcm1hdCBmbXQgPSBHU1RfRk9STUFUX0JZVEVTOworICAgIAorCisgICAgaWYgKGdz
dF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fcGxheUJpbiwgJmZtdCwgJmxlbikpIAorICAgICAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXM6ICVkIiwgKGxlbikpOworICAgIGVsc2Ug
eworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMgZmFpbGVkICIpOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9Ki8KKyAgICBndWludDY0IGxlbjsKKyAgICBpZiAoR19PQkpF
Q1RfVFlQRV9OQU1FKG1fc291cmNlKSA9PSAiR3N0RmlsZVNyYyIpIHsKKyAgICAgICAgLy8gRklY
TUU6IEdldCBmaWxlIHNpemUgc29tZSBvdGhlciB3YXksIG1heWJlIHdpdGggdGhlIGZkIHByb3Bl
cnR5CisgICAgICAgIGxlbiA9IDA7CisgICAgfSBlbHNlIGlmIChHX09CSkVDVF9UWVBFX05BTUUo
bV9zb3VyY2UpID09ICJHc3RHbm9tZVZGU1NyYyIpIHsKKyAgICAgICAgCisgICAgICAgIC8qR25v
bWVWRlNIYW5kbGUqIGhhbmRsZTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KG1fc291cmNlLCAiaGFu
ZGxlIiwgaGFuZGxlLCBOVUxMKTsKKyAgICAgICAgR25vbWVWRlNGaWxlSW5mbyBpbmZvOworICAg
ICAgICBnbm9tZV92ZnNfZ2V0X2ZpbGVfaW5mb19mcm9tX2hhbmRsZShoYW5kbGUsICZpbmZvLCAK
KyAgICAgICAgICAgIEdOT01FX1ZGU19GSUxFX0lORk9fREVGQVVMVCk7CisgICAgICAgIGxlbiA9
IGluZm8uc2l6ZTsqLworICAgIH0KKyAgICByZXR1cm4gMTAwOworfQorCit2b2lkIE1vdmllUHJp
dmF0ZTo6Y2FuY2VsTG9hZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBN
b3ZpZVByaXZhdGU6OnVwZGF0ZVN0YXRlcygpCit7CisgICAgLy8gVGhlcmUgaXMgbm8gKGtub3du
KSB3YXkgdG8gZ2V0IHN1Y2ggbGV2ZWwgb2YgaW5mb3JtYXRpb24gYWJvdXQKKyAgICAvLyB0aGUg
c3RhdGUgb2YgR1N0cmVhbWVyLCB0aGVyZWZvcmUsIHdoZW4gaW4gUEFVU0VEIHN0YXRlLAorICAg
IC8vIHdlIGFyZSBzdXJlIHdlIGNhbiBkaXNwbGF5IHRoZSBmaXJzdCBmcmFtZSBhbmQgZ28gdG8g
cGxheQorCisgICAgTW92aWU6Ok5ldHdvcmtTdGF0ZSBvbGROZXR3b3JrU3RhdGUgPSBtX25ldHdv
cmtTdGF0ZTsKKyAgICBNb3ZpZTo6UmVhZHlTdGF0ZSBvbGRSZWFkeVN0YXRlID0gbV9yZWFkeVN0
YXRlOworICAgIEdzdFN0YXRlIHN0YXRlOworICAgIEdzdFN0YXRlIHBlbmRpbmc7CisgICAgCisg
ICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3NlZWtUbyA+
PSBjdXJyZW50VGltZSgpKQorICAgICAgICBtX3NlZWtUbyA9IC0xOworCisgICAgR3N0U3RhdGVD
aGFuZ2VSZXR1cm4gcmV0ID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlIChtX3BsYXlCaW4sIAorICAg
ICAgICAmc3RhdGUsICZwZW5kaW5nLCAyNTAgKiBHU1RfTlNFQ09ORCk7CisKKyAgICBzd2l0Y2go
cmV0KSB7CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1NVQ0NFU1M6CisgICAgICAgIExPR19W
RVJCT1NFKE1lZGlhLCAiU3RhdGU6ICVzLCBwZW5kaW5nOiAlcyIsIAorICAgICAgICAgICAgZ3N0
X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoc3RhdGUpLCAKKyAgICAgICAgICAgIGdzdF9lbGVtZW50
X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKKworICAgICAgICBpZiAoc3RhdGUgPT0gR1NUX1NU
QVRFX1JFQURZKSB7CisgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNb3ZpZTo6Q2FuUGxheVRo
cm91Z2g7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT0gR1NUX1NUQVRFX1BBVVNFRCkgewor
ICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTW92aWU6OkNhblBsYXlUaHJvdWdoOworICAgICAg
ICB9CisgICAgICAgIGlmIChtX25ldHdvcmtTdGF0ZSA8IE1vdmllOjpMb2FkZWQpCisgICAgICAg
ICAgICBtX25ldHdvcmtTdGF0ZSA9IE1vdmllOjpMb2FkZWQ7CisKKyAgICAgICAgZ19vYmplY3Rf
Z2V0KG1fcGxheUJpbiwgInNvdXJjZSIsICZtX3NvdXJjZSwgTlVMTCk7CisgICAgICAgIGlmICgh
bV9zb3VyY2UpCisgICAgICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIm1fc291cmNlIGlzIE5V
TEwiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX0FTWU5DOgor
ICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkFzeW5jOiBTdGF0ZTogJXMsIHBlbmRpbmc6ICVz
IiwgCisgICAgICAgICAgICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShzdGF0ZSksIAorICAg
ICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOworICAgICAgICAv
LyBDaGFuZ2UgaW4gcHJvZ3Jlc3MKKyAgICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfTk9fUFJFUk9MTDoKKyAgICAgICAgTE9HX1ZFUkJPU0Uo
TWVkaWEsICJObyBwcmVyb2xsOiBTdGF0ZTogJXMsIHBlbmRpbmc6ICVzIiwgCisgICAgICAgICAg
ICBnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZShzdGF0ZSksIAorICAgICAgICAgICAgZ3N0X2Vs
ZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOworICAgICAgICBpZiAoc3RhdGUgPT0gR1NU
X1NUQVRFX1JFQURZKSB7CisgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNb3ZpZTo6Q2FuUGxh
eTsKKyAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PSBHU1RfU1RBVEVfUEFVU0VEKSB7CisgICAg
ICAgICAgICBtX3JlYWR5U3RhdGUgPSBNb3ZpZTo6Q2FuUGxheTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAobV9uZXR3b3JrU3RhdGUgPCBNb3ZpZTo6TG9hZGVkTWV0YURhdGEpCisgICAgICAgICAg
ICBtX25ldHdvcmtTdGF0ZSA9IE1vdmllOjpMb2FkZWRNZXRhRGF0YTsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJFbHNlIDogJWQiLCBy
ZXQpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisgICAgaWYgKHNlZWtpbmcoKSkKKyAg
ICAgICAgbV9yZWFkeVN0YXRlID0gTW92aWU6OkRhdGFVbmF2YWlsYWJsZTsKKyAgICAKKyAgICBp
ZiAobV9uZXR3b3JrU3RhdGUgIT0gb2xkTmV0d29ya1N0YXRlKSB7CisgICAgICAgIExPR19WRVJC
T1NFKE1lZGlhLCAiTmV0d29yayBTdGF0ZSBDaGFuZ2VkIGZyb20gJXUgdG8gJXUiLCAKKyAgICAg
ICAgICAgIG9sZE5ldHdvcmtTdGF0ZSwgbV9uZXR3b3JrU3RhdGUpOworICAgICAgICBtX21vdmll
LT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CisgICAgfQorICAgIGlmIChtX3JlYWR5U3RhdGUgIT0g
b2xkUmVhZHlTdGF0ZSkgeworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlJlYWR5IFN0YXRl
IENoYW5nZWQgZnJvbSAldSB0byAldSIsIAorICAgICAgICAgICAgb2xkUmVhZHlTdGF0ZSwgbV9y
ZWFkeVN0YXRlKTsKKyAgICAgICAgbV9tb3ZpZS0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKKyAgICB9
Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpsb2FkU3RhdGVDaGFuZ2VkKCkKK3sKKyAgICB1cGRh
dGVTdGF0ZXMoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnJhdGVDaGFuZ2VkKCkKK3sKKyAg
ICB1cGRhdGVTdGF0ZXMoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnNpemVDaGFuZ2VkKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6dGltZUNo
YW5nZWQoKQoreworICAgIHVwZGF0ZVN0YXRlcygpOworICAgIG1fbW92aWUtPnRpbWVDaGFuZ2Vk
KCk7Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjp2b2x1bWVDaGFuZ2VkKCkKK3sKKyAgICBtX21v
dmllLT52b2x1bWVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpkaWRFbmQoKQor
eworICAgIG1fZW5kUmVhY2hlZCA9IHRydWU7CisgICAgcGF1c2UoKTsKKyAgICB0aW1lQ2hhbmdl
ZCgpOworfQorCit2b2lkIE1vdmllUHJpdmF0ZTo6bG9hZGluZ0ZhaWxlZCgpCit7CisgICAgaWYg
KG1fbmV0d29ya1N0YXRlICE9IE1vdmllOjpMb2FkRmFpbGVkKSB7CisgICAgICAgIG1fbmV0d29y
a1N0YXRlID0gTW92aWU6OkxvYWRGYWlsZWQ7CisgICAgICAgIG1fbW92aWUtPm5ldHdvcmtTdGF0
ZUNoYW5nZWQoKTsKKyAgICB9CisgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBNb3ZpZTo6RGF0YVVu
YXZhaWxhYmxlKSB7CisgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1vdmllOjpEYXRhVW5hdmFpbGFi
bGU7CisgICAgICAgIG1fbW92aWUtPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CisgICAgfQorfQorCit2
b2lkIE1vdmllUHJpdmF0ZTo6c2V0UmVjdChjb25zdCBJbnRSZWN0JiByKSAKK3sgCisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNb3ZpZVByaXZhdGU6OnNldFZpc2libGUoYm9vbCBi
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTW92aWVQcml2YXRlOjpwYWlu
dChHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IEludFJlY3QmIHIpCit7CisgICAgLy8gRklYTUUg
ZG8gdGhlIHJlYWwgdGhpbmcgICAgCisgICAgaWYgKHAtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIC8vIEZvciBub3cgZHJhdyBhIHBsYWNlaG9sZGVyIHJlY3Rhbmds
ZQorICAgIHAtPmRyYXdSZWN0KHIpOworICAgIC8vIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGRyYXcg
d2l0aCBYT3ZlcmxheQorICAgIG1fd2luZG93ID0gcC0+Z2RrRHJhd2FibGUoKTsKK30KKwordm9p
ZCBNb3ZpZVByaXZhdGU6OmdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMp
Cit7CisgICAgLy8gRklYTUUgZG8gdGhlIHJlYWwgdGhpbmcgICAgCisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICB0eXBlcy5hZGQoU3RyaW5nKCJ2aWRlby94LXRoZW9yYStvZ2ciKSk7Cit9IAor
Cit2b2lkIE1vdmllUHJpdmF0ZTo6Y3JlYXRlR1NUUGxheUJpbihTdHJpbmcgdXJsKQoreworICAg
IEdzdEVsZW1lbnQqIGF1ZGlvX3Npbms7CisgICAgR3N0QnVzKiBidXM7CisKKyAgICBtX3BsYXlC
aW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInBsYXliaW4iLCAicGxheSIpOworCisgICAg
YnVzID0gZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGxheUJpbikpOworCisg
ICAgZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKGJ1cywgKEdzdEJ1c1N5bmNIYW5kbGVyKSBtb3Zp
ZV9wcml2YXRlX3dpbmRvd19pZF9jYiwgbV9wbGF5QmluKTsKKyAgICBnc3RfYnVzX2FkZF9zaWdu
YWxfd2F0Y2goYnVzKTsKKworICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAibWVzc2FnZTo6ZXJy
b3IiLCBHX0NBTExCQUNLKG1vdmllX3ByaXZhdGVfZXJyb3JfY2IpLCB0aGlzKTsKKyAgICBnX3Np
Z25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2U6OmVvcyIsIEdfQ0FMTEJBQ0sobW92aWVfcHJpdmF0
ZV9lb3NfY2IpLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2U6OnBy
ZXBhcmUteHdpbmRvdy1pZCIsIEdfQ0FMTEJBQ0sobW92aWVfcHJpdmF0ZV93aW5kb3dfaWRfY2Ip
LCBOVUxMKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2U6OnN0YXRlLWNoYW5n
ZWQiLCBHX0NBTExCQUNLKG1vdmllX3ByaXZhdGVfc3RhdGVfY2IpLCB0aGlzKTsKKyAgICBnX3Np
Z25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2U6OmJ1ZmZlcmluZyIsIEdfQ0FMTEJBQ0sobW92aWVf
cHJpdmF0ZV9idWZmZXJpbmdfY2IpLCB0aGlzKTsKKworICAgIGdzdF9vYmplY3RfdW5yZWYoYnVz
KTsKKyAgICAKKyAgICBnX29iamVjdF9zZXQoR19PQkpFQ1QobV9wbGF5QmluKSwgInVyaSIsIHVy
bC51dGY4KCkuZGF0YSgpLCBOVUxMKTsKKyAgICBhdWRpb19zaW5rID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9tYWtlKCJnY29uZmF1ZGlvc2luayIsIE5VTEwpOworICAgIG1fdmlkZW9fc2luayA9IGdz
dF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZ2NvbmZ2aWRlb3NpbmsiLCBOVUxMKTsKKworICAgIGdf
b2JqZWN0X3NldChtX3BsYXlCaW4sICJhdWRpby1zaW5rIiwgYXVkaW9fc2luaywgTlVMTCk7Cisg
ICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZpZGVvLXNpbmsiLCBtX3ZpZGVvX3NpbmssIE5V
TEwpOworCisgICAgc2V0Vm9sdW1lKG1fb2xkVm9sdW1lKTsKK30KKworfQorCisjZW5kaWYKKwpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQcml2YXRlR1N0cmVhbWVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQcml2
YXRlR1N0cmVhbWVyLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9Nb3ZpZVByaXZhdGVHU3RyZWFtZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKiAKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFp
bnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIE1vdmllUHJpdmF0ZUdTdHJlYW1lcl9oCisjZGVmaW5lIE1vdmllUHJp
dmF0ZUdTdHJlYW1lcl9oCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CisjaW5jbHVkZSAiTW92aWUuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgInd0
Zi9Ob25jb3B5YWJsZS5oIgorCit0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dzdE1lc3NhZ2UgR3N0TWVzc2FnZTsKK3R5cGVkZWYgc3RydWN0
IF9Hc3RCdXMgR3N0QnVzOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CisgICAgY2xhc3MgSW50U2l6ZTsKKyAgICBjbGFzcyBJbnRSZWN0OworICAg
IGNsYXNzIFN0cmluZzsKKworICAgIGdib29sZWFuIG1vdmllX3ByaXZhdGVfZXJyb3JfY2IgKEdz
dEJ1cyAqYnVzLCBHc3RNZXNzYWdlICptZXNzYWdlLCBncG9pbnRlciBkYXRhKTsKKyAgICBnYm9v
bGVhbiBtb3ZpZV9wcml2YXRlX2Vvc19jYiAoR3N0QnVzICpidXMsIEdzdE1lc3NhZ2UgKm1lc3Nh
Z2UsIGdwb2ludGVyIGRhdGEpOworICAgIGdib29sZWFuIG1vdmllX3ByaXZhdGVfc3RhdGVfY2Ig
KEdzdEJ1cyAqYnVzLCBHc3RNZXNzYWdlICptZXNzYWdlLCBncG9pbnRlciBkYXRhKTsKKworICAg
IGNsYXNzIE1vdmllUHJpdmF0ZSA6IE5vbmNvcHlhYmxlCisgICAgeworICAgIGZyaWVuZCBnYm9v
bGVhbiBtb3ZpZV9wcml2YXRlX2Vycm9yX2NiIChHc3RCdXMgKmJ1cywgR3N0TWVzc2FnZSAqbWVz
c2FnZSwgZ3BvaW50ZXIgZGF0YSk7CisgICAgZnJpZW5kIGdib29sZWFuIG1vdmllX3ByaXZhdGVf
ZW9zX2NiIChHc3RCdXMgKmJ1cywgR3N0TWVzc2FnZSAqbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSk7
CisgICAgZnJpZW5kIGdib29sZWFuIG1vdmllX3ByaXZhdGVfc3RhdGVfY2IgKEdzdEJ1cyAqYnVz
LCBHc3RNZXNzYWdlICptZXNzYWdlLCBncG9pbnRlciBkYXRhKTsKKworICAgIHB1YmxpYzoKKyAg
ICAgICAgTW92aWVQcml2YXRlKE1vdmllKiBtKTsKKyAgICAgICAgfk1vdmllUHJpdmF0ZSgpOwor
ICAgICAgICAKKyAgICAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpOworICAgICAgICBib29sIGhh
c1ZpZGVvKCk7CisgICAgICAgIAorICAgICAgICB2b2lkIGxvYWQoU3RyaW5nIHVybCk7CisgICAg
ICAgIHZvaWQgY2FuY2VsTG9hZCgpOworICAgICAgICAKKyAgICAgICAgdm9pZCBwbGF5KCk7Cisg
ICAgICAgIHZvaWQgcGF1c2UoKTsgICAgCisgICAgICAgIAorICAgICAgICBib29sIHBhdXNlZCgp
IGNvbnN0OworICAgICAgICBib29sIHNlZWtpbmcoKSBjb25zdDsKKyAgICAgICAgCisgICAgICAg
IGZsb2F0IGR1cmF0aW9uKCk7CisgICAgICAgIGZsb2F0IGN1cnJlbnRUaW1lKCkgY29uc3Q7Cisg
ICAgICAgIHZvaWQgc2VlayhmbG9hdCB0aW1lKTsKKyAgICAgICAgdm9pZCBzZXRFbmRUaW1lKGZs
b2F0IHRpbWUpOworICAgICAgICAKKyAgICAgICAgdm9pZCBhZGRDdWVQb2ludChmbG9hdCB0aW1l
KTsKKyAgICAgICAgdm9pZCByZW1vdmVDdWVQb2ludChmbG9hdCB0aW1lKTsKKyAgICAgICAgdm9p
ZCBjbGVhckN1ZVBvaW50cygpOworICAgICAgICAKKyAgICAgICAgdm9pZCBzZXRSYXRlKGZsb2F0
KTsKKyAgICAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOworICAgICAgICB2b2lkIHNldE11dGVk
KGJvb2wpOworICAgICAgICAKKyAgICAgICAgaW50IGRhdGFSYXRlKCkgY29uc3Q7CisgICAgICAg
IAorICAgICAgICBNb3ZpZTo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpOworICAgICAgICBN
b3ZpZTo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCk7CisgICAgICAgIAorICAgICAgICBmbG9hdCBt
YXhUaW1lQnVmZmVyZWQoKTsKKyAgICAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxlKCk7CisgICAg
ICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCk7CisgICAgICAgIGJvb2wgdG90YWxCeXRlc0tub3du
KCk7CisgICAgICAgIHVuc2lnbmVkIHRvdGFsQnl0ZXMoKTsKKyAgICAgICAgCisgICAgICAgIHZv
aWQgc2V0VmlzaWJsZShib29sKTsKKyAgICAgICAgdm9pZCBzZXRSZWN0KGNvbnN0IEludFJlY3Qm
IHIpOworICAgICAgICAKKyAgICAgICAgdm9pZCBsb2FkU3RhdGVDaGFuZ2VkKCk7CisgICAgICAg
IHZvaWQgcmF0ZUNoYW5nZWQoKTsKKyAgICAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOworICAgICAg
ICB2b2lkIHRpbWVDaGFuZ2VkKCk7CisgICAgICAgIHZvaWQgdm9sdW1lQ2hhbmdlZCgpOworICAg
ICAgICB2b2lkIGRpZEVuZCgpOworICAgICAgICB2b2lkIGxvYWRpbmdGYWlsZWQoKTsKKyAgICAg
ICAgCisgICAgICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0
JiByKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+JiB0eXBlcyk7CisgICAgICAgIAorICAgIHByaXZhdGU6CisgICAgICAgIAorICAgICAgICB2
b2lkIHVwZGF0ZVN0YXRlcygpOworICAgICAgICB2b2lkIGNhbmNlbFNlZWsoKTsKKyAgICAgICAg
dm9pZCBjdWVQb2ludFRpbWVyRmlyZWQoVGltZXI8TW92aWVQcml2YXRlPiopOworICAgICAgICBm
bG9hdCBtYXhUaW1lTG9hZGVkKCk7CisgICAgICAgIHZvaWQgc3RhcnRDdWVQb2ludFRpbWVySWZO
ZWVkZWQoKTsKKworICAgICAgICB2b2lkIGNyZWF0ZUdTVFBsYXlCaW4oU3RyaW5nIHVybCk7Cisg
ICAgICAgIAorICAgIHByaXZhdGU6ICAgIAorICAgICAgICBNb3ZpZSogbV9tb3ZpZTsKKyAgICAg
ICAgR3N0RWxlbWVudCogbV9wbGF5QmluOworICAgICAgICBHc3RFbGVtZW50KiBtX3ZpZGVvX3Np
bms7CisgICAgICAgIEdzdEVsZW1lbnQqIG1fc291cmNlOworICAgICAgICBmbG9hdCBtX3NlZWtU
bzsKKyAgICAgICAgZmxvYXQgbV9yYXRlOworICAgICAgICBmbG9hdCBtX2VuZFRpbWU7CisgICAg
ICAgIGJvb2wgbV9lbmRSZWFjaGVkOworICAgICAgICBkb3VibGUgbV9vbGRWb2x1bWU7CisgICAg
ICAgIGZsb2F0IG1fcHJldmlvdXNUaW1lQ3VlVGltZXJGaXJlZDsKKyAgICAgICAgTW92aWU6Ok5l
dHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZTsKKyAgICAgICAgTW92aWU6OlJlYWR5U3RhdGUgbV9y
ZWFkeVN0YXRlOworICAgICAgICBib29sIG1fc3RhcnRlZFBsYXlpbmc7CisgICAgICAgIGJvb2wg
bV9pc1N0cmVhbWluZzsKKyAgICB9OworCit9CisKKyNlbmRpZgorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17725</attachid>
            <date>2007-12-05 13:19:13 -0800</date>
            <delta_ts>2007-12-05 21:39:42 -0800</delta_ts>
            <desc>More clean-up</desc>
            <filename>HTML5-media-gstreamer-3.patch</filename>
            <type>text/plain</type>
            <size>9474</size>
            <attacher name="Pierre-Luc Beaudoin">pierre-luc.beaudoin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01vdmllUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTW92aWVQ
cml2YXRlR1N0cmVhbWVyLmNwcAkocsOpdmlzaW9uIDI4Mzk1KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvTW92aWVQcml2YXRlR1N0cmVhbWVyLmNwcAkoY29waWUgZGUgdHJhdmFp
bCkKQEAgLTQ3LDkgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBMb2NhbCB2
YXIsIGZvciBzdHJhbmdlIHJlYXNvbnMsIGEgbWVtYmVyIHZhciB3aWxsIG1ha2UgdGhlIGFwcCBj
cmFzaAotR2RrV2luZG93KiBtX3dpbmRvdzsKLQogZ2Jvb2xlYW4gbW92aWVQcml2YXRlRXJyb3JD
YWxsYmFjayhHc3RCdXMqIGJ1cywgR3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkK
IHsKICAgICBpZiAoR1NUX01FU1NBR0VfVFlQRShtZXNzYWdlKSA9PSBHU1RfTUVTU0FHRV9FUlJP
UikKQEAgLTc2LDcgKzczLDcgQEAKIHsKICAgICBpZiAoR1NUX01FU1NBR0VfVFlQRShtZXNzYWdl
KSA9PSBHU1RfTUVTU0FHRV9FT1MpCiAgICAgewotICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwg
IkVORCBPRiBTVFJFQU0iKTsKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJFbmQgb2YgU3Ry
ZWFtIik7CiAgICAgICAgIE1vdmllUHJpdmF0ZSogbXAgPSByZWludGVycHJldF9jYXN0PE1vdmll
UHJpdmF0ZSo+KGRhdGEpOwogICAgICAgICBtcC0+ZGlkRW5kKCk7CiAgICAgfQpAQCAtMTA0LDM0
ICsxMDEsMTUgQEAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLy8gU2V0dXAgdGhlIG92ZXJsYXkg
d2hlbiB0aGUgbWVzc2FnZSBpcyByZWNlaXZlZAotR3N0QnVzU3luY1JlcGx5IG1vdmllUHJpdmF0
ZVdpbmRvd0lEQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2lu
dGVyIGRhdGEpCi17Ci0gICAgaWYgKEdTVF9NRVNTQUdFX1RZUEUobWVzc2FnZSkgIT0gR1NUX01F
U1NBR0VfRUxFTUVOVCkKLSAgICAgICAgcmV0dXJuIEdTVF9CVVNfUEFTUzsKLQotICAgIGlmICgh
Z3N0X3N0cnVjdHVyZV9oYXNfbmFtZShtZXNzYWdlLT5zdHJ1Y3R1cmUsICJwcmVwYXJlLXh3aW5k
b3ctaWQiKSkKLSAgICAgICAgcmV0dXJuIEdTVF9CVVNfUEFTUzsKLQotICAgIC8vIERpc2FibGVk
IGZvciBub3cgYXMgaXQgaXMgYW5ub3lpbmc6IHRoZSBvdmVybGF5IGlmIGRvbmUgZm9yIHRoZSB3
aG9sZSB3ZWIgcGFnZQotICAgIC8vIG5vdCBvbmx5IHRoZSBzcGVjaWZpZWQgUmVjdC4uLgotCi0g
ICAgLy9nc3RfeF9vdmVybGF5X3NldF94d2luZG93X2lkKAotICAgIC8vICAgIEdTVF9YX09WRVJM
QVkoR1NUX01FU1NBR0VfU1JDKG1lc3NhZ2UpKSwKLSAgICAvLyAgICBHREtfV0lORE9XX1hJRCht
X3dpbmRvdykpOwotICAgIHJldHVybiBHU1RfQlVTX0RST1A7Ci19Ci0KIE1vdmllUHJpdmF0ZTo6
TW92aWVQcml2YXRlKE1vdmllKiBtb3ZpZSkKICAgICA6IG1fbW92aWUobW92aWUpCiAgICAgLCBt
X3BsYXlCaW4oMCkKLSAgICAsIG1fdmlkZW9fc2luaygwKQorICAgICwgbV92aWRlb1NpbmsoMCkK
ICAgICAsIG1fc291cmNlKDApCi0gICAgLCBtX3NlZWtUbygtMSkKICAgICAsIG1fcmF0ZSgxLjBm
KQogICAgICwgbV9lbmRUaW1lKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgp
KQotICAgICwgbV9lbmRSZWFjaGVkKGZhbHNlKQotICAgICwgbV9vbGRWb2x1bWUoMC41ZikKKyAg
ICAsIG1faXNFbmRSZWFjaGVkKGZhbHNlKQorICAgICwgbV92b2x1bWUoMC41ZikKICAgICAsIG1f
cHJldmlvdXNUaW1lQ3VlVGltZXJGaXJlZCgwKQogICAgICwgbV9uZXR3b3JrU3RhdGUoTW92aWU6
OkVtcHR5KQogICAgICwgbV9yZWFkeVN0YXRlKE1vdmllOjpEYXRhVW5hdmFpbGFibGUpCkBAIC0x
NjAsMTkgKzEzOCwxNyBAQAogICAgICAgICBtX21vdmllLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOwog
ICAgIH0KIAotICAgIGNhbmNlbFNlZWsoKTsKICAgICBjcmVhdGVHU1RQbGF5QmluKHVybCk7CiAg
ICAgcGF1c2UoKTsKIH0KIAogdm9pZCBNb3ZpZVByaXZhdGU6OnBsYXkoKQogewotICAgIGNhbmNl
bFNlZWsoKTsKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlBMQVkiKTsKICAgICAvLyBXaGVuIGVu
ZCByZWFjaGVkLCByZXdpbmQgZm9yIFRlc3QgdmlkZW8tc2Vlay1wYXN0LWVuZC1wbGF5aW5nCi0g
ICAgaWYgKG1fZW5kUmVhY2hlZCkKKyAgICBpZiAobV9pc0VuZFJlYWNoZWQpCiAgICAgICAgIHNl
ZWsoMCk7Ci0gICAgbV9lbmRSZWFjaGVkID0gZmFsc2U7CisgICAgbV9pc0VuZFJlYWNoZWQgPSBm
YWxzZTsKIAogICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4sIEdTVF9TVEFURV9Q
TEFZSU5HKTsKICAgICBtX3N0YXJ0ZWRQbGF5aW5nID0gdHJ1ZTsKQEAgLTE4MCw3ICsxNTYsNiBA
QAogCiB2b2lkIE1vdmllUHJpdmF0ZTo6cGF1c2UoKQogewotICAgIGNhbmNlbFNlZWsoKTsKICAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgIlBBVVNFIik7CiAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRl
KG1fcGxheUJpbiwgR1NUX1NUQVRFX1BBVVNFRCk7CiAgICAgbV9zdGFydGVkUGxheWluZyA9IGZh
bHNlOwpAQCAtMjExLDEwICsxODYsOCBAQAogewogICAgIGlmICghbV9wbGF5QmluKQogICAgICAg
ICByZXR1cm4gMDsKLSAgICBpZiAoc2Vla2luZygpKQotICAgICAgICByZXR1cm4gbV9zZWVrVG87
CiAgICAgLy8gTmVjZXNzYXJ5IGFzIHNvbWV0aW1lcywgZ3N0cmVhbWVyIHJldHVybiAwOjAwIGF0
IHRoZSBFT1MKLSAgICBpZiAobV9lbmRSZWFjaGVkKQorICAgIGlmIChtX2lzRW5kUmVhY2hlZCkK
ICAgICAgICAgcmV0dXJuIG1fZW5kVGltZTsKIAogICAgIGZsb2F0IHJldDsKQEAgLTIyNyw3ICsy
MDAsNyBAQAogICAgICAgICBnaW50NjQgcG9zaXRpb247CiAgICAgICAgIGdzdF9xdWVyeV9wYXJz
ZV9wb3NpdGlvbihxdWVyeSwgTlVMTCwgJnBvc2l0aW9uKTsKICAgICAgICAgcmV0ID0gKGZsb2F0
KSAocG9zaXRpb24gLyAxMDAwMDAwMDAwLjApOwotICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwg
ImN1cnJlbnRUaW1lICUiIEdTVF9USU1FX0ZPUk1BVCwgR1NUX1RJTUVfQVJHUyhwb3NpdGlvbikp
OworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInBvc2l0aW9uICUiIEdTVF9USU1FX0ZPUk1B
VCwgR1NUX1RJTUVfQVJHUyhwb3NpdGlvbikpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIExPR19W
RVJCT1NFKE1lZGlhLCAicG9zaXRpb24gcXVlcnkgZmFpbGVkLi4uIik7CiAgICAgICAgIHJldCA9
IDAuMDsKQEAgLTIzOCw3ICsyMTEsNiBAQAogCiB2b2lkIE1vdmllUHJpdmF0ZTo6c2VlayhmbG9h
dCB0aW1lKQogewotICAgIGNhbmNlbFNlZWsoKTsKICAgICBHc3RDbG9ja1RpbWUgc2VjID0gKEdz
dENsb2NrVGltZSkodGltZSAqIEdTVF9TRUNPTkQpOwogCiAgICAgaWYgKCFtX3BsYXlCaW4pCkBA
IC0zMDAsOCArMjcyLDcgQEAKIAogdm9pZCBNb3ZpZVByaXZhdGU6OmNhbmNlbFNlZWsoKQogewot
ICAgIGlmIChtX3NlZWtUbyA+IC0xKQotICAgICAgICBtX3NlZWtUbyA9IC0xOworICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgTW92aWVQcml2YXRlOjpjdWVQb2ludFRpbWVyRmlyZWQo
VGltZXI8TW92aWVQcml2YXRlPiopCkBAIC0zMTYsOSArMjg3LDcgQEAKIAogYm9vbCBNb3ZpZVBy
aXZhdGU6OnNlZWtpbmcoKSBjb25zdAogewotICAgICBpZiAoIW1fcGxheUJpbikKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX3NlZWtUbyA+PSAwOworICAgIHJldHVybiBmYWxz
ZTs7CiB9CiAKIC8vIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIHZpZGVvCkBAIC0zMjcsNyArMjk2
LDcgQEAKICAgICBpbnQgeCA9IDAsIHkgPSAwOwogICAgIGlmIChoYXNWaWRlbygpKSB7CiAgICAg
ICAgIEdzdFBhZCogcGFkID0gTlVMTDsKLSAgICAgICAgcGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3Bh
ZChtX3ZpZGVvX3NpbmssICJzaW5rIik7CisgICAgICAgIHBhZCA9IGdzdF9lbGVtZW50X2dldF9w
YWQobV92aWRlb1NpbmssICJzaW5rIik7CiAgICAgICAgIGlmIChwYWQpCiAgICAgICAgICAgICBn
c3RfdmlkZW9fZ2V0X3NpemUoR1NUX1BBRChwYWQpLCAmeCwgJnkpOwogICAgIH0KQEAgLTM0NCw3
ICszMTMsNyBAQAogCiB2b2lkIE1vdmllUHJpdmF0ZTo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkK
IHsKLSAgICBtX29sZFZvbHVtZSA9IHZvbHVtZTsKKyAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKICAg
ICBMT0dfVkVSQk9TRShNZWRpYSwgIlZvbHVtZSB0byAlZiIsIHZvbHVtZSk7CiAgICAgc2V0TXV0
ZWQoZmFsc2UpOwogfQpAQCAtMzU1LDEwICszMjQsMTAgQEAKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKGIpIHsKLSAgICAgICAgZ19vYmplY3RfZ2V0KEdfT0JKRUNUKG1fcGxheUJpbiksICJ2
b2x1bWUiLCAmbV9vbGRWb2x1bWUsIE5VTEwpOworICAgICAgICBnX29iamVjdF9nZXQoR19PQkpF
Q1QobV9wbGF5QmluKSwgInZvbHVtZSIsICZtX3ZvbHVtZSwgTlVMTCk7CiAgICAgICAgIGdfb2Jq
ZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4pLCAidm9sdW1lIiwgKGRvdWJsZSkwLjAsIE5VTEwp
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4p
LCAidm9sdW1lIiwgbV9vbGRWb2x1bWUsIE5VTEwpOworICAgICAgICBnX29iamVjdF9zZXQoR19P
QkpFQ1QobV9wbGF5QmluKSwgInZvbHVtZSIsIG1fdm9sdW1lLCBOVUxMKTsKICAgICB9CiB9CiAK
QEAgLTM5OSw3ICszNjgsNyBAQAogCiBmbG9hdCBNb3ZpZVByaXZhdGU6Om1heFRpbWVCdWZmZXJl
ZCgpCiB7Ci0gICAgLy9UT0RPCisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBMT0dfVkVSQk9T
RShNZWRpYSwgIm1heFRpbWVCdWZmZXJlZCIpOwogICAgIC8vIHJ0c3Agc3RyZWFtcyBhcmUgbm90
IGJ1ZmZlcmVkCiAgICAgcmV0dXJuIG1faXNTdHJlYW1pbmcgPyAwIDogbWF4VGltZUxvYWRlZCgp
OwpAQCAtNDI1LDYgKzM5NCw3IEBACiAKIHVuc2lnbmVkIE1vdmllUHJpdmF0ZTo6Ynl0ZXNMb2Fk
ZWQoKQogeworICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJi
eXRlc0xvYWRlZCIpOwogICAgIC8qaWYgKCFtX3BsYXlCaW4pCiAgICAgICAgIHJldHVybiAwOwpA
QCAtNDM3LDQyICs0MDcsMjMgQEAKIAogYm9vbCBNb3ZpZVByaXZhdGU6OnRvdGFsQnl0ZXNLbm93
bigpCiB7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRv
dGFsQnl0ZXNLbm93biIpOwogICAgIHJldHVybiB0b3RhbEJ5dGVzKCkgPiAwOwogfQogCiB1bnNp
Z25lZCBNb3ZpZVByaXZhdGU6OnRvdGFsQnl0ZXMoKQogewotCisgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMiKTsKICAgICBpZiAoIW1fcGxh
eUJpbikKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoIW1fc291cmNlKQogICAgICAgICBy
ZXR1cm4gMDsKLSAgICAvKkdzdEZvcm1hdCBmbXQgPSBHU1RfRk9STUFUX0JZVEVTOwogCisgICAg
Ly8gRG8gc29tZXRoaW5nIHdpdGggbV9zb3VyY2UgdG8gZ2V0IHRoZSB0b3RhbCBieXRlcyBvZiB0
aGUgbWVkaWEKIAotICAgIGlmIChnc3RfZWxlbWVudF9xdWVyeV9kdXJhdGlvbihtX3BsYXlCaW4s
ICZmbXQsICZsZW4pKSAKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzOiAl
ZCIsIChsZW4pKTsKLSAgICBlbHNlIHsKLSAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3Rh
bEJ5dGVzIGZhaWxlZCAiKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfSovCi0gICAgZ3VpbnQ2
NCBsZW47Ci0gICAgaWYgKEdfT0JKRUNUX1RZUEVfTkFNRShtX3NvdXJjZSkgPT0gIkdzdEZpbGVT
cmMiKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBHZXQgZmlsZSBzaXplIHNvbWUgb3RoZXIgd2F5LCBt
YXliZSB3aXRoIHRoZSBmZCBwcm9wZXJ0eQotICAgICAgICBsZW4gPSAwOwotICAgIH0gZWxzZSBp
ZiAoR19PQkpFQ1RfVFlQRV9OQU1FKG1fc291cmNlKSA9PSAiR3N0R25vbWVWRlNTcmMiKSB7Ci0g
ICAgICAgIC8qCi0gICAgICAgIEdub21lVkZTSGFuZGxlKiBoYW5kbGU7Ci0gICAgICAgIGdfb2Jq
ZWN0X2dldChtX3NvdXJjZSwgImhhbmRsZSIsIGhhbmRsZSwgTlVMTCk7Ci0gICAgICAgIEdub21l
VkZTRmlsZUluZm8gaW5mbzsKLSAgICAgICAgZ25vbWVfdmZzX2dldF9maWxlX2luZm9fZnJvbV9o
YW5kbGUoaGFuZGxlLCAmaW5mbywKLSAgICAgICAgICAgIEdOT01FX1ZGU19GSUxFX0lORk9fREVG
QVVMVCk7Ci0gICAgICAgIGxlbiA9IGluZm8uc2l6ZTsKLSAgICAgICAgKi8KLSAgICB9CiAgICAg
cmV0dXJuIDEwMDsKIH0KIApAQCAtNDk1LDkgKzQ0Niw2IEBACiAgICAgaWYgKCFtX3BsYXlCaW4p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3NlZWtUbyA+PSBjdXJyZW50VGltZSgpKQot
ICAgICAgICBtX3NlZWtUbyA9IC0xOwotCiAgICAgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gcmV0ID0g
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRlIChtX3BsYXlCaW4sCiAgICAgICAgICZzdGF0ZSwgJnBlbmRp
bmcsIDI1MCAqIEdTVF9OU0VDT05EKTsKIApAQCAtNTg2LDcgKzUzNCw3IEBACiAKIHZvaWQgTW92
aWVQcml2YXRlOjpkaWRFbmQoKQogewotICAgIG1fZW5kUmVhY2hlZCA9IHRydWU7CisgICAgbV9p
c0VuZFJlYWNoZWQgPSB0cnVlOwogICAgIHBhdXNlKCk7CiAgICAgdGltZUNoYW5nZWQoKTsKIH0K
QEAgLTYyMCw4ICs1NjgsNiBAQAogICAgICAgICByZXR1cm47CiAgICAgLy8gRm9yIG5vdyBkcmF3
IGEgcGxhY2Vob2xkZXIgcmVjdGFuZ2xlCiAgICAgcC0+ZHJhd1JlY3Qocik7Ci0gICAgLy8gVGhp
cyB3aWxsIGJlIHVzZWQgdG8gZHJhdyB3aXRoIFhPdmVybGF5Ci0gICAgbV93aW5kb3cgPSBwLT5n
ZGtEcmF3YWJsZSgpOwogfQogCiB2b2lkIE1vdmllUHJpdmF0ZTo6Z2V0U3VwcG9ydGVkVHlwZXMo
SGFzaFNldDxTdHJpbmc+JiB0eXBlcykKQEAgLTYzMywzMiArNTc5LDMwIEBACiAKIHZvaWQgTW92
aWVQcml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiB7Ci0gICAgR3N0RWxlbWVu
dCogYXVkaW9fc2luazsKKyAgICBHc3RFbGVtZW50KiBhdWRpb1Npbms7CiAgICAgR3N0QnVzKiBi
dXM7CiAKICAgICBtX3BsYXlCaW4gPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInBsYXliaW4i
LCAicGxheSIpOwogCiAgICAgYnVzID0gZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5F
KG1fcGxheUJpbikpOwogCi0gICAgZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKGJ1cywgKEdzdEJ1
c1N5bmNIYW5kbGVyKSBtb3ZpZVByaXZhdGVXaW5kb3dJRENhbGxiYWNrLCBtX3BsYXlCaW4pOwog
ICAgIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaChidXMpOwogCiAgICAgZ19zaWduYWxfY29ubmVj
dChidXMsICJtZXNzYWdlOjplcnJvciIsIEdfQ0FMTEJBQ0sobW92aWVQcml2YXRlRXJyb3JDYWxs
YmFjayksIHRoaXMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoYnVzLCAibWVzc2FnZTo6ZW9zIiwg
R19DQUxMQkFDSyhtb3ZpZVByaXZhdGVFT1NDYWxsYmFjayksIHRoaXMpOwotICAgIGdfc2lnbmFs
X2Nvbm5lY3QoYnVzLCAibWVzc2FnZTo6cHJlcGFyZS14d2luZG93LWlkIiwgR19DQUxMQkFDSyht
b3ZpZVByaXZhdGVXaW5kb3dJRENhbGxiYWNrKSwgTlVMTCk7CiAgICAgZ19zaWduYWxfY29ubmVj
dChidXMsICJtZXNzYWdlOjpzdGF0ZS1jaGFuZ2VkIiwgR19DQUxMQkFDSyhtb3ZpZVByaXZhdGVT
dGF0ZUNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChidXMsICJtZXNzYWdl
OjpidWZmZXJpbmciLCBHX0NBTExCQUNLKG1vdmllUHJpdmF0ZUJ1ZmZlcmluZ0NhbGxiYWNrKSwg
dGhpcyk7CiAKICAgICBnc3Rfb2JqZWN0X3VucmVmKGJ1cyk7CiAKICAgICBnX29iamVjdF9zZXQo
R19PQkpFQ1QobV9wbGF5QmluKSwgInVyaSIsIHVybC51dGY4KCkuZGF0YSgpLCBOVUxMKTsKLSAg
ICBhdWRpb19zaW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJnY29uZmF1ZGlvc2luayIs
IE5VTEwpOwotICAgIG1fdmlkZW9fc2luayA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiZ2Nv
bmZ2aWRlb3NpbmsiLCBOVUxMKTsKKyAgICBhdWRpb1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoImdjb25mYXVkaW9zaW5rIiwgTlVMTCk7CisgICAgbV92aWRlb1NpbmsgPSBnc3RfZWxl
bWVudF9mYWN0b3J5X21ha2UoImdjb25mdmlkZW9zaW5rIiwgTlVMTCk7CiAKLSAgICBnX29iamVj
dF9zZXQobV9wbGF5QmluLCAiYXVkaW8tc2luayIsIGF1ZGlvX3NpbmssIE5VTEwpOwotICAgIGdf
b2JqZWN0X3NldChtX3BsYXlCaW4sICJ2aWRlby1zaW5rIiwgbV92aWRlb19zaW5rLCBOVUxMKTsK
KyAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAiYXVkaW8tc2luayIsIGF1ZGlvU2luaywgTlVM
TCk7CisgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZpZGVvLXNpbmsiLCBtX3ZpZGVvU2lu
aywgTlVMTCk7CiAKLSAgICBzZXRWb2x1bWUobV9vbGRWb2x1bWUpOworICAgIHNldFZvbHVtZSht
X3ZvbHVtZSk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01v
dmllUHJpdmF0ZUdTdHJlYW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL01vdmllUHJpdmF0ZUdTdHJlYW1lci5oCShyw6l2aXNpb24gMjgzOTUpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Nb3ZpZVByaXZhdGVHU3RyZWFtZXIuaAkoY29w
aWUgZGUgdHJhdmFpbCkKQEAgLTExNywxMyArMTE3LDEyIEBACiAgICAgcHJpdmF0ZToKICAgICAg
ICAgTW92aWUqIG1fbW92aWU7CiAgICAgICAgIEdzdEVsZW1lbnQqIG1fcGxheUJpbjsKLSAgICAg
ICAgR3N0RWxlbWVudCogbV92aWRlb19zaW5rOworICAgICAgICBHc3RFbGVtZW50KiBtX3ZpZGVv
U2luazsKICAgICAgICAgR3N0RWxlbWVudCogbV9zb3VyY2U7Ci0gICAgICAgIGZsb2F0IG1fc2Vl
a1RvOwogICAgICAgICBmbG9hdCBtX3JhdGU7CiAgICAgICAgIGZsb2F0IG1fZW5kVGltZTsKLSAg
ICAgICAgYm9vbCBtX2VuZFJlYWNoZWQ7Ci0gICAgICAgIGRvdWJsZSBtX29sZFZvbHVtZTsKKyAg
ICAgICAgYm9vbCBtX2lzRW5kUmVhY2hlZDsKKyAgICAgICAgZG91YmxlIG1fdm9sdW1lOwogICAg
ICAgICBmbG9hdCBtX3ByZXZpb3VzVGltZUN1ZVRpbWVyRmlyZWQ7CiAgICAgICAgIE1vdmllOjpO
ZXR3b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGU7CiAgICAgICAgIE1vdmllOjpSZWFkeVN0YXRlIG1f
cmVhZHlTdGF0ZTsK
</data>
<flag name="review"
          id="7629"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>