<?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>96952</bug_id>
          
          <creation_ts>2012-09-17 13:56:00 -0700</creation_ts>
          <short_desc>IndexedDB: Pending call cleanup</short_desc>
          <delta_ts>2012-09-19 17:12:31 -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>New Bugs</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>96444</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>722247</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 13:56:00 -0700</bug_when>
    <thetext>IndexedDB: Pending call cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722250</commentid>
    <comment_count>1</comment_count>
      <attachid>164452</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 13:57:26 -0700</bug_when>
    <thetext>Created attachment 164452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722252</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 13:58:39 -0700</bug_when>
    <thetext>dgrogan@ - this may be redundant with changes you have in progress. Is it worth landing now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722280</commentid>
    <comment_count>3</comment_count>
      <attachid>164452</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-09-17 14:43:02 -0700</bug_when>
    <thetext>Comment on attachment 164452
Patch

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

LGTM

I haven&apos;t done this locally yet, no. This looks great. I&apos;d expect that this would make the already-asserting layout test from bug 96947 hit ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersion, &quot;m_pendingSecondHalfOpenWithVersion not null&quot;).  Have you run it?

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:489
&gt; +    ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersion, &quot;m_pendingSecondHalfOpenWithVersion not null&quot;);

I&apos;d say change this to plain ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722289</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-09-17 14:47:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 164452 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164452&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; I haven&apos;t done this locally yet, no. This looks great. I&apos;d expect that this would make the already-asserting layout test from bug 96947 hit ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersion, &quot;m_pendingSecondHalfOpenWithVersion not null&quot;).  Have you run it?

After further thought, I do not think that would happen. This patch should be a no-behavior change.

&gt; &gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:489
&gt; &gt; +    ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersion, &quot;m_pendingSecondHalfOpenWithVersion not null&quot;);
&gt; 
&gt; I&apos;d say change this to plain ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722293</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 14:52:20 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 164452 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164452&amp;action=review
&gt; &gt; 
&gt; &gt; LGTM
&gt; &gt; 
&gt; &gt; I haven&apos;t done this locally yet, no. This looks great. I&apos;d expect that this would make the already-asserting layout test from bug 96947 hit ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersion, &quot;m_pendingSecondHalfOpenWithVersion not null&quot;).  Have you run it?
&gt; 
&gt; After further thought, I do not think that would happen. This patch should be a no-behavior change.

I did run it and didn&apos;t any behavior changes in webkit or chromium tests.

&gt; &gt; &gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:489
&gt; &gt; &gt; +    ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersion, &quot;m_pendingSecondHalfOpenWithVersion not null&quot;);
&gt; &gt; 
&gt; &gt; I&apos;d say change this to plain ASSERT.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722301</commentid>
    <comment_count>6</comment_count>
      <attachid>164458</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 15:04:04 -0700</bug_when>
    <thetext>Created attachment 164458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722302</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-17 15:04:27 -0700</bug_when>
    <thetext>tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723955</commentid>
    <comment_count>8</comment_count>
      <attachid>164801</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-09-19 16:35:24 -0700</bug_when>
    <thetext>Created attachment 164801
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723988</commentid>
    <comment_count>9</comment_count>
      <attachid>164801</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 17:12:28 -0700</bug_when>
    <thetext>Comment on attachment 164801
Patch for landing

Clearing flags on attachment: 164801

Committed r129076: &lt;http://trac.webkit.org/changeset/129076&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723989</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 17:12:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164452</attachid>
            <date>2012-09-17 13:57:26 -0700</date>
            <delta_ts>2012-09-17 15:04:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96952-20120917135654.patch</filename>
            <type>text/plain</type>
            <size>14381</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFiNTZmZjI0NTdhNDY0
