<?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>96501</bug_id>
          
          <creation_ts>2012-09-12 05:30:42 -0700</creation_ts>
          <short_desc>[EFL] Avoid manual memory management in RenderThemeEfl</short_desc>
          <delta_ts>2012-09-12 12:26:25 -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>
          <dependson>96540</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>718243</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-12 05:30:42 -0700</bug_when>
    <thetext>Use OwnPtr as it works for Evas_Object and Evas_Ecore objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718248</commentid>
    <comment_count>1</comment_count>
      <attachid>163602</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-12 05:33:03 -0700</bug_when>
    <thetext>Created attachment 163602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718253</commentid>
    <comment_count>2</comment_count>
      <attachid>163602</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-12 05:38:35 -0700</bug_when>
    <thetext>Comment on attachment 163602
Patch

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

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:494
&gt; -#ifndef NDEBUG
&gt; -    if (m_edje) {
&gt; +#if !NDEBUG

Can I know why you revert this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718259</commentid>
    <comment_count>3</comment_count>
      <attachid>163602</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-12 05:43:31 -0700</bug_when>
    <thetext>Comment on attachment 163602
Patch

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

&gt;&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:494
&gt;&gt; +#if !NDEBUG
&gt; 
&gt; Can I know why you revert this?

Rebase mistake! Thanks for catching!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718276</commentid>
    <comment_count>4</comment_count>
      <attachid>163602</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-12 05:54:22 -0700</bug_when>
    <thetext>Comment on attachment 163602
Patch

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

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:606
&gt; +    OwnPtr&lt;Evas_Object&gt; temp = adoptPtr(edje_object_add(ecore_evas_get(canvas())));

In this patch, can&apos;t change variable name together? Doesn&apos;t *temp* variable name looks unclear? Maybe, I think tempView looks better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718284</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-12 06:07:33 -0700</bug_when>
    <thetext>
&gt; In this patch, can&apos;t change variable name together? Doesn&apos;t *temp* variable name looks unclear? Maybe, I think tempView looks better.

That is incorrect. It is a temporary edje object for loading different groups that we need temporarily in order to get the part descriptions. I think temp is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718285</commentid>
    <comment_count>6</comment_count>
      <attachid>163611</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-12 06:09:03 -0700</bug_when>
    <thetext>Created attachment 163611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718292</commentid>
    <comment_count>7</comment_count>
      <attachid>163611</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-12 06:19:56 -0700</bug_when>
    <thetext>Comment on attachment 163611
Patch

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

Looks good to me.

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:225
&gt; +    ecore_evas_alpha_set(entry-&gt;canvas(), EINA_TRUE);

As a nit, I think that we use true/false .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718305</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-12 06:45:52 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 163611 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163611&amp;action=review
&gt; 
&gt; Looks good to me.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:225
&gt; &gt; +    ecore_evas_alpha_set(entry-&gt;canvas(), EINA_TRUE);
&gt; 
&gt; As a nit, I think that we use true/false .

That is a separate change then which should be done all over. Also I need to know that what you are thinking is actually true :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718311</commentid>
    <comment_count>9</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-12 06:55:25 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 163611 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163611&amp;action=review
&gt; &gt; 
&gt; &gt; Looks good to me.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:225
&gt; &gt; &gt; +    ecore_evas_alpha_set(entry-&gt;canvas(), EINA_TRUE);
&gt; &gt; 
&gt; &gt; As a nit, I think that we use true/false .
&gt; 
&gt; That is a separate change then which should be done all over. Also I need to know that what you are thinking is actually true :-)

I just mean that s/EINA_TRUE/true/.

It&apos;s not important. never mind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718348</commentid>
    <comment_count>10</comment_count>
      <attachid>163611</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-12 07:45:23 -0700</bug_when>
    <thetext>Comment on attachment 163611
Patch

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

Looks nice.

&gt;&gt;&gt;&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:225
&gt;&gt;&gt;&gt; +    ecore_evas_alpha_set(entry-&gt;canvas(), EINA_TRUE);
&gt;&gt;&gt; 
&gt;&gt;&gt; As a nit, I think that we use true/false .
&gt;&gt; 
&gt;&gt; That is a separate change then which should be done all over. Also I need to know that what you are thinking is actually true :-)
&gt; 
&gt; I just mean that s/EINA_TRUE/true/.
&gt; 
&gt; It&apos;s not important. never mind.

I&apos;m not sure whether you can remember this. When EFL port has efl specific coding style before, boolean type was one of confusing coding style in reviewers. So, you recommended to use standard boolean type instead of EINA_BOOL. Then, EFL port has used true/false except for public APIs so far. I was told that WebKit culturally doesn&apos;t like to only fix coding style. So, IMO, it would be good to fix this one together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718366</commentid>
    <comment_count>11</comment_count>
      <attachid>163611</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 08:07:46 -0700</bug_when>
    <thetext>Comment on attachment 163611
Patch

Clearing flags on attachment: 163611

Committed r128311: &lt;http://trac.webkit.org/changeset/128311&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718367</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 08:07:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718605</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-12 12:26:25 -0700</bug_when>
    <thetext>Broke the debug build. Addressing issue in Bug 96540.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163602</attachid>
            <date>2012-09-12 05:33:03 -0700</date>
            <delta_ts>2012-09-12 06:08:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96501-20120912143235.patch</filename>
            <type>text/plain</type>
            <size>16243</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNlMmNkMGMyOGI1ZTUx
MmE4NDRmZDcyMDZlMTg5YTczNGVhNjFlOC4uYjg0YWYxOGRjNThlNWQ5ZmJiMDQzNGEzNTA4NzEx
Yjg0NWUzZjBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
RUZMXSBBdm9pZCBtYW51YWwgbWVtb3J5IG1hbmFnZW1lbnQgaW4gUmVuZGVyVGhlbWVFZmwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NTAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIE93blB0ciBh
cyBpdCB3b3JrcyBmb3IgRXZhc19PYmplY3QgYW5kIEV2YXNfRWNvcmUgb2JqZWN0cy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbnRyeTo6VGhlbWVQYXJ0Q2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbnRy
eTo6flRoZW1lUGFydENhY2hlRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVF
Zmw6OlRoZW1lUGFydENhY2hlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbnRyeTo6cmV1c2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVFZmw6OnBhaW50VGhlbWVQYXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lRWZsOjpzZXRDb2xvckZyb21UaGVtZUNsYXNzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lRWZsOjp0aGVtZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVFZmw6OmxvYWRUaGVtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YXBw
bHlQYXJ0RGVzY3JpcHRpb25zRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVm
bDo6UmVuZGVyVGhlbWVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6On5S
ZW5kZXJUaGVtZUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6ZW1pdE1l
ZGlhQnV0dG9uU2lnbmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpjYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OmVkamUpOgorICAgICAgICAoUmVuZGVyVGhlbWVFZmwp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnk6
OmNhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2Fj
aGVFbnRyeTo6ZWRqZSk6CisgICAgICAgIChUaGVtZVBhcnRDYWNoZUVudHJ5KToKKwogMjAxMi0w
OS0xMCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW0VGTF0gQ2xlYW4gdXAgdGhlIFJlbmRlclRoZW1lIEVkamUgY2FjaGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggZjM2
MTQxYjZhZTUyMDA1ZGNhNWZjMzM4OGI0M2RkZTdmOTM5ZGY4OC4uYmViY2NmNTg1Yjk3MjhkZmNi
Y2E1ODAyNjI2MDlkNTQ4NjZhZjc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBSZW5kZXJUaGVt
ZUVmbDo6YWRqdXN0U2l6ZUNvbnN0cmFpbnRzKFJlbmRlclN0eWxlKiBzdHlsZSwgRm9ybVR5cGUg
dHlwZSkgY28KIH0KIAogUmVuZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnk6OlRoZW1l
UGFydENhY2hlRW50cnkoKQotICAgIDogZWUoMCksIG8oMCksIHN1cmZhY2UoMCkKKyAgICA6IHN1
cmZhY2UoMCkKIHsKIH0KIApAQCAtMTcxLDEwICsxNzEsNiBAQCBSZW5kZXJUaGVtZUVmbDo6VGhl
bWVQYXJ0Q2FjaGVFbnRyeTo6flRoZW1lUGFydENhY2hlRW50cnkoKQogewogICAgIGlmIChzdXJm
YWNlKQogICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3koc3VyZmFjZSk7Ci0gICAgaWYgKG8p
Ci0gICAgICAgIGV2YXNfb2JqZWN0X2RlbChvKTsKLSAgICBpZiAoZWUpCi0gICAgICAgIGVjb3Jl
X2V2YXNfZnJlZShlZSk7CiB9CiAKIHN0YXRpYyBjYWlyb19zdXJmYWNlX3QqIGNyZWF0ZUNhaXJv
U3VyZmFjZUZvcihFY29yZV9FdmFzKiBlZSkKQEAgLTIxOSwyNyArMjE1LDI3IEBAIFJlbmRlclRo
ZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVudHJ5KiBSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2Fj
aGVFbnRyeTo6Y3JlYXRlCiAKICAgICBPd25QdHI8VGhlbWVQYXJ0Q2FjaGVFbnRyeSo+IGVudHJ5
ID0gYWRvcHRQdHIobmV3IFRoZW1lUGFydENhY2hlRW50cnkpOwogCi0gICAgZW50cnktPmVlID0g
ZWNvcmVfZXZhc19idWZmZXJfbmV3KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0gICAg
aWYgKCFlbnRyeS0+ZWUpIHsKKyAgICBlbnRyeS0+bV9jYW52YXMgPSBhZG9wdFB0cihlY29yZV9l
dmFzX2J1ZmZlcl9uZXcoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CisgICAgaWYgKCFl
bnRyeS0+Y2FudmFzKCkpIHsKICAgICAgICAgRUlOQV9MT0dfRVJSKCJlY29yZV9ldmFzX2J1ZmZl
cl9uZXcoJWQsICVkKSBmYWlsZWQuIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgLy8gQnkgZGVmYXVsdCBFRkwgY3JlYXRlcyBi
dWZmZXJzIHdpdGhvdXQgYWxwaGEuCi0gICAgZWNvcmVfZXZhc19hbHBoYV9zZXQoZW50cnktPmVl
LCBFSU5BX1RSVUUpOworICAgIGVjb3JlX2V2YXNfYWxwaGFfc2V0KGVudHJ5LT5jYW52YXMoKSwg
RUlOQV9UUlVFKTsKIAotICAgIGVudHJ5LT5vID0gZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNf
Z2V0KGVudHJ5LT5lZSkpOwotICAgIEFTU0VSVChlbnRyeS0+byk7CisgICAgZW50cnktPm1fZWRq
ZSA9IGFkb3B0UHRyKGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChlbnRyeS0+Y2FudmFz
KCkpKSk7CisgICAgQVNTRVJUKGVudHJ5LT5lZGplKCkpOwogCi0gICAgaWYgKCFzZXRTb3VyY2VH
cm91cEZvckVkamVPYmplY3QoZW50cnktPm8sIHRoZW1lUGF0aCwgdG9FZGplR3JvdXAodHlwZSkp
KQorICAgIGlmICghc2V0U291cmNlR3JvdXBGb3JFZGplT2JqZWN0KGVudHJ5LT5lZGplKCksIHRo
ZW1lUGF0aCwgdG9FZGplR3JvdXAodHlwZSkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGVu
dHJ5LT5zdXJmYWNlID0gY3JlYXRlQ2Fpcm9TdXJmYWNlRm9yKGVudHJ5LT5lZSk7CisgICAgZW50
cnktPnN1cmZhY2UgPSBjcmVhdGVDYWlyb1N1cmZhY2VGb3IoZW50cnktPmNhbnZhcygpKTsKICAg
ICBpZiAoIWVudHJ5LT5zdXJmYWNlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGV2YXNfb2Jq
ZWN0X3Jlc2l6ZShlbnRyeS0+bywgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKLSAgICBl
dmFzX29iamVjdF9zaG93KGVudHJ5LT5vKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoZW50cnkt
PmVkamUoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKyAgICBldmFzX29iamVjdF9z
aG93KGVudHJ5LT5lZGplKCkpOwogCiAgICAgZW50cnktPnR5cGUgPSB0eXBlOwogICAgIGVudHJ5
LT5zaXplID0gc2l6ZTsKQEAgLTI1NSwxNyArMjUxLDE3IEBAIHZvaWQgUmVuZGVyVGhlbWVFZmw6
OlRoZW1lUGFydENhY2hlRW50cnk6OnJldXNlKGNvbnN0IFN0cmluZyYgdGhlbWVQYXRoLCBGb3Jt
VHlwCiAgICAgICAgIGNhaXJvX3N1cmZhY2VfZmluaXNoKHN1cmZhY2UpOwogCiAgICAgICAgIHNp
emUgPSBuZXdTaXplOwotICAgICAgICBlY29yZV9ldmFzX3Jlc2l6ZShlZSwgbmV3U2l6ZS53aWR0
aCgpLCBuZXdTaXplLmhlaWdodCgpKTsKLSAgICAgICAgZXZhc19vYmplY3RfcmVzaXplKG8sIG5l
d1NpemUud2lkdGgoKSwgbmV3U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIGVjb3JlX2V2YXNfcmVz
aXplKGNhbnZhcygpLCBuZXdTaXplLndpZHRoKCksIG5ld1NpemUuaGVpZ2h0KCkpOworICAgICAg
ICBldmFzX29iamVjdF9yZXNpemUoZWRqZSgpLCBuZXdTaXplLndpZHRoKCksIG5ld1NpemUuaGVp
Z2h0KCkpOwogCi0gICAgICAgIHN1cmZhY2UgPSBjcmVhdGVDYWlyb1N1cmZhY2VGb3IoZWUpOwor
ICAgICAgICBzdXJmYWNlID0gY3JlYXRlQ2Fpcm9TdXJmYWNlRm9yKGNhbnZhcygpKTsKICAgICAg
ICAgaWYgKCFzdXJmYWNlKSB7CiAgICAgICAgICAgICB0eXBlID0gRm9ybVR5cGVMYXN0OyAvLyBJ
bnZhbGlkYXRlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKCFzZXRTb3VyY2VHcm91cEZvckVkamVPYmplY3QobywgdGhlbWVQYXRoLCB0b0VkamVHcm91
cChuZXdUeXBlKSkpIHsKKyAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9yRWRqZU9iamVjdChlZGpl
KCksIHRoZW1lUGF0aCwgdG9FZGplR3JvdXAobmV3VHlwZSkpKSB7CiAgICAgICAgIHR5cGUgPSBG
b3JtVHlwZUxhc3Q7IC8vIEludmFsaWRhdGUuCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0z
NTEsNyArMzQ3LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUVmbDo6YXBwbHlFZGplU3RhdGVGcm9tRm9y
bShFdmFzX09iamVjdCogb2JqZWN0LCBDb250cm9sU3RhdGVzIHMKIGJvb2wgUmVuZGVyVGhlbWVF
Zmw6OnBhaW50VGhlbWVQYXJ0KFJlbmRlck9iamVjdCogb2JqZWN0LCBGb3JtVHlwZSB0eXBlLCBj
b25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgbG9hZFRo
ZW1lSWZOZWVkZWQoKTsKLSAgICBfQVNTRVJUX09OX1JFTEVBU0VfUkVUVVJOX1ZBTChtX2VkamUs
IGZhbHNlLCAiQ291bGQgbm90IHBhaW50IG5hdGl2ZSBIVE1MIHBhcnQgZHVlIHRvIG1pc3Npbmcg
dGhlbWUuIik7CisgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9WQUwoZWRqZSgpLCBmYWxz
ZSwgIkNvdWxkIG5vdCBwYWludCBuYXRpdmUgSFRNTCBwYXJ0IGR1ZSB0byBtaXNzaW5nIHRoZW1l
LiIpOwogCiAgICAgVGhlbWVQYXJ0Q2FjaGVFbnRyeSogZW50cnk7CiAgICAgRWluYV9MaXN0KiB1
cGRhdGVzOwpAQCAtMzYxLDcgKzM1Nyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50VGhl
bWVQYXJ0KFJlbmRlck9iamVjdCogb2JqZWN0LCBGb3JtVHlwZSB0eXBlLCBjb25zdCBQCiAgICAg
aWYgKCFlbnRyeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXBwbHlFZGplU3RhdGVG
cm9tRm9ybShlbnRyeS0+bywgY29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKG9iamVjdCkpOworICAg
IGFwcGx5RWRqZVN0YXRlRnJvbUZvcm0oZW50cnktPmVkamUoKSwgY29udHJvbFN0YXRlc0ZvclJl
bmRlcmVyKG9iamVjdCkpOwogCiAgICAgY2Fpcm8gPSBpbmZvLmNvbnRleHQtPnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpOwogICAgIEFTU0VSVChjYWlybyk7CkBAIC0zOTAsNyArMzg2LDcgQEAgYm9v
bCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRUaGVtZVBhcnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZv
cm1UeXBlIHR5cGUsIGNvbnN0IFAKICAgICAgICAgICAgIG1zZy0+dmFsWzBdID0gMDsKIAogICAg
ICAgICBtc2ctPnZhbFsxXSA9IChpbnB1dC0+dmFsdWVBc051bWJlcigpIC0gaW5wdXQtPm1pbmlt
dW0oKSkgLyB2YWx1ZVJhbmdlOwotICAgICAgICBlZGplX29iamVjdF9tZXNzYWdlX3NlbmQoZW50
cnktPm8sIEVESkVfTUVTU0FHRV9GTE9BVF9TRVQsIDAsIG1zZyk7CisgICAgICAgIGVkamVfb2Jq
ZWN0X21lc3NhZ2Vfc2VuZChlbnRyeS0+ZWRqZSgpLCBFREpFX01FU1NBR0VfRkxPQVRfU0VULCAw
LCBtc2cpOwogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVNRU5UKQogICAgIH0gZWxzZSBpZiAodHlw
ZSA9PSBQcm9ncmVzc0JhcikgewogICAgICAgICBSZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJvZ3Jl
c3MgPSB0b1JlbmRlclByb2dyZXNzKG9iamVjdCk7CkBAIC00MDcsMTMgKzQwMywxMyBAQCBib29s
IFJlbmRlclRoZW1lRWZsOjpwYWludFRoZW1lUGFydChSZW5kZXJPYmplY3QqIG9iamVjdCwgRm9y
bVR5cGUgdHlwZSwgY29uc3QgUAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtc2ctPnZhbFsw
XSA9IDA7CiAgICAgICAgIG1zZy0+dmFsWzFdID0gdmFsdWU7Ci0gICAgICAgIGVkamVfb2JqZWN0
X21lc3NhZ2Vfc2VuZChlbnRyeS0+bywgRURKRV9NRVNTQUdFX0ZMT0FUX1NFVCwgMCwgbXNnKTsK
KyAgICAgICAgZWRqZV9vYmplY3RfbWVzc2FnZV9zZW5kKGVudHJ5LT5lZGplKCksIEVESkVfTUVT
U0FHRV9GTE9BVF9TRVQsIDAsIG1zZyk7CiAjZW5kaWYKICAgICB9CiAKLSAgICBlZGplX29iamVj
dF9jYWxjX2ZvcmNlKGVudHJ5LT5vKTsKLSAgICBlZGplX29iamVjdF9tZXNzYWdlX3NpZ25hbF9w
cm9jZXNzKGVudHJ5LT5vKTsKLSAgICB1cGRhdGVzID0gZXZhc19yZW5kZXJfdXBkYXRlcyhlY29y
ZV9ldmFzX2dldChlbnRyeS0+ZWUpKTsKKyAgICBlZGplX29iamVjdF9jYWxjX2ZvcmNlKGVudHJ5
LT5lZGplKCkpOworICAgIGVkamVfb2JqZWN0X21lc3NhZ2Vfc2lnbmFsX3Byb2Nlc3MoZW50cnkt
PmVkamUoKSk7CisgICAgdXBkYXRlcyA9IGV2YXNfcmVuZGVyX3VwZGF0ZXMoZWNvcmVfZXZhc19n
ZXQoZW50cnktPmNhbnZhcygpKSk7CiAgICAgZXZhc19yZW5kZXJfdXBkYXRlc19mcmVlKHVwZGF0
ZXMpOwogCiAgICAgY2Fpcm9fc2F2ZShjYWlybyk7CkBAIC00NjQsMTQgKzQ2MCwxNCBAQCBzdGF0
aWMgdm9pZCBmaWxsQ29sb3JzRnJvbUVkamVDbGFzcyhFdmFzX09iamVjdCogbywgY29uc3QgY2hh
ciogY29sb3JDbGFzcywgQ29sbwogCiB2b2lkIFJlbmRlclRoZW1lRWZsOjpzZXRDb2xvckZyb21U
aGVtZUNsYXNzKGNvbnN0IGNoYXIqIGNvbG9yQ2xhc3MpCiB7Ci0gICAgQVNTRVJUKG1fZWRqZSk7
CisgICAgQVNTRVJUKGVkamUoKSk7CiAKICAgICBpZiAoIXN0cmNtcCgid2Via2l0L3NlbGVjdGlv
bi9hY3RpdmUiLCBjb2xvckNsYXNzKSkKLSAgICAgICAgZmlsbENvbG9yc0Zyb21FZGplQ2xhc3Mo
bV9lZGplLCBjb2xvckNsYXNzLCAmbV9hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IsICZt
X2FjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik7CisgICAgICAgIGZpbGxDb2xvcnNGcm9t
RWRqZUNsYXNzKGVkamUoKSwgY29sb3JDbGFzcywgJm1fYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yLCAmbV9hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOwogICAgIGVsc2UgaWYg
KCFzdHJjbXAoIndlYmtpdC9zZWxlY3Rpb24vaW5hY3RpdmUiLCBjb2xvckNsYXNzKSkKLSAgICAg
ICAgZmlsbENvbG9yc0Zyb21FZGplQ2xhc3MobV9lZGplLCBjb2xvckNsYXNzLCAmbV9pbmFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciwgJm1faW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IpOworICAgICAgICBmaWxsQ29sb3JzRnJvbUVkamVDbGFzcyhlZGplKCksIGNvbG9yQ2xh
c3MsICZtX2luYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yLCAmbV9pbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcik7CiAgICAgZWxzZSBpZiAoIXN0cmNtcCgid2Via2l0L2ZvY3Vz
X3JpbmciLCBjb2xvckNsYXNzKSkgewotICAgICAgICBmaWxsQ29sb3JzRnJvbUVkamVDbGFzcyht
X2VkamUsIGNvbG9yQ2xhc3MsICZtX2ZvY3VzUmluZ0NvbG9yKTsKKyAgICAgICAgZmlsbENvbG9y
c0Zyb21FZGplQ2xhc3MoZWRqZSgpLCBjb2xvckNsYXNzLCAmbV9mb2N1c1JpbmdDb2xvcik7CiAg
ICAgICAgIC8vIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBpcyBvbmx5IHVzZWQgZm9yIHRoZSBk
ZWZhdWx0IHRoZW1lICh3aXRob3V0IHBhZ2UpCiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMg
dWdseSwgYnV0IG5vIG90aGVyIHdheSB0byBkbyBpdCB1bmxlc3Mgd2UgY2hhbmdlIGl0IHRvIHVz
ZSBwYWdlIHRoZW1lcyBhcyBtdWNoIGFzIHBvc3NpYmxlLgogICAgICAgICBSZW5kZXJUaGVtZTo6
c2V0Q3VzdG9tRm9jdXNSaW5nQ29sb3IobV9mb2N1c1JpbmdDb2xvcik7CkBAIC00OTUsMTAgKzQ5
MSwxMCBAQCB2b2lkIFJlbmRlclRoZW1lRWZsOjpzZXRUaGVtZVBhdGgoY29uc3QgU3RyaW5nJiBw
YXRoKQogCiBTdHJpbmcgUmVuZGVyVGhlbWVFZmw6OnRoZW1lUGF0aCgpIGNvbnN0CiB7Ci0jaWZu
ZGVmIE5ERUJVRwotICAgIGlmIChtX2VkamUpIHsKKyNpZiAhTkRFQlVHCisgICAgaWYgKGVkamUo
KSkgewogICAgICAgICBjb25zdCBjaGFyKiBwYXRoOwotICAgICAgICBlZGplX29iamVjdF9maWxl
X2dldChtX2VkamUsICZwYXRoLCAwKTsKKyAgICAgICAgZWRqZV9vYmplY3RfZmlsZV9nZXQoZWRq
ZSgpLCAmcGF0aCwgMCk7CiAgICAgICAgIEFTU0VSVChtX3RoZW1lUGF0aCA9PSBwYXRoKTsKICAg
ICB9CiAjZW5kaWYKQEAgLTUwOSwzMiArNTA1LDI4IEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6Omxv
YWRUaGVtZSgpCiB7CiAgICAgQVNTRVJUKCFtX3RoZW1lUGF0aC5pc0VtcHR5KCkpOwogCi0gICAg
aWYgKCFtX2NhbnZhcykgewotICAgICAgICBtX2NhbnZhcyA9IGVjb3JlX2V2YXNfYnVmZmVyX25l
dygxLCAxKTsKLSAgICAgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9WQUwobV9jYW52YXMs
IGZhbHNlLAorICAgIGlmICghY2FudmFzKCkpIHsKKyAgICAgICAgbV9jYW52YXMgPSBhZG9wdFB0
cihlY29yZV9ldmFzX2J1ZmZlcl9uZXcoMSwgMSkpOworICAgICAgICBfQVNTRVJUX09OX1JFTEVB
U0VfUkVUVVJOX1ZBTChjYW52YXMoKSwgZmFsc2UsCiAgICAgICAgICAgICAgICAgIkNvdWxkIG5v
dCBjcmVhdGUgY2FudmFzIHJlcXVpcmVkIGJ5IHRoZW1lLCB0aGluZ3Mgd2lsbCBub3Qgd29yayBw
cm9wZXJseS4iKTsKICAgICB9CiAKLSAgICBFdmFzX09iamVjdCogbyA9IGVkamVfb2JqZWN0X2Fk
ZChlY29yZV9ldmFzX2dldChtX2NhbnZhcykpOworICAgIE93blB0cjxFdmFzX09iamVjdD4gbyA9
IGFkb3B0UHRyKGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKICAg
ICBfQVNTRVJUX09OX1JFTEVBU0VfUkVUVVJOX1ZBTChvLCBmYWxzZSwgIkNvdWxkIG5vdCBjcmVh
dGUgbmV3IGJhc2UgRWRqZSBvYmplY3QuIik7CiAKLSAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9y
RWRqZU9iamVjdChvLCBtX3RoZW1lUGF0aCwgIndlYmtpdC9iYXNlIikpIHsKLSAgICAgICAgZXZh
c19vYmplY3RfZGVsKG8pOworICAgIGlmICghc2V0U291cmNlR3JvdXBGb3JFZGplT2JqZWN0KG8u
Z2V0KCksIG1fdGhlbWVQYXRoLCAid2Via2l0L2Jhc2UiKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OyAvLyBLZWVwIGN1cnJlbnQgdGhlbWUuCi0gICAgfQogCiAgICAgLy8gR2V0IHJpZCBvZiBleGlz
dGluZyB0aGVtZS4KLSAgICBpZiAobV9lZGplKSB7CisgICAgaWYgKGVkamUoKSkKICAgICAgICAg
Zmx1c2hUaGVtZVBhcnRDYWNoZSgpOwotICAgICAgICBldmFzX29iamVjdF9kZWwobV9lZGplKTsK
LSAgICB9CiAKICAgICAvLyBTZXQgbmV3IGxvYWRlZCB0aGVtZSwgYW5kIGFwcGx5IGl0LgotICAg
IG1fZWRqZSA9IG87CisgICAgbV9lZGplLnN3YXAobyk7CiAKLSAgICBlZGplX29iamVjdF9zaWdu
YWxfY2FsbGJhY2tfYWRkKG1fZWRqZSwgImNvbG9yX2NsYXNzLHNldCIsICJ3ZWJraXQvc2VsZWN0
aW9uL2FjdGl2ZSIsIGFwcGx5Q29sb3JDYWxsYmFjaywgdGhpcyk7Ci0gICAgZWRqZV9vYmplY3Rf
c2lnbmFsX2NhbGxiYWNrX2FkZChtX2VkamUsICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0L3Nl
bGVjdGlvbi9pbmFjdGl2ZSIsIGFwcGx5Q29sb3JDYWxsYmFjaywgdGhpcyk7Ci0gICAgZWRqZV9v
YmplY3Rfc2lnbmFsX2NhbGxiYWNrX2FkZChtX2VkamUsICJjb2xvcl9jbGFzcyxzZXQiLCAid2Vi
a2l0L2ZvY3VzX3JpbmciLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOworICAgIGVkamVfb2Jq
ZWN0X3NpZ25hbF9jYWxsYmFja19hZGQoZWRqZSgpLCAiY29sb3JfY2xhc3Msc2V0IiwgIndlYmtp
dC9zZWxlY3Rpb24vYWN0aXZlIiwgYXBwbHlDb2xvckNhbGxiYWNrLCB0aGlzKTsKKyAgICBlZGpl
X29iamVjdF9zaWduYWxfY2FsbGJhY2tfYWRkKGVkamUoKSwgImNvbG9yX2NsYXNzLHNldCIsICJ3
ZWJraXQvc2VsZWN0aW9uL2luYWN0aXZlIiwgYXBwbHlDb2xvckNhbGxiYWNrLCB0aGlzKTsKKyAg
ICBlZGplX29iamVjdF9zaWduYWxfY2FsbGJhY2tfYWRkKGVkamUoKSwgImNvbG9yX2NsYXNzLHNl
dCIsICJ3ZWJraXQvZm9jdXNfcmluZyIsIGFwcGx5Q29sb3JDYWxsYmFjaywgdGhpcyk7CiAKICAg
ICBhcHBseVBhcnREZXNjcmlwdGlvbnNGcm9tKG1fdGhlbWVQYXRoKTsKIApAQCAtNjExLDE5ICs2
MDMsMTcgQEAgdm9pZCBSZW5kZXJUaGVtZUVmbDo6YXBwbHlQYXJ0RGVzY3JpcHRpb24oRXZhc19P
YmplY3QqIG9iamVjdCwgVGhlbWVQYXJ0RGVzYyogZGUKIAogdm9pZCBSZW5kZXJUaGVtZUVmbDo6
YXBwbHlQYXJ0RGVzY3JpcHRpb25zRnJvbShjb25zdCBTdHJpbmcmIHRoZW1lUGF0aCkKIHsKLSAg
ICBFdmFzX09iamVjdCogdGVtcCA9IGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChtX2Nh
bnZhcykpOworICAgIE93blB0cjxFdmFzX09iamVjdD4gdGVtcCA9IGFkb3B0UHRyKGVkamVfb2Jq
ZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKICAgICBfQVNTRVJUX09OX1JFTEVB
U0VfUkVUVVJOKHRlbXAsICJDb3VsZCBub3QgY3JlYXRlIEVkamUgb2JqZWN0LiIpOwogCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBGb3JtVHlwZUxhc3Q7IGkrKykgewogICAgICAgICBGb3Jt
VHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8Rm9ybVR5cGU+KGkpOwogICAgICAgICBtX3BhcnREZXNj
c1tpXS50eXBlID0gdHlwZTsKLSAgICAgICAgaWYgKCFzZXRTb3VyY2VHcm91cEZvckVkamVPYmpl
Y3QodGVtcCwgdGhlbWVQYXRoLCB0b0VkamVHcm91cCh0eXBlKSkpCisgICAgICAgIGlmICghc2V0
U291cmNlR3JvdXBGb3JFZGplT2JqZWN0KHRlbXAuZ2V0KCksIHRoZW1lUGF0aCwgdG9FZGplR3Jv
dXAodHlwZSkpKQogICAgICAgICAgICAgYXBwbHlQYXJ0RGVzY3JpcHRpb25GYWxsYmFjayhtX3Bh
cnREZXNjcyArIGkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBseVBhcnREZXNjcmlw
dGlvbih0ZW1wLCBtX3BhcnREZXNjcyArIGkpOworICAgICAgICAgICAgYXBwbHlQYXJ0RGVzY3Jp
cHRpb24odGVtcC5nZXQoKSwgbV9wYXJ0RGVzY3MgKyBpKTsKICAgICB9Ci0KLSAgICBldmFzX29i
amVjdF9kZWwodGVtcCk7CiB9CiAKIFJlbmRlclRoZW1lRWZsOjpSZW5kZXJUaGVtZUVmbChQYWdl
KiBwYWdlKQpAQCAtNjM5LDIwICs2MjksMTIgQEAgUmVuZGVyVGhlbWVFZmw6OlJlbmRlclRoZW1l
RWZsKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX21lZGlhUGFuZWxDb2xvcigyMjAsIDIyMCwgMTk1KSAv
LyBsaWdodCB0YW5uaXNoIGNvbG9yLgogICAgICwgbV9tZWRpYVNsaWRlckNvbG9yKENvbG9yOjp3
aGl0ZSkKICNlbmRpZgotICAgICwgbV9jYW52YXMoMCkKLSAgICAsIG1fZWRqZSgwKQogewogfQog
CiBSZW5kZXJUaGVtZUVmbDo6flJlbmRlclRoZW1lRWZsKCkKIHsKICAgICBmbHVzaFRoZW1lUGFy
dENhY2hlKCk7Ci0KLSAgICBpZiAobV9jYW52YXMpIHsKLSAgICAgICAgaWYgKG1fZWRqZSkKLSAg
ICAgICAgICAgIGV2YXNfb2JqZWN0X2RlbChtX2VkamUpOwotICAgICAgICBlY29yZV9ldmFzX2Zy
ZWUobV9jYW52YXMpOwotICAgIH0KIH0KIAogc3RhdGljIGJvb2wgc3VwcG9ydHNGb2N1cyhDb250
cm9sUGFydCBhcHBlYXJhbmNlKQpAQCAtMTA2NywzMCArMTA0OSwzMCBAQCBib29sIFJlbmRlclRo
ZW1lRWZsOjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWlu
dEluZm8mIGluZgogYm9vbCBSZW5kZXJUaGVtZUVmbDo6ZW1pdE1lZGlhQnV0dG9uU2lnbmFsKEZv
cm1UeXBlIGZvcm1UeXBlLCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBtZWRpYUVsZW1lbnRUeXBl
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGxvYWRUaGVtZUlmTmVlZGVkKCk7Ci0gICAg
X0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9WQUwobV9lZGplLCBmYWxzZSwgIkNvdWxkIG5vdCBw
YWludCBuYXRpdmUgSFRNTCBwYXJ0IGR1ZSB0byBtaXNzaW5nIHRoZW1lLiIpOworICAgIF9BU1NF
UlRfT05fUkVMRUFTRV9SRVRVUk5fVkFMKGVkamUoKSwgZmFsc2UsICJDb3VsZCBub3QgcGFpbnQg
bmF0aXZlIEhUTUwgcGFydCBkdWUgdG8gbWlzc2luZyB0aGVtZS4iKTsKIAogICAgIFRoZW1lUGFy
dENhY2hlRW50cnkqIGVudHJ5ID0gZ2V0VGhlbWVQYXJ0RnJvbUNhY2hlKGZvcm1UeXBlLCByZWN0
LnNpemUoKSk7CiAgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9WQUwoZW50cnksIGZhbHNl
LCAiQ291bGQgbm90IHBhaW50IG5hdGl2ZSBIVE1MIHBhcnQgZHVlIHRvIG1pc3NpbmcgdGhlbWUg
cGFydC4iKTsKIAogICAgIGlmIChtZWRpYUVsZW1lbnRUeXBlID09IE1lZGlhUGxheUJ1dHRvbikK
LSAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoZW50cnktPm8sICJwbGF5IiwgIiIpOwor
ICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+ZWRqZSgpLCAicGxheSIsICIi
KTsKICAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnRUeXBlID09IE1lZGlhUGF1c2VCdXR0b24pCi0g
ICAgICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5vLCAicGF1c2UiLCAiIik7Cisg
ICAgICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5lZGplKCksICJwYXVzZSIsICIi
KTsKICAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnRUeXBlID09IE1lZGlhTXV0ZUJ1dHRvbikKLSAg
ICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoZW50cnktPm8sICJtdXRlIiwgIiIpOworICAg
ICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+ZWRqZSgpLCAibXV0ZSIsICIiKTsK
ICAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnRUeXBlID09IE1lZGlhVW5NdXRlQnV0dG9uKQotICAg
ICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+bywgInNvdW5kIiwgIiIpOworICAg
ICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+ZWRqZSgpLCAic291bmQiLCAiIik7
CiAgICAgZWxzZSBpZiAobWVkaWFFbGVtZW50VHlwZSA9PSBNZWRpYVNlZWtGb3J3YXJkQnV0dG9u
KQotICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+bywgInNlZWtmb3J3YXJk
IiwgIiIpOworICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+ZWRqZSgpLCAi
c2Vla2ZvcndhcmQiLCAiIik7CiAgICAgZWxzZSBpZiAobWVkaWFFbGVtZW50VHlwZSA9PSBNZWRp
YVNlZWtCYWNrQnV0dG9uKQotICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+
bywgInNlZWtiYWNrd2FyZCIsICIiKTsKKyAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQo
ZW50cnktPmVkamUoKSwgInNlZWtiYWNrd2FyZCIsICIiKTsKICAgICBlbHNlIGlmIChtZWRpYUVs
ZW1lbnRUeXBlID09IE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uKQotICAgICAgICBlZGplX29i
amVjdF9zaWduYWxfZW1pdChlbnRyeS0+bywgImZ1bGxzY3JlZW4iLCAiIik7CisgICAgICAgIGVk
amVfb2JqZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5lZGplKCksICJmdWxsc2NyZWVuIiwgIiIpOwog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnRUeXBlID09
IE1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uKQotICAgICAgICBlZGplX29iamVjdF9zaWdu
YWxfZW1pdChlbnRyeS0+bywgInNob3dfY2FwdGlvbnMiLCAiIik7CisgICAgICAgIGVkamVfb2Jq
ZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5lZGplKCksICJzaG93X2NhcHRpb25zIiwgIiIpOwogICAg
IGVsc2UgaWYgKG1lZGlhRWxlbWVudFR5cGUgPT0gTWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24pCi0gICAgICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5vLCAiaGlkZV9jYXB0
aW9ucyIsICIiKTsKKyAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoZW50cnktPmVkamUo
KSwgImhpZGVfY2FwdGlvbnMiLCAiIik7CiAjZW5kaWYKICAgICBlbHNlCiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJU
aGVtZUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgK
aW5kZXggNzBkNDYzNDc5NThlODg0YjUwZTI2YjM1ZWZjY2ZlYmY1MGZmYzBmMi4uMjA0NzJjZjM3
NzY1YWRlYTFkMWMzYTk3NjY3NGQwZjkxODZhZjRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKQEAgLTIyMiw2ICsyMjIsOSBAQCBwcml2YXRlOgog
ICAgICAgICByZXR1cm4gbV9lZGplIHx8ICghbV90aGVtZVBhdGguaXNFbXB0eSgpICYmIGNvbnN0
X2Nhc3Q8UmVuZGVyVGhlbWVFZmwqPih0aGlzKS0+bG9hZFRoZW1lKCkpOwogICAgIH0KIAorICAg
IEFMV0FZU19JTkxJTkUgRWNvcmVfRXZhcyogY2FudmFzKCkgeyByZXR1cm4gbV9jYW52YXMuZ2V0
KCk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIEV2YXNfT2JqZWN0KiBlZGplKCkgeyByZXR1cm4gbV9l
ZGplLmdldCgpOyB9CisKICAgICB2b2lkIGFwcGx5UGFydERlc2NyaXB0aW9uc0Zyb20oY29uc3Qg
U3RyaW5nJiB0aGVtZVBhdGgpOwogCiAgICAgdm9pZCBhcHBseUVkamVTdGF0ZUZyb21Gb3JtKEV2
YXNfT2JqZWN0KiwgQ29udHJvbFN0YXRlcyk7CkBAIC0yNDUsOCArMjQ4LDkgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAgICAgU3RyaW5nIG1fdGhlbWVQYXRoOwotICAgIEVjb3JlX0V2YXMqIG1fY2Fu
dmFzOwotICAgIEV2YXNfT2JqZWN0KiBtX2VkamU7CisgICAgLy8gT3JkZXIgc28gdGhhdCB0aGUg
Y2FudmFzIGdldHMgZGVzdHJveWVkIGF0IGxhc3QuCisgICAgT3duUHRyPEVjb3JlX0V2YXM+IG1f
Y2FudmFzOworICAgIE93blB0cjxFdmFzX09iamVjdD4gbV9lZGplOwogCiAgICAgc3RydWN0IFRo
ZW1lUGFydERlc2MgewogICAgICAgICBGb3JtVHlwZSB0eXBlOwpAQCAtMjYzLDExICsyNjcsMTcg
QEAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIFRoZW1lUGFydENhY2hlRW50cnkqIGNyZWF0ZShj
b25zdCBTdHJpbmcmIHRoZW1lUGF0aCwgRm9ybVR5cGUsIGNvbnN0IEludFNpemUmKTsKICAgICAg
ICAgdm9pZCByZXVzZShjb25zdCBTdHJpbmcmIHRoZW1lUGF0aCwgRm9ybVR5cGUsIGNvbnN0IElu
dFNpemUmID0gSW50U2l6ZSgpKTsKIAorICAgICAgICBBTFdBWVNfSU5MSU5FIEVjb3JlX0V2YXMq
IGNhbnZhcygpIHsgcmV0dXJuIG1fY2FudmFzLmdldCgpOyB9CisgICAgICAgIEFMV0FZU19JTkxJ
TkUgRXZhc19PYmplY3QqIGVkamUoKSB7IHJldHVybiBtX2VkamUuZ2V0KCk7IH0KKwogICAgICAg
ICBGb3JtVHlwZSB0eXBlOwogICAgICAgICBJbnRTaXplIHNpemU7Ci0gICAgICAgIEVjb3JlX0V2
YXMqIGVlOwotICAgICAgICBFdmFzX09iamVjdCogbzsKICAgICAgICAgY2Fpcm9fc3VyZmFjZV90
KiBzdXJmYWNlOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gT3JkZXIgc28gdGhhdCB0aGUg
Y2FudmFzIGdldHMgZGVzdHJveWVkIGF0IGxhc3QuCisgICAgICAgIE93blB0cjxFY29yZV9FdmFz
PiBtX2NhbnZhczsKKyAgICAgICAgT3duUHRyPEV2YXNfT2JqZWN0PiBtX2VkamU7CiAgICAgfTsK
IAogICAgIHN0cnVjdCBUaGVtZVBhcnREZXNjIG1fcGFydERlc2NzW0Zvcm1UeXBlTGFzdF07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163611</attachid>
            <date>2012-09-12 06:09:03 -0700</date>
            <delta_ts>2012-09-12 08:07:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96501-20120912150835.patch</filename>
            <type>text/plain</type>
            <size>16226</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNlMmNkMGMyOGI1ZTUx
MmE4NDRmZDcyMDZlMTg5YTczNGVhNjFlOC4uYjg0YWYxOGRjNThlNWQ5ZmJiMDQzNGEzNTA4NzEx
Yjg0NWUzZjBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
RUZMXSBBdm9pZCBtYW51YWwgbWVtb3J5IG1hbmFnZW1lbnQgaW4gUmVuZGVyVGhlbWVFZmwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NTAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIE93blB0ciBh
cyBpdCB3b3JrcyBmb3IgRXZhc19PYmplY3QgYW5kIEV2YXNfRWNvcmUgb2JqZWN0cy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbnRyeTo6VGhlbWVQYXJ0Q2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbnRy
eTo6flRoZW1lUGFydENhY2hlRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVF
Zmw6OlRoZW1lUGFydENhY2hlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2FjaGVFbnRyeTo6cmV1c2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVFZmw6OnBhaW50VGhlbWVQYXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lRWZsOjpzZXRDb2xvckZyb21UaGVtZUNsYXNzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lRWZsOjp0aGVtZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVFZmw6OmxvYWRUaGVtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YXBw
bHlQYXJ0RGVzY3JpcHRpb25zRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVm
bDo6UmVuZGVyVGhlbWVFZmwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6On5S
ZW5kZXJUaGVtZUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6ZW1pdE1l
ZGlhQnV0dG9uU2lnbmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpjYW52YXMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OmVkamUpOgorICAgICAgICAoUmVuZGVyVGhlbWVFZmwp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnk6
OmNhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2Fj
aGVFbnRyeTo6ZWRqZSk6CisgICAgICAgIChUaGVtZVBhcnRDYWNoZUVudHJ5KToKKwogMjAxMi0w
OS0xMCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW0VGTF0gQ2xlYW4gdXAgdGhlIFJlbmRlclRoZW1lIEVkamUgY2FjaGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggZjM2
MTQxYjZhZTUyMDA1ZGNhNWZjMzM4OGI0M2RkZTdmOTM5ZGY4OC4uYjNlZTQzNDU2OThiYjQ2YzI5
MDhkZjAyOWQwNTU0OTg1MjE0ZDQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBSZW5kZXJUaGVt
ZUVmbDo6YWRqdXN0U2l6ZUNvbnN0cmFpbnRzKFJlbmRlclN0eWxlKiBzdHlsZSwgRm9ybVR5cGUg
dHlwZSkgY28KIH0KIAogUmVuZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnk6OlRoZW1l
UGFydENhY2hlRW50cnkoKQotICAgIDogZWUoMCksIG8oMCksIHN1cmZhY2UoMCkKKyAgICA6IHN1
cmZhY2UoMCkKIHsKIH0KIApAQCAtMTcxLDEwICsxNzEsNiBAQCBSZW5kZXJUaGVtZUVmbDo6VGhl
bWVQYXJ0Q2FjaGVFbnRyeTo6flRoZW1lUGFydENhY2hlRW50cnkoKQogewogICAgIGlmIChzdXJm
YWNlKQogICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3koc3VyZmFjZSk7Ci0gICAgaWYgKG8p
Ci0gICAgICAgIGV2YXNfb2JqZWN0X2RlbChvKTsKLSAgICBpZiAoZWUpCi0gICAgICAgIGVjb3Jl
X2V2YXNfZnJlZShlZSk7CiB9CiAKIHN0YXRpYyBjYWlyb19zdXJmYWNlX3QqIGNyZWF0ZUNhaXJv
U3VyZmFjZUZvcihFY29yZV9FdmFzKiBlZSkKQEAgLTIxOSwyNyArMjE1LDI3IEBAIFJlbmRlclRo
ZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVudHJ5KiBSZW5kZXJUaGVtZUVmbDo6VGhlbWVQYXJ0Q2Fj
aGVFbnRyeTo6Y3JlYXRlCiAKICAgICBPd25QdHI8VGhlbWVQYXJ0Q2FjaGVFbnRyeSo+IGVudHJ5
ID0gYWRvcHRQdHIobmV3IFRoZW1lUGFydENhY2hlRW50cnkpOwogCi0gICAgZW50cnktPmVlID0g
ZWNvcmVfZXZhc19idWZmZXJfbmV3KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0gICAg
aWYgKCFlbnRyeS0+ZWUpIHsKKyAgICBlbnRyeS0+bV9jYW52YXMgPSBhZG9wdFB0cihlY29yZV9l
dmFzX2J1ZmZlcl9uZXcoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CisgICAgaWYgKCFl
bnRyeS0+Y2FudmFzKCkpIHsKICAgICAgICAgRUlOQV9MT0dfRVJSKCJlY29yZV9ldmFzX2J1ZmZl
cl9uZXcoJWQsICVkKSBmYWlsZWQuIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgLy8gQnkgZGVmYXVsdCBFRkwgY3JlYXRlcyBi
dWZmZXJzIHdpdGhvdXQgYWxwaGEuCi0gICAgZWNvcmVfZXZhc19hbHBoYV9zZXQoZW50cnktPmVl
LCBFSU5BX1RSVUUpOworICAgIGVjb3JlX2V2YXNfYWxwaGFfc2V0KGVudHJ5LT5jYW52YXMoKSwg
RUlOQV9UUlVFKTsKIAotICAgIGVudHJ5LT5vID0gZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNf
Z2V0KGVudHJ5LT5lZSkpOwotICAgIEFTU0VSVChlbnRyeS0+byk7CisgICAgZW50cnktPm1fZWRq
ZSA9IGFkb3B0UHRyKGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChlbnRyeS0+Y2FudmFz
KCkpKSk7CisgICAgQVNTRVJUKGVudHJ5LT5lZGplKCkpOwogCi0gICAgaWYgKCFzZXRTb3VyY2VH
cm91cEZvckVkamVPYmplY3QoZW50cnktPm8sIHRoZW1lUGF0aCwgdG9FZGplR3JvdXAodHlwZSkp
KQorICAgIGlmICghc2V0U291cmNlR3JvdXBGb3JFZGplT2JqZWN0KGVudHJ5LT5lZGplKCksIHRo
ZW1lUGF0aCwgdG9FZGplR3JvdXAodHlwZSkpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGVu
dHJ5LT5zdXJmYWNlID0gY3JlYXRlQ2Fpcm9TdXJmYWNlRm9yKGVudHJ5LT5lZSk7CisgICAgZW50
cnktPnN1cmZhY2UgPSBjcmVhdGVDYWlyb1N1cmZhY2VGb3IoZW50cnktPmNhbnZhcygpKTsKICAg
ICBpZiAoIWVudHJ5LT5zdXJmYWNlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGV2YXNfb2Jq
ZWN0X3Jlc2l6ZShlbnRyeS0+bywgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKLSAgICBl
dmFzX29iamVjdF9zaG93KGVudHJ5LT5vKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoZW50cnkt
PmVkamUoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKyAgICBldmFzX29iamVjdF9z
aG93KGVudHJ5LT5lZGplKCkpOwogCiAgICAgZW50cnktPnR5cGUgPSB0eXBlOwogICAgIGVudHJ5
LT5zaXplID0gc2l6ZTsKQEAgLTI1NSwxNyArMjUxLDE3IEBAIHZvaWQgUmVuZGVyVGhlbWVFZmw6
OlRoZW1lUGFydENhY2hlRW50cnk6OnJldXNlKGNvbnN0IFN0cmluZyYgdGhlbWVQYXRoLCBGb3Jt
VHlwCiAgICAgICAgIGNhaXJvX3N1cmZhY2VfZmluaXNoKHN1cmZhY2UpOwogCiAgICAgICAgIHNp
emUgPSBuZXdTaXplOwotICAgICAgICBlY29yZV9ldmFzX3Jlc2l6ZShlZSwgbmV3U2l6ZS53aWR0
aCgpLCBuZXdTaXplLmhlaWdodCgpKTsKLSAgICAgICAgZXZhc19vYmplY3RfcmVzaXplKG8sIG5l
d1NpemUud2lkdGgoKSwgbmV3U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIGVjb3JlX2V2YXNfcmVz
aXplKGNhbnZhcygpLCBuZXdTaXplLndpZHRoKCksIG5ld1NpemUuaGVpZ2h0KCkpOworICAgICAg
ICBldmFzX29iamVjdF9yZXNpemUoZWRqZSgpLCBuZXdTaXplLndpZHRoKCksIG5ld1NpemUuaGVp
Z2h0KCkpOwogCi0gICAgICAgIHN1cmZhY2UgPSBjcmVhdGVDYWlyb1N1cmZhY2VGb3IoZWUpOwor
ICAgICAgICBzdXJmYWNlID0gY3JlYXRlQ2Fpcm9TdXJmYWNlRm9yKGNhbnZhcygpKTsKICAgICAg
ICAgaWYgKCFzdXJmYWNlKSB7CiAgICAgICAgICAgICB0eXBlID0gRm9ybVR5cGVMYXN0OyAvLyBJ
bnZhbGlkYXRlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKCFzZXRTb3VyY2VHcm91cEZvckVkamVPYmplY3QobywgdGhlbWVQYXRoLCB0b0VkamVHcm91
cChuZXdUeXBlKSkpIHsKKyAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9yRWRqZU9iamVjdChlZGpl
KCksIHRoZW1lUGF0aCwgdG9FZGplR3JvdXAobmV3VHlwZSkpKSB7CiAgICAgICAgIHR5cGUgPSBG
b3JtVHlwZUxhc3Q7IC8vIEludmFsaWRhdGUuCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0z
NTEsNyArMzQ3LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUVmbDo6YXBwbHlFZGplU3RhdGVGcm9tRm9y
bShFdmFzX09iamVjdCogb2JqZWN0LCBDb250cm9sU3RhdGVzIHMKIGJvb2wgUmVuZGVyVGhlbWVF
Zmw6OnBhaW50VGhlbWVQYXJ0KFJlbmRlck9iamVjdCogb2JqZWN0LCBGb3JtVHlwZSB0eXBlLCBj
b25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgbG9hZFRo
ZW1lSWZOZWVkZWQoKTsKLSAgICBfQVNTRVJUX09OX1JFTEVBU0VfUkVUVVJOX1ZBTChtX2VkamUs
IGZhbHNlLCAiQ291bGQgbm90IHBhaW50IG5hdGl2ZSBIVE1MIHBhcnQgZHVlIHRvIG1pc3Npbmcg
dGhlbWUuIik7CisgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9WQUwoZWRqZSgpLCBmYWxz
ZSwgIkNvdWxkIG5vdCBwYWludCBuYXRpdmUgSFRNTCBwYXJ0IGR1ZSB0byBtaXNzaW5nIHRoZW1l
LiIpOwogCiAgICAgVGhlbWVQYXJ0Q2FjaGVFbnRyeSogZW50cnk7CiAgICAgRWluYV9MaXN0KiB1
cGRhdGVzOwpAQCAtMzYxLDcgKzM1Nyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50VGhl
bWVQYXJ0KFJlbmRlck9iamVjdCogb2JqZWN0LCBGb3JtVHlwZSB0eXBlLCBjb25zdCBQCiAgICAg
aWYgKCFlbnRyeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXBwbHlFZGplU3RhdGVG
cm9tRm9ybShlbnRyeS0+bywgY29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKG9iamVjdCkpOworICAg
IGFwcGx5RWRqZVN0YXRlRnJvbUZvcm0oZW50cnktPmVkamUoKSwgY29udHJvbFN0YXRlc0ZvclJl
bmRlcmVyKG9iamVjdCkpOwogCiAgICAgY2Fpcm8gPSBpbmZvLmNvbnRleHQtPnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpOwogICAgIEFTU0VSVChjYWlybyk7CkBAIC0zOTAsNyArMzg2LDcgQEAgYm9v
bCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRUaGVtZVBhcnQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIEZv
cm1UeXBlIHR5cGUsIGNvbnN0IFAKICAgICAgICAgICAgIG1zZy0+dmFsWzBdID0gMDsKIAogICAg
ICAgICBtc2ctPnZhbFsxXSA9IChpbnB1dC0+dmFsdWVBc051bWJlcigpIC0gaW5wdXQtPm1pbmlt
dW0oKSkgLyB2YWx1ZVJhbmdlOwotICAgICAgICBlZGplX29iamVjdF9tZXNzYWdlX3NlbmQoZW50
cnktPm8sIEVESkVfTUVTU0FHRV9GTE9BVF9TRVQsIDAsIG1zZyk7CisgICAgICAgIGVkamVfb2Jq
ZWN0X21lc3NhZ2Vfc2VuZChlbnRyeS0+ZWRqZSgpLCBFREpFX01FU1NBR0VfRkxPQVRfU0VULCAw
LCBtc2cpOwogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVNRU5UKQogICAgIH0gZWxzZSBpZiAodHlw
ZSA9PSBQcm9ncmVzc0JhcikgewogICAgICAgICBSZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJvZ3Jl
c3MgPSB0b1JlbmRlclByb2dyZXNzKG9iamVjdCk7CkBAIC00MDcsMTMgKzQwMywxMyBAQCBib29s
IFJlbmRlclRoZW1lRWZsOjpwYWludFRoZW1lUGFydChSZW5kZXJPYmplY3QqIG9iamVjdCwgRm9y
bVR5cGUgdHlwZSwgY29uc3QgUAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtc2ctPnZhbFsw
XSA9IDA7CiAgICAgICAgIG1zZy0+dmFsWzFdID0gdmFsdWU7Ci0gICAgICAgIGVkamVfb2JqZWN0
X21lc3NhZ2Vfc2VuZChlbnRyeS0+bywgRURKRV9NRVNTQUdFX0ZMT0FUX1NFVCwgMCwgbXNnKTsK
KyAgICAgICAgZWRqZV9vYmplY3RfbWVzc2FnZV9zZW5kKGVudHJ5LT5lZGplKCksIEVESkVfTUVT
U0FHRV9GTE9BVF9TRVQsIDAsIG1zZyk7CiAjZW5kaWYKICAgICB9CiAKLSAgICBlZGplX29iamVj
dF9jYWxjX2ZvcmNlKGVudHJ5LT5vKTsKLSAgICBlZGplX29iamVjdF9tZXNzYWdlX3NpZ25hbF9w
cm9jZXNzKGVudHJ5LT5vKTsKLSAgICB1cGRhdGVzID0gZXZhc19yZW5kZXJfdXBkYXRlcyhlY29y
ZV9ldmFzX2dldChlbnRyeS0+ZWUpKTsKKyAgICBlZGplX29iamVjdF9jYWxjX2ZvcmNlKGVudHJ5
LT5lZGplKCkpOworICAgIGVkamVfb2JqZWN0X21lc3NhZ2Vfc2lnbmFsX3Byb2Nlc3MoZW50cnkt
PmVkamUoKSk7CisgICAgdXBkYXRlcyA9IGV2YXNfcmVuZGVyX3VwZGF0ZXMoZWNvcmVfZXZhc19n
ZXQoZW50cnktPmNhbnZhcygpKSk7CiAgICAgZXZhc19yZW5kZXJfdXBkYXRlc19mcmVlKHVwZGF0
ZXMpOwogCiAgICAgY2Fpcm9fc2F2ZShjYWlybyk7CkBAIC00NjQsMTQgKzQ2MCwxNCBAQCBzdGF0
aWMgdm9pZCBmaWxsQ29sb3JzRnJvbUVkamVDbGFzcyhFdmFzX09iamVjdCogbywgY29uc3QgY2hh
ciogY29sb3JDbGFzcywgQ29sbwogCiB2b2lkIFJlbmRlclRoZW1lRWZsOjpzZXRDb2xvckZyb21U
aGVtZUNsYXNzKGNvbnN0IGNoYXIqIGNvbG9yQ2xhc3MpCiB7Ci0gICAgQVNTRVJUKG1fZWRqZSk7
CisgICAgQVNTRVJUKGVkamUoKSk7CiAKICAgICBpZiAoIXN0cmNtcCgid2Via2l0L3NlbGVjdGlv
bi9hY3RpdmUiLCBjb2xvckNsYXNzKSkKLSAgICAgICAgZmlsbENvbG9yc0Zyb21FZGplQ2xhc3Mo
bV9lZGplLCBjb2xvckNsYXNzLCAmbV9hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IsICZt
X2FjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik7CisgICAgICAgIGZpbGxDb2xvcnNGcm9t
RWRqZUNsYXNzKGVkamUoKSwgY29sb3JDbGFzcywgJm1fYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yLCAmbV9hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOwogICAgIGVsc2UgaWYg
KCFzdHJjbXAoIndlYmtpdC9zZWxlY3Rpb24vaW5hY3RpdmUiLCBjb2xvckNsYXNzKSkKLSAgICAg
ICAgZmlsbENvbG9yc0Zyb21FZGplQ2xhc3MobV9lZGplLCBjb2xvckNsYXNzLCAmbV9pbmFjdGl2
ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciwgJm1faW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5k
Q29sb3IpOworICAgICAgICBmaWxsQ29sb3JzRnJvbUVkamVDbGFzcyhlZGplKCksIGNvbG9yQ2xh
c3MsICZtX2luYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yLCAmbV9pbmFjdGl2ZVNlbGVj
dGlvbkJhY2tncm91bmRDb2xvcik7CiAgICAgZWxzZSBpZiAoIXN0cmNtcCgid2Via2l0L2ZvY3Vz
X3JpbmciLCBjb2xvckNsYXNzKSkgewotICAgICAgICBmaWxsQ29sb3JzRnJvbUVkamVDbGFzcyht
X2VkamUsIGNvbG9yQ2xhc3MsICZtX2ZvY3VzUmluZ0NvbG9yKTsKKyAgICAgICAgZmlsbENvbG9y
c0Zyb21FZGplQ2xhc3MoZWRqZSgpLCBjb2xvckNsYXNzLCAmbV9mb2N1c1JpbmdDb2xvcik7CiAg
ICAgICAgIC8vIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBpcyBvbmx5IHVzZWQgZm9yIHRoZSBk
ZWZhdWx0IHRoZW1lICh3aXRob3V0IHBhZ2UpCiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMg
dWdseSwgYnV0IG5vIG90aGVyIHdheSB0byBkbyBpdCB1bmxlc3Mgd2UgY2hhbmdlIGl0IHRvIHVz
ZSBwYWdlIHRoZW1lcyBhcyBtdWNoIGFzIHBvc3NpYmxlLgogICAgICAgICBSZW5kZXJUaGVtZTo6
c2V0Q3VzdG9tRm9jdXNSaW5nQ29sb3IobV9mb2N1c1JpbmdDb2xvcik7CkBAIC00OTYsOSArNDky
LDkgQEAgdm9pZCBSZW5kZXJUaGVtZUVmbDo6c2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYgcGF0
aCkKIFN0cmluZyBSZW5kZXJUaGVtZUVmbDo6dGhlbWVQYXRoKCkgY29uc3QKIHsKICNpZm5kZWYg
TkRFQlVHCi0gICAgaWYgKG1fZWRqZSkgeworICAgIGlmIChlZGplKCkpIHsKICAgICAgICAgY29u
c3QgY2hhciogcGF0aDsKLSAgICAgICAgZWRqZV9vYmplY3RfZmlsZV9nZXQobV9lZGplLCAmcGF0
aCwgMCk7CisgICAgICAgIGVkamVfb2JqZWN0X2ZpbGVfZ2V0KGVkamUoKSwgJnBhdGgsIDApOwog
ICAgICAgICBBU1NFUlQobV90aGVtZVBhdGggPT0gcGF0aCk7CiAgICAgfQogI2VuZGlmCkBAIC01
MDksMzIgKzUwNSwyOCBAQCBib29sIFJlbmRlclRoZW1lRWZsOjpsb2FkVGhlbWUoKQogewogICAg
IEFTU0VSVCghbV90aGVtZVBhdGguaXNFbXB0eSgpKTsKIAotICAgIGlmICghbV9jYW52YXMpIHsK
LSAgICAgICAgbV9jYW52YXMgPSBlY29yZV9ldmFzX2J1ZmZlcl9uZXcoMSwgMSk7Ci0gICAgICAg
IF9BU1NFUlRfT05fUkVMRUFTRV9SRVRVUk5fVkFMKG1fY2FudmFzLCBmYWxzZSwKKyAgICBpZiAo
IWNhbnZhcygpKSB7CisgICAgICAgIG1fY2FudmFzID0gYWRvcHRQdHIoZWNvcmVfZXZhc19idWZm
ZXJfbmV3KDEsIDEpKTsKKyAgICAgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9WQUwoY2Fu
dmFzKCksIGZhbHNlLAogICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY3JlYXRlIGNhbnZhcyBy
ZXF1aXJlZCBieSB0aGVtZSwgdGhpbmdzIHdpbGwgbm90IHdvcmsgcHJvcGVybHkuIik7CiAgICAg
fQogCi0gICAgRXZhc19PYmplY3QqIG8gPSBlZGplX29iamVjdF9hZGQoZWNvcmVfZXZhc19nZXQo
bV9jYW52YXMpKTsKKyAgICBPd25QdHI8RXZhc19PYmplY3Q+IG8gPSBhZG9wdFB0cihlZGplX29i
amVjdF9hZGQoZWNvcmVfZXZhc19nZXQoY2FudmFzKCkpKSk7CiAgICAgX0FTU0VSVF9PTl9SRUxF
QVNFX1JFVFVSTl9WQUwobywgZmFsc2UsICJDb3VsZCBub3QgY3JlYXRlIG5ldyBiYXNlIEVkamUg
b2JqZWN0LiIpOwogCi0gICAgaWYgKCFzZXRTb3VyY2VHcm91cEZvckVkamVPYmplY3QobywgbV90
aGVtZVBhdGgsICJ3ZWJraXQvYmFzZSIpKSB7Ci0gICAgICAgIGV2YXNfb2JqZWN0X2RlbChvKTsK
KyAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9yRWRqZU9iamVjdChvLmdldCgpLCBtX3RoZW1lUGF0
aCwgIndlYmtpdC9iYXNlIikpCiAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gS2VlcCBjdXJyZW50
IHRoZW1lLgotICAgIH0KIAogICAgIC8vIEdldCByaWQgb2YgZXhpc3RpbmcgdGhlbWUuCi0gICAg
aWYgKG1fZWRqZSkgeworICAgIGlmIChlZGplKCkpCiAgICAgICAgIGZsdXNoVGhlbWVQYXJ0Q2Fj
aGUoKTsKLSAgICAgICAgZXZhc19vYmplY3RfZGVsKG1fZWRqZSk7Ci0gICAgfQogCiAgICAgLy8g
U2V0IG5ldyBsb2FkZWQgdGhlbWUsIGFuZCBhcHBseSBpdC4KLSAgICBtX2VkamUgPSBvOworICAg
IG1fZWRqZS5zd2FwKG8pOwogCi0gICAgZWRqZV9vYmplY3Rfc2lnbmFsX2NhbGxiYWNrX2FkZCht
X2VkamUsICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0L3NlbGVjdGlvbi9hY3RpdmUiLCBhcHBs
eUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwotICAgIGVkamVfb2JqZWN0X3NpZ25hbF9jYWxsYmFja19h
ZGQobV9lZGplLCAiY29sb3JfY2xhc3Msc2V0IiwgIndlYmtpdC9zZWxlY3Rpb24vaW5hY3RpdmUi
LCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwotICAgIGVkamVfb2JqZWN0X3NpZ25hbF9jYWxs
YmFja19hZGQobV9lZGplLCAiY29sb3JfY2xhc3Msc2V0IiwgIndlYmtpdC9mb2N1c19yaW5nIiwg
YXBwbHlDb2xvckNhbGxiYWNrLCB0aGlzKTsKKyAgICBlZGplX29iamVjdF9zaWduYWxfY2FsbGJh
Y2tfYWRkKGVkamUoKSwgImNvbG9yX2NsYXNzLHNldCIsICJ3ZWJraXQvc2VsZWN0aW9uL2FjdGl2
ZSIsIGFwcGx5Q29sb3JDYWxsYmFjaywgdGhpcyk7CisgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2Nh
bGxiYWNrX2FkZChlZGplKCksICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0L3NlbGVjdGlvbi9p
bmFjdGl2ZSIsIGFwcGx5Q29sb3JDYWxsYmFjaywgdGhpcyk7CisgICAgZWRqZV9vYmplY3Rfc2ln
bmFsX2NhbGxiYWNrX2FkZChlZGplKCksICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0L2ZvY3Vz
X3JpbmciLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwogCiAgICAgYXBwbHlQYXJ0RGVzY3Jp
cHRpb25zRnJvbShtX3RoZW1lUGF0aCk7CiAKQEAgLTYxMSwxOSArNjAzLDE3IEBAIHZvaWQgUmVu
ZGVyVGhlbWVFZmw6OmFwcGx5UGFydERlc2NyaXB0aW9uKEV2YXNfT2JqZWN0KiBvYmplY3QsIFRo
ZW1lUGFydERlc2MqIGRlCiAKIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmFwcGx5UGFydERlc2NyaXB0
aW9uc0Zyb20oY29uc3QgU3RyaW5nJiB0aGVtZVBhdGgpCiB7Ci0gICAgRXZhc19PYmplY3QqIHRl
bXAgPSBlZGplX29iamVjdF9hZGQoZWNvcmVfZXZhc19nZXQobV9jYW52YXMpKTsKKyAgICBPd25Q
dHI8RXZhc19PYmplY3Q+IHRlbXAgPSBhZG9wdFB0cihlZGplX29iamVjdF9hZGQoZWNvcmVfZXZh
c19nZXQoY2FudmFzKCkpKSk7CiAgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTih0ZW1wLCAi
Q291bGQgbm90IGNyZWF0ZSBFZGplIG9iamVjdC4iKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgRm9ybVR5cGVMYXN0OyBpKyspIHsKICAgICAgICAgRm9ybVR5cGUgdHlwZSA9IHN0YXRp
Y19jYXN0PEZvcm1UeXBlPihpKTsKICAgICAgICAgbV9wYXJ0RGVzY3NbaV0udHlwZSA9IHR5cGU7
Ci0gICAgICAgIGlmICghc2V0U291cmNlR3JvdXBGb3JFZGplT2JqZWN0KHRlbXAsIHRoZW1lUGF0
aCwgdG9FZGplR3JvdXAodHlwZSkpKQorICAgICAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9yRWRq
ZU9iamVjdCh0ZW1wLmdldCgpLCB0aGVtZVBhdGgsIHRvRWRqZUdyb3VwKHR5cGUpKSkKICAgICAg
ICAgICAgIGFwcGx5UGFydERlc2NyaXB0aW9uRmFsbGJhY2sobV9wYXJ0RGVzY3MgKyBpKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYXBwbHlQYXJ0RGVzY3JpcHRpb24odGVtcCwgbV9wYXJ0
RGVzY3MgKyBpKTsKKyAgICAgICAgICAgIGFwcGx5UGFydERlc2NyaXB0aW9uKHRlbXAuZ2V0KCks
IG1fcGFydERlc2NzICsgaSk7CiAgICAgfQotCi0gICAgZXZhc19vYmplY3RfZGVsKHRlbXApOwog
fQogCiBSZW5kZXJUaGVtZUVmbDo6UmVuZGVyVGhlbWVFZmwoUGFnZSogcGFnZSkKQEAgLTYzOSwy
MCArNjI5LDEyIEBAIFJlbmRlclRoZW1lRWZsOjpSZW5kZXJUaGVtZUVmbChQYWdlKiBwYWdlKQog
ICAgICwgbV9tZWRpYVBhbmVsQ29sb3IoMjIwLCAyMjAsIDE5NSkgLy8gbGlnaHQgdGFubmlzaCBj
b2xvci4KICAgICAsIG1fbWVkaWFTbGlkZXJDb2xvcihDb2xvcjo6d2hpdGUpCiAjZW5kaWYKLSAg
ICAsIG1fY2FudmFzKDApCi0gICAgLCBtX2VkamUoMCkKIHsKIH0KIAogUmVuZGVyVGhlbWVFZmw6
On5SZW5kZXJUaGVtZUVmbCgpCiB7CiAgICAgZmx1c2hUaGVtZVBhcnRDYWNoZSgpOwotCi0gICAg
aWYgKG1fY2FudmFzKSB7Ci0gICAgICAgIGlmIChtX2VkamUpCi0gICAgICAgICAgICBldmFzX29i
amVjdF9kZWwobV9lZGplKTsKLSAgICAgICAgZWNvcmVfZXZhc19mcmVlKG1fY2FudmFzKTsKLSAg
ICB9CiB9CiAKIHN0YXRpYyBib29sIHN1cHBvcnRzRm9jdXMoQ29udHJvbFBhcnQgYXBwZWFyYW5j
ZSkKQEAgLTEwNjcsMzAgKzEwNDksMzAgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRQcm9n
cmVzc0JhcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmYKIGJvb2wg
UmVuZGVyVGhlbWVFZmw6OmVtaXRNZWRpYUJ1dHRvblNpZ25hbChGb3JtVHlwZSBmb3JtVHlwZSwg
TWVkaWFDb250cm9sRWxlbWVudFR5cGUgbWVkaWFFbGVtZW50VHlwZSwgY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKICAgICBsb2FkVGhlbWVJZk5lZWRlZCgpOwotICAgIF9BU1NFUlRfT05fUkVMRUFT
RV9SRVRVUk5fVkFMKG1fZWRqZSwgZmFsc2UsICJDb3VsZCBub3QgcGFpbnQgbmF0aXZlIEhUTUwg
cGFydCBkdWUgdG8gbWlzc2luZyB0aGVtZS4iKTsKKyAgICBfQVNTRVJUX09OX1JFTEVBU0VfUkVU
VVJOX1ZBTChlZGplKCksIGZhbHNlLCAiQ291bGQgbm90IHBhaW50IG5hdGl2ZSBIVE1MIHBhcnQg
ZHVlIHRvIG1pc3NpbmcgdGhlbWUuIik7CiAKICAgICBUaGVtZVBhcnRDYWNoZUVudHJ5KiBlbnRy
eSA9IGdldFRoZW1lUGFydEZyb21DYWNoZShmb3JtVHlwZSwgcmVjdC5zaXplKCkpOwogICAgIF9B
U1NFUlRfT05fUkVMRUFTRV9SRVRVUk5fVkFMKGVudHJ5LCBmYWxzZSwgIkNvdWxkIG5vdCBwYWlu
dCBuYXRpdmUgSFRNTCBwYXJ0IGR1ZSB0byBtaXNzaW5nIHRoZW1lIHBhcnQuIik7CiAKICAgICBp
ZiAobWVkaWFFbGVtZW50VHlwZSA9PSBNZWRpYVBsYXlCdXR0b24pCi0gICAgICAgIGVkamVfb2Jq
ZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5vLCAicGxheSIsICIiKTsKKyAgICAgICAgZWRqZV9vYmpl
Y3Rfc2lnbmFsX2VtaXQoZW50cnktPmVkamUoKSwgInBsYXkiLCAiIik7CiAgICAgZWxzZSBpZiAo
bWVkaWFFbGVtZW50VHlwZSA9PSBNZWRpYVBhdXNlQnV0dG9uKQotICAgICAgICBlZGplX29iamVj
dF9zaWduYWxfZW1pdChlbnRyeS0+bywgInBhdXNlIiwgIiIpOworICAgICAgICBlZGplX29iamVj
dF9zaWduYWxfZW1pdChlbnRyeS0+ZWRqZSgpLCAicGF1c2UiLCAiIik7CiAgICAgZWxzZSBpZiAo
bWVkaWFFbGVtZW50VHlwZSA9PSBNZWRpYU11dGVCdXR0b24pCi0gICAgICAgIGVkamVfb2JqZWN0
X3NpZ25hbF9lbWl0KGVudHJ5LT5vLCAibXV0ZSIsICIiKTsKKyAgICAgICAgZWRqZV9vYmplY3Rf
c2lnbmFsX2VtaXQoZW50cnktPmVkamUoKSwgIm11dGUiLCAiIik7CiAgICAgZWxzZSBpZiAobWVk
aWFFbGVtZW50VHlwZSA9PSBNZWRpYVVuTXV0ZUJ1dHRvbikKLSAgICAgICAgZWRqZV9vYmplY3Rf
c2lnbmFsX2VtaXQoZW50cnktPm8sICJzb3VuZCIsICIiKTsKKyAgICAgICAgZWRqZV9vYmplY3Rf
c2lnbmFsX2VtaXQoZW50cnktPmVkamUoKSwgInNvdW5kIiwgIiIpOwogICAgIGVsc2UgaWYgKG1l
ZGlhRWxlbWVudFR5cGUgPT0gTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbikKLSAgICAgICAgZWRqZV9v
YmplY3Rfc2lnbmFsX2VtaXQoZW50cnktPm8sICJzZWVrZm9yd2FyZCIsICIiKTsKKyAgICAgICAg
ZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoZW50cnktPmVkamUoKSwgInNlZWtmb3J3YXJkIiwgIiIp
OwogICAgIGVsc2UgaWYgKG1lZGlhRWxlbWVudFR5cGUgPT0gTWVkaWFTZWVrQmFja0J1dHRvbikK
LSAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoZW50cnktPm8sICJzZWVrYmFja3dhcmQi
LCAiIik7CisgICAgICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5lZGplKCksICJz
ZWVrYmFja3dhcmQiLCAiIik7CiAgICAgZWxzZSBpZiAobWVkaWFFbGVtZW50VHlwZSA9PSBNZWRp
YUVudGVyRnVsbHNjcmVlbkJ1dHRvbikKLSAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQo
ZW50cnktPm8sICJmdWxsc2NyZWVuIiwgIiIpOworICAgICAgICBlZGplX29iamVjdF9zaWduYWxf
ZW1pdChlbnRyeS0+ZWRqZSgpLCAiZnVsbHNjcmVlbiIsICIiKTsKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAgICAgZWxzZSBpZiAobWVkaWFFbGVtZW50VHlwZSA9PSBNZWRpYVNob3dDbG9zZWRD
YXB0aW9uc0J1dHRvbikKLSAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoZW50cnktPm8s
ICJzaG93X2NhcHRpb25zIiwgIiIpOworICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChl
bnRyeS0+ZWRqZSgpLCAic2hvd19jYXB0aW9ucyIsICIiKTsKICAgICBlbHNlIGlmIChtZWRpYUVs
ZW1lbnRUeXBlID09IE1lZGlhSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uKQotICAgICAgICBlZGpl
X29iamVjdF9zaWduYWxfZW1pdChlbnRyeS0+bywgImhpZGVfY2FwdGlvbnMiLCAiIik7CisgICAg
ICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KGVudHJ5LT5lZGplKCksICJoaWRlX2NhcHRpb25z
IiwgIiIpOwogI2VuZGlmCiAgICAgZWxzZQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oCmluZGV4IDcwZDQ2MzQ3OTU4
ZTg4NGI1MGUyNmIzNWVmY2NmZWJmNTBmZmMwZjIuLjIwNDcyY2YzNzc2NWFkZWExZDFjM2E5NzY2
NzRkMGY5MTg2YWY0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9S
ZW5kZXJUaGVtZUVmbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJU
aGVtZUVmbC5oCkBAIC0yMjIsNiArMjIyLDkgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1f
ZWRqZSB8fCAoIW1fdGhlbWVQYXRoLmlzRW1wdHkoKSAmJiBjb25zdF9jYXN0PFJlbmRlclRoZW1l
RWZsKj4odGhpcyktPmxvYWRUaGVtZSgpKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIEVj
b3JlX0V2YXMqIGNhbnZhcygpIHsgcmV0dXJuIG1fY2FudmFzLmdldCgpOyB9CisgICAgQUxXQVlT
X0lOTElORSBFdmFzX09iamVjdCogZWRqZSgpIHsgcmV0dXJuIG1fZWRqZS5nZXQoKTsgfQorCiAg
ICAgdm9pZCBhcHBseVBhcnREZXNjcmlwdGlvbnNGcm9tKGNvbnN0IFN0cmluZyYgdGhlbWVQYXRo
KTsKIAogICAgIHZvaWQgYXBwbHlFZGplU3RhdGVGcm9tRm9ybShFdmFzX09iamVjdCosIENvbnRy
b2xTdGF0ZXMpOwpAQCAtMjQ1LDggKzI0OCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFN0
cmluZyBtX3RoZW1lUGF0aDsKLSAgICBFY29yZV9FdmFzKiBtX2NhbnZhczsKLSAgICBFdmFzX09i
amVjdCogbV9lZGplOworICAgIC8vIE9yZGVyIHNvIHRoYXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ry
b3llZCBhdCBsYXN0LgorICAgIE93blB0cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKKyAgICBPd25Q
dHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKIAogICAgIHN0cnVjdCBUaGVtZVBhcnREZXNjIHsKICAg
ICAgICAgRm9ybVR5cGUgdHlwZTsKQEAgLTI2MywxMSArMjY3LDE3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHN0YXRpYyBUaGVtZVBhcnRDYWNoZUVudHJ5KiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aGVt
ZVBhdGgsIEZvcm1UeXBlLCBjb25zdCBJbnRTaXplJik7CiAgICAgICAgIHZvaWQgcmV1c2UoY29u
c3QgU3RyaW5nJiB0aGVtZVBhdGgsIEZvcm1UeXBlLCBjb25zdCBJbnRTaXplJiA9IEludFNpemUo
KSk7CiAKKyAgICAgICAgQUxXQVlTX0lOTElORSBFY29yZV9FdmFzKiBjYW52YXMoKSB7IHJldHVy
biBtX2NhbnZhcy5nZXQoKTsgfQorICAgICAgICBBTFdBWVNfSU5MSU5FIEV2YXNfT2JqZWN0KiBl
ZGplKCkgeyByZXR1cm4gbV9lZGplLmdldCgpOyB9CisKICAgICAgICAgRm9ybVR5cGUgdHlwZTsK
ICAgICAgICAgSW50U2l6ZSBzaXplOwotICAgICAgICBFY29yZV9FdmFzKiBlZTsKLSAgICAgICAg
RXZhc19PYmplY3QqIG87CiAgICAgICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZTsKKworICAg
IHByaXZhdGU6CisgICAgICAgIC8vIE9yZGVyIHNvIHRoYXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ry
b3llZCBhdCBsYXN0LgorICAgICAgICBPd25QdHI8RWNvcmVfRXZhcz4gbV9jYW52YXM7CisgICAg
ICAgIE93blB0cjxFdmFzX09iamVjdD4gbV9lZGplOwogICAgIH07CiAKICAgICBzdHJ1Y3QgVGhl
bWVQYXJ0RGVzYyBtX3BhcnREZXNjc1tGb3JtVHlwZUxhc3RdOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>