<?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>36569</bug_id>
          
          <creation_ts>2010-03-24 18:12:57 -0700</creation_ts>
          <short_desc>SQLStatementErrorCallback&apos;s return value needs to be converted to a boolean</short_desc>
          <delta_ts>2011-04-19 05:15:29 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dumitru Daniliuc">dumi</reporter>
          <assigned_to name="Dumitru Daniliuc">dumi</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>hausmann</cc>
    
    <cc>michaeln</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>203715</commentid>
    <comment_count>0</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-03-24 18:12:57 -0700</bug_when>
    <thetext>Basically, we need to revert http://trac.webkit.org/changeset/54981. I have just talked to Hixie again, and he agreed that we should convert SQLStatementErrorCallback&apos;s return value to a boolean, instead of treating false as false, and everything else as true. This means that values such as undefined (no return value), or 0, or &quot;false&quot; will all be treated as false, as a Javascript developer might expect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203727</commentid>
    <comment_count>1</comment_count>
      <attachid>51578</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-03-24 18:59:26 -0700</bug_when>
    <thetext>Created attachment 51578
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203729</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-24 19:06:21 -0700</bug_when>
    <thetext>Attachment 51578 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1183025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203761</commentid>
    <comment_count>3</comment_count>
      <attachid>51587</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-03-24 20:36:24 -0700</bug_when>
    <thetext>Created attachment 51587
patch

Should fix the Chromium build problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204197</commentid>
    <comment_count>4</comment_count>
      <attachid>51672</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-03-25 12:55:18 -0700</bug_when>
    <thetext>Created attachment 51672
patch

Same patch, without style errors this time, hopefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204208</commentid>
    <comment_count>5</comment_count>
      <attachid>51672</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-03-25 13:59:20 -0700</bug_when>
    <thetext>Comment on attachment 51672
patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204256</commentid>
    <comment_count>6</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-03-25 15:30:15 -0700</bug_when>
    <thetext>Landed as r56572.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237604</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-13 14:06:43 -0700</bug_when>
    <thetext>Revision r56572 cherry-picked into qtwebkit-2.0 with commit 9917209df84aa5a739d112570394d9f57e99689b</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51578</attachid>
            <date>2010-03-24 18:59:26 -0700</date>
            <delta_ts>2010-03-24 20:36:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11362</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjQ3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMtMjQgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2luZyB0aGUgVjggYW5kIEpTQyBpbXBsZW1lbnRhdGlvbnMgb2YKKyAgICAgICAgU1FM