ZjQyMjcyNzhhODNlMjYzNzc1NzM4ZjczOS4uY2VlZGU5MWExM2M0ZWI5ZWE5MGM2ZWI2NWU3ZmQz
NzE2ZTAzZDg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTE3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQZW5k
aW5nIGNhbGwgY2xlYW51cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTY5NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZXBsYWNlIFJlZlB0ciB1c2FnZSB3aXRoIE93blB0ciBmb3IgUGVuZGluZ1hYWENh
bGxzIChzaW5jZSB0aGV5J3JlIG5ldmVyIHJlZmVyZW5jZWQgdHdpY2UpCisgICAgICAgIGFuZCBy
ZXBsYWNlIHF1ZXVlIG9mICJzZWNvbmQgaGFsZiBvcGVuIiBjYWxscyB3aXRoIGEgc2luZ2xlIGl0
ZW0uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpQZW5kaW5nT3BlbkNhbGw6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpQZW5k
aW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdEZWxldGVDYWxsOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ1NldFZlcnNpb25DYWxsOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVy
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2Fj
dGlvbkZpbmlzaGVkQW5kQWJvcnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjbG9zZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAo
SURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisKIDIwMTItMDktMTcgIFBoaWxpcCBSb2dlcnMgIDxw
ZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNYWtlIFNWR1BhdGhTZWdMaXN0LmFwcGVuZEl0ZW0g
TygxKSBpbnN0ZWFkIG9mIE8obikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggNDY1NzM2MmQx
MDU2OTFhZTU2YjgyZmJjNTc2ZDQxNmM2NWEzZThjOC4uNDNlZDlkOTE4NWM3MTM4NzkzM2IyMDYw
NTc5N2EyM2U0NTBhNWNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTM5LDExICszOSwx
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZElt
cGw6OlBlbmRpbmdPcGVuQ2FsbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRpbmdPcGVuQ2FsbD4g
eworY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ09wZW5DYWxsIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZW5kaW5nT3BlbkNhbGw+IGNyZWF0ZShQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiBkYXRhYmFzZUNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxQZW5kaW5nT3Bl
bkNhbGw+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcykKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGVuZGluZ09wZW5DYWxsKGNhbGxiYWNrcywgZGF0YWJh
c2VDYWxsYmFja3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQZW5kaW5nT3BlbkNh
bGwoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcykpOwogICAgIH0KICAgICBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKCkgeyByZXR1cm4gbV9jYWxsYmFja3M7IH0KICAgICBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcygpIHsgcmV0
dXJuIG1fZGF0YWJhc2VDYWxsYmFja3M7IH0KQEAgLTU5LDExICs1OSwxMSBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gbV9kYXRhYmFzZUNhbGxiYWNrczsKIH07
CiAKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdPcGVuV2l0aFZlcnNpb25D
YWxsIDogcHVibGljIFJlZkNvdW50ZWQ8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+IHsKK2Ns
YXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2Fs
bD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHZlcnNpb24p
CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+IGNyZWF0
ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB2ZXJzaW9uKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbChj
YWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB2ZXJzaW9uKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgUGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwoY2FsbGJhY2tzLCBkYXRhYmFz
ZUNhbGxiYWNrcywgdmVyc2lvbikpOwogICAgIH0KICAgICBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzKCkgeyByZXR1cm4gbV9jYWxsYmFja3M7IH0KICAgICBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcygpIHsgcmV0dXJuIG1fZGF0YWJh
c2VDYWxsYmFja3M7IH0KQEAgLTgxLDExICs4MSwxMSBAQCBwcml2YXRlOgogICAgIGludDY0X3Qg
bV92ZXJzaW9uOwogfTsKIAotY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ0Rl
bGV0ZUNhbGwgOiBwdWJsaWMgUmVmQ291bnRlZDxQZW5kaW5nRGVsZXRlQ2FsbD4geworY2xhc3Mg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ0RlbGV0ZUNhbGwgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFBlbmRpbmdEZWxldGVDYWxsPiBjcmVhdGUoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxQZW5kaW5nRGVs
ZXRlQ2FsbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBlbmRpbmdEZWxldGVDYWxsKGNhbGxiYWNr
cykpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBlbmRpbmdEZWxldGVDYWxsKGNhbGxi
YWNrcykpOwogICAgIH0KICAgICBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKCkg
eyByZXR1cm4gbV9jYWxsYmFja3M7IH0KIApAQCAtOTcsMTEgKzk3LDExIEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CiB9OwogCi1jbGFzcyBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpQZW5kaW5nU2V0VmVyc2lvbkNhbGwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+IHsKK2NsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OlBlbmRpbmdTZXRWZXJzaW9uQ2FsbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UGVuZGluZ1NldFZlcnNpb25DYWxsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxQZW5kaW5n
U2V0VmVyc2lvbkNhbGw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGRhdGFiYXNlQ2FsbGJhY2tzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
ZW5kaW5nU2V0VmVyc2lvbkNhbGwodmVyc2lvbiwgY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNr
cykpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBlbmRpbmdTZXRWZXJzaW9uQ2FsbCh2
ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzKSk7CiAgICAgfQogICAgIFN0cmlu
ZyB2ZXJzaW9uKCkgeyByZXR1cm4gbV92ZXJzaW9uOyB9CiAgICAgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcygpIHsgcmV0dXJuIG1fY2FsbGJhY2tzOyB9CkBAIC0yNTQsMTMgKzI1
NCwxMyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldFZlcnNpb24oY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbAogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzMAogICAgIGlmIChjb25uZWN0aW9uQ291bnQoKSA+
IDEpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKLSAgICAgICAgUmVmUHRyPFBl
bmRpbmdTZXRWZXJzaW9uQ2FsbD4gcGVuZGluZ1NldFZlcnNpb25DYWxsID0gUGVuZGluZ1NldFZl
cnNpb25DYWxsOjpjcmVhdGUodmVyc2lvbiwgY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcyk7
Ci0gICAgICAgIG1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5hcHBlbmQocGVuZGluZ1NldFZlcnNp
b25DYWxsKTsKKyAgICAgICAgT3duUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gcGVuZGluZ1Nl
dFZlcnNpb25DYWxsID0gUGVuZGluZ1NldFZlcnNpb25DYWxsOjpjcmVhdGUodmVyc2lvbiwgY2Fs
bGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcyk7CisgICAgICAgIG1fcGVuZGluZ1NldFZlcnNpb25D
YWxscy5hcHBlbmQocGVuZGluZ1NldFZlcnNpb25DYWxsLnJlbGVhc2UoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgaWYgKG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbikg
ewotICAgICAgICBSZWZQdHI8UGVuZGluZ1NldFZlcnNpb25DYWxsPiBwZW5kaW5nU2V0VmVyc2lv
bkNhbGwgPSBQZW5kaW5nU2V0VmVyc2lvbkNhbGw6OmNyZWF0ZSh2ZXJzaW9uLCBjYWxsYmFja3Ms
IGRhdGFiYXNlQ2FsbGJhY2tzKTsKLSAgICAgICAgbV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmFw
cGVuZChwZW5kaW5nU2V0VmVyc2lvbkNhbGwpOworICAgICAgICBPd25QdHI8UGVuZGluZ1NldFZl
cnNpb25DYWxsPiBwZW5kaW5nU2V0VmVyc2lvbkNhbGwgPSBQZW5kaW5nU2V0VmVyc2lvbkNhbGw6
OmNyZWF0ZSh2ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICAgICAg
bV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmFwcGVuZChwZW5kaW5nU2V0VmVyc2lvbkNhbGwucmVs
ZWFzZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzMzLDkgKzMzMyw5IEBAIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0Rmly
ZWQoUGFzc1JlZlB0cjxJREJUcmFuCiAgICAgICAgIC8vIElmIHRoaXMgd2FzIGFuIG9wZW4td2l0
aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vjb25kCiAgICAgICAgIC8vIGhhbGYi
IG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNzUGVuZGluZ0NhbGxzLgogICAgICAg
ICAvLyBGSVhNRTogV2hlbiB3ZSBubyBsb25nZXIgc3VwcG9ydCBzZXRWZXJzaW9uLCBhc3NlcnQg
c3VjaCBhIHRoaW5nLgotICAgICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVy
c2lvbkNhbGxzLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5X
aXRoVmVyc2lvbkNhbGw+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsID0gbV9wZW5kaW5nU2Vj
b25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnRha2VGaXJzdCgpOwotICAgICAgICAgICAgcGVu
ZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRhdGFiYXNl
RXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUiwgIlZlcnNp
b24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGluIHVwZ3JhZGVuZWVkZWQgZXZlbnQg
aGFuZGxlci4iKSk7CisgICAgICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJz
aW9uKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLT5j
YWxsYmFja3MoKS0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VF
eGNlcHRpb246OklEQl9BQk9SVF9FUlIsICJWZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiB3YXMg
YWJvcnRlZCBpbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRsZXIuIikpOworICAgICAgICAgICAg
bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbi5yZWxlYXNlKCk7CiAgICAgICAgIH0K
ICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygpOwogICAgIH0KQEAgLTM1NiwyMiArMzU2LDIw
IEBAIHNpemVfdCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjb25uZWN0aW9uQ291bnQoKQogCiB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogewotICAg
IC8vIEZJWE1FOiBDaGFuZ2UgZnJvbSBxdWV1ZSB0byBqdXN0IGEgc2luZ2xlIHBsYWNlIGhvbGRl
ci4KLSAgICBBU1NFUlQobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNp
emUoKSA8PSAxKTsKLSAgICB3aGlsZSAoIW1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNp
b25DYWxscy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPFBlbmRpbmdPcGVuV2l0aFZlcnNp
b25DYWxsPiBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbCA9IG1fcGVuZGluZ1NlY29uZEhhbGZP
cGVuV2l0aFZlcnNpb25DYWxscy50YWtlRmlyc3QoKTsKLSAgICAgICAgQVNTRVJUKHBlbmRpbmdP
cGVuV2l0aFZlcnNpb25DYWxsLT52ZXJzaW9uKCkgPT0gbV9pbnRWZXJzaW9uKTsKKyAgICBpZiAo
bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbikgeworICAgICAgICBBU1NFUlQobV9w
ZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbi0+dmVyc2lvbigpID09IG1faW50VmVyc2lv
bik7CiAgICAgICAgIEFTU0VSVChtX2lkICE9IEludmFsaWRJZCk7Ci0gICAgICAgIHBlbmRpbmdP
cGVuV2l0aFZlcnNpb25DYWxsLT5jYWxsYmFja3MoKS0+b25TdWNjZXNzKHRoaXMpOworICAgICAg
ICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLT5jYWxsYmFja3MoKS0+b25TdWNj
ZXNzKHRoaXMpOworICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLnJl
bGVhc2UoKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHdoZW4gY29tcGxldGUsIGFzIHBlbmRp
bmcgZGVsZXRlcyBtYXkgYmUgKHBhcnRpYWxseSkgdW5ibG9ja2VkLgogICAgIH0KIAogICAgIC8v
IFBlbmRpbmcgY2FsbHMgbWF5IGJlIHJlcXVldWVkIG9yIGFib3J0ZWQKLSAgICBEZXF1ZTxSZWZQ
dHI8UGVuZGluZ1NldFZlcnNpb25DYWxsPiA+IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbHM7CisgICAg
RGVxdWU8T3duUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gPiBwZW5kaW5nU2V0VmVyc2lvbkNh
bGxzOwogICAgIG1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5zd2FwKHBlbmRpbmdTZXRWZXJzaW9u
Q2FsbHMpOwogICAgIHdoaWxlICghcGVuZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIFJlZlB0cjxQZW5kaW5nU2V0
VmVyc2lvbkNhbGw+IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbCA9IHBlbmRpbmdTZXRWZXJzaW9uQ2Fs
bHMudGFrZUZpcnN0KCk7CisgICAgICAgIE93blB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+IHBl
bmRpbmdTZXRWZXJzaW9uQ2FsbCA9IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbHMudGFrZUZpcnN0KCk7
CiAgICAgICAgIHNldFZlcnNpb24ocGVuZGluZ1NldFZlcnNpb25DYWxsLT52ZXJzaW9uKCksIHBl
bmRpbmdTZXRWZXJzaW9uQ2FsbC0+Y2FsbGJhY2tzKCksIHBlbmRpbmdTZXRWZXJzaW9uQ2FsbC0+
ZGF0YWJhc2VDYWxsYmFja3MoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CkBA
IC0zOTEsMTAgKzM4OSwxMCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQ
ZW5kaW5nQ2FsbHMoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBQZW5kaW5nIGNhbGxzIG1h
eSBiZSByZXF1ZXVlZC4KLSAgICBEZXF1ZTxSZWZQdHI8UGVuZGluZ0RlbGV0ZUNhbGw+ID4gcGVu
ZGluZ0RlbGV0ZUNhbGxzOworICAgIERlcXVlPE93blB0cjxQZW5kaW5nRGVsZXRlQ2FsbD4gPiBw
ZW5kaW5nRGVsZXRlQ2FsbHM7CiAgICAgbV9wZW5kaW5nRGVsZXRlQ2FsbHMuc3dhcChwZW5kaW5n
RGVsZXRlQ2FsbHMpOwogICAgIHdoaWxlICghcGVuZGluZ0RlbGV0ZUNhbGxzLmlzRW1wdHkoKSkg
ewotICAgICAgICBSZWZQdHI8UGVuZGluZ0RlbGV0ZUNhbGw+IHBlbmRpbmdEZWxldGVDYWxsID0g
cGVuZGluZ0RlbGV0ZUNhbGxzLnRha2VGaXJzdCgpOworICAgICAgICBPd25QdHI8UGVuZGluZ0Rl
bGV0ZUNhbGw+IHBlbmRpbmdEZWxldGVDYWxsID0gcGVuZGluZ0RlbGV0ZUNhbGxzLnRha2VGaXJz
dCgpOwogICAgICAgICBkZWxldGVEYXRhYmFzZShwZW5kaW5nRGVsZXRlQ2FsbC0+Y2FsbGJhY2tz
KCkpOwogICAgIH0KIApAQCAtNDAyLDE5ICs0MDAsMTkgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICBpZiAobV9ydW5uaW5nVmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uIHx8ICFtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuaXNFbXB0eSgpIHx8
ICFtX3BlbmRpbmdEZWxldGVDYWxscy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IERlcXVlPFJlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gPiBwZW5kaW5nT3Blbldp
dGhWZXJzaW9uQ2FsbHM7CisgICAgRGVxdWU8T3duUHRyPFBlbmRpbmdPcGVuV2l0aFZlcnNpb25D
YWxsPiA+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsczsKICAgICBtX3BlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxscy5zd2FwKHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxscyk7CiAgICAgd2hp
bGUgKCFwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJl
ZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNh
bGwgPSBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMudGFrZUZpcnN0KCk7CisgICAgICAgIE93
blB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNh
bGwgPSBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMudGFrZUZpcnN0KCk7CiAgICAgICAgIG9w
ZW5Db25uZWN0aW9uV2l0aFZlcnNpb24ocGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxi
YWNrcygpLCBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbC0+ZGF0YWJhc2VDYWxsYmFja3MoKSwg
cGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPnZlcnNpb24oKSk7CiAgICAgfQogCiAgICAgLy8g
R2l2ZW4gdGhlIGNoZWNrIGFib3ZlLCBpdCBhcHBlYXJzIHRoYXQgY2FsbHMgY2Fubm90IGJlIHJl
cXVldWVkIGJ5CiAgICAgLy8gb3BlbkNvbm5lY3Rpb24sIGJ1dCB1c2UgYSBkaWZmZXJlbnQgcXVl
dWUgZm9yIGl0ZXJhdGlvbiB0byBiZSBzYWZlLgotICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nT3Bl
bkNhbGw+ID4gcGVuZGluZ09wZW5DYWxsczsKKyAgICBEZXF1ZTxPd25QdHI8UGVuZGluZ09wZW5D
YWxsPiA+IHBlbmRpbmdPcGVuQ2FsbHM7CiAgICAgbV9wZW5kaW5nT3BlbkNhbGxzLnN3YXAocGVu
ZGluZ09wZW5DYWxscyk7CiAgICAgd2hpbGUgKCFwZW5kaW5nT3BlbkNhbGxzLmlzRW1wdHkoKSkg
ewotICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwgPSBwZW5k
aW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOworICAgICAgICBPd25QdHI8UGVuZGluZ09wZW5DYWxs
PiBwZW5kaW5nT3BlbkNhbGwgPSBwZW5kaW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOwogICAgICAg
ICBvcGVuQ29ubmVjdGlvbihwZW5kaW5nT3BlbkNhbGwtPmNhbGxiYWNrcygpLCBwZW5kaW5nT3Bl
bkNhbGwtPmRhdGFiYXNlQ2FsbGJhY2tzKCkpOwogICAgIH0KICAgICBBU1NFUlQobV9wZW5kaW5n
T3BlbkNhbGxzLmlzRW1wdHkoKSk7CkBAIC00ODgsOCArNDg2LDggQEAgdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1
ZXN0ZWRWZXIKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGVjID0gSURC
RGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUjsKICAgICB9Ci0gICAg
QVNTRVJUX1dJVEhfTUVTU0FHRSghbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNh
bGxzLnNpemUoKSwgIm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxscy5zaXpl
ID0gJXp1IiwgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNpemUoKSk7
Ci0gICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLmFwcGVuZChQZW5k
aW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFj
a3MsIHJlcXVlc3RlZFZlcnNpb24pKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3BlbmRp
bmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLCAibV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRo
VmVyc2lvbiBub3QgbnVsbCIpOworICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNp
b24gPSBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJh
c2VDYWxsYmFja3MsIHJlcXVlc3RlZFZlcnNpb24pOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3NT
ZXQuYWRkKGRhdGFiYXNlQ2FsbGJhY2tzKTsKIH0KIApAQCAtNTU5LDEyICs1NTcsOSBAQCB2b2lk
IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3M+IHBycENhbGxiYWNrcwogICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmNv
bnRhaW5zKGNhbGxiYWNrcykpOwogCiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5yZW1vdmUo
Y2FsbGJhY2tzKTsKLSAgICBmb3IgKERlcXVlPFJlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9u
Q2FsbD4gPjo6aXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9u
Q2FsbHMuYmVnaW4oKTsgaXQgIT0gbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNh
bGxzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGlmICgoKml0KS0+ZGF0YWJhc2VDYWxsYmFja3Mo
KSA9PSBjYWxsYmFja3MpIHsKLSAgICAgICAgICAgICgqaXQpLT5jYWxsYmFja3MoKS0+b25FcnJv
cihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9S
VF9FUlIsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKLSAgICAgICAgICAgIG1fcGVu
ZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxscy5yZW1vdmUoaXQpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRo
VmVyc2lvbiAmJiBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLT5kYXRhYmFzZUNh
bGxiYWNrcygpID09IGNhbGxiYWNrcykgeworICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3Bl
bldpdGhWZXJzaW9uLT5jYWxsYmFja3MoKS0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVh
dGUoSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9SVF9FUlIsICJUaGUgY29ubmVjdGlvbiB3
YXMgY2xvc2VkLiIpKTsKKyAgICAgICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lv
bi5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgaWYgKGNvbm5lY3Rpb25Db3VudCgpID4gMSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuaAppbmRleCAyMmNjYzQzMjIwYjUwNGZlNzA2ODU2N2I1OWE0NzYyNTVlZWE4
NTRkLi4xODJlZmIyMjc0M2M0NTViOGNlNzk4MTE0ZGNmZTVhZTI5OTNiMTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oCkBAIC0xMTQsMTcgKzExNCwxNyBAQCBwcml2YXRlOgogICAgIFRyYW5zYWN0aW9u
U2V0IG1fdHJhbnNhY3Rpb25zOwogCiAgICAgY2xhc3MgUGVuZGluZ1NldFZlcnNpb25DYWxsOwot
ICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+ID4gbV9wZW5kaW5nU2V0VmVy
c2lvbkNhbGxzOworICAgIERlcXVlPE93blB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+ID4gbV9w
ZW5kaW5nU2V0VmVyc2lvbkNhbGxzOwogCiAgICAgY2xhc3MgUGVuZGluZ09wZW5DYWxsOwotICAg
IERlcXVlPFJlZlB0cjxQZW5kaW5nT3BlbkNhbGw+ID4gbV9wZW5kaW5nT3BlbkNhbGxzOworICAg
IERlcXVlPE93blB0cjxQZW5kaW5nT3BlbkNhbGw+ID4gbV9wZW5kaW5nT3BlbkNhbGxzOwogCiAg
ICAgY2xhc3MgUGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw7Ci0gICAgRGVxdWU8UmVmUHRyPFBl
bmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsPiA+IG1fcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGxz
OwotICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gPiBtX3BlbmRp
bmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHM7CisgICAgRGVxdWU8T3duUHRyPFBlbmRp
bmdPcGVuV2l0aFZlcnNpb25DYWxsPiA+IG1fcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGxzOwor
ICAgIE93blB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gbV9wZW5kaW5nU2Vjb25kSGFs
Zk9wZW5XaXRoVmVyc2lvbjsKIAogICAgIGNsYXNzIFBlbmRpbmdEZWxldGVDYWxsOwotICAgIERl
cXVlPFJlZlB0cjxQZW5kaW5nRGVsZXRlQ2FsbD4gPiBtX3BlbmRpbmdEZWxldGVDYWxsczsKKyAg
ICBEZXF1ZTxPd25QdHI8UGVuZGluZ0RlbGV0ZUNhbGw+ID4gbV9wZW5kaW5nRGVsZXRlQ2FsbHM7
CiAKICAgICB0eXBlZGVmIExpc3RIYXNoU2V0PFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4g
PiBEYXRhYmFzZUNhbGxiYWNrc1NldDsKICAgICBEYXRhYmFzZUNhbGxiYWNrc1NldCBtX2RhdGFi
YXNlQ2FsbGJhY2tzU2V0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164458</attachid>
            <date>2012-09-17 15:04:04 -0700</date>
            <delta_ts>2012-09-19 16:35:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96952-20120917150332.patch</filename>
            <type>text/plain</type>
            <size>14321</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFiNTZmZjI0NTdhNDY0
