<?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>72645</bug_id>
          
          <creation_ts>2011-11-17 13:12:07 -0800</creation_ts>
          <short_desc>Move JS recursion counter from V8Proxy to V8BindingPerIsolateData</short_desc>
          <delta_ts>2011-11-17 21:41:55 -0800</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>
          
          <blocked>72063</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>abarth</cc>
    
    <cc>dslomov</cc>
    
    <cc>japhet</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>505133</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-17 13:12:07 -0800</bug_when>
    <thetext>Move JS recursion counter from V8Proxy to V8BindingPerIsolateData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505139</commentid>
    <comment_count>1</comment_count>
      <attachid>115664</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-17 13:15:47 -0800</bug_when>
    <thetext>Created attachment 115664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505147</commentid>
    <comment_count>2</comment_count>
      <attachid>115664</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 13:28:29 -0800</bug_when>
    <thetext>Comment on attachment 115664
Patch

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

&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:468
&gt; -        m_recursion++;
&gt; +        incrementRecursionLevel();
&gt;          result = V8Proxy::instrumentedCallFunction(m_frame-&gt;page(), function, receiver, argc, args);
&gt; -        m_recursion--;
&gt; +        decrementRecursionLevel();

Can we use a RAII to twiddle this state to avoid bugs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505154</commentid>
    <comment_count>3</comment_count>
      <attachid>115664</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-17 13:35:09 -0800</bug_when>
    <thetext>Comment on attachment 115664
Patch

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

&gt;&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:468
&gt;&gt; +        decrementRecursionLevel();
&gt; 
&gt; Can we use a RAII to twiddle this state to avoid bugs?

My only reason for not using RAII was because I couldn&apos;t think of a good name for the RAII class that wouldn&apos;t immediately confused with v8::HandleScope or v8::Context::Scope (those two are confusing enough for me already). Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505161</commentid>
    <comment_count>4</comment_count>
      <attachid>115664</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 13:38:42 -0800</bug_when>
    <thetext>Comment on attachment 115664
Patch

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

&gt;&gt;&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:468
&gt;&gt;&gt; -        m_recursion++;
&gt;&gt;&gt; +        incrementRecursionLevel();
&gt;&gt;&gt;          result = V8Proxy::instrumentedCallFunction(m_frame-&gt;page(), function, receiver, argc, args);
&gt;&gt;&gt; -        m_recursion--;
&gt;&gt;&gt; +        decrementRecursionLevel();
&gt;&gt; 
&gt;&gt; Can we use a RAII to twiddle this state to avoid bugs?
&gt; 
&gt; My only reason for not using RAII was because I couldn&apos;t think of a good name for the RAII class that wouldn&apos;t immediately confused with v8::HandleScope or v8::Context::Scope (those two are confusing enough for me already). Any suggestions?

V8RecursionScope ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505190</commentid>
    <comment_count>5</comment_count>
      <attachid>115672</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-17 14:05:16 -0800</bug_when>
    <thetext>Created attachment 115672
Use RAII</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505201</commentid>
    <comment_count>6</comment_count>
      <attachid>115676</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-11-17 14:11:51 -0800</bug_when>
    <thetext>Created attachment 115676
Avoid test DB name collision</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505203</commentid>
    <comment_count>7</comment_count>
      <attachid>115676</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 14:12:33 -0800</bug_when>
    <thetext>Comment on attachment 115676
Avoid test DB name collision

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505479</commentid>
    <comment_count>8</comment_count>
      <attachid>115676</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 21:41:50 -0800</bug_when>
    <thetext>Comment on attachment 115676
Avoid test DB name collision

Clearing flags on attachment: 115676

Committed r100721: &lt;http://trac.webkit.org/changeset/100721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505480</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 21:41:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115664</attachid>
            <date>2011-11-17 13:15:47 -0800</date>
            <delta_ts>2011-11-17 14:05:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72645-20111117131546.patch</filename>
            <type>text/plain</type>
            <size>11894</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM4ZmEyYThmY2NlYmVk
