<?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>165857</bug_id>
          
          <creation_ts>2016-12-14 10:23:46 -0800</creation_ts>
          <short_desc>[JSC] Optimize Kraken stringify</short_desc>
          <delta_ts>2016-12-15 02:29:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1259803</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-12-14 10:23:46 -0800</bug_when>
    <thetext>In Kraken&apos;s stringify test, roughly 30% of time is used by StringBuilder::appendQuotedJSONString.
I think we have room for optimization in this function.

I have a patch that shows 1% performance improvement in Linux box, but I need to test it with macOS clang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259806</commentid>
    <comment_count>1</comment_count>
      <attachid>297100</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-12-14 10:25:11 -0800</bug_when>
    <thetext>Created attachment 297100
Patch

WIP: Linux box shows 1% improvement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259813</commentid>
    <comment_count>2</comment_count>
      <attachid>297101</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-12-14 10:41:34 -0800</bug_when>
    <thetext>Created attachment 297101
Patch

WIP: Linux box shows 4.6% improvement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260084</commentid>
    <comment_count>3</comment_count>
      <attachid>297179</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-12-15 00:25:07 -0800</bug_when>
    <thetext>Created attachment 297179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260091</commentid>
    <comment_count>4</comment_count>
      <attachid>297183</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-12-15 00:50:33 -0800</bug_when>
    <thetext>Created attachment 297183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260098</commentid>
    <comment_count>5</comment_count>
      <attachid>297183</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-12-15 01:18:35 -0800</bug_when>
    <thetext>Comment on attachment 297183
Patch

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

