<?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>148734</bug_id>
          
          <creation_ts>2015-09-02 18:37:06 -0700</creation_ts>
          <short_desc>Initial implementation of WebAssembly function compiler</short_desc>
          <delta_ts>2015-09-03 13:32:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123007</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-02 18:37:06 -0700</bug_when>
    <thetext>Initial implementation of WebAssembly function compiler for WebAssembly files generated by pack-asmjs &lt;https://github.com/WebAssembly/polyfill-prototype-1&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123012</commentid>
    <comment_count>1</comment_count>
      <attachid>260473</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-02 18:55:23 -0700</bug_when>
    <thetext>Created attachment 260473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123141</commentid>
    <comment_count>2</comment_count>
      <attachid>260473</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-03 13:32:41 -0700</bug_when>
    <thetext>Comment on attachment 260473
Patch

Clearing flags on attachment: 260473

Committed r189284: &lt;http://trac.webkit.org/changeset/189284&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123142</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-03 13:32:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260473</attachid>
            <date>2015-09-02 18:55:23 -0700</date>
            <delta_ts>2015-09-03 13:32:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148734-20150902185522.patch</filename>
            <type>text/plain</type>
            <size>23888</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2ZhOGRlZDYzMDg5YjIyNzc0ODM2YzMzZGE0NDFkZDA3ZjIxOGI2Li42Y2U0ODI1ZTQ2ODc3YTRj