ZDFiMjM4NTA2MTFjYWM5MDA5ZjM2YjY2ZS4uZDFiMDE5Y2EyYjA4YjRkZWU3ODQ3NDc2NWQwMmRm
OWY5MjdjYWEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDExLTExLTE3ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgSlMgcmVjdXJzaW9u
IGNvdW50ZXIgZnJvbSBWOFByb3h5IHRvIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggdGhlIEpTIHJlY3Vy
c2lvbiBsZXZlbCBzdG9yZWQgYXMgYSBtZW1iZXIgb2YgVjhQcm94eSwgaXQncyB0aWVkCisgICAg
ICAgIHRvIGEgZnJhbWUuIEJ1dCB0aGlzIGlzIGluY29ycmVjdCwgYXMgdGhlcmUncyBubyByZWFz
b24gdGhhdCBhIEpTIGNhbGwKKyAgICAgICAgc3RhY2sgbmVlZCBiZSByZXN0cmljdGVkIHRvIGEg
c2luZ2xlIGZyYW1lIChzZWUgbXkgbmV3IHRlc3QgY2FzZSBmb3IKKyAgICAgICAgYW4gZXhhbXBs
ZSBvZiBjb2RlIGdvaW5nIGFjcm9zcyBmcmFtZXMpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGdl
dCB0aGUgY29ycmVjdCBhY2NvdW50aW5nIG9mIEpTIHJlY3Vyc2lvbiBsZXZlbCwgcGVyLUlzb2xh
dGUKKyAgICAgICAgaXMgdGhlIHJpZ2h0IGdyYW51bGFyaXR5IChwZXIgZHNsb21vdiksIHdoaWNo
IGlzIHdoYXQgdGhpcyBwYXRjaCBhY2NvbXBsaXNoZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJh
bWUuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0
YSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6cmVjdXJzaW9uTGV2ZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmluY3JlbWVudFJlY3Vyc2lvbkxldmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpkZWNyZW1lbnRSZWN1
cnNpb25MZXZlbCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjppbmNyZW1lbnRSZWN1cnNpb25MZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpk
ZWNyZW1lbnRSZWN1cnNpb25MZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpyZWN1cnNpb25MZXZl
bCk6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpWOFByb3h5KToKKyAgICAgICAgKFdlYkNv
cmU6OlY4UHJveHk6OnJ1blNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpjYWxs
RnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6VjhQcm94eTo6ZGlkTGVhdmVTY3JpcHRDb250
ZXh0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisKIDIwMTEtMTEtMTYgIFJv
YmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBidWlsZCBvbiBX
aW5kb3dzIGFuZCBNYWMgYWZ0ZXIgcjEwMDQ3MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
QmluZGluZy5jcHAKaW5kZXggZjAyOWE1ZmI5OTJlYzU4Yjk4ZjY4ZjJhYzRlN2VmZWYzMjczMWNl
NS4uMjAzY2RhMDIzMTBmMTkxZWJiYjRiZjFhYjkwMjBmZDhiMThkYzYxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCkBAIC01Miw2ICs1Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YSh2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICA6IG1fZG9tRGF0YVN0b3JlKDApCiAgICAg
LCBtX2NvbnN0cnVjdG9yTW9kZShDb25zdHJ1Y3Rvck1vZGU6OkNyZWF0ZU5ld09iamVjdCkKKyAg
ICAsIG1fcmVjdXJzaW9uTGV2ZWwoMCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuaAppbmRleCA2YzFhYzE5ZjVhMjBiYjFiODg5M2Y0ZGY3YTYzMmZmNDIxNmRhODdl
Li5mOTIwMDUzOGE1ZDUwNDA4ZWRiZjhlZGJkMzAwODAwOWIxMDAyOWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMTQzLDYgKzE0MywxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIC8vIERPTURhdGFTdG9yZSBpcyBvd25lZCBvdXRzaWRlIFY4Qmlu
ZGluZ1Blcklzb2xhdGVEYXRhLgogICAgICAgICB2b2lkIHNldERPTURhdGFTdG9yZShET01EYXRh
U3RvcmUqIHN0b3JlKSB7IG1fZG9tRGF0YVN0b3JlID0gc3RvcmU7IH0KIAorICAgICAgICBpbnQg
cmVjdXJzaW9uTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX3JlY3Vyc2lvbkxldmVsOyB9CisgICAg
ICAgIHZvaWQgaW5jcmVtZW50UmVjdXJzaW9uTGV2ZWwoKSB7ICsrbV9yZWN1cnNpb25MZXZlbDsg
fQorICAgICAgICB2b2lkIGRlY3JlbWVudFJlY3Vyc2lvbkxldmVsKCkgeyAtLW1fcmVjdXJzaW9u
TGV2ZWw7IH0KKwogI2lmbmRlZiBOREVCVUcKICAgICAgICAgR2xvYmFsSGFuZGxlTWFwJiBnbG9i
YWxIYW5kbGVNYXAoKSB7IHJldHVybiBtX2dsb2JhbEhhbmRsZU1hcDsgfQogI2VuZGlmCkBAIC0x
NjYsNiArMTcwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fY29uc3Ry
dWN0b3JNb2RlOwogICAgICAgICBmcmllbmQgY2xhc3MgQ29uc3RydWN0b3JNb2RlOwogCisgICAg
ICAgIGludCBtX3JlY3Vyc2lvbkxldmVsOworCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBHbG9i
YWxIYW5kbGVNYXAgbV9nbG9iYWxIYW5kbGVNYXA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhQcm94eS5jcHAKaW5kZXggOTA3MjUyMDU0MzAxMTIwMGYwYjNiMWZhMzQ1NTMzNGY4
MzVjNjE0Ny4uNzBjNWE0ODQyYTU0MjI3MDAyMDAwNjk5NzE4MjI0ZDY2NGU3NTJmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTE3NSw2ICsxNzUsMjEgQEAgc3Rh
dGljIHZvaWQgaGFuZGxlRmF0YWxFcnJvckluVjgoKQogICAgIENSQVNIKCk7CiB9CiAKK3N0YXRp
YyB2b2lkIGluY3JlbWVudFJlY3Vyc2lvbkxldmVsKCkKK3sKKyAgICBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YTo6Y3VycmVudCgpLT5pbmNyZW1lbnRSZWN1cnNpb25MZXZlbCgpOworfQorCitzdGF0
aWMgdm9pZCBkZWNyZW1lbnRSZWN1cnNpb25MZXZlbCgpCit7CisgICAgVjhCaW5kaW5nUGVySXNv
bGF0ZURhdGE6OmN1cnJlbnQoKS0+ZGVjcmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsKK30KKworc3Rh
dGljIGludCByZWN1cnNpb25MZXZlbCgpCit7CisgICAgcmV0dXJuIFY4QmluZGluZ1Blcklzb2xh
dGVEYXRhOjpjdXJyZW50KCktPnJlY3Vyc2lvbkxldmVsKCk7Cit9CisKIHN0YXRpYyB2ODo6TG9j
YWw8djg6OlZhbHVlPiBoYW5kbGVNYXhSZWN1cnNpb25EZXB0aEV4Y2VlZGVkKCkKIHsKICAgICB0
aHJvd0Vycm9yKCJNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4iLCBWOFByb3h5OjpS
YW5nZUVycm9yKTsKQEAgLTE4NSw3ICsyMDAsNiBAQCBWOFByb3h5OjpWOFByb3h5KEZyYW1lKiBm
cmFtZSkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX3dpbmRvd1NoZWxsKFY4RE9NV2lu
ZG93U2hlbGw6OmNyZWF0ZShmcmFtZSkpCiAgICAgLCBtX2lubGluZUNvZGUoZmFsc2UpCi0gICAg
LCBtX3JlY3Vyc2lvbigwKQogewogfQogCkBAIC0zOTAsNyArNDA0LDcgQEAgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gVjhQcm94eTo6cnVuU2NyaXB0KHY4OjpIYW5kbGU8djg6OlNjcmlwdD4gc2NyaXB0
LCBib29sIGlzSW4KICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CiAK
ICAgICBWOEdDQ29udHJvbGxlcjo6Y2hlY2tNZW1vcnlVc2FnZSgpOwotICAgIGlmIChtX3JlY3Vy
c2lvbiA+PSBrTWF4UmVjdXJzaW9uRGVwdGgpCisgICAgaWYgKHJlY3Vyc2lvbkxldmVsKCkgPj0g
a01heFJlY3Vyc2lvbkRlcHRoKQogICAgICAgICByZXR1cm4gaGFuZGxlTWF4UmVjdXJzaW9uRGVw
dGhFeGNlZWRlZCgpOwogCiAgICAgaWYgKGhhbmRsZU91dE9mTWVtb3J5KCkpCkBAIC00MDksMTIg
KzQyMywxMSBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpydW5TY3JpcHQodjg6Okhh
bmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQsIGJvb2wgaXNJbgogICAgIHY4OjpUcnlDYXRjaCB0cnlD
YXRjaDsKICAgICB0cnlDYXRjaC5TZXRWZXJib3NlKHRydWUpOwogICAgIHsKLSAgICAgICAgbV9y
ZWN1cnNpb24rKzsKKyAgICAgICAgaW5jcmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsKICAgICAgICAg
cmVzdWx0ID0gc2NyaXB0LT5SdW4oKTsKLSAgICAgICAgbV9yZWN1cnNpb24tLTsKKyAgICAgICAg
ZGVjcmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsKICAgICB9CiAKLSAgICAvLyBSZWxlYXNlIHRoZSBz
dG9yYWdlIG11dGV4IGlmIGFwcGxpY2FibGUuCiAgICAgZGlkTGVhdmVTY3JpcHRDb250ZXh0KCk7
CiAKICAgICBpZiAoaGFuZGxlT3V0T2ZNZW1vcnkoKSkKQEAgLTQ0Miw3ICs0NTUsNyBAQCB2ODo6
TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpjYWxsRnVuY3Rpb24odjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb24+IGZ1bmN0aW9uLCB2OAogewogICAgIFY4R0NDb250cm9sbGVyOjpjaGVja01lbW9yeVVz
YWdlKCk7CiAKLSAgICBpZiAobV9yZWN1cnNpb24gPj0ga01heFJlY3Vyc2lvbkRlcHRoKQorICAg
IGlmIChyZWN1cnNpb25MZXZlbCgpID49IGtNYXhSZWN1cnNpb25EZXB0aCkKICAgICAgICAgcmV0
dXJuIGhhbmRsZU1heFJlY3Vyc2lvbkRlcHRoRXhjZWVkZWQoKTsKIAogICAgIC8vIEtlZXAgRnJh
bWUgKGFuZCB0aGVyZWZvcmUgU2NyaXB0Q29udHJvbGxlciBhbmQgVjhQcm94eSkgYWxpdmUuCkBA
IC00NTAsMTIgKzQ2MywxMSBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5OjpjYWxsRnVu
Y3Rpb24odjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uLCB2OAogCiAgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gcmVzdWx0OwogICAgIHsKLSAgICAgICAgbV9yZWN1cnNpb24rKzsKKyAg
ICAgICAgaW5jcmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsKICAgICAgICAgcmVzdWx0ID0gVjhQcm94
eTo6aW5zdHJ1bWVudGVkQ2FsbEZ1bmN0aW9uKG1fZnJhbWUtPnBhZ2UoKSwgZnVuY3Rpb24sIHJl
Y2VpdmVyLCBhcmdjLCBhcmdzKTsKLSAgICAgICAgbV9yZWN1cnNpb24tLTsKKyAgICAgICAgZGVj
cmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsKICAgICB9CiAKLSAgICAvLyBSZWxlYXNlIHRoZSBzdG9y
YWdlIG11dGV4IGlmIGFwcGxpY2FibGUuCiAgICAgZGlkTGVhdmVTY3JpcHRDb250ZXh0KCk7CiAK
ICAgICBpZiAodjg6OlY4OjpJc0RlYWQoKSkKQEAgLTU3Niw3ICs1ODgsNyBAQCBWOFByb3h5KiBW
OFByb3h5OjpyZXRyaWV2ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogCiB2b2lk
IFY4UHJveHk6OmRpZExlYXZlU2NyaXB0Q29udGV4dCgpCiB7Ci0gICAgaWYgKG1fcmVjdXJzaW9u
KQorICAgIGlmIChyZWN1cnNpb25MZXZlbCgpKQogICAgICAgICByZXR1cm47CiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAppbmRl
eCA2MDgyNDI2NGZiYmU0OTA4M2M5NmRmMzQ2NzdjNDU2NjNmYTAzY2MzLi5hMTMyMmE4ZTQ1NzE1
MzMwZjY1Zjc3ZWNmMGExNzc3N2IyN2Q1YzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5oCkBAIC0yNzEsNyArMjcxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBz
dGF0aWMgdm9pZCByZXBvcnRVbnNhZmVBY2Nlc3NUbyhGcmFtZSogdGFyZ2V0KTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIHZvaWQgZGlkTGVhdmVTY3JpcHRDb250ZXh0KCk7CisgICAgICAgIHN0
YXRpYyB2b2lkIGRpZExlYXZlU2NyaXB0Q29udGV4dCgpOwogCiAgICAgICAgIHZvaWQgcmVzZXRJ
c29sYXRlZFdvcmxkcygpOwogCkBAIC0zMDMsMTEgKzMwMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgLy8gT25seSB2YWxpZCBkdXJpbmcgZXhlY3V0aW9uLgogICAgICAgICBib29s
IG1faW5saW5lQ29kZTsKIAotICAgICAgICAvLyBUcmFjayB0aGUgcmVjdXJzaW9uIGRlcHRoIHRv
IGJlIGFibGUgdG8gYXZvaWQgdG9vIGRlZXAgcmVjdXJzaW9uLiBUaGUgVjgKLSAgICAgICAgLy8g
ZW5naW5lIGFsbG93cyBtdWNoIG1vcmUgcmVjdXJzaW9uIHRoYW4gS0pTIGRvZXMgc28gd2UgbmVl
ZCB0byBndWFyZCBhZ2FpbnN0Ci0gICAgICAgIC8vIGV4Y2Vzc2l2ZSByZWN1cnNpb24gaW4gdGhl
IGJpbmRpbmcgbGF5ZXIuCi0gICAgICAgIGludCBtX3JlY3Vyc2lvbjsKLQogICAgICAgICAvLyBB
bGwgb2YgdGhlIGV4dGVuc2lvbnMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjb250ZXh0LgogICAgICAg
ICBzdGF0aWMgVjhFeHRlbnNpb25zIG1fZXh0ZW5zaW9uczsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMzYjRkZWM0NTli
NzA4ZTY1YWU0NmViMjQyOTQwYjIxM2ZkYzgwMDYuLmE3NDEwZTA0NThhZjRmMzM3MDg1YTAyZTZh
ZDAwMGUzOWMyZTliYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMS0xNyAgQWRhbSBL
bGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIEpTIHJlY3Vyc2lvbiBj
b3VudGVyIGZyb20gVjhQcm94eSB0byBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byBleGVy
Y2lzZSBuZXcgdGltaW5nIG9mIGNhbGwgdG8gVjhQcm94eTo6ZGlkTGVhdmVTY3JpcHRDb250ZXh0
KCkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRo
LWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLWNy
b3NzLWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDExLTExLTE2ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5za2lwIHRoZXNlIHRlc3RzIG5vdyB0aGF0IHRoZXkg
c2hvdWxkIHBhc3MgYWdhaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9y
dC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmE4MDE2MDIzNjY1YjIxYTQxYmJiNjk2ODY2ZjgxYzA4Mjc2N2JkYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgt
anMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitU
ZXN0IHRoYXQgcGVuZGluZyB0cmFuc2FjdGlvbnMgYXJlIG5vdCBhYm9ydGVkIGR1cmluZyByZWN1
cnNpdmUgSlMgY2FsbHMgdW50aWwgYWxsIEpTIChpbiBhbGwgZnJhbWVzKSBpcyBmaW5pc2hlZC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgJ3dlYmtpdEluZGV4ZWREQicg
aW4gd2luZG93IGlzIHRydWUKK1BBU1Mgd2Via2l0SW5kZXhlZERCID09IG51bGwgaXMgZmFsc2UK
K3dlYmtpdEluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lv
bicpCitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK2RiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9u
JykKK3BlbmRpbmdUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnb2JqZWN0U3RvcmUnXSwg
d2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK1N0YXJ0IHJlLWVudHJhbnQgSlMKK3Ry
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oWydvYmplY3RTdG9yZSddLCB3ZWJraXRJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQorRW5kIHJlLWVudHJhbnQgSlMKK3N0b3JlID0gcGVuZGluZ1Ry
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdvYmplY3RTdG9yZScpCitQQVNTIHN0b3JlICE9PSB1bmRl
ZmluZWQgaXMgdHJ1ZQorUGVuZGluZyB0cmFuc2FjdGlvbiBhYm9ydGVkCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNp
b24tY3Jvc3MtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWRiMDEwOWE1M2FiNTYyYTc5YTU5N2UwZmQxNzlhMjk3M2YwNWIwYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdp
dGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8aWZyYW1lPgorICAgIDxib2R5PgorICAgIDwvYm9keT4KKzwvaWZy
YW1lPgorPHNjcmlwdD4KKwordmFyIHRyYW5zYWN0aW9uOwordmFyIHN0b3JlOwordmFyIGRiOwor
dmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0uY29u
dGVudERvY3VtZW50LmJvZHk7CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgcGVuZGluZyB0cmFu
c2FjdGlvbnMgYXJlIG5vdCBhYm9ydGVkIGR1cmluZyByZWN1cnNpdmUgSlMgY2FsbHMgdW50aWwg
YWxsIEpTIChpbiBhbGwgZnJhbWVzKSBpcyBmaW5pc2hlZC4iKTsKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworCitmdW5jdGlvbiBzZXR1cCgpIHsKKyAgICBzaG91bGRCZVRydWUoIid3ZWJraXRJbmRleGVk
REInIGluIHdpbmRvdyIpOworICAgIHNob3VsZEJlRmFsc2UoIndlYmtpdEluZGV4ZWREQiA9PSBu
dWxsIik7CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygid2Via2l0SW5kZXhlZERCLm9wZW4o
J3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uJykiKTsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IHNldFZlcnNpb247CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb24oKSB7CisgICAgZGIgPSBldmFs
QW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOworICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gY2xpY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Cit9CisKK2Z1bmN0aW9uIGNsaWNrKCkgeworICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ29iamVjdFN0b3JlJywgbnVsbCk7CisgICAgYm9keS5vbmNsaWNrID0gdGVzdDsKKyAg
ICB2YXIgcGVuZGluZ1RyYW5zYWN0aW9uID0gZXZhbEFuZExvZygicGVuZGluZ1RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oWydvYmplY3RTdG9yZSddLCB3ZWJraXRJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKSIpOworICAgIHBlbmRpbmdUcmFuc2FjdGlvbi5vbnN1Y2Nlc3MgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICBwZW5kaW5nVHJhbnNhY3Rpb24ub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHBlbmRpbmdUcmFuc2FjdGlvbi5vbmFib3J0ID0gYWJv
cnRDYWxsYmFjazsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VF
dmVudCIpOworICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50KCJjbGljayIsIHRydWUsIHRydWUsIGRv
Y3VtZW50LmRlZmF1bHRWaWV3LCAwLCAwLCAwLCAwLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgMCwgbnVsbCk7CisgICAgYm9keS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB2YXIg
c3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IHBlbmRpbmdUcmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnb2JqZWN0U3RvcmUnKSIpOworICAgIHNob3VsZEJlVHJ1ZSgic3RvcmUgIT09IHVuZGVmaW5l
ZCIpOworICAgIGJvZHkub25jbGljayA9IHVuZGVmaW5lZDsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgZGVidWcoIlN0YXJ0IHJlLWVudHJhbnQgSlMiKTsKKyAgICB0cmFuc2FjdGlvbiA9
IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oWydvYmplY3RTdG9yZSdd
LCB3ZWJraXRJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIGRlYnVnKCJFbmQgcmUt
ZW50cmFudCBKUyIpOworfQorCisKK2Z1bmN0aW9uIGFib3J0Q2FsbGJhY2soKQoreworICAgIGRl
YnVnKCJQZW5kaW5nIHRyYW5zYWN0aW9uIGFib3J0ZWQiKTsKKyAgICBkb25lKCk7Cit9CisKK3Nl
dHVwKCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115672</attachid>
            <date>2011-11-17 14:05:16 -0800</date>
            <delta_ts>2011-11-17 14:11:48 -0800</delta_ts>
            <desc>Use RAII</desc>
            <filename>bug-72645-20111117140515.patch</filename>
            <type>text/plain</type>
            <size>12279</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM4ZmEyYThmY2NlYmVk