&gt; Source/WTF/wtf/text/StringBuilder.cpp:429
&gt; +        if (LIKELY(character != &apos;&quot;&apos; &amp;&amp; character != &apos;\\&apos; &amp;&amp; character &gt; 0x1F)) {

For 8-bit characters can we make it even faster with a 256 byte array?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260105</commentid>
    <comment_count>6</comment_count>
      <attachid>297183</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-12-15 02:02:43 -0800</bug_when>
    <thetext>Comment on attachment 297183
Patch

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

&gt;&gt; Source/WTF/wtf/text/StringBuilder.cpp:429
&gt;&gt; +        if (LIKELY(character != &apos;&quot;&apos; &amp;&amp; character != &apos;\\&apos; &amp;&amp; character &gt; 0x1F)) {
&gt; 
&gt; For 8-bit characters can we make it even faster with a 256 byte array?

I&apos;ve created additional two versions.

1. Bit packed array version.

451         static constexpr const uint64_t masks[4] = {
452             0xfffffffb00000000ULL,
453             0xffffffffefffffffULL,
454             0xffffffffffffffffULL,
455             0xffffffffffffffffULL,
456         };
457
458         if (masks[character &gt;&gt; 6]  &amp; (1ULL &lt;&lt; (character &amp; 0b111111))) {
459             *output++ = character;
460             continue;
461         }

2. 256 bytes array version.

The result on MBP.

                                   256array                   branch                   packed    

json-stringify-tinderbox        27.237+-0.212             27.157+-0.196      ?      27.239+-0.213

Overall, they show the same results. I think this is because branch prediction works well.
So I think the current version is OK.

BTW, if we put it on the Aarch64 cores, it could show the different results because Intel cores has sophisticated branch predictions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260107</commentid>
    <comment_count>7</comment_count>
      <attachid>297183</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 02:29:31 -0800</bug_when>
    <thetext>Comment on attachment 297183
Patch

Clearing flags on attachment: 297183

Committed r209858: &lt;http://trac.webkit.org/changeset/209858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260108</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 02:29:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297100</attachid>
            <date>2016-12-14 10:25:11 -0800</date>
            <delta_ts>2016-12-14 10:41:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165857-20161215032419.patch</filename>
            <type>text/plain</type>
            <size>2729</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyZWM4NDI5ZmQyZjNkNWU0ZjQxMjkx
NWExZTYyZWNhYjc2MmFiYjEuLjlhZWU2ZDQ0NjFjYzUwY2I2ZDhlNjg3MDZjMjU3ZmIyYzhkMDE0
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTItMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gT3B0aW1pemUgS3Jha2VuIHN0cmlu
Z2lmeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
ODU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdURjo6YXBwZW5kUXVvdGVkSlNP
TlN0cmluZ0ludGVybmFsKToKKwogMjAxNi0xMi0xNCAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6
ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIwNzg3OS0yMDc4
OTEpOiBbR1N0cmVhbWVyXSBJbnRyb2R1Y2VkIG1hbnkgbGF5b3V0IHRlc3QgZmFpbHVyZXMgYW5k
IGNyYXNoZXMsIGJvdHMgZXhpdGluZyBlYXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5jcHAKaW5kZXggYmQ3OTNhNDExYWQxOGZiYjg4MjliNGNhN2IwNDA0ZTY3NzdlNjJhYy4uODVi
MjU0OThkZWRhZWFlMzg1MDk5YzIwOGI4YTFkMzM4N2RlMzY2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuY3BwCkBAIC0zODksMTMgKzM4OSwxMyBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgT3V0cHV0Q2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgSW5wdXRDaGFyYWN0ZXJUeXBlPgogc3Rh
dGljIHZvaWQgYXBwZW5kUXVvdGVkSlNPTlN0cmluZ0ludGVybmFsKE91dHB1dENoYXJhY3RlclR5
cGUqJiBvdXRwdXQsIGNvbnN0IElucHV0Q2hhcmFjdGVyVHlwZSogaW5wdXQsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBmb3IgKGNvbnN0IElucHV0Q2hhcmFjdGVyVHlwZSogZW5kID0gaW5wdXQg
KyBsZW5ndGg7IGlucHV0ICE9IGVuZDsgKytpbnB1dCkgewotICAgICAgICBpZiAoTElLRUxZKCpp
bnB1dCA+IDB4MUYpKSB7Ci0gICAgICAgICAgICBpZiAoKmlucHV0ID09ICciJyB8fCAqaW5wdXQg
PT0gJ1xcJykKLSAgICAgICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwotICAgICAgICAgICAg
Km91dHB1dCsrID0gKmlucHV0OworICAgICAgICBjb25zdCBJbnB1dENoYXJhY3RlclR5cGUgY2hh
cmFjdGVyID0gKmlucHV0OworICAgICAgICBpZiAoTElLRUxZKGNoYXJhY3RlciAhPSAnIicgJiYg
Y2hhcmFjdGVyICE9ICdcXCcgJiYgY2hhcmFjdGVyID4gMHgxRikpIHsKKyAgICAgICAgICAgICpv
dXRwdXQrKyA9IGNoYXJhY3RlcjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0g
ICAgICAgIHN3aXRjaCAoKmlucHV0KSB7CisKKyAgICAgICAgc3dpdGNoIChjaGFyYWN0ZXIpIHsK
ICAgICAgICAgY2FzZSAnXHQnOgogICAgICAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKICAgICAg
ICAgICAgICpvdXRwdXQrKyA9ICd0JzsKQEAgLTQxNiwxNCArNDE2LDIyIEBAIHN0YXRpYyB2b2lk
IGFwcGVuZFF1b3RlZEpTT05TdHJpbmdJbnRlcm5hbChPdXRwdXRDaGFyYWN0ZXJUeXBlKiYgb3V0
cHV0LCBjb25zdCBJCiAgICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwogICAgICAgICAgICAg
Km91dHB1dCsrID0gJ2InOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJyInOgor
ICAgICAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKKyAgICAgICAgICAgICpvdXRwdXQrKyA9ICci
JzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdcXCc6CisgICAgICAgICAgICAq
b3V0cHV0KysgPSAnXFwnOworICAgICAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKKyAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUKCgqaW5wdXQg
JiAweEZGMDApID09IDApOworICAgICAgICAgICAgQVNTRVJUKCEoY2hhcmFjdGVyICYgMHhGRjAw
KSk7CiAgICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwogICAgICAgICAgICAgKm91dHB1dCsr
ID0gJ3UnOwogICAgICAgICAgICAgKm91dHB1dCsrID0gJzAnOwogICAgICAgICAgICAgKm91dHB1
dCsrID0gJzAnOwotICAgICAgICAgICAgKm91dHB1dCsrID0gdXBwZXJOaWJibGVUb0xvd2VyY2Fz
ZUFTQ0lJSGV4RGlnaXQoKmlucHV0KTsKLSAgICAgICAgICAgICpvdXRwdXQrKyA9IGxvd2VyTmli
YmxlVG9Mb3dlcmNhc2VBU0NJSUhleERpZ2l0KCppbnB1dCk7CisgICAgICAgICAgICAqb3V0cHV0
KysgPSB1cHBlck5pYmJsZVRvTG93ZXJjYXNlQVNDSUlIZXhEaWdpdChjaGFyYWN0ZXIpOworICAg
ICAgICAgICAgKm91dHB1dCsrID0gbG93ZXJOaWJibGVUb0xvd2VyY2FzZUFTQ0lJSGV4RGlnaXQo
Y2hhcmFjdGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297101</attachid>
            <date>2016-12-14 10:41:34 -0800</date>
            <delta_ts>2016-12-15 00:25:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165857-20161215034043.patch</filename>
            <type>text/plain</type>
            <size>2653</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyZWM4NDI5ZmQyZjNkNWU0ZjQxMjkx
NWExZTYyZWNhYjc2MmFiYjEuLjlhZWU2ZDQ0NjFjYzUwY2I2ZDhlNjg3MDZjMjU3ZmIyYzhkMDE0
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTItMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gT3B0aW1pemUgS3Jha2VuIHN0cmlu
Z2lmeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
ODU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdURjo6YXBwZW5kUXVvdGVkSlNP
TlN0cmluZ0ludGVybmFsKToKKwogMjAxNi0xMi0xNCAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6
ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIwNzg3OS0yMDc4
OTEpOiBbR1N0cmVhbWVyXSBJbnRyb2R1Y2VkIG1hbnkgbGF5b3V0IHRlc3QgZmFpbHVyZXMgYW5k
IGNyYXNoZXMsIGJvdHMgZXhpdGluZyBlYXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5jcHAKaW5kZXggYmQ3OTNhNDExYWQxOGZiYjg4MjliNGNhN2IwNDA0ZTY3NzdlNjJhYy4uNmQ5
NWJkMGNiOGIyYjhmZjIwNjc2ZDQ3NWQyMmM3OTBlZGI5ZWUwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuY3BwCkBAIC0zODksMTMgKzM4OSwxOSBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgT3V0cHV0Q2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgSW5wdXRDaGFyYWN0ZXJUeXBlPgogc3Rh
dGljIHZvaWQgYXBwZW5kUXVvdGVkSlNPTlN0cmluZ0ludGVybmFsKE91dHB1dENoYXJhY3RlclR5
cGUqJiBvdXRwdXQsIGNvbnN0IElucHV0Q2hhcmFjdGVyVHlwZSogaW5wdXQsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBmb3IgKGNvbnN0IElucHV0Q2hhcmFjdGVyVHlwZSogZW5kID0gaW5wdXQg
KyBsZW5ndGg7IGlucHV0ICE9IGVuZDsgKytpbnB1dCkgewotICAgICAgICBpZiAoTElLRUxZKCpp
bnB1dCA+IDB4MUYpKSB7Ci0gICAgICAgICAgICBpZiAoKmlucHV0ID09ICciJyB8fCAqaW5wdXQg
PT0gJ1xcJykKLSAgICAgICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwotICAgICAgICAgICAg
Km91dHB1dCsrID0gKmlucHV0OworICAgICAgICBjb25zdCBJbnB1dENoYXJhY3RlclR5cGUgY2hh
cmFjdGVyID0gKmlucHV0OworICAgICAgICBpZiAoTElLRUxZKGNoYXJhY3RlciAhPSAnIicgJiYg
Y2hhcmFjdGVyICE9ICdcXCcgJiYgY2hhcmFjdGVyID4gMHgxRikpIHsKKyAgICAgICAgICAgICpv
dXRwdXQrKyA9IGNoYXJhY3RlcjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0g
ICAgICAgIHN3aXRjaCAoKmlucHV0KSB7CisKKyAgICAgICAgaWYgKGNoYXJhY3RlciA9PSAnIicg
fHwgY2hhcmFjdGVyID09ICdcXCcpIHsKKyAgICAgICAgICAgICpvdXRwdXQrKyA9ICdcXCc7Cisg
ICAgICAgICAgICAqb3V0cHV0KysgPSBjaGFyYWN0ZXI7CisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoY2hhcmFjdGVyKSB7CiAgICAgICAgIGNhc2Ug
J1x0JzoKICAgICAgICAgICAgICpvdXRwdXQrKyA9ICdcXCc7CiAgICAgICAgICAgICAqb3V0cHV0
KysgPSAndCc7CkBAIC00MTcsMTMgKzQyMywxMyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRRdW90ZWRK
U09OU3RyaW5nSW50ZXJuYWwoT3V0cHV0Q2hhcmFjdGVyVHlwZSomIG91dHB1dCwgY29uc3QgSQog
ICAgICAgICAgICAgKm91dHB1dCsrID0gJ2InOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlQoKCppbnB1dCAmIDB4RkYwMCkgPT0gMCk7Cisg
ICAgICAgICAgICBBU1NFUlQoIShjaGFyYWN0ZXIgJiAweEZGMDApKTsKICAgICAgICAgICAgICpv
dXRwdXQrKyA9ICdcXCc7CiAgICAgICAgICAgICAqb3V0cHV0KysgPSAndSc7CiAgICAgICAgICAg
ICAqb3V0cHV0KysgPSAnMCc7CiAgICAgICAgICAgICAqb3V0cHV0KysgPSAnMCc7Ci0gICAgICAg
ICAgICAqb3V0cHV0KysgPSB1cHBlck5pYmJsZVRvTG93ZXJjYXNlQVNDSUlIZXhEaWdpdCgqaW5w
dXQpOwotICAgICAgICAgICAgKm91dHB1dCsrID0gbG93ZXJOaWJibGVUb0xvd2VyY2FzZUFTQ0lJ
SGV4RGlnaXQoKmlucHV0KTsKKyAgICAgICAgICAgICpvdXRwdXQrKyA9IHVwcGVyTmliYmxlVG9M
b3dlcmNhc2VBU0NJSUhleERpZ2l0KGNoYXJhY3Rlcik7CisgICAgICAgICAgICAqb3V0cHV0Kysg
PSBsb3dlck5pYmJsZVRvTG93ZXJjYXNlQVNDSUlIZXhEaWdpdChjaGFyYWN0ZXIpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297179</attachid>
            <date>2016-12-15 00:25:07 -0800</date>
            <delta_ts>2016-12-15 00:50:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165857-20161215172419.patch</filename>
            <type>text/plain</type>
            <size>5002</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk1OTcwOTMzMzA4YmM2MWJhZDQzOWE0
ZDYzMTNmYjQ4ZDMxZDQyODcuLjI1YjA0Mzc5YTdlODY2MGIzNzFiMDM5MDlkYzQ3YWZhZWVkNDY3
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTYtMTItMTUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gT3B0aW1pemUgS3Jha2VuIHN0cmlu
Z2lmeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
ODU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgS3Jh
a2VuIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCBwZXJmb3JtYW5jZSBoZWF2aWx5IHJlbGllcyBv
biBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nLgorICAgICAgICBBY2NvcmRp
bmcgdG8gdGhlIHJlc3VsdCBwcm9kdWNlZCBieSBMaW51eCBgcGVyZmAsIGl0IG9jY3VwaWVzIDI4
JSBvZiBleGVjdXRpb24gdGltZS4KKworICAgICAgICBXZSB0aWdodGVuIHRoZSBob3R0ZXN0IGxv
b3AgaW4gdGhlIGFib3ZlIGZ1bmN0aW9uLiBXZSBjcmVhdGUgdGhlIHN1cGVyIGZhc3QgcGF0aCBm
b3Igbm9uIGVzY2FwaW5nIGNhc2UuCisgICAgICAgIEFuZCBhZGQgIiBhbmQgXCBjYXNlcyAoc2lu
Y2UgaW5jbHVkaW5nICIgaW4gdGhlIHN0cmluZyBpcyBjb21tb24pLiBUaGVuIHdlIGZhbGxiYWNr
IHRvIHRoZSBzbG93IGNhc2UuCisKKyAgICAgICAgSXQgaW1wcm92ZXMgdGhlIHBlcmZvcm1hbmNl
IDUuNSUgaW4gS3Jha2VuIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveC4KKworICAgICAgICBQZXJm
b3JtYW5jZSByZXN1bHQgaW4gbXkgTUJQIChkYW5kZWxpb24pLgorCisgICAgICAgICAgICBDb2xs
ZWN0ZWQgMTAwIHNhbXBsZXMgcGVyIGJlbmNobWFyay9WTSwgd2l0aCAxMDAgVk0gaW52b2NhdGlv
bnMgcGVyIGJlbmNobWFyay4gRW1pdHRlZCBhIGNhbGwgdG8gZ2MoKQorICAgICAgICAgICAgYmV0
d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLiBVc2VkIDEgYmVuY2htYXJrIGl0ZXJhdGlvbiBwZXIg
Vk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUKKyAgICAgICAgICAgIGpzYy1zcGVj
aWZpYyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbCB0aW1p
bmcuIFJlcG9ydGluZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRpbWVzCisgICAgICAgICAgICB3aXRo
IDk1JSBjb25maWRlbmNlIGludGVydmFscyBpbiBtaWxsaXNlY29uZHMuCisKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAgICAg
ICAgICBwYXRjaGVkCisKKyAgICAgICAgICAgIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCAgICAg
ICAgMjkuMjQzKy0wLjI0MSAgICAgIF4gICAgICAyNy43MDErLTAuMjM1ICAgICAgICAgXiBkZWZp
bml0ZWx5IDEuMDU1N3ggZmFzdGVyCisKKyAgICAgICAgICAgIDxhcml0aG1ldGljPiAgICAgICAg
ICAgICAgICAgICAgMjkuMjQzKy0wLjI0MSAgICAgIF4gICAgICAyNy43MDErLTAuMjM1ICAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMDU1N3ggZmFzdGVyCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdURjo6YXBwZW5kUXVvdGVkSlNPTlN0cmluZ0ludGVy
bmFsU2xvdyk6CisgICAgICAgIChXVEY6OmFwcGVuZFF1b3RlZEpTT05TdHJpbmdJbnRlcm5hbCk6
CisKIDIwMTYtMTItMTQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDk3OTUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBiZDc5M2E0MTFhZDE4ZmJiODgyOWI0Y2E3YjA0MDRl
Njc3N2U2MmFjLi40MzYwMTVhNDNiYWE5MGYyN2E0MDdjZjlkYTllOGVkODQ0ZjJlMzE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKQEAgLTM4Niw0NiArMzg2LDU4IEBAIHZv
aWQgU3RyaW5nQnVpbGRlcjo6c2hyaW5rVG9GaXQoKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
T3V0cHV0Q2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgSW5wdXRDaGFyYWN0ZXJUeXBlPgorc3RhdGlj
IHZvaWQgYXBwZW5kUXVvdGVkSlNPTlN0cmluZ0ludGVybmFsU2xvdyhPdXRwdXRDaGFyYWN0ZXJU
eXBlKiYgb3V0cHV0LCBjb25zdCBJbnB1dENoYXJhY3RlclR5cGUgY2hhcmFjdGVyKQoreworICAg
IHN3aXRjaCAoY2hhcmFjdGVyKSB7CisgICAgY2FzZSAnXHQnOgorICAgICAgICAqb3V0cHV0Kysg
PSAnXFwnOworICAgICAgICAqb3V0cHV0KysgPSAndCc7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgJ1xyJzoKKyAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKKyAgICAgICAgKm91dHB1dCsrID0g
J3InOworICAgICAgICBicmVhazsKKyAgICBjYXNlICdcbic6CisgICAgICAgICpvdXRwdXQrKyA9
ICdcXCc7CisgICAgICAgICpvdXRwdXQrKyA9ICduJzsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSAnXGYnOgorICAgICAgICAqb3V0cHV0KysgPSAnXFwnOworICAgICAgICAqb3V0cHV0KysgPSAn
Zic7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgJ1xiJzoKKyAgICAgICAgKm91dHB1dCsrID0g
J1xcJzsKKyAgICAgICAgKm91dHB1dCsrID0gJ2InOworICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICBBU1NFUlQoIShjaGFyYWN0ZXIgJiAweEZGMDApKTsKKyAgICAgICAgKm91
dHB1dCsrID0gJ1xcJzsKKyAgICAgICAgKm91dHB1dCsrID0gJ3UnOworICAgICAgICAqb3V0cHV0
KysgPSAnMCc7CisgICAgICAgICpvdXRwdXQrKyA9ICcwJzsKKyAgICAgICAgKm91dHB1dCsrID0g
dXBwZXJOaWJibGVUb0xvd2VyY2FzZUFTQ0lJSGV4RGlnaXQoY2hhcmFjdGVyKTsKKyAgICAgICAg
Km91dHB1dCsrID0gbG93ZXJOaWJibGVUb0xvd2VyY2FzZUFTQ0lJSGV4RGlnaXQoY2hhcmFjdGVy
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgT3V0cHV0
Q2hhcmFjdGVyVHlwZSwgdHlwZW5hbWUgSW5wdXRDaGFyYWN0ZXJUeXBlPgogc3RhdGljIHZvaWQg
YXBwZW5kUXVvdGVkSlNPTlN0cmluZ0ludGVybmFsKE91dHB1dENoYXJhY3RlclR5cGUqJiBvdXRw
dXQsIGNvbnN0IElucHV0Q2hhcmFjdGVyVHlwZSogaW5wdXQsIHVuc2lnbmVkIGxlbmd0aCkKIHsK
ICAgICBmb3IgKGNvbnN0IElucHV0Q2hhcmFjdGVyVHlwZSogZW5kID0gaW5wdXQgKyBsZW5ndGg7
IGlucHV0ICE9IGVuZDsgKytpbnB1dCkgewotICAgICAgICBpZiAoTElLRUxZKCppbnB1dCA+IDB4
MUYpKSB7Ci0gICAgICAgICAgICBpZiAoKmlucHV0ID09ICciJyB8fCAqaW5wdXQgPT0gJ1xcJykK
LSAgICAgICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwotICAgICAgICAgICAgKm91dHB1dCsr
ID0gKmlucHV0OworICAgICAgICBjb25zdCBJbnB1dENoYXJhY3RlclR5cGUgY2hhcmFjdGVyID0g
KmlucHV0OworICAgICAgICBpZiAoTElLRUxZKGNoYXJhY3RlciAhPSAnIicgJiYgY2hhcmFjdGVy
ICE9ICdcXCcgJiYgY2hhcmFjdGVyID4gMHgxRikpIHsKKyAgICAgICAgICAgICpvdXRwdXQrKyA9
IGNoYXJhY3RlcjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIHN3
aXRjaCAoKmlucHV0KSB7Ci0gICAgICAgIGNhc2UgJ1x0JzoKLSAgICAgICAgICAgICpvdXRwdXQr
KyA9ICdcXCc7Ci0gICAgICAgICAgICAqb3V0cHV0KysgPSAndCc7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSAnXHInOgotICAgICAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKLSAg
ICAgICAgICAgICpvdXRwdXQrKyA9ICdyJzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlICdcbic6Ci0gICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwotICAgICAgICAgICAgKm91
dHB1dCsrID0gJ24nOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ1xmJzoKLSAg
ICAgICAgICAgICpvdXRwdXQrKyA9ICdcXCc7Ci0gICAgICAgICAgICAqb3V0cHV0KysgPSAnZic7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAnXGInOgotICAgICAgICAgICAgKm91
dHB1dCsrID0gJ1xcJzsKLSAgICAgICAgICAgICpvdXRwdXQrKyA9ICdiJzsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUKCgqaW5wdXQgJiAw
eEZGMDApID09IDApOworCisgICAgICAgIGlmIChjaGFyYWN0ZXIgPT0gJyInIHx8IGNoYXJhY3Rl
ciA9PSAnXFwnKSB7CiAgICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwotICAgICAgICAgICAg
Km91dHB1dCsrID0gJ3UnOwotICAgICAgICAgICAgKm91dHB1dCsrID0gJzAnOwotICAgICAgICAg
ICAgKm91dHB1dCsrID0gJzAnOwotICAgICAgICAgICAgKm91dHB1dCsrID0gdXBwZXJOaWJibGVU
b0xvd2VyY2FzZUFTQ0lJSGV4RGlnaXQoKmlucHV0KTsKLSAgICAgICAgICAgICpvdXRwdXQrKyA9
IGxvd2VyTmliYmxlVG9Mb3dlcmNhc2VBU0NJSUhleERpZ2l0KCppbnB1dCk7Ci0gICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICpvdXRwdXQrKyA9IGNoYXJhY3RlcjsKKyAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CisKKyAgICAgICAgYXBwZW5kUXVvdGVkSlNPTlN0cmluZ0lu
dGVybmFsU2xvdyhvdXRwdXQsIGNoYXJhY3Rlcik7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297183</attachid>
            <date>2016-12-15 00:50:33 -0800</date>
            <delta_ts>2016-12-15 02:29:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165857-20161215174940.patch</filename>
            <type>text/plain</type>
            <size>5870</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDk1OTcwOTMzMzA4YmM2MWJhZDQzOWE0
ZDYzMTNmYjQ4ZDMxZDQyODcuLmEyNDdjZmY0YTNjNTk3N2EzZGRjMzczMDdlYmVmODVjNDg4MjQ2
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTYtMTItMTUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gT3B0aW1pemUgS3Jha2VuIHN0cmlu
Z2lmeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
ODU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgS3Jh
a2VuIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCBwZXJmb3JtYW5jZSBoZWF2aWx5IHJlbGllcyBv
biBTdHJpbmdCdWlsZGVyOjphcHBlbmRRdW90ZWRKU09OU3RyaW5nLgorICAgICAgICBBY2NvcmRp
bmcgdG8gdGhlIHJlc3VsdCBwcm9kdWNlZCBieSBMaW51eCBgcGVyZmAsIGl0IG9jY3VwaWVzIDI4
JSBvZiBleGVjdXRpb24gdGltZS4KKworICAgICAgICBXZSB0aWdodGVuIHRoZSBob3R0ZXN0IGxv
b3AgaW4gdGhlIGFib3ZlIGZ1bmN0aW9uLiBXZSBjcmVhdGUgdGhlIHN1cGVyIGZhc3QgcGF0aCBm
b3Igbm9uIGVzY2FwaW5nIGNhc2UuCisgICAgICAgIEFuZCBhZGQgIiBhbmQgXCBjYXNlcyAoc2lu
Y2UgaW5jbHVkaW5nICIgaW4gdGhlIHN0cmluZyBpcyBjb21tb24pLiBUaGVuIHdlIGZhbGxiYWNr
IHRvIHRoZSBzbG93IGNhc2UuCisKKyAgICAgICAgSXQgaW1wcm92ZXMgdGhlIHBlcmZvcm1hbmNl
IDUuNSUgaW4gS3Jha2VuIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCBpbiBNQlAuCisKKyAgICAg
ICAgICAgIFBlcmZvcm1hbmNlIHJlc3VsdCBpbiBteSBNQlAgKGRhbmRlbGlvbikuCisKKyAgICAg
ICAgICAgICAgICBDb2xsZWN0ZWQgMTAwIHNhbXBsZXMgcGVyIGJlbmNobWFyay9WTSwgd2l0aCAx
MDAgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFyay4gRW1pdHRlZCBhIGNhbGwgdG8gZ2MoKQor
ICAgICAgICAgICAgICAgIGJldHdlZW4gc2FtcGxlIG1lYXN1cmVtZW50cy4gVXNlZCAxIGJlbmNo
bWFyayBpdGVyYXRpb24gcGVyIFZNIGludm9jYXRpb24gZm9yIHdhcm0tdXAuIFVzZWQgdGhlCisg
ICAgICAgICAgICAgICAganNjLXNwZWNpZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0
IG1pY3Jvc2Vjb25kLWxldmVsIHRpbWluZy4gUmVwb3J0aW5nIGJlbmNobWFyayBleGVjdXRpb24g
dGltZXMKKyAgICAgICAgICAgICAgICB3aXRoIDk1JSBjb25maWRlbmNlIGludGVydmFscyBpbiBt
aWxsaXNlY29uZHMuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJhc2VsaW5lICAgICAgICAgICAgICAgICAgcGF0Y2hlZAorCisgICAgICAgICAg
ICAgICAganNvbi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAyOS4yNDMrLTAuMjQxICAgICAg
XiAgICAgIDI3LjcwMSstMC4yMzUgICAgICAgICBeIGRlZmluaXRlbHkgMS4wNTU3eCBmYXN0ZXIK
KworICAgICAgICAgICAgICAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgMjkuMjQz
Ky0wLjI0MSAgICAgIF4gICAgICAyNy43MDErLTAuMjM1ICAgICAgICAgXiBkZWZpbml0ZWx5IDEu
MDU1N3ggZmFzdGVyCisKKyAgICAgICAgICAgIFBlcmZvcm1hbmNlIHJlc3VsdCBpbiBteSBMaW51
eCBsYXB0b3AgKGhhbmF5YW1hdGEpLgorCisgICAgICAgICAgICAgICAgQ29sbGVjdGVkIDEwMCBz
YW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggMTAwIFZNIGludm9jYXRpb25zIHBlciBiZW5j
aG1hcmsuIEVtaXR0ZWQgYSBjYWxsIHRvIGdjKCkKKyAgICAgICAgICAgICAgICBiZXR3ZWVuIHNh
bXBsZSBtZWFzdXJlbWVudHMuIFVzZWQgMSBiZW5jaG1hcmsgaXRlcmF0aW9uIHBlciBWTSBpbnZv
Y2F0aW9uIGZvciB3YXJtLXVwLiBVc2VkIHRoZQorICAgICAgICAgICAgICAgIGpzYy1zcGVjaWZp
YyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbCB0aW1pbmcu
IFJlcG9ydGluZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRpbWVzCisgICAgICAgICAgICAgICAgd2l0
aCA5NSUgY29uZmlkZW5jZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgorCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlbGluZSAgICAgICAg
ICAgICAgICAgIHBhdGNoZWQKKworICAgICAgICAgICAgICAgIGpzb24tc3RyaW5naWZ5LXRpbmRl
cmJveCAgICAgICAgMjYuNzExKy0wLjQ3NSAgICAgIF4gICAgICAyNS4yNTUrLTAuMDM0ICAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMDU3N3ggZmFzdGVyCisKKyAgICAgICAgICAgICAgICA8YXJpdGht
ZXRpYz4gICAgICAgICAgICAgICAgICAgIDI2LjcxMSstMC40NzUgICAgICBeICAgICAgMjUuMjU1
Ky0wLjAzNCAgICAgICAgIF4gZGVmaW5pdGVseSAxLjA1Nzd4IGZhc3RlcgorCisgICAgICAgICog
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHA6CisgICAgICAgIChXVEY6OmFwcGVuZFF1b3RlZEpT
T05TdHJpbmdJbnRlcm5hbFNsb3cpOgorICAgICAgICAoV1RGOjphcHBlbmRRdW90ZWRKU09OU3Ry
aW5nSW50ZXJuYWwpOgorCiAyMDE2LTEyLTE0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjA5Nzk1Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAKaW5kZXggYmQ3OTNhNDExYWQxOGZiYjg4
MjliNGNhN2IwNDA0ZTY3NzdlNjJhYy4uNDM2MDE1YTQzYmFhOTBmMjdhNDA3Y2Y5ZGE5ZThlZDg0
NGYyZTMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuY3BwCkBAIC0zODYsNDYg
KzM4Niw1OCBAQCB2b2lkIFN0cmluZ0J1aWxkZXI6OnNocmlua1RvRml0KCkKIH0KIAogdGVtcGxh
dGUgPHR5cGVuYW1lIE91dHB1dENoYXJhY3RlclR5cGUsIHR5cGVuYW1lIElucHV0Q2hhcmFjdGVy
VHlwZT4KK3N0YXRpYyB2b2lkIGFwcGVuZFF1b3RlZEpTT05TdHJpbmdJbnRlcm5hbFNsb3coT3V0
cHV0Q2hhcmFjdGVyVHlwZSomIG91dHB1dCwgY29uc3QgSW5wdXRDaGFyYWN0ZXJUeXBlIGNoYXJh
Y3RlcikKK3sKKyAgICBzd2l0Y2ggKGNoYXJhY3RlcikgeworICAgIGNhc2UgJ1x0JzoKKyAgICAg
ICAgKm91dHB1dCsrID0gJ1xcJzsKKyAgICAgICAgKm91dHB1dCsrID0gJ3QnOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlICdccic6CisgICAgICAgICpvdXRwdXQrKyA9ICdcXCc7CisgICAgICAg
ICpvdXRwdXQrKyA9ICdyJzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAnXG4nOgorICAgICAg
ICAqb3V0cHV0KysgPSAnXFwnOworICAgICAgICAqb3V0cHV0KysgPSAnbic7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgJ1xmJzoKKyAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKKyAgICAgICAg
Km91dHB1dCsrID0gJ2YnOworICAgICAgICBicmVhazsKKyAgICBjYXNlICdcYic6CisgICAgICAg
ICpvdXRwdXQrKyA9ICdcXCc7CisgICAgICAgICpvdXRwdXQrKyA9ICdiJzsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUKCEoY2hhcmFjdGVyICYgMHhGRjAwKSk7
CisgICAgICAgICpvdXRwdXQrKyA9ICdcXCc7CisgICAgICAgICpvdXRwdXQrKyA9ICd1JzsKKyAg
ICAgICAgKm91dHB1dCsrID0gJzAnOworICAgICAgICAqb3V0cHV0KysgPSAnMCc7CisgICAgICAg
ICpvdXRwdXQrKyA9IHVwcGVyTmliYmxlVG9Mb3dlcmNhc2VBU0NJSUhleERpZ2l0KGNoYXJhY3Rl
cik7CisgICAgICAgICpvdXRwdXQrKyA9IGxvd2VyTmliYmxlVG9Mb3dlcmNhc2VBU0NJSUhleERp
Z2l0KGNoYXJhY3Rlcik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGUgPHR5
cGVuYW1lIE91dHB1dENoYXJhY3RlclR5cGUsIHR5cGVuYW1lIElucHV0Q2hhcmFjdGVyVHlwZT4K
IHN0YXRpYyB2b2lkIGFwcGVuZFF1b3RlZEpTT05TdHJpbmdJbnRlcm5hbChPdXRwdXRDaGFyYWN0
ZXJUeXBlKiYgb3V0cHV0LCBjb25zdCBJbnB1dENoYXJhY3RlclR5cGUqIGlucHV0LCB1bnNpZ25l
ZCBsZW5ndGgpCiB7CiAgICAgZm9yIChjb25zdCBJbnB1dENoYXJhY3RlclR5cGUqIGVuZCA9IGlu
cHV0ICsgbGVuZ3RoOyBpbnB1dCAhPSBlbmQ7ICsraW5wdXQpIHsKLSAgICAgICAgaWYgKExJS0VM
WSgqaW5wdXQgPiAweDFGKSkgewotICAgICAgICAgICAgaWYgKCppbnB1dCA9PSAnIicgfHwgKmlu
cHV0ID09ICdcXCcpCi0gICAgICAgICAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKLSAgICAgICAg
ICAgICpvdXRwdXQrKyA9ICppbnB1dDsKKyAgICAgICAgY29uc3QgSW5wdXRDaGFyYWN0ZXJUeXBl
IGNoYXJhY3RlciA9ICppbnB1dDsKKyAgICAgICAgaWYgKExJS0VMWShjaGFyYWN0ZXIgIT0gJyIn
ICYmIGNoYXJhY3RlciAhPSAnXFwnICYmIGNoYXJhY3RlciA+IDB4MUYpKSB7CisgICAgICAgICAg
ICAqb3V0cHV0KysgPSBjaGFyYWN0ZXI7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQotICAgICAgICBzd2l0Y2ggKCppbnB1dCkgewotICAgICAgICBjYXNlICdcdCc6Ci0gICAgICAg
ICAgICAqb3V0cHV0KysgPSAnXFwnOwotICAgICAgICAgICAgKm91dHB1dCsrID0gJ3QnOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ1xyJzoKLSAgICAgICAgICAgICpvdXRwdXQr
KyA9ICdcXCc7Ci0gICAgICAgICAgICAqb3V0cHV0KysgPSAncic7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsKLSAg
ICAgICAgICAgICpvdXRwdXQrKyA9ICduJzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlICdcZic6Ci0gICAgICAgICAgICAqb3V0cHV0KysgPSAnXFwnOwotICAgICAgICAgICAgKm91
dHB1dCsrID0gJ2YnOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ1xiJzoKLSAg
ICAgICAgICAgICpvdXRwdXQrKyA9ICdcXCc7Ci0gICAgICAgICAgICAqb3V0cHV0KysgPSAnYic7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VS
VCgoKmlucHV0ICYgMHhGRjAwKSA9PSAwKTsKKworICAgICAgICBpZiAoY2hhcmFjdGVyID09ICci
JyB8fCBjaGFyYWN0ZXIgPT0gJ1xcJykgewogICAgICAgICAgICAgKm91dHB1dCsrID0gJ1xcJzsK
LSAgICAgICAgICAgICpvdXRwdXQrKyA9ICd1JzsKLSAgICAgICAgICAgICpvdXRwdXQrKyA9ICcw
JzsKLSAgICAgICAgICAgICpvdXRwdXQrKyA9ICcwJzsKLSAgICAgICAgICAgICpvdXRwdXQrKyA9
IHVwcGVyTmliYmxlVG9Mb3dlcmNhc2VBU0NJSUhleERpZ2l0KCppbnB1dCk7Ci0gICAgICAgICAg
ICAqb3V0cHV0KysgPSBsb3dlck5pYmJsZVRvTG93ZXJjYXNlQVNDSUlIZXhEaWdpdCgqaW5wdXQp
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAqb3V0cHV0KysgPSBjaGFyYWN0ZXI7
CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorCisgICAgICAgIGFwcGVuZFF1b3Rl
ZEpTT05TdHJpbmdJbnRlcm5hbFNsb3cob3V0cHV0LCBjaGFyYWN0ZXIpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>