<?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>178000</bug_id>
          
          <creation_ts>2017-10-06 01:22:16 -0700</creation_ts>
          <short_desc>[WinCairo] Add WebKit platform files for wincairo webkit</short_desc>
          <delta_ts>2017-11-15 13:12:37 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yousuke Kimoto">Yousuke.Kimoto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1357514</commentid>
    <comment_count>0</comment_count>
    <who name="Yousuke Kimoto">Yousuke.Kimoto</who>
    <bug_when>2017-10-06 01:22:16 -0700</bug_when>
    <thetext>Add files under WebKit/Platform for wincairo webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357573</commentid>
    <comment_count>1</comment_count>
      <attachid>323014</attachid>
    <who name="Yousuke Kimoto">Yousuke.Kimoto</who>
    <bug_when>2017-10-06 06:11:41 -0700</bug_when>
    <thetext>Created attachment 323014
[PATCH] WebKit platform files for wincairo webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357596</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2017-10-06 09:07:06 -0700</bug_when>
    <thetext>I don&apos;t think these files have the right copyright headers - there are comments referring to old bugs such as https://bugs.webkit.org/show_bug.cgi?id=47502.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359932</commentid>
    <comment_count>3</comment_count>
      <attachid>323641</attachid>
    <who name="Yousuke Kimoto">Yousuke.Kimoto</who>
    <bug_when>2017-10-12 23:11:02 -0700</bug_when>
    <thetext>Created attachment 323641
[PATCH] WebKit platform files for wincairo webkit

Copyrights which are used in LoggingWin.cpp, ModuleWin.cpp and SharedMemoryWin.cpp are fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359933</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-12 23:14:22 -0700</bug_when>
    <thetext>Attachment 323641 did not pass style-queue:


ERROR: Source/WebKit/PlatformWin.cmake:24:  Alphabetical sorting problem. &quot;Platform/win/LoggingWin.cpp&quot; should be before &quot;Shared/curl/WebCoreArgumentCodersCurl.cpp&quot;.  [list/order] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360018</commentid>
    <comment_count>5</comment_count>
      <attachid>323678</attachid>
    <who name="Yousuke Kimoto">Yousuke.Kimoto</who>
    <bug_when>2017-10-13 09:12:29 -0700</bug_when>
    <thetext>Created attachment 323678
[PATCH] WebKit platform files for wincairo webkit

Fixed a style check error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364323</commentid>
    <comment_count>6</comment_count>
      <attachid>323678</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-25 11:13:40 -0700</bug_when>
    <thetext>Comment on attachment 323678
[PATCH] WebKit platform files for wincairo webkit

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

&gt; Source/WebKit/Platform/win/LoggingWin.cpp:50
&gt; +    return String(buffer.get());

Is buffer null-terminated?  Could we use length here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364346</commentid>
    <comment_count>7</comment_count>
      <attachid>323678</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 11:38:52 -0700</bug_when>
    <thetext>Comment on attachment 323678
[PATCH] WebKit platform files for wincairo webkit

Clearing flags on attachment: 323678

Committed r223966: &lt;https://trac.webkit.org/changeset/223966&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364347</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 11:38:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372410</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:12:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/35569011&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323014</attachid>
            <date>2017-10-06 06:11:41 -0700</date>
            <delta_ts>2017-10-12 23:11:02 -0700</delta_ts>
            <desc>[PATCH] WebKit platform files for wincairo webkit</desc>
            <filename>bz178000.patch</filename>
            <type>text/plain</type>
            <size>16801</size>
            <attacher name="Yousuke Kimoto">Yousuke.Kimoto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzFkNjgwYi4uMmE5MmNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAor
MjAxNy0xMC0wNiAgWW91c3VrZSBLaW1vdG8gIDx5b3VzdWtlLmtpbW90b0Bzb255LmNvbT4KKwor
ICAgICAgICBbV2luQ2Fpcm9dIEFkZCBXZWJLaXQgcGxhdGZvcm0gZmlsZXMgZm9yIHdpbmNhaXJv
IHdlYmtpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc4MDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9Nb2R1bGUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaDoK
KyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpoYW5kbGUgY29uc3QpOgorICAgICAgICAq
IFBsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9Nb2R1bGUuaC4KKyAgICAgICAgKFdlYktpdDo6bG9nTGV2ZWxTdHJpbmcpOgorICAg
ICAgICAqIFBsYXRmb3JtL3dpbi9Nb2R1bGVXaW4uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL01vZHVsZS5oLgorICAgICAgICAoV2ViS2l0OjpNb2R1bGU6OmxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpNb2R1bGU6OnVubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok1vZHVs
ZTo6cGxhdGZvcm1GdW5jdGlvblBvaW50ZXIgY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL3dp
bi9TaGFyZWRNZW1vcnlXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OkhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFu
ZGxlOjp+SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6Omlz
TnVsbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6Y2xlYXIp
OgorICAgICAgICAoV2ViS2l0OjpnZXREdXBsaWNhdGVkSGFuZGxlKToKKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OnByb3Rl
Y3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKToK
KyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjphY2Nlc3NSaWdodHMpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6Om1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6YWRvcHQpOgorICAgICAgICAoV2ViS2l0OjpT
aGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OmNyZWF0ZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6c3lzdGVt
UGFnZVNpemUpOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE3LTEwLTA1ICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHRhcGkgYnVpbGRzIHdpdGhvdXQgb3B0aW1pemF0aW9uIHNvIHdlIHNob3VsZCBoYXZlIFRB
UEkgcGFzc2VzIC1EUkVMRUFTRV9XSVRIT1VUX09QVElNSVpBVElPTlMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL01vZHVsZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9N
b2R1bGUuaAppbmRleCA3NTQwNzkyLi45MDMyOGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTW9kdWxlLmgK
QEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBTb255IEludGVyYWN0aXZl
IEVudGVydGFpbm1lbnQgSW5jLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Myw4ICsyNCw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
I2lmbmRlZiBNb2R1bGVfaAotI2RlZmluZSBNb2R1bGVfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTY0LDYgKzY0LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkKiBwbGF0Zm9ybUZ1bmN0aW9uUG9p
bnRlcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpIGNvbnN0OwogCiAgICAgU3RyaW5nIG1fcGF0
aDsKKyNpZiBQTEFURk9STShXSU4pCisgICAgSE1PRFVMRSBtX21vZHVsZTsKKyNlbmRpZgogI2lm
IFVTRShDRikKICAgICBSZXRhaW5QdHI8Q0ZCdW5kbGVSZWY+IG1fYnVuZGxlOwogI2lmICFkZWZp
bmVkKF9fTFA2NF9fKQpAQCAtODAsNSArODMsMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlv
blR5cGU+IEZ1bmN0aW9uVHlwZSBNb2R1bGU6OmZ1bmN0aW9uUG9pbnRlcihjb25zdCBjaGFyKgog
fQogCiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9TaGFy
ZWRNZW1vcnkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXgg
MDg0MjFhZS4uYzcyZTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9TaGFy
ZWRNZW1vcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgU29ueSBJbnRlcmFjdGl2ZSBF
bnRlcnRhaW5tZW50IEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMs
OCArMjQsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
Zm5kZWYgU2hhcmVkTWVtb3J5X2gKLSNkZWZpbmUgU2hhcmVkTWVtb3J5X2gKKyNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KQEAgLTc5LDYgKzc5LDkgQEAgcHVibGljOgogI2VsaWYgT1MoREFSV0lOKQogICAgICAgICBt
dXRhYmxlIG1hY2hfcG9ydF90IG1fcG9ydDsKICAgICAgICAgc2l6ZV90IG1fc2l6ZTsKKyNlbGlm
IE9TKFdJTkRPV1MpCisgICAgICAgIG11dGFibGUgSEFORExFIG1faGFuZGxlOworICAgICAgICBz
aXplX3QgbV9zaXplOwogI2VuZGlmCiAgICAgfTsKIApAQCAtODgsNiArOTEsOSBAQCBwdWJsaWM6
CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRN
ZW1vcnk+IHdyYXBNYXAodm9pZCosIHNpemVfdCwgaW50IGZpbGVEZXNjcmlwdG9yKTsKICNlbmRp
ZgorI2lmIE9TKFdJTkRPV1MpCisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+IGFkb3B0
KEhBTkRMRSwgc2l6ZV90LCBQcm90ZWN0aW9uKTsKKyNlbmRpZgogCiAgICAgflNoYXJlZE1lbW9y
eSgpOwogCkBAIC0xMDAsNiArMTA2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fZGF0
YTsKICAgICB9CiAKKyNpZiBPUyhXSU5ET1dTKQorICAgIEhBTkRMRSBoYW5kbGUoKSBjb25zdCB7
IHJldHVybiBtX2hhbmRsZTsgfQorI2VuZGlmCisKICAgICAvLyBSZXR1cm4gdGhlIHN5c3RlbSBw
YWdlIHNpemUgaW4gYnl0ZXMuCiAgICAgc3RhdGljIHVuc2lnbmVkIHN5c3RlbVBhZ2VTaXplKCk7
CiAKQEAgLTExOSw5ICsxMjksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1dyYXBwaW5nTWFw
IHsgZmFsc2UgfTsKICNlbGlmIE9TKERBUldJTikKICAgICBtYWNoX3BvcnRfdCBtX3BvcnQ7Cisj
ZWxpZiBPUyhXSU5ET1dTKQorICAgIEhBTkRMRSBtX2hhbmRsZTsKICNlbmRpZgogfTsKIAogfTsK
LQotI2VuZGlmIC8vIFNoYXJlZE1lbW9yeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAz
NTcxNmM4Li4xMjVlZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTE3LDYgKzE3LDEw
IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2luL05l
dHdvcmtQcm9jZXNzTWFpbldpbi5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy93aW4vU3lzdGVtUHJv
eHlXaW4uY3BwCiAKKyAgICBQbGF0Zm9ybS93aW4vTG9nZ2luZ1dpbi5jcHAKKyAgICBQbGF0Zm9y
bS93aW4vTW9kdWxlV2luLmNwcAorICAgIFBsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3Bw
CisKICAgICBTdG9yYWdlUHJvY2Vzcy93aW4vU3RvcmFnZVByb2Nlc3NNYWluV2luLmNwcAogCiAg
ICAgV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc01haW5XaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vd2luL0xvZ2dpbmdXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjkzZjBhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3dp
bi9Mb2dnaW5nV2luLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKKyNpZiAhTE9HX0RJU0FCTEVE
IHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kworc3RhdGljIGNoYXIqIGNvbnN0IGxvZ2dpbmdFbnZpcm9ubWVudFZhcmlhYmxlID0gIldlYktp
dExvZ2dpbmciOworCitTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQoreworICAgIERXT1JEIGxlbmd0
aCA9IEdldEVudmlyb25tZW50VmFyaWFibGVBKGxvZ2dpbmdFbnZpcm9ubWVudFZhcmlhYmxlLCAw
LCAwKTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisK
KyAgICBhdXRvIGJ1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8Y2hhcltdPihsZW5ndGgpOworCisg
ICAgaWYgKCFHZXRFbnZpcm9ubWVudFZhcmlhYmxlQShsb2dnaW5nRW52aXJvbm1lbnRWYXJpYWJs
ZSwgYnVmZmVyLmdldCgpLCBsZW5ndGgpKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
KworICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS93aW4vTW9kdWxlV2luLmNwcCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vd2luL01vZHVsZVdpbi5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMTJjZDFjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vd2luL01vZHVsZVdpbi5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlLmgiCisKKyNp
bmNsdWRlIDxzaGx3YXBpLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworYm9vbCBNb2R1bGU6OmxvYWQoKQoreworICAgIEFTU0VSVCghOjpQ
YXRoSXNSZWxhdGl2ZVcobV9wYXRoLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0
YSgpKSk7CisgICAgbV9tb2R1bGUgPSA6OkxvYWRMaWJyYXJ5RXhXKG1fcGF0aC5jaGFyYWN0ZXJz
V2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgMCwgTE9BRF9XSVRIX0FMVEVSRURfU0VBUkNI
X1BBVEgpOworICAgIHJldHVybiBtX21vZHVsZTsKK30KKwordm9pZCBNb2R1bGU6OnVubG9hZCgp
Cit7CisgICAgaWYgKCFtX21vZHVsZSkKKyAgICAgICAgcmV0dXJuOworICAgIDo6RnJlZUxpYnJh
cnkobV9tb2R1bGUpOworICAgIG1fbW9kdWxlID0gMDsKK30KKwordm9pZCogTW9kdWxlOjpwbGF0
Zm9ybUZ1bmN0aW9uUG9pbnRlcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX21vZHVsZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDo6R2V0UHJv
Y0FkZHJlc3MobV9tb2R1bGUsIGZ1bmN0aW9uTmFtZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjZkZDVjZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwCkBAIC0wLDAgKzEsMjQxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKworI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU2hhcmVkTWVtb3J5OjpI
YW5kbGU6OkhhbmRsZSgpCisgICAgOiBtX2hhbmRsZSgwKQorICAgICwgbV9zaXplKDApCit7Cit9
CisKK1NoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKCkKK3sKKyAgICBjbGVhcigpOworfQor
Citib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVy
biAhbV9oYW5kbGU7Cit9CisKK3ZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9zaXplKTsKKworICAgIC8vIEhhbmQgb2ZmIG93bmVyc2hpcCBvZiBvdXIgSEFO
RExFIHRvIHRoZSByZWNlaXZpbmcgcHJvY2Vzcy4gSXQgd2lsbCBjbG9zZSBpdCBmb3IgdXMuCisg
ICAgLy8gRklYTUU6IElmIHRoZSByZWNlaXZpbmcgcHJvY2VzcyBjcmFzaGVzIGJlZm9yZSBpdCBy
ZWNlaXZlcyB0aGUgbWVtb3J5LCB0aGUgbWVtb3J5IHdpbGwgYmUKKyAgICAvLyBsZWFrZWQuIFNl
ZSA8aHR0cDovL3dlYmtpdC5vcmcvYi80NzUwMj4uCisgICAgZW5jb2RlciA8PCByZWludGVycHJl
dF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSAwOworCisgICAgLy8g
U2VuZCBhbG9uZyBvdXIgUElEIHNvIHRoYXQgdGhlIHJlY2VpdmluZyBwcm9jZXNzIGNhbiBkdXBs
aWNhdGUgdGhlIEhBTkRMRSBmb3IgaXRzIG93biB1c2UuCisgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oOjpHZXRDdXJyZW50UHJvY2Vzc0lkKCkpOworfQorCit2b2lkIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjpjbGVhcigpCit7CisgICAgaWYgKCFtX2hhbmRsZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgOjpDbG9zZUhhbmRsZShtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSAw
OworfQorCitzdGF0aWMgYm9vbCBnZXREdXBsaWNhdGVkSGFuZGxlKEhBTkRMRSBzb3VyY2VIYW5k
bGUsIERXT1JEIHNvdXJjZVBJRCwgSEFORExFJiBkdXBsaWNhdGVkSGFuZGxlKQoreworICAgIGR1
cGxpY2F0ZWRIYW5kbGUgPSAwOworICAgIGlmICghc291cmNlSGFuZGxlKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIEhBTkRMRSBzb3VyY2VQcm9jZXNzID0gOjpPcGVuUHJvY2VzcyhQUk9D
RVNTX0RVUF9IQU5ETEUsIEZBTFNFLCBzb3VyY2VQSUQpOworICAgIGlmICghc291cmNlUHJvY2Vz
cykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQ29weSB0aGUgaGFuZGxlIGludG8g
b3VyIHByb2Nlc3MgYW5kIGNsb3NlIHRoZSBoYW5kbGUgdGhhdCB0aGUgc2VuZGluZyBwcm9jZXNz
IGNyZWF0ZWQgZm9yIHVzLgorICAgIEJPT0wgc3VjY2VzcyA9IDo6RHVwbGljYXRlSGFuZGxlKHNv
dXJjZVByb2Nlc3MsIHNvdXJjZUhhbmRsZSwgOjpHZXRDdXJyZW50UHJvY2VzcygpLCAmZHVwbGlj
YXRlZEhhbmRsZSwgMCwgRkFMU0UsIERVUExJQ0FURV9TQU1FX0FDQ0VTUyB8IERVUExJQ0FURV9D
TE9TRV9TT1VSQ0UpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uoc3VjY2VzcywgIjo6RHVwbGlj
YXRlSGFuZGxlIGZhaWxlZCB3aXRoIGVycm9yICVsdSIsIDo6R2V0TGFzdEVycm9yKCkpOworCisg
ICAgOjpDbG9zZUhhbmRsZShzb3VyY2VQcm9jZXNzKTsKKworICAgIHJldHVybiBzdWNjZXNzOwor
fQorCitib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBBU1NFUlRfQVJHKGhhbmRsZSwgIWhhbmRsZS5t
X2hhbmRsZSk7CisgICAgQVNTRVJUX0FSRyhoYW5kbGUsICFoYW5kbGUubV9zaXplKTsKKworICAg
IHVpbnQ2NF90IHNpemU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgdWludDY0X3Qgc291cmNlSGFuZGxlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc291cmNlSGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
dWludDMyX3Qgc291cmNlUElEOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc291cmNlUElEKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSEFORExFIGR1cGxpY2F0ZWRIYW5kbGU7Cisg
ICAgaWYgKCFnZXREdXBsaWNhdGVkSGFuZGxlKHJlaW50ZXJwcmV0X2Nhc3Q8SEFORExFPihzb3Vy
Y2VIYW5kbGUpLCBzb3VyY2VQSUQsIGR1cGxpY2F0ZWRIYW5kbGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBoYW5kbGUubV9oYW5kbGUgPSBkdXBsaWNhdGVkSGFuZGxlOworICAgIGhh
bmRsZS5tX3NpemUgPSBzaXplOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgRFdPUkQg
cHJvdGVjdEF0dHJpYnV0ZShTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKK3sK
KyAgICBzd2l0Y2ggKHByb3RlY3Rpb24pIHsKKyAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHk6CisgICAgICAgIHJldHVybiBQQUdFX1JFQURPTkxZOworICAgIGNhc2Ug
U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGU6CisgICAgICAgIHJldHVybiBQQUdF
X1JFQURXUklURTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjphbGxvY2F0ZShz
aXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gU2hhcmVkTWVtb3J5OjpjcmVhdGUobnVsbHB0ciwg
c2l6ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworfQorCitSZWZQdHI8
U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qg
c2l6ZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAgIEhBTkRMRSBoYW5kbGUgPSA6OkNy
ZWF0ZUZpbGVNYXBwaW5nVyhJTlZBTElEX0hBTkRMRV9WQUxVRSwgMCwgcHJvdGVjdEF0dHJpYnV0
ZShwcm90ZWN0aW9uKSwgMCwgc2l6ZSwgMCk7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgdm9pZCogYmFzZUFkZHJlc3MgPSA6Ok1hcFZpZXdPZkZpbGVF
eChoYW5kbGUsIEZJTEVfTUFQX0FMTF9BQ0NFU1MsIDAsIDAsIHNpemUsIGFkZHJlc3MpOworICAg
IGlmICghYmFzZUFkZHJlc3MpIHsKKyAgICAgICAgOjpDbG9zZUhhbmRsZShoYW5kbGUpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBt
ZW1vcnkgPSBhZG9wdFJlZihuZXcgU2hhcmVkTWVtb3J5KTsKKyAgICBtZW1vcnktPm1fc2l6ZSA9
IHNpemU7CisgICAgbWVtb3J5LT5tX2RhdGEgPSBiYXNlQWRkcmVzczsKKyAgICBtZW1vcnktPm1f
aGFuZGxlID0gaGFuZGxlOworCisgICAgcmV0dXJuIG1lbW9yeTsKK30KKworc3RhdGljIERXT1JE
IGFjY2Vzc1JpZ2h0cyhTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKK3sKKyAg
ICBzd2l0Y2ggKHByb3RlY3Rpb24pIHsKKyAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHk6CisgICAgICAgIHJldHVybiBGSUxFX01BUF9SRUFEOworICAgIGNhc2UgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGU6CisgICAgICAgIHJldHVybiBGSUxFX01B
UF9SRUFEIHwgRklMRV9NQVBfV1JJVEU7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9y
eTo6bWFwKGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7Cisg
ICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5ID0gYWRvcHQoaGFuZGxlLm1faGFuZGxlLCBo
YW5kbGUubV9zaXplLCBwcm90ZWN0aW9uKTsKKyAgICBpZiAoIW1lbW9yeSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICAvLyBUaGUgU2hhcmVkTWVtb3J5IG9iamVjdCBub3cgb3ducyB0
aGUgSEFORExFLgorICAgIGhhbmRsZS5tX2hhbmRsZSA9IDA7CisKKyAgICByZXR1cm4gbWVtb3J5
OworfQorCitSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmFkb3B0KEhBTkRMRSBo
YW5kbGUsIHNpemVfdCBzaXplLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgaWYgKCFo
YW5kbGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgRFdPUkQgZGVzaXJlZEFjY2Vz
cyA9IGFjY2Vzc1JpZ2h0cyhwcm90ZWN0aW9uKTsKKworICAgIHZvaWQqIGJhc2VBZGRyZXNzID0g
OjpNYXBWaWV3T2ZGaWxlKGhhbmRsZSwgZGVzaXJlZEFjY2VzcywgMCwgMCwgc2l6ZSk7CisgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShiYXNlQWRkcmVzcywgIjo6TWFwVmlld09mRmlsZSBmYWlsZWQg
d2l0aCBlcnJvciAlbHUiLCA6OkdldExhc3RFcnJvcigpKTsKKyAgICBpZiAoIWJhc2VBZGRyZXNz
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1l
bW9yeSA9IGFkb3B0UmVmKG5ldyBTaGFyZWRNZW1vcnkpOworICAgIG1lbW9yeS0+bV9zaXplID0g
c2l6ZTsKKyAgICBtZW1vcnktPm1fZGF0YSA9IGJhc2VBZGRyZXNzOworICAgIG1lbW9yeS0+bV9o
YW5kbGUgPSBoYW5kbGU7CisKKyAgICByZXR1cm4gbWVtb3J5OworfQorCitTaGFyZWRNZW1vcnk6
On5TaGFyZWRNZW1vcnkoKQoreworICAgIEFTU0VSVChtX2RhdGEpOworICAgIEFTU0VSVChtX2hh
bmRsZSk7CisKKyAgICA6OlVubWFwVmlld09mRmlsZShtX2RhdGEpOworICAgIDo6Q2xvc2VIYW5k
bGUobV9oYW5kbGUpOworfQorCitib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRs
ZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgQVNTRVJUX0FSRyhoYW5k
bGUsICFoYW5kbGUubV9oYW5kbGUpOworICAgIEFTU0VSVF9BUkcoaGFuZGxlLCAhaGFuZGxlLm1f
c2l6ZSk7CisKKyAgICBIQU5ETEUgcHJvY2Vzc0hhbmRsZSA9IDo6R2V0Q3VycmVudFByb2Nlc3Mo
KTsKKworICAgIEhBTkRMRSBkdXBsaWNhdGVkSGFuZGxlOworICAgIGlmICghOjpEdXBsaWNhdGVI
YW5kbGUocHJvY2Vzc0hhbmRsZSwgbV9oYW5kbGUsIHByb2Nlc3NIYW5kbGUsICZkdXBsaWNhdGVk
SGFuZGxlLCBhY2Nlc3NSaWdodHMocHJvdGVjdGlvbiksIEZBTFNFLCAwKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaGFuZGxlLm1faGFuZGxlID0gZHVwbGljYXRlZEhhbmRsZTsKKyAg
ICBoYW5kbGUubV9zaXplID0gbV9zaXplOworICAgIHJldHVybiB0cnVlOworfQorCit1bnNpZ25l
ZCBTaGFyZWRNZW1vcnk6OnN5c3RlbVBhZ2VTaXplKCkKK3sKKyAgICBzdGF0aWMgdW5zaWduZWQg
cGFnZVNpemUgPSAwOworCisgICAgaWYgKCFwYWdlU2l6ZSkgeworICAgICAgICBTWVNURU1fSU5G
TyBzeXN0ZW1JbmZvOworICAgICAgICA6OkdldFN5c3RlbUluZm8oJnN5c3RlbUluZm8pOworICAg
ICAgICBwYWdlU2l6ZSA9IHN5c3RlbUluZm8uZHdQYWdlU2l6ZTsKKyAgICB9CisKKyAgICByZXR1
cm4gcGFnZVNpemU7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323641</attachid>
            <date>2017-10-12 23:11:02 -0700</date>
            <delta_ts>2017-10-13 09:13:22 -0700</delta_ts>
            <desc>[PATCH] WebKit platform files for wincairo webkit</desc>
            <filename>bz178000-2.patch</filename>
            <type>text/plain</type>
            <size>16858</size>
            <attacher name="Yousuke Kimoto">Yousuke.Kimoto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZTY1Zjk3MC4uMGVkZTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAor
MjAxNy0xMC0xMiAgWW91c3VrZSBLaW1vdG8gIDx5b3VzdWtlLmtpbW90b0Bzb255LmNvbT4KKwor
ICAgICAgICBbV2luQ2Fpcm9dIEFkZCBXZWJLaXQgcGxhdGZvcm0gZmlsZXMgZm9yIHdpbmNhaXJv
IHdlYmtpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc4MDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9Nb2R1bGUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaDoK
KyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpoYW5kbGUgY29uc3QpOgorICAgICAgICAq
IFBsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcDogQWRkZWQuIEl0IGlzIGJhc2VkIG9uIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcAorICAgICAgICAoV2ViS2l0Ojps
b2dMZXZlbFN0cmluZyk6CisgICAgICAgICogUGxhdGZvcm0vd2luL01vZHVsZVdpbi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpNb2R1bGU6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpN
b2R1bGU6OnVubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok1vZHVsZTo6cGxhdGZvcm1GdW5jdGlv
blBvaW50ZXIgY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OkhhbmRs
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0
OjpnZXREdXBsaWNhdGVkSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OnByb3RlY3RBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKToKKyAgICAgICAgKFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjphY2Nlc3NSaWdodHMpOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6Om1hcCk6CisgICAgICAgIChXZWJLaXQ6OlNo
YXJlZE1lbW9yeTo6YWRvcHQpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFy
ZWRNZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUpOgorICAgICAg
ICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE3LTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGlu
Y2x1ZGVzIGluIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Nb2R1
bGUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTW9kdWxlLmgKaW5kZXggNzU0MDc5Mi4uOTAz
MjhiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Nb2R1bGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL01vZHVsZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjQsNyBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgTW9kdWxlX2gKLSNkZWZpbmUg
TW9kdWxlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC02NCw2ICs2NCw5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCogcGxhdGZvcm1GdW5jdGlvblBvaW50ZXIoY29uc3QgY2hhciogZnVuY3Rpb25O
YW1lKSBjb25zdDsKIAogICAgIFN0cmluZyBtX3BhdGg7CisjaWYgUExBVEZPUk0oV0lOKQorICAg
IEhNT0RVTEUgbV9tb2R1bGU7CisjZW5kaWYKICNpZiBVU0UoQ0YpCiAgICAgUmV0YWluUHRyPENG
QnVuZGxlUmVmPiBtX2J1bmRsZTsKICNpZiAhZGVmaW5lZChfX0xQNjRfXykKQEAgLTgwLDUgKzgz
LDMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlPiBGdW5jdGlvblR5cGUgTW9kdWxl
OjpmdW5jdGlvblBvaW50ZXIoY29uc3QgY2hhcioKIH0KIAogfQotCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCmluZGV4IDA4NDIxYWUuLmM3MmUwZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzI0LDcgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNoYXJlZE1lbW9yeV9oCi0jZGVm
aW5lIFNoYXJlZE1lbW9yeV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03OSw2ICs3OSw5IEBAIHB1Ymxp
YzoKICNlbGlmIE9TKERBUldJTikKICAgICAgICAgbXV0YWJsZSBtYWNoX3BvcnRfdCBtX3BvcnQ7
CiAgICAgICAgIHNpemVfdCBtX3NpemU7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBtdXRh
YmxlIEhBTkRMRSBtX2hhbmRsZTsKKyAgICAgICAgc2l6ZV90IG1fc2l6ZTsKICNlbmRpZgogICAg
IH07CiAKQEAgLTg4LDYgKzkxLDkgQEAgcHVibGljOgogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NL
RVRTKQogICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiB3cmFwTWFwKHZvaWQqLCBzaXpl
X3QsIGludCBmaWxlRGVzY3JpcHRvcik7CiAjZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorICAgIHN0
YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiBhZG9wdChIQU5ETEUsIHNpemVfdCwgUHJvdGVjdGlv
bik7CisjZW5kaWYKIAogICAgIH5TaGFyZWRNZW1vcnkoKTsKIApAQCAtMTAwLDYgKzEwNiwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2RhdGE7CiAgICAgfQogCisjaWYgT1MoV0lORE9X
UykKKyAgICBIQU5ETEUgaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGU7IH0KKyNlbmRp
ZgorCiAgICAgLy8gUmV0dXJuIHRoZSBzeXN0ZW0gcGFnZSBzaXplIGluIGJ5dGVzLgogICAgIHN0
YXRpYyB1bnNpZ25lZCBzeXN0ZW1QYWdlU2l6ZSgpOwogCkBAIC0xMTksOSArMTI5LDkgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNXcmFwcGluZ01hcCB7IGZhbHNlIH07CiAjZWxpZiBPUyhEQVJX
SU4pCiAgICAgbWFjaF9wb3J0X3QgbV9wb3J0OworI2VsaWYgT1MoV0lORE9XUykKKyAgICBIQU5E
TEUgbV9oYW5kbGU7CiAjZW5kaWYKIH07CiAKIH07Ci0KLSNlbmRpZiAvLyBTaGFyZWRNZW1vcnlf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggYzFjOTEwMDQuLjRmOWRhNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybVdpbi5jbWFrZQpAQCAtMjEsNiArMjEsMTAgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NP
VVJDRVMKIAogICAgIFNoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCiAK
KyAgICBQbGF0Zm9ybS93aW4vTG9nZ2luZ1dpbi5jcHAKKyAgICBQbGF0Zm9ybS93aW4vTW9kdWxl
V2luLmNwcAorICAgIFBsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwCisKICAgICBTdG9y
YWdlUHJvY2Vzcy93aW4vU3RvcmFnZVByb2Nlc3NNYWluV2luLmNwcAogCiAgICAgV2ViUHJvY2Vz
cy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vd2luL0xvZ2dpbmdXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjZkZTFiYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3dp
bi9Mb2dnaW5nV2luLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCisjaWYgIUxPR19ESVNB
QkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKworI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0YXRpYyBjaGFyKiBjb25zdCBsb2dnaW5nRW52aXJvbm1lbnRWYXJpYWJsZSA9ICJX
ZWJLaXRMb2dnaW5nIjsKKworU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkKK3sKKyAgICBEV09SRCBs
ZW5ndGggPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlQShsb2dnaW5nRW52aXJvbm1lbnRWYXJpYWJs
ZSwgMCwgMCk7CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OworCisgICAgYXV0byBidWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPGNoYXJbXT4obGVuZ3RoKTsK
KworICAgIGlmICghR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEobG9nZ2luZ0Vudmlyb25tZW50VmFy
aWFibGUsIGJ1ZmZlci5nZXQoKSwgbGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7CisKKyAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5nZXQoKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vd2luL01vZHVsZVdpbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3dpbi9Nb2R1bGVXaW4uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlZmJjMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3dpbi9Nb2R1bGVXaW4uY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2R1bGUuaCIKKwor
I2luY2x1ZGUgPHNobHdhcGkuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitib29sIE1vZHVsZTo6bG9hZCgpCit7CisgICAgQVNTRVJUKCE6
OlBhdGhJc1JlbGF0aXZlVyhtX3BhdGguY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKS5k
YXRhKCkpKTsKKyAgICBtX21vZHVsZSA9IDo6TG9hZExpYnJhcnlFeFcobV9wYXRoLmNoYXJhY3Rl
cnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0YSgpLCAwLCBMT0FEX1dJVEhfQUxURVJFRF9TRUFS
Q0hfUEFUSCk7CisgICAgcmV0dXJuIG1fbW9kdWxlOworfQorCit2b2lkIE1vZHVsZTo6dW5sb2Fk
KCkKK3sKKyAgICBpZiAoIW1fbW9kdWxlKQorICAgICAgICByZXR1cm47CisgICAgOjpGcmVlTGli
cmFyeShtX21vZHVsZSk7CisgICAgbV9tb2R1bGUgPSAwOworfQorCit2b2lkKiBNb2R1bGU6OnBs
YXRmb3JtRnVuY3Rpb25Qb2ludGVyKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSkgY29uc3QKK3sK
KyAgICBpZiAoIW1fbW9kdWxlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gOjpHZXRQ
cm9jQWRkcmVzcyhtX21vZHVsZSwgZnVuY3Rpb25OYW1lKTsKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS93aW4vU2hhcmVkTWVtb3J5V2luLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMmQzMmMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKQEAgLTAsMCArMSwyNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKKworI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworU2hhcmVkTWVtb3J5OjpI
YW5kbGU6OkhhbmRsZSgpCisgICAgOiBtX2hhbmRsZSgwKQorICAgICwgbV9zaXplKDApCit7Cit9
CisKK1NoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKCkKK3sKKyAgICBjbGVhcigpOworfQor
Citib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVy
biAhbV9oYW5kbGU7Cit9CisKK3ZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4obV9zaXplKTsKKworICAgIC8vIEhhbmQgb2ZmIG93bmVyc2hpcCBvZiBvdXIgSEFO
RExFIHRvIHRoZSByZWNlaXZpbmcgcHJvY2Vzcy4gSXQgd2lsbCBjbG9zZSBpdCBmb3IgdXMuCisg
ICAgLy8gRklYTUU6IElmIHRoZSByZWNlaXZpbmcgcHJvY2VzcyBjcmFzaGVzIGJlZm9yZSBpdCBy
ZWNlaXZlcyB0aGUgbWVtb3J5LCB0aGUgbWVtb3J5IHdpbGwgYmUKKyAgICAvLyBsZWFrZWQuIFNl
ZSA8aHR0cDovL3dlYmtpdC5vcmcvYi80NzUwMj4uCisgICAgZW5jb2RlciA8PCByZWludGVycHJl
dF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSAwOworCisgICAgLy8g
U2VuZCBhbG9uZyBvdXIgUElEIHNvIHRoYXQgdGhlIHJlY2VpdmluZyBwcm9jZXNzIGNhbiBkdXBs
aWNhdGUgdGhlIEhBTkRMRSBmb3IgaXRzIG93biB1c2UuCisgICAgZW5jb2RlciA8PCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oOjpHZXRDdXJyZW50UHJvY2Vzc0lkKCkpOworfQorCit2b2lkIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjpjbGVhcigpCit7CisgICAgaWYgKCFtX2hhbmRsZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgOjpDbG9zZUhhbmRsZShtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSAw
OworfQorCitzdGF0aWMgYm9vbCBnZXREdXBsaWNhdGVkSGFuZGxlKEhBTkRMRSBzb3VyY2VIYW5k
bGUsIERXT1JEIHNvdXJjZVBJRCwgSEFORExFJiBkdXBsaWNhdGVkSGFuZGxlKQoreworICAgIGR1
cGxpY2F0ZWRIYW5kbGUgPSAwOworICAgIGlmICghc291cmNlSGFuZGxlKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIEhBTkRMRSBzb3VyY2VQcm9jZXNzID0gOjpPcGVuUHJvY2VzcyhQUk9D
RVNTX0RVUF9IQU5ETEUsIEZBTFNFLCBzb3VyY2VQSUQpOworICAgIGlmICghc291cmNlUHJvY2Vz
cykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQ29weSB0aGUgaGFuZGxlIGludG8g
b3VyIHByb2Nlc3MgYW5kIGNsb3NlIHRoZSBoYW5kbGUgdGhhdCB0aGUgc2VuZGluZyBwcm9jZXNz
IGNyZWF0ZWQgZm9yIHVzLgorICAgIEJPT0wgc3VjY2VzcyA9IDo6RHVwbGljYXRlSGFuZGxlKHNv
dXJjZVByb2Nlc3MsIHNvdXJjZUhhbmRsZSwgOjpHZXRDdXJyZW50UHJvY2VzcygpLCAmZHVwbGlj
YXRlZEhhbmRsZSwgMCwgRkFMU0UsIERVUExJQ0FURV9TQU1FX0FDQ0VTUyB8IERVUExJQ0FURV9D
TE9TRV9TT1VSQ0UpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uoc3VjY2VzcywgIjo6RHVwbGlj
YXRlSGFuZGxlIGZhaWxlZCB3aXRoIGVycm9yICVsdSIsIDo6R2V0TGFzdEVycm9yKCkpOworCisg
ICAgOjpDbG9zZUhhbmRsZShzb3VyY2VQcm9jZXNzKTsKKworICAgIHJldHVybiBzdWNjZXNzOwor
fQorCitib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBBU1NFUlRfQVJHKGhhbmRsZSwgIWhhbmRsZS5t
X2hhbmRsZSk7CisgICAgQVNTRVJUX0FSRyhoYW5kbGUsICFoYW5kbGUubV9zaXplKTsKKworICAg
IHVpbnQ2NF90IHNpemU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgdWludDY0X3Qgc291cmNlSGFuZGxlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc291cmNlSGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
dWludDMyX3Qgc291cmNlUElEOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc291cmNlUElEKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSEFORExFIGR1cGxpY2F0ZWRIYW5kbGU7Cisg
ICAgaWYgKCFnZXREdXBsaWNhdGVkSGFuZGxlKHJlaW50ZXJwcmV0X2Nhc3Q8SEFORExFPihzb3Vy
Y2VIYW5kbGUpLCBzb3VyY2VQSUQsIGR1cGxpY2F0ZWRIYW5kbGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBoYW5kbGUubV9oYW5kbGUgPSBkdXBsaWNhdGVkSGFuZGxlOworICAgIGhh
bmRsZS5tX3NpemUgPSBzaXplOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgRFdPUkQg
cHJvdGVjdEF0dHJpYnV0ZShTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKK3sK
KyAgICBzd2l0Y2ggKHByb3RlY3Rpb24pIHsKKyAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHk6CisgICAgICAgIHJldHVybiBQQUdFX1JFQURPTkxZOworICAgIGNhc2Ug
U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGU6CisgICAgICAgIHJldHVybiBQQUdF
X1JFQURXUklURTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjphbGxvY2F0ZShz
aXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gU2hhcmVkTWVtb3J5OjpjcmVhdGUobnVsbHB0ciwg
c2l6ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOworfQorCitSZWZQdHI8
U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZSh2b2lkKiBhZGRyZXNzLCBzaXplX3Qg
c2l6ZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAgIEhBTkRMRSBoYW5kbGUgPSA6OkNy
ZWF0ZUZpbGVNYXBwaW5nVyhJTlZBTElEX0hBTkRMRV9WQUxVRSwgMCwgcHJvdGVjdEF0dHJpYnV0
ZShwcm90ZWN0aW9uKSwgMCwgc2l6ZSwgMCk7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgdm9pZCogYmFzZUFkZHJlc3MgPSA6Ok1hcFZpZXdPZkZpbGVF
eChoYW5kbGUsIEZJTEVfTUFQX0FMTF9BQ0NFU1MsIDAsIDAsIHNpemUsIGFkZHJlc3MpOworICAg
IGlmICghYmFzZUFkZHJlc3MpIHsKKyAgICAgICAgOjpDbG9zZUhhbmRsZShoYW5kbGUpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBt
ZW1vcnkgPSBhZG9wdFJlZihuZXcgU2hhcmVkTWVtb3J5KTsKKyAgICBtZW1vcnktPm1fc2l6ZSA9
IHNpemU7CisgICAgbWVtb3J5LT5tX2RhdGEgPSBiYXNlQWRkcmVzczsKKyAgICBtZW1vcnktPm1f
aGFuZGxlID0gaGFuZGxlOworCisgICAgcmV0dXJuIG1lbW9yeTsKK30KKworc3RhdGljIERXT1JE
IGFjY2Vzc1JpZ2h0cyhTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKK3sKKyAg
ICBzd2l0Y2ggKHByb3RlY3Rpb24pIHsKKyAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHk6CisgICAgICAgIHJldHVybiBGSUxFX01BUF9SRUFEOworICAgIGNhc2UgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGU6CisgICAgICAgIHJldHVybiBGSUxFX01B
UF9SRUFEIHwgRklMRV9NQVBfV1JJVEU7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9y
eTo6bWFwKGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7Cisg
ICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5ID0gYWRvcHQoaGFuZGxlLm1faGFuZGxlLCBo
YW5kbGUubV9zaXplLCBwcm90ZWN0aW9uKTsKKyAgICBpZiAoIW1lbW9yeSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICAvLyBUaGUgU2hhcmVkTWVtb3J5IG9iamVjdCBub3cgb3ducyB0
aGUgSEFORExFLgorICAgIGhhbmRsZS5tX2hhbmRsZSA9IDA7CisKKyAgICByZXR1cm4gbWVtb3J5
OworfQorCitSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmFkb3B0KEhBTkRMRSBo
YW5kbGUsIHNpemVfdCBzaXplLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgaWYgKCFo
YW5kbGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgRFdPUkQgZGVzaXJlZEFjY2Vz
cyA9IGFjY2Vzc1JpZ2h0cyhwcm90ZWN0aW9uKTsKKworICAgIHZvaWQqIGJhc2VBZGRyZXNzID0g
OjpNYXBWaWV3T2ZGaWxlKGhhbmRsZSwgZGVzaXJlZEFjY2VzcywgMCwgMCwgc2l6ZSk7CisgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShiYXNlQWRkcmVzcywgIjo6TWFwVmlld09mRmlsZSBmYWlsZWQg
d2l0aCBlcnJvciAlbHUiLCA6OkdldExhc3RFcnJvcigpKTsKKyAgICBpZiAoIWJhc2VBZGRyZXNz
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1l
bW9yeSA9IGFkb3B0UmVmKG5ldyBTaGFyZWRNZW1vcnkpOworICAgIG1lbW9yeS0+bV9zaXplID0g
c2l6ZTsKKyAgICBtZW1vcnktPm1fZGF0YSA9IGJhc2VBZGRyZXNzOworICAgIG1lbW9yeS0+bV9o
YW5kbGUgPSBoYW5kbGU7CisKKyAgICByZXR1cm4gbWVtb3J5OworfQorCitTaGFyZWRNZW1vcnk6
On5TaGFyZWRNZW1vcnkoKQoreworICAgIEFTU0VSVChtX2RhdGEpOworICAgIEFTU0VSVChtX2hh
bmRsZSk7CisKKyAgICA6OlVubWFwVmlld09mRmlsZShtX2RhdGEpOworICAgIDo6Q2xvc2VIYW5k
bGUobV9oYW5kbGUpOworfQorCitib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRs
ZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgQVNTRVJUX0FSRyhoYW5k
bGUsICFoYW5kbGUubV9oYW5kbGUpOworICAgIEFTU0VSVF9BUkcoaGFuZGxlLCAhaGFuZGxlLm1f
c2l6ZSk7CisKKyAgICBIQU5ETEUgcHJvY2Vzc0hhbmRsZSA9IDo6R2V0Q3VycmVudFByb2Nlc3Mo
KTsKKworICAgIEhBTkRMRSBkdXBsaWNhdGVkSGFuZGxlOworICAgIGlmICghOjpEdXBsaWNhdGVI
YW5kbGUocHJvY2Vzc0hhbmRsZSwgbV9oYW5kbGUsIHByb2Nlc3NIYW5kbGUsICZkdXBsaWNhdGVk
SGFuZGxlLCBhY2Nlc3NSaWdodHMocHJvdGVjdGlvbiksIEZBTFNFLCAwKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaGFuZGxlLm1faGFuZGxlID0gZHVwbGljYXRlZEhhbmRsZTsKKyAg
ICBoYW5kbGUubV9zaXplID0gbV9zaXplOworICAgIHJldHVybiB0cnVlOworfQorCit1bnNpZ25l
ZCBTaGFyZWRNZW1vcnk6OnN5c3RlbVBhZ2VTaXplKCkKK3sKKyAgICBzdGF0aWMgdW5zaWduZWQg
cGFnZVNpemUgPSAwOworCisgICAgaWYgKCFwYWdlU2l6ZSkgeworICAgICAgICBTWVNURU1fSU5G
TyBzeXN0ZW1JbmZvOworICAgICAgICA6OkdldFN5c3RlbUluZm8oJnN5c3RlbUluZm8pOworICAg
ICAgICBwYWdlU2l6ZSA9IHN5c3RlbUluZm8uZHdQYWdlU2l6ZTsKKyAgICB9CisKKyAgICByZXR1
cm4gcGFnZVNpemU7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323678</attachid>
            <date>2017-10-13 09:12:29 -0700</date>
            <delta_ts>2017-10-25 11:38:52 -0700</delta_ts>
            <desc>[PATCH] WebKit platform files for wincairo webkit</desc>
            <filename>bz178000-3.patch</filename>
            <type>text/plain</type>
            <size>16907</size>
            <attacher name="Yousuke Kimoto">Yousuke.Kimoto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZTY1Zjk3MC4uMGVkZTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAor
MjAxNy0xMC0xMiAgWW91c3VrZSBLaW1vdG8gIDx5b3VzdWtlLmtpbW90b0Bzb255LmNvbT4KKwor
ICAgICAgICBbV2luQ2Fpcm9dIEFkZCBXZWJLaXQgcGxhdGZvcm0gZmlsZXMgZm9yIHdpbmNhaXJv
IHdlYmtpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc4MDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9Nb2R1bGUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaDoK
KyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpoYW5kbGUgY29uc3QpOgorICAgICAgICAq
IFBsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcDogQWRkZWQuIEl0IGlzIGJhc2VkIG9uIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcAorICAgICAgICAoV2ViS2l0Ojps
b2dMZXZlbFN0cmluZyk6CisgICAgICAgICogUGxhdGZvcm0vd2luL01vZHVsZVdpbi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpNb2R1bGU6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpN
b2R1bGU6OnVubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok1vZHVsZTo6cGxhdGZvcm1GdW5jdGlv
blBvaW50ZXIgY29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OkhhbmRs
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0
OjpnZXREdXBsaWNhdGVkSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OnByb3RlY3RBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKToKKyAgICAgICAgKFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjphY2Nlc3NSaWdodHMpOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6Om1hcCk6CisgICAgICAgIChXZWJLaXQ6OlNo
YXJlZE1lbW9yeTo6YWRvcHQpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFy
ZWRNZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUpOgorICAgICAg
ICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE3LTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGlu
Y2x1ZGVzIGluIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Nb2R1
bGUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTW9kdWxlLmgKaW5kZXggNzU0MDc5Mi4uOTAz
MjhiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Nb2R1bGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL01vZHVsZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjQsNyBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgTW9kdWxlX2gKLSNkZWZpbmUg
TW9kdWxlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC02NCw2ICs2NCw5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCogcGxhdGZvcm1GdW5jdGlvblBvaW50ZXIoY29uc3QgY2hhciogZnVuY3Rpb25O
YW1lKSBjb25zdDsKIAogICAgIFN0cmluZyBtX3BhdGg7CisjaWYgUExBVEZPUk0oV0lOKQorICAg
IEhNT0RVTEUgbV9tb2R1bGU7CisjZW5kaWYKICNpZiBVU0UoQ0YpCiAgICAgUmV0YWluUHRyPENG
QnVuZGxlUmVmPiBtX2J1bmRsZTsKICNpZiAhZGVmaW5lZChfX0xQNjRfXykKQEAgLTgwLDUgKzgz
LDMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlPiBGdW5jdGlvblR5cGUgTW9kdWxl
OjpmdW5jdGlvblBvaW50ZXIoY29uc3QgY2hhcioKIH0KIAogfQotCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCmluZGV4IDA4NDIxYWUuLmM3MmUwZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzI0LDcgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNoYXJlZE1lbW9yeV9oCi0jZGVm
aW5lIFNoYXJlZE1lbW9yeV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03OSw2ICs3OSw5IEBAIHB1Ymxp
YzoKICNlbGlmIE9TKERBUldJTikKICAgICAgICAgbXV0YWJsZSBtYWNoX3BvcnRfdCBtX3BvcnQ7
CiAgICAgICAgIHNpemVfdCBtX3NpemU7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBtdXRh
YmxlIEhBTkRMRSBtX2hhbmRsZTsKKyAgICAgICAgc2l6ZV90IG1fc2l6ZTsKICNlbmRpZgogICAg
IH07CiAKQEAgLTg4LDYgKzkxLDkgQEAgcHVibGljOgogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NL
RVRTKQogICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiB3cmFwTWFwKHZvaWQqLCBzaXpl
X3QsIGludCBmaWxlRGVzY3JpcHRvcik7CiAjZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorICAgIHN0
YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiBhZG9wdChIQU5ETEUsIHNpemVfdCwgUHJvdGVjdGlv
bik7CisjZW5kaWYKIAogICAgIH5TaGFyZWRNZW1vcnkoKTsKIApAQCAtMTAwLDYgKzEwNiwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2RhdGE7CiAgICAgfQogCisjaWYgT1MoV0lORE9X
UykKKyAgICBIQU5ETEUgaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGU7IH0KKyNlbmRp
ZgorCiAgICAgLy8gUmV0dXJuIHRoZSBzeXN0ZW0gcGFnZSBzaXplIGluIGJ5dGVzLgogICAgIHN0
YXRpYyB1bnNpZ25lZCBzeXN0ZW1QYWdlU2l6ZSgpOwogCkBAIC0xMTksOSArMTI5LDkgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNXcmFwcGluZ01hcCB7IGZhbHNlIH07CiAjZWxpZiBPUyhEQVJX
SU4pCiAgICAgbWFjaF9wb3J0X3QgbV9wb3J0OworI2VsaWYgT1MoV0lORE9XUykKKyAgICBIQU5E
TEUgbV9oYW5kbGU7CiAjZW5kaWYKIH07CiAKIH07Ci0KLSNlbmRpZiAvLyBTaGFyZWRNZW1vcnlf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggYzFjOTEwMDQuLjYxNzZhMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTcsNiArMTcsMTAgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NP
VVJDRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93aW4vTmV0d29ya1Byb2Nlc3NNYWluV2luLmNwcAog
ICAgIE5ldHdvcmtQcm9jZXNzL3dpbi9TeXN0ZW1Qcm94eVdpbi5jcHAKIAorICAgIFBsYXRmb3Jt
L3dpbi9Mb2dnaW5nV2luLmNwcAorICAgIFBsYXRmb3JtL3dpbi9Nb2R1bGVXaW4uY3BwCisgICAg
UGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKKwogICAgIFNoYXJlZC9BdXRoZW50aWNh
dGlvbi9jdXJsL0F1dGhlbnRpY2F0aW9uTWFuYWdlckN1cmwuY3BwCiAKICAgICBTaGFyZWQvY3Vy
bC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS93aW4vTG9nZ2luZ1dpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3dp
bi9Mb2dnaW5nV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGUx
YmFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS93aW4vTG9nZ2lu
Z1dpbi5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
U29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2lmICFMT0dfRElTQUJMRUQgfHwg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dGF0aWMgY2hhciogY29uc3QgbG9nZ2luZ0Vudmlyb25tZW50VmFyaWFibGUgPSAiV2ViS2l0TG9n
Z2luZyI7CisKK1N0cmluZyBsb2dMZXZlbFN0cmluZygpCit7CisgICAgRFdPUkQgbGVuZ3RoID0g
R2V0RW52aXJvbm1lbnRWYXJpYWJsZUEobG9nZ2luZ0Vudmlyb25tZW50VmFyaWFibGUsIDAsIDAp
OworICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKKworICAg
IGF1dG8gYnVmZmVyID0gc3RkOjptYWtlX3VuaXF1ZTxjaGFyW10+KGxlbmd0aCk7CisKKyAgICBp
ZiAoIUdldEVudmlyb25tZW50VmFyaWFibGVBKGxvZ2dpbmdFbnZpcm9ubWVudFZhcmlhYmxlLCBi
dWZmZXIuZ2V0KCksIGxlbmd0aCkpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworCisg
ICAgcmV0dXJuIFN0cmluZyhidWZmZXIuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3dpbi9Nb2R1bGVXaW4uY3BwIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS93aW4vTW9kdWxlV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mZWZiYzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS93aW4vTW9kdWxlV2luLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9kdWxlLmgiCisKKyNpbmNsdWRl
IDxzaGx3YXBpLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworYm9vbCBNb2R1bGU6OmxvYWQoKQoreworICAgIEFTU0VSVCghOjpQYXRoSXNS
ZWxhdGl2ZVcobV9wYXRoLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0YSgpKSk7
CisgICAgbV9tb2R1bGUgPSA6OkxvYWRMaWJyYXJ5RXhXKG1fcGF0aC5jaGFyYWN0ZXJzV2l0aE51
bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgMCwgTE9BRF9XSVRIX0FMVEVSRURfU0VBUkNIX1BBVEgp
OworICAgIHJldHVybiBtX21vZHVsZTsKK30KKwordm9pZCBNb2R1bGU6OnVubG9hZCgpCit7Cisg
ICAgaWYgKCFtX21vZHVsZSkKKyAgICAgICAgcmV0dXJuOworICAgIDo6RnJlZUxpYnJhcnkobV9t
b2R1bGUpOworICAgIG1fbW9kdWxlID0gMDsKK30KKwordm9pZCogTW9kdWxlOjpwbGF0Zm9ybUZ1
bmN0aW9uUG9pbnRlcihjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpIGNvbnN0Cit7CisgICAgaWYg
KCFtX21vZHVsZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDo6R2V0UHJvY0FkZHJl
c3MobV9tb2R1bGUsIGZ1bmN0aW9uTmFtZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjJkMzJjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwCkBAIC0wLDAgKzEsMjQyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNyBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisKKyNp
bmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NoYXJlZE1lbW9yeTo6SGFuZGxlOjpI
YW5kbGUoKQorICAgIDogbV9oYW5kbGUoMCkKKyAgICAsIG1fc2l6ZSgwKQoreworfQorCitTaGFy
ZWRNZW1vcnk6OkhhbmRsZTo6fkhhbmRsZSgpCit7CisgICAgY2xlYXIoKTsKK30KKworYm9vbCBT
aGFyZWRNZW1vcnk6OkhhbmRsZTo6aXNOdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1faGFu
ZGxlOworfQorCit2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG1fc2l6ZSk7CisKKyAgICAvLyBIYW5kIG9mZiBvd25lcnNoaXAgb2Ygb3VyIEhBTkRMRSB0byB0
aGUgcmVjZWl2aW5nIHByb2Nlc3MuIEl0IHdpbGwgY2xvc2UgaXQgZm9yIHVzLgorICAgIC8vIEZJ
WE1FOiBJZiB0aGUgcmVjZWl2aW5nIHByb2Nlc3MgY3Jhc2hlcyBiZWZvcmUgaXQgcmVjZWl2ZXMg
dGhlIG1lbW9yeSwgdGhlIG1lbW9yeSB3aWxsIGJlCisgICAgLy8gbGVha2VkLiBTZWUgPGh0dHA6
Ly93ZWJraXQub3JnL2IvNDc1MDI+LgorICAgIGVuY29kZXIgPDwgcmVpbnRlcnByZXRfY2FzdDx1
aW50NjRfdD4obV9oYW5kbGUpOworICAgIG1faGFuZGxlID0gMDsKKworICAgIC8vIFNlbmQgYWxv
bmcgb3VyIFBJRCBzbyB0aGF0IHRoZSByZWNlaXZpbmcgcHJvY2VzcyBjYW4gZHVwbGljYXRlIHRo
ZSBIQU5ETEUgZm9yIGl0cyBvd24gdXNlLgorICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KDo6R2V0Q3VycmVudFByb2Nlc3NJZCgpKTsKK30KKwordm9pZCBTaGFyZWRNZW1vcnk6
OkhhbmRsZTo6Y2xlYXIoKQoreworICAgIGlmICghbV9oYW5kbGUpCisgICAgICAgIHJldHVybjsK
KworICAgIDo6Q2xvc2VIYW5kbGUobV9oYW5kbGUpOworICAgIG1faGFuZGxlID0gMDsKK30KKwor
c3RhdGljIGJvb2wgZ2V0RHVwbGljYXRlZEhhbmRsZShIQU5ETEUgc291cmNlSGFuZGxlLCBEV09S
RCBzb3VyY2VQSUQsIEhBTkRMRSYgZHVwbGljYXRlZEhhbmRsZSkKK3sKKyAgICBkdXBsaWNhdGVk
SGFuZGxlID0gMDsKKyAgICBpZiAoIXNvdXJjZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICBIQU5ETEUgc291cmNlUHJvY2VzcyA9IDo6T3BlblByb2Nlc3MoUFJPQ0VTU19EVVBf
SEFORExFLCBGQUxTRSwgc291cmNlUElEKTsKKyAgICBpZiAoIXNvdXJjZVByb2Nlc3MpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIENvcHkgdGhlIGhhbmRsZSBpbnRvIG91ciBwcm9j
ZXNzIGFuZCBjbG9zZSB0aGUgaGFuZGxlIHRoYXQgdGhlIHNlbmRpbmcgcHJvY2VzcyBjcmVhdGVk
IGZvciB1cy4KKyAgICBCT09MIHN1Y2Nlc3MgPSA6OkR1cGxpY2F0ZUhhbmRsZShzb3VyY2VQcm9j
ZXNzLCBzb3VyY2VIYW5kbGUsIDo6R2V0Q3VycmVudFByb2Nlc3MoKSwgJmR1cGxpY2F0ZWRIYW5k
bGUsIDAsIEZBTFNFLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MgfCBEVVBMSUNBVEVfQ0xPU0VfU09V
UkNFKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHN1Y2Nlc3MsICI6OkR1cGxpY2F0ZUhhbmRs
ZSBmYWlsZWQgd2l0aCBlcnJvciAlbHUiLCA6OkdldExhc3RFcnJvcigpKTsKKworICAgIDo6Q2xv
c2VIYW5kbGUoc291cmNlUHJvY2Vzcyk7CisKKyAgICByZXR1cm4gc3VjY2VzczsKK30KKworYm9v
bCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSGFu
ZGxlJiBoYW5kbGUpCit7CisgICAgQVNTRVJUX0FSRyhoYW5kbGUsICFoYW5kbGUubV9oYW5kbGUp
OworICAgIEFTU0VSVF9BUkcoaGFuZGxlLCAhaGFuZGxlLm1fc2l6ZSk7CisKKyAgICB1aW50NjRf
dCBzaXplOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHVpbnQ2NF90IHNvdXJjZUhhbmRsZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHNvdXJjZUhhbmRsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHVpbnQzMl90
IHNvdXJjZVBJRDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNvdXJjZVBJRCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIEhBTkRMRSBkdXBsaWNhdGVkSGFuZGxlOworICAgIGlmICgh
Z2V0RHVwbGljYXRlZEhhbmRsZShyZWludGVycHJldF9jYXN0PEhBTkRMRT4oc291cmNlSGFuZGxl
KSwgc291cmNlUElELCBkdXBsaWNhdGVkSGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaGFuZGxlLm1faGFuZGxlID0gZHVwbGljYXRlZEhhbmRsZTsKKyAgICBoYW5kbGUubV9z
aXplID0gc2l6ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIERXT1JEIHByb3RlY3RB
dHRyaWJ1dGUoU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgc3dp
dGNoIChwcm90ZWN0aW9uKSB7CisgICAgY2FzZSBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5OgorICAgICAgICByZXR1cm4gUEFHRV9SRUFET05MWTsKKyAgICBjYXNlIFNoYXJlZE1l
bW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlOgorICAgICAgICByZXR1cm4gUEFHRV9SRUFEV1JJ
VEU7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9
CisKK1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoc2l6ZV90IHNp
emUpCit7CisgICAgcmV0dXJuIFNoYXJlZE1lbW9yeTo6Y3JlYXRlKG51bGxwdHIsIHNpemUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlKTsKK30KKworUmVmUHRyPFNoYXJlZE1l
bW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUodm9pZCogYWRkcmVzcywgc2l6ZV90IHNpemUsIFBy
b3RlY3Rpb24gcHJvdGVjdGlvbikKK3sKKyAgICBIQU5ETEUgaGFuZGxlID0gOjpDcmVhdGVGaWxl
TWFwcGluZ1coSU5WQUxJRF9IQU5ETEVfVkFMVUUsIDAsIHByb3RlY3RBdHRyaWJ1dGUocHJvdGVj
dGlvbiksIDAsIHNpemUsIDApOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIHZvaWQqIGJhc2VBZGRyZXNzID0gOjpNYXBWaWV3T2ZGaWxlRXgoaGFuZGxl
LCBGSUxFX01BUF9BTExfQUNDRVNTLCAwLCAwLCBzaXplLCBhZGRyZXNzKTsKKyAgICBpZiAoIWJh
c2VBZGRyZXNzKSB7CisgICAgICAgIDo6Q2xvc2VIYW5kbGUoaGFuZGxlKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5ID0g
YWRvcHRSZWYobmV3IFNoYXJlZE1lbW9yeSk7CisgICAgbWVtb3J5LT5tX3NpemUgPSBzaXplOwor
ICAgIG1lbW9yeS0+bV9kYXRhID0gYmFzZUFkZHJlc3M7CisgICAgbWVtb3J5LT5tX2hhbmRsZSA9
IGhhbmRsZTsKKworICAgIHJldHVybiBtZW1vcnk7Cit9CisKK3N0YXRpYyBEV09SRCBhY2Nlc3NS
aWdodHMoU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgc3dpdGNo
IChwcm90ZWN0aW9uKSB7CisgICAgY2FzZSBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5OgorICAgICAgICByZXR1cm4gRklMRV9NQVBfUkVBRDsKKyAgICBjYXNlIFNoYXJlZE1lbW9y
eTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlOgorICAgICAgICByZXR1cm4gRklMRV9NQVBfUkVBRCB8
IEZJTEVfTUFQX1dSSVRFOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiAwOworfQorCitSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6Om1hcChj
b25zdCBIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAgIFJlZlB0
cjxTaGFyZWRNZW1vcnk+IG1lbW9yeSA9IGFkb3B0KGhhbmRsZS5tX2hhbmRsZSwgaGFuZGxlLm1f
c2l6ZSwgcHJvdGVjdGlvbik7CisgICAgaWYgKCFtZW1vcnkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgLy8gVGhlIFNoYXJlZE1lbW9yeSBvYmplY3Qgbm93IG93bnMgdGhlIEhBTkRM
RS4KKyAgICBoYW5kbGUubV9oYW5kbGUgPSAwOworCisgICAgcmV0dXJuIG1lbW9yeTsKK30KKwor
UmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjphZG9wdChIQU5ETEUgaGFuZGxlLCBz
aXplX3Qgc2l6ZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAgIGlmICghaGFuZGxlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIERXT1JEIGRlc2lyZWRBY2Nlc3MgPSBhY2Nl
c3NSaWdodHMocHJvdGVjdGlvbik7CisKKyAgICB2b2lkKiBiYXNlQWRkcmVzcyA9IDo6TWFwVmll
d09mRmlsZShoYW5kbGUsIGRlc2lyZWRBY2Nlc3MsIDAsIDAsIHNpemUpOworICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoYmFzZUFkZHJlc3MsICI6Ok1hcFZpZXdPZkZpbGUgZmFpbGVkIHdpdGggZXJy
b3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7CisgICAgaWYgKCFiYXNlQWRkcmVzcykKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnkgPSBh
ZG9wdFJlZihuZXcgU2hhcmVkTWVtb3J5KTsKKyAgICBtZW1vcnktPm1fc2l6ZSA9IHNpemU7Cisg
ICAgbWVtb3J5LT5tX2RhdGEgPSBiYXNlQWRkcmVzczsKKyAgICBtZW1vcnktPm1faGFuZGxlID0g
aGFuZGxlOworCisgICAgcmV0dXJuIG1lbW9yeTsKK30KKworU2hhcmVkTWVtb3J5Ojp+U2hhcmVk
TWVtb3J5KCkKK3sKKyAgICBBU1NFUlQobV9kYXRhKTsKKyAgICBBU1NFUlQobV9oYW5kbGUpOwor
CisgICAgOjpVbm1hcFZpZXdPZkZpbGUobV9kYXRhKTsKKyAgICA6OkNsb3NlSGFuZGxlKG1faGFu
ZGxlKTsKK30KKworYm9vbCBTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRs
ZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAgIEFTU0VSVF9BUkcoaGFuZGxlLCAhaGFu
ZGxlLm1faGFuZGxlKTsKKyAgICBBU1NFUlRfQVJHKGhhbmRsZSwgIWhhbmRsZS5tX3NpemUpOwor
CisgICAgSEFORExFIHByb2Nlc3NIYW5kbGUgPSA6OkdldEN1cnJlbnRQcm9jZXNzKCk7CisKKyAg
ICBIQU5ETEUgZHVwbGljYXRlZEhhbmRsZTsKKyAgICBpZiAoITo6RHVwbGljYXRlSGFuZGxlKHBy
b2Nlc3NIYW5kbGUsIG1faGFuZGxlLCBwcm9jZXNzSGFuZGxlLCAmZHVwbGljYXRlZEhhbmRsZSwg
YWNjZXNzUmlnaHRzKHByb3RlY3Rpb24pLCBGQUxTRSwgMCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGhhbmRsZS5tX2hhbmRsZSA9IGR1cGxpY2F0ZWRIYW5kbGU7CisgICAgaGFuZGxl
Lm1fc2l6ZSA9IG1fc2l6ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordW5zaWduZWQgU2hhcmVk
TWVtb3J5OjpzeXN0ZW1QYWdlU2l6ZSgpCit7CisgICAgc3RhdGljIHVuc2lnbmVkIHBhZ2VTaXpl
ID0gMDsKKworICAgIGlmICghcGFnZVNpemUpIHsKKyAgICAgICAgU1lTVEVNX0lORk8gc3lzdGVt
SW5mbzsKKyAgICAgICAgOjpHZXRTeXN0ZW1JbmZvKCZzeXN0ZW1JbmZvKTsKKyAgICAgICAgcGFn
ZVNpemUgPSBzeXN0ZW1JbmZvLmR3UGFnZVNpemU7CisgICAgfQorCisgICAgcmV0dXJuIHBhZ2VT
aXplOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>