<?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>112536</bug_id>
          
          <creation_ts>2013-03-18 00:47:12 -0700</creation_ts>
          <short_desc>ewk_settings_memory_cache_clear should clear JS garbage and release FastMalloc&apos;s free pages to OS</short_desc>
          <delta_ts>2013-03-20 04:07:15 -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>WebKit EFL</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jose Lejin PJ">jose.lejin</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>morrita</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>856879</commentid>
    <comment_count>0</comment_count>
    <who name="Jose Lejin PJ">jose.lejin</who>
    <bug_when>2013-03-18 00:47:12 -0700</bug_when>
    <thetext>ewk_settings_memory_cache_clear() should clear JS garbage and release FastMalloc&apos;s free pages to OS

In Qt recently patch landed https://bugs.webkit.org/show_bug.cgi?id=111094 / https://bugs.webkit.org/show_bug.cgi?id=111605.
Same logic applies to EFL also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856950</commentid>
    <comment_count>1</comment_count>
      <attachid>193515</attachid>
    <who name="Jose Lejin PJ">jose.lejin</who>
    <bug_when>2013-03-18 03:29:54 -0700</bug_when>
    <thetext>Created attachment 193515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856956</commentid>
    <comment_count>2</comment_count>
      <attachid>193518</attachid>
    <who name="Jose Lejin PJ">jose.lejin</who>
    <bug_when>2013-03-18 03:33:03 -0700</bug_when>
    <thetext>Created attachment 193518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858091</commentid>
    <comment_count>3</comment_count>
      <attachid>193770</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-19 02:47:33 -0700</bug_when>
    <thetext>Created attachment 193770
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858110</commentid>
    <comment_count>4</comment_count>
    <who name="Jose Lejin PJ">jose.lejin</who>
    <bug_when>2013-03-19 03:20:07 -0700</bug_when>
    <thetext>Morrita is the patch related to this issue ? Please explain.
(In reply to comment #3)
&gt; Created an attachment (id=193770) [details]
&gt; WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858178</commentid>
    <comment_count>5</comment_count>
      <attachid>193795</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-19 04:59:38 -0700</bug_when>
    <thetext>Created attachment 193795
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859006</commentid>
    <comment_count>6</comment_count>
      <attachid>193795</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-19 20:05:26 -0700</bug_when>
    <thetext>Comment on attachment 193795
WIP

Ooops. Uploaded to the wrong bug. Sorry for disturbance...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859012</commentid>
    <comment_count>7</comment_count>
    <who name="Jose Lejin PJ">jose.lejin</who>
    <bug_when>2013-03-19 20:23:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=193518) [details]
&gt; Patch

Changed this to active patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859187</commentid>
    <comment_count>8</comment_count>
      <attachid>193518</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-03-20 02:13:15 -0700</bug_when>
    <thetext>Comment on attachment 193518
Patch

Looks good to me. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859191</commentid>
    <comment_count>9</comment_count>
      <attachid>193518</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-03-20 02:15:10 -0700</bug_when>
    <thetext>Comment on attachment 193518
Patch

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

&gt; Source/WebKit/efl/ChangeLog:7
&gt; +

Though this bug title represents patch, I prefer to write detail description here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859212</commentid>
    <comment_count>10</comment_count>
      <attachid>194010</attachid>
    <who name="Jose Lejin PJ">jose.lejin</who>
    <bug_when>2013-03-20 03:08:12 -0700</bug_when>
    <thetext>Created attachment 194010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859213</commentid>
    <comment_count>11</comment_count>
    <who name="Jose Lejin PJ">jose.lejin</who>
    <bug_when>2013-03-20 03:09:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 193518 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193518&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; Though this bug title represents patch, I prefer to write detail description here.

Thanks Kim. I updated changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859230</commentid>
    <comment_count>12</comment_count>
      <attachid>194010</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 04:07:09 -0700</bug_when>
    <thetext>Comment on attachment 194010
Patch

Clearing flags on attachment: 194010

Committed r146322: &lt;http://trac.webkit.org/changeset/146322&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859231</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 04:07:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>193515</attachid>
            <date>2013-03-18 03:29:54 -0700</date>
            <delta_ts>2013-03-18 03:32:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112536-20130318155022.patch</filename>
            <type>text/plain</type>
            <size>1850</size>
            <attacher name="Jose Lejin PJ">jose.lejin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCShyZXZpc2lvbiAxNDYw
NDkpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdD
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUgIkltYWdl
LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgpAQCAtMzcsMTQgKzM4LDE3IEBACiAjaW5jbHVkZSAi
UGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU3RvcmFnZVRocmVhZC5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViS2l0VmVyc2lvbi5oIgorI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWluYS5o
PgogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAj
aW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d3RmL0Zh
c3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIApAQCAtMjk5LDYgKzMwMywxOCBAQCB2b2lkIGV3
a19zZXR0aW5nc19tZW1vcnlfY2FjaGVfY2xlYXIoKQogCiAgICAgLy8gRW1wdHkgdGhlIENyb3Nz
LU9yaWdpbiBQcmVmbGlnaHQgY2FjaGUKICAgICBXZWJDb3JlOjpDcm9zc09yaWdpblByZWZsaWdo
dFJlc3VsdENhY2hlOjpzaGFyZWQoKS5lbXB0eSgpOworCisgICAgLy8gRHJvcCBKSVQgY29tcGls
ZWQgY29kZSBmcm9tIEV4ZWN1dGFibGVBbGxvY2F0b3IuCisgICAgV2ViQ29yZTo6Z2NDb250cm9s
bGVyKCkuZGlzY2FyZEFsbENvbXBpbGVkQ29kZSgpOworICAgIC8vIEdhcmJhZ2UgQ29sbGVjdCB0
byByZWxlYXNlIHRoZSByZWZlcmVuY2VzIG9mIENhY2hlZFJlc291cmNlIGZyb20gZGVhZCBvYmpl
Y3RzLgorICAgIFdlYkNvcmU6OmdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7CisK
KyAgICAvLyBGYXN0TWFsbG9jIGhhcyBsb2NrLWZyZWUgdGhyZWFkIHNwZWNpZmljIGNhY2hlcyB0
aGF0IGNhbiBvbmx5IGJlIGNsZWFyZWQgZnJvbSB0aGUgdGhyZWFkIGl0c2VsZi4KKyAgICBXZWJD
b3JlOjpTdG9yYWdlVGhyZWFkOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVh
ZHMoKTsKKyNpZiBFTkFCTEUoV09SS0VSUykKKyAgICBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnJl
bGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcygpOworI2VuZGlmCisgICAgV1RG
OjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKTsKIH0KIAogdm9pZCBld2tfc2V0dGluZ3Nf
cmVwYWludF90aHJvdHRsaW5nX3NldChkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVsYXksIGRvdWJs
ZSBpbml0aWFsRGVmZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nLCBkb3VibGUgbWF4RGVm
ZXJyZWRSZXBhaW50RGVsYXlEdXJpbmdMb2FkaW5nLCBkb3VibGUgZGVmZXJyZWRSZXBhaW50RGVs
YXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193518</attachid>
            <date>2013-03-18 03:33:03 -0700</date>
            <delta_ts>2013-03-20 03:08:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112536-20130318155331.patch</filename>
            <type>text/plain</type>
            <size>2509</size>
            <attacher name="Jose Lejin PJ">jose.lejin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjA1MCkKKysrIFNvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTE4
ICBKb3NlIExlamluIFBKICA8am9zZS5sZWppbkBnbWFpbC5jb20+CisKKyAgICAgICAgZXdrX3Nl
dHRpbmdzX21lbW9yeV9jYWNoZV9jbGVhciBzaG91bGQgY2xlYXIgSlMgZ2FyYmFnZSBhbmQgcmVs
ZWFzZSBGYXN0TWFsbG9jJ3MgZnJlZSBwYWdlcyB0byBPUworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKGV3a19zZXR0aW5nc19tZW1vcnlfY2FjaGVfY2xlYXIpOgorCiAyMDEzLTAzLTE1ICBOYXRl
IENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSGlkZSBNYWluUmVzb3Vy
Y2VMb2FkZXIgZnJvbSB0aGUgb3V0c2lkZSB3b3JsZApJbmRleDogU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19zZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19zZXR0aW5ncy5jcHAJKHJldmlzaW9uIDE0NjA0OSkKKysrIFNvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfc2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiRGF0YWJhc2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR0NDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
SWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
CkBAIC0zNywxNCArMzgsMTcgQEAKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJTdG9yYWdlVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRyYWNrZXIuaCIKICNpbmNsdWRl
ICJXZWJLaXRWZXJzaW9uLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAi
ZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFaW5hLmg+CiAjaW5jbHVkZSA8ZWluYV9zYWZldHlf
Y2hlY2tzLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNs
dWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5o
PgogCkBAIC0yOTksNiArMzAzLDE4IEBAIHZvaWQgZXdrX3NldHRpbmdzX21lbW9yeV9jYWNoZV9j
bGVhcigpCiAKICAgICAvLyBFbXB0eSB0aGUgQ3Jvc3MtT3JpZ2luIFByZWZsaWdodCBjYWNoZQog
ICAgIFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmVt
cHR5KCk7CisKKyAgICAvLyBEcm9wIEpJVCBjb21waWxlZCBjb2RlIGZyb20gRXhlY3V0YWJsZUFs
bG9jYXRvci4KKyAgICBXZWJDb3JlOjpnY0NvbnRyb2xsZXIoKS5kaXNjYXJkQWxsQ29tcGlsZWRD
b2RlKCk7CisgICAgLy8gR2FyYmFnZSBDb2xsZWN0IHRvIHJlbGVhc2UgdGhlIHJlZmVyZW5jZXMg
b2YgQ2FjaGVkUmVzb3VyY2UgZnJvbSBkZWFkIG9iamVjdHMuCisgICAgV2ViQ29yZTo6Z2NDb250
cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsKKworICAgIC8vIEZhc3RNYWxsb2MgaGFzIGxv
Y2stZnJlZSB0aHJlYWQgc3BlY2lmaWMgY2FjaGVzIHRoYXQgY2FuIG9ubHkgYmUgY2xlYXJlZCBm
cm9tIHRoZSB0aHJlYWQgaXRzZWxmLgorICAgIFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnJlbGVh
c2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcygpOworI2lmIEVOQUJMRShXT1JLRVJT
KQorICAgIFdlYkNvcmU6OldvcmtlclRocmVhZDo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5
SW5BbGxUaHJlYWRzKCk7CisjZW5kaWYKKyAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1l
bW9yeSgpOwogfQogCiB2b2lkIGV3a19zZXR0aW5nc19yZXBhaW50X3Rocm90dGxpbmdfc2V0KGRv
dWJsZSBkZWZlcnJlZFJlcGFpbnREZWxheSwgZG91YmxlIGluaXRpYWxEZWZlcnJlZFJlcGFpbnRE
ZWxheUR1cmluZ0xvYWRpbmcsIGRvdWJsZSBtYXhEZWZlcnJlZFJlcGFpbnREZWxheUR1cmluZ0xv
YWRpbmcsIGRvdWJsZSBkZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193770</attachid>
            <date>2013-03-19 02:47:33 -0700</date>
            <delta_ts>2013-03-19 04:59:33 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-112536-20130319184323.patch</filename>
            <type>text/plain</type>
            <size>18053</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9DdXN0b21FbGVtZW50SGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9DdXN0b21FbGVtZW50SGVscGVycy5jcHAKaW5kZXggMmNkNWNhNDAxZTdhNGMzNzM2