ZjQyMjcyNzhhODNlMjYzNzc1NzM4ZjczOS4uY2VlZGU5MWExM2M0ZWI5ZWE5MGM2ZWI2NWU3ZmQz
NzE2ZTAzZDg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTE3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQZW5k
aW5nIGNhbGwgY2xlYW51cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTY5NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZXBsYWNlIFJlZlB0ciB1c2FnZSB3aXRoIE93blB0ciBmb3IgUGVuZGluZ1hYWENh
bGxzIChzaW5jZSB0aGV5J3JlIG5ldmVyIHJlZmVyZW5jZWQgdHdpY2UpCisgICAgICAgIGFuZCBy
ZXBsYWNlIHF1ZXVlIG9mICJzZWNvbmQgaGFsZiBvcGVuIiBjYWxscyB3aXRoIGEgc2luZ2xlIGl0
ZW0uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpQZW5kaW5nT3BlbkNhbGw6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpQZW5k
aW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdEZWxldGVDYWxsOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ1NldFZlcnNpb25DYWxsOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVy
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2Fj
dGlvbkZpbmlzaGVkQW5kQWJvcnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjbG9zZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAo
SURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisKIDIwMTItMDktMTcgIFBoaWxpcCBSb2dlcnMgIDxw
ZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNYWtlIFNWR1BhdGhTZWdMaXN0LmFwcGVuZEl0ZW0g
TygxKSBpbnN0ZWFkIG9mIE8obikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggNDY1NzM2MmQx
MDU2OTFhZTU2YjgyZmJjNTc2ZDQxNmM2NWEzZThjOC4uMTA3OTExYWMxYzkwY2ZmZGZhMjU0MTQy
NWFiOTQ0ODcyMThjYjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTM5LDExICszOSwx
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZElt
cGw6OlBlbmRpbmdPcGVuQ2FsbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRpbmdPcGVuQ2FsbD4g
eworY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ09wZW5DYWxsIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZW5kaW5nT3BlbkNhbGw+IGNyZWF0ZShQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiBkYXRhYmFzZUNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxQZW5kaW5nT3Bl
bkNhbGw+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcykKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGVuZGluZ09wZW5DYWxsKGNhbGxiYWNrcywgZGF0YWJh
c2VDYWxsYmFja3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQZW5kaW5nT3BlbkNh
bGwoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcykpOwogICAgIH0KICAgICBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKCkgeyByZXR1cm4gbV9jYWxsYmFja3M7IH0KICAgICBQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcygpIHsgcmV0
dXJuIG1fZGF0YWJhc2VDYWxsYmFja3M7IH0KQEAgLTU5LDExICs1OSwxMSBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gbV9kYXRhYmFzZUNhbGxiYWNrczsKIH07
CiAKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdPcGVuV2l0aFZlcnNpb25D
YWxsIDogcHVibGljIFJlZkNvdW50ZWQ8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+IHsKK2Ns
YXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2Fs
bD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHZlcnNpb24p
CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+IGNyZWF0
ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB2ZXJzaW9uKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbChj
YWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB2ZXJzaW9uKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgUGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwoY2FsbGJhY2tzLCBkYXRhYmFz
ZUNhbGxiYWNrcywgdmVyc2lvbikpOwogICAgIH0KICAgICBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzKCkgeyByZXR1cm4gbV9jYWxsYmFja3M7IH0KICAgICBQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcygpIHsgcmV0dXJuIG1fZGF0YWJh
c2VDYWxsYmFja3M7IH0KQEAgLTgxLDExICs4MSwxMSBAQCBwcml2YXRlOgogICAgIGludDY0X3Qg
bV92ZXJzaW9uOwogfTsKIAotY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ0Rl
bGV0ZUNhbGwgOiBwdWJsaWMgUmVmQ291bnRlZDxQZW5kaW5nRGVsZXRlQ2FsbD4geworY2xhc3Mg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ0RlbGV0ZUNhbGwgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFBlbmRpbmdEZWxldGVDYWxsPiBjcmVhdGUoUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IGNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxQZW5kaW5nRGVs
ZXRlQ2FsbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBlbmRpbmdEZWxldGVDYWxsKGNhbGxiYWNr
cykpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBlbmRpbmdEZWxldGVDYWxsKGNhbGxi
YWNrcykpOwogICAgIH0KICAgICBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKCkg
eyByZXR1cm4gbV9jYWxsYmFja3M7IH0KIApAQCAtOTcsMTEgKzk3LDExIEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7CiB9OwogCi1jbGFzcyBJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpQZW5kaW5nU2V0VmVyc2lvbkNhbGwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+IHsKK2NsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OlBlbmRpbmdTZXRWZXJzaW9uQ2FsbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UGVuZGluZ1NldFZlcnNpb25DYWxsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxQZW5kaW5n
U2V0VmVyc2lvbkNhbGw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGRhdGFiYXNlQ2FsbGJhY2tzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
ZW5kaW5nU2V0VmVyc2lvbkNhbGwodmVyc2lvbiwgY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNr
cykpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBlbmRpbmdTZXRWZXJzaW9uQ2FsbCh2
ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzKSk7CiAgICAgfQogICAgIFN0cmlu
ZyB2ZXJzaW9uKCkgeyByZXR1cm4gbV92ZXJzaW9uOyB9CiAgICAgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcygpIHsgcmV0dXJuIG1fY2FsbGJhY2tzOyB9CkBAIC0yNTQsMTMgKzI1
NCwxMyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldFZlcnNpb24oY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbAogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzMAogICAgIGlmIChjb25uZWN0aW9uQ291bnQoKSA+
IDEpIHsKICAgICAgICAgY2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKLSAgICAgICAgUmVmUHRyPFBl
bmRpbmdTZXRWZXJzaW9uQ2FsbD4gcGVuZGluZ1NldFZlcnNpb25DYWxsID0gUGVuZGluZ1NldFZl
cnNpb25DYWxsOjpjcmVhdGUodmVyc2lvbiwgY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcyk7
Ci0gICAgICAgIG1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5hcHBlbmQocGVuZGluZ1NldFZlcnNp
b25DYWxsKTsKKyAgICAgICAgT3duUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gcGVuZGluZ1Nl
dFZlcnNpb25DYWxsID0gUGVuZGluZ1NldFZlcnNpb25DYWxsOjpjcmVhdGUodmVyc2lvbiwgY2Fs
bGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcyk7CisgICAgICAgIG1fcGVuZGluZ1NldFZlcnNpb25D
YWxscy5hcHBlbmQocGVuZGluZ1NldFZlcnNpb25DYWxsLnJlbGVhc2UoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgaWYgKG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbikg
ewotICAgICAgICBSZWZQdHI8UGVuZGluZ1NldFZlcnNpb25DYWxsPiBwZW5kaW5nU2V0VmVyc2lv
bkNhbGwgPSBQZW5kaW5nU2V0VmVyc2lvbkNhbGw6OmNyZWF0ZSh2ZXJzaW9uLCBjYWxsYmFja3Ms
IGRhdGFiYXNlQ2FsbGJhY2tzKTsKLSAgICAgICAgbV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmFw
cGVuZChwZW5kaW5nU2V0VmVyc2lvbkNhbGwpOworICAgICAgICBPd25QdHI8UGVuZGluZ1NldFZl
cnNpb25DYWxsPiBwZW5kaW5nU2V0VmVyc2lvbkNhbGwgPSBQZW5kaW5nU2V0VmVyc2lvbkNhbGw6
OmNyZWF0ZSh2ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICAgICAg
bV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmFwcGVuZChwZW5kaW5nU2V0VmVyc2lvbkNhbGwucmVs
ZWFzZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzMzLDkgKzMzMyw5IEBAIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0Rmly
ZWQoUGFzc1JlZlB0cjxJREJUcmFuCiAgICAgICAgIC8vIElmIHRoaXMgd2FzIGFuIG9wZW4td2l0
aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vjb25kCiAgICAgICAgIC8vIGhhbGYi
IG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNzUGVuZGluZ0NhbGxzLgogICAgICAg
ICAvLyBGSVhNRTogV2hlbiB3ZSBubyBsb25nZXIgc3VwcG9ydCBzZXRWZXJzaW9uLCBhc3NlcnQg
c3VjaCBhIHRoaW5nLgotICAgICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVy
c2lvbkNhbGxzLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5X
aXRoVmVyc2lvbkNhbGw+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsID0gbV9wZW5kaW5nU2Vj
b25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnRha2VGaXJzdCgpOwotICAgICAgICAgICAgcGVu
ZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRhdGFiYXNl
RXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUiwgIlZlcnNp
b24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGluIHVwZ3JhZGVuZWVkZWQgZXZlbnQg
aGFuZGxlci4iKSk7CisgICAgICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJz
aW9uKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLT5j
YWxsYmFja3MoKS0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VF
eGNlcHRpb246OklEQl9BQk9SVF9FUlIsICJWZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiB3YXMg
YWJvcnRlZCBpbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRsZXIuIikpOworICAgICAgICAgICAg
bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbi5yZWxlYXNlKCk7CiAgICAgICAgIH0K
ICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygpOwogICAgIH0KQEAgLTM1NiwyMiArMzU2LDIw
IEBAIHNpemVfdCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjb25uZWN0aW9uQ291bnQoKQogCiB2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogewotICAg
IC8vIEZJWE1FOiBDaGFuZ2UgZnJvbSBxdWV1ZSB0byBqdXN0IGEgc2luZ2xlIHBsYWNlIGhvbGRl
ci4KLSAgICBBU1NFUlQobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNp
emUoKSA8PSAxKTsKLSAgICB3aGlsZSAoIW1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNp
b25DYWxscy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPFBlbmRpbmdPcGVuV2l0aFZlcnNp
b25DYWxsPiBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbCA9IG1fcGVuZGluZ1NlY29uZEhhbGZP
cGVuV2l0aFZlcnNpb25DYWxscy50YWtlRmlyc3QoKTsKLSAgICAgICAgQVNTRVJUKHBlbmRpbmdP
cGVuV2l0aFZlcnNpb25DYWxsLT52ZXJzaW9uKCkgPT0gbV9pbnRWZXJzaW9uKTsKKyAgICBpZiAo
bV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbikgeworICAgICAgICBBU1NFUlQobV9w
ZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbi0+dmVyc2lvbigpID09IG1faW50VmVyc2lv
bik7CiAgICAgICAgIEFTU0VSVChtX2lkICE9IEludmFsaWRJZCk7Ci0gICAgICAgIHBlbmRpbmdP
cGVuV2l0aFZlcnNpb25DYWxsLT5jYWxsYmFja3MoKS0+b25TdWNjZXNzKHRoaXMpOworICAgICAg
ICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLT5jYWxsYmFja3MoKS0+b25TdWNj
ZXNzKHRoaXMpOworICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLnJl
bGVhc2UoKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHdoZW4gY29tcGxldGUsIGFzIHBlbmRp
bmcgZGVsZXRlcyBtYXkgYmUgKHBhcnRpYWxseSkgdW5ibG9ja2VkLgogICAgIH0KIAogICAgIC8v
IFBlbmRpbmcgY2FsbHMgbWF5IGJlIHJlcXVldWVkIG9yIGFib3J0ZWQKLSAgICBEZXF1ZTxSZWZQ
dHI8UGVuZGluZ1NldFZlcnNpb25DYWxsPiA+IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbHM7CisgICAg
RGVxdWU8T3duUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gPiBwZW5kaW5nU2V0VmVyc2lvbkNh
bGxzOwogICAgIG1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5zd2FwKHBlbmRpbmdTZXRWZXJzaW9u
Q2FsbHMpOwogICAgIHdoaWxlICghcGVuZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIFJlZlB0cjxQZW5kaW5nU2V0
VmVyc2lvbkNhbGw+IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbCA9IHBlbmRpbmdTZXRWZXJzaW9uQ2Fs
bHMudGFrZUZpcnN0KCk7CisgICAgICAgIE93blB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+IHBl
bmRpbmdTZXRWZXJzaW9uQ2FsbCA9IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbHMudGFrZUZpcnN0KCk7
CiAgICAgICAgIHNldFZlcnNpb24ocGVuZGluZ1NldFZlcnNpb25DYWxsLT52ZXJzaW9uKCksIHBl
bmRpbmdTZXRWZXJzaW9uQ2FsbC0+Y2FsbGJhY2tzKCksIHBlbmRpbmdTZXRWZXJzaW9uQ2FsbC0+
ZGF0YWJhc2VDYWxsYmFja3MoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CkBA
IC0zOTEsMTAgKzM4OSwxMCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQ
ZW5kaW5nQ2FsbHMoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBQZW5kaW5nIGNhbGxzIG1h
eSBiZSByZXF1ZXVlZC4KLSAgICBEZXF1ZTxSZWZQdHI8UGVuZGluZ0RlbGV0ZUNhbGw+ID4gcGVu
ZGluZ0RlbGV0ZUNhbGxzOworICAgIERlcXVlPE93blB0cjxQZW5kaW5nRGVsZXRlQ2FsbD4gPiBw
ZW5kaW5nRGVsZXRlQ2FsbHM7CiAgICAgbV9wZW5kaW5nRGVsZXRlQ2FsbHMuc3dhcChwZW5kaW5n
RGVsZXRlQ2FsbHMpOwogICAgIHdoaWxlICghcGVuZGluZ0RlbGV0ZUNhbGxzLmlzRW1wdHkoKSkg
ewotICAgICAgICBSZWZQdHI8UGVuZGluZ0RlbGV0ZUNhbGw+IHBlbmRpbmdEZWxldGVDYWxsID0g
cGVuZGluZ0RlbGV0ZUNhbGxzLnRha2VGaXJzdCgpOworICAgICAgICBPd25QdHI8UGVuZGluZ0Rl
bGV0ZUNhbGw+IHBlbmRpbmdEZWxldGVDYWxsID0gcGVuZGluZ0RlbGV0ZUNhbGxzLnRha2VGaXJz
dCgpOwogICAgICAgICBkZWxldGVEYXRhYmFzZShwZW5kaW5nRGVsZXRlQ2FsbC0+Y2FsbGJhY2tz
KCkpOwogICAgIH0KIApAQCAtNDAyLDE5ICs0MDAsMTkgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICBpZiAobV9ydW5uaW5nVmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uIHx8ICFtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuaXNFbXB0eSgpIHx8
ICFtX3BlbmRpbmdEZWxldGVDYWxscy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IERlcXVlPFJlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gPiBwZW5kaW5nT3Blbldp
dGhWZXJzaW9uQ2FsbHM7CisgICAgRGVxdWU8T3duUHRyPFBlbmRpbmdPcGVuV2l0aFZlcnNpb25D
YWxsPiA+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsczsKICAgICBtX3BlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxscy5zd2FwKHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxscyk7CiAgICAgd2hp
bGUgKCFwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJl
ZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNh
bGwgPSBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMudGFrZUZpcnN0KCk7CisgICAgICAgIE93
blB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNh
bGwgPSBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMudGFrZUZpcnN0KCk7CiAgICAgICAgIG9w
ZW5Db25uZWN0aW9uV2l0aFZlcnNpb24ocGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxi
YWNrcygpLCBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbC0+ZGF0YWJhc2VDYWxsYmFja3MoKSwg
cGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPnZlcnNpb24oKSk7CiAgICAgfQogCiAgICAgLy8g
R2l2ZW4gdGhlIGNoZWNrIGFib3ZlLCBpdCBhcHBlYXJzIHRoYXQgY2FsbHMgY2Fubm90IGJlIHJl
cXVldWVkIGJ5CiAgICAgLy8gb3BlbkNvbm5lY3Rpb24sIGJ1dCB1c2UgYSBkaWZmZXJlbnQgcXVl
dWUgZm9yIGl0ZXJhdGlvbiB0byBiZSBzYWZlLgotICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nT3Bl
bkNhbGw+ID4gcGVuZGluZ09wZW5DYWxsczsKKyAgICBEZXF1ZTxPd25QdHI8UGVuZGluZ09wZW5D
YWxsPiA+IHBlbmRpbmdPcGVuQ2FsbHM7CiAgICAgbV9wZW5kaW5nT3BlbkNhbGxzLnN3YXAocGVu
ZGluZ09wZW5DYWxscyk7CiAgICAgd2hpbGUgKCFwZW5kaW5nT3BlbkNhbGxzLmlzRW1wdHkoKSkg
ewotICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwgPSBwZW5k
aW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOworICAgICAgICBPd25QdHI8UGVuZGluZ09wZW5DYWxs
PiBwZW5kaW5nT3BlbkNhbGwgPSBwZW5kaW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOwogICAgICAg
ICBvcGVuQ29ubmVjdGlvbihwZW5kaW5nT3BlbkNhbGwtPmNhbGxiYWNrcygpLCBwZW5kaW5nT3Bl
bkNhbGwtPmRhdGFiYXNlQ2FsbGJhY2tzKCkpOwogICAgIH0KICAgICBBU1NFUlQobV9wZW5kaW5n
T3BlbkNhbGxzLmlzRW1wdHkoKSk7CkBAIC00ODgsOCArNDg2LDggQEAgdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oaW50NjRfdCByZXF1
ZXN0ZWRWZXIKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGVjID0gSURC
RGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUjsKICAgICB9Ci0gICAg
QVNTRVJUX1dJVEhfTUVTU0FHRSghbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNh
bGxzLnNpemUoKSwgIm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxscy5zaXpl
ID0gJXp1IiwgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNpemUoKSk7
Ci0gICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLmFwcGVuZChQZW5k
aW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFj
a3MsIHJlcXVlc3RlZFZlcnNpb24pKTsKKyAgICBBU1NFUlQoIW1fcGVuZGluZ1NlY29uZEhhbGZP
cGVuV2l0aFZlcnNpb24pOworICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24g
PSBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDo6Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJhc2VD
YWxsYmFja3MsIHJlcXVlc3RlZFZlcnNpb24pOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQu
YWRkKGRhdGFiYXNlQ2FsbGJhY2tzKTsKIH0KIApAQCAtNTU5LDEyICs1NTcsOSBAQCB2b2lkIElE
QkRhdGFiYXNlQmFja2VuZEltcGw6OmNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+IHBycENhbGxiYWNrcwogICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmNvbnRh
aW5zKGNhbGxiYWNrcykpOwogCiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5yZW1vdmUoY2Fs
bGJhY2tzKTsKLSAgICBmb3IgKERlcXVlPFJlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2Fs
bD4gPjo6aXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2Fs
bHMuYmVnaW4oKTsgaXQgIT0gbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxz
LmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGlmICgoKml0KS0+ZGF0YWJhc2VDYWxsYmFja3MoKSA9
PSBjYWxsYmFja3MpIHsKLSAgICAgICAgICAgICgqaXQpLT5jYWxsYmFja3MoKS0+b25FcnJvcihJ
REJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9SVF9F
UlIsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKLSAgICAgICAgICAgIG1fcGVuZGlu
Z1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxscy5yZW1vdmUoaXQpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KKyAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVy
c2lvbiAmJiBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLT5kYXRhYmFzZUNhbGxi
YWNrcygpID09IGNhbGxiYWNrcykgeworICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3Blbldp
dGhWZXJzaW9uLT5jYWxsYmFja3MoKS0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUo
SURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9BQk9SVF9FUlIsICJUaGUgY29ubmVjdGlvbiB3YXMg
Y2xvc2VkLiIpKTsKKyAgICAgICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbi5y
ZWxlYXNlKCk7CiAgICAgfQogCiAgICAgaWYgKGNvbm5lY3Rpb25Db3VudCgpID4gMSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuaAppbmRleCAyMmNjYzQzMjIwYjUwNGZlNzA2ODU2N2I1OWE0NzYyNTVlZWE4NTRk
Li4xODJlZmIyMjc0M2M0NTViOGNlNzk4MTE0ZGNmZTVhZTI5OTNiMTk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5oCkBAIC0xMTQsMTcgKzExNCwxNyBAQCBwcml2YXRlOgogICAgIFRyYW5zYWN0aW9uU2V0
IG1fdHJhbnNhY3Rpb25zOwogCiAgICAgY2xhc3MgUGVuZGluZ1NldFZlcnNpb25DYWxsOwotICAg
IERlcXVlPFJlZlB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+ID4gbV9wZW5kaW5nU2V0VmVyc2lv
bkNhbGxzOworICAgIERlcXVlPE93blB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+ID4gbV9wZW5k
aW5nU2V0VmVyc2lvbkNhbGxzOwogCiAgICAgY2xhc3MgUGVuZGluZ09wZW5DYWxsOwotICAgIERl
cXVlPFJlZlB0cjxQZW5kaW5nT3BlbkNhbGw+ID4gbV9wZW5kaW5nT3BlbkNhbGxzOworICAgIERl
cXVlPE93blB0cjxQZW5kaW5nT3BlbkNhbGw+ID4gbV9wZW5kaW5nT3BlbkNhbGxzOwogCiAgICAg
Y2xhc3MgUGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw7Ci0gICAgRGVxdWU8UmVmUHRyPFBlbmRp
bmdPcGVuV2l0aFZlcnNpb25DYWxsPiA+IG1fcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGxzOwot
ICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gPiBtX3BlbmRpbmdT
ZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHM7CisgICAgRGVxdWU8T3duUHRyPFBlbmRpbmdP
cGVuV2l0aFZlcnNpb25DYWxsPiA+IG1fcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGxzOworICAg
IE93blB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gbV9wZW5kaW5nU2Vjb25kSGFsZk9w
ZW5XaXRoVmVyc2lvbjsKIAogICAgIGNsYXNzIFBlbmRpbmdEZWxldGVDYWxsOwotICAgIERlcXVl
PFJlZlB0cjxQZW5kaW5nRGVsZXRlQ2FsbD4gPiBtX3BlbmRpbmdEZWxldGVDYWxsczsKKyAgICBE
ZXF1ZTxPd25QdHI8UGVuZGluZ0RlbGV0ZUNhbGw+ID4gbV9wZW5kaW5nRGVsZXRlQ2FsbHM7CiAK
ICAgICB0eXBlZGVmIExpc3RIYXNoU2V0PFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gPiBE
YXRhYmFzZUNhbGxiYWNrc1NldDsKICAgICBEYXRhYmFzZUNhbGxiYWNrc1NldCBtX2RhdGFiYXNl
Q2FsbGJhY2tzU2V0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164801</attachid>
            <date>2012-09-19 16:35:24 -0700</date>
            <delta_ts>2012-09-19 17:12:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96952-20120919163450.patch</filename>
            <type>text/plain</type>
            <size>14359</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTViNmJhYTc1NTAxYzgx
