<?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>58496</bug_id>
          
          <creation_ts>2011-04-13 17:08:30 -0700</creation_ts>
          <short_desc>Add webkit prefix to Blob.slice method and change its semantics to be like Array.slice</short_desc>
          <delta_ts>2011-04-14 11:15:34 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>dimich</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>385371</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2011-04-13 17:08:30 -0700</bug_when>
    <thetext>Add webkit prefix to Blob.slice method and change its semantics to be like Array.slice, per the latest discussion on public-webapps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385378</commentid>
    <comment_count>1</comment_count>
      <attachid>89496</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2011-04-13 17:15:29 -0700</bug_when>
    <thetext>Created attachment 89496
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385382</commentid>
    <comment_count>2</comment_count>
      <attachid>89498</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2011-04-13 17:17:48 -0700</bug_when>
    <thetext>Created attachment 89498
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385894</commentid>
    <comment_count>3</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2011-04-14 11:15:34 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/83873.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89496</attachid>
            <date>2011-04-13 17:15:29 -0700</date>
            <delta_ts>2011-04-13 17:17:48 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>58496</filename>
            <type>text/plain</type>
            <size>16484</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxODFmYzI4Li45N2I2OGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDQt
MTMgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB3ZWJraXQgcHJlZml4IHRvIEJsb2Iuc2xp
Y2UgbWV0aG9kIGFuZCBjaGFuZ2UgaXRzIHNlbWFudGljcyB0byBiZQorICAgICAgICBsaWtlIEFy
cmF5LnNsaWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01ODQ5NgorCisgICAgICAgIEFkZGVkIGEgbmV3IHRlc3QgdG8gdGVzdCB0aGUgbmV3IGJlaGF2
aW9yIGFuZCBhbHNvIHVwZGF0ZSBhbGwgZXhpc3RpbmcKKyAgICAgICAgdGVzdHMgdG8gdXNlIHRo
ZSBuZXcgbmFtZS4KKworICAgICAgICAqIGZhc3QvZmlsZXMvYmxvYi1zbGljZS1vdmVyZmxvdy5o
dG1sOgorICAgICAgICAqIGZhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1ibG9iLXRlc3QtY2FzZXMuanM6
CisgICAgICAgICh0ZXN0UmVhZGluZ1NsaWNlZEZpbGVCbG9iKToKKyAgICAgICAgKHRlc3RSZWFk
aW5nU2xpY2VkVGV4dEJsb2IpOgorICAgICAgICAodGVzdFJlYWRpbmdTbGljZWRBcnJheUJ1ZmZl
ckJsb2IpOgorICAgICAgICAodGVzdFJlYWRpbmdTbGljZWRIeWJyaWRCbG9iKToKKyAgICAgICAg
KHRlc3RSZWFkaW5nVHJpcGxlU2xpY2VkSHlicmlkQmxvYik6CisgICAgICAgICogZmFzdC9maWxl
c3lzdGVtL3Jlc291cmNlcy9maWxlLXdyaXRlci11dGlscy5qczoKKyAgICAgICAgKHZlcmlmeUJ5
dGVSYW5nZUlzWmVyb2VzSGVscGVyKToKKyAgICAgICAgKHZlcmlmeUJ5dGVSYW5nZUFzU3RyaW5n
SGVscGVyKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2NyaXB0LXRlc3RzL3Nl
bmQtaHlicmlkLWJsb2IuanM6CisgICAgICAgICgpOgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9j
YWwvYmxvYi9zY3JpcHQtdGVzdHMvc2VuZC1zbGljZWQtZGF0YS1ibG9iLmpzOgorICAgICAgICAo
cnVuU2xpY2VUZXN0KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0
LXRlc3RzL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5qczoKKyAgICAgICAgKG9uU3RhYmxlRmls
ZURyb3ApOgorICAgICAgICAob25VbnN0YWJsZUZpbGVEcm9wKToKKyAgICAgICAgKiBodHRwL3Rl
c3RzL2xvY2FsL2Zvcm1kYXRhL3Jlc291cmNlcy9zZW5kLWZvcm0tZGF0YS1jb21tb24uanM6Cisg
ICAgICAgICh0ZXN0U2VuZGluZ0Zvcm1EYXRhKToKKwogMjAxMS0wNC0xMyAgUm9sYW5kIFN0ZWlu
ZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXZpZCBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGlj
ZS1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLW92ZXJm
bG93Lmh0bWwKaW5kZXggZDk3MGQ0YS4uMDQ0MmQ3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy9ibG9iLXNsaWNlLW92ZXJmbG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlcy9ibG9iLXNsaWNlLW92ZXJmbG93Lmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAgdmFyIHRl
eHQgPSAnJzsKIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDsgKytpKSB0ZXh0ICs9ICdBJzsKIGJ1
aWxkZXIuYXBwZW5kKHRleHQpOwogYmxvYiA9IGJ1aWxkZXIuZ2V0QmxvYigpOwotc2xpY2VkQmxv
YiA9IGJsb2Iuc2xpY2UoMTk5OSwgOTIyMzM3MjAzNjg1NDc3NTAwMCk7CitzbGljZWRCbG9iID0g
YmxvYi53ZWJraXRTbGljZSgxOTk5LCA5MjIzMzcyMDM2ODU0Nzc1MDAwKTsKIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ0Jsb2Igc2xpY2UgbGVuZ3RoOiAnICsgc2xpY2VkQmxvYi5zaXplKSk7CiBpZiAoc2xpY2Vk
QmxvYi5zaXplICE9IDEpIHsKICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnRkFJTCcpKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTVjODkwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjEgQEAKK1NsaWNpbmcgZnJvbSAyIHRvIDM6IDIKK1NsaWNpbmcgZnJvbSAyIHRvIDEy
OiAyMzQ1Njc4OQorU2xpY2luZyBmcm9tIDIgdG8gMjogCitTbGljaW5nIGZyb20gMiB0byAxOiAK
K1NsaWNpbmcgZnJvbSAyIHRvIC0xMjogCitTbGljaW5nIGZyb20gMiB0byAyMTQ3NDgzNjQ3OiAy
MzQ1Njc4OQorU2xpY2luZyBmcm9tIDIgdG8gLTIxNDc0ODM2NDg6IAorU2xpY2luZyBmcm9tIC0y
IHRvIC0xOiA4CitTbGljaW5nIGZyb20gLTIgdG8gLTI6IAorU2xpY2luZyBmcm9tIC0yIHRvIC0z
OiAKK1NsaWNpbmcgZnJvbSAtMiB0byAtMTI6IAorU2xpY2luZyBmcm9tIC0yIHRvIDIxNDc0ODM2
NDc6IDg5CitTbGljaW5nIGZyb20gLTIgdG8gLTIxNDc0ODM2NDg6IAorU2xpY2luZyBmcm9tIDA6
IDAxMjM0NTY3ODkKK1NsaWNpbmcgZnJvbSAyOiAyMzQ1Njc4OQorU2xpY2luZyBmcm9tIC0yOiA4
OQorU2xpY2luZyBmcm9tIDEyOiAKK1NsaWNpbmcgZnJvbSAtMTI6IDAxMjM0NTY3ODkKK1NsaWNp
bmcgZnJvbSAyMTQ3NDgzNjQ3OiAKK1NsaWNpbmcgZnJvbSAtMjE0NzQ4MzY0ODogMDEyMzQ1Njc4
OQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc2xpY2UtdGVzdC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjVjN2VhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QuaHRtbApAQCAtMCwwICsxLDg5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgordmFyIGJsb2I7
Cit2YXIgdGVzdEluZGV4ID0gMDsKK3ZhciBzbGljZVBhcmFtcyA9IFsKKyAgICBbMiwgM10sCisg
ICAgWzIsIDEyXSwKKyAgICBbMiwgMl0sCisgICAgWzIsIDFdLAorICAgIFsyLCAtMTJdLAorICAg
IFsyLCAyMTQ3NDgzNjQ3XSwKKyAgICBbMiwgLTIxNDc0ODM2NDhdLAorICAgIFstMiwgLTFdLAor
ICAgIFstMiwgLTJdLAorICAgIFstMiwgLTNdLAorICAgIFstMiwgLTEyXSwKKyAgICBbLTIsIDIx
NDc0ODM2NDddLAorICAgIFstMiwgLTIxNDc0ODM2NDhdLAorICAgIFswXSwKKyAgICBbMl0sCisg
ICAgWy0yXSwKKyAgICBbMTJdLAorICAgIFstMTJdLAorICAgIFsyMTQ3NDgzNjQ3XSwKKyAgICBb
LTIxNDc0ODM2NDhdLAorXTsKKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlvbiB0ZXN0U2xpY2luZyhzdGFy
dCwgZW5kKQoreworICAgIHZhciBzdWJCbG9iOworICAgIHZhciBtZXNzYWdlOworICAgIHZhciBy
ZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgIGlmIChlbmQgPT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgIHN1YkJsb2IgPSBibG9iLndlYmtpdFNsaWNlKHN0YXJ0KTsKKyAgICAgICAgbWVzc2Fn
ZSA9ICJTbGljaW5nIGZyb20gIiArIHN0YXJ0ICsgIjogIjsKKyAgICB9IGVsc2UgeworICAgICAg
ICBzdWJCbG9iID0gYmxvYi53ZWJraXRTbGljZShzdGFydCwgZW5kKTsKKyAgICAgICAgbWVzc2Fn
ZSA9ICJTbGljaW5nIGZyb20gIiArIHN0YXJ0ICsgIiB0byAiICsgZW5kICsgIjogIjsKKyAgICB9
CisgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZyhtZXNz
YWdlICsgZXZlbnQudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgIHJ1bk5leHRUZXN0KCk7CisgICAg
fTsKKyAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZyht
ZXNzYWdlICsgImVycm9yICIgKyBldmVudC50YXJnZXQuZXJyb3IuY29kZSk7CisgICAgICAgIHJ1
bk5leHRUZXN0KCk7CisgICAgfTsKKyAgICByZWFkZXIucmVhZEFzVGV4dChzdWJCbG9iKTsKK30K
KworZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQoreworICAgIGlmICh0ZXN0SW5kZXggPj0gc2xpY2VQ
YXJhbXMubGVuZ3RoKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAg
IGxvZygiRE9ORSIpOworICAgIH0KKworICAgIHZhciBzdGFydCA9IHNsaWNlUGFyYW1zW3Rlc3RJ
bmRleF1bMF07CisgICAgdmFyIGVuZCA9IHNsaWNlUGFyYW1zW3Rlc3RJbmRleF1bMV07CisgICAg
dGVzdEluZGV4Kys7CisgICAgdGVzdFNsaWNpbmcoc3RhcnQsIGVuZCk7Cit9CisKK2Z1bmN0aW9u
IHJ1blRlc3RzKCkgeworICAgIHZhciBidWlsZGVyID0gbmV3IEJsb2JCdWlsZGVyKCk7CisgICAg
YnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBibG9iID0gYnVpbGRlci5nZXRCbG9i
KCk7CisKKyAgICBydW5OZXh0VGVzdCgpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxwcmUgaWQ9J2NvbnNvbGUnPjwvcHJlPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNv
dXJjZXMvcmVhZC1ibG9iLXRlc3QtY2FzZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jl
c291cmNlcy9yZWFkLWJsb2ItdGVzdC1jYXNlcy5qcwppbmRleCAyMmJmMDQ4Li5mYmE4MWM3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWJsb2ItdGVz
dC1jYXNlcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWJs
b2ItdGVzdC1jYXNlcy5qcwpAQCAtMTA1LDcgKzEwNSw3IEBAIGZ1bmN0aW9uIHRlc3RSZWFkaW5n
U2luZ2xlQXJyYXlCdWZmZXJCbG9iKHRlc3RGaWxlcykKIGZ1bmN0aW9uIHRlc3RSZWFkaW5nU2xp
Y2VkRmlsZUJsb2IodGVzdEZpbGVzKQogewogICAgIGxvZygiVGVzdCByZWFkaW5nIGEgYmxvYiBj
b250YWluaW5nIHNsaWNlZCBmaWxlIik7Ci0gICAgdmFyIGJsb2IgPSBidWlsZEJsb2IoW3Rlc3RG
aWxlc1snZmlsZTInXS5zbGljZSgxLCA1KV0pOworICAgIHZhciBibG9iID0gYnVpbGRCbG9iKFt0
ZXN0RmlsZXNbJ2ZpbGUyJ10ud2Via2l0U2xpY2UoMSwgNildKTsKICAgICByZWFkQmxvYkFzQmlu
YXJ5U3RyaW5nKHRlc3RGaWxlcywgYmxvYik7CiB9CiAKQEAgLTExMyw3ICsxMTMsNyBAQCBmdW5j
dGlvbiB0ZXN0UmVhZGluZ1NsaWNlZFRleHRCbG9iKHRlc3RGaWxlcykKIHsKICAgICBsb2coIlRl
c3QgcmVhZGluZyBhIGJsb2IgY29udGFpbmluZyBzbGljZWQgdGV4dCIpOwogICAgIHZhciBibG9i
ID0gYnVpbGRCbG9iKFsnRmlyc3QnXSkKLSAgICBibG9iID0gYmxvYi5zbGljZSgxLCAxMCk7Cisg
ICAgYmxvYiA9IGJsb2Iud2Via2l0U2xpY2UoMSwgMTEpOwogICAgIHJlYWRCbG9iQXNCaW5hcnlT
dHJpbmcodGVzdEZpbGVzLCBibG9iKTsKIH0KIApAQCAtMTIyLDcgKzEyMiw3IEBAIGZ1bmN0aW9u
IHRlc3RSZWFkaW5nU2xpY2VkQXJyYXlCdWZmZXJCbG9iKHRlc3RGaWxlcykKICAgICBsb2coIlRl
c3QgcmVhZGluZyBhIGJsb2IgY29udGFpbmluZyBzbGljZWQgQXJyYXlCdWZmZXIiKTsKICAgICB2
YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheShbMCwgMSwgMiwgMTI4LCAxMjksIDEzMCwgMjUzLCAy
NTQsIDI1NV0pOwogICAgIHZhciBibG9iID0gYnVpbGRCbG9iKFthcnJheS5idWZmZXJdKQotICAg
IGJsb2IgPSBibG9iLnNsaWNlKDEsIDEwKTsKKyAgICBibG9iID0gYmxvYi53ZWJraXRTbGljZSgx
LCAxMSk7CiAgICAgcmVhZEJsb2JBc0JpbmFyeVN0cmluZyh0ZXN0RmlsZXMsIGJsb2IpOwogfQog
CkBAIC0xNjMsNyArMTYzLDcgQEAgZnVuY3Rpb24gdGVzdFJlYWRpbmdTbGljZWRIeWJyaWRCbG9i
KHRlc3RGaWxlcykKICAgICBsb2coIlRlc3QgcmVhZGluZyBhIHNsaWNlZCBoeWJyaWQgYmxvYiIp
OwogICAgIHZhciBhcnJheSA9IG5ldyBVaW50OEFycmF5KFs0OCwgNDksIDUwXSk7CiAgICAgdmFy
IGJsb2IgPSBidWlsZEJsb2IoWydGaXJzdCcsIHRlc3RGaWxlc1snZmlsZTEnXSwgJ1NlY29uZCcs
IHRlc3RGaWxlc1snZmlsZTInXSwgdGVzdEZpbGVzWydmaWxlMyddLCAnVGhpcmQnLCBhcnJheS5i
dWZmZXJdKTsKLSAgICB2YXIgYmxvYiA9IGJsb2Iuc2xpY2UoNywgMTIpOworICAgIHZhciBibG9i
ID0gYmxvYi53ZWJraXRTbGljZSg3LCAxOSk7CiAgICAgcmVhZEJsb2JBc0JpbmFyeVN0cmluZyh0
ZXN0RmlsZXMsIGJsb2IpOwogfQogCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCBmdW5jdGlvbiB0ZXN0
UmVhZGluZ1RyaXBsZVNsaWNlZEh5YnJpZEJsb2IodGVzdEZpbGVzKQogICAgIGxvZygiVGVzdCBy
ZWFkaW5nIGEgdHJpcGxlLXNsaWNlZCBoeWJyaWQgYmxvYiIpOwogICAgIHZhciBidWlsZGVyID0g
bmV3IEJsb2JCdWlsZGVyKCk7CiAgICAgdmFyIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoWzQ4LCA0
OSwgNTBdKTsKLSAgICB2YXIgYmxvYiA9IGJ1aWxkQmxvYihbJ0ZpcnN0JywgdGVzdEZpbGVzWydm
aWxlMSddLnNsaWNlKDEsIDEwKSwgdGVzdEZpbGVzWydlbXB0eS1maWxlJ10sICdTZWNvbmQnLCB0
ZXN0RmlsZXNbJ2ZpbGUyJ10sIHRlc3RGaWxlc1snZmlsZTMnXSwgJ1RoaXJkJywgYXJyYXkuYnVm
ZmVyXSwgdW5kZWZpbmVkLCBidWlsZGVyKTsKLSAgICB2YXIgYmxvYiA9IGJsb2Iuc2xpY2UoNywg
MTIpOworICAgIHZhciBibG9iID0gYnVpbGRCbG9iKFsnRmlyc3QnLCB0ZXN0RmlsZXNbJ2ZpbGUx
J10ud2Via2l0U2xpY2UoMSwgMTEpLCB0ZXN0RmlsZXNbJ2VtcHR5LWZpbGUnXSwgJ1NlY29uZCcs
IHRlc3RGaWxlc1snZmlsZTInXSwgdGVzdEZpbGVzWydmaWxlMyddLCAnVGhpcmQnLCBhcnJheS5i
dWZmZXJdLCB1bmRlZmluZWQsIGJ1aWxkZXIpOworICAgIHZhciBibG9iID0gYmxvYi53ZWJraXRT
bGljZSg3LCAxOSk7CiAgICAgdmFyIGJsb2IyID0gYnVpbGRCbG9iKFsnRm9vJywgYmxvYiwgJ0Jh
ciddLCB1bmRlZmluZWQsIGJ1aWxkZXIpOwotICAgIHZhciBibG9iMiA9IGJsb2IyLnNsaWNlKDEy
LCAzMCk7CisgICAgdmFyIGJsb2IyID0gYmxvYjIud2Via2l0U2xpY2UoMTIsIDQyKTsKICAgICBy
ZWFkQmxvYkFzQmluYXJ5U3RyaW5nKHRlc3RGaWxlcywgYmxvYjIpOwogfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZpbGUtd3JpdGVyLXV0aWxz
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9maWxlLXdyaXRlci11
dGlscy5qcwppbmRleCAyMGMyOWIzLi44NmUwZjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZpbGUtd3JpdGVyLXV0aWxzLmpzCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZmlsZS13cml0ZXItdXRpbHMuanMKQEAg
LTcyLDcgKzcyLDcgQEAgZnVuY3Rpb24gdmVyaWZ5Qnl0ZVJhbmdlSXNaZXJvZXNIZWxwZXIoZmls
ZSwgc3RhcnQsIGxlbmd0aCwgb25TdWNjZXNzKQogICAgICAgICAgICAgICAgIGFzc2VydChyZXN1
bHQuY2hhckNvZGVBdChpKSA9PSAwKTsKICAgICAgICAgICAgIG9uU3VjY2VzcygpOwogICAgICAg
ICB9OwotICAgIGZpbGVSZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGZpbGUuc2xpY2Uoc3RhcnQs
IGxlbmd0aCkpOworICAgIGZpbGVSZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGZpbGUud2Via2l0
U2xpY2Uoc3RhcnQsIGxlbmd0aCkpOwogfQogCiAvLyBWZXJpZmllcyB0aGF0IGZpbGVFbnRyeSwg
YXQgb2Zmc2V0LCBpcyBhbGwgemVyb2VzIGZvciBsZW5ndGggYnl0ZXMuCkBAIC05MSw3ICs5MSw3
IEBAIGZ1bmN0aW9uIHZlcmlmeUJ5dGVSYW5nZUFzU3RyaW5nSGVscGVyKGZpbGUsIHN0YXJ0LCBk
YXRhLCBvblN1Y2Nlc3MpCiAgICAgICAgICAgICBhc3NlcnQoZmlsZVJlYWRlci5yZXN1bHQgPT0g
ZGF0YSk7CiAgICAgICAgICAgICBvblN1Y2Nlc3MoKTsKICAgICAgICAgfTsKLSAgICBmaWxlUmVh
ZGVyLnJlYWRBc1RleHQoZmlsZS5zbGljZShzdGFydCwgZGF0YS5sZW5ndGgpKTsKKyAgICBmaWxl
UmVhZGVyLnJlYWRBc1RleHQoZmlsZS53ZWJraXRTbGljZShzdGFydCwgZGF0YS5sZW5ndGgpKTsK
IH0KIAogLy8gVmVyaWZpZXMgdGhhdCB0aGUgY29udGVudHMgb2YgZmlsZUVudHJ5LCBhdCBvZmZz
ZXQsIG1hdGNoIGNvbnRlbnRzIFthIHN0cmluZ10uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2NyaXB0LXRlc3RzL3NlbmQtaHlicmlkLWJsb2IuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2NyaXB0LXRlc3RzL3NlbmQtaHlicmlk
LWJsb2IuanMKaW5kZXggMjE2M2I1MS4uMTk4YTZhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NjcmlwdC10ZXN0cy9zZW5kLWh5YnJpZC1ibG9iLmpzCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvYmxvYi9zY3JpcHQtdGVzdHMvc2VuZC1o
eWJyaWQtYmxvYi5qcwpAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiBydW5IeWJyaWRCbG9iVGVz
dChmaWxlSW5kZXhPclN0cmluZ3MsIG9wdF9yYW5nZSkKICAgICB2YXIgYmxvYiA9IHV0aWwuYXBw
ZW5kQW5kQ3JlYXRlQmxvYihmaWxlSW5kZXhPclN0cmluZ3MpOwogICAgIHZhciB1cmxQYXJhbWV0
ZXIgPSB1dGlsLmNyZWF0ZVVybFBhcmFtZXRlcihmaWxlSW5kZXhPclN0cmluZ3MsIG9wdF9yYW5n
ZSk7CiAgICAgaWYgKG9wdF9yYW5nZSkKLSAgICAgICAgYmxvYiA9IGJsb2Iuc2xpY2Uob3B0X3Jh
bmdlLnN0YXJ0LCBvcHRfcmFuZ2UubGVuZ3RoKTsKKyAgICAgICAgYmxvYiA9IGJsb2Iud2Via2l0
U2xpY2Uob3B0X3JhbmdlLnN0YXJ0LCBvcHRfcmFuZ2Uuc3RhcnQgKyBvcHRfcmFuZ2UubGVuZ3Ro
KTsKICAgICB1dGlsLnVwbG9hZEJsb2IoYmxvYiwgdXJsUGFyYW1ldGVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NjcmlwdC10ZXN0cy9zZW5k
LXNsaWNlZC1kYXRhLWJsb2IuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Jsb2Iv
c2NyaXB0LXRlc3RzL3NlbmQtc2xpY2VkLWRhdGEtYmxvYi5qcwppbmRleCBkYTI3NDNlLi5iZTFh
NzMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2NyaXB0
LXRlc3RzL3NlbmQtc2xpY2VkLWRhdGEtYmxvYi5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvY2FsL2Jsb2Ivc2NyaXB0LXRlc3RzL3NlbmQtc2xpY2VkLWRhdGEtYmxvYi5qcwpAQCAt
Nyw3ICs3LDcgQEAgZnVuY3Rpb24gcnVuU2xpY2VUZXN0KGFwcGVuZEl0ZW1zLCByYW5nZXMpCiAg
ICAgdmFyIGJsb2IgPSB1dGlsLmFwcGVuZEFuZENyZWF0ZUJsb2IoYXBwZW5kSXRlbXMpOwogICAg
IHZhciByYW5nZSA9IHsnc3RhcnQnOjAsICdsZW5ndGgnOi0xfTsKICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICBibG9iID0gYmxvYi5zbGljZShy
YW5nZXNbaV0uc3RhcnQsIHJhbmdlc1tpXS5sZW5ndGgpOworICAgICAgICBibG9iID0gYmxvYi53
ZWJraXRTbGljZShyYW5nZXNbaV0uc3RhcnQsIHJhbmdlc1tpXS5zdGFydCArIHJhbmdlc1tpXS5s
ZW5ndGgpOwogICAgICAgICByYW5nZS5zdGFydCArPSByYW5nZXNbaV0uc3RhcnQ7CiAgICAgfQog
ICAgIHJhbmdlLmxlbmd0aCA9IHJhbmdlc1tyYW5nZXMubGVuZ3RoIC0gMV0ubGVuZ3RoOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL3NjcmlwdC10ZXN0
cy9zZW5kLXNsaWNlZC1kcmFnZ2VkLWZpbGUuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2ZpbGVhcGkvc2NyaXB0LXRlc3RzL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5qcwppbmRl
eCAxYzE0ZjYyLi5kOGU1YjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2ZpbGVhcGkvc2NyaXB0LXRlc3RzL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0LXRlc3RzL3NlbmQt
c2xpY2VkLWRyYWdnZWQtZmlsZS5qcwpAQCAtODksNyArODksNyBAQCBmdW5jdGlvbiBjb21wdXRl
RXhwZWN0ZWRMZW5ndGgoZmlsZUxlbmd0aCwgc3RhcnQsIGxlbmd0aCkKIGZ1bmN0aW9uIG9uU3Rh
YmxlRmlsZURyb3AoZmlsZSwgZmlsZVBhdGgsIGZpbGVMZW5ndGgsIHN0YXJ0LCBsZW5ndGgsIGNv
bnRlbnRUeXBlKQogewogICAgIC8vIFNsaWNlIHRoZSBmaWxlLgotICAgIHN1YmZpbGUgPSBmaWxl
LnNsaWNlKHN0YXJ0LCBsZW5ndGgsIGNvbnRlbnRUeXBlKTsKKyAgICBzdWJmaWxlID0gZmlsZS53
ZWJraXRTbGljZShzdGFydCwgc3RhcnQgKyBsZW5ndGgsIGNvbnRlbnRUeXBlKTsKICAgICBzaG91
bGRFdmFsdWF0ZVRvKCJzdWJmaWxlLnNpemUiLCBjb21wdXRlRXhwZWN0ZWRMZW5ndGgoZmlsZUxl
bmd0aCwgc3RhcnQsIGxlbmd0aCkpOwogICAgIHNob3VsZEJlKCJzdWJmaWxlLnR5cGUiLCAoY29u
dGVudFR5cGUgIT0gdW5kZWZpbmVkICYmIGNvbnRlbnRUeXBlICE9IG51bGwpID8gJyInICsgY29u
dGVudFR5cGUgKyAnIicgOiAnIiInKTsKIApAQCAtMTA4LDcgKzEwOCw3IEBAIGZ1bmN0aW9uIGRy
YWdBbmRTbGljZVN0YWJsZUZpbGUoZmlsZVBhdGgsIGZpbGVMZW5ndGgsIHN0YXJ0LCBsZW5ndGgs
IGNvbnRlbnRUeXBlCiBmdW5jdGlvbiBvblVuc3RhYmxlRmlsZURyb3AoZmlsZSwgZmlsZVBhdGgs
IGZpbGVMZW5ndGgsIHN0YXJ0LCBsZW5ndGgsIGNvbnRlbnRUeXBlKQogewogICAgIC8vIFNsaWNl
IHRoZSBmaWxlLgotICAgIHN1YmZpbGUgPSBmaWxlLnNsaWNlKHN0YXJ0LCBsZW5ndGgsIGNvbnRl
bnRUeXBlKTsKKyAgICBzdWJmaWxlID0gZmlsZS53ZWJraXRTbGljZShzdGFydCwgc3RhcnQgKyBs
ZW5ndGgsIGNvbnRlbnRUeXBlKTsKICAgICBzaG91bGRFdmFsdWF0ZVRvKCJzdWJmaWxlLnNpemUi
LCBjb21wdXRlRXhwZWN0ZWRMZW5ndGgoZmlsZUxlbmd0aCwgc3RhcnQsIGxlbmd0aCkpOwogICAg
IHNob3VsZEJlKCJzdWJmaWxlLnR5cGUiLCAoY29udGVudFR5cGUgIT0gdW5kZWZpbmVkICYmIGNv
bnRlbnRUeXBlICE9IG51bGwpID8gJyInICsgY29udGVudFR5cGUgKyAnIicgOiAnIiInKTsKICAg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3Jlc291
cmNlcy9zZW5kLWZvcm0tZGF0YS1jb21tb24uanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2Zvcm1kYXRhL3Jlc291cmNlcy9zZW5kLWZvcm0tZGF0YS1jb21tb24uanMKaW5kZXggMWE1
OWM3OS4uNjA0NzNlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9m
b3JtZGF0YS9yZXNvdXJjZXMvc2VuZC1mb3JtLWRhdGEtY29tbW9uLmpzCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVzb3VyY2VzL3NlbmQtZm9ybS1kYXRhLWNv
bW1vbi5qcwpAQCAtNzMsNyArNzMsNyBAQCBmdW5jdGlvbiB0ZXN0U2VuZGluZ0Zvcm1EYXRhKGRh
dGFMaXN0LCBzZW5kQXNBc3luYywgYWRkRXZlbnRIYW5kbGVycykKICAgICAgICAgICAgICAgICAg
ICAgdmFyIGZpbGUgPSBmaWxlc1tqXTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFMaXN0
W2ldWydzdGFydCddICYmIGRhdGFMaXN0W2ldWydsZW5ndGgnXSkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgZmlsZVNsaWNlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmaWxl
ID0gZmlsZS5zbGljZShkYXRhTGlzdFtpXVsnc3RhcnQnXSwgZGF0YUxpc3RbaV1bJ2xlbmd0aCdd
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUgPSBmaWxlLndlYmtpdFNsaWNlKGRhdGFM
aXN0W2ldWydzdGFydCddLCBkYXRhTGlzdFtpXVsnc3RhcnQnXSArIGRhdGFMaXN0W2ldWydsZW5n
dGgnXSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZm9ybURh
dGFMaXN0LnB1c2goeyduYW1lJzogZGF0YUxpc3RbaV1bJ25hbWUnXSwgJ3ZhbHVlJzogZmlsZX0p
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyODgxM2M5Li44ZTlh
NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQtMTMgIEppYW4gTGkgIDxq
aWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCB3ZWJraXQgcHJlZml4IHRvIEJsb2Iuc2xpY2UgbWV0aG9kIGFuZCBj
aGFuZ2UgaXRzIHNlbWFudGljcyB0byBiZQorICAgICAgICBsaWtlIEFycmF5LnNsaWNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODQ5NgorCisgICAg
ICAgIFJlbmFtZWQgQmxvYi5zbGljZSB0byBibG9iLndlYmtpdFNsaWNlIGFuZCBtYWRlIGl0IHRh
a2Ugc3RhcnQgYW5kIGVuZAorICAgICAgICBwYXJhbWV0ZXJzIHRoYXQncmUgbGlrZSBBcnJheS5z
bGljZS4KKworICAgICAgICBUZXN0OiBmYXN0L2ZpbGVzL2Jsb2Itc2xpY2UtdGVzdC5odG1sCisK
KyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6d2Vi
a2l0U2xpY2UpOgorICAgICAgICAqIGZpbGVhcGkvQmxvYi5oOgorICAgICAgICAqIGZpbGVhcGkv
QmxvYi5pZGw6CisKIDIwMTEtMDQtMTIgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9w
ZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuY3BwCmluZGV4IDkwZGYzYzQuLjNiMzNjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iLmNwcApAQCAtNjMsNyArNjMsNyBAQCBCbG9iOjp+QmxvYigpCiB9CiAKICNpZiBFTkFCTEUo
QkxPQikKLVBhc3NSZWZQdHI8QmxvYj4gQmxvYjo6c2xpY2UobG9uZyBsb25nIHN0YXJ0LCBsb25n
IGxvbmcgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBjb25zdAorUGFzc1JlZlB0
cjxCbG9iPiBCbG9iOjp3ZWJraXRTbGljZShsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGNvbnN0CiB7CiAgICAgLy8gV2hlbiB3ZSBzbGlj
ZSBhIGZpbGUgZm9yIHRoZSBmaXJzdCB0aW1lLCB3ZSBvYnRhaW4gYSBzbmFwc2hvdCBvZiB0aGUg
ZmlsZSBieSBjYXB0dXJpbmcgaXRzIGN1cnJlbnQgc2l6ZSBhbmQgbW9kaWZpY2F0aW9uIHRpbWUu
CiAgICAgLy8gVGhlIG1vZGlmaWNhdGlvbiB0aW1lIHdpbGwgYmUgdXNlZCB0byB2ZXJpZnkgaWYg
dGhlIGZpbGUgaGFzIGJlZW4gY2hhbmdlZCBvciBub3QsIHdoZW4gdGhlIHVuZGVybHlpbmcgZGF0
YSBhcmUgYWNjZXNzZWQuCkBAIC03NywxOCArNzcsMjYgQEAgUGFzc1JlZlB0cjxCbG9iPiBCbG9i
OjpzbGljZShsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgsIGNvbnN0IFN0cmluZyYg
Y28KICAgICAgICAgc2l6ZSA9IG1fc2l6ZTsKICAgICB9CiAKKyAgICAvLyBDb252ZXJ0IHRoZSBu
ZWdhdGl2ZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gc2VsZWN0IGZyb20gdGhlIGVuZC4KKyAgICBp
ZiAoc3RhcnQgPCAwKQorICAgICAgICBzdGFydCA9IHN0YXJ0ICsgc2l6ZTsKKyAgICBpZiAoZW5k
IDwgMCkKKyAgICAgICAgZW5kID0gZW5kICsgc2l6ZTsKKwogICAgIC8vIENsYW1wIHRoZSByYW5n
ZSBpZiBpdCBleGNlZWRzIHRoZSBzaXplIGxpbWl0LgogICAgIGlmIChzdGFydCA8IDApCiAgICAg
ICAgIHN0YXJ0ID0gMDsKLSAgICBpZiAobGVuZ3RoIDwgMCkKLSAgICAgICAgbGVuZ3RoID0gMDsK
LQorICAgIGlmIChlbmQgPCAwKQorICAgICAgICBlbmQgPSAwOwogICAgIGlmIChzdGFydCA+PSBz
aXplKSB7CiAgICAgICAgIHN0YXJ0ID0gMDsKLSAgICAgICAgbGVuZ3RoID0gMDsKLSAgICB9IGVs
c2UgaWYgKHN0YXJ0ICsgbGVuZ3RoID4gc2l6ZSB8fCBsZW5ndGggPiBzdGQ6Om51bWVyaWNfbGlt
aXRzPGxvbmcgbG9uZz46Om1heCgpIC0gc3RhcnQpCi0gICAgICAgIGxlbmd0aCA9IHNpemUgLSBz
dGFydDsKKyAgICAgICAgZW5kID0gMDsKKyAgICB9IGVsc2UgaWYgKGVuZCA8IHN0YXJ0KQorICAg
ICAgICBlbmQgPSBzdGFydDsKKyAgICBlbHNlIGlmIChlbmQgPiBzaXplKQorICAgICAgICBlbmQg
PSBzaXplOwogCisgICAgbG9uZyBsb25nIGxlbmd0aCA9IGVuZCAtIHN0YXJ0OwogICAgIE93blB0
cjxCbG9iRGF0YT4gYmxvYkRhdGEgPSBCbG9iRGF0YTo6Y3JlYXRlKCk7CiAgICAgYmxvYkRhdGEt
PnNldENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBpZiAoaXNGaWxlKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvQmxvYi5oCmluZGV4IDI2OTBmZjUuLjVjZWZjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBA
IC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogI2lmIEVOQUJMRShCTE9CKQotICAgIFBhc3NSZWZQdHI8Qmxv
Yj4gc2xpY2UobG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgbGVuZ3RoLCBjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlID0gU3RyaW5nKCkpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8QmxvYj4gd2Vi
a2l0U2xpY2UobG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kID0gc3RkOjpudW1lcmljX2xp
bWl0czxsb25nIGxvbmc+OjptYXgoKSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9IFN0cmlu
ZygpKSBjb25zdDsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0Jsb2IuaWRsIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmlkbApp
bmRleCAyOTdkMDM5Li44NTExYzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0Jsb2IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5pZGwKQEAgLTM4LDcg
KzM4LDcgQEAgbW9kdWxlIGh0bWwgewogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpCiAjaWYgZGVmaW5lZChFTkFCTEVfQkxPQikgJiYgRU5BQkxFX0JMT0IKLSAgICAgICAgQmxv
YiBzbGljZShpbiBsb25nIGxvbmcgc3RhcnQsIGluIGxvbmcgbG9uZyBsZW5ndGgsIGluIFtPcHRp
b25hbCwgQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvbnRl
bnRUeXBlKTsKKyAgICAgICAgQmxvYiB3ZWJraXRTbGljZShpbiBsb25nIGxvbmcgc3RhcnQsIGlu
IFtPcHRpb25hbF0gbG9uZyBsb25nIGVuZCwgaW4gW09wdGlvbmFsLCBDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29udGVudFR5cGUpOwogI2VuZGlmCiAjZW5k
aWYKICAgICB9Owo=
</data>
<flag name="commit-queue"
          id="82180"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89498</attachid>
            <date>2011-04-13 17:17:48 -0700</date>
            <delta_ts>2011-04-13 21:35:28 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>58496</filename>
            <type>text/plain</type>
            <size>16479</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxODFmYzI4Li45N2I2OGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDQt
MTMgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB3ZWJraXQgcHJlZml4IHRvIEJsb2Iuc2xp
Y2UgbWV0aG9kIGFuZCBjaGFuZ2UgaXRzIHNlbWFudGljcyB0byBiZQorICAgICAgICBsaWtlIEFy
cmF5LnNsaWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01ODQ5NgorCisgICAgICAgIEFkZGVkIGEgbmV3IHRlc3QgdG8gdGVzdCB0aGUgbmV3IGJlaGF2
aW9yIGFuZCBhbHNvIHVwZGF0ZSBhbGwgZXhpc3RpbmcKKyAgICAgICAgdGVzdHMgdG8gdXNlIHRo
ZSBuZXcgbmFtZS4KKworICAgICAgICAqIGZhc3QvZmlsZXMvYmxvYi1zbGljZS1vdmVyZmxvdy5o
dG1sOgorICAgICAgICAqIGZhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1ibG9iLXRlc3QtY2FzZXMuanM6
CisgICAgICAgICh0ZXN0UmVhZGluZ1NsaWNlZEZpbGVCbG9iKToKKyAgICAgICAgKHRlc3RSZWFk
aW5nU2xpY2VkVGV4dEJsb2IpOgorICAgICAgICAodGVzdFJlYWRpbmdTbGljZWRBcnJheUJ1ZmZl
ckJsb2IpOgorICAgICAgICAodGVzdFJlYWRpbmdTbGljZWRIeWJyaWRCbG9iKToKKyAgICAgICAg
KHRlc3RSZWFkaW5nVHJpcGxlU2xpY2VkSHlicmlkQmxvYik6CisgICAgICAgICogZmFzdC9maWxl
c3lzdGVtL3Jlc291cmNlcy9maWxlLXdyaXRlci11dGlscy5qczoKKyAgICAgICAgKHZlcmlmeUJ5
dGVSYW5nZUlzWmVyb2VzSGVscGVyKToKKyAgICAgICAgKHZlcmlmeUJ5dGVSYW5nZUFzU3RyaW5n
SGVscGVyKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2NyaXB0LXRlc3RzL3Nl
bmQtaHlicmlkLWJsb2IuanM6CisgICAgICAgICgpOgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9j
YWwvYmxvYi9zY3JpcHQtdGVzdHMvc2VuZC1zbGljZWQtZGF0YS1ibG9iLmpzOgorICAgICAgICAo
cnVuU2xpY2VUZXN0KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0
LXRlc3RzL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5qczoKKyAgICAgICAgKG9uU3RhYmxlRmls
ZURyb3ApOgorICAgICAgICAob25VbnN0YWJsZUZpbGVEcm9wKToKKyAgICAgICAgKiBodHRwL3Rl
c3RzL2xvY2FsL2Zvcm1kYXRhL3Jlc291cmNlcy9zZW5kLWZvcm0tZGF0YS1jb21tb24uanM6Cisg
ICAgICAgICh0ZXN0U2VuZGluZ0Zvcm1EYXRhKToKKwogMjAxMS0wNC0xMyAgUm9sYW5kIFN0ZWlu
ZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXZpZCBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGlj
ZS1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLW92ZXJm
bG93Lmh0bWwKaW5kZXggZDk3MGQ0YS4uMDQ0MmQ3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy9ibG9iLXNsaWNlLW92ZXJmbG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlcy9ibG9iLXNsaWNlLW92ZXJmbG93Lmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAgdmFyIHRl
eHQgPSAnJzsKIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDsgKytpKSB0ZXh0ICs9ICdBJzsKIGJ1
aWxkZXIuYXBwZW5kKHRleHQpOwogYmxvYiA9IGJ1aWxkZXIuZ2V0QmxvYigpOwotc2xpY2VkQmxv
YiA9IGJsb2Iuc2xpY2UoMTk5OSwgOTIyMzM3MjAzNjg1NDc3NTAwMCk7CitzbGljZWRCbG9iID0g
YmxvYi53ZWJraXRTbGljZSgxOTk5LCA5MjIzMzcyMDM2ODU0Nzc1MDAwKTsKIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ0Jsb2Igc2xpY2UgbGVuZ3RoOiAnICsgc2xpY2VkQmxvYi5zaXplKSk7CiBpZiAoc2xpY2Vk
QmxvYi5zaXplICE9IDEpIHsKICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnRkFJTCcpKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTVjODkwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjEgQEAKK1NsaWNpbmcgZnJvbSAyIHRvIDM6IDIKK1NsaWNpbmcgZnJvbSAyIHRvIDEy
OiAyMzQ1Njc4OQorU2xpY2luZyBmcm9tIDIgdG8gMjogCitTbGljaW5nIGZyb20gMiB0byAxOiAK
K1NsaWNpbmcgZnJvbSAyIHRvIC0xMjogCitTbGljaW5nIGZyb20gMiB0byAyMTQ3NDgzNjQ3OiAy
MzQ1Njc4OQorU2xpY2luZyBmcm9tIDIgdG8gLTIxNDc0ODM2NDg6IAorU2xpY2luZyBmcm9tIC0y
IHRvIC0xOiA4CitTbGljaW5nIGZyb20gLTIgdG8gLTI6IAorU2xpY2luZyBmcm9tIC0yIHRvIC0z
OiAKK1NsaWNpbmcgZnJvbSAtMiB0byAtMTI6IAorU2xpY2luZyBmcm9tIC0yIHRvIDIxNDc0ODM2
NDc6IDg5CitTbGljaW5nIGZyb20gLTIgdG8gLTIxNDc0ODM2NDg6IAorU2xpY2luZyBmcm9tIDA6
IDAxMjM0NTY3ODkKK1NsaWNpbmcgZnJvbSAyOiAyMzQ1Njc4OQorU2xpY2luZyBmcm9tIC0yOiA4
OQorU2xpY2luZyBmcm9tIDEyOiAKK1NsaWNpbmcgZnJvbSAtMTI6IDAxMjM0NTY3ODkKK1NsaWNp
bmcgZnJvbSAyMTQ3NDgzNjQ3OiAKK1NsaWNpbmcgZnJvbSAtMjE0NzQ4MzY0ODogMDEyMzQ1Njc4
OQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc2xpY2UtdGVzdC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2YzMzE4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QuaHRtbApAQCAtMCwwICsxLDg5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgordmFyIGJsb2I7
Cit2YXIgdGVzdEluZGV4ID0gMDsKK3ZhciBzbGljZVBhcmFtcyA9IFsKKyAgICBbMiwgM10sCisg
ICAgWzIsIDEyXSwKKyAgICBbMiwgMl0sCisgICAgWzIsIDFdLAorICAgIFsyLCAtMTJdLAorICAg
IFsyLCAyMTQ3NDgzNjQ3XSwKKyAgICBbMiwgLTIxNDc0ODM2NDhdLAorICAgIFstMiwgLTFdLAor
ICAgIFstMiwgLTJdLAorICAgIFstMiwgLTNdLAorICAgIFstMiwgLTEyXSwKKyAgICBbLTIsIDIx
NDc0ODM2NDddLAorICAgIFstMiwgLTIxNDc0ODM2NDhdLAorICAgIFswXSwKKyAgICBbMl0sCisg
ICAgWy0yXSwKKyAgICBbMTJdLAorICAgIFstMTJdLAorICAgIFsyMTQ3NDgzNjQ3XSwKKyAgICBb
LTIxNDc0ODM2NDhdLAorXTsKKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlvbiB0ZXN0U2xpY2luZyhzdGFy
dCwgZW5kKQoreworICAgIHZhciBzdWJCbG9iOworICAgIHZhciBtZXNzYWdlOworICAgIHZhciBy
ZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgIGlmIChlbmQgPT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgIHN1YkJsb2IgPSBibG9iLndlYmtpdFNsaWNlKHN0YXJ0KTsKKyAgICAgICAgbWVzc2Fn
ZSA9ICJTbGljaW5nIGZyb20gIiArIHN0YXJ0ICsgIjogIjsKKyAgICB9IGVsc2UgeworICAgICAg
ICBzdWJCbG9iID0gYmxvYi53ZWJraXRTbGljZShzdGFydCwgZW5kKTsKKyAgICAgICAgbWVzc2Fn
ZSA9ICJTbGljaW5nIGZyb20gIiArIHN0YXJ0ICsgIiB0byAiICsgZW5kICsgIjogIjsKKyAgICB9
CisgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZyhtZXNz
YWdlICsgZXZlbnQudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgIHJ1bk5leHRUZXN0KCk7CisgICAg
fTsKKyAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZyht
ZXNzYWdlICsgImVycm9yICIgKyBldmVudC50YXJnZXQuZXJyb3IuY29kZSk7CisgICAgICAgIHJ1
bk5leHRUZXN0KCk7CisgICAgfTsKKyAgICByZWFkZXIucmVhZEFzVGV4dChzdWJCbG9iKTsKK30K
KworZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQoreworICAgIGlmICh0ZXN0SW5kZXggPj0gc2xpY2VQ
YXJhbXMubGVuZ3RoKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICB2YXIgc3RhcnQgPSBzbGljZVBhcmFtc1t0ZXN0SW5kZXhd
WzBdOworICAgIHZhciBlbmQgPSBzbGljZVBhcmFtc1t0ZXN0SW5kZXhdWzFdOworICAgIHRlc3RJ
bmRleCsrOworICAgIHRlc3RTbGljaW5nKHN0YXJ0LCBlbmQpOworfQorCitmdW5jdGlvbiBydW5U
ZXN0cygpIHsKKyAgICB2YXIgYnVpbGRlciA9IG5ldyBCbG9iQnVpbGRlcigpOworICAgIGJ1aWxk
ZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgYmxvYiA9IGJ1aWxkZXIuZ2V0QmxvYigpOwor
CisgICAgcnVuTmV4dFRlc3QoKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Cis8cHJlIGlkPSdjb25zb2xlJz48L3ByZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2Vz
L3JlYWQtYmxvYi10ZXN0LWNhc2VzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJj
ZXMvcmVhZC1ibG9iLXRlc3QtY2FzZXMuanMKaW5kZXggMjJiZjA0OC4uZmJhODFjNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1ibG9iLXRlc3QtY2Fz
ZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1ibG9iLXRl
c3QtY2FzZXMuanMKQEAgLTEwNSw3ICsxMDUsNyBAQCBmdW5jdGlvbiB0ZXN0UmVhZGluZ1Npbmds
ZUFycmF5QnVmZmVyQmxvYih0ZXN0RmlsZXMpCiBmdW5jdGlvbiB0ZXN0UmVhZGluZ1NsaWNlZEZp
bGVCbG9iKHRlc3RGaWxlcykKIHsKICAgICBsb2coIlRlc3QgcmVhZGluZyBhIGJsb2IgY29udGFp
bmluZyBzbGljZWQgZmlsZSIpOwotICAgIHZhciBibG9iID0gYnVpbGRCbG9iKFt0ZXN0RmlsZXNb
J2ZpbGUyJ10uc2xpY2UoMSwgNSldKTsKKyAgICB2YXIgYmxvYiA9IGJ1aWxkQmxvYihbdGVzdEZp
bGVzWydmaWxlMiddLndlYmtpdFNsaWNlKDEsIDYpXSk7CiAgICAgcmVhZEJsb2JBc0JpbmFyeVN0
cmluZyh0ZXN0RmlsZXMsIGJsb2IpOwogfQogCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24g
dGVzdFJlYWRpbmdTbGljZWRUZXh0QmxvYih0ZXN0RmlsZXMpCiB7CiAgICAgbG9nKCJUZXN0IHJl
YWRpbmcgYSBibG9iIGNvbnRhaW5pbmcgc2xpY2VkIHRleHQiKTsKICAgICB2YXIgYmxvYiA9IGJ1
aWxkQmxvYihbJ0ZpcnN0J10pCi0gICAgYmxvYiA9IGJsb2Iuc2xpY2UoMSwgMTApOworICAgIGJs
b2IgPSBibG9iLndlYmtpdFNsaWNlKDEsIDExKTsKICAgICByZWFkQmxvYkFzQmluYXJ5U3RyaW5n
KHRlc3RGaWxlcywgYmxvYik7CiB9CiAKQEAgLTEyMiw3ICsxMjIsNyBAQCBmdW5jdGlvbiB0ZXN0
UmVhZGluZ1NsaWNlZEFycmF5QnVmZmVyQmxvYih0ZXN0RmlsZXMpCiAgICAgbG9nKCJUZXN0IHJl
YWRpbmcgYSBibG9iIGNvbnRhaW5pbmcgc2xpY2VkIEFycmF5QnVmZmVyIik7CiAgICAgdmFyIGFy
cmF5ID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDEyOCwgMTI5LCAxMzAsIDI1MywgMjU0LCAy
NTVdKTsKICAgICB2YXIgYmxvYiA9IGJ1aWxkQmxvYihbYXJyYXkuYnVmZmVyXSkKLSAgICBibG9i
ID0gYmxvYi5zbGljZSgxLCAxMCk7CisgICAgYmxvYiA9IGJsb2Iud2Via2l0U2xpY2UoMSwgMTEp
OwogICAgIHJlYWRCbG9iQXNCaW5hcnlTdHJpbmcodGVzdEZpbGVzLCBibG9iKTsKIH0KIApAQCAt
MTYzLDcgKzE2Myw3IEBAIGZ1bmN0aW9uIHRlc3RSZWFkaW5nU2xpY2VkSHlicmlkQmxvYih0ZXN0
RmlsZXMpCiAgICAgbG9nKCJUZXN0IHJlYWRpbmcgYSBzbGljZWQgaHlicmlkIGJsb2IiKTsKICAg
ICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheShbNDgsIDQ5LCA1MF0pOwogICAgIHZhciBibG9i
ID0gYnVpbGRCbG9iKFsnRmlyc3QnLCB0ZXN0RmlsZXNbJ2ZpbGUxJ10sICdTZWNvbmQnLCB0ZXN0
RmlsZXNbJ2ZpbGUyJ10sIHRlc3RGaWxlc1snZmlsZTMnXSwgJ1RoaXJkJywgYXJyYXkuYnVmZmVy
XSk7Ci0gICAgdmFyIGJsb2IgPSBibG9iLnNsaWNlKDcsIDEyKTsKKyAgICB2YXIgYmxvYiA9IGJs
b2Iud2Via2l0U2xpY2UoNywgMTkpOwogICAgIHJlYWRCbG9iQXNCaW5hcnlTdHJpbmcodGVzdEZp
bGVzLCBibG9iKTsKIH0KIApAQCAtMTcyLDEwICsxNzIsMTAgQEAgZnVuY3Rpb24gdGVzdFJlYWRp
bmdUcmlwbGVTbGljZWRIeWJyaWRCbG9iKHRlc3RGaWxlcykKICAgICBsb2coIlRlc3QgcmVhZGlu
ZyBhIHRyaXBsZS1zbGljZWQgaHlicmlkIGJsb2IiKTsKICAgICB2YXIgYnVpbGRlciA9IG5ldyBC
bG9iQnVpbGRlcigpOwogICAgIHZhciBhcnJheSA9IG5ldyBVaW50OEFycmF5KFs0OCwgNDksIDUw
XSk7Ci0gICAgdmFyIGJsb2IgPSBidWlsZEJsb2IoWydGaXJzdCcsIHRlc3RGaWxlc1snZmlsZTEn
XS5zbGljZSgxLCAxMCksIHRlc3RGaWxlc1snZW1wdHktZmlsZSddLCAnU2Vjb25kJywgdGVzdEZp
bGVzWydmaWxlMiddLCB0ZXN0RmlsZXNbJ2ZpbGUzJ10sICdUaGlyZCcsIGFycmF5LmJ1ZmZlcl0s
IHVuZGVmaW5lZCwgYnVpbGRlcik7Ci0gICAgdmFyIGJsb2IgPSBibG9iLnNsaWNlKDcsIDEyKTsK
KyAgICB2YXIgYmxvYiA9IGJ1aWxkQmxvYihbJ0ZpcnN0JywgdGVzdEZpbGVzWydmaWxlMSddLndl
YmtpdFNsaWNlKDEsIDExKSwgdGVzdEZpbGVzWydlbXB0eS1maWxlJ10sICdTZWNvbmQnLCB0ZXN0
RmlsZXNbJ2ZpbGUyJ10sIHRlc3RGaWxlc1snZmlsZTMnXSwgJ1RoaXJkJywgYXJyYXkuYnVmZmVy
XSwgdW5kZWZpbmVkLCBidWlsZGVyKTsKKyAgICB2YXIgYmxvYiA9IGJsb2Iud2Via2l0U2xpY2Uo
NywgMTkpOwogICAgIHZhciBibG9iMiA9IGJ1aWxkQmxvYihbJ0ZvbycsIGJsb2IsICdCYXInXSwg
dW5kZWZpbmVkLCBidWlsZGVyKTsKLSAgICB2YXIgYmxvYjIgPSBibG9iMi5zbGljZSgxMiwgMzAp
OworICAgIHZhciBibG9iMiA9IGJsb2IyLndlYmtpdFNsaWNlKDEyLCA0Mik7CiAgICAgcmVhZEJs
b2JBc0JpbmFyeVN0cmluZyh0ZXN0RmlsZXMsIGJsb2IyKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9maWxlLXdyaXRlci11dGlscy5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZmlsZS13cml0ZXItdXRpbHMu
anMKaW5kZXggMjBjMjliMy4uODZlMGYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9maWxlLXdyaXRlci11dGlscy5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZpbGUtd3JpdGVyLXV0aWxzLmpzCkBAIC03Miw3
ICs3Miw3IEBAIGZ1bmN0aW9uIHZlcmlmeUJ5dGVSYW5nZUlzWmVyb2VzSGVscGVyKGZpbGUsIHN0
YXJ0LCBsZW5ndGgsIG9uU3VjY2VzcykKICAgICAgICAgICAgICAgICBhc3NlcnQocmVzdWx0LmNo
YXJDb2RlQXQoaSkgPT0gMCk7CiAgICAgICAgICAgICBvblN1Y2Nlc3MoKTsKICAgICAgICAgfTsK
LSAgICBmaWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlLnNsaWNlKHN0YXJ0LCBsZW5n
dGgpKTsKKyAgICBmaWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlLndlYmtpdFNsaWNl
KHN0YXJ0LCBsZW5ndGgpKTsKIH0KIAogLy8gVmVyaWZpZXMgdGhhdCBmaWxlRW50cnksIGF0IG9m
ZnNldCwgaXMgYWxsIHplcm9lcyBmb3IgbGVuZ3RoIGJ5dGVzLgpAQCAtOTEsNyArOTEsNyBAQCBm
dW5jdGlvbiB2ZXJpZnlCeXRlUmFuZ2VBc1N0cmluZ0hlbHBlcihmaWxlLCBzdGFydCwgZGF0YSwg
b25TdWNjZXNzKQogICAgICAgICAgICAgYXNzZXJ0KGZpbGVSZWFkZXIucmVzdWx0ID09IGRhdGEp
OwogICAgICAgICAgICAgb25TdWNjZXNzKCk7CiAgICAgICAgIH07Ci0gICAgZmlsZVJlYWRlci5y
ZWFkQXNUZXh0KGZpbGUuc2xpY2Uoc3RhcnQsIGRhdGEubGVuZ3RoKSk7CisgICAgZmlsZVJlYWRl
ci5yZWFkQXNUZXh0KGZpbGUud2Via2l0U2xpY2Uoc3RhcnQsIGRhdGEubGVuZ3RoKSk7CiB9CiAK
IC8vIFZlcmlmaWVzIHRoYXQgdGhlIGNvbnRlbnRzIG9mIGZpbGVFbnRyeSwgYXQgb2Zmc2V0LCBt
YXRjaCBjb250ZW50cyBbYSBzdHJpbmddLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2NhbC9ibG9iL3NjcmlwdC10ZXN0cy9zZW5kLWh5YnJpZC1ibG9iLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NjcmlwdC10ZXN0cy9zZW5kLWh5YnJpZC1ibG9i
LmpzCmluZGV4IDIxNjNiNTEuLjE5OGE2YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9jYWwvYmxvYi9zY3JpcHQtdGVzdHMvc2VuZC1oeWJyaWQtYmxvYi5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2NyaXB0LXRlc3RzL3NlbmQtaHlicmlk
LWJsb2IuanMKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gcnVuSHlicmlkQmxvYlRlc3QoZmls
ZUluZGV4T3JTdHJpbmdzLCBvcHRfcmFuZ2UpCiAgICAgdmFyIGJsb2IgPSB1dGlsLmFwcGVuZEFu
ZENyZWF0ZUJsb2IoZmlsZUluZGV4T3JTdHJpbmdzKTsKICAgICB2YXIgdXJsUGFyYW1ldGVyID0g
dXRpbC5jcmVhdGVVcmxQYXJhbWV0ZXIoZmlsZUluZGV4T3JTdHJpbmdzLCBvcHRfcmFuZ2UpOwog
ICAgIGlmIChvcHRfcmFuZ2UpCi0gICAgICAgIGJsb2IgPSBibG9iLnNsaWNlKG9wdF9yYW5nZS5z
dGFydCwgb3B0X3JhbmdlLmxlbmd0aCk7CisgICAgICAgIGJsb2IgPSBibG9iLndlYmtpdFNsaWNl
KG9wdF9yYW5nZS5zdGFydCwgb3B0X3JhbmdlLnN0YXJ0ICsgb3B0X3JhbmdlLmxlbmd0aCk7CiAg
ICAgdXRpbC51cGxvYWRCbG9iKGJsb2IsIHVybFBhcmFtZXRlcik7CiB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvYmxvYi9zY3JpcHQtdGVzdHMvc2VuZC1zbGlj
ZWQtZGF0YS1ibG9iLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3Njcmlw
dC10ZXN0cy9zZW5kLXNsaWNlZC1kYXRhLWJsb2IuanMKaW5kZXggZGEyNzQzZS4uYmUxYTczMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9ibG9iL3NjcmlwdC10ZXN0
cy9zZW5kLXNsaWNlZC1kYXRhLWJsb2IuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
b2NhbC9ibG9iL3NjcmlwdC10ZXN0cy9zZW5kLXNsaWNlZC1kYXRhLWJsb2IuanMKQEAgLTcsNyAr
Nyw3IEBAIGZ1bmN0aW9uIHJ1blNsaWNlVGVzdChhcHBlbmRJdGVtcywgcmFuZ2VzKQogICAgIHZh
ciBibG9iID0gdXRpbC5hcHBlbmRBbmRDcmVhdGVCbG9iKGFwcGVuZEl0ZW1zKTsKICAgICB2YXIg
cmFuZ2UgPSB7J3N0YXJ0JzowLCAnbGVuZ3RoJzotMX07CiAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByYW5nZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgYmxvYiA9IGJsb2Iuc2xpY2UocmFuZ2Vz
W2ldLnN0YXJ0LCByYW5nZXNbaV0ubGVuZ3RoKTsKKyAgICAgICAgYmxvYiA9IGJsb2Iud2Via2l0
U2xpY2UocmFuZ2VzW2ldLnN0YXJ0LCByYW5nZXNbaV0uc3RhcnQgKyByYW5nZXNbaV0ubGVuZ3Ro
KTsKICAgICAgICAgcmFuZ2Uuc3RhcnQgKz0gcmFuZ2VzW2ldLnN0YXJ0OwogICAgIH0KICAgICBy
YW5nZS5sZW5ndGggPSByYW5nZXNbcmFuZ2VzLmxlbmd0aCAtIDFdLmxlbmd0aDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zY3JpcHQtdGVzdHMvc2Vu
ZC1zbGljZWQtZHJhZ2dlZC1maWxlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9m
aWxlYXBpL3NjcmlwdC10ZXN0cy9zZW5kLXNsaWNlZC1kcmFnZ2VkLWZpbGUuanMKaW5kZXggMWMx
NGY2Mi4uZDhlNWI5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9m
aWxlYXBpL3NjcmlwdC10ZXN0cy9zZW5kLXNsaWNlZC1kcmFnZ2VkLWZpbGUuanMKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL3NjcmlwdC10ZXN0cy9zZW5kLXNsaWNl
ZC1kcmFnZ2VkLWZpbGUuanMKQEAgLTg5LDcgKzg5LDcgQEAgZnVuY3Rpb24gY29tcHV0ZUV4cGVj
dGVkTGVuZ3RoKGZpbGVMZW5ndGgsIHN0YXJ0LCBsZW5ndGgpCiBmdW5jdGlvbiBvblN0YWJsZUZp
bGVEcm9wKGZpbGUsIGZpbGVQYXRoLCBmaWxlTGVuZ3RoLCBzdGFydCwgbGVuZ3RoLCBjb250ZW50
VHlwZSkKIHsKICAgICAvLyBTbGljZSB0aGUgZmlsZS4KLSAgICBzdWJmaWxlID0gZmlsZS5zbGlj
ZShzdGFydCwgbGVuZ3RoLCBjb250ZW50VHlwZSk7CisgICAgc3ViZmlsZSA9IGZpbGUud2Via2l0
U2xpY2Uoc3RhcnQsIHN0YXJ0ICsgbGVuZ3RoLCBjb250ZW50VHlwZSk7CiAgICAgc2hvdWxkRXZh
bHVhdGVUbygic3ViZmlsZS5zaXplIiwgY29tcHV0ZUV4cGVjdGVkTGVuZ3RoKGZpbGVMZW5ndGgs
IHN0YXJ0LCBsZW5ndGgpKTsKICAgICBzaG91bGRCZSgic3ViZmlsZS50eXBlIiwgKGNvbnRlbnRU
eXBlICE9IHVuZGVmaW5lZCAmJiBjb250ZW50VHlwZSAhPSBudWxsKSA/ICciJyArIGNvbnRlbnRU
eXBlICsgJyInIDogJyIiJyk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBmdW5jdGlvbiBkcmFnQW5k
U2xpY2VTdGFibGVGaWxlKGZpbGVQYXRoLCBmaWxlTGVuZ3RoLCBzdGFydCwgbGVuZ3RoLCBjb250
ZW50VHlwZQogZnVuY3Rpb24gb25VbnN0YWJsZUZpbGVEcm9wKGZpbGUsIGZpbGVQYXRoLCBmaWxl
TGVuZ3RoLCBzdGFydCwgbGVuZ3RoLCBjb250ZW50VHlwZSkKIHsKICAgICAvLyBTbGljZSB0aGUg
ZmlsZS4KLSAgICBzdWJmaWxlID0gZmlsZS5zbGljZShzdGFydCwgbGVuZ3RoLCBjb250ZW50VHlw
ZSk7CisgICAgc3ViZmlsZSA9IGZpbGUud2Via2l0U2xpY2Uoc3RhcnQsIHN0YXJ0ICsgbGVuZ3Ro
LCBjb250ZW50VHlwZSk7CiAgICAgc2hvdWxkRXZhbHVhdGVUbygic3ViZmlsZS5zaXplIiwgY29t
cHV0ZUV4cGVjdGVkTGVuZ3RoKGZpbGVMZW5ndGgsIHN0YXJ0LCBsZW5ndGgpKTsKICAgICBzaG91
bGRCZSgic3ViZmlsZS50eXBlIiwgKGNvbnRlbnRUeXBlICE9IHVuZGVmaW5lZCAmJiBjb250ZW50
VHlwZSAhPSBudWxsKSA/ICciJyArIGNvbnRlbnRUeXBlICsgJyInIDogJyIiJyk7CiAgIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZXNvdXJjZXMv
c2VuZC1mb3JtLWRhdGEtY29tbW9uLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9m
b3JtZGF0YS9yZXNvdXJjZXMvc2VuZC1mb3JtLWRhdGEtY29tbW9uLmpzCmluZGV4IDFhNTljNzku
LjYwNDczZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRh
dGEvcmVzb3VyY2VzL3NlbmQtZm9ybS1kYXRhLWNvbW1vbi5qcworKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3Jlc291cmNlcy9zZW5kLWZvcm0tZGF0YS1jb21tb24u
anMKQEAgLTczLDcgKzczLDcgQEAgZnVuY3Rpb24gdGVzdFNlbmRpbmdGb3JtRGF0YShkYXRhTGlz
dCwgc2VuZEFzQXN5bmMsIGFkZEV2ZW50SGFuZGxlcnMpCiAgICAgICAgICAgICAgICAgICAgIHZh
ciBmaWxlID0gZmlsZXNbal07CiAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhTGlzdFtpXVsn
c3RhcnQnXSAmJiBkYXRhTGlzdFtpXVsnbGVuZ3RoJ10pIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbGVTbGljZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSA9IGZp
bGUuc2xpY2UoZGF0YUxpc3RbaV1bJ3N0YXJ0J10sIGRhdGFMaXN0W2ldWydsZW5ndGgnXSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0gZmlsZS53ZWJraXRTbGljZShkYXRhTGlzdFtp
XVsnc3RhcnQnXSwgZGF0YUxpc3RbaV1bJ3N0YXJ0J10gKyBkYXRhTGlzdFtpXVsnbGVuZ3RoJ10p
OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhTGlz
dC5wdXNoKHsnbmFtZSc6IGRhdGFMaXN0W2ldWyduYW1lJ10sICd2YWx1ZSc6IGZpbGV9KTsKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg4MTNjOS4uOGU5YTU4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTA0LTEzICBKaWFuIExpICA8amlhbmxp
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgd2Via2l0IHByZWZpeCB0byBCbG9iLnNsaWNlIG1ldGhvZCBhbmQgY2hhbmdl
IGl0cyBzZW1hbnRpY3MgdG8gYmUKKyAgICAgICAgbGlrZSBBcnJheS5zbGljZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg0OTYKKworICAgICAgICBS
ZW5hbWVkIEJsb2Iuc2xpY2UgdG8gYmxvYi53ZWJraXRTbGljZSBhbmQgbWFkZSBpdCB0YWtlIHN0
YXJ0IGFuZCBlbmQKKyAgICAgICAgcGFyYW1ldGVycyB0aGF0J3JlIGxpa2UgQXJyYXkuc2xpY2Uu
CisKKyAgICAgICAgVGVzdDogZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QuaHRtbAorCisgICAg
ICAgICogZmlsZWFwaS9CbG9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OndlYmtpdFNs
aWNlKToKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuaDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2Iu
aWRsOgorCiAyMDExLTA0LTEyICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9z
c2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9CbG9iLmNwcAppbmRleCA5MGRmM2M0Li4zYjMzY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5j
cHAKQEAgLTYzLDcgKzYzLDcgQEAgQmxvYjo6fkJsb2IoKQogfQogCiAjaWYgRU5BQkxFKEJMT0Ip
Ci1QYXNzUmVmUHRyPEJsb2I+IEJsb2I6OnNsaWNlKGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25n
IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgY29uc3QKK1Bhc3NSZWZQdHI8Qmxv
Yj4gQmxvYjo6d2Via2l0U2xpY2UobG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBjb25zdAogewogICAgIC8vIFdoZW4gd2Ugc2xpY2UgYSBm
aWxlIGZvciB0aGUgZmlyc3QgdGltZSwgd2Ugb2J0YWluIGEgc25hcHNob3Qgb2YgdGhlIGZpbGUg
YnkgY2FwdHVyaW5nIGl0cyBjdXJyZW50IHNpemUgYW5kIG1vZGlmaWNhdGlvbiB0aW1lLgogICAg
IC8vIFRoZSBtb2RpZmljYXRpb24gdGltZSB3aWxsIGJlIHVzZWQgdG8gdmVyaWZ5IGlmIHRoZSBm
aWxlIGhhcyBiZWVuIGNoYW5nZWQgb3Igbm90LCB3aGVuIHRoZSB1bmRlcmx5aW5nIGRhdGEgYXJl
IGFjY2Vzc2VkLgpAQCAtNzcsMTggKzc3LDI2IEBAIFBhc3NSZWZQdHI8QmxvYj4gQmxvYjo6c2xp
Y2UobG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIGNvCiAg
ICAgICAgIHNpemUgPSBtX3NpemU7CiAgICAgfQogCisgICAgLy8gQ29udmVydCB0aGUgbmVnYXRp
dmUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIHNlbGVjdCBmcm9tIHRoZSBlbmQuCisgICAgaWYgKHN0
YXJ0IDwgMCkKKyAgICAgICAgc3RhcnQgPSBzdGFydCArIHNpemU7CisgICAgaWYgKGVuZCA8IDAp
CisgICAgICAgIGVuZCA9IGVuZCArIHNpemU7CisKICAgICAvLyBDbGFtcCB0aGUgcmFuZ2UgaWYg
aXQgZXhjZWVkcyB0aGUgc2l6ZSBsaW1pdC4KICAgICBpZiAoc3RhcnQgPCAwKQogICAgICAgICBz
dGFydCA9IDA7Ci0gICAgaWYgKGxlbmd0aCA8IDApCi0gICAgICAgIGxlbmd0aCA9IDA7Ci0KKyAg
ICBpZiAoZW5kIDwgMCkKKyAgICAgICAgZW5kID0gMDsKICAgICBpZiAoc3RhcnQgPj0gc2l6ZSkg
ewogICAgICAgICBzdGFydCA9IDA7Ci0gICAgICAgIGxlbmd0aCA9IDA7Ci0gICAgfSBlbHNlIGlm
IChzdGFydCArIGxlbmd0aCA+IHNpemUgfHwgbGVuZ3RoID4gc3RkOjpudW1lcmljX2xpbWl0czxs
b25nIGxvbmc+OjptYXgoKSAtIHN0YXJ0KQotICAgICAgICBsZW5ndGggPSBzaXplIC0gc3RhcnQ7
CisgICAgICAgIGVuZCA9IDA7CisgICAgfSBlbHNlIGlmIChlbmQgPCBzdGFydCkKKyAgICAgICAg
ZW5kID0gc3RhcnQ7CisgICAgZWxzZSBpZiAoZW5kID4gc2l6ZSkKKyAgICAgICAgZW5kID0gc2l6
ZTsKIAorICAgIGxvbmcgbG9uZyBsZW5ndGggPSBlbmQgLSBzdGFydDsKICAgICBPd25QdHI8Qmxv
YkRhdGE+IGJsb2JEYXRhID0gQmxvYkRhdGE6OmNyZWF0ZSgpOwogICAgIGJsb2JEYXRhLT5zZXRD
b250ZW50VHlwZShjb250ZW50VHlwZSk7CiAgICAgaWYgKGlzRmlsZSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Js
b2IuaAppbmRleCAyNjkwZmY1Li41Y2VmYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaApAQCAtNjMs
NyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRmlsZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICNpZiBFTkFCTEUoQkxPQikKLSAgICBQYXNzUmVmUHRyPEJsb2I+IHNs
aWNlKGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGxlbmd0aCwgY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSA9IFN0cmluZygpKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPEJsb2I+IHdlYmtpdFNs
aWNlKGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
bG9uZyBsb25nPjo6bWF4KCksIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUgPSBTdHJpbmcoKSkg
Y29uc3Q7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9CbG9iLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5pZGwKaW5kZXgg
Mjk3ZDAzOS4uODUxMWM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9i
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCkBAIC0zOCw3ICszOCw3
IEBAIG1vZHVsZSBodG1sIHsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQog
I2lmIGRlZmluZWQoRU5BQkxFX0JMT0IpICYmIEVOQUJMRV9CTE9CCi0gICAgICAgIEJsb2Igc2xp
Y2UoaW4gbG9uZyBsb25nIHN0YXJ0LCBpbiBsb25nIGxvbmcgbGVuZ3RoLCBpbiBbT3B0aW9uYWws
IENvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb250ZW50VHlw
ZSk7CisgICAgICAgIEJsb2Igd2Via2l0U2xpY2UoaW4gbG9uZyBsb25nIHN0YXJ0LCBpbiBbT3B0
aW9uYWxdIGxvbmcgbG9uZyBlbmQsIGluIFtPcHRpb25hbCwgQ29udmVydFVuZGVmaW5lZE9yTnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvbnRlbnRUeXBlKTsKICNlbmRpZgogI2VuZGlmCiAg
ICAgfTsK
</data>
<flag name="review"
          id="82182"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="82183"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>