OTYxOTI5ZTBmODExOGEyMDEzNThlMy4uNjY0ZWRiYmJlYzI5OWI2Zjc5MzQ3Mjc2YzA5NGQ4NTA0
MzE4YTkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQ3VzdG9tRWxl
bWVudEhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0N1c3RvbUVs
ZW1lbnRIZWxwZXJzLmNwcApAQCAtMzEsNyArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRIZWxwZXJzLmgiCiAKKyNpbmNsdWRlICJDdXN0b21FbGVt
ZW50UmVnaXN0cnkuaCIKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21FbGVtZW50Q29uc3RydWN0b3Iu
aCIKICNpbmNsdWRlICJWOEhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKICNpbmNsdWRlICJW
OEhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCkBAIC0xMzgsNiArMTQwLDQ0IEBAIGNvbnN0IFF1YWxp
ZmllZE5hbWUqIEN1c3RvbUVsZW1lbnRIZWxwZXJzOjpmaW5kTG9jYWxOYW1lKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4KICAgICByZXR1cm4gZmluZEhUTUxUYWdOYW1lT2ZWOFR5cGUodHlwZSk7CiB9
CiAKK3ZvaWQgQ3VzdG9tRWxlbWVudEhlbHBlcnM6Omludm9rZUNyZWF0ZWRDYWxsYmFja0lmTmVl
ZGVkKEVsZW1lbnQqIGVsZW1lbnQsIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQpCit7
CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXJWYWx1ZSA9IHRvVjgoZWxlbWVudCwg
Y29udGV4dC0+R2xvYmFsKCksIGNvbnRleHQtPkdldElzb2xhdGUoKSk7CisgICAgaWYgKHdyYXBw
ZXJWYWx1ZS5Jc0VtcHR5KCkgfHwgIXdyYXBwZXJWYWx1ZS0+SXNPYmplY3QoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3Qod3JhcHBlclZhbHVlKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gcHJvdG90eXBlVmFsdWUgPSB3cmFwcGVyLT5HZXRQcm90b3R5cGUoKTsKKyAgICBpZiAocHJv
dG90eXBlVmFsdWUuSXNFbXB0eSgpIHx8ICFwcm90b3R5cGVWYWx1ZS0+SXNPYmplY3QoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcHJvdG90eXBlID0gdjg6
OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChwcm90b3R5cGVWYWx1ZSk7CisgICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGZ1bmN0aW9uVmFsdWUgPSBwcm90b3R5cGUtPkdldCh2ODo6U3RyaW5nOjpO
ZXdTeW1ib2woImNyZWF0ZWQiKSk7CisgICAgaWYgKGZ1bmN0aW9uVmFsdWUuSXNFbXB0eSgpIHx8
ICFmdW5jdGlvblZhbHVlLT5Jc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHY4
OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
Pjo6Q2FzdChmdW5jdGlvblZhbHVlKTsKKyAgICB2ODo6VHJ5Q2F0Y2ggZXhjZXB0aW9uQ2F0Y2hl
cjsKKyAgICBleGNlcHRpb25DYXRjaGVyLlNldFZlcmJvc2UodHJ1ZSk7CisgICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGFyZ3NbXSA9IHsgfTsKKyAgICBTY3JpcHRDb250cm9sbGVyOjpjYWxsRnVu
Y3Rpb25XaXRoSW5zdHJ1bWVudGF0aW9uKGVsZW1lbnQtPmRvY3VtZW50KCksIGZ1bmN0aW9uLCB3
cmFwcGVyLCAwLCBhcmdzKTsKK30KKworCit2b2lkIEN1c3RvbUVsZW1lbnRIZWxwZXJzOjppbnZv
a2VDcmVhdGVkQ2FsbGJhY2tzSWZOZWVkZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZXhlY3V0
aW9uQ29udGV4dCwgY29uc3QgVmVjdG9yPEN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uPiYgaW52b2Nh
dGlvbnMpCit7CisgICAgQVNTRVJUKCFpbnZvY2F0aW9ucy5pc0VtcHR5KCkpOworCisgICAgdjg6
OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNv
bnRleHQgPSB0b1Y4Q29udGV4dChleGVjdXRpb25Db250ZXh0LCBtYWluVGhyZWFkTm9ybWFsV29y
bGQoKSk7CisgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAg
djg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKGNvbnRleHQpOworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBpbnZvY2F0aW9ucy5zaXplKCk7ICsraSkgeworICAgICAgICBBU1NFUlQoZXhlY3V0
aW9uQ29udGV4dCA9PSBpbnZvY2F0aW9uc1tpXS5lbGVtZW50KCktPmRvY3VtZW50KCkpOworICAg
ICAgICBpbnZva2VDcmVhdGVkQ2FsbGJhY2tJZk5lZWRlZChpbnZvY2F0aW9uc1tpXS5lbGVtZW50
KCksIGNvbnRleHQpOworICAgIH0KK30KKwogI2VuZGlmIC8vIEVOQUJMRShDVVNUT01fRUxFTUVO
VFMpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0N1c3RvbUVsZW1lbnRIZWxwZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9DdXN0b21FbGVtZW50SGVscGVycy5oCmluZGV4IGYyOTBmNTQ4ODBkMDk3NDI1NzJh
OWRkNGY4NDI5NzBlYzBiYjUxMDguLmQ1MWZmYjMyMjAzYzVjNmNmZmZkMTAzZWUxYjI1ZjJmOThl
MmJkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0N1c3RvbUVsZW1l
bnRIZWxwZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQ3VzdG9tRWxlbWVu
dEhlbHBlcnMuaApAQCAtMzMsMTIgKzMzLDE1IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQogCiBj
bGFzcyBDdXN0b21FbGVtZW50Q29uc3RydWN0b3I7CitjbGFzcyBDdXN0b21FbGVtZW50SW52b2Nh
dGlvbjsKK2NsYXNzIEVsZW1lbnQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgU2NyaXB0
U3RhdGU7CiAKQEAgLTUyLDYgKzU1LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0Zl
YXR1cmVBbGxvd2VkKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+KTsKICAgICBzdGF0aWMgV3JhcHBl
clR5cGVJbmZvKiBmaW5kV3JhcHBlclR5cGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoYWluKTsK
ICAgICBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSogZmluZExvY2FsTmFtZSh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IGNoYWluKTsKKworICAgIHN0YXRpYyB2b2lkIGludm9rZUNyZWF0ZWRDYWxs
YmFja3NJZk5lZWRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVmVjdG9yPEN1c3Rv
bUVsZW1lbnRJbnZvY2F0aW9uPiYpOworCitwcml2YXRlOgorICAgIHN0YXRpYyB2b2lkIGludm9r
ZUNyZWF0ZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQqLCB2ODo6SGFuZGxlPHY4OjpDb250ZXh0
Pik7CiB9OwogCiAjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhSZWN1cnNpb25TY29wZS5jcHAKaW5kZXggYmQ5MjQ4MTUy
OTJkOWYwYWJmZjJkZDRiYjA2Nzc2MDAxYTFiNzY3Yy4uMmMyZjk1NTJmNmFjYzNmZTJmNTY2MGI4
MTM4YzNlMWE4YWQ4ZmZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhSZWN1cnNpb25TY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhS
ZWN1cnNpb25TY29wZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJWOFJlY3Vyc2lvblNjb3BlLmgiCiAKKyNpbmNsdWRlICJDdXN0b21FbGVtZW50
UmVnaXN0cnkuaCIKICNpbmNsdWRlICJJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCiAj
aW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogCkBAIC00Niw4ICs0NywxMiBAQCB2b2lkIFY4
UmVjdXJzaW9uU2NvcGU6OmRpZExlYXZlU2NyaXB0Q29udGV4dCgpCiAgICAgSURCUGVuZGluZ1Ry
YW5zYWN0aW9uTW9uaXRvcjo6ZGVhY3RpdmF0ZU5ld1RyYW5zYWN0aW9ucygpOwogI2VuZGlmCiAK
LSAgICBpZiAobV9pc0RvY3VtZW50Q29udGV4dCkKKyAgICBpZiAobV9pc0RvY3VtZW50Q29udGV4
dCkgewogICAgICAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7Cisj
aWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKKyAgICAgICAgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
OjpkZWxpdmVyQWxsTGlmZWN5Y2xlQ2FsbGJhY2tzKCk7CisjZW5kaWYKKyAgICB9CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0
b21FbGVtZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1l
bnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzQzMTk3MThlN2FjNDlmMGY1OGE3ZmZjOTNmZWFkOTU2
YzVlMDNiYy4uOGIzMmRhZjU1MWQ4ZjU0MzhlYTRlZjAxYzMxOGRkMmNlOGI5MjUzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTYz
LDcgKzYzLDE1IEBAIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcjo6fkN1c3RvbUVsZW1lbnRDb25z
dHJ1Y3RvcigpCiB7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gQ3VzdG9tRWxlbWVudENvbnN0
cnVjdG9yOjpjcmVhdGVFbGVtZW50KCkgY29uc3QKK1Bhc3NSZWZQdHI8RWxlbWVudD4gQ3VzdG9t
RWxlbWVudENvbnN0cnVjdG9yOjpjcmVhdGVFbGVtZW50KCkKK3sKKyAgICBSZWZQdHI8RWxlbWVu
dD4gY3JlYXRlZCA9IGNyZWF0ZUVsZW1lbnRJbnRlcm5hbCgpOworICAgIGlmIChjcmVhdGVkKQor
ICAgICAgICBkb2N1bWVudCgpLT5kaWRDcmVhdGVDdXN0b21FbGVtZW50KGNyZWF0ZWQuZ2V0KCks
IHRoaXMpOworICAgIHJldHVybiBjcmVhdGVkLnJlbGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxF
bGVtZW50PiBDdXN0b21FbGVtZW50Q29uc3RydWN0b3I6OmNyZWF0ZUVsZW1lbnRJbnRlcm5hbCgp
CiB7CiAgICAgaWYgKCFkb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuaAppbmRleCAwZWVkNzlhZTU4Mzli
M2M4ZDNkNDZjMmUxMWMyODhlMmZmYTg4OGI0Li45YWNjY2Q3ZDdlNWRiOGIxODJlMjAyNjYyZTA4
ZGM5YjQzYmRkNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVu
dENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRDb25z
dHJ1Y3Rvci5oCkBAIC01OSwxMiArNTksMTUgQEAgcHVibGljOgogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsgfQogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIHR5cGVOYW1lKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlTmFtZTsgfQogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGxvY2Fs
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxOYW1lOyB9CisgICAgYm9vbCBpc0V4dGVuZGVk
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlTmFtZSAhPSBtX2xvY2FsTmFtZTsgfQogCi0gICAgUGFz
c1JlZlB0cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50KCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxF
bGVtZW50PiBjcmVhdGVFbGVtZW50KCk7CiAKIHByaXZhdGU6CiAgICAgQ3VzdG9tRWxlbWVudENv
bnN0cnVjdG9yKERvY3VtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgdHlwZU5hbWUsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGxvY2FsTmFtZSk7CiAKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRJbnRlcm5hbCgpOworCiAgICAgUXVhbGlmaWVkTmFtZSBtX3R5cGVOYW1lOwog
ICAgIFF1YWxpZmllZE5hbWUgbV9sb2NhbE5hbWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAppbmRleCA2YzI4ZjI4MTkyM2I4YmZmNzM0ZDJjMjc2
ODA5M2U5MWUyMzMxOGY0Li44NGQ1MmIwODNiN2MwYTFkMTVmMTMwZmFlY2FiYzgzYTM4OTAxNTQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcApAQCAt
NDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkhUTUxVbmtub3duRWxlbWVudC5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNW
R05hbWVzLmgiCkBAIC01NCwxMyArNTUsMzIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitD
dXN0b21FbGVtZW50SW52b2NhdGlvbjo6Q3VzdG9tRWxlbWVudEludm9jYXRpb24oUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCit7Cit9CisKK0N1
c3RvbUVsZW1lbnRJbnZvY2F0aW9uOjp+Q3VzdG9tRWxlbWVudEludm9jYXRpb24oKQoreworfQor
Cit0eXBlZGVmIEhhc2hTZXQ8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5Kj4gQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5U2V0OworCitzdGF0aWMgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5U2V0JiBhY3RpdmVDdXN0
b21FbGVtZW50UmVnaXN0cmllcygpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXN0b21F
bGVtZW50UmVnaXN0cnlTZXQsIGFjdGl2ZUluc3RhbmNlcywgKCkpOworICAgIHJldHVybiBhY3Rp
dmVJbnN0YW5jZXM7Cit9CisKIEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6Q3VzdG9tRWxlbWVudFJl
Z2lzdHJ5KERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyKGRvY3VtZW50KQorICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKIHsKIH0KIAogQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5Ojp+Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5KCkKIHsKKyAgICBkZWFjdGl2YXRl
KCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBuYW1lSW5jbHVkZXNIeXBoZW4oY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKQpAQCAtMTkzLDExICsyMTMsNjIgQEAgUGFzc1JlZlB0cjxFbGVtZW50
PiBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbG8KICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmRp
ZEdpdmVUeXBlRXh0ZW5zaW9uKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgUmVmUHRyPEN1c3Rv
bUVsZW1lbnRDb25zdHJ1Y3Rvcj4gY29uc3RydWN0b3IgPSBmaW5kRm9yKGVsZW1lbnQpOworICAg
IGlmICghY29uc3RydWN0b3IgfHwgIWNvbnN0cnVjdG9yLT5pc0V4dGVuZGVkKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2ludm9jYXRpb25zLmFwcGVuZChDdXN0b21FbGVtZW50SW52b2NhdGlv
bihlbGVtZW50KSk7CisgICAgYWN0aXZhdGUoKTsKK30KKwordm9pZCBDdXN0b21FbGVtZW50UmVn
aXN0cnk6OmRpZENyZWF0ZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBtX2ludm9j
YXRpb25zLmFwcGVuZChDdXN0b21FbGVtZW50SW52b2NhdGlvbihlbGVtZW50KSk7CisgICAgYWN0
aXZhdGUoKTsKK30KKwordm9pZCBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmFjdGl2YXRlKCkKK3sK
KyAgICBpZiAobV9pc0FjdGl2ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faXNBY3RpdmUgPSB0
cnVlOworICAgIGFjdGl2ZUN1c3RvbUVsZW1lbnRSZWdpc3RyaWVzKCkuYWRkKHRoaXMpOworfQor
Cit2b2lkIEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6ZGVhY3RpdmF0ZSgpCit7CisgICAgaWYgKCFt
X2lzQWN0aXZlKQorICAgICAgICByZXR1cm47CisgICAgYWN0aXZlQ3VzdG9tRWxlbWVudFJlZ2lz
dHJpZXMoKS5yZW1vdmUodGhpcyk7Cit9CisKIGlubGluZSBEb2N1bWVudCogQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5Ojpkb2N1bWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRvRG9jdW1lbnQobV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIH0KIAordm9pZCBDdXN0b21FbGVtZW50UmVnaXN0cnk6
OmRlbGl2ZXJMaWZlY3ljbGVDYWxsYmFja3MoKQoreworICAgIHdoaWxlICghbV9pbnZvY2F0aW9u
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPEN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uPiBp
bnZvY2F0aW9uczsKKyAgICAgICAgbV9pbnZvY2F0aW9ucy5zd2FwKGludm9jYXRpb25zKTsKKyAg
ICAgICAgQ3VzdG9tRWxlbWVudEhlbHBlcnM6Omludm9rZUNyZWF0ZWRDYWxsYmFja3NJZk5lZWRl
ZChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGludm9jYXRpb25zKTsKKyAgICB9Cit9CisKK3Zv
aWQgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWxpdmVyQWxsTGlmZWN5Y2xlQ2FsbGJhY2tzKCkK
K3sKKyAgICAvLyBYWFg6IFRha2UgY2FyZSBvZiBzdXNwZW5kZWQgYWN0aXZlIG9iamVjdHMKKyAg
ICB3aGlsZSAoIWFjdGl2ZUN1c3RvbUVsZW1lbnRSZWdpc3RyaWVzKCkuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIFZlY3RvcjxSZWZQdHI8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5PiA+IHJlZ2lzdHJpZXM7
CisgICAgICAgIGNvcHlUb1ZlY3RvcihhY3RpdmVDdXN0b21FbGVtZW50UmVnaXN0cmllcygpLCBy
ZWdpc3RyaWVzKTsKKyAgICAgICAgYWN0aXZlQ3VzdG9tRWxlbWVudFJlZ2lzdHJpZXMoKS5jbGVh
cigpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlZ2lzdHJpZXMuc2l6ZSgpOyAr
K2kpCisgICAgICAgICAgICByZWdpc3RyaWVzW2ldLT5kZWxpdmVyTGlmZWN5Y2xlQ2FsbGJhY2tz
KCk7CisgICAgfQorfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCmluZGV4IDEwMmFhM2Rl
MzhjMjExNjhlMGM3YjcwYzY1MjhhMmExYTkxZGU0ZTQuLjk1NWQ4NDAxYmJhNTRiZTk3NGM4YzY5
YjE0ODFmOTMxYWZlN2U1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21F
bGVtZW50UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5LmgKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw2ICs1
NCwxNyBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNs
YXNzIFF1YWxpZmllZE5hbWU7CiAKK2NsYXNzIEN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBDdXN0b21FbGVtZW50SW52b2NhdGlvbihQYXNzUmVmUHRyPEVs
ZW1lbnQ+KTsKKyAgICB+Q3VzdG9tRWxlbWVudEludm9jYXRpb24oKTsKKworICAgIEVsZW1lbnQq
IGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKworcHJpdmF0ZToK
KyAgICBSZWZQdHI8RWxlbWVudD4gbV9lbGVtZW50OworfTsKKwogY2xhc3MgQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5PiAsIHB1
YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CkBAIC02NiwxNCArNzgsMjUgQEAgcHVibGljOgogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
KCkgY29uc3Q7CiAKKyAgICB2b2lkIGRpZEdpdmVUeXBlRXh0ZW5zaW9uKEVsZW1lbnQqKTsKKyAg
ICB2b2lkIGRpZENyZWF0ZUVsZW1lbnQoRWxlbWVudCopOworCisgICAgc3RhdGljIHZvaWQgZGVs
aXZlckFsbExpZmVjeWNsZUNhbGxiYWNrcygpOworCiBwcml2YXRlOgogICAgIHN0YXRpYyBib29s
IGlzVmFsaWROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFw
PHN0ZDo6cGFpcjxRdWFsaWZpZWROYW1lLCBRdWFsaWZpZWROYW1lPiwgUmVmUHRyPEN1c3RvbUVs
ZW1lbnRDb25zdHJ1Y3Rvcj4gPiBDb25zdHJ1Y3Rvck1hcDsKICAgICB0eXBlZGVmIEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4gTmFtZVNldDsKIAorICAgIHZvaWQgYWN0aXZhdGUoKTsKKyAgICB2b2lk
IGRlYWN0aXZhdGUoKTsKKyAgICB2b2lkIGRlbGl2ZXJMaWZlY3ljbGVDYWxsYmFja3MoKTsKKwog
ICAgIENvbnN0cnVjdG9yTWFwIG1fY29uc3RydWN0b3JzOwogICAgIE5hbWVTZXQgbV9uYW1lczsK
KyAgICBWZWN0b3I8Q3VzdG9tRWxlbWVudEludm9jYXRpb24+IG1faW52b2NhdGlvbnM7CisgICAg
Ym9vbCBtX2lzQWN0aXZlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggMGY3ZTJjZDU4ODJhMjE5YjdkZGVmNTAxZDgyNTI5MzNlY2M0MDU5
ZS4uN2JhZDk0NDM0NTQ2YjMzZGJjZGYzYzBmMDBiYTBlM2MyMGMxOGY1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC04NTQsNyArODU0LDcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBEb2N1
bWVudDo6Y3JlYXRlRWxlbWVudChjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSwgY29uc3QK
ICAgICAgICAgICAgIHJldHVybiBjcmVhdGVkOwogICAgIH0KIAotICAgIHJldHVybiBzZXRUeXBl
RXh0ZW5zaW9uKGNyZWF0ZUVsZW1lbnQobG9jYWxOYW1lLCBlYyksIHR5cGVFeHRlbnNpb24pOyAv
LyAgRklYTUU6IHRha2UgY2FyZSBvZiBAaXMKKyAgICByZXR1cm4gc2V0VHlwZUV4dGVuc2lvbihj
cmVhdGVFbGVtZW50KGxvY2FsTmFtZSwgZWMpLCB0eXBlRXh0ZW5zaW9uKTsKIH0KIAogUGFzc1Jl
ZlB0cjxFbGVtZW50PiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZUV4dGVuc2lvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC04OTMsNiArODkz
LDEyIEBAIFBhc3NSZWZQdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yPiBEb2N1bWVudDo6cmVn
aXN0ZXJFbGVtZW50KFdlYkNvcmU6OlNjcmlwdFN0CiAgICAgICAgIG1fcmVnaXN0cnkgPSBhZG9w
dFJlZihuZXcgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5KHRoaXMpKTsKICAgICByZXR1cm4gbV9yZWdp
c3RyeS0+cmVnaXN0ZXJFbGVtZW50KHN0YXRlLCBuYW1lLCBvcHRpb25zLCBlYyk7CiB9CisKK3Zv
aWQgRG9jdW1lbnQ6OmRpZENyZWF0ZUN1c3RvbUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgQ3Vz
dG9tRWxlbWVudENvbnN0cnVjdG9yKiBjb25zdHJ1Y3RvcikKK3sKKyAgICBpZiAobV9yZWdpc3Ry
eSkKKyAgICAgICAgbV9yZWdpc3RyeS0+ZGlkQ3JlYXRlRWxlbWVudChlbGVtZW50KTsKK30KICNl
bmRpZiAvLyBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQogCiBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IERvY3VtZW50OjpjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggZmJjYTBjMmI0OWJmM2UwYmYxNjE0ZmZiZTdhOTM0NmFmYWExZWYyYy4uMzE1YmNm
NjBkZmUzMjIxZjgyNTc1Yjc2ZWJhZWE1NTlmODNmYjkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTExNjUsNiArMTE2NSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPEN1c3RvbUVsZW1l
bnRDb25zdHJ1Y3Rvcj4gcmVnaXN0ZXJFbGVtZW50KFdlYkNvcmU6OlNjcmlwdFN0YXRlKiwgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxD
dXN0b21FbGVtZW50Q29uc3RydWN0b3I+IHJlZ2lzdGVyRWxlbWVudChXZWJDb3JlOjpTY3JpcHRT
dGF0ZSosIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9u
cywgRXhjZXB0aW9uQ29kZSYpOwogICAgIEN1c3RvbUVsZW1lbnRSZWdpc3RyeSogcmVnaXN0cnko
KSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJ5LmdldCgpOyB9CisgICAgdm9pZCBkaWRDcmVhdGVD
dXN0b21FbGVtZW50KEVsZW1lbnQqLCBDdXN0b21FbGVtZW50Q29uc3RydWN0b3IqKTsKICNlbmRp
ZgogCiAgICAgdm9pZCBhZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5k
RnJhbWVTY2FsZShWZWN0b3I8RmxvYXRRdWFkPiYsIFJlbmRlck9iamVjdCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDZlODljMDE1ZDRhMGZhNTliNzI3MzI2ZWQ3YmQwMmJkMzAwOGJlZWUu
LjE4NTgyMjE2MDYyYjgwODVkYTg0OGJhZjUwMWQ5NTQ0YWIyNWI1MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDbGFzc0xpc3QuaCIKICNpbmNs
dWRlICJDbGllbnRSZWN0LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKKyNpbmNsdWRl
ICJDdXN0b21FbGVtZW50UmVnaXN0cnkuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNp
bmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAg
LTg4Nyw2ICs4ODgsMTcgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmUKICAgICAgICAgZG9jdW1l
bnQoKS0+YXhPYmplY3RDYWNoZSgpLT5oYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIHRoaXMp
OwogfQogCitpbmxpbmUgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkRnJvbVBhcnNlcihj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVlKQor
eworI2lmIEVOQUJMRShDVVNUT01fRUxFTUVOVFMpCisgICAgaWYgKG5hbWUgPT0gaXNBdHRyKSB7
CisgICAgICAgIGlmIChDdXN0b21FbGVtZW50UmVnaXN0cnkqIHJlZ2lzdHJ5ID0gZG9jdW1lbnQo
KS0+cmVnaXN0cnkoKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5LT5kaWRHaXZlVHlwZUV4dGVuc2lv
bih0aGlzKTsKKyAgICB9CisjZW5kaWYKKyAgICBhdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG5ld1Zh
bHVlKTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBzdGF0aWMgaW5s
aW5lIGJvb2wgY2xhc3NTdHJpbmdIYXNDbGFzc05hbWUoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogewpAQCAtMTA2OSw3ICsxMDgxLDcgQEAgdm9pZCBF
bGVtZW50OjpwYXJzZXJTZXRBdHRyaWJ1dGVzKGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+JiBhdHRy
aWJ1dGVWZWN0b3IsIEZyYWcKICAgICAvLyBhdHRyaWJ1dGVDaGFuZ2VkIG11dGF0ZXMgbV9lbGVt
ZW50RGF0YS4KICAgICAvLyBGSVhNRTogRmluZCBhIHdheSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRv
IHRoaXMuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbHRlcmVkQXR0cmlidXRlcy5z
aXplKCk7ICsraSkKLSAgICAgICAgYXR0cmlidXRlQ2hhbmdlZChmaWx0ZXJlZEF0dHJpYnV0ZXNb
aV0ubmFtZSgpLCBmaWx0ZXJlZEF0dHJpYnV0ZXNbaV0udmFsdWUoKSk7CisgICAgICAgIGF0dHJp
YnV0ZUNoYW5nZWRGcm9tUGFyc2VyKGZpbHRlcmVkQXR0cmlidXRlc1tpXS5uYW1lKCksIGZpbHRl
cmVkQXR0cmlidXRlc1tpXS52YWx1ZSgpKTsKIH0KIAogYm9vbCBFbGVtZW50OjpoYXNBdHRyaWJ1
dGVzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDljYTRhNTczMjYxMTAyODkzYzJjMTUz
MDU1ZmYxNmIyNjlkMTNmZTEuLjQ4NDkxNzI2ZDBiOWRmYTA5MWY0MzgxODQxMGNiN2Q5N2EwMmIz
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjcwLDYgKzY3MCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRy
aWJ1dGUpOwogICAgIHZvaWQgYWRkQXR0cmlidXRlSW50ZXJuYWwoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJp
YnV0ZSk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIFN5
bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
RnJvbVBhcnNlcihjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNoYXIq
IGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggNDY4OWQxM2U0MmEzNWVlYTIxNGEw
Mjg3YWE3YjdkZTI4OWQ1MTAzYS4uNTNmM2QyOWZmYjEwNWZlYTQzZmI5NTFhZGY1YmNhOWM1ZmIy
MDcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5l
ci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRl
ICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2lu
Y2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWdpc3RyeS5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0xMjgsOCArMTI5LDEyIEBA
IHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2
ZW50KFBlbmRpbmdTY3JpcHQmIHBlbmRpCiAgICAgaWYgKHBlbmRpbmdTY3JpcHQuY2FjaGVkU2Ny
aXB0KCkgJiYgcGVuZGluZ1NjcmlwdC53YXRjaGluZ0ZvckxvYWQoKSkKICAgICAgICAgc3RvcFdh
dGNoaW5nRm9yTG9hZChwZW5kaW5nU2NyaXB0KTsKIAotICAgIGlmICghaXNFeGVjdXRpbmdTY3Jp
cHQoKSkKKyAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpIHsKKyNpZiBFTkFCTEUoQ1VTVE9N
X0VMRU1FTlRTKQorICAgICAgICBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmRlbGl2ZXJBbGxMaWZl
Y3ljbGVDYWxsYmFja3MoKTsKKyNlbmRpZgogICAgICAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxp
dmVyQWxsTXV0YXRpb25zKCk7CisgICAgfQogCiAgICAgLy8gQ2xlYXIgdGhlIHBlbmRpbmcgc2Ny
aXB0IGJlZm9yZSBwb3NzaWJsZSByZW50cmFuY3kgZnJvbSBleGVjdXRlU2NyaXB0KCkKICAgICBS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IHBlbmRpbmdTY3JpcHQucmVsZWFzZUVsZW1lbnRBbmRD
bGVhcigpOwpAQCAtMjkyLDggKzI5NywxMiBAQCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNj
cmlwdChFbGVtZW50KiBzY3JpcHQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcgogICAg
ICAgICAvLyBldmVyeSBzY3JpcHQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5vdCByZWFkeSB0byBl
eGVjdXRlIHlldC4gVGhlcmUncwogICAgICAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMg
d2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bwogICAgICAgICAvLyBleGVj
dXRlIHRoZSBzY3JpcHQgZnJvbSBvdXQgaGVyZS4KLSAgICAgICAgaWYgKCFpc0V4ZWN1dGluZ1Nj
cmlwdCgpKQorICAgICAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpIHsKKyNpZiBFTkFCTEUo
Q1VTVE9NX0VMRU1FTlRTKQorICAgICAgICAgICAgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWxp
dmVyQWxsTGlmZWN5Y2xlQ2FsbGJhY2tzKCk7CisjZW5kaWYKICAgICAgICAgICAgIE11dGF0aW9u
T2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICAgICAgfQogCiAgICAgICAgIElu
c2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC0+aW5wdXRTdHJl
YW0oKSk7CiAgICAgICAgIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3Jl
bWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYktpdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJL
aXQuY3BwCmluZGV4IGUyNmZiOGVmOWQ1ZWI2NjJkNjY0ODAyNzg1N2RhN2RiMTdiMDRiZDMuLjBk
ZmIwODZiNzg5NmNkYmU5NmJjZjY5YjY5YWNlMDliZmY4ZjUxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYktpdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViS2l0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYktpdC5oIgogCisjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
LmgiCiAjaW5jbHVkZSAiRXZlbnRUcmFjZXIuaCIKICNpbmNsdWRlICJJbWFnZURlY29kaW5nU3Rv
cmUuaCIKICNpbmNsdWRlICJMYXlvdXRUZXN0U3VwcG9ydC5oIgpAQCAtODAsNiArODEsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxQcm9jZXNzVGFzaygpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaWRQcm9jZXNzVGFzaygpCiAgICAgeworI2lmIEVOQUJMRShDVVNUT01fRUxFTUVO
VFMpCisgICAgICAgIFdlYkNvcmU6OkN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6ZGVsaXZlckFsbExp
ZmVjeWNsZUNhbGxiYWNrcygpOworI2VuZGlmCiAgICAgICAgIFdlYkNvcmU6Ok11dGF0aW9uT2Jz
ZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193795</attachid>
            <date>2013-03-19 04:59:38 -0700</date>
            <delta_ts>2013-03-19 20:05:26 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-112536-20130319205528.patch</filename>
            <type>text/plain</type>
            <size>28888</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTkxOTVjNzdm
NmZjZDE3ZjUzNjE0M2Q5OGI0OTQ1YmUzZThjZWQ4YS4uNWE4ZWZhODE5NmJkYzY3ZGE1YTM0YmE1
NjNjZDVjNTFmMGY4NWIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjg5Myw2ICsyODkzLDcgQEAK
ICAgICAgICAgICAgICdkb20vQ3Jvc3NUaHJlYWRUYXNrLmgnLAogICAgICAgICAgICAgJ2RvbS9D
dXN0b21FbGVtZW50Q29uc3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdkb20vQ3VzdG9tRWxl
bWVudENvbnN0cnVjdG9yLmgnLAorICAgICAgICAgICAgJ2RvbS9DdXN0b21FbGVtZW50SW52b2Nh
dGlvblNjb3BlLmgnLAogICAgICAgICAgICAgJ2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuY3Bw
JywKICAgICAgICAgICAgICdkb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgnLAogICAgICAgICAg
ICAgJ2RvbS9DdXN0b21FdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBkZTIxNDU1YWUwNjc3NWI0YmIzM2Yx
YzczMDgzOTQ1ZTI1NTM2YTAxLi45YzdhYmFjZWQ0MDczYjk0OWZkOWI1YjA4NGIyZWQyZjY1NDNh
MmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQpAQCAtMTIxNyw2ICsxMjE3LDI1IEBAIEVORAogRU5ECiB9CiAKK3N1YiBHZW5l
cmF0ZUN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uU2NvcGVJZk5lZWRlZAoreworICAgIG15ICRvdXQg
PSBzaGlmdDsKKyAgICBteSAkZXh0ID0gc2hpZnQ7CisKKyAgICBpZiAoJGV4dC0+eyJWOEN1c3Rv
bUVsZW1lbnRJbnZvY2F0aW9uU2NvcGUifSkgeworICAgICAgICBpZiAoJGV4dC0+eyJSZWZsZWN0
In0pIHsKKyAgICAgICAgICAgIGRpZSAiSURMIGVycm9yOiBSZWZsZWN0IGFuZCBWOEN1c3RvbUVs
ZW1lbnRJbnZvY2F0aW9uU2NvcGUgY2Fubm90IGNvZXhpc3QgeWV0IjsKKyAgICAgICAgfQorCisg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJDdXN0b21FbGVtZW50SW52b2NhdGlvblNjb3BlLmgi
LCAiQ1VTVE9NX0VMRU1FTlRTIik7CisgICAgICAgIHB1c2goQCRvdXQsIDw8RU5EKTsKKyNpZiBF
TkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorICAgIEN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uU2NvcGUg
aW52b2NhdGlvblNjb3BlKGltcCk7CisjZW5kaWYKK0VORAorICAgIH0KK30KKwogc3ViIEdlbmVy
YXRlTm9ybWFsQXR0clNldHRlckNhbGxiYWNrCiB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0
OwpAQCAtMTM2Myw2ICsxMzgyLDggQEAgRU5ECiAgICAgICAgICRyZXN1bHQgPSAiV1RGOjpnZXRQ
dHIoIiAuICRyZXN1bHQgLiAiKSI7CiAgICAgfQogCisgICAgR2VuZXJhdGVDdXN0b21FbGVtZW50
SW52b2NhdGlvblNjb3BlSWZOZWVkZWQoXEBpbXBsQ29udGVudEludGVybmFscywgJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOworCiAgICAgbXkgJHVzZUV4Y2VwdGlv
bnMgPSAxIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CiAKICAgICBpZiAoJHVz
ZUV4Y2VwdGlvbnMpIHsKQEAgLTE2NjAsNiArMTY4MSw4IEBAIEVORAogRU5ECiAgICAgfQogCisg
ICAgR2VuZXJhdGVDdXN0b21FbGVtZW50SW52b2NhdGlvblNjb3BlSWZOZWVkZWQoXEBpbXBsQ29u
dGVudEludGVybmFscywgJGZ1bmNFeHQpOworCiAgICAgIyBDaGVjayBkb21haW4gc2VjdXJpdHkg
aWYgbmVlZGVkCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVj
a1NlY3VyaXR5In0gJiYgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiRG9Ob3RDaGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgIyBXZSBoYXZlIG5vdCBmaW5kIHJl
YWwgdXNlIGNhc2VzIHlldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDI4Y2JlZTNlZDY0MjczZWM5YmIyY2QwZjM4ZjY0ZWQx
YWEzMjkxOTUuLjU4ZjRlZjc5NjA1OWEzYTYxMTU2NDc1MmFjZTU1NzBjMWZiZGQ3ZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApA
QCAtMTMyLDMgKzEzMiw0IEBAIFY4UmVhZE9ubHkKIFY4U2tpcFZUYWJsZVZhbGlkYXRpb24KIFY4
VW5mb3JnZWFibGUKIFY4V3JhcEFzRnVuY3Rpb24KK1Y4Q3VzdG9tRWxlbWVudEludm9jYXRpb25T
Y29wZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQ3VzdG9tRWxlbWVu
dEhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQ3VzdG9tRWxlbWVudEhl
bHBlcnMuY3BwCmluZGV4IDJjZDVjYTQwMWU3YTRjMzczNjk2MTkyOWUwZjgxMThhMjAxMzU4ZTMu
LjY2NGVkYmJiZWMyOTliNmY3OTM0NzI3NmMwOTRkODUwNDMxOGE5MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0N1c3RvbUVsZW1lbnRIZWxwZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9DdXN0b21FbGVtZW50SGVscGVycy5jcHAKQEAgLTMx
LDcgKzMxLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDdXN0b21FbGVtZW50
SGVscGVycy5oIgogCisjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgiCiAjaW5jbHVk
ZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlY4Q3VzdG9tRWxlbWVudENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiVjhIVE1MRWxl
bWVudFdyYXBwZXJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiVjhIVE1MUGFyYWdyYXBoRWxlbWVudC5o
IgpAQCAtMTM4LDYgKzE0MCw0NCBAQCBjb25zdCBRdWFsaWZpZWROYW1lKiBDdXN0b21FbGVtZW50
SGVscGVyczo6ZmluZExvY2FsTmFtZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+CiAgICAgcmV0dXJu
IGZpbmRIVE1MVGFnTmFtZU9mVjhUeXBlKHR5cGUpOwogfQogCit2b2lkIEN1c3RvbUVsZW1lbnRI
ZWxwZXJzOjppbnZva2VDcmVhdGVkQ2FsbGJhY2tJZk5lZWRlZChFbGVtZW50KiBlbGVtZW50LCB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0KQoreworICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB3cmFwcGVyVmFsdWUgPSB0b1Y4KGVsZW1lbnQsIGNvbnRleHQtPkdsb2JhbCgpLCBjb250
ZXh0LT5HZXRJc29sYXRlKCkpOworICAgIGlmICh3cmFwcGVyVmFsdWUuSXNFbXB0eSgpIHx8ICF3
cmFwcGVyVmFsdWUtPklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybjsKKyAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHdyYXBw
ZXJWYWx1ZSk7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHByb3RvdHlwZVZhbHVlID0gd3Jh
cHBlci0+R2V0UHJvdG90eXBlKCk7CisgICAgaWYgKHByb3RvdHlwZVZhbHVlLklzRW1wdHkoKSB8
fCAhcHJvdG90eXBlVmFsdWUtPklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybjsKKyAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHByb3RvdHlwZSA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QocHJvdG90eXBlVmFsdWUpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBmdW5jdGlvblZh
bHVlID0gcHJvdG90eXBlLT5HZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJjcmVhdGVkIikpOwor
ICAgIGlmIChmdW5jdGlvblZhbHVlLklzRW1wdHkoKSB8fCAhZnVuY3Rpb25WYWx1ZS0+SXNGdW5j
dGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4g
ZnVuY3Rpb24gPSB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj46OkNhc3QoZnVuY3Rpb25WYWx1ZSk7
CisgICAgdjg6OlRyeUNhdGNoIGV4Y2VwdGlvbkNhdGNoZXI7CisgICAgZXhjZXB0aW9uQ2F0Y2hl
ci5TZXRWZXJib3NlKHRydWUpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmdzW10gPSB7
IH07CisgICAgU2NyaXB0Q29udHJvbGxlcjo6Y2FsbEZ1bmN0aW9uV2l0aEluc3RydW1lbnRhdGlv
bihlbGVtZW50LT5kb2N1bWVudCgpLCBmdW5jdGlvbiwgd3JhcHBlciwgMCwgYXJncyk7Cit9CisK
Kwordm9pZCBDdXN0b21FbGVtZW50SGVscGVyczo6aW52b2tlQ3JlYXRlZENhbGxiYWNrc0lmTmVl
ZGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGV4ZWN1dGlvbkNvbnRleHQsIGNvbnN0IFZlY3Rv
cjxDdXN0b21FbGVtZW50SW52b2NhdGlvbj4mIGludm9jYXRpb25zKQoreworICAgIEFTU0VSVCgh
aW52b2NhdGlvbnMuaXNFbXB0eSgpKTsKKworICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29w
ZTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRleHQoZXhl
Y3V0aW9uQ29udGV4dCwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworICAgIGlmIChjb250ZXh0
LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29w
ZShjb250ZXh0KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW52b2NhdGlvbnMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgQVNTRVJUKGV4ZWN1dGlvbkNvbnRleHQgPT0gaW52b2NhdGlv
bnNbaV0uZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKKyAgICAgICAgaW52b2tlQ3JlYXRlZENhbGxi
YWNrSWZOZWVkZWQoaW52b2NhdGlvbnNbaV0uZWxlbWVudCgpLCBjb250ZXh0KTsKKyAgICB9Cit9
CisKICNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9DdXN0b21FbGVt
ZW50SGVscGVycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQ3VzdG9tRWxlbWVudEhl
bHBlcnMuaAppbmRleCBmMjkwZjU0ODgwZDA5NzQyNTcyYTlkZDRmODQyOTcwZWMwYmI1MTA4Li5k
NTFmZmIzMjIwM2M1YzZjZmZmZDEwM2VlMWIyNWYyZjk4ZTJiZDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9DdXN0b21FbGVtZW50SGVscGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0N1c3RvbUVsZW1lbnRIZWxwZXJzLmgKQEAgLTMzLDEyICsz
MywxNSBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZh
bHVlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAjaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKIAogY2xhc3MgQ3VzdG9tRWxlbWVudENvbnN0
cnVjdG9yOworY2xhc3MgQ3VzdG9tRWxlbWVudEludm9jYXRpb247CitjbGFzcyBFbGVtZW50Owog
Y2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFNjcmlwdFN0YXRlOwogCkBAIC01Miw2ICs1NSwx
MSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNGZWF0dXJlQWxsb3dlZCh2ODo6SGFuZGxl
PHY4OjpDb250ZXh0Pik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyogZmluZFdyYXBwZXJU
eXBlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGFpbik7CiAgICAgc3RhdGljIGNvbnN0IFF1YWxp
ZmllZE5hbWUqIGZpbmRMb2NhbE5hbWUodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjaGFpbik7CisK
KyAgICBzdGF0aWMgdm9pZCBpbnZva2VDcmVhdGVkQ2FsbGJhY2tzSWZOZWVkZWQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFZlY3RvcjxDdXN0b21FbGVtZW50SW52b2NhdGlvbj4mKTsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgdm9pZCBpbnZva2VDcmVhdGVkQ2FsbGJhY2tJZk5lZWRl
ZChFbGVtZW50Kiwgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4pOwogfTsKIAogI2VuZGlmIC8vIEVO
QUJMRShDVVNUT01fRUxFTUVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFJlY3Vyc2lvblNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UmVjdXJzaW9uU2NvcGUuY3BwCmluZGV4IGJkOTI0ODE1MjkyZDlmMGFiZmYyZGQ0YmIwNjc3NjAw
MWExYjc2N2MuLjJjMmY5NTUyZjZhY2MzZmUyZjU2NjBiODEzOGMzZTFhOGFkOGZmYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UmVjdXJzaW9uU2NvcGUuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhSZWN1cnNpb25T
Y29wZS5oIgogCisjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
SURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2
ZXIuaCIKIApAQCAtNDYsOCArNDcsMTIgQEAgdm9pZCBWOFJlY3Vyc2lvblNjb3BlOjpkaWRMZWF2
ZVNjcmlwdENvbnRleHQoKQogICAgIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3I6OmRlYWN0
aXZhdGVOZXdUcmFuc2FjdGlvbnMoKTsKICNlbmRpZgogCi0gICAgaWYgKG1faXNEb2N1bWVudENv
bnRleHQpCisgICAgaWYgKG1faXNEb2N1bWVudENvbnRleHQpIHsKICAgICAgICAgTXV0YXRpb25P
YnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOworI2lmIEVOQUJMRShDVVNUT01fRUxFTUVO
VFMpCisgICAgICAgIEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6ZGVsaXZlckFsbExpZmVjeWNsZUNh
bGxiYWNrcygpOworI2VuZGlmCisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuY3BwCmluZGV4
IDM0MzE5NzE4ZTdhYzQ5ZjBmNThhN2ZmYzkzZmVhZDk1NmM1ZTAzYmMuLjhiMzJkYWY1NTFkOGY1
NDM4ZWE0ZWYwMWMzMThkZDJjZThiOTI1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
dXN0b21FbGVtZW50Q29uc3RydWN0b3IuY3BwCkBAIC02Myw3ICs2MywxNSBAQCBDdXN0b21FbGVt
ZW50Q29uc3RydWN0b3I6On5DdXN0b21FbGVtZW50Q29uc3RydWN0b3IoKQogewogfQogCi1QYXNz
UmVmUHRyPEVsZW1lbnQ+IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcjo6Y3JlYXRlRWxlbWVudCgp
IGNvbnN0CitQYXNzUmVmUHRyPEVsZW1lbnQ+IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlRWxlbWVudCgpCit7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZWQgPSBjcmVhdGVFbGVt
ZW50SW50ZXJuYWwoKTsKKyAgICBpZiAoY3JlYXRlZCkKKyAgICAgICAgZG9jdW1lbnQoKS0+ZGlk
Q3JlYXRlQ3VzdG9tRWxlbWVudChjcmVhdGVkLmdldCgpLCB0aGlzKTsKKyAgICByZXR1cm4gY3Jl
YXRlZC5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gQ3VzdG9tRWxlbWVudENv
bnN0cnVjdG9yOjpjcmVhdGVFbGVtZW50SW50ZXJuYWwoKQogewogICAgIGlmICghZG9jdW1lbnQo
KSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3Vz
dG9tRWxlbWVudENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVu
dENvbnN0cnVjdG9yLmgKaW5kZXggMGVlZDc5YWU1ODM5YjNjOGQzZDQ2YzJlMTFjMjg4ZTJmZmE4
ODhiNC4uOWFjY2NkN2Q3ZTVkYjhiMTgyZTIwMjY2MmUwOGRjOWI0M2JkZDVjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50Q29uc3RydWN0b3IuaApAQCAtNTksMTIgKzU5
LDE1IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7IH0KICAgICBj
b25zdCBRdWFsaWZpZWROYW1lJiB0eXBlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZU5hbWU7
IH0KICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBsb2NhbE5hbWUoKSBjb25zdCB7IHJldHVybiBt
X2xvY2FsTmFtZTsgfQorICAgIGJvb2wgaXNFeHRlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZU5hbWUgIT0gbV9sb2NhbE5hbWU7IH0KIAotICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
RWxlbWVudCgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudCgp
OwogCiBwcml2YXRlOgogICAgIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3RvcihEb2N1bWVudCosIGNv
bnN0IFF1YWxpZmllZE5hbWUmIHR5cGVOYW1lLCBjb25zdCBRdWFsaWZpZWROYW1lJiBsb2NhbE5h
bWUpOwogCisgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50SW50ZXJuYWwoKTsK
KwogICAgIFF1YWxpZmllZE5hbWUgbV90eXBlTmFtZTsKICAgICBRdWFsaWZpZWROYW1lIG1fbG9j
YWxOYW1lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
SW52b2NhdGlvblNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudEludm9j
YXRpb25TY29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYjY4MTZmMjdlZWE3MjBjM2ZjMjRkODk3MTA2ZDFh
ODNkMzUzMWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxl
bWVudEludm9jYXRpb25TY29wZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEN1
c3RvbUVsZW1lbnRJbnZvY2F0aW9uU2NvcGVfaAorI2RlZmluZSBDdXN0b21FbGVtZW50SW52b2Nh
dGlvblNjb3BlX2gKKworI2lmIEVOQUJMRShDVVNUT01fRUxFTUVOVFMpCisKKyNpbmNsdWRlICJD
dXN0b21FbGVtZW50UmVnaXN0cnkuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZSB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQ3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZSk7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgQ3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZShFbGVtZW50Kik7CisgICAgZXhw
bGljaXQgQ3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZShTaGFkb3dSb290Kik7CisgICAgZXhw
bGljaXQgQ3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZShEb2N1bWVudCopOworICAgIH5DdXN0
b21FbGVtZW50SW52b2NhdGlvblNjb3BlKCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEN1c3Rv
bUVsZW1lbnRSZWdpc3RyeT4gbV9yZWdpc3RyeTsKK307CisKK2lubGluZSBDdXN0b21FbGVtZW50
SW52b2NhdGlvblNjb3BlOjpDdXN0b21FbGVtZW50SW52b2NhdGlvblNjb3BlKEVsZW1lbnQqIGVs
ZW1lbnQpCisgICAgOiBtX3JlZ2lzdHJ5KGVsZW1lbnQtPmRvY3VtZW50KCktPnJlZ2lzdHJ5KCkp
Cit7IH0KKworaW5saW5lIEN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uU2NvcGU6OkN1c3RvbUVsZW1l
bnRJbnZvY2F0aW9uU2NvcGUoU2hhZG93Um9vdCogc2hhZG93KQorICAgIDogbV9yZWdpc3RyeShz
aGFkb3ctPmRvY3VtZW50KCktPnJlZ2lzdHJ5KCkpCit7IH0KKworaW5saW5lIEN1c3RvbUVsZW1l
bnRJbnZvY2F0aW9uU2NvcGU6OkN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uU2NvcGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorICAgIDogbV9yZWdpc3RyeShkb2N1bWVudC0+cmVnaXN0cnkoKSkKK3sgfQor
CitpbmxpbmUgQ3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZTo6fkN1c3RvbUVsZW1lbnRJbnZv
Y2F0aW9uU2NvcGUoKQoreworICAgIGlmIChtX3JlZ2lzdHJ5KQorICAgICAgICBtX3JlZ2lzdHJ5
LT5kZWxpdmVyTGlmZWN5Y2xlQ2FsbGJhY2tzSWZOZWVkZWQoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAppbmRleCA2YzI4
ZjI4MTkyM2I4YmZmNzM0ZDJjMjc2ODA5M2U5MWUyMzMxOGY0Li4wMDIzZTY5N2U3YzBhYzcxYWM3
YmI4OWJhZmYyYzczMjNjMmU2YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkhUTUxVbmtub3du
RWxlbWVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRl
IDx3dGYvQVNDSUlDVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKICNpZiBFTkFC
TEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC01NCw2ICs1NSwyMyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK0N1c3RvbUVsZW1lbnRJbnZvY2F0aW9uOjpDdXN0b21FbGVtZW50
SW52b2NhdGlvbihQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCisgICAgOiBtX2VsZW1lbnQo
ZWxlbWVudCkKK3sKK30KKworQ3VzdG9tRWxlbWVudEludm9jYXRpb246On5DdXN0b21FbGVtZW50
SW52b2NhdGlvbigpCit7Cit9CisKK3R5cGVkZWYgSGFzaFNldDxDdXN0b21FbGVtZW50UmVnaXN0
cnkqPiBDdXN0b21FbGVtZW50UmVnaXN0cnlTZXQ7CisKK3N0YXRpYyBDdXN0b21FbGVtZW50UmVn
aXN0cnlTZXQmIGFjdGl2ZUN1c3RvbUVsZW1lbnRSZWdpc3RyaWVzKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEN1c3RvbUVsZW1lbnRSZWdpc3RyeVNldCwgYWN0aXZlSW5zdGFuY2VzLCAo
KSk7CisgICAgcmV0dXJuIGFjdGl2ZUluc3RhbmNlczsKK30KKwogQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5OjpDdXN0b21FbGVtZW50UmVnaXN0cnkoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQpCiB7CkBAIC02MSw2ICs3OSw3IEBAIEN1
c3RvbUVsZW1lbnRSZWdpc3RyeTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5KERvY3VtZW50KiBkb2N1
bWVudCkKIAogQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Ojp+Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5KCkK
IHsKKyAgICBkZWFjdGl2YXRlKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBuYW1lSW5jbHVk
ZXNIeXBoZW4oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQpAQCAtMTkzLDExICsyMTIsNjMgQEAg
UGFzc1JlZlB0cjxFbGVtZW50PiBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmNyZWF0ZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbG8KICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBDdXN0b21F
bGVtZW50UmVnaXN0cnk6OmRpZEdpdmVUeXBlRXh0ZW5zaW9uKEVsZW1lbnQqIGVsZW1lbnQpCit7
CisgICAgUmVmUHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcj4gY29uc3RydWN0b3IgPSBmaW5k
Rm9yKGVsZW1lbnQpOworICAgIGlmICghY29uc3RydWN0b3IgfHwgIWNvbnN0cnVjdG9yLT5pc0V4
dGVuZGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBhY3RpdmF0ZShDdXN0b21FbGVtZW50SW52
b2NhdGlvbihlbGVtZW50KSk7Cit9CisKK3ZvaWQgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkaWRD
cmVhdGVFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgYWN0aXZhdGUoQ3VzdG9tRWxl
bWVudEludm9jYXRpb24oZWxlbWVudCkpOworfQorCit2b2lkIEN1c3RvbUVsZW1lbnRSZWdpc3Ry
eTo6YWN0aXZhdGUoY29uc3QgQ3VzdG9tRWxlbWVudEludm9jYXRpb24mIGludm9jYXRpb24pCit7
CisgICAgYm9vbCB3YXNJbmFjdGl2ZSA9IG1faW52b2NhdGlvbnMuaXNFbXB0eSgpOworICAgIG1f
aW52b2NhdGlvbnMuYXBwZW5kKGludm9jYXRpb24pOworICAgIGlmICh3YXNJbmFjdGl2ZSkKKyAg
ICAgICAgYWN0aXZlQ3VzdG9tRWxlbWVudFJlZ2lzdHJpZXMoKS5hZGQodGhpcyk7Cit9CisKK3Zv
aWQgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWFjdGl2YXRlKCkKK3sKKyAgICBBU1NFUlQobV9p
bnZvY2F0aW9ucy5pc0VtcHR5KCkpOworICAgIGlmIChhY3RpdmVDdXN0b21FbGVtZW50UmVnaXN0
cmllcygpLmNvbnRhaW5zKHRoaXMpKQorICAgICAgICBhY3RpdmVDdXN0b21FbGVtZW50UmVnaXN0
cmllcygpLnJlbW92ZSh0aGlzKTsKK30KKwogaW5saW5lIERvY3VtZW50KiBDdXN0b21FbGVtZW50
UmVnaXN0cnk6OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gdG9Eb2N1bWVudChtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogfQogCit2b2lkIEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6
ZGVsaXZlckxpZmVjeWNsZUNhbGxiYWNrcygpCit7CisgICAgQVNTRVJUKCFtX2ludm9jYXRpb25z
LmlzRW1wdHkoKSk7CisKKyAgICB3aGlsZSAoIW1faW52b2NhdGlvbnMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIFZlY3RvcjxDdXN0b21FbGVtZW50SW52b2NhdGlvbj4gaW52b2NhdGlvbnM7CisgICAg
ICAgIG1faW52b2NhdGlvbnMuc3dhcChpbnZvY2F0aW9ucyk7CisgICAgICAgIEN1c3RvbUVsZW1l
bnRIZWxwZXJzOjppbnZva2VDcmVhdGVkQ2FsbGJhY2tzSWZOZWVkZWQobV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBpbnZvY2F0aW9ucyk7CisgICAgfQorCisgICAgZGVhY3RpdmF0ZSgpOworfQor
Cit2b2lkIEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6ZGVsaXZlckFsbExpZmVjeWNsZUNhbGxiYWNr
cygpCit7CisgICAgd2hpbGUgKCFhY3RpdmVDdXN0b21FbGVtZW50UmVnaXN0cmllcygpLmlzRW1w
dHkoKSkgeworICAgICAgICBWZWN0b3I8UmVmUHRyPEN1c3RvbUVsZW1lbnRSZWdpc3RyeT4gPiBy
ZWdpc3RyaWVzOworICAgICAgICBjb3B5VG9WZWN0b3IoYWN0aXZlQ3VzdG9tRWxlbWVudFJlZ2lz
dHJpZXMoKSwgcmVnaXN0cmllcyk7CisgICAgICAgIGFjdGl2ZUN1c3RvbUVsZW1lbnRSZWdpc3Ry
aWVzKCkuY2xlYXIoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWdpc3RyaWVz
LnNpemUoKTsgKytpKQorICAgICAgICAgICAgcmVnaXN0cmllc1tpXS0+ZGVsaXZlckxpZmVjeWNs
ZUNhbGxiYWNrcygpOworICAgIH0KK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKENVU1RPTV9F
TEVNRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVn
aXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaAppbmRl
eCAxMDJhYTNkZTM4YzIxMTY4ZTBjN2I3MGM2NTI4YTJhMWE5MWRlNGU0Li5iNDM1NWU2M2NjZDNm
ODMzOTMzNmVhMDg1YzA4MTIzMzZhZjNjNTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3Rv
bUVsZW1lbnRSZWdpc3RyeS5oCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNTMsNiArNTQsMTcgQEAgY2xhc3MgRWxlbWVudDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogCitjbGFzcyBDdXN0b21FbGVtZW50SW52b2Nh
dGlvbiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ3VzdG9tRWxlbWVudEludm9jYXRpb24oUGFz
c1JlZlB0cjxFbGVtZW50Pik7CisgICAgfkN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uKCk7CisKKyAg
ICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CisK
K3ByaXZhdGU6CisgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZWxlbWVudDsKK307CisKIGNsYXNzIEN1
c3RvbUVsZW1lbnRSZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVkPEN1c3RvbUVsZW1lbnRSZWdp
c3RyeT4gLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEN1c3RvbUVsZW1lbnRSZWdpc3RyeSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtNjYsMTYgKzc4LDMzIEBAIHB1YmxpYzoKIAogICAgIERvY3VtZW50
KiBkb2N1bWVudCgpIGNvbnN0OwogCisgICAgdm9pZCBkaWRHaXZlVHlwZUV4dGVuc2lvbihFbGVt
ZW50Kik7CisgICAgdm9pZCBkaWRDcmVhdGVFbGVtZW50KEVsZW1lbnQqKTsKKyAgICB2b2lkIGRl
bGl2ZXJMaWZlY3ljbGVDYWxsYmFja3NJZk5lZWRlZCgpOworCisgICAgc3RhdGljIHZvaWQgZGVs
aXZlckFsbExpZmVjeWNsZUNhbGxiYWNrcygpOworCiBwcml2YXRlOgogICAgIHN0YXRpYyBib29s
IGlzVmFsaWROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFw
PHN0ZDo6cGFpcjxRdWFsaWZpZWROYW1lLCBRdWFsaWZpZWROYW1lPiwgUmVmUHRyPEN1c3RvbUVs
ZW1lbnRDb25zdHJ1Y3Rvcj4gPiBDb25zdHJ1Y3Rvck1hcDsKICAgICB0eXBlZGVmIEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4gTmFtZVNldDsKIAorICAgIHZvaWQgYWN0aXZhdGUoY29uc3QgQ3VzdG9t
RWxlbWVudEludm9jYXRpb24mKTsKKyAgICB2b2lkIGRlYWN0aXZhdGUoKTsKKyAgICB2b2lkIGRl
bGl2ZXJMaWZlY3ljbGVDYWxsYmFja3MoKTsKKwogICAgIENvbnN0cnVjdG9yTWFwIG1fY29uc3Ry
dWN0b3JzOwogICAgIE5hbWVTZXQgbV9uYW1lczsKKyAgICBWZWN0b3I8Q3VzdG9tRWxlbWVudElu
dm9jYXRpb24+IG1faW52b2NhdGlvbnM7CiB9OwogCitpbmxpbmUgdm9pZCBDdXN0b21FbGVtZW50
UmVnaXN0cnk6OmRlbGl2ZXJMaWZlY3ljbGVDYWxsYmFja3NJZk5lZWRlZCgpCit7CisgICAgaWYg
KCFtX2ludm9jYXRpb25zLmlzRW1wdHkoKSkKKyAgICAgICAgZGVsaXZlckxpZmVjeWNsZUNhbGxi
YWNrcygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
Q1VTVE9NX0VMRU1FTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMGY3ZTJjZDU4ODJh
MjE5YjdkZGVmNTAxZDgyNTI5MzNlY2M0MDU5ZS4uN2JhZDk0NDM0NTQ2YjMzZGJjZGYzYzBmMDBi
YTBlM2MyMGMxOGY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NTQsNyArODU0LDcg
QEAgUGFzc1JlZlB0cjxFbGVtZW50PiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGxvY2FsTmFtZSwgY29uc3QKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVkOwog
ICAgIH0KIAotICAgIHJldHVybiBzZXRUeXBlRXh0ZW5zaW9uKGNyZWF0ZUVsZW1lbnQobG9jYWxO
YW1lLCBlYyksIHR5cGVFeHRlbnNpb24pOyAvLyAgRklYTUU6IHRha2UgY2FyZSBvZiBAaXMKKyAg
ICByZXR1cm4gc2V0VHlwZUV4dGVuc2lvbihjcmVhdGVFbGVtZW50KGxvY2FsTmFtZSwgZWMpLCB0
eXBlRXh0ZW5zaW9uKTsKIH0KIAogUGFzc1JlZlB0cjxFbGVtZW50PiBEb2N1bWVudDo6Y3JlYXRl
RWxlbWVudE5TKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcm
IHF1YWxpZmllZE5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZUV4dGVuc2lvbiwgRXhjZXB0
aW9uQ29kZSYgZWMpCkBAIC04OTMsNiArODkzLDEyIEBAIFBhc3NSZWZQdHI8Q3VzdG9tRWxlbWVu
dENvbnN0cnVjdG9yPiBEb2N1bWVudDo6cmVnaXN0ZXJFbGVtZW50KFdlYkNvcmU6OlNjcmlwdFN0
CiAgICAgICAgIG1fcmVnaXN0cnkgPSBhZG9wdFJlZihuZXcgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
KHRoaXMpKTsKICAgICByZXR1cm4gbV9yZWdpc3RyeS0+cmVnaXN0ZXJFbGVtZW50KHN0YXRlLCBu
YW1lLCBvcHRpb25zLCBlYyk7CiB9CisKK3ZvaWQgRG9jdW1lbnQ6OmRpZENyZWF0ZUN1c3RvbUVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCwgQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yKiBjb25zdHJ1
Y3RvcikKK3sKKyAgICBpZiAobV9yZWdpc3RyeSkKKyAgICAgICAgbV9yZWdpc3RyeS0+ZGlkQ3Jl
YXRlRWxlbWVudChlbGVtZW50KTsKK30KICNlbmRpZiAvLyBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRT
KQogCiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50OjpjcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZmJjYTBjMmI0OWJmM2UwYmYxNjE0
ZmZiZTdhOTM0NmFmYWExZWYyYy4uMzE1YmNmNjBkZmUzMjIxZjgyNTc1Yjc2ZWJhZWE1NTlmODNm
YjkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExNjUsNiArMTE2NSw3IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcj4gcmVnaXN0ZXJFbGVtZW50
KFdlYkNvcmU6OlNjcmlwdFN0YXRlKiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0b3I+IHJlZ2lz
dGVyRWxlbWVudChXZWJDb3JlOjpTY3JpcHRTdGF0ZSosIGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYpOwogICAgIEN1c3Rv
bUVsZW1lbnRSZWdpc3RyeSogcmVnaXN0cnkoKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJ5Lmdl
dCgpOyB9CisgICAgdm9pZCBkaWRDcmVhdGVDdXN0b21FbGVtZW50KEVsZW1lbnQqLCBDdXN0b21F
bGVtZW50Q29uc3RydWN0b3IqKTsKICNlbmRpZgogCiAgICAgdm9pZCBhZGp1c3RGbG9hdFF1YWRz
Rm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShWZWN0b3I8RmxvYXRRdWFkPiYs
IFJlbmRlck9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggYTRmMDUzYzkwMTYy
YzRjZDEwMTdmYTZlNTY0NzFkN2VkMzNhM2Y4My4uMjliYjdlYTA5YjM1NGU5ZWJlN2Y5ODNlMDM2
NzY1OTNmOWU1NjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yOSw3ICsyOSw3IEBA
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTUltcGxlbWVudGF0aW9uIGltcGxlbWVudGF0aW9u
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGRvY3VtZW50RWxlbWVudDsKIAotICAg
IFtSZXR1cm5OZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudChpbiBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YWdOYW1l
KQorICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4Q3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZV0g
RWxlbWVudCBjcmVhdGVFbGVtZW50KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRhZ05hbWUpCiAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICAgICBEb2N1bWVudEZyYWdtZW50ICAgY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpOwogICAgIFtSZXR1cm5OZXdPYmplY3RdIFRleHQgY3JlYXRlVGV4dE5vZGUoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpOwpAQCAtNTAsOCArNTAs
OSBAQAogICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdF0g
Tm9kZSBpbXBvcnROb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgaW1w
b3J0ZWROb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZGVlcCkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOwotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdF0g
RWxlbWVudCBjcmVhdGVFbGVtZW50TlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHF1
YWxpZmllZE5hbWUpCisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3
T2JqZWN0LCBWOEN1c3RvbUVsZW1lbnRJbnZvY2F0aW9uU2NvcGVdCisgICAgRWxlbWVudCBjcmVh
dGVFbGVtZW50TlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdPYmplY3Rd
IEF0dHIgY3JlYXRlQXR0cmlidXRlTlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcXVh
bGlmaWVkTmFtZSkKQEAgLTM2Myw5ICszNjQsMTEgQEAKICNpZiBkZWZpbmVkKEVOQUJMRV9DVVNU
T01fRUxFTUVOVFMpICYmIEVOQUJMRV9DVVNUT01fRUxFTUVOVFMKICAgICBbVjhFbmFibGVkQXRS
dW50aW1lPWN1c3RvbURPTUVsZW1lbnRzLCBDb25kaXRpb25hbD1DVVNUT01fRUxFTUVOVFMsIElt
cGxlbWVudGVkQXM9cmVnaXN0ZXJFbGVtZW50LCBDYWxsV2l0aD1TY3JpcHRTdGF0ZV0KICAgICBD
dXN0b21FbGVtZW50Q29uc3RydWN0b3Igd2Via2l0UmVnaXN0ZXIoaW4gRE9NU3RyaW5nIG5hbWUs
IGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBvcHRpb25zKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICBbUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoaW4gRE9NU3RyaW5n
IGxvY2FsTmFtZSwgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyB0eXBlRXh0
ZW5zaW9uKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW1JldHVybk5ld09iamVjdF0gRWxl
bWVudCBjcmVhdGVFbGVtZW50TlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBuYW1lc3BhY2VVUkksIGluIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBET01TdHJpbmcgdHlwZUV4dGVuc2lvbikgcmFpc2VzIChET01FeGNlcHRpb24pOworICAg
IFtSZXR1cm5OZXdPYmplY3QsIFY4Q3VzdG9tRWxlbWVudEludm9jYXRpb25TY29wZV0KKyAgICBF
bGVtZW50IGNyZWF0ZUVsZW1lbnQoaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSwgaW4gW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmddIERPTVN0cmluZyB0eXBlRXh0ZW5zaW9uKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgW1JldHVybk5ld09iamVjdCwgVjhDdXN0b21FbGVtZW50SW52b2NhdGlvblNj
b3BlXQorICAgIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCBpbiBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nIHR5cGVFeHRlbnNpb24pIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgog
CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9DUFApICYmIExBTkdVQUdFX0NQUApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDZlODljMDE1ZDRhMGZhNTliNzI3MzI2ZWQ3YmQwMmJkMzAwOGJlZWUuLjE4
NTgyMjE2MDYyYjgwODVkYTg0OGJhZjUwMWQ5NTQ0YWIyNWI1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDbGFzc0xpc3QuaCIKICNpbmNsdWRl
ICJDbGllbnRSZWN0LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKKyNpbmNsdWRlICJD
dXN0b21FbGVtZW50UmVnaXN0cnkuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNs
dWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTg4
Nyw2ICs4ODgsMTcgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmUKICAgICAgICAgZG9jdW1lbnQo
KS0+YXhPYmplY3RDYWNoZSgpLT5oYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIHRoaXMpOwog
fQogCitpbmxpbmUgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkRnJvbVBhcnNlcihjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVlKQorewor
I2lmIEVOQUJMRShDVVNUT01fRUxFTUVOVFMpCisgICAgaWYgKG5hbWUgPT0gaXNBdHRyKSB7Cisg
ICAgICAgIGlmIChDdXN0b21FbGVtZW50UmVnaXN0cnkqIHJlZ2lzdHJ5ID0gZG9jdW1lbnQoKS0+
cmVnaXN0cnkoKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5LT5kaWRHaXZlVHlwZUV4dGVuc2lvbih0
aGlzKTsKKyAgICB9CisjZW5kaWYKKyAgICBhdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG5ld1ZhbHVl
KTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBzdGF0aWMgaW5saW5l
IGJvb2wgY2xhc3NTdHJpbmdIYXNDbGFzc05hbWUoY29uc3QgQ2hhcmFjdGVyVHlwZSogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQogewpAQCAtMTA2OSw3ICsxMDgxLDcgQEAgdm9pZCBFbGVt
ZW50OjpwYXJzZXJTZXRBdHRyaWJ1dGVzKGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+JiBhdHRyaWJ1
dGVWZWN0b3IsIEZyYWcKICAgICAvLyBhdHRyaWJ1dGVDaGFuZ2VkIG11dGF0ZXMgbV9lbGVtZW50
RGF0YS4KICAgICAvLyBGSVhNRTogRmluZCBhIHdheSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHRo
aXMuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbHRlcmVkQXR0cmlidXRlcy5zaXpl
KCk7ICsraSkKLSAgICAgICAgYXR0cmlidXRlQ2hhbmdlZChmaWx0ZXJlZEF0dHJpYnV0ZXNbaV0u
bmFtZSgpLCBmaWx0ZXJlZEF0dHJpYnV0ZXNbaV0udmFsdWUoKSk7CisgICAgICAgIGF0dHJpYnV0
ZUNoYW5nZWRGcm9tUGFyc2VyKGZpbHRlcmVkQXR0cmlidXRlc1tpXS5uYW1lKCksIGZpbHRlcmVk
QXR0cmlidXRlc1tpXS52YWx1ZSgpKTsKIH0KIAogYm9vbCBFbGVtZW50OjpoYXNBdHRyaWJ1dGVz
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDljYTRhNTczMjYxMTAyODkzYzJjMTUzMDU1
ZmYxNmIyNjlkMTNmZTEuLjQ4NDkxNzI2ZDBiOWRmYTA5MWY0MzgxODQxMGNiN2Q5N2EwMmIzZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjcwLDYgKzY3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1
dGUpOwogICAgIHZvaWQgYWRkQXR0cmlidXRlSW50ZXJuYWwoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0
ZSk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbChzaXplX3QgaW5kZXgsIFN5bmNo
cm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkRnJv
bVBhcnNlcihjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAKICNp
Zm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1
ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbApp
bmRleCBhMzljYTkyYTUzYjk4NmNmODhmMTE5MzFjMTE5YTExMDI4ZjVjOGFkLi4yNDhlYjg5ZmM3
ZWNlNzUxYjNkNTk2MjU0MzhhMGQxZGYxZmI5MTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aWRsCkBAIC0zMiw4ICszMiw4IEBACiAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JT
dHlsZXM7CiAgICAgYXR0cmlidXRlIGJvb2xlYW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlOwogCi0g
ICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgaW5uZXJIVE1M
Ci0gICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZywgVjhDdXN0b21FbGVtZW50SW52b2NhdGlvblNjb3BlXQorICAgIGF0dHJpYnV0
ZSBET01TdHJpbmcgaW5uZXJIVE1MIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAg
IE5vZGUgY2xvbmVOb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
ZGVlcCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRs
CmluZGV4IGJjNjM5YjhlNDFiYjA0NGE5MTkxMGU4NmI0YmQwNDlmYjQxMWJkNDguLjRjNTlhY2Iy
MjRmNzE0OWJmNjI2NjdmNWFjNTA2YzgxZGUwYmZiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaWRsCkBAIC0zOSw3ICszOSw3IEBACiAgICAgICAgICAgICAgW1JlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgYWNjZXNzS2V5OwogCiAgICAgLy8gRXh0ZW5zaW9ucwotICAgICAgICAg
ICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlubmVySFRN
TAorICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBWOEN1c3RvbUVsZW1lbnRJ
bnZvY2F0aW9uU2NvcGVdIGF0dHJpYnV0ZSBET01TdHJpbmcgaW5uZXJIVE1MCiAgICAgICAgICAg
ICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgICAgICBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBpbm5lclRleHQKICAgICAgICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAppbmRleCA0Njg5ZDEzZTQyYTM1ZWVh
MjE0YTAyODdhYTdiN2RlMjg5ZDUxMDNhLi41M2YzZDI5ZmZiMTA1ZmVhNDNmYjk1MWFkZjViY2E5
YzVmYjIwNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2Ny
aXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0
UnVubmVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTEyOCw4ICsxMjks
MTIgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3Bh
dGNoRXZlbnQoUGVuZGluZ1NjcmlwdCYgcGVuZGkKICAgICBpZiAocGVuZGluZ1NjcmlwdC5jYWNo
ZWRTY3JpcHQoKSAmJiBwZW5kaW5nU2NyaXB0LndhdGNoaW5nRm9yTG9hZCgpKQogICAgICAgICBz
dG9wV2F0Y2hpbmdGb3JMb2FkKHBlbmRpbmdTY3JpcHQpOwogCi0gICAgaWYgKCFpc0V4ZWN1dGlu
Z1NjcmlwdCgpKQorICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkgeworI2lmIEVOQUJMRShD
VVNUT01fRUxFTUVOVFMpCisgICAgICAgIEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6ZGVsaXZlckFs
bExpZmVjeWNsZUNhbGxiYWNrcygpOworI2VuZGlmCiAgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXI6
OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyAgICB9CiAKICAgICAvLyBDbGVhciB0aGUgcGVuZGlu
ZyBzY3JpcHQgYmVmb3JlIHBvc3NpYmxlIHJlbnRyYW5jeSBmcm9tIGV4ZWN1dGVTY3JpcHQoKQog
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gcGVuZGluZ1NjcmlwdC5yZWxlYXNlRWxlbWVu
dEFuZENsZWFyKCk7CkBAIC0yOTIsOCArMjk3LDEyIEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
cnVuU2NyaXB0KEVsZW1lbnQqIHNjcmlwdCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFy
CiAgICAgICAgIC8vIGV2ZXJ5IHNjcmlwdCBlbGVtZW50LCBldmVuIGlmIGl0J3Mgbm90IHJlYWR5
IHRvIGV4ZWN1dGUgeWV0LiBUaGVyZSdzCiAgICAgICAgIC8vIHVuZm9ydHVhbnRlbHkgbm8gb2J2
aW91cyB3YXkgdG8gdGVsbCBpZiBwcmVwYXJlU2NyaXB0IGlzIGdvaW5nIHRvCiAgICAgICAgIC8v
IGV4ZWN1dGUgdGhlIHNjcmlwdCBmcm9tIG91dCBoZXJlLgotICAgICAgICBpZiAoIWlzRXhlY3V0
aW5nU2NyaXB0KCkpCisgICAgICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkgeworI2lmIEVO
QUJMRShDVVNUT01fRUxFTUVOVFMpCisgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVnaXN0cnk6
OmRlbGl2ZXJBbGxMaWZlY3ljbGVDYWxsYmFja3MoKTsKKyNlbmRpZgogICAgICAgICAgICAgTXV0
YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOworICAgICAgICB9CiAKICAgICAg
ICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LT5pbnB1
dFN0cmVhbSgpKTsKICAgICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIobV9zY3JpcHROZXN0aW5nTGV2ZWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYktpdC5jcHAKaW5kZXggZTI2ZmI4ZWY5ZDVlYjY2MmQ2NjQ4MDI3ODU3ZGE3ZGIxN2IwNGJk
My4uMGRmYjA4NmI3ODk2Y2RiZTk2YmNmNjliNjlhY2UwOWJmZjhmNTFhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAKKyNpbmNsdWRlICJDdXN0b21FbGVtZW50UmVn
aXN0cnkuaCIKICNpbmNsdWRlICJFdmVudFRyYWNlci5oIgogI2luY2x1ZGUgIkltYWdlRGVjb2Rp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIkxheW91dFRlc3RTdXBwb3J0LmgiCkBAIC04MCw2ICs4MSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFByb2Nlc3NUYXNrKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZFByb2Nlc3NUYXNrKCkKICAgICB7CisjaWYgRU5BQkxFKENVU1RPTV9F
TEVNRU5UUykKKyAgICAgICAgV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWxpdmVy
QWxsTGlmZWN5Y2xlQ2FsbGJhY2tzKCk7CisjZW5kaWYKICAgICAgICAgV2ViQ29yZTo6TXV0YXRp
b25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwogICAgIH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194010</attachid>
            <date>2013-03-20 03:08:12 -0700</date>
            <delta_ts>2013-03-20 04:07:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112536-20130320152833.patch</filename>
            <type>text/plain</type>
            <size>2655</size>
            <attacher name="Jose Lejin PJ">jose.lejin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjA1MCkKKysrIFNvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTE4