MTJkN2RhNDEwNmZjNjdkNTk4NTg5ZTFiMy4uNjcwNTI2YzQ1MGYxMzZiZTY3ZmJjNjFjM2VmYmUy
ZDlhMzNhZTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTE3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBQZW5k
aW5nIGNhbGwgY2xlYW51cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTY5NTIKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAg
ICAgIFJlcGxhY2UgUmVmUHRyIHVzYWdlIHdpdGggT3duUHRyIGZvciBQZW5kaW5nWFhYQ2FsbHMg
KHNpbmNlIHRoZXkncmUgbmV2ZXIgcmVmZXJlbmNlZCB0d2ljZSkKKyAgICAgICAgYW5kIHJlcGxh
Y2UgcXVldWUgb2YgInNlY29uZCBoYWxmIG9wZW4iIGNhbGxzIHdpdGggYSBzaW5nbGUgaXRlbS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgLSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdPcGVuQ2FsbDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdP
cGVuV2l0aFZlcnNpb25DYWxsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6UGVuZGluZ0RlbGV0ZUNhbGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpQZW5kaW5nU2V0VmVyc2lvbkNhbGw6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9u
RmluaXNoZWRBbmRBYm9ydEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFj
a2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNsb3NlKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJE
YXRhYmFzZUJhY2tlbmRJbXBsKToKKwogMjAxMi0wOS0xOSAgVGVycnkgQW5kZXJzb24gIDx0ZGFu
ZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFN0b3JlIHRoZSBjb250
ZW50cyBzY2FsZSBmYWN0b3IgaW4gUGxhdGZvcm1Db250ZXh0U2tpYSBvbiBpbml0aWFsaXphdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCA0M2MwNDZiZThiMDc3NDk4YzdkNWFmNzE2MGU4
M2EwMzM5NDk4NjkzLi5jMmM1YjFiOTZjY2U1MzJmMzQ3NzRiOWQ5YzVlNDQwNzBhOWVjYzAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMzksMTEgKzM5LDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ09wZW5DYWxs
IDogcHVibGljIFJlZkNvdW50ZWQ8UGVuZGluZ09wZW5DYWxsPiB7CitjbGFzcyBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpQZW5kaW5nT3BlbkNhbGwgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFBlbmRpbmdPcGVuQ2FsbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJh
Y2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBlbmRpbmdPcGVuQ2FsbD4gY3JlYXRlKFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBQZW5kaW5nT3BlbkNhbGwoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcykpOworICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBlbmRpbmdPcGVuQ2FsbChjYWxsYmFja3MsIGRhdGFi
YXNlQ2FsbGJhY2tzKSk7CiAgICAgfQogICAgIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MoKSB7IHJldHVybiBtX2NhbGxiYWNrczsgfQogICAgIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kYXRhYmFzZUNhbGxi
YWNrczsgfQpAQCAtNTksMTEgKzU5LDExIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiBtX2RhdGFiYXNlQ2FsbGJhY2tzOwogfTsKIAotY2xhc3MgSURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwgOiBwdWJsaWMgUmVmQ291
bnRlZDxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4geworY2xhc3MgSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbDo6UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsPiBjcmVhdGUoUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4gZGF0YWJhc2VDYWxsYmFja3MsIGludDY0X3QgdmVyc2lvbikKKyAgICBzdGF0aWMgUGFzc093
blB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFi
YXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHZlcnNpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsKGNhbGxiYWNrcywgZGF0YWJhc2VD
YWxsYmFja3MsIHZlcnNpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQZW5kaW5n
T3BlbldpdGhWZXJzaW9uQ2FsbChjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB2ZXJzaW9u
KSk7CiAgICAgfQogICAgIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MoKSB7IHJl
dHVybiBtX2NhbGxiYWNrczsgfQogICAgIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGRhdGFiYXNlQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kYXRhYmFzZUNhbGxiYWNrczsgfQpAQCAt
ODEsMTEgKzgxLDExIEBAIHByaXZhdGU6CiAgICAgaW50NjRfdCBtX3ZlcnNpb247CiB9OwogCi1j
bGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpQZW5kaW5nRGVsZXRlQ2FsbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFBlbmRpbmdEZWxldGVDYWxsPiB7CitjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsOjpQZW5kaW5nRGVsZXRlQ2FsbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UGVuZGluZ0RlbGV0ZUNhbGw+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBlbmRpbmdEZWxldGVDYWxsPiBjcmVhdGUoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUGVuZGluZ0RlbGV0ZUNhbGwoY2FsbGJhY2tzKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgUGVuZGluZ0RlbGV0ZUNhbGwoY2FsbGJhY2tzKSk7CiAgICAgfQogICAg
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MoKSB7IHJldHVybiBtX2NhbGxiYWNr
czsgfQogCkBAIC05NywxMSArOTcsMTEgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBtX2NhbGxiYWNrczsKIH07CiAKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBl
bmRpbmdTZXRWZXJzaW9uQ2FsbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRpbmdTZXRWZXJzaW9u
Q2FsbD4geworY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6UGVuZGluZ1NldFZlcnNpb25D
YWxsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZW5kaW5nU2V0VmVyc2lvbkNh
bGw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2Fs
bGJhY2tzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxi
YWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3Mp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBlbmRpbmdTZXRWZXJzaW9uQ2Fs
bCh2ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgUGVuZGluZ1NldFZlcnNpb25DYWxsKHZlcnNpb24sIGNhbGxiYWNrcywg
ZGF0YWJhc2VDYWxsYmFja3MpKTsKICAgICB9CiAgICAgU3RyaW5nIHZlcnNpb24oKSB7IHJldHVy
biBtX3ZlcnNpb247IH0KICAgICBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKCkg
eyByZXR1cm4gbV9jYWxsYmFja3M7IH0KQEAgLTI1NCwxMyArMjU0LDEzIEBAIHZvaWQgSURCRGF0
YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NS
ZWZQdHI8SURCQ2FsCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxMTMwCiAgICAgaWYgKGNvbm5lY3Rpb25Db3VudCgpID4gMSkgewogICAgICAgICBjYWxs
YmFja3MtPm9uQmxvY2tlZCgpOwotICAgICAgICBSZWZQdHI8UGVuZGluZ1NldFZlcnNpb25DYWxs
PiBwZW5kaW5nU2V0VmVyc2lvbkNhbGwgPSBQZW5kaW5nU2V0VmVyc2lvbkNhbGw6OmNyZWF0ZSh2
ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzKTsKLSAgICAgICAgbV9wZW5kaW5n
U2V0VmVyc2lvbkNhbGxzLmFwcGVuZChwZW5kaW5nU2V0VmVyc2lvbkNhbGwpOworICAgICAgICBP
d25QdHI8UGVuZGluZ1NldFZlcnNpb25DYWxsPiBwZW5kaW5nU2V0VmVyc2lvbkNhbGwgPSBQZW5k
aW5nU2V0VmVyc2lvbkNhbGw6OmNyZWF0ZSh2ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNlQ2Fs
bGJhY2tzKTsKKyAgICAgICAgbV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmFwcGVuZChwZW5kaW5n
U2V0VmVyc2lvbkNhbGwucmVsZWFzZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBp
ZiAobV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKSB7Ci0gICAgICAgIFJlZlB0cjxQ
ZW5kaW5nU2V0VmVyc2lvbkNhbGw+IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbCA9IFBlbmRpbmdTZXRW
ZXJzaW9uQ2FsbDo6Y3JlYXRlKHZlcnNpb24sIGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3Mp
OwotICAgICAgICBtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuYXBwZW5kKHBlbmRpbmdTZXRWZXJz
aW9uQ2FsbCk7CisgICAgICAgIE93blB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+IHBlbmRpbmdT
ZXRWZXJzaW9uQ2FsbCA9IFBlbmRpbmdTZXRWZXJzaW9uQ2FsbDo6Y3JlYXRlKHZlcnNpb24sIGNh
bGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MpOworICAgICAgICBtX3BlbmRpbmdTZXRWZXJzaW9u
Q2FsbHMuYXBwZW5kKHBlbmRpbmdTZXRWZXJzaW9uQ2FsbC5yZWxlYXNlKCkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0zMzQsOSArMzM0LDkgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjp0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJvcnRGaXJlZChQYXNzUmVmUHRyPElEQlRy
YW4KICAgICAgICAgLy8gSWYgdGhpcyB3YXMgYW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCwgdGhl
cmUgd2lsbCBiZSBhICJzZWNvbmQKICAgICAgICAgLy8gaGFsZiIgb3BlbiBjYWxsIHdhaXRpbmcg
Zm9yIHVzIGluIHByb2Nlc3NQZW5kaW5nQ2FsbHMuCiAgICAgICAgIC8vIEZJWE1FOiBXaGVuIHdl
IG5vIGxvbmdlciBzdXBwb3J0IHNldFZlcnNpb24sIGFzc2VydCBzdWNoIGEgdGhpbmcuCi0gICAg
ICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSgpID09
IDEpIHsKLSAgICAgICAgICAgIFJlZlB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gcGVu
ZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwgPSBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJz
aW9uQ2FsbHMudGFrZUZpcnN0KCk7Ci0gICAgICAgICAgICBwZW5kaW5nT3BlbldpdGhWZXJzaW9u
Q2FsbC0+Y2FsbGJhY2tzKCktPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSLCAiVmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rp
b24gd2FzIGFib3J0ZWQgaW4gdXBncmFkZW5lZWRlZCBldmVudCBoYW5kbGVyLiIpKTsKKyAgICAg
ICAgaWYgKG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24pIHsKKyAgICAgICAgICAg
IG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24tPmNhbGxiYWNrcygpLT5vbkVycm9y
KElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JU
X0VSUiwgIlZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGluIHVwZ3JhZGVu
ZWVkZWQgZXZlbnQgaGFuZGxlci4iKSk7CisgICAgICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxm
T3BlbldpdGhWZXJzaW9uLnJlbGVhc2UoKTsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzUGVu
ZGluZ0NhbGxzKCk7CiAgICAgfQpAQCAtMzU3LDIyICszNTcsMjAgQEAgc2l6ZV90IElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNvbm5lY3Rpb25Db3VudCgpCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiB7Ci0gICAgLy8gRklYTUU6IENoYW5nZSBm
cm9tIHF1ZXVlIHRvIGp1c3QgYSBzaW5nbGUgcGxhY2UgaG9sZGVyLgotICAgIEFTU0VSVChtX3Bl
bmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSgpIDw9IDEpOwotICAgIHdo
aWxlICghbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLmlzRW1wdHkoKSkg
ewotICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+IHBlbmRpbmdPcGVu
V2l0aFZlcnNpb25DYWxsID0gbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxz
LnRha2VGaXJzdCgpOwotICAgICAgICBBU1NFUlQocGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwt
PnZlcnNpb24oKSA9PSBtX2ludFZlcnNpb24pOworICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxm
T3BlbldpdGhWZXJzaW9uKSB7CisgICAgICAgIEFTU0VSVChtX3BlbmRpbmdTZWNvbmRIYWxmT3Bl
bldpdGhWZXJzaW9uLT52ZXJzaW9uKCkgPT0gbV9pbnRWZXJzaW9uKTsKICAgICAgICAgQVNTRVJU
KG1faWQgIT0gSW52YWxpZElkKTsKLSAgICAgICAgcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwt
PmNhbGxiYWNrcygpLT5vblN1Y2Nlc3ModGhpcyk7CisgICAgICAgIG1fcGVuZGluZ1NlY29uZEhh
bGZPcGVuV2l0aFZlcnNpb24tPmNhbGxiYWNrcygpLT5vblN1Y2Nlc3ModGhpcyk7CisgICAgICAg
IG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24ucmVsZWFzZSgpOwogICAgICAgICAv
LyBGYWxsIHRocm91Z2ggd2hlbiBjb21wbGV0ZSwgYXMgcGVuZGluZyBkZWxldGVzIG1heSBiZSAo
cGFydGlhbGx5KSB1bmJsb2NrZWQuCiAgICAgfQogCiAgICAgLy8gUGVuZGluZyBjYWxscyBtYXkg
YmUgcmVxdWV1ZWQgb3IgYWJvcnRlZAotICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nU2V0VmVyc2lv
bkNhbGw+ID4gcGVuZGluZ1NldFZlcnNpb25DYWxsczsKKyAgICBEZXF1ZTxPd25QdHI8UGVuZGlu
Z1NldFZlcnNpb25DYWxsPiA+IHBlbmRpbmdTZXRWZXJzaW9uQ2FsbHM7CiAgICAgbV9wZW5kaW5n
U2V0VmVyc2lvbkNhbGxzLnN3YXAocGVuZGluZ1NldFZlcnNpb25DYWxscyk7CiAgICAgd2hpbGUg
KCFwZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmlzRW1wdHkoKSkgewogICAgICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICAgICAgUmVmUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gcGVuZGlu
Z1NldFZlcnNpb25DYWxsID0gcGVuZGluZ1NldFZlcnNpb25DYWxscy50YWtlRmlyc3QoKTsKKyAg
ICAgICAgT3duUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gcGVuZGluZ1NldFZlcnNpb25DYWxs
ID0gcGVuZGluZ1NldFZlcnNpb25DYWxscy50YWtlRmlyc3QoKTsKICAgICAgICAgc2V0VmVyc2lv
bihwZW5kaW5nU2V0VmVyc2lvbkNhbGwtPnZlcnNpb24oKSwgcGVuZGluZ1NldFZlcnNpb25DYWxs
LT5jYWxsYmFja3MoKSwgcGVuZGluZ1NldFZlcnNpb25DYWxsLT5kYXRhYmFzZUNhbGxiYWNrcygp
LCBlYyk7CiAgICAgICAgIEFTU0VSVCghZWMpOwogICAgIH0KQEAgLTM5MiwxMCArMzkwLDEwIEBA
IHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIFBlbmRpbmcgY2FsbHMgbWF5IGJlIHJlcXVldWVkLgotICAg
IERlcXVlPFJlZlB0cjxQZW5kaW5nRGVsZXRlQ2FsbD4gPiBwZW5kaW5nRGVsZXRlQ2FsbHM7Cisg
ICAgRGVxdWU8T3duUHRyPFBlbmRpbmdEZWxldGVDYWxsPiA+IHBlbmRpbmdEZWxldGVDYWxsczsK
ICAgICBtX3BlbmRpbmdEZWxldGVDYWxscy5zd2FwKHBlbmRpbmdEZWxldGVDYWxscyk7CiAgICAg
d2hpbGUgKCFwZW5kaW5nRGVsZXRlQ2FsbHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlZlB0cjxQ
ZW5kaW5nRGVsZXRlQ2FsbD4gcGVuZGluZ0RlbGV0ZUNhbGwgPSBwZW5kaW5nRGVsZXRlQ2FsbHMu
dGFrZUZpcnN0KCk7CisgICAgICAgIE93blB0cjxQZW5kaW5nRGVsZXRlQ2FsbD4gcGVuZGluZ0Rl
bGV0ZUNhbGwgPSBwZW5kaW5nRGVsZXRlQ2FsbHMudGFrZUZpcnN0KCk7CiAgICAgICAgIGRlbGV0
ZURhdGFiYXNlKHBlbmRpbmdEZWxldGVDYWxsLT5jYWxsYmFja3MoKSk7CiAgICAgfQogCkBAIC00
MDMsMTkgKzQwMSwxOSBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5k
aW5nQ2FsbHMoKQogICAgIGlmIChtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gfHwg
IW1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0RlbGV0ZUNh
bGxzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRGVxdWU8UmVmUHRyPFBlbmRp
bmdPcGVuV2l0aFZlcnNpb25DYWxsPiA+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsczsKKyAg
ICBEZXF1ZTxPd25QdHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+ID4gcGVuZGluZ09wZW5X
aXRoVmVyc2lvbkNhbGxzOwogICAgIG1fcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGxzLnN3YXAo
cGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGxzKTsKICAgICB3aGlsZSAoIXBlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxscy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPFBlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxsPiBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbCA9IHBlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxscy50YWtlRmlyc3QoKTsKKyAgICAgICAgT3duUHRyPFBlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxsPiBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbCA9IHBlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxscy50YWtlRmlyc3QoKTsKICAgICAgICAgb3BlbkNvbm5lY3Rpb25XaXRoVmVy
c2lvbihwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbC0+Y2FsbGJhY2tzKCksIHBlbmRpbmdPcGVu
V2l0aFZlcnNpb25DYWxsLT5kYXRhYmFzZUNhbGxiYWNrcygpLCBwZW5kaW5nT3BlbldpdGhWZXJz
aW9uQ2FsbC0+dmVyc2lvbigpKTsKICAgICB9CiAKICAgICAvLyBHaXZlbiB0aGUgY2hlY2sgYWJv
dmUsIGl0IGFwcGVhcnMgdGhhdCBjYWxscyBjYW5ub3QgYmUgcmVxdWV1ZWQgYnkKICAgICAvLyBv
cGVuQ29ubmVjdGlvbiwgYnV0IHVzZSBhIGRpZmZlcmVudCBxdWV1ZSBmb3IgaXRlcmF0aW9uIHRv
IGJlIHNhZmUuCi0gICAgRGVxdWU8UmVmUHRyPFBlbmRpbmdPcGVuQ2FsbD4gPiBwZW5kaW5nT3Bl
bkNhbGxzOworICAgIERlcXVlPE93blB0cjxQZW5kaW5nT3BlbkNhbGw+ID4gcGVuZGluZ09wZW5D
YWxsczsKICAgICBtX3BlbmRpbmdPcGVuQ2FsbHMuc3dhcChwZW5kaW5nT3BlbkNhbGxzKTsKICAg
ICB3aGlsZSAoIXBlbmRpbmdPcGVuQ2FsbHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlZlB0cjxQ
ZW5kaW5nT3BlbkNhbGw+IHBlbmRpbmdPcGVuQ2FsbCA9IHBlbmRpbmdPcGVuQ2FsbHMudGFrZUZp
cnN0KCk7CisgICAgICAgIE93blB0cjxQZW5kaW5nT3BlbkNhbGw+IHBlbmRpbmdPcGVuQ2FsbCA9
IHBlbmRpbmdPcGVuQ2FsbHMudGFrZUZpcnN0KCk7CiAgICAgICAgIG9wZW5Db25uZWN0aW9uKHBl
bmRpbmdPcGVuQ2FsbC0+Y2FsbGJhY2tzKCksIHBlbmRpbmdPcGVuQ2FsbC0+ZGF0YWJhc2VDYWxs
YmFja3MoKSk7CiAgICAgfQogICAgIEFTU0VSVChtX3BlbmRpbmdPcGVuQ2FsbHMuaXNFbXB0eSgp
KTsKQEAgLTQ5Niw4ICs0OTQsOCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnJ1bklu
dFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihpbnQ2NF90IHJlcXVlc3RlZFZlcgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwogICAgIH0KLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCFtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSgpLCAibV9wZW5k
aW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNpemUgPSAlenUiLCBtX3BlbmRpbmdT
ZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSgpKTsKLSAgICBtX3BlbmRpbmdTZWNv
bmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuYXBwZW5kKFBlbmRpbmdPcGVuV2l0aFZlcnNpb25D
YWxsOjpjcmVhdGUoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgcmVxdWVzdGVkVmVyc2lv
bikpOworICAgIEFTU0VSVCghbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbik7Cisg
ICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbiA9IFBlbmRpbmdPcGVuV2l0aFZl
cnNpb25DYWxsOjpjcmVhdGUoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgcmVxdWVzdGVk
VmVyc2lvbik7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5hZGQoZGF0YWJhc2VDYWxsYmFj
a3MpOwogfQogCkBAIC01NjcsMTIgKzU2NSw5IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6Y2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzCiAg
ICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuY29udGFpbnMoY2FsbGJhY2tzKSk7CiAK
ICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LnJlbW92ZShjYWxsYmFja3MpOwotICAgIGZvciAo
RGVxdWU8UmVmUHRyPFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsPiA+OjppdGVyYXRvciBpdCA9
IG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxscy5iZWdpbigpOyBpdCAhPSBt
X3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuZW5kKCk7ICsraXQpIHsKLSAg
ICAgICAgaWYgKCgqaXQpLT5kYXRhYmFzZUNhbGxiYWNrcygpID09IGNhbGxiYWNrcykgewotICAg
ICAgICAgICAgKCppdCktPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNy
ZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUiwgIlRoZSBjb25uZWN0aW9u
IHdhcyBjbG9zZWQuIikpOwotICAgICAgICAgICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRo
VmVyc2lvbkNhbGxzLnJlbW92ZShpdCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQor
ICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uICYmIG1fcGVuZGluZ1Nl
Y29uZEhhbGZPcGVuV2l0aFZlcnNpb24tPmRhdGFiYXNlQ2FsbGJhY2tzKCkgPT0gY2FsbGJhY2tz
KSB7CisgICAgICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24tPmNhbGxiYWNr
cygpLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6SURCX0FCT1JUX0VSUiwgIlRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQuIikpOworICAgICAg
ICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLnJlbGVhc2UoKTsKICAgICB9CiAK
ICAgICBpZiAoY29ubmVjdGlvbkNvdW50KCkgPiAxKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IDQ1
ODEyNGNmNTJkODI0N2E3ZWNmOGU4OGIwOTU4NTlmYTgwMjUzOTcuLjhiNmRmZjgwYTM0NWZkZWY1
OWY0YjY2NTUxMmVjZjAyZDcyYmM0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTExMywxNyAr
MTEzLDE3IEBAIHByaXZhdGU6CiAgICAgVHJhbnNhY3Rpb25TZXQgbV90cmFuc2FjdGlvbnM7CiAK
ICAgICBjbGFzcyBQZW5kaW5nU2V0VmVyc2lvbkNhbGw7Ci0gICAgRGVxdWU8UmVmUHRyPFBlbmRp
bmdTZXRWZXJzaW9uQ2FsbD4gPiBtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHM7CisgICAgRGVxdWU8
T3duUHRyPFBlbmRpbmdTZXRWZXJzaW9uQ2FsbD4gPiBtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHM7
CiAKICAgICBjbGFzcyBQZW5kaW5nT3BlbkNhbGw7Ci0gICAgRGVxdWU8UmVmUHRyPFBlbmRpbmdP
cGVuQ2FsbD4gPiBtX3BlbmRpbmdPcGVuQ2FsbHM7CisgICAgRGVxdWU8T3duUHRyPFBlbmRpbmdP
cGVuQ2FsbD4gPiBtX3BlbmRpbmdPcGVuQ2FsbHM7CiAKICAgICBjbGFzcyBQZW5kaW5nT3Blbldp
dGhWZXJzaW9uQ2FsbDsKLSAgICBEZXF1ZTxSZWZQdHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNh
bGw+ID4gbV9wZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHM7Ci0gICAgRGVxdWU8UmVmUHRyPFBl
bmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsPiA+IG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZl
cnNpb25DYWxsczsKKyAgICBEZXF1ZTxPd25QdHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+
ID4gbV9wZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHM7CisgICAgT3duUHRyPFBlbmRpbmdPcGVu
V2l0aFZlcnNpb25DYWxsPiBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uOwogCiAg
ICAgY2xhc3MgUGVuZGluZ0RlbGV0ZUNhbGw7Ci0gICAgRGVxdWU8UmVmUHRyPFBlbmRpbmdEZWxl
dGVDYWxsPiA+IG1fcGVuZGluZ0RlbGV0ZUNhbGxzOworICAgIERlcXVlPE93blB0cjxQZW5kaW5n
RGVsZXRlQ2FsbD4gPiBtX3BlbmRpbmdEZWxldGVDYWxsczsKIAogICAgIHR5cGVkZWYgTGlzdEhh
c2hTZXQ8UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiA+IERhdGFiYXNlQ2FsbGJhY2tzU2V0
OwogICAgIERhdGFiYXNlQ2FsbGJhY2tzU2V0IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>