ZjVkNWRjNTgyMmFmNzdlYmQwOTgyODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAxNS0wOS0wMiAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIFdlYkFzc2VtYmx5
IGZ1bmN0aW9uIGNvbXBpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDg3MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgV0FTTUZ1bmN0aW9uQ29tcGlsZXIsIGEg
Y2xhc3MgZm9yIGdlbmVyYXRpbmcKKyAgICAgICAgYmFzZWxpbmUgSklUIGNvZGUgZm9yIFdlYkFz
c2VtYmx5IGZ1bmN0aW9ucy4gVGhlIHNvdXJjZSBmb3IgZWFjaAorICAgICAgICBXZWJBc3NlbWJs
eSBmdW5jdGlvbiBpcyBwYXJzZWQgaW4gdHdvIHBhc3Nlcy4KKyAgICAgICAgLSBUaGUgZmlyc3Qg
cGFzcyBpcyBkb25lIGJ5IFdBU01GdW5jdGlvblN5bnRheENoZWNrZXIgd2hlbiB0aGUKKyAgICAg
ICAgICBXZWJBc3NlbWJseSBtb2R1bGUgaXMgaW5pdGlhbGl6ZWQuIEl0IHZhbGlkYXRlcyB0aGUg
c3ludGF4LAorICAgICAgICAgIGRldGVybWluZXMgdGhlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mZnNl
dHMgaW4gdGhlIHNvdXJjZSwgYW5kCisgICAgICAgICAgY2FsY3VsYXRlcyB0aGUgc3RhY2sgaGVp
Z2h0IG9mIHRoZSBmdW5jdGlvbi4KKyAgICAgICAgLSBUaGUgc2Vjb25kIHBhc3MgaXMgZG9uZSBi
eSBXQVNNRnVuY3Rpb25Db21waWxlciB3aGVuIHRoZSBmdW5jdGlvbgorICAgICAgICAgIGlzIGFi
b3V0IHRvIGJlIGV4ZWN1dGVkLgorICAgICAgICBUaGlzIHBhdGNoIGRvZXNuJ3QgY2FsY3VsYXRl
IHRoZSBjb3JyZWN0IHN0YWNrIGhlaWdodCBub3IgZ2VuZXJhdGUKKyAgICAgICAgdGhlIGNvcnJl
Y3QgY29kZS4gVGhhdCB3aWxsIGJlIGRvbmUgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0
ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd2FzbS9KU1dBU01Nb2R1bGUuaDoKKyAgICAgICAgKEpTQzo6SlNXQVNNTW9k
dWxlOjpmdW5jdGlvblN0YXJ0T2Zmc2V0c0luU291cmNlKToKKyAgICAgICAgKEpTQzo6SlNXQVNN
TW9kdWxlOjpmdW5jdGlvblN0YWNrSGVpZ2h0cyk6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rp
b25Db21waWxlci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6
OldBU01GdW5jdGlvbkNvbXBpbGVyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGls
ZXI6OnN0YXJ0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6
ZW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6dGhyb3dT
dGFja092ZXJmbG93RXJyb3IpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6
bG9jYWxBZGRyZXNzKToKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHA6Cisg
ICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6Y2hlY2tTeW50YXgpOgorICAgICAgICAo
SlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpXQVNNRnVu
Y3Rpb25QYXJzZXI6OnBhcnNlRnVuY3Rpb24pOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9u
UGFyc2VyLmg6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmg6Cisg
ICAgICAgIChKU0M6OldBU01GdW5jdGlvblN5bnRheENoZWNrZXI6OnN0YXJ0RnVuY3Rpb24pOgor
ICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyOjplbmRGdW5jdGlvbik6Cisg
ICAgICAgIChKU0M6OldBU01GdW5jdGlvblN5bnRheENoZWNrZXI6OnN0YWNrSGVpZ2h0KToKKyAg
ICAgICAgKiB3YXNtL1dBU01Nb2R1bGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpXQVNNTW9k
dWxlUGFyc2VyOjpwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb25TZWN0aW9uKToKKyAgICAgICAgKEpT
Qzo6V0FTTU1vZHVsZVBhcnNlcjo6cGFyc2VGdW5jdGlvbkRlZmluaXRpb24pOgorCiAyMDE1LTA5
LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNv
bWUgdW51c2VkIG1ldGhvZHMgZnJvbSBHZXRCeUlkQWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oKaW5kZXggMzk5NjNiNDEwMTFjZTllNTAzZTM2ODlhMDY3NTQ1YTZi
NDBiNDBiMS4uZjE1MzYwMzY3MGM4OGQ0NzRmYTBjNWQ0M2Y0Mzk5ODg0NDJhY2Q4NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC0xNzk4LDYgKzE3OTgsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cV0FTTUNvbnN0YW50cy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNRm9ybWF0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlx3YXNtXFdBU01GdW5jdGlvbkNvbXBpbGVyLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01GdW5jdGlvblBhcnNlci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01Nb2R1bGVQYXJzZXIuaCIgLz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAyYmY3
MTgwNDBiMzRkNGZjMDA4M2YyMWE1M2NlNDgyN2UxZmMwMjg2Li41ZDUyNmYwOTY4N2YwYWYxMDEy
ZWRlNmU2YTUxMTY2NmM3YWU4MThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC00NDQ4LDYgKzQ0NDgsOSBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNRm9ybWF0LmgiPgogICAgICAgPEZpbHRlcj53YXNtPC9G
aWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNt
XFdBU01GdW5jdGlvbkNvbXBpbGVyLmgiPgorICAgICAgPEZpbHRlcj53YXNtPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3YXNtXFdBU01GdW5j
dGlvblBhcnNlci5oIj4KICAgICAgIDxGaWx0ZXI+d2FzbTwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMjJlNzE2ZjUzMTEwN2ZlNTk4
MWM1YTZkMTZkM2E0NTQxZTYxOWY1Li5mZTM2NDViZGU1Y2RhNzUxNTk0NWM3NWYzMGUyMWU2YTk4
MjY0MGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAzOSw2ICsxMDM5LDcg
QEAKIAkJN0IwMjQ3NTYxQjg2ODJFMTAwNTQyNDQwIC8qIFdBU01GdW5jdGlvblBhcnNlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjAyNDc1MzFC
ODY4MkQ1MDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcCAqLzsgfTsKIAkJN0IwMjQ3
NTcxQjg2ODJFNDAwNTQyNDQwIC8qIFdBU01GdW5jdGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IwMjQ3NTQxQjg2ODJENTAwNTQyNDQw
IC8qIFdBU01GdW5jdGlvblBhcnNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCMDI0NzU5MUI4NjhFQjcwMDU0MjQ0MCAvKiBXQVNNRnVuY3Rp
b25TeW50YXhDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QjAyNDc1ODFCODY4RUFFMDA1NDI0NDAgLyogV0FTTUZ1bmN0aW9uU3ludGF4Q2hl
Y2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTdCMkUwMTBFMUI5N0FBNjkwMEVGNUQ1QyAvKiBXQVNNRnVuY3Rpb25Db21waWxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IyRTAxMEQxQjk3QUE1
ODAwRUY1RDVDIC8qIFdBU01GdW5jdGlvbkNvbXBpbGVyLmggKi87IH07CiAJCTdCMzlGNzZEMUI2
MkRFMkUwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzY5MUI2MkRFMjIwMDM2MEZCNCAvKiBX
QVNNTW9kdWxlUGFyc2VyLmNwcCAqLzsgfTsKIAkJN0IzOUY3NkUxQjYyREUzMjAwMzYwRkI0IC8q
IFdBU01Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCMzlGNzZBMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0IzOUY3
NzAxQjYyREUzMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMzlGNzZDMUI2MkRFMjIwMDM2MEZCNCAvKiBXQVNN
UmVhZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTI4NjEsNiArMjg2Miw3IEBACiAJCTdCMDI0NzUzMUI4NjgyRDUwMDU0MjQ0MCAvKiBXQVNN
RnVuY3Rpb25QYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0FTTUZ1bmN0aW9uUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Iw
MjQ3NTQxQjg2ODJENTAwNTQyNDQwIC8qIFdBU01GdW5jdGlvblBhcnNlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXQVNNRnVuY3Rpb25QYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0IwMjQ3NTgxQjg2OEVBRTAwNTQyNDQwIC8qIFdBU01GdW5jdGlv
blN5bnRheENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTUZ1
bmN0aW9uU3ludGF4Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjJF
MDEwRDFCOTdBQTU4MDBFRjVENUMgLyogV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IzOUY3NjkxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01Nb2R1
bGVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0FTTU1v
ZHVsZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMzlGNzZBMUI2
MkRFMjIwMDM2MEZCNCAvKiBXQVNNTW9kdWxlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdBU01Nb2R1bGVQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0IzOUY3NkMxQjYyREUyMjAwMzYwRkI0IC8qIFdBU01SZWFkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0FTTVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDQ3MSw2ICs0NDczLDcgQEAKIAkJCQk3Qjk4RDEzNTFCNjBDRDVBMDAyM0Ix
QTQgLyogSlNXQVNNTW9kdWxlLmggKi8sCiAJCQkJN0IwMjQ3NTIxQjg2ODJENTAwNTQyNDQwIC8q
IFdBU01Db25zdGFudHMuaCAqLywKIAkJCQk3QkM1NDdEMjFCNjk1OTlCMDA5NTlCNTggLyogV0FT
TUZvcm1hdC5oICovLAorCQkJCTdCMkUwMTBEMUI5N0FBNTgwMEVGNUQ1QyAvKiBXQVNNRnVuY3Rp
b25Db21waWxlci5oICovLAogCQkJCTdCMDI0NzUzMUI4NjgyRDUwMDU0MjQ0MCAvKiBXQVNNRnVu
Y3Rpb25QYXJzZXIuY3BwICovLAogCQkJCTdCMDI0NzU0MUI4NjgyRDUwMDU0MjQ0MCAvKiBXQVNN
RnVuY3Rpb25QYXJzZXIuaCAqLywKIAkJCQk3QjAyNDc1ODFCODY4RUFFMDA1NDI0NDAgLyogV0FT
TUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oICovLApAQCAtNjg1OSw2ICs2ODYyLDcgQEAKIAkJCQkw
RjNBMUJGQTFBOUVDQjdEMDAwREUwMUEgLyogREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NjcwNEI4NTEyREJBMzM3MDBBOUZFN0IgLyogWWFyckludGVycHJldGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjJFMDEwRTFCOTdBQTY5MDBFRjVENUMgLyogV0FTTUZ1
bmN0aW9uQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg3MTJEQkEzMzcwMEE5
RkU3QiAvKiBZYXJySklULmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4ODEyREJBMzM3MDBB
OUZFN0IgLyogWWFyclBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCOEExMkRCQTMz
NzAwQTlGRTdCIC8qIFlhcnJQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKaW5kZXggNDY3YjNlNmExMWY2NTg0YWNlOGFkN2M0
NDIwNzM4MGQxMzc4MjU4Zi4uZTU0ZThhYzI2M2EzZTZiYmU4ZjExZDZjOTFiMWUwNTA3YjMyNzU5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKQEAgLTY1LDYg
KzY1LDggQEAgcHVibGljOgogICAgIFZlY3RvcjxXQVNNRnVuY3Rpb25Qb2ludGVyVGFibGU+JiBm
dW5jdGlvblBvaW50ZXJUYWJsZXMoKSB7IHJldHVybiBtX2Z1bmN0aW9uUG9pbnRlclRhYmxlczsg
fQogCiAgICAgVmVjdG9yPFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPj4mIGZ1bmN0aW9ucygpIHsg
cmV0dXJuIG1fZnVuY3Rpb25zOyB9CisgICAgVmVjdG9yPHVuc2lnbmVkPiYgZnVuY3Rpb25TdGFy
dE9mZnNldHNJblNvdXJjZSgpIHsgcmV0dXJuIG1fZnVuY3Rpb25TdGFydE9mZnNldHNJblNvdXJj
ZTsgfQorICAgIFZlY3Rvcjx1bnNpZ25lZD4mIGZ1bmN0aW9uU3RhY2tIZWlnaHRzKCkgeyByZXR1
cm4gbV9mdW5jdGlvblN0YWNrSGVpZ2h0czsgfQogCiBwcml2YXRlOgogICAgIEpTV0FTTU1vZHVs
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtODMsNiArODUsOCBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxXQVNNRnVuY3Rpb25Qb2ludGVyVGFibGU+IG1fZnVuY3Rpb25Qb2ludGVy
VGFibGVzOwogCiAgICAgVmVjdG9yPFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPj4gbV9mdW5jdGlv
bnM7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBtX2Z1bmN0aW9uU3RhcnRPZmZzZXRzSW5Tb3VyY2U7
CisgICAgVmVjdG9yPHVuc2lnbmVkPiBtX2Z1bmN0aW9uU3RhY2tIZWlnaHRzOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNRnVuY3Rpb25Db21waWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1
bmN0aW9uQ29tcGlsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjU2NWE0ODc5NmE5MDMwNGI3NjM5YWFjNzI5
N2Y4MTI3YmU2NjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaApAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0FTTUZ1bmN0aW9uQ29t
cGlsZXJfaAorI2RlZmluZSBXQVNNRnVuY3Rpb25Db21waWxlcl9oCisKKyNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJKSVRPcGVy
YXRpb25zLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBXQVNNRnVu
Y3Rpb25Db21waWxlciA6IHByaXZhdGUgQ0NhbGxIZWxwZXJzIHsKK3B1YmxpYzoKKyAgICB0eXBl
ZGVmIGludCBFeHByZXNzaW9uOworICAgIHR5cGVkZWYgaW50IFN0YXRlbWVudDsKKworICAgIHVu
aW9uIFN0YWNrU2xvdCB7CisgICAgICAgIGludDMyX3QgaW50VmFsdWU7CisgICAgICAgIGZsb2F0
IGZsb2F0VmFsdWU7CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKKyAgICB9OworCisgICAg
V0FTTUZ1bmN0aW9uQ29tcGlsZXIoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgdW5zaWdu
ZWQgc3RhY2tIZWlnaHQpCisgICAgICAgIDogQ0NhbGxIZWxwZXJzKCZ2bSwgY29kZUJsb2NrKQor
ICAgICAgICAsIG1fc3RhY2tIZWlnaHQoc3RhY2tIZWlnaHQpCisgICAgeworICAgIH0KKworICAg
IHZvaWQgc3RhcnRGdW5jdGlvbihjb25zdCBWZWN0b3I8V0FTTVR5cGU+JiBhcmd1bWVudHMsIHVp
bnQzMl90IG51bWJlck9mSTMyTG9jYWxWYXJpYWJsZXMsIHVpbnQzMl90IG51bWJlck9mRjMyTG9j
YWxWYXJpYWJsZXMsIHVpbnQzMl90IG51bWJlck9mRjY0TG9jYWxWYXJpYWJsZXMpCisgICAgewor
ICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAgICAgICBlbWl0UHV0SW1tZWRpYXRl
VG9DYWxsRnJhbWVIZWFkZXIobV9jb2RlQmxvY2ssIEpTU3RhY2s6OkNvZGVCbG9jayk7CisKKyAg
ICAgICAgbV9iZWdpbkxhYmVsID0gbGFiZWwoKTsKKworICAgICAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKC1XVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwg
bV9zdGFja0hlaWdodCkgKiBzaXplb2YoU3RhY2tTbG90KSksIEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgIG1fc3RhY2tPdmVyZmxvdyA9IGJyYW5j
aFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZlN0YWNrTGltaXQoKSks
IEdQUkluZm86OnJlZ1QxKTsKKworICAgICAgICBtb3ZlKEdQUkluZm86OnJlZ1QxLCBzdGFja1Bv
aW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CisK
KyAgICAgICAgbV9udW1iZXJPZkxvY2FscyA9IGFyZ3VtZW50cy5zaXplKCkgKyBudW1iZXJPZkkz
MkxvY2FsVmFyaWFibGVzICsgbnVtYmVyT2ZGMzJMb2NhbFZhcmlhYmxlcyArIG51bWJlck9mRjY0
TG9jYWxWYXJpYWJsZXM7CisKKyAgICAgICAgdW5zaWduZWQgbG9jYWxJbmRleCA9IDA7CisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgICAgICBBZGRyZXNzIGFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6YXJndW1lbnRPZmZzZXQoaSkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKKyAgICAgICAgICAg
IHN3aXRjaCAoYXJndW1lbnRzW2ldKSB7CisgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6
CisgICAgICAgICAgICAgICAgbG9hZDMyKGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAg
ICAgICAgICAgICBzdG9yZTMyKEdQUkluZm86OnJlZ1QwLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRl
eCsrKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdBU01UeXBl
OjpGMzI6CisgICAgICAgICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsK
KyAgICAgICAgICAgICAgICB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJl
Z1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgICAgICBjb252ZXJ0RG91YmxlVG9G
bG9hdChGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgICAg
ICBzdG9yZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCsr
KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpG
NjQ6CisgICAgICAgICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsKKyAg
ICAgICAgICAgICAgICB1bmJveERvdWJsZVdpdGhvdXRBc3NlcnRpb25zKEdQUkluZm86OnJlZ1Qw
LCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgICAgICBzdG9yZURvdWJsZShGUFJJbmZv
OjpmcFJlZ1QwLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCsrKSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAodWludDMy
X3QgaSA9IDA7IGkgPCBudW1iZXJPZkkzMkxvY2FsVmFyaWFibGVzOyArK2kpCisgICAgICAgICAg
ICBzdG9yZTMyKFRydXN0ZWRJbW0zMigwKSwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgrKykpOwor
ICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbnVtYmVyT2ZGMzJMb2NhbFZhcmlhYmxl
czsgKytpKQorICAgICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoMCksIGxvY2FsQWRkcmVz
cyhsb2NhbEluZGV4KyspKTsKKyAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG51bWJl
ck9mRjY0TG9jYWxWYXJpYWJsZXM7ICsraSkKKyAgICAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZElt
bTY0KDApLCBsb2NhbEFkZHJlc3MobG9jYWxJbmRleCsrKSk7CisKKyAgICAgICAgbV9jb2RlQmxv
Y2stPnNldE51bVBhcmFtZXRlcnMoMSArIGFyZ3VtZW50cy5zaXplKCkpOworICAgIH0KKworICAg
IHZvaWQgZW5kRnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGVz
ZSBpZiB0aGUgbGFzdCBzdGF0ZW1lbnQgaXMgYSByZXR1cm4gc3RhdGVtZW50LgorICAgICAgICBt
b3ZlKFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpLCBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAg
ICAgIHJldCgpOworCisgICAgICAgIG1fc3RhY2tPdmVyZmxvdy5saW5rKHRoaXMpOworICAgICAg
ICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIo
VHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoKTsKKworICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IGFyaXR5IGNoZWNrLgorICAgICAgICBMYWJlbCBhcml0eUNo
ZWNrID0gbGFiZWwoKTsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAg
ZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpD
b2RlQmxvY2spOworICAgICAgICBqdW1wKG1fYmVnaW5MYWJlbCk7CisKKyAgICAgICAgTGlua0J1
ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrLCBKSVRDb21waWxhdGlv
bk11c3RTdWNjZWVkKTsKKworICAgICAgICBmb3IgKGF1dG8gaXRlcmF0b3IgOiBtX2NhbGxzKQor
ICAgICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhpdGVyYXRvci5maXJzdCwgRnVuY3Rpb25QdHIo
aXRlcmF0b3Iuc2Vjb25kKSk7CisKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHdpdGhB
cml0eUNoZWNrID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihhcml0eUNoZWNrKTsKKyAgICAgICAg
Q29kZVJlZiByZXN1bHQgPSBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkJhc2VsaW5lIEpJ
VCBjb2RlIGZvciBXZWJBc3NlbWJseSIpKTsKKyAgICAgICAgbV9jb2RlQmxvY2stPnNldEpJVENv
ZGUoYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUocmVzdWx0LCB3aXRoQXJpdHlDaGVjaywgSklU
Q29kZTo6QmFzZWxpbmVKSVQpKSk7CisgICAgICAgIG1fY29kZUJsb2NrLT5jYXBhYmlsaXR5TGV2
ZWwoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQWRkcmVzcyBsb2NhbEFkZHJlc3ModW5zaWdu
ZWQgbG9jYWxJbmRleCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChsb2NhbEluZGV4IDwg
bV9udW1iZXJPZkxvY2Fscyk7CisgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCAtKGxvY2FsSW5kZXggKyAxKSAqIHNpemVvZihTdGFja1Nsb3QpKTsKKyAg
ICB9CisKKyAgICB2b2lkIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCkKKyAgICB7CisgICAgICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrKSk7
CisKKyAgICAgICAgbV9jYWxscy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoY2FsbCgpLCBGdW5jdGlv
blB0cihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvcikudmFsdWUoKSkpOworCisgICAg
ICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUgaXMgcGFzc2VkIHR3
byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4KKyAgICAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fdm0pLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAg
ICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpOworI2lmIENQVShYODYpCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxs
IGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklU
IGxheWVyIQorICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIHBv
a2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKKyNlbmRpZgorICAgICAgICBtX2NhbGxzLmFw
cGVuZChzdGQ6Om1ha2VfcGFpcihjYWxsKCksIEZ1bmN0aW9uUHRyKGxvb2t1cEV4Y2VwdGlvbkhh
bmRsZXJGcm9tQ2FsbGVyRnJhbWUpLnZhbHVlKCkpKTsKKyAgICAgICAganVtcFRvRXhjZXB0aW9u
SGFuZGxlcigpOworICAgIH0KKworICAgIHVuc2lnbmVkIG1fc3RhY2tIZWlnaHQ7CisgICAgdW5z
aWduZWQgbV9udW1iZXJPZkxvY2FsczsKKworICAgIExhYmVsIG1fYmVnaW5MYWJlbDsKKyAgICBK
dW1wIG1fc3RhY2tPdmVyZmxvdzsKKworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q2FsbCwgdm9pZCo+
PiBtX2NhbGxzOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKKyNlbmRpZiAvLyBXQVNNRnVuY3Rpb25Db21waWxlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRleCA3
OGExYTE5MmNlYzg4NDdhZDExMDM4ODgwMmJhMzBjZmM5NTdjZmE5Li41ZDQwNGM3MDQ0YjM2MjBj
YzE4NjFhNjAwNmQwMzdhZDEwYmQwYjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKQEAgLTI4LDkgKzI4LDggQEAKIAogI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKIAotI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUg
IkpTV0FTTU1vZHVsZS5oIgotI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNsdWRlICJXQVNN
RnVuY3Rpb25Db21waWxlci5oIgogI2luY2x1ZGUgIldBU01GdW5jdGlvblN5bnRheENoZWNrZXIu
aCIKIAogI2RlZmluZSBQUk9QQUdBVEVfRVJST1IoKSBkbyB7IGlmICghbV9lcnJvck1lc3NhZ2Uu
aXNOdWxsKCkpIHJldHVybiAwOyB9IHdoaWxlICgwKQpAQCAtNDcsNyArNDYsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotYm9vbCBXQVNNRnVuY3Rpb25QYXJzZXI6OmNoZWNrU3ludGF4KEpTV0FT
TU1vZHVsZSogbW9kdWxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIHNpemVfdCBmdW5jdGlv
bkluZGV4LCB1bnNpZ25lZCBzdGFydE9mZnNldEluU291cmNlLCB1bnNpZ25lZCYgZW5kT2Zmc2V0
SW5Tb3VyY2UsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQorYm9vbCBXQVNNRnVuY3Rpb25QYXJzZXI6
OmNoZWNrU3ludGF4KEpTV0FTTU1vZHVsZSogbW9kdWxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3Vy
Y2UsIHNpemVfdCBmdW5jdGlvbkluZGV4LCB1bnNpZ25lZCBzdGFydE9mZnNldEluU291cmNlLCB1
bnNpZ25lZCYgZW5kT2Zmc2V0SW5Tb3VyY2UsIHVuc2lnbmVkJiBzdGFja0hlaWdodCwgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgV0FTTUZ1bmN0aW9uUGFyc2VyIHBhcnNlcihtb2R1bGUs
IHNvdXJjZSwgZnVuY3Rpb25JbmRleCk7CiAgICAgV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlciBz
eW50YXhDaGVja2VyOwpAQCAtNTgsMjggKzU3LDE3IEBAIGJvb2wgV0FTTUZ1bmN0aW9uUGFyc2Vy
OjpjaGVja1N5bnRheChKU1dBU01Nb2R1bGUqIG1vZHVsZSwgY29uc3QgU291cmNlQ29kZSYgc291
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgZW5kT2Zmc2V0SW5Tb3VyY2UgPSBw
YXJzZXIubV9yZWFkZXIub2Zmc2V0KCk7CisgICAgc3RhY2tIZWlnaHQgPSBzeW50YXhDaGVja2Vy
LnN0YWNrSGVpZ2h0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV0FTTUZ1bmN0aW9u
UGFyc2VyOjpjb21waWxlKFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpTV0FTTU1vZHVs
ZSogbW9kdWxlLCBjb25zdCBTb3VyY2VDb2RlJiwgc2l6ZV90IGZ1bmN0aW9uSW5kZXgpCit2b2lk
IFdBU01GdW5jdGlvblBhcnNlcjo6Y29tcGlsZShWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2Nr
LCBKU1dBU01Nb2R1bGUqIG1vZHVsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBzaXplX3Qg
ZnVuY3Rpb25JbmRleCkKIHsKLSAgICAvLyBGSVhNRTogQWN0dWFsbHkgY29tcGlsZSB0aGUgY29k
ZS4KLSAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2bSwgY29kZUJsb2NrKTsKLSAgICBNYWNyb0Fzc2Vt
Ymxlcjo6TGFiZWwgYmVnaW5MYWJlbCA9IGppdC5sYWJlbCgpOwotICAgIGppdC5tb3ZlKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKSksIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKLSAgICBqaXQucmV0KCk7Ci0gICAgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGFyaXR5Q2hlY2sgPSBqaXQubGFiZWwoKTsKLSAgICBqaXQuanVtcChiZWdpbkxh
YmVsKTsKLQotICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIodm0sIGppdCwgY29kZUJsb2NrLCBK
SVRDb21waWxhdGlvbk11c3RTdWNjZWVkKTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgd2l0
aEFyaXR5Q2hlY2sgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGFyaXR5Q2hlY2spOwotICAgIE1h
Y3JvQXNzZW1ibGVyOjpDb2RlUmVmIHJlc3VsdCA9IEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIs
ICgiQmFzZWxpbmUgSklUIGNvZGUgZm9yIFdlYkFzc2VtYmx5IikpOwotICAgIGNvZGVCbG9jay0+
c2V0SklUQ29kZShhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShyZXN1bHQsIHdpdGhBcml0eUNo
ZWNrLCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpKTsKLSAgICBjb2RlQmxvY2stPmNhcGFiaWxpdHlM
ZXZlbCgpOwotCi0gICAgdWludDMyX3Qgc2lnbmF0dXJlSW5kZXggPSBtb2R1bGUtPmZ1bmN0aW9u
RGVjbGFyYXRpb25zKClbZnVuY3Rpb25JbmRleF0uc2lnbmF0dXJlSW5kZXg7Ci0gICAgY29uc3Qg
V0FTTVNpZ25hdHVyZSYgc2lnbmF0dXJlID0gbW9kdWxlLT5zaWduYXR1cmVzKClbc2lnbmF0dXJl
SW5kZXhdOwotICAgIGNvZGVCbG9jay0+c2V0TnVtUGFyYW1ldGVycygxICsgc2lnbmF0dXJlLmFy
Z3VtZW50cy5zaXplKCkpOworICAgIFdBU01GdW5jdGlvblBhcnNlciBwYXJzZXIobW9kdWxlLCBz
b3VyY2UsIGZ1bmN0aW9uSW5kZXgpOworICAgIFdBU01GdW5jdGlvbkNvbXBpbGVyIGNvbXBpbGVy
KHZtLCBjb2RlQmxvY2ssIG1vZHVsZS0+ZnVuY3Rpb25TdGFja0hlaWdodHMoKVtmdW5jdGlvbklu
ZGV4XSk7CisgICAgcGFyc2VyLm1fcmVhZGVyLnNldE9mZnNldChtb2R1bGUtPmZ1bmN0aW9uU3Rh
cnRPZmZzZXRzSW5Tb3VyY2UoKVtmdW5jdGlvbkluZGV4XSk7CisgICAgcGFyc2VyLnBhcnNlRnVu
Y3Rpb24oY29tcGlsZXIpOworICAgIEFTU0VSVChwYXJzZXIubV9lcnJvck1lc3NhZ2UuaXNOdWxs
KCkpOwogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KQEAgLTEwMiw3ICs5MCwxMiBAQCBi
b29sIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VGdW5jdGlvbihDb250ZXh0JiBjb250ZXh0KQog
ICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBtX251bWJlck9mRjY0TG9jYWxWYXJpYWJsZXM7
ICsraSkKICAgICAgICAgbV9sb2NhbFR5cGVzLmFwcGVuZChXQVNNVHlwZTo6RjY0KTsKIAorICAg
IGNvbnRleHQuc3RhcnRGdW5jdGlvbihhcmd1bWVudHMsIG1fbnVtYmVyT2ZJMzJMb2NhbFZhcmlh
YmxlcywgbV9udW1iZXJPZkYzMkxvY2FsVmFyaWFibGVzLCBtX251bWJlck9mRjY0TG9jYWxWYXJp
YWJsZXMpOworCiAgICAgcGFyc2VCbG9ja1N0YXRlbWVudChjb250ZXh0KTsKKyAgICBQUk9QQUdB
VEVfRVJST1IoKTsKKworICAgIGNvbnRleHQuZW5kRnVuY3Rpb24oKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0
aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJz
ZXIuaAppbmRleCA3MDRjNDZjOWQ5NGQ0MDY0YWNlN2I0ZjdjYzFjYzhmMzYzODFjNTQyLi4zNDYz
MDYyY2JkMjM5ODI1Nzc2MDIyMzFkNTlhZTdjNjgzOWIxZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBWTTsKIAogY2xhc3MgV0FTTUZ1bmN0aW9uUGFyc2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgYm9vbCBjaGVja1N5bnRheChKU1dBU01Nb2R1bGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgc2l6
ZV90IGZ1bmN0aW9uSW5kZXgsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0SW5Tb3VyY2UsIHVuc2lnbmVk
JiBlbmRPZmZzZXRJblNvdXJjZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHN0YXRpYyBi
b29sIGNoZWNrU3ludGF4KEpTV0FTTU1vZHVsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBzaXplX3Qg
ZnVuY3Rpb25JbmRleCwgdW5zaWduZWQgc3RhcnRPZmZzZXRJblNvdXJjZSwgdW5zaWduZWQmIGVu
ZE9mZnNldEluU291cmNlLCB1bnNpZ25lZCYgc3RhY2tIZWlnaHQsIFN0cmluZyYgZXJyb3JNZXNz
YWdlKTsKICAgICBzdGF0aWMgdm9pZCBjb21waWxlKFZNJiwgQ29kZUJsb2NrKiwgSlNXQVNNTW9k
dWxlKiwgY29uc3QgU291cmNlQ29kZSYsIHNpemVfdCBmdW5jdGlvbkluZGV4KTsKIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5
bnRheENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5
bnRheENoZWNrZXIuaAppbmRleCBkNGFhNGRlN2RhM2ViODcyMjdiNjY0YTMyZWNhMTI0NjNiMGFh
NDJlLi41ZDMyOWMzZDJmM2VhYzVlODUzZDY5NDFkZTJmNjdkMGJiNWFhYTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
ci5oCkBAIC0zNCw2ICszNCwxOSBAQCBjbGFzcyBXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIGludCBFeHByZXNzaW9uOwogICAgIHR5cGVkZWYgaW50IFN0
YXRlbWVudDsKKworICAgIHZvaWQgc3RhcnRGdW5jdGlvbihjb25zdCBWZWN0b3I8V0FTTVR5cGU+
JiBhcmd1bWVudHMsIHVpbnQzMl90IG51bWJlck9mSTMyTG9jYWxWYXJpYWJsZXMsIHVpbnQzMl90
IG51bWJlck9mRjMyTG9jYWxWYXJpYWJsZXMsIHVpbnQzMl90IG51bWJlck9mRjY0TG9jYWxWYXJp
YWJsZXMpCisgICAgeworICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBpbmNsdWRlIHRoZSBudW1i
ZXIgb2YgdGVtcG9yYXJpZXMgdXNlZC4KKyAgICAgICAgbV9zdGFja0hlaWdodCA9IGFyZ3VtZW50
cy5zaXplKCkgKyBudW1iZXJPZkkzMkxvY2FsVmFyaWFibGVzICsgbnVtYmVyT2ZGMzJMb2NhbFZh
cmlhYmxlcyArIG51bWJlck9mRjY0TG9jYWxWYXJpYWJsZXM7CisgICAgfQorCisgICAgdm9pZCBl
bmRGdW5jdGlvbigpIHsgfQorCisgICAgdW5zaWduZWQgc3RhY2tIZWlnaHQoKSB7IHJldHVybiBt
X3N0YWNrSGVpZ2h0OyB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9zdGFja0hlaWdodDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTU1vZHVsZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNTW9kdWxlUGFyc2VyLmNwcAppbmRleCA2N2UzYWE2NDZjZTZmZDk0N2ZlOThmNGM2NWVl
ZDFkYzdmZDUxOTIwLi40NWQxOWNlZTdkODM2YWQ4NTY1MWM4YmNmNjhlYWQ1OWIzNjRiMmQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNTW9kdWxlUGFyc2VyLmNwcApA
QCAtMjIwLDYgKzIyMCw4IEBAIHZvaWQgV0FTTU1vZHVsZVBhcnNlcjo6cGFyc2VGdW5jdGlvbkRl
Y2xhcmF0aW9uU2VjdGlvbigpCiAgICAgUkVBRF9DT01QQUNUX1VJTlQzMl9PUl9GQUlMKG51bWJl
ck9mRnVuY3Rpb25EZWNsYXJhdGlvbnMsICJDYW5ub3QgcmVhZCB0aGUgbnVtYmVyIG9mIGZ1bmN0
aW9uIGRlY2xhcmF0aW9ucy4iKTsKICAgICBtX21vZHVsZS0+ZnVuY3Rpb25EZWNsYXJhdGlvbnMo
KS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bWJlck9mRnVuY3Rpb25EZWNsYXJhdGlvbnMpOwog
ICAgIG1fbW9kdWxlLT5mdW5jdGlvbnMoKS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bWJlck9m
RnVuY3Rpb25EZWNsYXJhdGlvbnMpOworICAgIG1fbW9kdWxlLT5mdW5jdGlvblN0YXJ0T2Zmc2V0
c0luU291cmNlKCkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShudW1iZXJPZkZ1bmN0aW9uRGVjbGFy
YXRpb25zKTsKKyAgICBtX21vZHVsZS0+ZnVuY3Rpb25TdGFja0hlaWdodHMoKS5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KG51bWJlck9mRnVuY3Rpb25EZWNsYXJhdGlvbnMpOwogICAgIGZvciAodWlu
dDMyX3QgaSA9IDA7IGkgPCBudW1iZXJPZkZ1bmN0aW9uRGVjbGFyYXRpb25zOyArK2kpIHsKICAg
ICAgICAgV0FTTUZ1bmN0aW9uRGVjbGFyYXRpb24gZnVuY3Rpb25EZWNsYXJhdGlvbjsKICAgICAg
ICAgUkVBRF9DT01QQUNUX1VJTlQzMl9PUl9GQUlMKGZ1bmN0aW9uRGVjbGFyYXRpb24uc2lnbmF0
dXJlSW5kZXgsICJDYW5ub3QgcmVhZCB0aGUgc2lnbmF0dXJlIGluZGV4LiIpOwpAQCAtMjYyLDgg
KzI2NCw5IEBAIHZvaWQgV0FTTU1vZHVsZVBhcnNlcjo6cGFyc2VGdW5jdGlvbkRlZmluaXRpb24o
c2l6ZV90IGZ1bmN0aW9uSW5kZXgpCiB7CiAgICAgdW5zaWduZWQgc3RhcnRPZmZzZXRJblNvdXJj
ZSA9IG1fcmVhZGVyLm9mZnNldCgpOwogICAgIHVuc2lnbmVkIGVuZE9mZnNldEluU291cmNlOwor
ICAgIHVuc2lnbmVkIHN0YWNrSGVpZ2h0OwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAg
aWYgKCFXQVNNRnVuY3Rpb25QYXJzZXI6OmNoZWNrU3ludGF4KG1fbW9kdWxlLmdldCgpLCBtX3Nv
dXJjZSwgZnVuY3Rpb25JbmRleCwgc3RhcnRPZmZzZXRJblNvdXJjZSwgZW5kT2Zmc2V0SW5Tb3Vy
Y2UsIGVycm9yTWVzc2FnZSkpIHsKKyAgICBpZiAoIVdBU01GdW5jdGlvblBhcnNlcjo6Y2hlY2tT
eW50YXgobV9tb2R1bGUuZ2V0KCksIG1fc291cmNlLCBmdW5jdGlvbkluZGV4LCBzdGFydE9mZnNl
dEluU291cmNlLCBlbmRPZmZzZXRJblNvdXJjZSwgc3RhY2tIZWlnaHQsIGVycm9yTWVzc2FnZSkp
IHsKICAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0yNzIsNiArMjc1LDggQEAgdm9pZCBXQVNNTW9kdWxlUGFyc2VyOjpwYXJz
ZUZ1bmN0aW9uRGVmaW5pdGlvbihzaXplX3QgZnVuY3Rpb25JbmRleCkKICAgICBXZWJBc3NlbWJs
eUV4ZWN1dGFibGUqIHdlYkFzc2VtYmx5RXhlY3V0YWJsZSA9IFdlYkFzc2VtYmx5RXhlY3V0YWJs
ZTo6Y3JlYXRlKG1fdm0sIG1fc291cmNlLCBtX21vZHVsZS5nZXQoKSwgZnVuY3Rpb25JbmRleCk7
CiAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUobV92bSwgd2Vi
QXNzZW1ibHlFeGVjdXRhYmxlLCBtX2dsb2JhbE9iamVjdC5nZXQoKSk7CiAgICAgbV9tb2R1bGUt
PmZ1bmN0aW9ucygpLnVuY2hlY2tlZEFwcGVuZChXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4obV92
bSwgbV9tb2R1bGUuZ2V0KCksIGZ1bmN0aW9uKSk7CisgICAgbV9tb2R1bGUtPmZ1bmN0aW9uU3Rh
cnRPZmZzZXRzSW5Tb3VyY2UoKS51bmNoZWNrZWRBcHBlbmQoc3RhcnRPZmZzZXRJblNvdXJjZSk7
CisgICAgbV9tb2R1bGUtPmZ1bmN0aW9uU3RhY2tIZWlnaHRzKCkudW5jaGVja2VkQXBwZW5kKHN0
YWNrSGVpZ2h0KTsKIH0KIAogdm9pZCBXQVNNTW9kdWxlUGFyc2VyOjpwYXJzZUV4cG9ydFNlY3Rp
b24oKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>