<?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>147222</bug_id>
          
          <creation_ts>2015-07-23 01:01:28 -0700</creation_ts>
          <short_desc>Implement WebAssembly modules</short_desc>
          <delta_ts>2015-07-23 19:37:03 -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>528+ (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>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>sukolsak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1111606</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 01:01:28 -0700</bug_when>
    <thetext>Implement WebAssembly modules. See https://bugs.webkit.org/show_bug.cgi?id=146064#c2 and https://github.com/WebAssembly/design/blob/master/MVP.md#linear-memory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111608</commentid>
    <comment_count>1</comment_count>
      <attachid>257342</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 01:06:09 -0700</bug_when>
    <thetext>Created attachment 257342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111682</commentid>
    <comment_count>2</comment_count>
      <attachid>257359</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 12:05:16 -0700</bug_when>
    <thetext>Created attachment 257359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111685</commentid>
    <comment_count>3</comment_count>
      <attachid>257359</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-23 12:19:09 -0700</bug_when>
    <thetext>Comment on attachment 257359
Patch

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

&gt; Source/JavaScriptCore/wasm/JSWASMModule.h:69
&gt; +    WriteBarrier&lt;JSArrayBuffer&gt; m_arrayBuffer;

What is this m_arrayBuffer for?  Is it the buffer to hold the WASM source that we load?  If so, does it really need to be a JS property is accessible from JS code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111699</commentid>
    <comment_count>4</comment_count>
      <attachid>257359</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-23 12:45:04 -0700</bug_when>
    <thetext>Comment on attachment 257359
Patch

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

The patch looks good to me in general, but I think we should remove the m_arrayBuffer field until we know how it will be used.

&gt; Source/JavaScriptCore/ChangeLog:7
&gt; +

Please add a short comment here like:
&quot;Introducing the boiler plate data structure for the WebAssembly module.  WASM functionality will be added in a subsequent patch.&quot;

&gt;&gt; Source/JavaScriptCore/wasm/JSWASMModule.h:69
&gt;&gt; +    WriteBarrier&lt;JSArrayBuffer&gt; m_arrayBuffer;
&gt; 
&gt; What is this m_arrayBuffer for?  Is it the buffer to hold the WASM source that we load?  If so, does it really need to be a JS property is accessible from JS code?

I spoke with Sukol offline.  This buffer is potentially needed for some analog of the passed in buffer in the &quot;Putting It All Together&quot; section of the asm.js spec: http://asmjs.org/spec/latest/.  However, it isn&apos;t clear from the spec how this would really work yet.  I think it&apos;s better to not include this m_arrayBuffer for now until we more concrete details.  In contrast, the m_functions is fine because it is clear that we&apos;ll storing the instantiated WASM functions there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111703</commentid>
    <comment_count>5</comment_count>
      <attachid>257366</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 12:52:01 -0700</bug_when>
    <thetext>Created attachment 257366
Remove m_arrayBuffer for now as per discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111708</commentid>
    <comment_count>6</comment_count>
      <attachid>257366</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-23 12:59:12 -0700</bug_when>
    <thetext>Comment on attachment 257366
Remove m_arrayBuffer for now as per discussion.

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

You should probably also make the corresponding project file changes to Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj and Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters.

&gt; Source/JavaScriptCore/wasm/JSWASMModule.cpp:40
&gt; +    JSWASMModule* thisObject = static_cast&lt;JSWASMModule*&gt;(cell);

Sorry I didn&apos;t catch this the first time.  You should use a jsCast here instead:
    JSWASMModule* thisObject = jsCast&lt;JSWASMModule*&gt;(cell);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111710</commentid>
    <comment_count>7</comment_count>
      <attachid>257370</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 13:11:01 -0700</bug_when>
    <thetext>Created attachment 257370
Use jsCast instead of static_cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111723</commentid>
    <comment_count>8</comment_count>
      <attachid>257370</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-23 13:38:16 -0700</bug_when>
    <thetext>Comment on attachment 257370
Use jsCast instead of static_cast.

r=me.

We&apos;ll add the vcxproj changes later since Sukol doesn&apos;t have access to VS right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111756</commentid>
    <comment_count>9</comment_count>
      <attachid>257370</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-23 14:28:03 -0700</bug_when>
    <thetext>Comment on attachment 257370
Use jsCast instead of static_cast.

Clearing flags on attachment: 257370

Committed r187254: &lt;http://trac.webkit.org/changeset/187254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111757</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-23 14:28:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111815</commentid>
    <comment_count>11</comment_count>
      <attachid>257370</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-23 16:23:13 -0700</bug_when>
    <thetext>Comment on attachment 257370
Use jsCast instead of static_cast.

You&apos;ve created an object that requires a destructor, but you haven&apos;t arranged to run the destructor.

By default, GC objects do not run destructors. One way to do this is to inherit from JSDestructibleObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111830</commentid>
    <comment_count>12</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 16:47:00 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111831</commentid>
    <comment_count>13</comment_count>
      <attachid>257407</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 16:47:02 -0700</bug_when>
    <thetext>Created attachment 257407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111833</commentid>
    <comment_count>14</comment_count>
      <attachid>257407</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-07-23 16:50:09 -0700</bug_when>
    <thetext>Comment on attachment 257407
Patch

r=me

It looks like you need to fixup the changelog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111834</commentid>
    <comment_count>15</comment_count>
      <attachid>257370</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-07-23 16:50:37 -0700</bug_when>
    <thetext>Comment on attachment 257370
Use jsCast instead of static_cast.

Unobsolete old patch as the new patch is a follow up fix, not a replacement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111870</commentid>
    <comment_count>16</comment_count>
      <attachid>257416</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 18:27:35 -0700</bug_when>
    <thetext>Created attachment 257416
Fix ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111872</commentid>
    <comment_count>17</comment_count>
      <attachid>257417</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-07-23 18:32:13 -0700</bug_when>
    <thetext>Created attachment 257417
Fix ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111887</commentid>
    <comment_count>18</comment_count>
      <attachid>257417</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-23 19:36:59 -0700</bug_when>
    <thetext>Comment on attachment 257417
Fix ChangeLog

Clearing flags on attachment: 257417

Committed r187283: &lt;http://trac.webkit.org/changeset/187283&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111888</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-23 19:37:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257342</attachid>
            <date>2015-07-23 01:06:09 -0700</date>
            <delta_ts>2015-07-23 12:05:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147222-20150723010452.patch</filename>
            <type>text/plain</type>
            <size>13974</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NmNhNmQyZGZjNzQ2MDAxNTA2OGIzMDgzOGU0ZThkMDQxMmFhMWRkLi42NjBkMjFhMDAyMjA0MzJm
OTAzOGFkMzBkNzJmNjkzYzlhZWQ1OWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNS0wNy0yMyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdhc20vSlNXQVNNTW9kdWxl
LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OldBU006OkpTV0FTTU1vZHVsZTo6dmlzaXRDaGls
ZHJlbik6CisgICAgICAgIChKU0M6OldBU006OkpTV0FTTU1vZHVsZTo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKEpTQzo6V0FTTTo6SlNXQVNNTW9kdWxlOjpwdXQpOgorICAgICAgICAo
SlNDOjpXQVNNOjpKU1dBU01Nb2R1bGU6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKEpT
Qzo6V0FTTTo6SlNXQVNNTW9kdWxlOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OldB
U006OkpTV0FTTU1vZHVsZTo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAg
KiB3YXNtL0pTV0FTTU1vZHVsZS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6V0FTTTo6SlNXQVNN
TW9kdWxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpXQVNNOjpKU1dBU01Nb2R1bGU6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldBU006OkpTV0FTTU1vZHVsZTo6SlNXQVNNTW9k
dWxlKToKKwogMjAxNS0wNy0yMiAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWls
LmNvbT4KIAogICAgICAgICBBZGQgRU5BQkxFX1dFQkFTU0VNQkxZIGZlYXR1cmUgZmxhZyBmb3Ig
V2ViQXNzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDg2MjJlYjMzMjcz
MThkZWNlYmIxMjQzNjBjNDY3NjEzYzU2MTViNC4uZTFjMzFjNjczMDdkYWM1YjFhZDFmMDk2Njk1
OWI5NTBlOWQ4ZDJiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMjMsNiAr
MTAyMyw4IEBACiAJCTcwRUNBNjA5MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5
S2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MEVD
QTYwNDFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeUtleS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5RUUwQkZGMUI0QUZCODUw
MDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RUUwQkZEMUI0QUZCODUwMDAzODVDOSAvKiBWYXJp
YWJsZUVudmlyb25tZW50LmNwcCAqLzsgfTsKIAkJNzlFRTBDMDAxQjRBRkI4NTAwMDM4NUM5IC8q
IFZhcmlhYmxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc5RUUwQkZFMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25t
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
N0I5OEQxMzYxQjYwQ0Q1RjAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNDFCNjBDRDVBMDAyM0Ix
QTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLzsgfTsKKwkJN0I5OEQxMzcxQjYwQ0Q2MjAwMjNCMUE0
IC8qIEpTV0FTTU1vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDA4Q0RBMTg3
MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyog
SlNQcm9taXNlRGVmZXJyZWQuY3BwICovOyB9OwogCQk3QzAwOENEQjE4NzEyNEJCMDA5NTVDMjQg
LyogSlNQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDMDA4Q0Q5MTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJl
ZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdD
MDA4Q0U3MTg3NjMxQjYwMDk1NUMyNCAvKiBNaWNyb3Rhc2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDA4Q0U1MTg3NjMxQjYwMDk1NUMyNCAvKiBN
aWNyb3Rhc2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMjc2Nyw2ICsyNzY5LDggQEAKIAkJNzBFQ0E2MDQxQUZEQkVBMjAwNDQ5NzM5IC8qIFRl
bXBsYXRlUmVnaXN0cnlLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVt
cGxhdGVSZWdpc3RyeUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJG
RDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYXJpYWJsZUVudmlyb25tZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlh
YmxlRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFyaWFi
bGVFbnZpcm9ubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Qjk4RDEzNDFC
NjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV0FTTU1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXQVNNTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMDA4Q0Q4MTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZl
cnJlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb21pc2VE
ZWZlcnJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDA4Q0Q5MTg3MTI0
QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1Byb21pc2VEZWZlcnJlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzAwOENFNTE4NzYzMUI2MDA5NTVDMjQgLyogTWljcm90YXNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1pY3JvdGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzYyMSw2ICszNjI1LDcgQEAKIAkJCQk3RUY2RTBCQjBFQjdBMUVDMDA3OUFGQUYg
LyogcnVudGltZSAqLywKIAkJCQkxNDEyMTEwMDBBNDg3NzI2MDA0ODAyNTUgLyogdGVzdHMgKi8s
CiAJCQkJODYwM0NFRjAxNEM3NTNFRjAwQUU1OUUzIC8qIHRvb2xzICovLAorCQkJCTdCOThEMTMz
MUI2MENEMUUwMDIzQjFBNCAvKiB3YXNtICovLAogCQkJCTg2RUFDNDhDMEY5M0U4QjkwMDhFQzk0
OCAvKiB5YXJyICovLAogCQkJKTsKIAkJCW5hbWUgPSBKYXZhU2NyaXB0Q29yZTsKQEAgLTQyODMs
NiArNDI4OCwxNSBAQAogCQkJcGF0aCA9IGRpc2Fzc2VtYmxlci9BUk12NzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTdCOThEMTMzMUI2MENEMUUwMDIzQjFBNCAvKiB3YXNt
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3Qjk4RDEz
NDFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCAqLywKKwkJCQk3Qjk4RDEzNTFC
NjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHdh
c207CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk3RTM5RDgxRDBFQzM4RUZB
MDAzQUYxMUEgLyogYnl0ZWNvbXBpbGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTYyNjUsNiArNjI3OSw3IEBACiAJCQkJMEYwRkM0NUExNEJEMTVGNTAw
QjgxMTU0IC8qIExMSW50Q2FsbExpbmtJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMzQ0Qw
MDE5QURBNDEwMDA2QUM3MkEgLyogREZHQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFMDUwMTgxQUE5MDkxMTAwRDMzQjMzIC8qIERpcmVjdEFyZ3VtZW50cy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJN0I5OEQxMzcxQjYwQ0Q2MjAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkUyMENFOUUxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3Au
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDQzOTZFMUIwM0RDMEIwMDk1OThCNyAvKiBERkdDb21i
aW5lZExpdmVuZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ2ODBDQTE0QkJCMTZDMDBCRkUy
NzIgLyogTExJbnRDb21tb24uaCBpbiBIZWFkZXJzICovLApAQCAtNzYzMSw2ICs3NjQ2LDcgQEAK
IAkJCQlGRTU5MzJBNzE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZFRDk0RjJFMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRUQ5NEYzMDE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2dNYWMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0I5OEQxMzYxQjYwQ0Q1RjAwMjNCMUE0IC8qIEpTV0FT
TU1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkxOUQyNTE1ODUzQ0UwMDA0QTRFN0Qg
LyogV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNGNzM3NzE3MUNBNkZCMDBD
OUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjZGQzc1MDE5NjExMEE4MDBF
MUQwMkQgLyogQ29tcGxleEdldFN0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiNjk4YTczOGQz
MmFmZjViNjJkY2E1OTAxNjY4MmU1NzFlYmMzMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuY3BwCkBAIC0wLDAgKzEsMTAzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTRnVuY3Rpb24u
aCIKKyNpbmNsdWRlICJSZWplY3QuaCIKKyNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK25hbWVzcGFjZSBXQVNNIHsKKworY29uc3QgQ2xhc3NJbmZv
IEpTV0FTTU1vZHVsZTo6c19pbmZvID0geyAiV0FTTU1vZHVsZSIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNXQVNNTW9kdWxlKSB9OworCit2b2lkIEpTV0FTTU1vZHVs
ZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorewor
ICAgIEpTV0FTTU1vZHVsZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTV0FTTU1vZHVsZSo+
KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKKyAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAgIGZv
ciAoYXV0byBmdW5jdGlvbiA6IHRoaXNPYmplY3QtPm1fZnVuY3Rpb25zKQorICAgICAgICB2aXNp
dG9yLmFwcGVuZCgmZnVuY3Rpb24pOworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5t
X2FycmF5QnVmZmVyKTsKK30KKworYm9vbCBKU1dBU01Nb2R1bGU6OmdldE93blByb3BlcnR5U2xv
dChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1dBU01Nb2R1bGUqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNXQVNNTW9kdWxlKj4ob2JqZWN0KTsKKyAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWZmZXIpIHsKKyAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCBEb250RGVsZXRlIHwgUmVhZE9ubHksIHRoaXNPYmplY3QtPm1fYXJyYXlC
dWZmZXIuZ2V0KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7Cit9CisKK3ZvaWQgSlNXQVNNTW9kdWxlOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1dBU01Nb2R1bGUqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNXQVNNTW9kdWxlKj4oY2VsbCk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuYnVmZmVyKSB7CisgICAgICAgIHJlamVjdChleGVjLCBzbG90LmlzU3Ry
aWN0TW9kZSgpLCAiQXR0ZW1wdGluZyB0byB3cml0ZSB0byBhIHJlYWQtb25seSBhcnJheSBidWZm
ZXIgcHJvcGVydHkuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBCYXNlOjpwdXQo
dGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK2Jvb2wg
SlNXQVNNTW9kdWxlOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKK3sKKyAgICBKU1dBU01Nb2R1bGUq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNXQVNNTW9kdWxlKj4ob2JqZWN0KTsKKyAgICBpZiAocHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWZmZXIpCisgICAgICAgIHJldHVy
biByZWplY3QoZXhlYywgc2hvdWxkVGhyb3csICJBdHRlbXB0aW5nIHRvIGRlZmluZSByZWFkLW9u
bHkgYXJyYXkgYnVmZmVyIHByb3BlcnR5LiIpOworCisgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93
blByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hv
dWxkVGhyb3cpOworfQorCitib29sIEpTV0FTTU1vZHVsZTo6ZGVsZXRlUHJvcGVydHkoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCit7Cisg
ICAgSlNXQVNNTW9kdWxlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTV0FTTU1vZHVsZSo+KGNlbGwp
OworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1ZmZlcikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Cit9CisKK3ZvaWQgSlNXQVNNTW9kdWxl
OjpnZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgYXJyYXksIEVudW1lcmF0aW9uTW9kZSBtb2RlKQor
eworICAgIEpTV0FTTU1vZHVsZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1dBU01Nb2R1bGUqPihv
YmplY3QpOworICAgIGlmIChtb2RlLmluY2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkKKyAgICAg
ICAgYXJyYXkuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWZmZXIpOworCisgICAgQmFzZTo6
Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIGFycmF5LCBtb2Rl
KTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OldBU00KKworI2VuZGlmIC8vIEVOQUJMRShX
RUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FT
TU1vZHVsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2I0MmJlNmVhNDQ5NTY2MWJjZjQxNDhjMDlmYjMxMzViZmFjNTFkNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oCkBA
IC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEpTV0FTTU1vZHVsZV9oCisjZGVmaW5lIEpTV0FTTU1vZHVsZV9oCisKKyNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworbmFtZXNwYWNlIFdBU00geworCitjbGFzcyBKU1dBU01Nb2R1bGUgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBKU05vbkZpbmFsT2Jq
ZWN0IEJhc2U7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90OworCisgICAgc3RhdGljIEpTV0FTTU1vZHVsZSogY3JlYXRlKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBKU1dBU01Nb2R1bGUq
IG1vZHVsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTV0FTTU1vZHVsZT4odm0uaGVh
cCkpIEpTV0FTTU1vZHVsZSh2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgbW9kdWxlLT5maW5pc2hD
cmVhdGlvbih2bSk7CisgICAgICAgIHJldHVybiBtb2R1bGU7CisgICAgfQorCisgICAgREVDTEFS
RV9JTkZPOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lk
IHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKKworcHJpdmF0ZToKKyAgICBK
U1dBU01Nb2R1bGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAgIH0KKworICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CisgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZGVmaW5l
T3duUHJvcGVydHkoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFBy
b3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOworICAgIHN0YXRpYyBib29sIGRl
bGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7CisgICAgc3Rh
dGljIHZvaWQgZ2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOworCisgICAgVmVjdG9yPFdy
aXRlQmFycmllcjxKU0Z1bmN0aW9uPj4gbV9mdW5jdGlvbnM7CisgICAgV3JpdGVCYXJyaWVyPEpT
QXJyYXlCdWZmZXI+IG1fYXJyYXlCdWZmZXI7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
V0FTTQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZW5kaWYgLy8gSlNXQVNN
TW9kdWxlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257359</attachid>
            <date>2015-07-23 12:05:16 -0700</date>
            <delta_ts>2015-07-23 12:51:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147222-20150723120400.patch</filename>
            <type>text/plain</type>
            <size>14679</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NmNhNmQyZGZjNzQ2MDAxNTA2OGIzMDgzOGU0ZThkMDQxMmFhMWRkLi40NzllZWQwNjQ2NmVjYTdk
ODIxMmQ2MzMxOWRiMGFjMmE0MWU3ZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNS0wNy0yMyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHdhc20vSlNXQVNNTW9kdWxlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkpT
V0FTTU1vZHVsZTo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgIChKU0M6OkpTV0FTTU1vZHVsZTo6
Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNXQVNNTW9kdWxlOjpwdXQpOgor
ICAgICAgICAoSlNDOjpKU1dBU01Nb2R1bGU6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAg
KEpTQzo6SlNXQVNNTW9kdWxlOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTV0FT
TU1vZHVsZTo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiB3YXNtL0pT
V0FTTU1vZHVsZS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SlNXQVNNTW9kdWxlOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpKU1dBU01Nb2R1bGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkpTV0FTTU1vZHVsZTo6SlNXQVNNTW9kdWxlKToKKwogMjAxNS0wNy0yMiAgU3Vrb2xz
YWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBBZGQgRU5BQkxF
X1dFQkFTU0VNQkxZIGZlYXR1cmUgZmxhZyBmb3IgV2ViQXNzZW1ibHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwNjI5MWEwYTEwMGYzMWNmN2I1Mjk1ZTRiMWMwMzk1OTIz
ZTY4MWJmLi5mMzI5NWU1Zjg1YzQwNjhiZjFlMGFiZDFkY2UxOTZkNGJkMzUzYmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNiw2ICsyNiw3IEBAIHNldChKYXZhU2Ny
aXB0Q29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9y
ZXBsYXkiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgogICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vdG9vbHMiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS93YXNtIgog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0veWFyciIKICAgICAiJHtXVEZfRElSfSIKICAgICAi
JHtERVJJVkVEX1NPVVJDRVNfRElSfSIKQEAgLTQwOSw2ICs0MTAsOCBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIHRvb2xzL0pTRG9sbGFyVk0uY3BwCiAgICAgdG9vbHMvSlNEb2xs
YXJWTVByb3RvdHlwZS5jcHAKIAorICAgIHdhc20vSlNXQVNNTW9kdWxlLmNwcAorCiAgICAgeWFy
ci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKICAgICB5YXJyL1lhcnJDYW5vbmljYWxpemVVQ1MyLmNw
cAogICAgIHlhcnIvWWFyckludGVycHJldGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA0ODYyMmViMzMyNzMxOGRlY2ViYjEyNDM2MGM0Njc2MTNjNTYxNWI0Li5lMWMzMWM2
NzMwN2RhYzViMWFkMWYwOTY2OTU5Yjk1MGU5ZDhkMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTAyMyw2ICsxMDIzLDggQEAKIAkJNzBFQ0E2MDkxQUZEQkVBMjAwNDQ5NzM5
IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcwRUNBNjA0MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lz
dHJ5S2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzlFRTBCRkYxQjRBRkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlFRTBCRkQxQjRB
RkI4NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwICovOyB9OwogCQk3OUVFMEMw
MDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlFRTBCRkUxQjRBRkI4NTAwMDM4NUM5
IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3Qjk4RDEzNjFCNjBDRDVGMDAyM0IxQTQgLyogSlNXQVNNTW9k
dWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
OThEMTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICovOyB9OworCQk3Qjk4
RDEzNzFCNjBDRDYyMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQgLyog
SlNXQVNNTW9kdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0MwMDhDREExODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDA4Q0Q4
MTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgKi87IH07CiAJCTdDMDA4
Q0RCMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDkxODcxMjRCQjAwOTU1QzI0
IC8qIEpTUHJvbWlzZURlZmVycmVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0MwMDhDRTcxODc2MzFCNjAwOTU1QzI0IC8qIE1pY3JvdGFzay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRTUx
ODc2MzFCNjAwOTU1QzI0IC8qIE1pY3JvdGFzay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNzY3LDYgKzI3NjksOCBAQAogCQk3MEVDQTYwNDFB
RkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeUtleS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUZW1wbGF0ZVJlZ2lzdHJ5S2V5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc5RUUwQkZEMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25t
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhcmlhYmxlRW52
aXJvbm1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJGRTFCNEFG
Qjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBWYXJpYWJsZUVudmlyb25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOThEMTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXQVNNTW9kdWxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I5OEQxMzUxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpT
V0FTTU1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dBU01Nb2R1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwMDhDRDgxODcxMjRCQjAwOTU1
QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTUHJvbWlzZURlZmVycmVkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0MwMDhDRDkxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVycmVkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHJvbWlzZURlZmVycmVkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDA4Q0U1MTg3NjMxQjYwMDk1NUMyNCAvKiBNaWNy
b3Rhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWljcm90YXNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNjIxLDYgKzM2MjUsNyBAQAogCQkJCTdFRjZF
MEJCMEVCN0ExRUMwMDc5QUZBRiAvKiBydW50aW1lICovLAogCQkJCTE0MTIxMTAwMEE0ODc3MjYw
MDQ4MDI1NSAvKiB0ZXN0cyAqLywKIAkJCQk4NjAzQ0VGMDE0Qzc1M0VGMDBBRTU5RTMgLyogdG9v
bHMgKi8sCisJCQkJN0I5OEQxMzMxQjYwQ0QxRTAwMjNCMUE0IC8qIHdhc20gKi8sCiAJCQkJODZF
QUM0OEMwRjkzRThCOTAwOEVDOTQ4IC8qIHlhcnIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IEphdmFT
Y3JpcHRDb3JlOwpAQCAtNDI4Myw2ICs0Mjg4LDE1IEBACiAJCQlwYXRoID0gZGlzYXNzZW1ibGVy
L0FSTXY3OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJN0I5OEQxMzMxQjYw
Q0QxRTAwMjNCMUE0IC8qIHdhc20gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTdCOThEMTM0MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3Bw
ICovLAorCQkJCTdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLywK
KwkJCSk7CisJCQlwYXRoID0gd2FzbTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTdFMzlEODFEMEVDMzhFRkEwMDNBRjExQSAvKiBieXRlY29tcGlsZXIgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNjI2NSw2ICs2Mjc5LDcgQEAKIAkJ
CQkwRjBGQzQ1QTE0QkQxNUY1MDBCODExNTQgLyogTExJbnRDYWxsTGlua0luZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzNDRDAwMTlBREE0MTAwMDZBQzcyQSAvKiBERkdCbG9ja1dvcmtsaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAxODFBQTkwOTExMDBEMzNCMzMgLyogRGlyZWN0
QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Qjk4RDEzNzFCNjBDRDYyMDAyM0IxQTQg
LyogSlNXQVNNTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTIwQ0U5RTE1RjA0QTk1MDBE
RjM0MzAgLyogTExJbnRDTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNDM5NkUxQjAzREMw
QjAwOTU5OEI3IC8qIERGR0NvbWJpbmVkTGl2ZW5lc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NDY4MENBMTRCQkIxNkMwMEJGRTI3MiAvKiBMTEludENvbW1vbi5oIGluIEhlYWRlcnMgKi8sCkBA
IC03NjMxLDYgKzc2NDYsNyBAQAogCQkJCUZFNTkzMkE3MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVu
dHJ5U2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0
IC8qIFdhdGNoZG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFRDk0RjMwMTcxRTNFMjMwMEJF
NzdBNCAvKiBXYXRjaGRvZ01hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3Qjk4RDEzNjFCNjBD
RDVGMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5
RDI1MTU4NTNDRTAwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBQ0Y3Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNkZDNzUwMTk2MTEwQTgwMEUxRDAyRCAvKiBDb21wbGV4R2V0U3RhdHVzLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9k
dWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmQ2Nzg1OTVjNjllZmZkZDQyYTE4NDc3N2M4OThjOGI2MGYyM2I5NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5jcHAK
QEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNXQVNNTW9kdWxlLmgiCisK
KyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCisj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIlJlamVjdC5oIgorI2luY2x1ZGUgIlNs
b3RWaXNpdG9ySW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZv
IEpTV0FTTU1vZHVsZTo6c19pbmZvID0geyAiV0FTTU1vZHVsZSIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNXQVNNTW9kdWxlKSB9OworCit2b2lkIEpTV0FTTU1vZHVs
ZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorewor
ICAgIEpTV0FTTU1vZHVsZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTV0FTTU1vZHVsZSo+
KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKKyAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAgIGZv
ciAoYXV0byBmdW5jdGlvbiA6IHRoaXNPYmplY3QtPm1fZnVuY3Rpb25zKQorICAgICAgICB2aXNp
dG9yLmFwcGVuZCgmZnVuY3Rpb24pOworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5t
X2FycmF5QnVmZmVyKTsKK30KKworYm9vbCBKU1dBU01Nb2R1bGU6OmdldE93blByb3BlcnR5U2xv
dChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1dBU01Nb2R1bGUqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNXQVNNTW9kdWxlKj4ob2JqZWN0KTsKKyAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWZmZXIpIHsKKyAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCBEb250RGVsZXRlIHwgUmVhZE9ubHksIHRoaXNPYmplY3QtPm1fYXJyYXlC
dWZmZXIuZ2V0KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7Cit9CisKK3ZvaWQgSlNXQVNNTW9kdWxlOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1dBU01Nb2R1bGUqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNXQVNNTW9kdWxlKj4oY2VsbCk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuYnVmZmVyKSB7CisgICAgICAgIHJlamVjdChleGVjLCBzbG90LmlzU3Ry
aWN0TW9kZSgpLCAiQXR0ZW1wdGluZyB0byB3cml0ZSB0byBhIHJlYWQtb25seSBhcnJheSBidWZm
ZXIgcHJvcGVydHkuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBCYXNlOjpwdXQo
dGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK2Jvb2wg
SlNXQVNNTW9kdWxlOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKK3sKKyAgICBKU1dBU01Nb2R1bGUq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNXQVNNTW9kdWxlKj4ob2JqZWN0KTsKKyAgICBpZiAocHJv
cGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWZmZXIpCisgICAgICAgIHJldHVy
biByZWplY3QoZXhlYywgc2hvdWxkVGhyb3csICJBdHRlbXB0aW5nIHRvIGRlZmluZSByZWFkLW9u
bHkgYXJyYXkgYnVmZmVyIHByb3BlcnR5LiIpOworCisgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93
blByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hv
dWxkVGhyb3cpOworfQorCitib29sIEpTV0FTTU1vZHVsZTo6ZGVsZXRlUHJvcGVydHkoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCit7Cisg
ICAgSlNXQVNNTW9kdWxlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTV0FTTU1vZHVsZSo+KGNlbGwp
OworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmJ1ZmZlcikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Cit9CisKK3ZvaWQgSlNXQVNNTW9kdWxl
OjpnZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgYXJyYXksIEVudW1lcmF0aW9uTW9kZSBtb2RlKQor
eworICAgIEpTV0FTTU1vZHVsZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1dBU01Nb2R1bGUqPihv
YmplY3QpOworICAgIGlmIChtb2RlLmluY2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkKKyAgICAg
ICAgYXJyYXkuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5idWZmZXIpOworCisgICAgQmFzZTo6
Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIGFycmF5LCBtb2Rl
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1C
TFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRmZTA5ZDljY2IxNzFlMWU5YTdmYjg4NWVlNjhiZmI2YTFiYmUxYjEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuaApAQCAtMCwwICsx
LDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBKU1dBU01Nb2R1bGVfaAorI2RlZmluZSBKU1dBU01Nb2R1bGVfaAorCisjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKK2NsYXNzIEpTV0FTTU1vZHVsZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1Ymxp
YzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CisKKyAgICBz
dGF0aWMgSlNXQVNNTW9kdWxlKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
KyAgICB7CisgICAgICAgIEpTV0FTTU1vZHVsZSogbW9kdWxlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8SlNXQVNNTW9kdWxlPih2bS5oZWFwKSkgSlNXQVNNTW9kdWxlKHZtLCBzdHJ1Y3R1
cmUpOworICAgICAgICBtb2R1bGUtPmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICAgICAgcmV0dXJu
IG1vZHVsZTsKKyAgICB9CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIGpzTnVsbCgpLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90
VmlzaXRvciYpOworCitwcml2YXRlOgorICAgIEpTV0FTTU1vZHVsZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7CisgICAg
fQorCisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCosIEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91
bGRUaHJvdyk7CisgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgdm9pZCBnZXRPd25Ob25JbmRleFByb3Bl
cnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSk7CisKKyAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+PiBtX2Z1
bmN0aW9uczsKKyAgICBXcml0ZUJhcnJpZXI8SlNBcnJheUJ1ZmZlcj4gbV9hcnJheUJ1ZmZlcjsK
K307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQorCisjZW5kaWYgLy8gSlNXQVNNTW9kdWxlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257366</attachid>
            <date>2015-07-23 12:52:01 -0700</date>
            <delta_ts>2015-07-23 13:10:57 -0700</delta_ts>
            <desc>Remove m_arrayBuffer for now as per discussion.</desc>
            <filename>bug-147222-20150723125045.patch</filename>
            <type>text/plain</type>
            <size>11816</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NmNhNmQyZGZjNzQ2MDAxNTA2OGIzMDgzOGU0ZThkMDQxMmFhMWRkLi41ZTZmMjNiNzNjZDMwZDky
ZjFhM2M1ZDljNTZhZTRmN2FhYjU1ZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNS0wNy0yMyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNpbmcgdGhl
IGJvaWxlcnBsYXRlIGRhdGEgc3RydWN0dXJlIGZvciB0aGUgV2ViQXNzZW1ibHkgbW9kdWxlLgor
ICAgICAgICBXZWJBc3NlbWJseSBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgYWRkZWQgaW4gYSBzdWJz
ZXF1ZW50IHBhdGNoLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3YXNtL0pT
V0FTTU1vZHVsZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU1dBU01Nb2R1bGU6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIHdhc20vSlNXQVNNTW9kdWxlLmg6IEFkZGVkLgorICAgICAg
ICAoSlNDOjpKU1dBU01Nb2R1bGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTV0FTTU1vZHVs
ZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNXQVNNTW9kdWxlOjpKU1dBU01N
b2R1bGUpOgorCiAyMDE1LTA3LTIyICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21h
aWwuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVfV0VCQVNTRU1CTFkgZmVhdHVyZSBmbGFnIGZv
ciBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDA2Mjkx
YTBhMTAwZjMxY2Y3YjUyOTVlNGIxYzAzOTU5MjNlNjgxYmYuLmYzMjk1ZTVmODVjNDA2OGJmMWUw
YWJkMWRjZTE5NmQ0YmQzNTNiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTI2LDYgKzI2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3JlcGxheSIKICAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L3J1bnRpbWUiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS90b29scyIKKyAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3dhc20iCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS95
YXJyIgogICAgICIke1dURl9ESVJ9IgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9IgpAQCAt
NDA5LDYgKzQxMCw4IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgdG9vbHMvSlNE
b2xsYXJWTS5jcHAKICAgICB0b29scy9KU0RvbGxhclZNUHJvdG90eXBlLmNwcAogCisgICAgd2Fz
bS9KU1dBU01Nb2R1bGUuY3BwCisKICAgICB5YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcAogICAg
IHlhcnIvWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwCiAgICAgeWFyci9ZYXJySW50ZXJwcmV0ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ4NjIyZWIzMzI3MzE4ZGVjZWJi
MTI0MzYwYzQ2NzYxM2M1NjE1YjQuLmUxYzMxYzY3MzA3ZGFjNWIxYWQxZjA5NjY5NTliOTUwZTlk
OGQyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsOCBA
QAogCQk3MEVDQTYwOTFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeUtleS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2MDQxQUZE
QkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUVFMEJGRjFCNEFGQjg1MDAwMzg1Qzkg
LyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZp
cm9ubWVudC5jcHAgKi87IH07CiAJCTc5RUUwQzAwMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJs
ZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCOThEMTM2
MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpT
V0FTTU1vZHVsZS5jcHAgKi87IH07CisJCTdCOThEMTM3MUI2MENENjIwMDIzQjFBNCAvKiBKU1dB
U01Nb2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAwOENEQTE4NzEyNEJCMDA5
NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDgxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlz
ZURlZmVycmVkLmNwcCAqLzsgfTsKIAkJN0MwMDhDREIxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJv
bWlzZURlZmVycmVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzAwOENEOTE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAwOENFNzE4
NzYzMUI2MDA5NTVDMjQgLyogTWljcm90YXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAwOENFNTE4NzYzMUI2MDA5NTVDMjQgLyogTWljcm90YXNr
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3
NjcsNiArMjc2OSw4IEBACiAJCTcwRUNBNjA0MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJl
Z2lzdHJ5S2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBsYXRlUmVn
aXN0cnlLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkQxQjRBRkI4
NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVmFyaWFibGVFbnZpcm9ubWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5RUUwQkZFMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmly
b25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhcmlhYmxlRW52aXJv
bm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I5OEQxMzQxQjYwQ0Q1QTAw
MjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dBU01Nb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTV0FTTU1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9taXNlRGVmZXJyZWQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzAwOENEOTE4NzEyNEJCMDA5NTVD
MjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNQcm9taXNlRGVmZXJyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Mw
MDhDRTUxODc2MzFCNjAwOTU1QzI0IC8qIE1pY3JvdGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNaWNyb3Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTM2MjEsNiArMzYyNSw3IEBACiAJCQkJN0VGNkUwQkIwRUI3QTFFQzAwNzlBRkFGIC8qIHJ1bnRp
bWUgKi8sCiAJCQkJMTQxMjExMDAwQTQ4NzcyNjAwNDgwMjU1IC8qIHRlc3RzICovLAogCQkJCTg2
MDNDRUYwMTRDNzUzRUYwMEFFNTlFMyAvKiB0b29scyAqLywKKwkJCQk3Qjk4RDEzMzFCNjBDRDFF
MDAyM0IxQTQgLyogd2FzbSAqLywKIAkJCQk4NkVBQzQ4QzBGOTNFOEI5MDA4RUM5NDggLyogeWFy
ciAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNjcmlwdENvcmU7CkBAIC00MjgzLDYgKzQyODgs
MTUgQEAKIAkJCXBhdGggPSBkaXNhc3NlbWJsZXIvQVJNdjc7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0I5OEQxMzQxQjYwQ0Q1
QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi8sCisJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAw
MjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSB3YXNtOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJN0UzOUQ4MUQwRUMzOEVGQTAwM0FGMTFB
IC8qIGJ5dGVjb21waWxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC02MjY1LDYgKzYyNzksNyBAQAogCQkJCTBGMEZDNDVBMTRCRDE1RjUwMEI4MTE1NCAv
KiBMTEludENhbGxMaW5rSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDM0NEMDAxOUFEQTQx
MDAwNkFDNzJBIC8qIERGR0Jsb2NrV29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1
MDE4MUFBOTA5MTEwMEQzM0IzMyAvKiBEaXJlY3RBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTdCOThEMTM3MUI2MENENjIwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZFMjBDRTlFMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjA0Mzk2RTFCMDNEQzBCMDA5NTk4QjcgLyogREZHQ29tYmluZWRMaXZl
bmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQ0ExNEJCQjE2QzAwQkZFMjcyIC8qIExM
SW50Q29tbW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTc2MzEsNiArNzY0Niw3IEBACiAJCQkJRkU1
OTMyQTcxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdhdGNo
cG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8q
IFdlYWsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2RkM3NTAxOTYxMTBBODAwRTFEMDJEIC8q
IENvbXBsZXhHZXRTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmFjYjZmMTFhYjI5MGI0NTcx
Njc4ZmRlMzJjOWI0NDU2NTFiNDZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTV0FTTU1vZHVsZTo6c19pbmZv
ID0geyAiV0FTTU1vZHVsZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNXQVNNTW9kdWxlKSB9OworCit2b2lkIEpTV0FTTU1vZHVsZTo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTV0FTTU1vZHVsZSogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PEpTV0FTTU1vZHVsZSo+KGNlbGwpOworICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBCYXNlOjp2aXNpdENo
aWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAgIGZvciAoYXV0byBmdW5jdGlvbiA6IHRo
aXNPYmplY3QtPm1fZnVuY3Rpb25zKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmZnVuY3Rpb24p
OworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTY4YWNiZDJlMzQxMjBiZDdkODk3MTQ5MTEyODBhOWIwZDA2MDQ5NQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oCkBAIC0wLDAgKzEs
NjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIEpTV0FTTU1vZHVsZV9oCisjZGVmaW5lIEpTV0FTTU1vZHVsZV9oCisKKyNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsK
KworY2xhc3MgSlNXQVNNTW9kdWxlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworcHVibGlj
OgorICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOworCisgICAgc3RhdGljIEpTV0FT
TU1vZHVsZSogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAg
ICAgICBKU1dBU01Nb2R1bGUqIG1vZHVsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpT
V0FTTU1vZHVsZT4odm0uaGVhcCkpIEpTV0FTTU1vZHVsZSh2bSwgc3RydWN0dXJlKTsKKyAgICAg
ICAgbW9kdWxlLT5maW5pc2hDcmVhdGlvbih2bSk7CisgICAgICAgIHJldHVybiBtb2R1bGU7Cisg
ICAgfQorCisgICAgREVDTEFSRV9JTkZPOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwo
KSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsK
KworcHJpdmF0ZToKKyAgICBKU1dBU01Nb2R1bGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAgIH0KKworICAgIFZl
Y3RvcjxXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4+IG1fZnVuY3Rpb25zOworfTsKKworfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCisKKyNlbmRpZiAv
LyBKU1dBU01Nb2R1bGVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257370</attachid>
            <date>2015-07-23 13:11:01 -0700</date>
            <delta_ts>2015-07-23 16:50:37 -0700</delta_ts>
            <desc>Use jsCast instead of static_cast.</desc>
            <filename>bug-147222-20150723130945.patch</filename>
            <type>text/plain</type>
            <size>11811</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NmNhNmQyZGZjNzQ2MDAxNTA2OGIzMDgzOGU0ZThkMDQxMmFhMWRkLi41ZTZmMjNiNzNjZDMwZDky
ZjFhM2M1ZDljNTZhZTRmN2FhYjU1ZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNS0wNy0yMyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNpbmcgdGhl
IGJvaWxlcnBsYXRlIGRhdGEgc3RydWN0dXJlIGZvciB0aGUgV2ViQXNzZW1ibHkgbW9kdWxlLgor
ICAgICAgICBXZWJBc3NlbWJseSBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgYWRkZWQgaW4gYSBzdWJz
ZXF1ZW50IHBhdGNoLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3YXNtL0pT
V0FTTU1vZHVsZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU1dBU01Nb2R1bGU6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIHdhc20vSlNXQVNNTW9kdWxlLmg6IEFkZGVkLgorICAgICAg
ICAoSlNDOjpKU1dBU01Nb2R1bGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTV0FTTU1vZHVs
ZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNXQVNNTW9kdWxlOjpKU1dBU01N
b2R1bGUpOgorCiAyMDE1LTA3LTIyICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21h
aWwuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVfV0VCQVNTRU1CTFkgZmVhdHVyZSBmbGFnIGZv
ciBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDA2Mjkx
YTBhMTAwZjMxY2Y3YjUyOTVlNGIxYzAzOTU5MjNlNjgxYmYuLmYzMjk1ZTVmODVjNDA2OGJmMWUw
YWJkMWRjZTE5NmQ0YmQzNTNiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTI2LDYgKzI2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3JlcGxheSIKICAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L3J1bnRpbWUiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS90b29scyIKKyAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3dhc20iCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS95
YXJyIgogICAgICIke1dURl9ESVJ9IgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9IgpAQCAt
NDA5LDYgKzQxMCw4IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgdG9vbHMvSlNE
b2xsYXJWTS5jcHAKICAgICB0b29scy9KU0RvbGxhclZNUHJvdG90eXBlLmNwcAogCisgICAgd2Fz
bS9KU1dBU01Nb2R1bGUuY3BwCisKICAgICB5YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmNwcAogICAg
IHlhcnIvWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwCiAgICAgeWFyci9ZYXJySW50ZXJwcmV0ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ4NjIyZWIzMzI3MzE4ZGVjZWJi
MTI0MzYwYzQ2NzYxM2M1NjE1YjQuLmUxYzMxYzY3MzA3ZGFjNWIxYWQxZjA5NjY5NTliOTUwZTlk
OGQyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsOCBA
QAogCQk3MEVDQTYwOTFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeUtleS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzBFQ0E2MDQxQUZE
QkVBMjAwNDQ5NzM5IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3OUVFMEJGRjFCNEFGQjg1MDAwMzg1Qzkg
LyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZp
cm9ubWVudC5jcHAgKi87IH07CiAJCTc5RUUwQzAwMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJs
ZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCOThEMTM2
MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I5OEQxMzQxQjYwQ0Q1QTAwMjNCMUE0IC8qIEpT
V0FTTU1vZHVsZS5jcHAgKi87IH07CisJCTdCOThEMTM3MUI2MENENjIwMDIzQjFBNCAvKiBKU1dB
U01Nb2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCOThEMTM1MUI2MENENUEwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAwOENEQTE4NzEyNEJCMDA5
NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMDhDRDgxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlz
ZURlZmVycmVkLmNwcCAqLzsgfTsKIAkJN0MwMDhDREIxODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJv
bWlzZURlZmVycmVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzAwOENEOTE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAwOENFNzE4
NzYzMUI2MDA5NTVDMjQgLyogTWljcm90YXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAwOENFNTE4NzYzMUI2MDA5NTVDMjQgLyogTWljcm90YXNr
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3
NjcsNiArMjc2OSw4IEBACiAJCTcwRUNBNjA0MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJl
Z2lzdHJ5S2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlbXBsYXRlUmVn
aXN0cnlLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlFRTBCRkQxQjRBRkI4
NTAwMDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVmFyaWFibGVFbnZpcm9ubWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc5RUUwQkZFMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmly
b25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhcmlhYmxlRW52aXJv
bm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I5OEQxMzQxQjYwQ0Q1QTAw
MjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dBU01Nb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
Qjk4RDEzNTFCNjBDRDVBMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTV0FTTU1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QzAwOENEODE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9taXNlRGVmZXJyZWQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzAwOENEOTE4NzEyNEJCMDA5NTVD
MjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNQcm9taXNlRGVmZXJyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Mw
MDhDRTUxODc2MzFCNjAwOTU1QzI0IC8qIE1pY3JvdGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNaWNyb3Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTM2MjEsNiArMzYyNSw3IEBACiAJCQkJN0VGNkUwQkIwRUI3QTFFQzAwNzlBRkFGIC8qIHJ1bnRp
bWUgKi8sCiAJCQkJMTQxMjExMDAwQTQ4NzcyNjAwNDgwMjU1IC8qIHRlc3RzICovLAogCQkJCTg2
MDNDRUYwMTRDNzUzRUYwMEFFNTlFMyAvKiB0b29scyAqLywKKwkJCQk3Qjk4RDEzMzFCNjBDRDFF
MDAyM0IxQTQgLyogd2FzbSAqLywKIAkJCQk4NkVBQzQ4QzBGOTNFOEI5MDA4RUM5NDggLyogeWFy
ciAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNjcmlwdENvcmU7CkBAIC00MjgzLDYgKzQyODgs
MTUgQEAKIAkJCXBhdGggPSBkaXNhc3NlbWJsZXIvQVJNdjc7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0I5OEQxMzQxQjYwQ0Q1
QTAwMjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5jcHAgKi8sCisJCQkJN0I5OEQxMzUxQjYwQ0Q1QTAw
MjNCMUE0IC8qIEpTV0FTTU1vZHVsZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSB3YXNtOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJN0UzOUQ4MUQwRUMzOEVGQTAwM0FGMTFB
IC8qIGJ5dGVjb21waWxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC02MjY1LDYgKzYyNzksNyBAQAogCQkJCTBGMEZDNDVBMTRCRDE1RjUwMEI4MTE1NCAv
KiBMTEludENhbGxMaW5rSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDM0NEMDAxOUFEQTQx
MDAwNkFDNzJBIC8qIERGR0Jsb2NrV29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1
MDE4MUFBOTA5MTEwMEQzM0IzMyAvKiBEaXJlY3RBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTdCOThEMTM3MUI2MENENjIwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZFMjBDRTlFMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjA0Mzk2RTFCMDNEQzBCMDA5NTk4QjcgLyogREZHQ29tYmluZWRMaXZl
bmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQ0ExNEJCQjE2QzAwQkZFMjcyIC8qIExM
SW50Q29tbW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTc2MzEsNiArNzY0Niw3IEBACiAJCQkJRkU1
OTMyQTcxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRUQ5NEYyRTE3MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkVEOTRGMzAxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nTWFjLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTdCOThEMTM2MUI2MENENUYwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMjUxNTg1M0NFMDAwNEE0RTdEIC8qIFdhdGNo
cG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8q
IFdlYWsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2RkM3NTAxOTYxMTBBODAwRTFEMDJEIC8q
IENvbXBsZXhHZXRTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTJiMGMxNzFmY2ZlYzIwYzFk
ZjAxZDI1MThmZDkwNjU2YjMzMTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkpTV0FTTU1vZHVsZS5oIgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorCisj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTV0FTTU1vZHVsZTo6c19pbmZv
ID0geyAiV0FTTU1vZHVsZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNXQVNNTW9kdWxlKSB9OworCit2b2lkIEpTV0FTTU1vZHVsZTo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTV0FTTU1vZHVsZSogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1dBU01Nb2R1bGUqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJl
bih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKKyAgICBmb3IgKGF1dG8gZnVuY3Rpb24gOiB0aGlzT2Jq
ZWN0LT5tX2Z1bmN0aW9ucykKKyAgICAgICAgdmlzaXRvci5hcHBlbmQoJmZ1bmN0aW9uKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2OGFj
YmQyZTM0MTIwYmQ3ZDg5NzE0OTExMjgwYTliMGQwNjA0OTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuaApAQCAtMCwwICsxLDY4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBK
U1dBU01Nb2R1bGVfaAorI2RlZmluZSBKU1dBU01Nb2R1bGVfaAorCisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2Ns
YXNzIEpTV0FTTU1vZHVsZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAgIHN0YXRpYyBKU1dBU01Nb2R1
bGUqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAg
SlNXQVNNTW9kdWxlKiBtb2R1bGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1dBU01N
b2R1bGU+KHZtLmhlYXApKSBKU1dBU01Nb2R1bGUodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIG1v
ZHVsZS0+ZmluaXNoQ3JlYXRpb24odm0pOworICAgICAgICByZXR1cm4gbW9kdWxlOworICAgIH0K
KworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgeworICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCksIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CisKK3By
aXZhdGU6CisgICAgSlNXQVNNTW9kdWxlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisg
ICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIHsKKyAgICB9CisKKyAgICBWZWN0b3I8
V3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+PiBtX2Z1bmN0aW9uczsKK307CisKK30gLy8gbmFtZXNw
YWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQorCisjZW5kaWYgLy8gSlNX
QVNNTW9kdWxlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257407</attachid>
            <date>2015-07-23 16:47:02 -0700</date>
            <delta_ts>2015-07-23 18:27:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147222-20150723164545.patch</filename>
            <type>text/plain</type>
            <size>1507</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZmY2YzFkZGMxZjhkZmUyMDJmNGRmYzcxMjFjMTk0M2Y3OTBhZTQ2Li5jMjFhNzJiOWI0NDc2Yzhm
ZTk2OTQyMGFiYWFkZGMxN2U2OTNjMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTMs
NiArMywxNyBAQAogICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlcwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjIyCiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBKU1dBU01Nb2R1
bGUgaW5oZXJpdCBmcm9tIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHNvIHRoYXQgdGhlIGRlc3RydWN0
b3IgaXMgY2FsbGVkLiAKKworICAgICAgICAqIHdhc20vSlNXQVNNTW9kdWxlLmg6CisKKzIwMTUt
MDctMjMgIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IFdlYkFzc2VtYmx5IG1vZHVsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzIyMgorCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
cmsgTGFtLgogCiAgICAgICAgIEludHJvZHVjaW5nIHRoZSBib2lsZXJwbGF0ZSBkYXRhIHN0cnVj
dHVyZSBmb3IgdGhlIFdlYkFzc2VtYmx5IG1vZHVsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vSlNXQVNNTW9kdWxlLmgKaW5kZXggNTY4YWNiZDJlMzQxMjBiZDdkODk3MTQ5MTEyODBhOWIw
ZDA2MDQ5NS4uOGFkOWUzYjg5MWFlODU2M2U2ODA3OTNiODdhOWU1MTRkNjkxMDc1YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKQEAgLTI4LDEzICsyOCwxMyBA
QAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNp
bmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xh
c3MgSlNXQVNNTW9kdWxlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworY2xhc3MgSlNXQVNN
TW9kdWxlIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBl
ZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNXQVNNTW9kdWxlKiBjcmVhdGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7Cg==
</data>
<flag name="review"
          id="282565"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="282566"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257416</attachid>
            <date>2015-07-23 18:27:35 -0700</date>
            <delta_ts>2015-07-23 18:32:35 -0700</delta_ts>
            <desc>Fix ChangeLog</desc>
            <filename>fix-changelog.patch</filename>
            <type>text/plain</type>
            <size>1564</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZmY2YzFkZGMxZjhkZmUyMDJmNGRmYzcxMjFjMTk0M2Y3OTBhZTQ2Li5jMjFhNzJiOWI0NDc2Yzhm
ZTk2OTQyMGFiYWFkZGMxN2U2OTNjMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
OCArMSwxOSBAQAorMjAxNS0wNy0yMyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBKU1dBU01Nb2R1
bGUgaW5oZXJpdCBmcm9tIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHNvIHRoYXQgdGhlIGRlc3RydWN0
b3IgaXMgY2FsbGVkLiAKKworICAgICAgICAqIHdhc20vSlNXQVNNTW9kdWxlLmg6CisKIDIwMTUt
MDctMjMgIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAg
ICAgSW1wbGVtZW50IFdlYkFzc2VtYmx5IG1vZHVsZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzIyMgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
cmsgTGFtLgogCiAgICAgICAgIEludHJvZHVjaW5nIHRoZSBib2lsZXJwbGF0ZSBkYXRhIHN0cnVj
dHVyZSBmb3IgdGhlIFdlYkFzc2VtYmx5IG1vZHVsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vSlNXQVNNTW9kdWxlLmgKaW5kZXggNTY4YWNiZDJlMzQxMjBiZDdkODk3MTQ5MTEyODBhOWIw
ZDA2MDQ5NS4uOGFkOWUzYjg5MWFlODU2M2U2ODA3OTNiODdhOWU1MTRkNjkxMDc1YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKQEAgLTI4LDEzICsyOCwxMyBA
QAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKKyNp
bmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xh
c3MgSlNXQVNNTW9kdWxlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworY2xhc3MgSlNXQVNN
TW9kdWxlIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBl
ZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICB0eXBlZGVmIEpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNXQVNNTW9kdWxlKiBjcmVhdGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257417</attachid>
            <date>2015-07-23 18:32:13 -0700</date>
            <delta_ts>2015-07-23 19:36:59 -0700</delta_ts>
            <desc>Fix ChangeLog</desc>
            <filename>bug-147222-20150723183057.patch</filename>
            <type>text/plain</type>
            <size>1411</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZGY0ZDU0ZjQ4NDliZjUyMTYyMGQ4NWNlYzc2NmU5OThlZGE1MTM5Li4zZGI5OGI3NTc2MmJiNDQ2
MDQ2NTVjMjhkMDg3ZGVmZWQxNWQyOGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wNy0yMyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViQXNzZW1ibHkgbW9kdWxlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBKU1dBU01Nb2R1
bGUgaW5oZXJpdCBmcm9tIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHNvIHRoYXQgdGhlIGRlc3RydWN0
b3IgaXMgY2FsbGVkLgorCisgICAgICAgICogd2FzbS9KU1dBU01Nb2R1bGUuaDoKKwogMjAxNS0w
Ny0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBjb21waWxlIGFuZCBydW50aW1lIGZsYWdzIGZvciBwcm9taXNlcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgKaW5kZXggNTY4YWNiZDJlMzQxMjBi
ZDdkODk3MTQ5MTEyODBhOWIwZDA2MDQ5NS4uOGFkOWUzYjg5MWFlODU2M2U2ODA3OTNiODdhOWU1
MTRkNjkxMDc1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNN
TW9kdWxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmgK
QEAgLTI4LDEzICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVk
ZSAiSlNPYmplY3QuaCIKKyNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAotY2xhc3MgSlNXQVNNTW9kdWxlIDogcHVibGljIEpTTm9uRmluYWxPYmpl
Y3QgeworY2xhc3MgSlNXQVNNTW9kdWxlIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICB0eXBlZGVm
IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNXQVNNTW9kdWxlKiBj
cmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>