ZDFiMjM4NTA2MTFjYWM5MDA5ZjM2YjY2ZS4uOTAwYjY1NGEyMDBkNWExODY2MTRmNzkwNzBhZWFl
YmMwNmY3NGYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDExLTExLTE3ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgSlMgcmVjdXJzaW9u
IGNvdW50ZXIgZnJvbSBWOFByb3h5IHRvIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggdGhlIEpTIHJlY3Vy
c2lvbiBsZXZlbCBzdG9yZWQgYXMgYSBtZW1iZXIgb2YgVjhQcm94eSwgaXQncyB0aWVkCisgICAg
ICAgIHRvIGEgZnJhbWUuIEJ1dCB0aGlzIGlzIGluY29ycmVjdCwgYXMgdGhlcmUncyBubyByZWFz
b24gdGhhdCBhIEpTIGNhbGwKKyAgICAgICAgc3RhY2sgbmVlZCBiZSByZXN0cmljdGVkIHRvIGEg
c2luZ2xlIGZyYW1lIChzZWUgbXkgbmV3IHRlc3QgY2FzZSBmb3IKKyAgICAgICAgYW4gZXhhbXBs
ZSBvZiBjb2RlIGdvaW5nIGFjcm9zcyBmcmFtZXMpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGdl
dCB0aGUgY29ycmVjdCBhY2NvdW50aW5nIG9mIEpTIHJlY3Vyc2lvbiBsZXZlbCwgcGVyLUlzb2xh
dGUKKyAgICAgICAgaXMgdGhlIHJpZ2h0IGdyYW51bGFyaXR5IChwZXIgZHNsb21vdiksIHdoaWNo
IGlzIHdoYXQgdGhpcyBwYXRjaCBhY2NvbXBsaXNoZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJh
bWUuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0
YSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6cmVjdXJzaW9uTGV2ZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmluY3JlbWVudFJlY3Vyc2lvbkxldmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpkZWNyZW1lbnRSZWN1
cnNpb25MZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpWOFJlY3Vyc2lvblNjb3BlOjpWOFJlY3Vy
c2lvblNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UmVjdXJzaW9uU2NvcGU6On5WOFJlY3Vy
c2lvblNjb3BlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmluY3JlbWVudFJlY3Vyc2lvbkxldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRl
Y3JlbWVudFJlY3Vyc2lvbkxldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnJlY3Vyc2lvbkxldmVs
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OlY4UHJveHkpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhQcm94eTo6cnVuU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmNhbGxG
dW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpkaWRMZWF2ZVNjcmlwdENvbnRl
eHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuaDoKKwogMjAxMS0xMS0xNiAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGJ1aWxkIG9uIFdp
bmRvd3MgYW5kIE1hYyBhZnRlciByMTAwNDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmNwcAppbmRleCBmMDI5YTVmYjk5MmVjNThiOThmNjhmMmFjNGU3ZWZlZjMyNzMxY2U1
Li4yMDNjZGEwMjMxMGYxOTFlYmJiNGJmMWFiOTAyMGZkOGIxOGRjNjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OlY4QmluZGluZ1Blcklzb2xhdGVE
YXRhKHY4OjpJc29sYXRlKiBpc29sYXRlKQogICAgIDogbV9kb21EYXRhU3RvcmUoMCkKICAgICAs
IG1fY29uc3RydWN0b3JNb2RlKENvbnN0cnVjdG9yTW9kZTo6Q3JlYXRlTmV3T2JqZWN0KQorICAg
ICwgbV9yZWN1cnNpb25MZXZlbCgwKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
QmluZGluZy5oCmluZGV4IDZjMWFjMTlmNWEyMGJiMWI4ODkzZjRkZjdhNjMyZmY0MjE2ZGE4N2Uu
LjVjODA0YzJhMGU4ZjRkMmY5NWYyNDgxOTRjODU3MmZlNTZkMTQ0ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiVjhE
T01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiVjhHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJWOEhp
ZGRlblByb3BlcnR5TmFtZS5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiAjaW5jbHVkZSA8djguaD4KQEAgLTE0Myw2
ICsxNDQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBET01EYXRhU3RvcmUg
aXMgb3duZWQgb3V0c2lkZSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YS4KICAgICAgICAgdm9pZCBz
ZXRET01EYXRhU3RvcmUoRE9NRGF0YVN0b3JlKiBzdG9yZSkgeyBtX2RvbURhdGFTdG9yZSA9IHN0
b3JlOyB9CiAKKyAgICAgICAgaW50IHJlY3Vyc2lvbkxldmVsKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWN1cnNpb25MZXZlbDsgfQorICAgICAgICB2b2lkIGluY3JlbWVudFJlY3Vyc2lvbkxldmVsKCkg
eyArK21fcmVjdXJzaW9uTGV2ZWw7IH0KKyAgICAgICAgdm9pZCBkZWNyZW1lbnRSZWN1cnNpb25M
ZXZlbCgpIHsgLS1tX3JlY3Vyc2lvbkxldmVsOyB9CisKICNpZm5kZWYgTkRFQlVHCiAgICAgICAg
IEdsb2JhbEhhbmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwKCkgeyByZXR1cm4gbV9nbG9iYWxIYW5k
bGVNYXA7IH0KICNlbmRpZgpAQCAtMTY2LDExICsxNzEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1fY29uc3RydWN0b3JNb2RlOwogICAgICAgICBmcmllbmQgY2xhc3Mg
Q29uc3RydWN0b3JNb2RlOwogCisgICAgICAgIGludCBtX3JlY3Vyc2lvbkxldmVsOworCiAjaWZu
ZGVmIE5ERUJVRwogICAgICAgICBHbG9iYWxIYW5kbGVNYXAgbV9nbG9iYWxIYW5kbGVNYXA7CiAj
ZW5kaWYKICAgICB9OwogCisgICAgY2xhc3MgVjhSZWN1cnNpb25TY29wZSB7CisgICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFY4UmVjdXJzaW9uU2NvcGUpOworICAgIHB1YmxpYzoKKyAgICAg
ICAgVjhSZWN1cnNpb25TY29wZSgpIHsgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
KS0+aW5jcmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsgfQorICAgICAgICB+VjhSZWN1cnNpb25TY29w
ZSgpIHsgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+ZGVjcmVtZW50UmVjdXJz
aW9uTGV2ZWwoKTsgfQorICAgIH07CisKICAgICBjbGFzcyBDb25zdHJ1Y3Rvck1vZGUgewogICAg
IHB1YmxpYzoKICAgICAgICAgZW51bSBNb2RlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5jcHAKaW5kZXggOTA3MjUyMDU0MzAxMTIwMGYwYjNiMWZhMzQ1NTMzNGY4MzVjNjE0Ny4u
OGZmZDFjMWJmYzg0OWM2M2VjYTRjZjM4NzI5NDMzZjQzYTY1YmIxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTE3NSw2ICsxNzUsMTEgQEAgc3RhdGljIHZvaWQg
aGFuZGxlRmF0YWxFcnJvckluVjgoKQogICAgIENSQVNIKCk7CiB9CiAKK3N0YXRpYyBpbnQgcmVj
dXJzaW9uTGV2ZWwoKQoreworICAgIHJldHVybiBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3Vy
cmVudCgpLT5yZWN1cnNpb25MZXZlbCgpOworfQorCiBzdGF0aWMgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gaGFuZGxlTWF4UmVjdXJzaW9uRGVwdGhFeGNlZWRlZCgpCiB7CiAgICAgdGhyb3dFcnJvcigi
TWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuIiwgVjhQcm94eTo6UmFuZ2VFcnJvcik7
CkBAIC0xODUsNyArMTkwLDYgQEAgVjhQcm94eTo6VjhQcm94eShGcmFtZSogZnJhbWUpCiAgICAg
OiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV93aW5kb3dTaGVsbChWOERPTVdpbmRvd1NoZWxsOjpj
cmVhdGUoZnJhbWUpKQogICAgICwgbV9pbmxpbmVDb2RlKGZhbHNlKQotICAgICwgbV9yZWN1cnNp
b24oMCkKIHsKIH0KIApAQCAtMzkwLDcgKzM5NCw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4
UHJveHk6OnJ1blNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCwgYm9vbCBpc0lu
CiAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwogCiAgICAgVjhHQ0Nv
bnRyb2xsZXI6OmNoZWNrTWVtb3J5VXNhZ2UoKTsKLSAgICBpZiAobV9yZWN1cnNpb24gPj0ga01h
eFJlY3Vyc2lvbkRlcHRoKQorICAgIGlmIChyZWN1cnNpb25MZXZlbCgpID49IGtNYXhSZWN1cnNp
b25EZXB0aCkKICAgICAgICAgcmV0dXJuIGhhbmRsZU1heFJlY3Vyc2lvbkRlcHRoRXhjZWVkZWQo
KTsKIAogICAgIGlmIChoYW5kbGVPdXRPZk1lbW9yeSgpKQpAQCAtNDA5LDEyICs0MTMsMTAgQEAg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6cnVuU2NyaXB0KHY4OjpIYW5kbGU8djg6OlNj
cmlwdD4gc2NyaXB0LCBib29sIGlzSW4KICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2g7CiAgICAg
dHJ5Q2F0Y2guU2V0VmVyYm9zZSh0cnVlKTsKICAgICB7Ci0gICAgICAgIG1fcmVjdXJzaW9uKys7
CisgICAgICAgIFY4UmVjdXJzaW9uU2NvcGUgcmVjdXJzaW9uU2NvcGU7CiAgICAgICAgIHJlc3Vs
dCA9IHNjcmlwdC0+UnVuKCk7Ci0gICAgICAgIG1fcmVjdXJzaW9uLS07CiAgICAgfQogCi0gICAg
Ly8gUmVsZWFzZSB0aGUgc3RvcmFnZSBtdXRleCBpZiBhcHBsaWNhYmxlLgogICAgIGRpZExlYXZl
U2NyaXB0Q29udGV4dCgpOwogCiAgICAgaWYgKGhhbmRsZU91dE9mTWVtb3J5KCkpCkBAIC00NDIs
NyArNDQ0LDcgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6Y2FsbEZ1bmN0aW9uKHY4
OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwgdjgKIHsKICAgICBWOEdDQ29udHJvbGxl
cjo6Y2hlY2tNZW1vcnlVc2FnZSgpOwogCi0gICAgaWYgKG1fcmVjdXJzaW9uID49IGtNYXhSZWN1
cnNpb25EZXB0aCkKKyAgICBpZiAocmVjdXJzaW9uTGV2ZWwoKSA+PSBrTWF4UmVjdXJzaW9uRGVw
dGgpCiAgICAgICAgIHJldHVybiBoYW5kbGVNYXhSZWN1cnNpb25EZXB0aEV4Y2VlZGVkKCk7CiAK
ICAgICAvLyBLZWVwIEZyYW1lIChhbmQgdGhlcmVmb3JlIFNjcmlwdENvbnRyb2xsZXIgYW5kIFY4
UHJveHkpIGFsaXZlLgpAQCAtNDUwLDEyICs0NTIsMTAgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
VjhQcm94eTo6Y2FsbEZ1bmN0aW9uKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwg
djgKIAogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJlc3VsdDsKICAgICB7Ci0gICAgICAgIG1f
cmVjdXJzaW9uKys7CisgICAgICAgIFY4UmVjdXJzaW9uU2NvcGUgcmVjdXJzaW9uU2NvcGU7CiAg
ICAgICAgIHJlc3VsdCA9IFY4UHJveHk6Omluc3RydW1lbnRlZENhbGxGdW5jdGlvbihtX2ZyYW1l
LT5wYWdlKCksIGZ1bmN0aW9uLCByZWNlaXZlciwgYXJnYywgYXJncyk7Ci0gICAgICAgIG1fcmVj
dXJzaW9uLS07CiAgICAgfQogCi0gICAgLy8gUmVsZWFzZSB0aGUgc3RvcmFnZSBtdXRleCBpZiBh
cHBsaWNhYmxlLgogICAgIGRpZExlYXZlU2NyaXB0Q29udGV4dCgpOwogCiAgICAgaWYgKHY4OjpW
ODo6SXNEZWFkKCkpCkBAIC01NzYsNyArNTc2LDcgQEAgVjhQcm94eSogVjhQcm94eTo6cmV0cmll
dmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIAogdm9pZCBWOFByb3h5OjpkaWRM
ZWF2ZVNjcmlwdENvbnRleHQoKQogewotICAgIGlmIChtX3JlY3Vyc2lvbikKKyAgICBpZiAocmVj
dXJzaW9uTGV2ZWwoKSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKaW5kZXggNjA4MjQyNjRmYmJl
NDkwODNjOTZkZjM0Njc3YzQ1NjYzZmEwM2NjMy4uYTEzMjJhOGU0NTcxNTMzMGY2NWY3N2VjZjBh
MTc3NzdiMjdkNWMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtMjcx
LDcgKzI3MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgcmVw
b3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUqIHRhcmdldCk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIGRpZExlYXZlU2NyaXB0Q29udGV4dCgpOworICAgICAgICBzdGF0aWMgdm9pZCBkaWRM
ZWF2ZVNjcmlwdENvbnRleHQoKTsKIAogICAgICAgICB2b2lkIHJlc2V0SXNvbGF0ZWRXb3JsZHMo
KTsKIApAQCAtMzAzLDExICszMDMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IE9ubHkgdmFsaWQgZHVyaW5nIGV4ZWN1dGlvbi4KICAgICAgICAgYm9vbCBtX2lubGluZUNvZGU7
CiAKLSAgICAgICAgLy8gVHJhY2sgdGhlIHJlY3Vyc2lvbiBkZXB0aCB0byBiZSBhYmxlIHRvIGF2
b2lkIHRvbyBkZWVwIHJlY3Vyc2lvbi4gVGhlIFY4Ci0gICAgICAgIC8vIGVuZ2luZSBhbGxvd3Mg
bXVjaCBtb3JlIHJlY3Vyc2lvbiB0aGFuIEtKUyBkb2VzIHNvIHdlIG5lZWQgdG8gZ3VhcmQgYWdh
aW5zdAotICAgICAgICAvLyBleGNlc3NpdmUgcmVjdXJzaW9uIGluIHRoZSBiaW5kaW5nIGxheWVy
LgotICAgICAgICBpbnQgbV9yZWN1cnNpb247Ci0KICAgICAgICAgLy8gQWxsIG9mIHRoZSBleHRl
bnNpb25zIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY29udGV4dC4KICAgICAgICAgc3RhdGljIFY4RXh0
ZW5zaW9ucyBtX2V4dGVuc2lvbnM7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzM2I0ZGVjNDU5YjcwOGU2NWFlNDZlYjI0
Mjk0MGIyMTNmZGM4MDA2Li5hNzQxMGUwNDU4YWY0ZjMzNzA4NWEwMmU2YWQwMDBlMzljMmU5YmM4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMTcgIEFkYW0gS2xlaW4gIDxhZGFta0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBKUyByZWN1cnNpb24gY291bnRlciBmcm9tIFY4
UHJveHkgdG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gZXhlcmNpc2UgbmV3IHRpbWlu
ZyBvZiBjYWxsIHRvIFY4UHJveHk6OmRpZExlYXZlU2NyaXB0Q29udGV4dCgpLgorCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24t
Y3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1s
OiBBZGRlZC4KKwogMjAxMS0xMS0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVuc2tpcCB0aGVzZSB0ZXN0cyBub3cgdGhhdCB0aGV5IHNob3VsZCBwYXNzIGFn
YWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1
cnNpb24tY3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhODAxNjAyMzY2NWIy
MWE0MWJiYjY5Njg2NmY4MWMwODI3NjdiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1j
cm9zcy1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGVzdCB0aGF0IHBlbmRp
bmcgdHJhbnNhY3Rpb25zIGFyZSBub3QgYWJvcnRlZCBkdXJpbmcgcmVjdXJzaXZlIEpTIGNhbGxz
IHVudGlsIGFsbCBKUyAoaW4gYWxsIGZyYW1lcykgaXMgZmluaXNoZWQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTICd3ZWJraXRJbmRleGVkREInIGluIHdpbmRvdyBpcyB0
cnVlCitQQVNTIHdlYmtpdEluZGV4ZWREQiA9PSBudWxsIGlzIGZhbHNlCit3ZWJraXRJbmRleGVk
REIub3BlbigndHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24nKQorZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0CitkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCitwZW5kaW5nVHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ29iamVjdFN0b3JlJ10sIHdlYmtpdElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpCitTdGFydCByZS1lbnRyYW50IEpTCit0cmFuc2FjdGlvbiA9IGRi
LnRyYW5zYWN0aW9uKFsnb2JqZWN0U3RvcmUnXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK0VuZCByZS1lbnRyYW50IEpTCitzdG9yZSA9IHBlbmRpbmdUcmFuc2FjdGlvbi5vYmpl
Y3RTdG9yZSgnb2JqZWN0U3RvcmUnKQorUEFTUyBzdG9yZSAhPT0gdW5kZWZpbmVkIGlzIHRydWUK
K1BlbmRpbmcgdHJhbnNhY3Rpb24gYWJvcnRlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13
aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkYjAxMDlhNTNh
YjU2MmE3OWE1OTdlMGZkMTc5YTI5NzNmMDViMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lv
bi1jcm9zcy1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPGlmcmFtZT4KKyAgICA8Ym9keT4KKyAgICA8L2JvZHk+Cis8L2lmcmFtZT4KKzxzY3JpcHQ+
CisKK3ZhciB0cmFuc2FjdGlvbjsKK3ZhciBzdG9yZTsKK3ZhciBkYjsKK3ZhciBib2R5ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdLmNvbnRlbnREb2N1bWVudC5i
b2R5OworCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHBlbmRpbmcgdHJhbnNhY3Rpb25zIGFyZSBu
b3QgYWJvcnRlZCBkdXJpbmcgcmVjdXJzaXZlIEpTIGNhbGxzIHVudGlsIGFsbCBKUyAoaW4gYWxs
IGZyYW1lcykgaXMgZmluaXNoZWQuIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24g
c2V0dXAoKSB7CisgICAgc2hvdWxkQmVUcnVlKCInd2Via2l0SW5kZXhlZERCJyBpbiB3aW5kb3ci
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJ3ZWJraXRJbmRleGVkREIgPT0gbnVsbCIpOworCisgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coIndlYmtpdEluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1h
Ym9ydC13aXRoLWpzLXJlY3Vyc2lvbicpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRW
ZXJzaW9uOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
fQorCitmdW5jdGlvbiBzZXRWZXJzaW9uKCkgeworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZl
cnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsaWNrOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5j
dGlvbiBjbGljaygpIHsKKyAgICBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvYmplY3RT
dG9yZScsIG51bGwpOworICAgIGJvZHkub25jbGljayA9IHRlc3Q7CisgICAgdmFyIHBlbmRpbmdU
cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInBlbmRpbmdUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKFsnb2JqZWN0U3RvcmUnXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsK
KyAgICBwZW5kaW5nVHJhbnNhY3Rpb24ub25zdWNjZXNzID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgcGVuZGluZ1RyYW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICBwZW5kaW5nVHJhbnNhY3Rpb24ub25hYm9ydCA9IGFib3J0Q2FsbGJhY2s7Cisg
ICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTsKKyAgICBl
dmVudC5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0
VmlldywgMCwgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwp
OworICAgIGJvZHkuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgdmFyIHN0b3JlID0gZXZhbEFu
ZExvZygic3RvcmUgPSBwZW5kaW5nVHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ29iamVjdFN0b3Jl
JykiKTsKKyAgICBzaG91bGRCZVRydWUoInN0b3JlICE9PSB1bmRlZmluZWQiKTsKKyAgICBib2R5
Lm9uY2xpY2sgPSB1bmRlZmluZWQ7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGRlYnVn
KCJTdGFydCByZS1lbnRyYW50IEpTIik7CisgICAgdHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnb2JqZWN0U3RvcmUnXSwgd2Via2l0SURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICBkZWJ1ZygiRW5kIHJlLWVudHJhbnQgSlMiKTsK
K30KKworCitmdW5jdGlvbiBhYm9ydENhbGxiYWNrKCkKK3sKKyAgICBkZWJ1ZygiUGVuZGluZyB0
cmFuc2FjdGlvbiBhYm9ydGVkIik7CisgICAgZG9uZSgpOworfQorCitzZXR1cCgpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115676</attachid>
            <date>2011-11-17 14:11:51 -0800</date>
            <delta_ts>2011-11-17 21:41:50 -0800</delta_ts>
            <desc>Avoid test DB name collision</desc>
            <filename>bug-72645-20111117141151.patch</filename>
            <type>text/plain</type>
            <size>12303</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM4ZmEyYThmY2NlYmVk