ICBKb3NlIExlamluIFBKICA8am9zZS5sZWppbkBnbWFpbC5jb20+CisKKyAgICAgICAgZXdrX3Nl
dHRpbmdzX21lbW9yeV9jYWNoZV9jbGVhciBzaG91bGQgY2xlYXIgSlMgZ2FyYmFnZSBhbmQgcmVs
ZWFzZSBGYXN0TWFsbG9jJ3MgZnJlZSBwYWdlcyB0byBPUworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
R3l1eW91bmcgS2ltLgorCisgICAgICAgIEFkZGVkIGNoYW5nZXMgdG8gY2xlYXIgSlMgZ2FyYmFn
ZSBhbmQgcmVsZWFzZSBGYXN0TWFsbG9jJ3MgZnJlZSBwYWdlcyB0byBPUworICAgICAgICB3aGls
ZSBjYWxsaW5nIGV3a19zZXR0aW5nc19tZW1vcnlfY2FjaGVfY2xlYXIgQVBJLiAKKworICAgICAg
ICAqIGV3ay9ld2tfc2V0dGluZ3MuY3BwOgorICAgICAgICAoZXdrX3NldHRpbmdzX21lbW9yeV9j
YWNoZV9jbGVhcik6CisKIDIwMTMtMDMtMTUgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBIaWRlIE1haW5SZXNvdXJjZUxvYWRlciBmcm9tIHRoZSBvdXRzaWRl
IHdvcmxkCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAkocmV2aXNp
b24gMTQ2MDQ5KQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNs
dWRlICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTM3LDE0ICszOCwxNyBAQAogI2lu
Y2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VUaHJlYWQuaCIKICNpbmNs
dWRlICJTdG9yYWdlVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYktpdFZlcnNpb24uaCIKKyNpbmNs
dWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUg
PEVpbmEuaD4KICNpbmNsdWRlIDxlaW5hX3NhZmV0eV9jaGVja3MuaD4KICNpbmNsdWRlIDxlcnJu
by5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKQEAgLTI5OSw2ICszMDMsMTggQEAg
dm9pZCBld2tfc2V0dGluZ3NfbWVtb3J5X2NhY2hlX2NsZWFyKCkKIAogICAgIC8vIEVtcHR5IHRo
ZSBDcm9zcy1PcmlnaW4gUHJlZmxpZ2h0IGNhY2hlCiAgICAgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZTo6c2hhcmVkKCkuZW1wdHkoKTsKKworICAgIC8vIERyb3AgSklU
IGNvbXBpbGVkIGNvZGUgZnJvbSBFeGVjdXRhYmxlQWxsb2NhdG9yLgorICAgIFdlYkNvcmU6Omdj
Q29udHJvbGxlcigpLmRpc2NhcmRBbGxDb21waWxlZENvZGUoKTsKKyAgICAvLyBHYXJiYWdlIENv
bGxlY3QgdG8gcmVsZWFzZSB0aGUgcmVmZXJlbmNlcyBvZiBDYWNoZWRSZXNvdXJjZSBmcm9tIGRl
YWQgb2JqZWN0cy4KKyAgICBXZWJDb3JlOjpnY0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29sbGVjdE5v
dygpOworCisgICAgLy8gRmFzdE1hbGxvYyBoYXMgbG9jay1mcmVlIHRocmVhZCBzcGVjaWZpYyBj
YWNoZXMgdGhhdCBjYW4gb25seSBiZSBjbGVhcmVkIGZyb20gdGhlIHRocmVhZCBpdHNlbGYuCisg
ICAgV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5SW5B
bGxUaHJlYWRzKCk7CisjaWYgRU5BQkxFKFdPUktFUlMpCisgICAgV2ViQ29yZTo6V29ya2VyVGhy
ZWFkOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKTsKKyNlbmRpZgor
ICAgIFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCk7CiB9CiAKIHZvaWQgZXdrX3Nl
dHRpbmdzX3JlcGFpbnRfdGhyb3R0bGluZ19zZXQoZG91YmxlIGRlZmVycmVkUmVwYWludERlbGF5
LCBkb3VibGUgaW5pdGlhbERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZywgZG91Ymxl
IG1heERlZmVycmVkUmVwYWludERlbGF5RHVyaW5nTG9hZGluZywgZG91YmxlIGRlZmVycmVkUmVw
YWludERlbGF5SW5jcmVtZW50RHVyaW5nTG9hZGluZykK
</data>

          </attachment>
      

    </bug>

</bugzilla>