U3RhdGVtZW50RXJyb3JDYWxsYmFjayB0byBpbnRlcnByZXQgYXMgZmFsc2UgYWxsIHJlc3VsdHMg
dGhhdAorICAgICAgICBjb3VsZCBiZSBjb252ZXJ0ZWQgdG8gYSBmYWxzZSBib29sZWFuLiBQcmV0
dHkgbXVjaCBhIHJldmVydCBvZgorICAgICAgICByNTQ5ODEuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTY5CisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpoYW5kbGVFdmVudCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Wb2lkQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW52b2tlQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5oOgorCiAy
MDEwLTAzLTI0ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IE5vIHJldmlldywgcm9sbGluZyBvdXQgcjU2NDUzLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAko
cmV2aXNpb24gNTY0NzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgYm9v
bCBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OgogICAgICAgICAvLyBUaGVyZWZv
cmUgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm5pbmcgdHJ1ZSBhcmUgdGhlIHNhbWUgdGhpbmcgLSBz
bywgcmV0dXJuIHRydWUgb24gYW4gZXhjZXB0aW9uCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KLSAgICByZXR1cm4gIXJlc3VsdC5pc0ZhbHNlKCk7CisgICAgcmV0dXJuIHJlc3VsdC50b0Jv
b2xlYW4oZXhlYyk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNw
cAkocmV2aXNpb24gNTY0NzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3
NSw3IEBAIGJvb2wgVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjoKICAgICAvLyBz
dGF0ZW1lbnQsIGlmIGFueSwgb3Igb250byB0aGUgbmV4dCBvdmVyYWxsIHN0ZXAgb3RoZXJ3aXNl
LiBPdGhlcndpc2UsCiAgICAgLy8gdGhlIGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZh
bHNlLCBvciB0aGVyZSB3YXMgbm8gZXJyb3IgY2FsbGJhY2suCiAgICAgLy8gSnVtcCB0byB0aGUg
bGFzdCBzdGVwIGluIHRoZSBvdmVyYWxsIHN0ZXBzLgotICAgIHJldHVybiBpbnZva2VDYWxsYmFj
a1RyZWF0T25seUV4cGxpY2l0RmFsc2VBc0ZhbHNlKG1fY2FsbGJhY2ssIDIsIGFyZ3YsIGNhbGxi
YWNrUmV0dXJuVmFsdWUpIHx8IGNhbGxiYWNrUmV0dXJuVmFsdWU7CisgICAgcmV0dXJuIGludm9r
ZUNhbGxiYWNrKG1fY2FsbGJhY2ssIDIsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUpIHx8IGNh
bGxiYWNrUmV0dXJuVmFsdWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxiYWNrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5j
cHAJKHJldmlzaW9uIDU2NDczKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Wb2lkQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQg
VjhDdXN0b21Wb2lkQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KCkKICAgICBpbnZva2VDYWxsYmFjayht
X2NhbGxiYWNrLCAwLCAwLCBjYWxsYmFja1JldHVyblZhbHVlKTsKIH0KIAotc3RhdGljIGJvb2wg
aW52b2tlQ2FsbGJhY2tIZWxwZXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ss
IGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4mIHJldHVyblZhbHVlKQorYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2
W10sIGJvb2wmIHJldHVyblZhbHVlKQogewogICAgIHY4OjpUcnlDYXRjaCBleGNlcHRpb25DYXRj
aGVyOwogCkBAIC05OCwyMCArOTgsNCBAQCBzdGF0aWMgYm9vbCBpbnZva2VDYWxsYmFja0hlbHBl
cih2ODo6UGVyCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIGludm9rZUNhbGxiYWNrKHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSkKLXsKLSAgICB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gcmV0dXJuVmFsdWU7Ci0gICAgYm9vbCByZXN1bHQgPSBpbnZva2VD
YWxsYmFja0hlbHBlcihjYWxsYmFjaywgYXJnYywgYXJndiwgcmV0dXJuVmFsdWUpOwotICAgIGNh
bGxiYWNrUmV0dXJuVmFsdWUgPSAhcmV0dXJuVmFsdWUuSXNFbXB0eSgpICYmIHJldHVyblZhbHVl
LT5Jc0Jvb2xlYW4oKSAmJiByZXR1cm5WYWx1ZS0+Qm9vbGVhblZhbHVlKCk7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotYm9vbCBpbnZva2VDYWxsYmFja1RyZWF0T25seUV4cGxpY2l0RmFsc2VB
c0ZhbHNlKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBpbnQgYXJnYywgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSkKLXsK
LSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmV0dXJuVmFsdWU7Ci0gICAgYm9vbCByZXN1bHQg
PSBpbnZva2VDYWxsYmFja0hlbHBlcihjYWxsYmFjaywgYXJnYywgYXJndiwgcmV0dXJuVmFsdWUp
OwotICAgIGNhbGxiYWNrUmV0dXJuVmFsdWUgPSAhcmV0dXJuVmFsdWUuSXNFbXB0eSgpICYmICFy
ZXR1cm5WYWx1ZS0+SXNGYWxzZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9t
Vm9pZENhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21Wb2lkQ2FsbGJhY2suaAkocmV2aXNpb24gNTY0NzMpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC02
MCw3ICs2MCw2IEBAIHByaXZhdGU6CiAKIC8vIFJldHVybnMgZmFsc2UgaWYgY2FsbGJhY2sgZmFp
bGVkIChudWxsLCB3cm9uZyB0eXBlLCBvciB0aHJldyBleGNlcHRpb24pLgogYm9vbCBpbnZva2VD
YWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUpOwot
Ym9vbCBpbnZva2VDYWxsYmFja1RyZWF0T25seUV4cGxpY2l0RmFsc2VBc0ZhbHNlKHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5WYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTY0NzYpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wMy0yNCAgRHVtaXRy
dSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0aW5nIHRoZSB0ZXN0IHRvIGNvbWZvcm0gdG8g
dGhlIGxhdGVzdCBzcGVjIGNoYW5nZXMuCisKKyAgICAgICAgKiBzdG9yYWdlL3N0YXRlbWVudC1l
cnJvci1jYWxsYmFjay1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9zdGF0ZW1lbnQt
ZXJyb3ItY2FsbGJhY2suaHRtbDoKKwogMjAxMC0wMy0yNCAgRXJpYyBVaHJoYW5lIDxlcmljdUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRE9NQ29yZUV4Y2VwdGlvbiBuZWVkcyBOb1N0YXRpY1Rh
YmxlcyBtb2RpZmllcgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9zdGF0ZW1lbnQtZXJyb3It
Y2FsbGJhY2stZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
c3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTY0NzMpCisr
KyBMYXlvdXRUZXN0cy9zdG9yYWdlL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiw5IEBAIFBBU1MgLSB0aGUgdHJhbnNhY3Rpb24g
ZXJyb3IgY2FsbGJhY2sgd2EKIFBBU1MgLSB0aGUgdHJhbnNhY3Rpb24gZXJyb3IgY2FsbGJhY2sg
d2FzIGludm9rZWQuCiBQQVNTIC0gdGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIHdhcyBp
bnZva2VkLgogUEFTUyAtIHRoZSB0cmFuc2FjdGlvbiBlcnJvciBjYWxsYmFjayB3YXMgaW52b2tl
ZC4KLVBBU1MgLSB0aGUgdHJhbnNhY3Rpb24gZXJyb3IgY2FsbGJhY2sgd2FzIGludm9rZWQuCitQ
QVNTIC0gdGhlIHRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGludm9rZWQuCitQQVNT
IC0gdGhlIHRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGludm9rZWQuCitQQVNTIC0g
dGhlIHRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGludm9rZWQuCitQQVNTIC0gdGhl
IHRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGludm9rZWQuCiBUZXN0IENvbXBsZXRl
CiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9zdGF0ZW1lbnQtZXJyb3ItY2Fs
bGJhY2suaHRtbAkocmV2aXNpb24gNTY0NzMpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3N0YXRl
bWVudC1lcnJvci1jYWxsYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNSwzNyArMTUsNDIg
QEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCiB9CiAKIHZhciB0eENhbGxiYWNrQ291bnQgPSAwOwot
dmFyIE5VTUJFUl9PRl9UUkFOU0FDVElPTlMgPSA3OwordmFyIE5VTUJFUl9PRl9UUkFOU0FDVElP
TlMgPSAxMDsKIHZhciBkYXRhYmFzZTsKIAotZnVuY3Rpb24gdHJhbnNhY3Rpb25FcnJvckZ1bmN0
aW9uKGVycm9yKQotewotICAgIGxvZygiUEFTUyAtIHRoZSB0cmFuc2FjdGlvbiBlcnJvciBjYWxs
YmFjayB3YXMgaW52b2tlZC4iKTsKLSAgICBpZiAoKyt0eENhbGxiYWNrQ291bnQgPT0gTlVNQkVS
X09GX1RSQU5TQUNUSU9OUykKLSAgICAgICAgZmluaXNoVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0
cmFuc2FjdGlvblN1Y2Nlc3NGdW5jdGlvbihtZXNzYWdlKQotewotICAgIGxvZygiRkFJTCAtIHRo
ZSB0cmFuc2FjdGlvbiBzdWNjZXNzIGNhbGxiYWNrIHNob3VsZCBub3QgYmUgaW52b2tlZC4iKTsK
LSAgICBpZiAoKyt0eENhbGxiYWNrQ291bnQgPT0gTlVNQkVSX09GX1RSQU5TQUNUSU9OUykKLSAg
ICAgICAgZmluaXNoVGVzdCgpOwotfQotCi1mdW5jdGlvbiBydW5UcmFuc2FjdGlvbkV4cGVjdGVk
VG9GYWlsKHN0YXRlbWVudEVycm9yQ2FsbGJhY2spCitmdW5jdGlvbiBydW5UcmFuc2FjdGlvbihl
eHBlY3RlZFRvRmFpbCwgc3RhdGVtZW50RXJyb3JDYWxsYmFjaykKIHsKICAgICBkYXRhYmFzZS50
cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgewotICAgICAgICB0eC5leGVjdXRlU3FsKCJDUkVBVEUg
VEFCTEUgSUYgTk9UIEVYSVNUUyBTdGF0ZW1lbnRFcnJvckNhbGxiYWNrVGVzdCAocmFuZG9tRGF0
YSkiKTsKLSAgICAgICAgdHguZXhlY3V0ZVNxbCgiSU5TRVJUIElOVE8gU3RhdGVtZW50RXJyb3JD
YWxsYmFja1Rlc3QgKHJhbmRvbURhdGEpIFZBTFVFUyAoPykiLCBbJ3Rlc3QnXSk7CisgICAgICAg
IHR4LmV4ZWN1dGVTcWwoIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIFRlc3RUYWJsZSAoUmFu
ZG9tRGF0YSBURVhUKSIpOworICAgICAgICB0eC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBUZXN0
VGFibGUgVkFMVUVTICg/KSIsIFsndGVzdCddKTsKICAgICAgICAgdHguZXhlY3V0ZVNxbCgiVEhJ
UyBTVEFURU1FTlQgV0lMTCBGQUlMIiwgW10sCiAgICAgICAgICAgICBmdW5jdGlvbih0eCwgZGF0
YSkgewogICAgICAgICAgICAgICAgIGxvZygiRkFJTCAtIHRoaXMgc3RhdGVtZW50IHNob3VsZCBo
YXZlIGZhaWxlZCIpOwogICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICAgICAgICAg
IH0sIHN0YXRlbWVudEVycm9yQ2FsbGJhY2spOwotICAgICAgICB0eC5leGVjdXRlU3FsKCJJTlNF
UlQgSU5UTyBTdGF0ZW1lbnRFcnJvckNhbGxiYWNrVGVzdCAocmFuZG9tRGF0YSkgVkFMVUVTICg/
KSIsIFsndGVzdDEnXSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKGVycm9yKSB7IGxvZygiRkFJTCAt
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgaGF2ZSBiZWVuIGV4ZWN1dGVkIik7IH0sCi0gICAg
ICAgICAgICBmdW5jdGlvbigpIHsgbG9nKCJGQUlMIC0gVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5v
dCBoYXZlIGJlZW4gZXhlY3V0ZWQiKTsgfSk7Ci0gICAgfSwgdHJhbnNhY3Rpb25FcnJvckZ1bmN0
aW9uLCB0cmFuc2FjdGlvblN1Y2Nlc3NGdW5jdGlvbik7CisgICAgICAgIHR4LmV4ZWN1dGVTcWwo
IklOU0VSVCBJTlRPIFRlc3RUYWJsZSBWQUxVRVMgKD8pIiwgWyd0ZXN0MSddLAorICAgICAgICAg
ICAgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRUb0ZhaWwp
CisgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTCAtIFRoaXMgc3RhdGVtZW50IHNob3VsZCBu
b3QgaGF2ZSBiZWVuIGV4ZWN1dGVkIik7CisgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRUb0ZhaWwpCisgICAgICAgICAgICAgICAgICAgIGxv
ZygiRkFJTCAtIFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgaGF2ZSBiZWVuIGV4ZWN1dGVkIik7
CisgICAgICAgICAgICB9KTsKKyAgICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgICAgICBpZiAo
ZXhwZWN0ZWRUb0ZhaWwpCisgICAgICAgICAgICBsb2coIlBBU1MgLSB0aGUgdHJhbnNhY3Rpb24g
ZXJyb3IgY2FsbGJhY2sgd2FzIGludm9rZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGxvZygiRkFJTCAtIHRoZSB0cmFuc2FjdGlvbiBlcnJvciBjYWxsYmFjayBzaG91bGQgbm90IGhh
dmUgYmVlbiBpbnZva2VkLiIpOworICAgICAgICBpZiAoKyt0eENhbGxiYWNrQ291bnQgPT0gTlVN
QkVSX09GX1RSQU5TQUNUSU9OUykKKyAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9LCBm
dW5jdGlvbigpIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkVG9GYWlsKQorICAgICAgICAgICAgbG9n
KCJGQUlMIC0gdGhlIHRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FsbGJhY2sgc2hvdWxkIG5vdCBoYXZl
IGJlZW4gaW52b2tlZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJQQVNTIC0g
dGhlIHRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGludm9rZWQuIik7CisgICAgICAg
IGlmICgrK3R4Q2FsbGJhY2tDb3VudCA9PSBOVU1CRVJfT0ZfVFJBTlNBQ1RJT05TKQorICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgIH0pOwogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkKQEAg
LTU2LDI4ICs2MSwxOCBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAotICAgIGRhdGFiYXNlID0gb3BlbkRh
dGFiYXNlKCJidWctMjg4NzIiLCAiMS4wIiwgInN0YXRlbWVudCBlcnJvciBjYWxsYmFjayB0ZXN0
IiwgMTAyNCk7Ci0gICAgZGF0YWJhc2UudHJhbnNhY3Rpb24oZnVuY3Rpb24odHgpIHsKLSAgICAg
ICAgdHguZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgU3RhdGVtZW50RXJy
b3JDYWxsYmFja1Rlc3QgKHJhbmRvbURhdGEpIik7Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwoIklO
U0VSVCBJTlRPIFN0YXRlbWVudEVycm9yQ2FsbGJhY2tUZXN0IChyYW5kb21EYXRhKSBWQUxVRVMg
KD8pIiwgWyd0ZXN0J10pOwotICAgICAgICB0eC5leGVjdXRlU3FsKCJUSElTIFNUQVRFTUVOVCBX
SUxMIEZBSUwiLCBbXSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKHR4LCBkYXRhKSB7Ci0gICAgICAg
ICAgICAgICAgbG9nKCJGQUlMIC0gdGhpcyBzdGF0ZW1lbnQgc2hvdWxkIGhhdmUgZmFpbGVkIik7
Ci0gICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgfSwgZnVuY3Rpb24o
dHgsIGVycm9yKSB7IHJldHVybiBmYWxzZTsgfSk7Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwoIklO
U0VSVCBJTlRPIFN0YXRlbWVudEVycm9yQ2FsbGJhY2tUZXN0IChyYW5kb21EYXRhKSBWQUxVRVMg
KD8pIiwgWyd0ZXN0MSddLAotICAgICAgICAgICAgZnVuY3Rpb24odHgsIGRhdGEpIHsgfSwKLSAg
ICAgICAgICAgIGZ1bmN0aW9uKHR4LCBlcnJvcikgeyBsb2coIkZBSUwgLSBUaGlzIHN0YXRlbWVu
dCBzaG91bGQgbm90IGhhdmUgY2F1c2VkIGFuIGVycm9yIik7IH0pOwotICAgIH0sIGZ1bmN0aW9u
KGVycm9yKSB7IGxvZygiRkFJTCAtIFRoZSB0cmFuc2FjdGlvbiBlcnJvciBjYWxsYmFjayBzaG91
bGQgbm90IGhhdmUgYmVlbiBpbnZva2VkIik7IH0sCi0gICAgZnVuY3Rpb24oKSB7IH0pOwotCi0g
ICAgcnVuVHJhbnNhY3Rpb25FeHBlY3RlZFRvRmFpbChmdW5jdGlvbihlcnJvcikgeyByZXR1cm4g
dHJ1ZTsgfSk7Ci0gICAgcnVuVHJhbnNhY3Rpb25FeHBlY3RlZFRvRmFpbChmdW5jdGlvbihlcnJv
cikgeyB0aHJvdyAiRXhjZXB0aW9uIGluIHN0YXRlbWVudCBlcnJvciBjYWxsYmFjayI7IHJldHVy
biBmYWxzZTsgfSk7Ci0gICAgcnVuVHJhbnNhY3Rpb25FeHBlY3RlZFRvRmFpbChmdW5jdGlvbihl
cnJvcikge30pOwotICAgIHJ1blRyYW5zYWN0aW9uRXhwZWN0ZWRUb0ZhaWwoZnVuY3Rpb24oZXJy
b3IpIHsgcmV0dXJuIG51bGw7IH0pOwotICAgIHJ1blRyYW5zYWN0aW9uRXhwZWN0ZWRUb0ZhaWwo
ZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJuICJzb21lIHN0cmluZyI7IH0pOwotICAgIHJ1blRyYW5z
YWN0aW9uRXhwZWN0ZWRUb0ZhaWwoZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJuIDEyMzQ7IH0pOwot
ICAgIHJ1blRyYW5zYWN0aW9uRXhwZWN0ZWRUb0ZhaWwoZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJu
IHthOiAyLCBiOiAiYWJjIn07IH0pOworICAgIGRhdGFiYXNlID0gb3BlbkRhdGFiYXNlKCJTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrVGVzdCIsICIxLjAiLCAic3RhdGVtZW50IGVycm9yIGNhbGxiYWNr
IHRlc3QiLCAxMDI0KTsKKworICAgIHJ1blRyYW5zYWN0aW9uKHRydWUsIGZ1bmN0aW9uKGVycm9y
KSB7IHJldHVybiB0cnVlOyB9KTsKKyAgICBydW5UcmFuc2FjdGlvbih0cnVlLCBmdW5jdGlvbihl
cnJvcikgeyB0aHJvdyAiRXhjZXB0aW9uIGluIHN0YXRlbWVudCBlcnJvciBjYWxsYmFjayI7IHJl
dHVybiBmYWxzZTsgfSk7CisgICAgcnVuVHJhbnNhY3Rpb24odHJ1ZSwgZnVuY3Rpb24oZXJyb3Ip
IHsgcmV0dXJuICJzb21lIHN0cmluZyI7IH0pOworICAgIHJ1blRyYW5zYWN0aW9uKHRydWUsIGZ1
bmN0aW9uKGVycm9yKSB7IHJldHVybiAxMjM0OyB9KTsKKyAgICBydW5UcmFuc2FjdGlvbih0cnVl
LCBmdW5jdGlvbihlcnJvcikgeyByZXR1cm4ge2E6IDIsIGI6ICJhYmMifTsgfSk7CisgICAgcnVu
VHJhbnNhY3Rpb24odHJ1ZSwgZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJuICJmYWxzZSI7IH0pOwor
ICAgIHJ1blRyYW5zYWN0aW9uKGZhbHNlLCBmdW5jdGlvbihlcnJvcikge30pOworICAgIHJ1blRy
YW5zYWN0aW9uKGZhbHNlLCBmdW5jdGlvbihlcnJvcikgeyByZXR1cm4gZmFsc2U7IH0pOworICAg
IHJ1blRyYW5zYWN0aW9uKGZhbHNlLCBmdW5jdGlvbihlcnJvcikgeyByZXR1cm4gMDsgfSk7Cisg
ICAgcnVuVHJhbnNhY3Rpb24oZmFsc2UsIGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiBudWxsOyB9
KTsKIH0KIAogPC9zY3JpcHQ+Cg==
</data>
<flag name="commit-queue"
          id="34848"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51587</attachid>
            <date>2010-03-24 20:36:24 -0700</date>
            <delta_ts>2010-03-25 12:55:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11883</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjQ3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMtMjQgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2luZyB0aGUgVjggYW5kIEpTQyBpbXBsZW1lbnRhdGlvbnMgb2YKKyAgICAgICAgU1FM