ZDFiMjM4NTA2MTFjYWM5MDA5ZjM2YjY2ZS4uOTAwYjY1NGEyMDBkNWExODY2MTRmNzkwNzBhZWFl
YmMwNmY3NGYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDExLTExLTE3ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgSlMgcmVjdXJzaW9u
IGNvdW50ZXIgZnJvbSBWOFByb3h5IHRvIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggdGhlIEpTIHJlY3Vy
c2lvbiBsZXZlbCBzdG9yZWQgYXMgYSBtZW1iZXIgb2YgVjhQcm94eSwgaXQncyB0aWVkCisgICAg
ICAgIHRvIGEgZnJhbWUuIEJ1dCB0aGlzIGlzIGluY29ycmVjdCwgYXMgdGhlcmUncyBubyByZWFz
b24gdGhhdCBhIEpTIGNhbGwKKyAgICAgICAgc3RhY2sgbmVlZCBiZSByZXN0cmljdGVkIHRvIGEg
c2luZ2xlIGZyYW1lIChzZWUgbXkgbmV3IHRlc3QgY2FzZSBmb3IKKyAgICAgICAgYW4gZXhhbXBs
ZSBvZiBjb2RlIGdvaW5nIGFjcm9zcyBmcmFtZXMpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGdl
dCB0aGUgY29ycmVjdCBhY2NvdW50aW5nIG9mIEpTIHJlY3Vyc2lvbiBsZXZlbCwgcGVyLUlzb2xh
dGUKKyAgICAgICAgaXMgdGhlIHJpZ2h0IGdyYW51bGFyaXR5IChwZXIgZHNsb21vdiksIHdoaWNo
IGlzIHdoYXQgdGhpcyBwYXRjaCBhY2NvbXBsaXNoZXMuCisKKyAgICAgICAgVGVzdDogc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJh
bWUuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0
YSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6cmVjdXJzaW9uTGV2ZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmluY3JlbWVudFJlY3Vyc2lvbkxldmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpkZWNyZW1lbnRSZWN1
cnNpb25MZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpWOFJlY3Vyc2lvblNjb3BlOjpWOFJlY3Vy
c2lvblNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UmVjdXJzaW9uU2NvcGU6On5WOFJlY3Vy
c2lvblNjb3BlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmluY3JlbWVudFJlY3Vyc2lvbkxldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRl
Y3JlbWVudFJlY3Vyc2lvbkxldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OnJlY3Vyc2lvbkxldmVs
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OlY4UHJveHkpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhQcm94eTo6cnVuU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmNhbGxG
dW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpkaWRMZWF2ZVNjcmlwdENvbnRl
eHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuaDoKKwogMjAxMS0xMS0xNiAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGJ1aWxkIG9uIFdp
bmRvd3MgYW5kIE1hYyBhZnRlciByMTAwNDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmNwcAppbmRleCBmMDI5YTVmYjk5MmVjNThiOThmNjhmMmFjNGU3ZWZlZjMyNzMxY2U1
Li4yMDNjZGEwMjMxMGYxOTFlYmJiNGJmMWFiOTAyMGZkOGIxOGRjNjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OlY4QmluZGluZ1Blcklzb2xhdGVE
YXRhKHY4OjpJc29sYXRlKiBpc29sYXRlKQogICAgIDogbV9kb21EYXRhU3RvcmUoMCkKICAgICAs
IG1fY29uc3RydWN0b3JNb2RlKENvbnN0cnVjdG9yTW9kZTo6Q3JlYXRlTmV3T2JqZWN0KQorICAg
ICwgbV9yZWN1cnNpb25MZXZlbCgwKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
QmluZGluZy5oCmluZGV4IDZjMWFjMTlmNWEyMGJiMWI4ODkzZjRkZjdhNjMyZmY0MjE2ZGE4N2Uu
LjVjODA0YzJhMGU4ZjRkMmY5NWYyNDgxOTRjODU3MmZlNTZkMTQ0ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiVjhE
T01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiVjhHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJWOEhp
ZGRlblByb3BlcnR5TmFtZS5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiAjaW5jbHVkZSA8djguaD4KQEAgLTE0Myw2
ICsxNDQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBET01EYXRhU3RvcmUg
aXMgb3duZWQgb3V0c2lkZSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YS4KICAgICAgICAgdm9pZCBz
ZXRET01EYXRhU3RvcmUoRE9NRGF0YVN0b3JlKiBzdG9yZSkgeyBtX2RvbURhdGFTdG9yZSA9IHN0
b3JlOyB9CiAKKyAgICAgICAgaW50IHJlY3Vyc2lvbkxldmVsKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWN1cnNpb25MZXZlbDsgfQorICAgICAgICB2b2lkIGluY3JlbWVudFJlY3Vyc2lvbkxldmVsKCkg
eyArK21fcmVjdXJzaW9uTGV2ZWw7IH0KKyAgICAgICAgdm9pZCBkZWNyZW1lbnRSZWN1cnNpb25M
ZXZlbCgpIHsgLS1tX3JlY3Vyc2lvbkxldmVsOyB9CisKICNpZm5kZWYgTkRFQlVHCiAgICAgICAg
IEdsb2JhbEhhbmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwKCkgeyByZXR1cm4gbV9nbG9iYWxIYW5k
bGVNYXA7IH0KICNlbmRpZgpAQCAtMTY2LDExICsxNzEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIG1fY29uc3RydWN0b3JNb2RlOwogICAgICAgICBmcmllbmQgY2xhc3Mg
Q29uc3RydWN0b3JNb2RlOwogCisgICAgICAgIGludCBtX3JlY3Vyc2lvbkxldmVsOworCiAjaWZu
ZGVmIE5ERUJVRwogICAgICAgICBHbG9iYWxIYW5kbGVNYXAgbV9nbG9iYWxIYW5kbGVNYXA7CiAj
ZW5kaWYKICAgICB9OwogCisgICAgY2xhc3MgVjhSZWN1cnNpb25TY29wZSB7CisgICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFY4UmVjdXJzaW9uU2NvcGUpOworICAgIHB1YmxpYzoKKyAgICAg
ICAgVjhSZWN1cnNpb25TY29wZSgpIHsgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQo
KS0+aW5jcmVtZW50UmVjdXJzaW9uTGV2ZWwoKTsgfQorICAgICAgICB+VjhSZWN1cnNpb25TY29w
ZSgpIHsgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+ZGVjcmVtZW50UmVjdXJz
aW9uTGV2ZWwoKTsgfQorICAgIH07CisKICAgICBjbGFzcyBDb25zdHJ1Y3Rvck1vZGUgewogICAg
IHB1YmxpYzoKICAgICAgICAgZW51bSBNb2RlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5jcHAKaW5kZXggOTA3MjUyMDU0MzAxMTIwMGYwYjNiMWZhMzQ1NTMzNGY4MzVjNjE0Ny4u
OGZmZDFjMWJmYzg0OWM2M2VjYTRjZjM4NzI5NDMzZjQzYTY1YmIxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTE3NSw2ICsxNzUsMTEgQEAgc3RhdGljIHZvaWQg
aGFuZGxlRmF0YWxFcnJvckluVjgoKQogICAgIENSQVNIKCk7CiB9CiAKK3N0YXRpYyBpbnQgcmVj
dXJzaW9uTGV2ZWwoKQoreworICAgIHJldHVybiBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3Vy
cmVudCgpLT5yZWN1cnNpb25MZXZlbCgpOworfQorCiBzdGF0aWMgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gaGFuZGxlTWF4UmVjdXJzaW9uRGVwdGhFeGNlZWRlZCgpCiB7CiAgICAgdGhyb3dFcnJvcigi
TWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQuIiwgVjhQcm94eTo6UmFuZ2VFcnJvcik7
CkBAIC0xODUsNyArMTkwLDYgQEAgVjhQcm94eTo6VjhQcm94eShGcmFtZSogZnJhbWUpCiAgICAg
OiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV93aW5kb3dTaGVsbChWOERPTVdpbmRvd1NoZWxsOjpj
cmVhdGUoZnJhbWUpKQogICAgICwgbV9pbmxpbmVDb2RlKGZhbHNlKQotICAgICwgbV9yZWN1cnNp
b24oMCkKIHsKIH0KIApAQCAtMzkwLDcgKzM5NCw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4
UHJveHk6OnJ1blNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCwgYm9vbCBpc0lu
CiAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwogCiAgICAgVjhHQ0Nv
bnRyb2xsZXI6OmNoZWNrTWVtb3J5VXNhZ2UoKTsKLSAgICBpZiAobV9yZWN1cnNpb24gPj0ga01h
eFJlY3Vyc2lvbkRlcHRoKQorICAgIGlmIChyZWN1cnNpb25MZXZlbCgpID49IGtNYXhSZWN1cnNp
b25EZXB0aCkKICAgICAgICAgcmV0dXJuIGhhbmRsZU1heFJlY3Vyc2lvbkRlcHRoRXhjZWVkZWQo
KTsKIAogICAgIGlmIChoYW5kbGVPdXRPZk1lbW9yeSgpKQpAQCAtNDA5LDEyICs0MTMsMTAgQEAg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6cnVuU2NyaXB0KHY4OjpIYW5kbGU8djg6OlNj
cmlwdD4gc2NyaXB0LCBib29sIGlzSW4KICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2g7CiAgICAg
dHJ5Q2F0Y2guU2V0VmVyYm9zZSh0cnVlKTsKICAgICB7Ci0gICAgICAgIG1fcmVjdXJzaW9uKys7
CisgICAgICAgIFY4UmVjdXJzaW9uU2NvcGUgcmVjdXJzaW9uU2NvcGU7CiAgICAgICAgIHJlc3Vs
dCA9IHNjcmlwdC0+UnVuKCk7Ci0gICAgICAgIG1fcmVjdXJzaW9uLS07CiAgICAgfQogCi0gICAg
Ly8gUmVsZWFzZSB0aGUgc3RvcmFnZSBtdXRleCBpZiBhcHBsaWNhYmxlLgogICAgIGRpZExlYXZl
U2NyaXB0Q29udGV4dCgpOwogCiAgICAgaWYgKGhhbmRsZU91dE9mTWVtb3J5KCkpCkBAIC00NDIs
NyArNDQ0LDcgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gVjhQcm94eTo6Y2FsbEZ1bmN0aW9uKHY4
OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwgdjgKIHsKICAgICBWOEdDQ29udHJvbGxl
cjo6Y2hlY2tNZW1vcnlVc2FnZSgpOwogCi0gICAgaWYgKG1fcmVjdXJzaW9uID49IGtNYXhSZWN1
cnNpb25EZXB0aCkKKyAgICBpZiAocmVjdXJzaW9uTGV2ZWwoKSA+PSBrTWF4UmVjdXJzaW9uRGVw
dGgpCiAgICAgICAgIHJldHVybiBoYW5kbGVNYXhSZWN1cnNpb25EZXB0aEV4Y2VlZGVkKCk7CiAK
ICAgICAvLyBLZWVwIEZyYW1lIChhbmQgdGhlcmVmb3JlIFNjcmlwdENvbnRyb2xsZXIgYW5kIFY4
UHJveHkpIGFsaXZlLgpAQCAtNDUwLDEyICs0NTIsMTAgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
VjhQcm94eTo6Y2FsbEZ1bmN0aW9uKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwg
djgKIAogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJlc3VsdDsKICAgICB7Ci0gICAgICAgIG1f
cmVjdXJzaW9uKys7CisgICAgICAgIFY4UmVjdXJzaW9uU2NvcGUgcmVjdXJzaW9uU2NvcGU7CiAg
ICAgICAgIHJlc3VsdCA9IFY4UHJveHk6Omluc3RydW1lbnRlZENhbGxGdW5jdGlvbihtX2ZyYW1l
LT5wYWdlKCksIGZ1bmN0aW9uLCByZWNlaXZlciwgYXJnYywgYXJncyk7Ci0gICAgICAgIG1fcmVj
dXJzaW9uLS07CiAgICAgfQogCi0gICAgLy8gUmVsZWFzZSB0aGUgc3RvcmFnZSBtdXRleCBpZiBh
cHBsaWNhYmxlLgogICAgIGRpZExlYXZlU2NyaXB0Q29udGV4dCgpOwogCiAgICAgaWYgKHY4OjpW
ODo6SXNEZWFkKCkpCkBAIC01NzYsNyArNTc2LDcgQEAgVjhQcm94eSogVjhQcm94eTo6cmV0cmll
dmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIAogdm9pZCBWOFByb3h5OjpkaWRM
ZWF2ZVNjcmlwdENvbnRleHQoKQogewotICAgIGlmIChtX3JlY3Vyc2lvbikKKyAgICBpZiAocmVj
dXJzaW9uTGV2ZWwoKSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKaW5kZXggNjA4MjQyNjRmYmJl
NDkwODNjOTZkZjM0Njc3YzQ1NjYzZmEwM2NjMy4uYTEzMjJhOGU0NTcxNTMzMGY2NWY3N2VjZjBh
MTc3NzdiMjdkNWMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtMjcx
LDcgKzI3MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgcmVw
b3J0VW5zYWZlQWNjZXNzVG8oRnJhbWUqIHRhcmdldCk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIGRpZExlYXZlU2NyaXB0Q29udGV4dCgpOworICAgICAgICBzdGF0aWMgdm9pZCBkaWRM
ZWF2ZVNjcmlwdENvbnRleHQoKTsKIAogICAgICAgICB2b2lkIHJlc2V0SXNvbGF0ZWRXb3JsZHMo
KTsKIApAQCAtMzAzLDExICszMDMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IE9ubHkgdmFsaWQgZHVyaW5nIGV4ZWN1dGlvbi4KICAgICAgICAgYm9vbCBtX2lubGluZUNvZGU7
CiAKLSAgICAgICAgLy8gVHJhY2sgdGhlIHJlY3Vyc2lvbiBkZXB0aCB0byBiZSBhYmxlIHRvIGF2
b2lkIHRvbyBkZWVwIHJlY3Vyc2lvbi4gVGhlIFY4Ci0gICAgICAgIC8vIGVuZ2luZSBhbGxvd3Mg
bXVjaCBtb3JlIHJlY3Vyc2lvbiB0aGFuIEtKUyBkb2VzIHNvIHdlIG5lZWQgdG8gZ3VhcmQgYWdh
aW5zdAotICAgICAgICAvLyBleGNlc3NpdmUgcmVjdXJzaW9uIGluIHRoZSBiaW5kaW5nIGxheWVy
LgotICAgICAgICBpbnQgbV9yZWN1cnNpb247Ci0KICAgICAgICAgLy8gQWxsIG9mIHRoZSBleHRl
bnNpb25zIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY29udGV4dC4KICAgICAgICAgc3RhdGljIFY4RXh0
ZW5zaW9ucyBtX2V4dGVuc2lvbnM7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzM2I0ZGVjNDU5YjcwOGU2NWFlNDZlYjI0
Mjk0MGIyMTNmZGM4MDA2Li5hNzQxMGUwNDU4YWY0ZjMzNzA4NWEwMmU2YWQwMDBlMzljMmU5YmM4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMTcgIEFkYW0gS2xlaW4gIDxhZGFta0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBKUyByZWN1cnNpb24gY291bnRlciBmcm9tIFY4
UHJveHkgdG8gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gZXhlcmNpc2UgbmV3IHRpbWlu
ZyBvZiBjYWxsIHRvIFY4UHJveHk6OmRpZExlYXZlU2NyaXB0Q29udGV4dCgpLgorCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24t
Y3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1s
OiBBZGRlZC4KKwogMjAxMS0xMS0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVuc2tpcCB0aGVzZSB0ZXN0cyBub3cgdGhhdCB0aGV5IHNob3VsZCBwYXNzIGFn
YWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1
cnNpb24tY3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YzQ0NTU4ZDkwM2Vm
OTEzMDFkMjFjNzZiMWM0ODBkMTdlZGVlODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1j
cm9zcy1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGVzdCB0aGF0IHBlbmRp
bmcgdHJhbnNhY3Rpb25zIGFyZSBub3QgYWJvcnRlZCBkdXJpbmcgcmVjdXJzaXZlIEpTIGNhbGxz
IHVudGlsIGFsbCBKUyAoaW4gYWxsIGZyYW1lcykgaXMgZmluaXNoZWQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTICd3ZWJraXRJbmRleGVkREInIGluIHdpbmRvdyBpcyB0
cnVlCitQQVNTIHdlYmtpdEluZGV4ZWREQiA9PSBudWxsIGlzIGZhbHNlCit3ZWJraXRJbmRleGVk
REIub3BlbigndHJhbnNhY3Rpb24tYWJvcnQtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUn
KQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicp
CitwZW5kaW5nVHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ29iamVjdFN0b3JlJ10sIHdl
YmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitTdGFydCByZS1lbnRyYW50IEpTCit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnb2JqZWN0U3RvcmUnXSwgd2Via2l0SURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK0VuZCByZS1lbnRyYW50IEpTCitzdG9yZSA9IHBlbmRpbmdUcmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnb2JqZWN0U3RvcmUnKQorUEFTUyBzdG9yZSAhPT0gdW5kZWZp
bmVkIGlzIHRydWUKK1BlbmRpbmcgdHJhbnNhY3Rpb24gYWJvcnRlZAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXdpdGgtanMtcmVjdXJzaW9u
LWNyb3NzLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIyNzg1NjVjNGIxMmYyM2UxMWY4NTQ5ZTBjMGE5NmVjYzgwOTVhOGYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC13aXRo
LWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGlmcmFtZT4KKyAgICA8Ym9keT4KKyAgICA8L2JvZHk+Cis8L2lmcmFt
ZT4KKzxzY3JpcHQ+CisKK3ZhciB0cmFuc2FjdGlvbjsKK3ZhciBzdG9yZTsKK3ZhciBkYjsKK3Zh
ciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdLmNvbnRl
bnREb2N1bWVudC5ib2R5OworCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHBlbmRpbmcgdHJhbnNh
Y3Rpb25zIGFyZSBub3QgYWJvcnRlZCBkdXJpbmcgcmVjdXJzaXZlIEpTIGNhbGxzIHVudGlsIGFs
bCBKUyAoaW4gYWxsIGZyYW1lcykgaXMgZmluaXNoZWQuIik7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KworZnVuY3Rpb24gc2V0dXAoKSB7CisgICAgc2hvdWxkQmVUcnVlKCInd2Via2l0SW5kZXhlZERC
JyBpbiB3aW5kb3ciKTsKKyAgICBzaG91bGRCZUZhbHNlKCJ3ZWJraXRJbmRleGVkREIgPT0gbnVs
bCIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coIndlYmtpdEluZGV4ZWREQi5vcGVuKCd0
cmFuc2FjdGlvbi1hYm9ydC13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZScpIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBzZXRWZXJzaW9uKCkgeworICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGNsaWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBjbGljaygpIHsKKyAgICBzdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdvYmplY3RTdG9yZScsIG51bGwpOworICAgIGJvZHkub25jbGljayA9
IHRlc3Q7CisgICAgdmFyIHBlbmRpbmdUcmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInBlbmRpbmdU
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnb2JqZWN0U3RvcmUnXSwgd2Via2l0SURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICBwZW5kaW5nVHJhbnNhY3Rpb24ub25zdWNjZXNz
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcGVuZGluZ1RyYW5zYWN0aW9uLm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBwZW5kaW5nVHJhbnNhY3Rpb24ub25h
Ym9ydCA9IGFib3J0Q2FsbGJhY2s7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIk1vdXNlRXZlbnQiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVl
LCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgMCwgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpOworICAgIGJvZHkuZGlzcGF0Y2hFdmVudChldmVudCk7
CisgICAgdmFyIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBwZW5kaW5nVHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ29iamVjdFN0b3JlJykiKTsKKyAgICBzaG91bGRCZVRydWUoInN0b3JlICE9
PSB1bmRlZmluZWQiKTsKKyAgICBib2R5Lm9uY2xpY2sgPSB1bmRlZmluZWQ7Cit9CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIGRlYnVnKCJTdGFydCByZS1lbnRyYW50IEpTIik7CisgICAgdHJh
bnNhY3Rpb24gPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnb2Jq
ZWN0U3RvcmUnXSwgd2Via2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICBkZWJ1
ZygiRW5kIHJlLWVudHJhbnQgSlMiKTsKK30KKworCitmdW5jdGlvbiBhYm9ydENhbGxiYWNrKCkK
K3sKKyAgICBkZWJ1ZygiUGVuZGluZyB0cmFuc2FjdGlvbiBhYm9ydGVkIik7CisgICAgZG9uZSgp
OworfQorCitzZXR1cCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>