U3RhdGVtZW50RXJyb3JDYWxsYmFjayB0byBpbnRlcnByZXQgYXMgZmFsc2UgYWxsIHJlc3VsdHMg
dGhhdAorICAgICAgICBjb3VsZCBiZSBjb252ZXJ0ZWQgdG8gYSBmYWxzZSBib29sZWFuLiBQcmV0
dHkgbXVjaCBhIHJldmVydCBvZgorICAgICAgICByNTQ5ODEuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTY5CisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpoYW5kbGVFdmVudCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Wb2lkQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW52b2tlQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5oOgorCiAy
MDEwLTAzLTI0ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IE5vIHJldmlldywgcm9sbGluZyBvdXQgcjU2NDUzLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAko
cmV2aXNpb24gNTY0NzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgYm9v
bCBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OgogICAgICAgICAvLyBUaGVyZWZv
cmUgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm5pbmcgdHJ1ZSBhcmUgdGhlIHNhbWUgdGhpbmcgLSBz
bywgcmV0dXJuIHRydWUgb24gYW4gZXhjZXB0aW9uCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KLSAgICByZXR1cm4gIXJlc3VsdC5pc0ZhbHNlKCk7CisgICAgcmV0dXJuIHJlc3VsdC50b0Jv
b2xlYW4oZXhlYyk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNw
cAkocmV2aXNpb24gNTY0NzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3
NSw3IEBAIGJvb2wgVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjoKICAgICAvLyBz
dGF0ZW1lbnQsIGlmIGFueSwgb3Igb250byB0aGUgbmV4dCBvdmVyYWxsIHN0ZXAgb3RoZXJ3aXNl
LiBPdGhlcndpc2UsCiAgICAgLy8gdGhlIGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZh
bHNlLCBvciB0aGVyZSB3YXMgbm8gZXJyb3IgY2FsbGJhY2suCiAgICAgLy8gSnVtcCB0byB0aGUg
bGFzdCBzdGVwIGluIHRoZSBvdmVyYWxsIHN0ZXBzLgotICAgIHJldHVybiBpbnZva2VDYWxsYmFj
a1RyZWF0T25seUV4cGxpY2l0RmFsc2VBc0ZhbHNlKG1fY2FsbGJhY2ssIDIsIGFyZ3YsIGNhbGxi
YWNrUmV0dXJuVmFsdWUpIHx8IGNhbGxiYWNrUmV0dXJuVmFsdWU7CisgICAgcmV0dXJuIGludm9r
ZUNhbGxiYWNrKG1fY2FsbGJhY2ssIDIsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUpIHx8IGNh
bGxiYWNrUmV0dXJuVmFsdWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxiYWNrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5j
cHAJKHJldmlzaW9uIDU2NDczKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Wb2lkQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQg
VjhDdXN0b21Wb2lkQ2FsbGJhY2s6OmhhbmRsZUV2ZW50KCkKICAgICBpbnZva2VDYWxsYmFjayht
X2NhbGxiYWNrLCAwLCAwLCBjYWxsYmFja1JldHVyblZhbHVlKTsKIH0KIAotc3RhdGljIGJvb2wg
aW52b2tlQ2FsbGJhY2tIZWxwZXIodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ss
IGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4mIHJldHVyblZhbHVlKQorYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2
W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUpCiB7CiAgICAgdjg6OlRyeUNhdGNoIGV4Y2Vw
dGlvbkNhdGNoZXI7CiAKQEAgLTg3LDcgKzg3LDggQEAgc3RhdGljIGJvb2wgaW52b2tlQ2FsbGJh
Y2tIZWxwZXIodjg6OlBlcgogICAgIFY4UHJveHkqIHByb3h5ID0gVjhQcm94eTo6cmV0cmlldmUo
KTsKICAgICBBU1NFUlQocHJveHkpOwogCi0gICAgcmV0dXJuVmFsdWUgPSBwcm94eS0+Y2FsbEZ1
bmN0aW9uKGNhbGxiYWNrRnVuY3Rpb24sIHRoaXNPYmplY3QsIGFyZ2MsIGFyZ3YpOworICAgIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBwcm94eS0+Y2FsbEZ1bmN0aW9uKGNhbGxiYWNr
RnVuY3Rpb24sIHRoaXNPYmplY3QsIGFyZ2MsIGFyZ3YpOworICAgIGNhbGxiYWNrUmV0dXJuVmFs
dWUgPSAhcmVzdWx0LklzRW1wdHkoKSAmJiByZXN1bHQtPklzQm9vbGVhbigpICYmIHJlc3VsdC0+
Qm9vbGVhblZhbHVlKCk7CiAKICAgICBpZiAoZXhjZXB0aW9uQ2F0Y2hlci5IYXNDYXVnaHQoKSkg
ewogICAgICAgICB2ODo6TG9jYWw8djg6Ok1lc3NhZ2U+IG1lc3NhZ2UgPSBleGNlcHRpb25DYXRj
aGVyLk1lc3NhZ2UoKTsKQEAgLTk4LDIwICs5OSw0IEBAIHN0YXRpYyBib29sIGludm9rZUNhbGxi
YWNrSGVscGVyKHY4OjpQZXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgaW52b2tlQ2Fs
bGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIGludCBhcmdjLCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZhbHVlKQotewot
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXR1cm5WYWx1ZTsKLSAgICBib29sIHJlc3VsdCA9
IGludm9rZUNhbGxiYWNrSGVscGVyKGNhbGxiYWNrLCBhcmdjLCBhcmd2LCByZXR1cm5WYWx1ZSk7
Ci0gICAgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9ICFyZXR1cm5WYWx1ZS5Jc0VtcHR5KCkgJiYgcmV0
dXJuVmFsdWUtPklzQm9vbGVhbigpICYmIHJldHVyblZhbHVlLT5Cb29sZWFuVmFsdWUoKTsKLSAg
ICByZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIGludm9rZUNhbGxiYWNrVHJlYXRPbmx5RXhwbGlj
aXRGYWxzZUFzRmFsc2Uodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIGludCBh
cmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZh
bHVlKQotewotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXR1cm5WYWx1ZTsKLSAgICBib29s
IHJlc3VsdCA9IGludm9rZUNhbGxiYWNrSGVscGVyKGNhbGxiYWNrLCBhcmdjLCBhcmd2LCByZXR1
cm5WYWx1ZSk7Ci0gICAgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9ICFyZXR1cm5WYWx1ZS5Jc0VtcHR5
KCkgJiYgIXJldHVyblZhbHVlLT5Jc0ZhbHNlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21Wb2lkQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5oCShyZXZpc2lvbiA1NjQ3MykKKysrIFdlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxiYWNrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYwLDcgKzYwLDYgQEAgcHJpdmF0ZToKIAogLy8gUmV0dXJucyBmYWxzZSBpZiBjYWxs
YmFjayBmYWlsZWQgKG51bGwsIHdyb25nIHR5cGUsIG9yIHRocmV3IGV4Y2VwdGlvbikuCiBib29s
IGludm9rZUNhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBpbnQg
YXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgYm9vbCYgY2FsbGJhY2tSZXR1cm5W
YWx1ZSk7Ci1ib29sIGludm9rZUNhbGxiYWNrVHJlYXRPbmx5RXhwbGljaXRGYWxzZUFzRmFsc2Uo
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIGludCBhcmdjLCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZhbHVlKTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjQ3NikKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEwLTAzLTI0
ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRpbmcgdGhlIHRlc3QgdG8gY29t
Zm9ybSB0byB0aGUgbGF0ZXN0IHNwZWMgY2hhbmdlcy4KKworICAgICAgICAqIHN0b3JhZ2Uvc3Rh
dGVtZW50LWVycm9yLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL3N0
YXRlbWVudC1lcnJvci1jYWxsYmFjay5odG1sOgorCiAyMDEwLTAzLTI0ICBFcmljIFVocmhhbmUg
PGVyaWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBET01Db3JlRXhjZXB0aW9uIG5lZWRzIE5v
U3RhdGljVGFibGVzIG1vZGlmaWVyCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3N0YXRlbWVu
dC1lcnJvci1jYWxsYmFjay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1
NjQ3MykKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDkgQEAgUEFTUyAtIHRoZSB0cmFu
c2FjdGlvbiBlcnJvciBjYWxsYmFjayB3YQogUEFTUyAtIHRoZSB0cmFuc2FjdGlvbiBlcnJvciBj
YWxsYmFjayB3YXMgaW52b2tlZC4KIFBBU1MgLSB0aGUgdHJhbnNhY3Rpb24gZXJyb3IgY2FsbGJh
Y2sgd2FzIGludm9rZWQuCiBQQVNTIC0gdGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIHdh
cyBpbnZva2VkLgotUEFTUyAtIHRoZSB0cmFuc2FjdGlvbiBlcnJvciBjYWxsYmFjayB3YXMgaW52
b2tlZC4KK1BBU1MgLSB0aGUgdHJhbnNhY3Rpb24gc3VjY2VzcyBjYWxsYmFjayB3YXMgaW52b2tl
ZC4KK1BBU1MgLSB0aGUgdHJhbnNhY3Rpb24gc3VjY2VzcyBjYWxsYmFjayB3YXMgaW52b2tlZC4K
K1BBU1MgLSB0aGUgdHJhbnNhY3Rpb24gc3VjY2VzcyBjYWxsYmFjayB3YXMgaW52b2tlZC4KK1BB
U1MgLSB0aGUgdHJhbnNhY3Rpb24gc3VjY2VzcyBjYWxsYmFjayB3YXMgaW52b2tlZC4KIFRlc3Qg
Q29tcGxldGUKIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9zdGF0ZW1lbnQtZXJyb3ItY2Fs
bGJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3N0YXRlbWVudC1l
cnJvci1jYWxsYmFjay5odG1sCShyZXZpc2lvbiA1NjQ3MykKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2Uvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDM3
ICsxNSw0MiBAQCBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKIH0KIAogdmFyIHR4Q2FsbGJhY2tDb3Vu
dCA9IDA7Ci12YXIgTlVNQkVSX09GX1RSQU5TQUNUSU9OUyA9IDc7Cit2YXIgTlVNQkVSX09GX1RS
QU5TQUNUSU9OUyA9IDEwOwogdmFyIGRhdGFiYXNlOwogCi1mdW5jdGlvbiB0cmFuc2FjdGlvbkVy
cm9yRnVuY3Rpb24oZXJyb3IpCi17Ci0gICAgbG9nKCJQQVNTIC0gdGhlIHRyYW5zYWN0aW9uIGVy
cm9yIGNhbGxiYWNrIHdhcyBpbnZva2VkLiIpOwotICAgIGlmICgrK3R4Q2FsbGJhY2tDb3VudCA9
PSBOVU1CRVJfT0ZfVFJBTlNBQ1RJT05TKQotICAgICAgICBmaW5pc2hUZXN0KCk7Ci19Ci0KLWZ1
bmN0aW9uIHRyYW5zYWN0aW9uU3VjY2Vzc0Z1bmN0aW9uKG1lc3NhZ2UpCi17Ci0gICAgbG9nKCJG
QUlMIC0gdGhlIHRyYW5zYWN0aW9uIHN1Y2Nlc3MgY2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBpbnZv
a2VkLiIpOwotICAgIGlmICgrK3R4Q2FsbGJhY2tDb3VudCA9PSBOVU1CRVJfT0ZfVFJBTlNBQ1RJ
T05TKQotICAgICAgICBmaW5pc2hUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRyYW5zYWN0aW9u
RXhwZWN0ZWRUb0ZhaWwoc3RhdGVtZW50RXJyb3JDYWxsYmFjaykKK2Z1bmN0aW9uIHJ1blRyYW5z
YWN0aW9uKGV4cGVjdGVkVG9GYWlsLCBzdGF0ZW1lbnRFcnJvckNhbGxiYWNrKQogewogICAgIGRh
dGFiYXNlLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwo
IkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIFN0YXRlbWVudEVycm9yQ2FsbGJhY2tUZXN0IChy
YW5kb21EYXRhKSIpOwotICAgICAgICB0eC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrVGVzdCAocmFuZG9tRGF0YSkgVkFMVUVTICg/KSIsIFsndGVzdCddKTsK
KyAgICAgICAgdHguZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgVGVzdFRh
YmxlIChSYW5kb21EYXRhIFRFWFQpIik7CisgICAgICAgIHR4LmV4ZWN1dGVTcWwoIklOU0VSVCBJ
TlRPIFRlc3RUYWJsZSBWQUxVRVMgKD8pIiwgWyd0ZXN0J10pOwogICAgICAgICB0eC5leGVjdXRl
U3FsKCJUSElTIFNUQVRFTUVOVCBXSUxMIEZBSUwiLCBbXSwKICAgICAgICAgICAgIGZ1bmN0aW9u
KHR4LCBkYXRhKSB7CiAgICAgICAgICAgICAgICAgbG9nKCJGQUlMIC0gdGhpcyBzdGF0ZW1lbnQg
c2hvdWxkIGhhdmUgZmFpbGVkIik7CiAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwogICAg
ICAgICAgICAgfSwgc3RhdGVtZW50RXJyb3JDYWxsYmFjayk7Ci0gICAgICAgIHR4LmV4ZWN1dGVT
cWwoIklOU0VSVCBJTlRPIFN0YXRlbWVudEVycm9yQ2FsbGJhY2tUZXN0IChyYW5kb21EYXRhKSBW
QUxVRVMgKD8pIiwgWyd0ZXN0MSddLAotICAgICAgICAgICAgZnVuY3Rpb24oZXJyb3IpIHsgbG9n
KCJGQUlMIC0gVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBoYXZlIGJlZW4gZXhlY3V0ZWQiKTsg
fSwKLSAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBsb2coIkZBSUwgLSBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGhhdmUgYmVlbiBleGVjdXRlZCIpOyB9KTsKLSAgICB9LCB0cmFuc2FjdGlvbkVy
cm9yRnVuY3Rpb24sIHRyYW5zYWN0aW9uU3VjY2Vzc0Z1bmN0aW9uKTsKKyAgICAgICAgdHguZXhl
Y3V0ZVNxbCgiSU5TRVJUIElOVE8gVGVzdFRhYmxlIFZBTFVFUyAoPykiLCBbJ3Rlc3QxJ10sCisg
ICAgICAgICAgICBmdW5jdGlvbihlcnJvcikgeworICAgICAgICAgICAgICAgIGlmIChleHBlY3Rl
ZFRvRmFpbCkKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMIC0gVGhpcyBzdGF0ZW1lbnQg
c2hvdWxkIG5vdCBoYXZlIGJlZW4gZXhlY3V0ZWQiKTsKKyAgICAgICAgICAgIH0sIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZFRvRmFpbCkKKyAgICAgICAgICAgICAg
ICAgICAgbG9nKCJGQUlMIC0gVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBoYXZlIGJlZW4gZXhl
Y3V0ZWQiKTsKKyAgICAgICAgICAgIH0pOworICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7CisgICAg
ICAgIGlmIChleHBlY3RlZFRvRmFpbCkKKyAgICAgICAgICAgIGxvZygiUEFTUyAtIHRoZSB0cmFu
c2FjdGlvbiBlcnJvciBjYWxsYmFjayB3YXMgaW52b2tlZC4iKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbG9nKCJGQUlMIC0gdGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIHNob3Vs
ZCBub3QgaGF2ZSBiZWVuIGludm9rZWQuIik7CisgICAgICAgIGlmICgrK3R4Q2FsbGJhY2tDb3Vu
dCA9PSBOVU1CRVJfT0ZfVFJBTlNBQ1RJT05TKQorICAgICAgICAgICAgZmluaXNoVGVzdCgpOwor
ICAgIH0sIGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoZXhwZWN0ZWRUb0ZhaWwpCisgICAgICAg
ICAgICBsb2coIkZBSUwgLSB0aGUgdHJhbnNhY3Rpb24gc3VjY2VzcyBjYWxsYmFjayBzaG91bGQg
bm90IGhhdmUgYmVlbiBpbnZva2VkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2co
IlBBU1MgLSB0aGUgdHJhbnNhY3Rpb24gc3VjY2VzcyBjYWxsYmFjayB3YXMgaW52b2tlZC4iKTsK
KyAgICAgICAgaWYgKCsrdHhDYWxsYmFja0NvdW50ID09IE5VTUJFUl9PRl9UUkFOU0FDVElPTlMp
CisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRl
c3QoKQpAQCAtNTYsMjggKzYxLDE4IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCi0gICAgZGF0YWJhc2Ug
PSBvcGVuRGF0YWJhc2UoImJ1Zy0yODg3MiIsICIxLjAiLCAic3RhdGVtZW50IGVycm9yIGNhbGxi
YWNrIHRlc3QiLCAxMDI0KTsKLSAgICBkYXRhYmFzZS50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkg
ewotICAgICAgICB0eC5leGVjdXRlU3FsKCJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrVGVzdCAocmFuZG9tRGF0YSkiKTsKLSAgICAgICAgdHguZXhlY3V0
ZVNxbCgiSU5TRVJUIElOVE8gU3RhdGVtZW50RXJyb3JDYWxsYmFja1Rlc3QgKHJhbmRvbURhdGEp
IFZBTFVFUyAoPykiLCBbJ3Rlc3QnXSk7Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwoIlRISVMgU1RB
VEVNRU5UIFdJTEwgRkFJTCIsIFtdLAotICAgICAgICAgICAgZnVuY3Rpb24odHgsIGRhdGEpIHsK
LSAgICAgICAgICAgICAgICBsb2coIkZBSUwgLSB0aGlzIHN0YXRlbWVudCBzaG91bGQgaGF2ZSBm
YWlsZWQiKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgICAgICB9LCBm
dW5jdGlvbih0eCwgZXJyb3IpIHsgcmV0dXJuIGZhbHNlOyB9KTsKLSAgICAgICAgdHguZXhlY3V0
ZVNxbCgiSU5TRVJUIElOVE8gU3RhdGVtZW50RXJyb3JDYWxsYmFja1Rlc3QgKHJhbmRvbURhdGEp
IFZBTFVFUyAoPykiLCBbJ3Rlc3QxJ10sCi0gICAgICAgICAgICBmdW5jdGlvbih0eCwgZGF0YSkg
eyB9LAotICAgICAgICAgICAgZnVuY3Rpb24odHgsIGVycm9yKSB7IGxvZygiRkFJTCAtIFRoaXMg
c3RhdGVtZW50IHNob3VsZCBub3QgaGF2ZSBjYXVzZWQgYW4gZXJyb3IiKTsgfSk7Ci0gICAgfSwg
ZnVuY3Rpb24oZXJyb3IpIHsgbG9nKCJGQUlMIC0gVGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxi
YWNrIHNob3VsZCBub3QgaGF2ZSBiZWVuIGludm9rZWQiKTsgfSwKLSAgICBmdW5jdGlvbigpIHsg
fSk7Ci0KLSAgICBydW5UcmFuc2FjdGlvbkV4cGVjdGVkVG9GYWlsKGZ1bmN0aW9uKGVycm9yKSB7
IHJldHVybiB0cnVlOyB9KTsKLSAgICBydW5UcmFuc2FjdGlvbkV4cGVjdGVkVG9GYWlsKGZ1bmN0
aW9uKGVycm9yKSB7IHRocm93ICJFeGNlcHRpb24gaW4gc3RhdGVtZW50IGVycm9yIGNhbGxiYWNr
IjsgcmV0dXJuIGZhbHNlOyB9KTsKLSAgICBydW5UcmFuc2FjdGlvbkV4cGVjdGVkVG9GYWlsKGZ1
bmN0aW9uKGVycm9yKSB7fSk7Ci0gICAgcnVuVHJhbnNhY3Rpb25FeHBlY3RlZFRvRmFpbChmdW5j
dGlvbihlcnJvcikgeyByZXR1cm4gbnVsbDsgfSk7Ci0gICAgcnVuVHJhbnNhY3Rpb25FeHBlY3Rl
ZFRvRmFpbChmdW5jdGlvbihlcnJvcikgeyByZXR1cm4gInNvbWUgc3RyaW5nIjsgfSk7Ci0gICAg
cnVuVHJhbnNhY3Rpb25FeHBlY3RlZFRvRmFpbChmdW5jdGlvbihlcnJvcikgeyByZXR1cm4gMTIz
NDsgfSk7Ci0gICAgcnVuVHJhbnNhY3Rpb25FeHBlY3RlZFRvRmFpbChmdW5jdGlvbihlcnJvcikg
eyByZXR1cm4ge2E6IDIsIGI6ICJhYmMifTsgfSk7CisgICAgZGF0YWJhc2UgPSBvcGVuRGF0YWJh
c2UoIlN0YXRlbWVudEVycm9yQ2FsbGJhY2tUZXN0IiwgIjEuMCIsICJzdGF0ZW1lbnQgZXJyb3Ig
Y2FsbGJhY2sgdGVzdCIsIDEwMjQpOworCisgICAgcnVuVHJhbnNhY3Rpb24odHJ1ZSwgZnVuY3Rp
b24oZXJyb3IpIHsgcmV0dXJuIHRydWU7IH0pOworICAgIHJ1blRyYW5zYWN0aW9uKHRydWUsIGZ1
bmN0aW9uKGVycm9yKSB7IHRocm93ICJFeGNlcHRpb24gaW4gc3RhdGVtZW50IGVycm9yIGNhbGxi
YWNrIjsgcmV0dXJuIGZhbHNlOyB9KTsKKyAgICBydW5UcmFuc2FjdGlvbih0cnVlLCBmdW5jdGlv
bihlcnJvcikgeyByZXR1cm4gInNvbWUgc3RyaW5nIjsgfSk7CisgICAgcnVuVHJhbnNhY3Rpb24o
dHJ1ZSwgZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJuIDEyMzQ7IH0pOworICAgIHJ1blRyYW5zYWN0
aW9uKHRydWUsIGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiB7YTogMiwgYjogImFiYyJ9OyB9KTsK
KyAgICBydW5UcmFuc2FjdGlvbih0cnVlLCBmdW5jdGlvbihlcnJvcikgeyByZXR1cm4gImZhbHNl
IjsgfSk7CisgICAgcnVuVHJhbnNhY3Rpb24oZmFsc2UsIGZ1bmN0aW9uKGVycm9yKSB7fSk7Cisg
ICAgcnVuVHJhbnNhY3Rpb24oZmFsc2UsIGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiBmYWxzZTsg
fSk7CisgICAgcnVuVHJhbnNhY3Rpb24oZmFsc2UsIGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiAw
OyB9KTsKKyAgICBydW5UcmFuc2FjdGlvbihmYWxzZSwgZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJu
IG51bGw7IH0pOwogfQogCiA8L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="34864"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51672</attachid>
            <date>2010-03-25 12:55:18 -0700</date>
            <delta_ts>2010-03-25 13:59:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12599</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjQ3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMtMjQgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2luZyB0aGUgVjggYW5kIEpTQyBpbXBsZW1lbnRhdGlvbnMgb2YKKyAgICAgICAgU1FM
U3RhdGVtZW50RXJyb3JDYWxsYmFjayB0byBpbnRlcnByZXQgYXMgZmFsc2UgYWxsIHJlc3VsdHMg
dGhhdAorICAgICAgICBjb3VsZCBiZSBjb252ZXJ0ZWQgdG8gYSBmYWxzZSBib29sZWFuLiBQcmV0
dHkgbXVjaCBhIHJldmVydCBvZgorICAgICAgICByNTQ5ODEuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTY5CisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjpoYW5kbGVFdmVudCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2Fs
bGJhY2s6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Wb2lkQ2FsbGJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW52b2tlQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5oOgorCiAy
MDEwLTAzLTI0ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IE5vIHJldmlldywgcm9sbGluZyBvdXQgcjU2NDUzLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAko
cmV2aXNpb24gNTY0NzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgYm9v
bCBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s6OgogICAgICAgICAvLyBUaGVyZWZv
cmUgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm5pbmcgdHJ1ZSBhcmUgdGhlIHNhbWUgdGhpbmcgLSBz
bywgcmV0dXJuIHRydWUgb24gYW4gZXhjZXB0aW9uCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KLSAgICByZXR1cm4gIXJlc3VsdC5pc0ZhbHNlKCk7CisgICAgcmV0dXJuIHJlc3VsdC50b0Jv
b2xlYW4oZXhlYyk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
Q3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNw
cAkocmV2aXNpb24gNTY0NzMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3
NSw3IEBAIGJvb2wgVjhDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrOjoKICAgICAvLyBz
dGF0ZW1lbnQsIGlmIGFueSwgb3Igb250byB0aGUgbmV4dCBvdmVyYWxsIHN0ZXAgb3RoZXJ3aXNl
LiBPdGhlcndpc2UsCiAgICAgLy8gdGhlIGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZh
bHNlLCBvciB0aGVyZSB3YXMgbm8gZXJyb3IgY2FsbGJhY2suCiAgICAgLy8gSnVtcCB0byB0aGUg
bGFzdCBzdGVwIGluIHRoZSBvdmVyYWxsIHN0ZXBzLgotICAgIHJldHVybiBpbnZva2VDYWxsYmFj
a1RyZWF0T25seUV4cGxpY2l0RmFsc2VBc0ZhbHNlKG1fY2FsbGJhY2ssIDIsIGFyZ3YsIGNhbGxi
YWNrUmV0dXJuVmFsdWUpIHx8IGNhbGxiYWNrUmV0dXJuVmFsdWU7CisgICAgcmV0dXJuIGludm9r
ZUNhbGxiYWNrKG1fY2FsbGJhY2ssIDIsIGFyZ3YsIGNhbGxiYWNrUmV0dXJuVmFsdWUpIHx8IGNh
bGxiYWNrUmV0dXJuVmFsdWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxiYWNrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5j
cHAJKHJldmlzaW9uIDU2NDczKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21Wb2lkQ2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMTAgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiVjhDdXN0b21Wb2lkQ2FsbGJhY2suaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiVjhCaW5kaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjQsNyArNjQsNyBA
QCB2b2lkIFY4Q3VzdG9tVm9pZENhbGxiYWNrOjpoYW5kbGVFdmVudCgpCiAgICAgaW52b2tlQ2Fs
bGJhY2sobV9jYWxsYmFjaywgMCwgMCwgY2FsbGJhY2tSZXR1cm5WYWx1ZSk7CiB9CiAKLXN0YXRp
YyBib29sIGludm9rZUNhbGxiYWNrSGVscGVyKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGNh
bGxiYWNrLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSwgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+JiByZXR1cm5WYWx1ZSkKK2Jvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZhbHVlKQogewogICAgIHY4OjpUcnlDYXRj
aCBleGNlcHRpb25DYXRjaGVyOwogCkBAIC03Myw5ICs3Myw4IEBAIHN0YXRpYyBib29sIGludm9r
ZUNhbGxiYWNrSGVscGVyKHY4OjpQZXIKICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbiA9IHY4OjpM
b2NhbDx2ODo6RnVuY3Rpb24+OjpOZXcodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uPjo6Q2Fz
dChjYWxsYmFjaykpOwogICAgIH0gZWxzZSBpZiAoY2FsbGJhY2stPklzT2JqZWN0KCkpIHsKICAg
ICAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gaGFuZGxlRXZlbnRGdW5jdGlvbiA9IGNhbGxiYWNr
LT5HZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJoYW5kbGVFdmVudCIpKTsKLSAgICAgICAgaWYg
KGhhbmRsZUV2ZW50RnVuY3Rpb24tPklzRnVuY3Rpb24oKSkgeworICAgICAgICBpZiAoaGFuZGxl
RXZlbnRGdW5jdGlvbi0+SXNGdW5jdGlvbigpKQogICAgICAgICAgICAgY2FsbGJhY2tGdW5jdGlv
biA9IHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+OjpDYXN0KGhhbmRsZUV2ZW50RnVuY3Rpb24pOwot
ICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtODcsNyAr
ODYsOCBAQCBzdGF0aWMgYm9vbCBpbnZva2VDYWxsYmFja0hlbHBlcih2ODo6UGVyCiAgICAgVjhQ
cm94eSogcHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZSgpOwogICAgIEFTU0VSVChwcm94eSk7CiAK
LSAgICByZXR1cm5WYWx1ZSA9IHByb3h5LT5jYWxsRnVuY3Rpb24oY2FsbGJhY2tGdW5jdGlvbiwg
dGhpc09iamVjdCwgYXJnYywgYXJndik7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3Vs
dCA9IHByb3h5LT5jYWxsRnVuY3Rpb24oY2FsbGJhY2tGdW5jdGlvbiwgdGhpc09iamVjdCwgYXJn
YywgYXJndik7CisgICAgY2FsbGJhY2tSZXR1cm5WYWx1ZSA9ICFyZXN1bHQuSXNFbXB0eSgpICYm
IHJlc3VsdC0+SXNCb29sZWFuKCkgJiYgcmVzdWx0LT5Cb29sZWFuVmFsdWUoKTsKIAogICAgIGlm
IChleGNlcHRpb25DYXRjaGVyLkhhc0NhdWdodCgpKSB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6
TWVzc2FnZT4gbWVzc2FnZSA9IGV4Y2VwdGlvbkNhdGNoZXIuTWVzc2FnZSgpOwpAQCAtOTgsMjAg
Kzk4LDQgQEAgc3RhdGljIGJvb2wgaW52b2tlQ2FsbGJhY2tIZWxwZXIodjg6OlBlcgogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotYm9vbCBpbnZva2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10s
IGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUpCi17Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHJldHVyblZhbHVlOwotICAgIGJvb2wgcmVzdWx0ID0gaW52b2tlQ2FsbGJhY2tIZWxwZXIoY2Fs
bGJhY2ssIGFyZ2MsIGFyZ3YsIHJldHVyblZhbHVlKTsKLSAgICBjYWxsYmFja1JldHVyblZhbHVl
ID0gIXJldHVyblZhbHVlLklzRW1wdHkoKSAmJiByZXR1cm5WYWx1ZS0+SXNCb29sZWFuKCkgJiYg
cmV0dXJuVmFsdWUtPkJvb2xlYW5WYWx1ZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJv
b2wgaW52b2tlQ2FsbGJhY2tUcmVhdE9ubHlFeHBsaWNpdEZhbHNlQXNGYWxzZSh2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBhcmd2W10sIGJvb2wmIGNhbGxiYWNrUmV0dXJuVmFsdWUpCi17Ci0gICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHJldHVyblZhbHVlOwotICAgIGJvb2wgcmVzdWx0ID0gaW52b2tlQ2FsbGJhY2tI
ZWxwZXIoY2FsbGJhY2ssIGFyZ2MsIGFyZ3YsIHJldHVyblZhbHVlKTsKLSAgICBjYWxsYmFja1Jl
dHVyblZhbHVlID0gIXJldHVyblZhbHVlLklzRW1wdHkoKSAmJiAhcmV0dXJuVmFsdWUtPklzRmFs
c2UoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVZvaWRDYWxsYmFjay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tVm9pZENhbGxi
YWNrLmgJKHJldmlzaW9uIDU2NDczKQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhD
dXN0b21Wb2lkQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNiBAQCBwcml2
YXRlOgogCiAvLyBSZXR1cm5zIGZhbHNlIGlmIGNhbGxiYWNrIGZhaWxlZCAobnVsbCwgd3Jvbmcg
dHlwZSwgb3IgdGhyZXcgZXhjZXB0aW9uKS4KIGJvb2wgaW52b2tlQ2FsbGJhY2sodjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gY2FsbGJhY2ssIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gYXJndltdLCBib29sJiBjYWxsYmFja1JldHVyblZhbHVlKTsKLWJvb2wgaW52b2tlQ2FsbGJh
Y2tUcmVhdE9ubHlFeHBsaWNpdEZhbHNlQXNGYWxzZSh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
PiBjYWxsYmFjaywgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10sIGJvb2wm
IGNhbGxiYWNrUmV0dXJuVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDU2NDc2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDMtMjQgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1p
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGluZyB0aGUgdGVzdCB0byBjb25mb3JtIHRvIHRoZSBsYXRlc3Qgc3BlYyBj
aGFuZ2VzLgorCisgICAgICAgICogc3RvcmFnZS9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2stZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLmh0
bWw6CisKIDIwMTAtMDMtMjQgIEVyaWMgVWhyaGFuZSA8ZXJpY3VAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIERPTUNvcmVFeGNlcHRpb24gbmVlZHMgTm9TdGF0aWNUYWJsZXMgbW9kaWZpZXIKSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3N0YXRlbWVudC1lcnJvci1j
YWxsYmFjay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU2NDczKQorKysgTGF5b3V0VGVzdHMvc3Rv
cmFnZS9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2stZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC02LDYgKzYsOSBAQCBQQVNTIC0gdGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIHdh
CiBQQVNTIC0gdGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIHdhcyBpbnZva2VkLgogUEFT
UyAtIHRoZSB0cmFuc2FjdGlvbiBlcnJvciBjYWxsYmFjayB3YXMgaW52b2tlZC4KIFBBU1MgLSB0
aGUgdHJhbnNhY3Rpb24gZXJyb3IgY2FsbGJhY2sgd2FzIGludm9rZWQuCi1QQVNTIC0gdGhlIHRy
YW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIHdhcyBpbnZva2VkLgorUEFTUyAtIHRoZSB0cmFuc2Fj
dGlvbiBzdWNjZXNzIGNhbGxiYWNrIHdhcyBpbnZva2VkLgorUEFTUyAtIHRoZSB0cmFuc2FjdGlv
biBzdWNjZXNzIGNhbGxiYWNrIHdhcyBpbnZva2VkLgorUEFTUyAtIHRoZSB0cmFuc2FjdGlvbiBz
dWNjZXNzIGNhbGxiYWNrIHdhcyBpbnZva2VkLgorUEFTUyAtIHRoZSB0cmFuc2FjdGlvbiBzdWNj
ZXNzIGNhbGxiYWNrIHdhcyBpbnZva2VkLgogVGVzdCBDb21wbGV0ZQogCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdG9yYWdlL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2Uvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLmh0bWwJKHJldmlz
aW9uIDU2NDczKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJh
Y2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUsMzcgKzE1LDQyIEBAIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKQogfQogCiB2YXIgdHhDYWxsYmFja0NvdW50ID0gMDsKLXZhciBOVU1CRVJfT0ZfVFJB
TlNBQ1RJT05TID0gNzsKK3ZhciBOVU1CRVJfT0ZfVFJBTlNBQ1RJT05TID0gMTA7CiB2YXIgZGF0
YWJhc2U7CiAKLWZ1bmN0aW9uIHRyYW5zYWN0aW9uRXJyb3JGdW5jdGlvbihlcnJvcikKLXsKLSAg
ICBsb2coIlBBU1MgLSB0aGUgdHJhbnNhY3Rpb24gZXJyb3IgY2FsbGJhY2sgd2FzIGludm9rZWQu
Iik7Ci0gICAgaWYgKCsrdHhDYWxsYmFja0NvdW50ID09IE5VTUJFUl9PRl9UUkFOU0FDVElPTlMp
Ci0gICAgICAgIGZpbmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdHJhbnNhY3Rpb25TdWNjZXNz
RnVuY3Rpb24obWVzc2FnZSkKLXsKLSAgICBsb2coIkZBSUwgLSB0aGUgdHJhbnNhY3Rpb24gc3Vj
Y2VzcyBjYWxsYmFjayBzaG91bGQgbm90IGJlIGludm9rZWQuIik7Ci0gICAgaWYgKCsrdHhDYWxs
YmFja0NvdW50ID09IE5VTUJFUl9PRl9UUkFOU0FDVElPTlMpCi0gICAgICAgIGZpbmlzaFRlc3Qo
KTsKLX0KLQotZnVuY3Rpb24gcnVuVHJhbnNhY3Rpb25FeHBlY3RlZFRvRmFpbChzdGF0ZW1lbnRF
cnJvckNhbGxiYWNrKQorZnVuY3Rpb24gcnVuVHJhbnNhY3Rpb24oZXhwZWN0ZWRUb0ZhaWwsIHN0
YXRlbWVudEVycm9yQ2FsbGJhY2spCiB7CiAgICAgZGF0YWJhc2UudHJhbnNhY3Rpb24oZnVuY3Rp
b24odHgpIHsKLSAgICAgICAgdHguZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElT
VFMgU3RhdGVtZW50RXJyb3JDYWxsYmFja1Rlc3QgKHJhbmRvbURhdGEpIik7Ci0gICAgICAgIHR4
LmV4ZWN1dGVTcWwoIklOU0VSVCBJTlRPIFN0YXRlbWVudEVycm9yQ2FsbGJhY2tUZXN0IChyYW5k
b21EYXRhKSBWQUxVRVMgKD8pIiwgWyd0ZXN0J10pOworICAgICAgICB0eC5leGVjdXRlU3FsKCJD
UkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBUZXN0VGFibGUgKFJhbmRvbURhdGEgVEVYVCkiKTsK
KyAgICAgICAgdHguZXhlY3V0ZVNxbCgiSU5TRVJUIElOVE8gVGVzdFRhYmxlIFZBTFVFUyAoPyki
LCBbJ3Rlc3QnXSk7CiAgICAgICAgIHR4LmV4ZWN1dGVTcWwoIlRISVMgU1RBVEVNRU5UIFdJTEwg
RkFJTCIsIFtdLAogICAgICAgICAgICAgZnVuY3Rpb24odHgsIGRhdGEpIHsKICAgICAgICAgICAg
ICAgICBsb2coIkZBSUwgLSB0aGlzIHN0YXRlbWVudCBzaG91bGQgaGF2ZSBmYWlsZWQiKTsKICAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgICAgICAgICB9LCBzdGF0ZW1lbnRFcnJv
ckNhbGxiYWNrKTsKLSAgICAgICAgdHguZXhlY3V0ZVNxbCgiSU5TRVJUIElOVE8gU3RhdGVtZW50
RXJyb3JDYWxsYmFja1Rlc3QgKHJhbmRvbURhdGEpIFZBTFVFUyAoPykiLCBbJ3Rlc3QxJ10sCi0g
ICAgICAgICAgICBmdW5jdGlvbihlcnJvcikgeyBsb2coIkZBSUwgLSBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGhhdmUgYmVlbiBleGVjdXRlZCIpOyB9LAotICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IGxvZygiRkFJTCAtIFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgaGF2ZSBiZWVuIGV4ZWN1
dGVkIik7IH0pOwotICAgIH0sIHRyYW5zYWN0aW9uRXJyb3JGdW5jdGlvbiwgdHJhbnNhY3Rpb25T
dWNjZXNzRnVuY3Rpb24pOworICAgICAgICB0eC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBUZXN0
VGFibGUgVkFMVUVTICg/KSIsIFsndGVzdDEnXSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGVycm9y
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkVG9GYWlsKQorICAgICAgICAgICAgICAg
ICAgICBsb2coIkZBSUwgLSBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGhhdmUgYmVlbiBleGVj
dXRlZCIpOworICAgICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KGV4cGVjdGVkVG9GYWlsKQorICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUwgLSBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGhhdmUgYmVlbiBleGVjdXRlZCIpOworICAgICAgICAgICAgfSk7
CisgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkVG9GYWlsKQor
ICAgICAgICAgICAgbG9nKCJQQVNTIC0gdGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxiYWNrIHdh
cyBpbnZva2VkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUwgLSB0aGUg
dHJhbnNhY3Rpb24gZXJyb3IgY2FsbGJhY2sgc2hvdWxkIG5vdCBoYXZlIGJlZW4gaW52b2tlZC4i
KTsKKyAgICAgICAgaWYgKCsrdHhDYWxsYmFja0NvdW50ID09IE5VTUJFUl9PRl9UUkFOU0FDVElP
TlMpCisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmIChleHBlY3RlZFRvRmFpbCkKKyAgICAgICAgICAgIGxvZygiRkFJTCAtIHRoZSB0cmFu
c2FjdGlvbiBzdWNjZXNzIGNhbGxiYWNrIHNob3VsZCBub3QgaGF2ZSBiZWVuIGludm9rZWQuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiUEFTUyAtIHRoZSB0cmFuc2FjdGlvbiBz
dWNjZXNzIGNhbGxiYWNrIHdhcyBpbnZva2VkLiIpOworICAgICAgICBpZiAoKyt0eENhbGxiYWNr
Q291bnQgPT0gTlVNQkVSX09GX1RSQU5TQUNUSU9OUykKKyAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICB9KTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkBAIC01NiwyOCArNjEsMTggQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKICAgICB9CiAKLSAgICBkYXRhYmFzZSA9IG9wZW5EYXRhYmFzZSgiYnVnLTI4ODcy
IiwgIjEuMCIsICJzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgdGVzdCIsIDEwMjQpOwotICAgIGRh
dGFiYXNlLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwo
IkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIFN0YXRlbWVudEVycm9yQ2FsbGJhY2tUZXN0IChy
YW5kb21EYXRhKSIpOwotICAgICAgICB0eC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrVGVzdCAocmFuZG9tRGF0YSkgVkFMVUVTICg/KSIsIFsndGVzdCddKTsK
LSAgICAgICAgdHguZXhlY3V0ZVNxbCgiVEhJUyBTVEFURU1FTlQgV0lMTCBGQUlMIiwgW10sCi0g
ICAgICAgICAgICBmdW5jdGlvbih0eCwgZGF0YSkgewotICAgICAgICAgICAgICAgIGxvZygiRkFJ
TCAtIHRoaXMgc3RhdGVtZW50IHNob3VsZCBoYXZlIGZhaWxlZCIpOwotICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHR4LCBlcnJvcikgeyByZXR1
cm4gZmFsc2U7IH0pOwotICAgICAgICB0eC5leGVjdXRlU3FsKCJJTlNFUlQgSU5UTyBTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrVGVzdCAocmFuZG9tRGF0YSkgVkFMVUVTICg/KSIsIFsndGVzdDEnXSwK
LSAgICAgICAgICAgIGZ1bmN0aW9uKHR4LCBkYXRhKSB7IH0sCi0gICAgICAgICAgICBmdW5jdGlv
bih0eCwgZXJyb3IpIHsgbG9nKCJGQUlMIC0gVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBoYXZl
IGNhdXNlZCBhbiBlcnJvciIpOyB9KTsKLSAgICB9LCBmdW5jdGlvbihlcnJvcikgeyBsb2coIkZB
SUwgLSBUaGUgdHJhbnNhY3Rpb24gZXJyb3IgY2FsbGJhY2sgc2hvdWxkIG5vdCBoYXZlIGJlZW4g
aW52b2tlZCIpOyB9LAotICAgIGZ1bmN0aW9uKCkgeyB9KTsKLQotICAgIHJ1blRyYW5zYWN0aW9u
RXhwZWN0ZWRUb0ZhaWwoZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJuIHRydWU7IH0pOwotICAgIHJ1
blRyYW5zYWN0aW9uRXhwZWN0ZWRUb0ZhaWwoZnVuY3Rpb24oZXJyb3IpIHsgdGhyb3cgIkV4Y2Vw
dGlvbiBpbiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2siOyByZXR1cm4gZmFsc2U7IH0pOwotICAg
IHJ1blRyYW5zYWN0aW9uRXhwZWN0ZWRUb0ZhaWwoZnVuY3Rpb24oZXJyb3IpIHt9KTsKLSAgICBy
dW5UcmFuc2FjdGlvbkV4cGVjdGVkVG9GYWlsKGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiBudWxs
OyB9KTsKLSAgICBydW5UcmFuc2FjdGlvbkV4cGVjdGVkVG9GYWlsKGZ1bmN0aW9uKGVycm9yKSB7
IHJldHVybiAic29tZSBzdHJpbmciOyB9KTsKLSAgICBydW5UcmFuc2FjdGlvbkV4cGVjdGVkVG9G
YWlsKGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiAxMjM0OyB9KTsKLSAgICBydW5UcmFuc2FjdGlv
bkV4cGVjdGVkVG9GYWlsKGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiB7YTogMiwgYjogImFiYyJ9
OyB9KTsKKyAgICBkYXRhYmFzZSA9IG9wZW5EYXRhYmFzZSgiU3RhdGVtZW50RXJyb3JDYWxsYmFj
a1Rlc3QiLCAiMS4wIiwgInN0YXRlbWVudCBlcnJvciBjYWxsYmFjayB0ZXN0IiwgMTAyNCk7CisK
KyAgICBydW5UcmFuc2FjdGlvbih0cnVlLCBmdW5jdGlvbihlcnJvcikgeyByZXR1cm4gdHJ1ZTsg
fSk7CisgICAgcnVuVHJhbnNhY3Rpb24odHJ1ZSwgZnVuY3Rpb24oZXJyb3IpIHsgdGhyb3cgIkV4
Y2VwdGlvbiBpbiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2siOyByZXR1cm4gZmFsc2U7IH0pOwor
ICAgIHJ1blRyYW5zYWN0aW9uKHRydWUsIGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiAic29tZSBz
dHJpbmciOyB9KTsKKyAgICBydW5UcmFuc2FjdGlvbih0cnVlLCBmdW5jdGlvbihlcnJvcikgeyBy
ZXR1cm4gMTIzNDsgfSk7CisgICAgcnVuVHJhbnNhY3Rpb24odHJ1ZSwgZnVuY3Rpb24oZXJyb3Ip
IHsgcmV0dXJuIHthOiAyLCBiOiAiYWJjIn07IH0pOworICAgIHJ1blRyYW5zYWN0aW9uKHRydWUs
IGZ1bmN0aW9uKGVycm9yKSB7IHJldHVybiAiZmFsc2UiOyB9KTsKKyAgICBydW5UcmFuc2FjdGlv
bihmYWxzZSwgZnVuY3Rpb24oZXJyb3IpIHt9KTsKKyAgICBydW5UcmFuc2FjdGlvbihmYWxzZSwg
ZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJuIGZhbHNlOyB9KTsKKyAgICBydW5UcmFuc2FjdGlvbihm
YWxzZSwgZnVuY3Rpb24oZXJyb3IpIHsgcmV0dXJuIDA7IH0pOworICAgIHJ1blRyYW5zYWN0aW9u
KGZhbHNlLCBmdW5jdGlvbihlcnJvcikgeyByZXR1cm4gbnVsbDsgfSk7CiB9CiAKIDwvc2NyaXB0
Pgo=
</data>
<flag name="review"
          id="34981"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="34982"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
      

    </bug>

</bugzilla>