<?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>144330</bug_id>
          
          <creation_ts>2015-04-28 07:26:21 -0700</creation_ts>
          <short_desc>[ES6] Implement String.raw</short_desc>
          <delta_ts>2015-05-13 09:50:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>143183</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1089502</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-28 07:26:21 -0700</bug_when>
    <thetext>[ES6] Implement String.raw</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089504</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-28 07:27:10 -0700</bug_when>
    <thetext>Before implementing tagged-templates, let&apos;s implement String.raw!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089981</commentid>
    <comment_count>2</comment_count>
      <attachid>251949</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-29 07:11:21 -0700</bug_when>
    <thetext>Created attachment 251949
Prototype

Initial prototype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090754</commentid>
    <comment_count>3</comment_count>
      <attachid>252145</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-01 02:48:35 -0700</bug_when>
    <thetext>Created attachment 252145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090759</commentid>
    <comment_count>4</comment_count>
      <attachid>252147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-01 04:21:47 -0700</bug_when>
    <thetext>Created attachment 252147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090906</commentid>
    <comment_count>5</comment_count>
      <attachid>252147</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-01 15:29:13 -0700</bug_when>
    <thetext>Comment on attachment 252147
Patch

GTK build failure:
DerivedSources/JavaScriptCore/StringConstructor.lut.h:35:83: error: &apos;stringRaw&apos; was not declared in this scope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091064</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-02 02:03:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 252147 [details]
&gt; Patch
&gt; 
&gt; GTK build failure:
&gt; DerivedSources/JavaScriptCore/StringConstructor.lut.h:35:83: error:
&gt; &apos;stringRaw&apos; was not declared in this scope

I think this is because JSCBuiltin.h is not updated correctly due to CMakeList.txt dependencies.
I&apos;ll add blank line to CMakeLists.txt to force update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091065</commentid>
    <comment_count>7</comment_count>
      <attachid>252225</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-02 02:04:25 -0700</bug_when>
    <thetext>Created attachment 252225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091307</commentid>
    <comment_count>8</comment_count>
      <attachid>252225</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-05-03 18:26:47 -0700</bug_when>
    <thetext>Comment on attachment 252225
Patch

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

&gt; Source/JavaScriptCore/CMakeLists.txt:1215
&gt;      add_dependencies(JavaScriptCore llvmForJSC)
&gt;  endif ()
&gt;  
&gt; +

Seems unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091563</commentid>
    <comment_count>9</comment_count>
      <attachid>252225</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-04 15:52:09 -0700</bug_when>
    <thetext>Comment on attachment 252225
Patch

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

&gt;&gt; Source/JavaScriptCore/CMakeLists.txt:1215
&gt;&gt; +
&gt; 
&gt; Seems unrelated.

Yes, This is added from the previous patch because GTK&apos;s build dependency doesn&apos;t flush JSCBuiltins.h correctly. (Due to it, the previous patch fails only in GTK EWS)
https://bugs.webkit.org/show_bug.cgi?id=144330#c6

Adding a blank line to CMakeLists.txt forces CMake to generate new rule files and it refreshes JSCBuiltins.h.
So when landing it, I&apos;ll remove this line :D
(And maybe, I need to request full re-build to build bots for GTK ports)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093299</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-08 14:06:08 -0700</bug_when>
    <thetext>Could anyone take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093460</commentid>
    <comment_count>11</comment_count>
      <attachid>252225</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-05-09 17:04:40 -0700</bug_when>
    <thetext>Comment on attachment 252225
Patch

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

&gt; Source/JavaScriptCore/builtins/StringConstructor.js:36
&gt; +    var raw = @Object(rawValue);

I know you&apos;re matching the spec text but it&apos;s somewhat confusing to have a variable name &quot;raw&quot; inside a function also named &quot;raw&quot;.

&gt; Source/JavaScriptCore/builtins/StringConstructor.js:40
&gt; +    var maxSafeInteger = 9007199254740991;

Can we just use 0x1FFFFFFFFFFFFF instead?

&gt; Source/JavaScriptCore/builtins/StringConstructor.js:49
&gt; +    if (numberValue != numberValue) {  // isNaN(numberValue)
&gt; +        lengthValue = 0;
&gt; +    } else if (numberValue === 0 || !@isFinite(numberValue)) {
&gt; +        lengthValue = numberValue;
&gt; +    } else {
&gt; +        lengthValue = (numberValue &gt; 0 ? 1 : -1) * @floor(@abs(numberValue));
&gt; +    }

These line shouldn&apos;t have curly braces per our style guideline.

&gt; Source/JavaScriptCore/builtins/StringConstructor.js:51
&gt; +    var literalSegments = lengthValue &gt; 0 ? (lengthValue &lt; maxSafeInteger ? lengthValue : maxSafeInteger) : 0;

It seems like this variable name out to end with nouns such as count and length
since this is really the maximum length we&apos;re allowed to process.
Perhaps maximumSegmentCount?

&gt; Source/JavaScriptCore/builtins/StringConstructor.js:57
&gt; +    var nextIndex = 0;

I&apos;m not sure &quot;nextIndex&quot; provides any more semantics than just calling this &quot;i&quot;.

&gt; Source/JavaScriptCore/builtins/StringConstructor.js:58
&gt; +    while (true) {

Can we just do:
for (var nextIndex = 0; ; nextIndex++)
instead?

&gt; Source/JavaScriptCore/builtins/StringConstructor.js:68
&gt; +            // |arguments| contain the first argument, |template|.
&gt; +            next = @toString(arguments[nextIndex + 1]);

Instead of adding a comment like this, how about defining two local variables?
var indexInRaw = i;
var indexInArguments = i + 1;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093477</commentid>
    <comment_count>12</comment_count>
      <attachid>252225</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-09 18:39:32 -0700</bug_when>
    <thetext>Comment on attachment 252225
Patch

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

Thank you for your review!

&gt;&gt; Source/JavaScriptCore/builtins/StringConstructor.js:36
&gt;&gt; +    var raw = @Object(rawValue);
&gt; 
&gt; I know you&apos;re matching the spec text but it&apos;s somewhat confusing to have a variable name &quot;raw&quot; inside a function also named &quot;raw&quot;.

Make sense. So replace it with `rawSegments`. (And replace `cooked` to `cookedSegments`)

&gt;&gt; Source/JavaScriptCore/builtins/StringConstructor.js:40
&gt;&gt; +    var maxSafeInteger = 9007199254740991;
&gt; 
&gt; Can we just use 0x1FFFFFFFFFFFFF instead?

Looks nice. Fixed.

&gt;&gt; Source/JavaScriptCore/builtins/StringConstructor.js:49
&gt;&gt; +    }
&gt; 
&gt; These line shouldn&apos;t have curly braces per our style guideline.

Oops. Fixed.

&gt;&gt; Source/JavaScriptCore/builtins/StringConstructor.js:51
&gt;&gt; +    var literalSegments = lengthValue &gt; 0 ? (lengthValue &lt; maxSafeInteger ? lengthValue : maxSafeInteger) : 0;
&gt; 
&gt; It seems like this variable name out to end with nouns such as count and length
&gt; since this is really the maximum length we&apos;re allowed to process.
&gt; Perhaps maximumSegmentCount?

Make sense. I suggest `segmentCount` because this is the count of the given segment array.

&gt;&gt; Source/JavaScriptCore/builtins/StringConstructor.js:57
&gt;&gt; +    var nextIndex = 0;
&gt; 
&gt; I&apos;m not sure &quot;nextIndex&quot; provides any more semantics than just calling this &quot;i&quot;.

OK, just use `i`.

&gt;&gt; Source/JavaScriptCore/builtins/StringConstructor.js:58
&gt;&gt; +    while (true) {
&gt; 
&gt; Can we just do:
&gt; for (var nextIndex = 0; ; nextIndex++)
&gt; instead?

Looks nice.
The current implementation is aligned to the spec. But, we can a little bit clean up the implementation.
I&apos;ll rewrite it.

&gt;&gt; Source/JavaScriptCore/builtins/StringConstructor.js:68
&gt;&gt; +            next = @toString(arguments[nextIndex + 1]);
&gt; 
&gt; Instead of adding a comment like this, how about defining two local variables?
&gt; var indexInRaw = i;
&gt; var indexInArguments = i + 1;

Looks nice. I&apos;ll use a local variable, `substitutionIndexInArguments`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093495</commentid>
    <comment_count>13</comment_count>
      <attachid>252801</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-05-09 20:35:45 -0700</bug_when>
    <thetext>Created attachment 252801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094471</commentid>
    <comment_count>14</comment_count>
      <attachid>252801</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-13 09:50:01 -0700</bug_when>
    <thetext>Comment on attachment 252801
Patch

Clearing flags on attachment: 252801

Committed r184287: &lt;http://trac.webkit.org/changeset/184287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094472</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-13 09:50:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251949</attachid>
            <date>2015-04-29 07:11:21 -0700</date>
            <delta_ts>2015-05-01 02:48:32 -0700</delta_ts>
            <desc>Prototype</desc>
            <filename>bug-144330-20150429231011.patch</filename>
            <type>text/plain</type>
            <size>6576</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzY5Y2IzNjIyYWQ4YmEwYWM0YmFiZWMwZmEyYmYyYzk3MDhjNDNiLi5kMjUzOGQ3ZGJhOTlkMWNm
NzgyMDEyYTlkMzM4YTgzOGY3MmYzYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxNS0wNC0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3RyaW5nLnJhdworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MzMwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFN0cmluZy5yYXcu
IEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0YWdnZWQtdGVtcGxhdGVzIHN5bnRheC4K
KyAgICAgICAgQ3VycmVudGx5LCBUb0xlbmd0aCBhYnN0cmFjdCBvcGVyYXRpb24gaXMgbm90IGlt
cGxlbWVudGVkIHByb3Blcmx5LgorICAgICAgICBXaGVuIGl0IGlzIGltcGxlbWVudGVkLCBUb0xl
bmd0aCBwYXJ0IHNob3VsZCBiZSBmaXhlZC4KKworICAgICAgICBBbmQgdG8gaW1wbGVtZW50IFRv
U3RyaW5nIGFic3RyYWN0IG9wZXJhdGlvbiBlZmZpY2llbnRseSwKKyAgICAgICAgd2UgaW50cm9k
dWNlIEB0b1N0cmluZyBieXRlY29kZSBpbnRyaW5zaWMuCisgICAgICAgIEl0IGVtaXRzIG9wX3Rv
X3N0cmluZyBkaXJlY3RseS4KKworICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ0NvbnN0cnVjdG9y
LmpzOiBBZGRlZC4KKyAgICAgICAgKHJhdyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9p
bnRyaW5zaWNfdG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKwogMjAxNS0wNC0y
OSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04oMTgxODY4KTogV2luZG93cyBMaXZlIFNreURyaXZlIGNhbm5vdCBvcGVuIGFuIGV4Y2Vs
IGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdD
b25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdDb25z
dHJ1Y3Rvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2Q3NGZkNjU5YWM3MzM4MmRiYmVlMjY0M2MxNmVhNTMx
NmE5ZjUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1N0cmluZ0NvbnN0cnVjdG9yLmpzCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gcmF3KHRlbXBsYXRl
KSB7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgdmFyIGNvb2tlZCA9IEBPYmplY3QodGVtcGxh
dGUpOworICAgIHZhciByYXcgPSBAT2JqZWN0KGNvb2tlZC5yYXcpOworCisgICAgdmFyIG51bWJl
ck9mU3Vic3RpdHV0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggLSAxOworCisgICAgLy8gVE9ETzog
V2hlbiBsYW5kaW5nIFRvTGVuZ3RoLCB0aGlzIHNob3VsZCBiZSBmaXhlZC4KKyAgICB2YXIgbGl0
ZXJhbFNlZ21lbnRzID0gcmF3Lmxlbmd0aCA+Pj4gMDsKKworICAgIGlmIChsaXRlcmFsU2VnbWVu
dHMgPD0gMCkKKyAgICAgICAgcmV0dXJuICcnOworCisgICAgdmFyIHN0cmluZ0VsZW1lbnRzID0g
Jyc7CisgICAgdmFyIG5leHRJbmRleCA9IDA7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAg
dmFyIG5leHRTZWcgPSBAdG9TdHJpbmcocmF3W25leHRJbmRleF0pOworICAgICAgICBzdHJpbmdF
bGVtZW50cyArPSBuZXh0U2VnOworCisgICAgICAgIGlmIChuZXh0SW5kZXggKyAxID09PSBsaXRl
cmFsU2VnbWVudHMpCisgICAgICAgICAgICByZXR1cm4gc3RyaW5nRWxlbWVudHM7CisKKyAgICAg
ICAgdmFyIG5leHQgPSAnJzsKKyAgICAgICAgaWYgKG5leHRJbmRleCA8IG51bWJlck9mU3Vic3Rp
dHV0aW9ucykgeworICAgICAgICAgICAgLy8gfGFyZ3VtZW50c3wgY29udGFpbiB0aGUgZmlyc3Qg
YXJndW1lbnQsIHx0ZW1wbGF0ZXwuCisgICAgICAgICAgICBuZXh0ID0gQHRvU3RyaW5nKGFyZ3Vt
ZW50c1tuZXh0SW5kZXggKyAxXSk7CisgICAgICAgIH0KKworICAgICAgICBzdHJpbmdFbGVtZW50
cyArPSBuZXh0OworCisgICAgICAgIG5leHRJbmRleCArPSAxOworICAgIH0KK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRl
eCAyYjFkMGFhNzQwOGJhMTQyZmNlYjRlODFiM2M5ZDUxMmQ5NTM4NTdmLi40ZTA5YzIyNjkxMWE3
YTEyZjI5MzhlNjM2MDRhMWI1ZTE0YTBkOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC02OTcsNiArNjk3LDE1IEBA
IFJlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfcHV0QnlW
YWxEaXJlY3QoQnl0ZWNvZGVHZW5lcmF0CiAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlVG9EZXN0
aW5hdGlvbklmTmVlZGVkKGRzdCwgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeVZhbChiYXNlLmdl
dCgpLCBpbmRleC5nZXQoKSwgdmFsdWUuZ2V0KCkpKTsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY190b1N0cmluZyhCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgQXJndW1lbnRMaXN0Tm9kZSog
bm9kZSA9IG1fYXJncy0+bV9saXN0Tm9kZTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjID0g
Z2VuZXJhdG9yLmVtaXROb2RlKG5vZGUpOworICAgIEFTU0VSVCghbm9kZS0+bV9uZXh0KTsKKwor
ICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVzdGluYXRpb25JZk5lZWRlZChkc3QsIGdlbmVy
YXRvci5lbWl0VG9TdHJpbmcoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBzcmMpKTsK
K30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9uQ2FsbEJyYWNr
ZXROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCog
RnVuY3Rpb25DYWxsQnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA2ZWViMTExYjMyYTU0YWZiMGVhMGMw
MjYxMzIwMTZlMTU3MjhhYjI4Li5jNjBiYTkyNTIwMDQ4MDczZmE1YzY3NzY3YTkxNDVkNTZhMzQ1
YzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmgKQEAgLTE3MCw3ICsxNzAsNiBAQAogICAgIG1hY3JvKHRvSlNPTikgXAogICAgIG1h
Y3JvKHRvTG9jYWxlU3RyaW5nKSBcCiAgICAgbWFjcm8odG9QcmVjaXNpb24pIFwKLSAgICBtYWNy
byh0b1N0cmluZykgXAogICAgIG1hY3JvKHZhbHVlKSBcCiAgICAgbWFjcm8odmFsdWVPZikgXAog
ICAgIG1hY3JvKHZhbHVlcykgXApAQCAtMjQyLDcgKzI0MSw4IEBACiAgICAgbWFjcm8odW5zY29w
YWJsZXMpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNTX0VBQ0hfTkFN
RShtYWNybykgXAotICAgIG1hY3JvKHB1dEJ5VmFsRGlyZWN0KQorICAgIG1hY3JvKHB1dEJ5VmFs
RGlyZWN0KSBcCisgICAgbWFjcm8odG9TdHJpbmcpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9QUklW
QVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAogICAgIEpTQ19DT01N
T05fQllURUNPREVfSU5UUklOU0lDU19FQUNIX05BTUUobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCA5NjEw
ZjY4ZGIxMTNkMWUxZjJkNzRlN2FhMDBhZGEyOGM5NjFjNDAzLi4xOTQxNTRjMGIwYTY2ZTE3ODM0
YjdjODlkYjZmN2RlZTY4NjA5YjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21DaGFyQ29kZShFeGVjU3Rh
dGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21Db2Rl
UG9pbnQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdSYXcoRXhlY1N0YXRlKik7CiAKIH0KIApAQCAtNDYsNiArNDcsNyBAQAogQGJlZ2luIHN0
cmluZ0NvbnN0cnVjdG9yVGFibGUKICAgZnJvbUNoYXJDb2RlICAgICAgICAgIHN0cmluZ0Zyb21D
aGFyQ29kZSAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgZnJvbUNvZGVQb2ludCAgICAg
ICAgIHN0cmluZ0Zyb21Db2RlUG9pbnQgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgcmF3
ICAgICAgICAgICAgICAgICAgIHN0cmluZ1JhdyAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uIDEKIEBlbmQKICovCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252145</attachid>
            <date>2015-05-01 02:48:35 -0700</date>
            <delta_ts>2015-05-01 04:21:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144330-20150501184723.patch</filename>
            <type>text/plain</type>
            <size>15892</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MDhiNzJhNWI5ZTFhZGQ4NjU2ODQ0NjYyNjdmNDUzYzA4ZDdlNzc3Li5iNGY2MWIyOTE4ODU5Yzlh
NmJiYTlhYzI0ODQyZTFhNjBlYTkwYmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxNS0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3RyaW5nLnJhdworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MzMwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFN0cmluZy5yYXcu
IEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0YWdnZWQtdGVtcGxhdGVzIHN5bnRheC4K
KyAgICAgICAgVG8gaW1wbGVtZW50IFRvU3RyaW5nIGFic3RyYWN0IG9wZXJhdGlvbiBlZmZpY2ll
bnRseSwKKyAgICAgICAgd2UgaW50cm9kdWNlIEB0b1N0cmluZyBieXRlY29kZSBpbnRyaW5zaWMu
IEl0IGVtaXRzIG9wX3RvX3N0cmluZyBkaXJlY3RseS4KKworICAgICAgICAqIGJ1aWx0aW5zL1N0
cmluZ0NvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHJhdyk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfdG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc3RyaW5nLXJhdy5qczogQWRkZWQuCisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgICguZ2V0IHNob3VsZEJlKToKKyAgICAgICAgKENvdW50ZXIp
OgorCiAyMDE1LTA0LTMwICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBjb25zb2xlIHNob3VsZCBzaG93IGFuIGljb24gZm9yIGNvbnNvbGUuaW5m
bygpIG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
U3RyaW5nQ29uc3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3Ry
aW5nQ29uc3RydWN0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTMxMmZhNGI3MzBjYzBjYTY0OTBhYzg4NWVi
NjAxYTEwNTZmYmI2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9TdHJpbmdDb25zdHJ1Y3Rvci5qcwpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Z1bmN0aW9uIHJhdyh0
ZW1wbGF0ZSkgeworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICh0ZW1wbGF0ZSA9PT0gbnVs
bCB8fCB0ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJv
cigiU3RyaW5nLnJhdyByZXF1aXJlcyB0ZW1wbGF0ZSBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQi
KTsKKyAgICB2YXIgY29va2VkID0gQE9iamVjdCh0ZW1wbGF0ZSk7CisKKyAgICB2YXIgcmF3VmFs
dWUgPSBjb29rZWQucmF3OworICAgIGlmIChyYXdWYWx1ZSA9PT0gbnVsbCB8fCByYXdWYWx1ZSA9
PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiU3RyaW5nLnJhdyBy
ZXF1aXJlcyB0ZW1wbGF0ZS5yYXcgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisgICAgdmFy
IHJhdyA9IEBPYmplY3QocmF3VmFsdWUpOworCisgICAgdmFyIG51bWJlck9mU3Vic3RpdHV0aW9u
cyA9IGFyZ3VtZW50cy5sZW5ndGggLSAxOworCisgICAgdmFyIG1heFNhZmVJbnRlZ2VyID0gOTAw
NzE5OTI1NDc0MDk5MTsKKyAgICB2YXIgbnVtYmVyVmFsdWUgPSBATnVtYmVyKHJhdy5sZW5ndGgp
OworICAgIHZhciBsZW5ndGhWYWx1ZTsKKyAgICBpZiAobnVtYmVyVmFsdWUgIT0gbnVtYmVyVmFs
dWUpIHsgIC8vIGlzTmFOKG51bWJlclZhbHVlKQorICAgICAgICBsZW5ndGhWYWx1ZSA9IDA7Cisg
ICAgfSBlbHNlIGlmIChudW1iZXJWYWx1ZSA9PT0gMCB8fCAhQGlzRmluaXRlKG51bWJlclZhbHVl
KSkgeworICAgICAgICBsZW5ndGhWYWx1ZSA9IG51bWJlclZhbHVlOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGxlbmd0aFZhbHVlID0gKG51bWJlclZhbHVlID4gMCA/IDEgOiAtMSkgKiBAZmxvb3Io
QGFicyhudW1iZXJWYWx1ZSkpOworICAgIH0KKyAgICAvLyBvcmlnaW5hbGx5IE1hdGgubWluKE1h
dGgubWF4KGxlbmd0aCwgMCksIG1heFNhZmVJbnRlZ2VyKSk7CisgICAgdmFyIGxpdGVyYWxTZWdt
ZW50cyA9IGxlbmd0aFZhbHVlID4gMCA/IChsZW5ndGhWYWx1ZSA8IG1heFNhZmVJbnRlZ2VyID8g
bGVuZ3RoVmFsdWUgOiBtYXhTYWZlSW50ZWdlcikgOiAwOworCisgICAgaWYgKGxpdGVyYWxTZWdt
ZW50cyA8PSAwKQorICAgICAgICByZXR1cm4gJyc7CisKKyAgICB2YXIgc3RyaW5nRWxlbWVudHMg
PSAnJzsKKyAgICB2YXIgbmV4dEluZGV4ID0gMDsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAg
ICB2YXIgbmV4dFNlZyA9IEB0b1N0cmluZyhyYXdbbmV4dEluZGV4XSk7CisgICAgICAgIHN0cmlu
Z0VsZW1lbnRzICs9IG5leHRTZWc7CisKKyAgICAgICAgaWYgKG5leHRJbmRleCArIDEgPT09IGxp
dGVyYWxTZWdtZW50cykKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdFbGVtZW50czsKKworICAg
ICAgICB2YXIgbmV4dCA9ICcnOworICAgICAgICBpZiAobmV4dEluZGV4IDwgbnVtYmVyT2ZTdWJz
dGl0dXRpb25zKSB7CisgICAgICAgICAgICAvLyB8YXJndW1lbnRzfCBjb250YWluIHRoZSBmaXJz
dCBhcmd1bWVudCwgfHRlbXBsYXRlfC4KKyAgICAgICAgICAgIG5leHQgPSBAdG9TdHJpbmcoYXJn
dW1lbnRzW25leHRJbmRleCArIDFdKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cmluZ0VsZW1l
bnRzICs9IG5leHQ7CisKKyAgICAgICAgbmV4dEluZGV4ICs9IDE7CisgICAgfQorfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmlu
ZGV4IDBmMGI3OGYwZTU5MWQ5YmIxNmI5NTgxZDVkNTYwNGQ0OGU1Yjc3NmYuLmFkMzQyNWQ0ZDkx
NjI3YjA0YWI1MjRlZjc2M2EzOWE5MDM1NzZmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTY5Nyw2ICs2OTcsMTUg
QEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19wdXRC
eVZhbERpcmVjdChCeXRlY29kZUdlbmVyYXQKICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmVUb0Rl
c3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5VmFsKGJhc2Uu
Z2V0KCksIGluZGV4LmdldCgpLCB2YWx1ZS5nZXQoKSkpOwogfQogCitSZWdpc3RlcklEKiBCeXRl
Y29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3RvU3RyaW5nKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBBcmd1bWVudExpc3ROb2Rl
KiBub2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzcmMg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7CisgICAgQVNTRVJUKCFub2RlLT5tX25leHQpOwor
CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlVG9EZXN0aW5hdGlvbklmTmVlZGVkKGRzdCwgZ2Vu
ZXJhdG9yLmVtaXRUb1N0cmluZyhnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIHNyYy5n
ZXQoKSkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25D
YWxsQnJhY2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdp
c3RlcklEKiBGdW5jdGlvbkNhbGxCcmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDc5MDY5ZWE5NjRkNjA2
MTU0MWU5NWRkN2YxYzkzMzBmM2U4YzI4MmUuLmIwZTI4MzhkNjU4Y2JkM2M1MTljMTI3YmUwNTA2
YjRhNjkxMzNiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaApAQCAtMjQyLDcgKzI0Miw4IEBACiAgICAgbWFjcm8odW5zY29wYWJs
ZXMpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNTX0VBQ0hfTkFNRSht
YWNybykgXAotICAgIG1hY3JvKHB1dEJ5VmFsRGlyZWN0KQorICAgIG1hY3JvKHB1dEJ5VmFsRGly
ZWN0KSBcCisgICAgbWFjcm8odG9TdHJpbmcpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRF
X0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAogICAgIEpTQ19DT01NT05f
QllURUNPREVfSU5UUklOU0lDU19FQUNIX05BTUUobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAzMDljNmY3
YzJmMDU5MjlkZWQ1OGI0ZTY2OGFjYzE5YzgwMzJkZDYzLi5mZDU4YTZmM2EwZWRkMDJkOGY3M2Zl
NTVlNjA5NGEyY2IyMWM4ZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21DaGFyQ29kZShFeGVjU3RhdGUq
KTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21Db2RlUG9p
bnQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJp
bmdSYXcoRXhlY1N0YXRlKik7CiAKIH0KIApAQCAtNDYsNiArNDcsNyBAQAogQGJlZ2luIHN0cmlu
Z0NvbnN0cnVjdG9yVGFibGUKICAgZnJvbUNoYXJDb2RlICAgICAgICAgIHN0cmluZ0Zyb21DaGFy
Q29kZSAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgZnJvbUNvZGVQb2ludCAgICAgICAg
IHN0cmluZ0Zyb21Db2RlUG9pbnQgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgcmF3ICAg
ICAgICAgICAgICAgICAgIHN0cmluZ1JhdyAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDEKIEBlbmQKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvc3RyaW5nLXJhdy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvc3RyaW5nLXJhdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2M3NjliYjAyMzExMDQxZjY2NDUzMjgwYjBi
Yzk0NTQ2ZmJkZThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9zdHJpbmctcmF3LmpzCkBAIC0wLDAgKzEsMTU0IEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVlOiAke2FjdHVhbH1gKTsKK30KKworZnVu
Y3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVycm9yVGhy
b3duID0gZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBm
dW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvclRocm93biA9IHRydWU7Cisg
ICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09
IGVycm9yTWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3Ry
aW5nKGVycm9yKX1gKTsKK30KKworc2hvdWxkQmUoU3RyaW5nLnJhdy5uYW1lLCAncmF3Jyk7Citz
aG91bGRCZShTdHJpbmcucmF3Lmxlbmd0aCwgMSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uICgp
IHsKKyAgICBTdHJpbmcucmF3KCk7Cit9LCAiVHlwZUVycm9yOiBTdHJpbmcucmF3IHJlcXVpcmVz
IHRlbXBsYXRlIG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworCitzaG91bGRUaHJvdyhmdW5j
dGlvbiAoKSB7CisgICAgU3RyaW5nLnJhdyh1bmRlZmluZWQpOworfSwgIlR5cGVFcnJvcjogU3Ry
aW5nLnJhdyByZXF1aXJlcyB0ZW1wbGF0ZSBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKKwor
c2hvdWxkVGhyb3coZnVuY3Rpb24gKCkgeworICAgIFN0cmluZy5yYXcoeyByYXc6IHVuZGVmaW5l
ZCB9KTsKK30sICJUeXBlRXJyb3I6IFN0cmluZy5yYXcgcmVxdWlyZXMgdGVtcGxhdGUucmF3IG5v
dCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7Cisg
ICAgU3RyaW5nLnJhdyh7IHJhdzogbnVsbCB9KTsKK30sICJUeXBlRXJyb3I6IFN0cmluZy5yYXcg
cmVxdWlyZXMgdGVtcGxhdGUucmF3IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworCitzaG91
bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgU3RyaW5nLnJhdyh7CisgICAgICAgIGdldCBsZW5n
dGgoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCd0ZW1wbGF0ZS5sZW5ndGggY2Fs
bGVkJyk7CisgICAgICAgIH0sCisKKyAgICAgICAgcmF3OiB7CisgICAgICAgICAgICBnZXQgbGVu
Z3RoKCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidGVtcGxhdGUucmF3Lmxl
bmd0aCBjYWxsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworfSwgIkVy
cm9yOiB0ZW1wbGF0ZS5yYXcubGVuZ3RoIGNhbGxlZCIpOworCitzaG91bGRCZShTdHJpbmcucmF3
KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3RoOiAtMQorICAgIH0KK30pLCAiIik7CisKK3No
b3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IC0yLjUKKyAg
ICB9Cit9KSwgIiIpOworCitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6IHsKKyAgICAg
ICAgbGVuZ3RoOiAtSW5maW5pdHkKKyAgICB9Cit9KSwgIiIpOworCitzaG91bGRCZShTdHJpbmcu
cmF3KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3RoOiAwCisgICAgfQorfSksICIiKTsKKwor
c2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7CisgICAgICAgIGxlbmd0aDogTmFOCisg
ICAgfQorfSksICIiKTsKKworZnVuY3Rpb24gZ2VuZXJhdGVUZW1wbGF0ZSgpIHsKKyAgICB2YXIg
Y29va2VkID0gW107CisgICAgY29va2VkLnJhdyA9IEFycmF5LmZyb20oYXJndW1lbnRzKTsKKyAg
ICByZXR1cm4gY29va2VkOworfQorCitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxh
dGUoIiIsICIsIiwgIiwiLCAiIiksICJDb2NvYSIsICJDYXBwdWNjaW5vIiwgIk1hdGNoYSIpLCAi
Q29jb2EsQ2FwcHVjY2lubyxNYXRjaGEiKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVU
ZW1wbGF0ZSgiIiwgIiwiLCAiLCIsICIiKSwgIkNvY29hIiwgIkNhcHB1Y2Npbm8iLCAiTWF0Y2hh
IiwgIkhlbGxvIiksICJDb2NvYSxDYXBwdWNjaW5vLE1hdGNoYSIpOworc2hvdWxkQmUoU3RyaW5n
LnJhdyhnZW5lcmF0ZVRlbXBsYXRlKCIiLCAiLCIsICIsIiwgIiIpLCAiQ29jb2EiLCAiQ2FwcHVj
Y2lubyIpLCAiQ29jb2EsQ2FwcHVjY2lubywiKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJh
dGVUZW1wbGF0ZSgiIiwgIiwiLCAiLCIsICIiKSwgIkNvY29hIiksICJDb2NvYSwsIik7CitzaG91
bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoIiIsICIsIiwgIiwiLCAiIikpLCAiLCwi
KTsKKworZnVuY3Rpb24gQ291bnRlcihwKSB7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICByZXR1
cm4geworICAgICAgICB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBjb3VudCsrOwor
ICAgICAgICB9CisgICAgfTsKK30KKwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7CitzaG91bGRC
ZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291bnRlciwg
Y291bnRlcikpLCAiMDEyMyIpOwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7CitzaG91bGRCZShT
dHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291bnRlciwgY291
bnRlciksIGNvdW50ZXIpLCAiMDEyMzQiKTsKK3ZhciBjb3VudGVyID0gQ291bnRlcigpOworc2hv
dWxkQmUoU3RyaW5nLnJhdyhnZW5lcmF0ZVRlbXBsYXRlKGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50
ZXIsIGNvdW50ZXIpLCBjb3VudGVyLCBjb3VudGVyKSwgIjAxMjM0NSIpOwordmFyIGNvdW50ZXIg
PSBDb3VudGVyKCk7CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRl
ciwgY291bnRlciwgY291bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIp
LCAiMDEyMzQ1NiIpOwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7CitzaG91bGRCZShTdHJpbmcu
cmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciks
IGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIpLCAiMDEyMzQ1NiIpOwordmFyIGNv
dW50ZXIgPSBDb3VudGVyKCk7CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUo
Y291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50ZXIsIGNv
dW50ZXIsIGNvdW50ZXIpLCAiMDEyMzQ1NiIpOwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7Citz
aG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291
bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50
ZXIpLCAiMDEyMzQ1NiIpOworCisKK3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogewor
ICAgICAgICBsZW5ndGg6IDMuNSwKKyAgICAgICAgMDogImEiLAorICAgICAgICAxOiAiYiIsCisg
ICAgICAgIDI6ICJjIgorICAgIH0KK30sICJkIiwgImUiLCAiZiIsICJnIiksICJhZGJlYyIpOwor
CitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3RoOiAyLjMs
CisgICAgICAgIDA6ICJhIiwKKyAgICAgICAgMTogImIiLAorICAgICAgICAyOiAiYyIKKyAgICB9
Cit9LCAiZCIsICJlIiwgImYiLCAiZyIpLCAiYWRiIik7CisKK3Nob3VsZEJlKFN0cmluZy5yYXco
eworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IDIuMywKKyAgICAgICAgMDogImEiLAorICAg
ICAgICAyOiAiYyIKKyAgICB9Cit9LCAiZCIsICJlIiwgImYiLCAiZyIpLCAiYWR1bmRlZmluZWQi
KTsKKworc2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7CisgICAgICAgIGxlbmd0aDog
Mi4zLAorICAgICAgICAwOiAiYSIsCisgICAgICAgIDE6ICJiIiwKKyAgICAgICAgMjogImMiCisg
ICAgfQorfSwgdW5kZWZpbmVkLCAiZSIsICJmIiwgImciKSwgImF1bmRlZmluZWRiIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMmQwNTJjNzE5ZjlkNDY4N2ZiYWIxY2U4N2NkOWZlYTE3OWMzNmFjYy4uMzFlMWQyZjYwMzg1
NjNkMTVkNmM2YjhiZGM4ODVmMWRmNGQ2MzJkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1
LTA1LTAxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAg
IFtFUzZdIEltcGxlbWVudCBTdHJpbmcucmF3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQzMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgU3RyaW5nLnJhdy4KKworICAgICAgICAqIGpzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQt
dGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanM6CisKIDIwMTUtMDQtMzAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGdh
cmRlbmluZy4gVXBkYXRlIHJlc3VsdHMgb2YgaW5zcGVjdG9yIHRlc3RzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDM2NDIwMGUxNWJmNDgyZmE2NDlkZjM4ZGM5MmY2YzU4ZGU2YzFlMDMuLmQ4MTM0OWI0MTI4
M2VhZDBjZGJmZDY4MmQ5MWM3YzNlNzg1NjIxZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pz
L09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKQEAgLTQ3LDcgKzQ3
LDcgQEAgUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEZ1bmN0aW9uKSBpcyBbJ2xlbmd0
aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMo
RnVuY3Rpb24ucHJvdG90eXBlKSBpcyBbJ2FwcGx5JywgJ2JpbmQnLCAnY2FsbCcsICdjb25zdHJ1
Y3RvcicsICdsZW5ndGgnLCAnbmFtZScsICd0b1N0cmluZyddCiBQQVNTIGdldFNvcnRlZE93blBy
b3BlcnR5TmFtZXMoQXJyYXkpIGlzIFsnZnJvbScsICdpc0FycmF5JywgJ2xlbmd0aCcsICduYW1l
JywgJ29mJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQXJy
YXkucHJvdG90eXBlKSBpcyBbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdlbnRyaWVzJywgJ2V2
ZXJ5JywgJ2ZpbGwnLCAnZmlsdGVyJywgJ2ZpbmQnLCAnZmluZEluZGV4JywgJ2ZvckVhY2gnLCAn
aW5jbHVkZXMnLCAnaW5kZXhPZicsICdqb2luJywgJ2tleXMnLCAnbGFzdEluZGV4T2YnLCAnbGVu
Z3RoJywgJ21hcCcsICdwb3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2
ZXJzZScsICdzaGlmdCcsICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9j
YWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3Vuc2hpZnQnLCAndmFsdWVzJ10KLVBBU1MgZ2V0U29y
dGVkT3duUHJvcGVydHlOYW1lcyhTdHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2Zyb21Db2Rl
UG9pbnQnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhTdHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2Zyb21Db2RlUG9pbnQn
LCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3JhdyddCiBQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoU3RyaW5nLnByb3RvdHlwZSkgaXMgWydhbmNob3InLCAnYmlnJywgJ2Js
aW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2RlQXQnLCAnY29kZVBvaW50QXQnLCAnY29u
Y2F0JywgJ2NvbnN0cnVjdG9yJywgJ2VuZHNXaXRoJywgJ2ZpeGVkJywgJ2ZvbnRjb2xvcicsICdm
b250c2l6ZScsICdpbmNsdWRlcycsICdpbmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2Yn
LCAnbGVuZ3RoJywgJ2xpbmsnLCAnbG9jYWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBlYXQnLCAn
cmVwbGFjZScsICdzZWFyY2gnLCAnc2xpY2UnLCAnc21hbGwnLCAnc3BsaXQnLCAnc3RhcnRzV2l0
aCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJpbmcnLCAnc3VwJywgJ3RvTG9j
YWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3RvTG93ZXJDYXNlJywgJ3RvU3Ry
aW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQnLCAndHJpbVJpZ2h0JywgJ3Zh
bHVlT2YnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEJvb2xlYW4pIGlzIFsnbGVu
Z3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1l
cyhCb29sZWFuLnByb3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1
ZU9mJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0
T3duUHJvcGVydHlOYW1lcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3Qt
Z2V0T3duUHJvcGVydHlOYW1lcy5qcwppbmRleCAyN2Y1ZmNlY2E1MTYwOGI1MDBhZThkNzJmYWMx
NWEwYmQ4Zjc0ZDNlLi41YzZhOWJiMzM3MWMxMGVkZmMzMGRmMTYxYTU4ODE3M2FiMDVhNmNmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3Bl
cnR5TmFtZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLmpzCkBAIC01Niw3ICs1Niw3IEBACiAgICAgIkZ1bmN0aW9uLnByb3Rv
dHlwZSI6ICJbJ2FwcGx5JywgJ2JpbmQnLCAnY2FsbCcsICdjb25zdHJ1Y3RvcicsICdsZW5ndGgn
LCAnbmFtZScsICd0b1N0cmluZyddIiwKICAgICAiQXJyYXkiOiAiWydmcm9tJywgJ2lzQXJyYXkn
LCAnbGVuZ3RoJywgJ25hbWUnLCAnb2YnLCAncHJvdG90eXBlJ10iLAogICAgICJBcnJheS5wcm90
b3R5cGUiOiAiWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZW50cmllcycsICdldmVyeScsICdm
aWxsJywgJ2ZpbHRlcicsICdmaW5kJywgJ2ZpbmRJbmRleCcsICdmb3JFYWNoJywgJ2luY2x1ZGVz
JywgJ2luZGV4T2YnLCAnam9pbicsICdrZXlzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdt
YXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVyc2UnLCAn
c2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2FsZVN0cmlu
ZycsICd0b1N0cmluZycsICd1bnNoaWZ0JywgJ3ZhbHVlcyddIiwKLSAgICAiU3RyaW5nIjogIlsn
ZnJvbUNoYXJDb2RlJywgJ2Zyb21Db2RlUG9pbnQnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90
eXBlJ10iLAorICAgICJTdHJpbmciOiAiWydmcm9tQ2hhckNvZGUnLCAnZnJvbUNvZGVQb2ludCcs
ICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAncmF3J10iLAogICAgICJTdHJpbmcucHJv
dG90eXBlIjogIlsnYW5jaG9yJywgJ2JpZycsICdibGluaycsICdib2xkJywgJ2NoYXJBdCcsICdj
aGFyQ29kZUF0JywgJ2NvZGVQb2ludEF0JywgJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdlbmRz
V2l0aCcsICdmaXhlZCcsICdmb250Y29sb3InLCAnZm9udHNpemUnLCAnaW5jbHVkZXMnLCAnaW5k
ZXhPZicsICdpdGFsaWNzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdsaW5rJywgJ2xvY2Fs
ZUNvbXBhcmUnLCAnbWF0Y2gnLCAncmVwZWF0JywgJ3JlcGxhY2UnLCAnc2VhcmNoJywgJ3NsaWNl
JywgJ3NtYWxsJywgJ3NwbGl0JywgJ3N0YXJ0c1dpdGgnLCAnc3RyaWtlJywgJ3N1YicsICdzdWJz
dHInLCAnc3Vic3RyaW5nJywgJ3N1cCcsICd0b0xvY2FsZUxvd2VyQ2FzZScsICd0b0xvY2FsZVVw
cGVyQ2FzZScsICd0b0xvd2VyQ2FzZScsICd0b1N0cmluZycsICd0b1VwcGVyQ2FzZScsICd0cmlt
JywgJ3RyaW1MZWZ0JywgJ3RyaW1SaWdodCcsICd2YWx1ZU9mJ10iLAogICAgICJCb29sZWFuIjog
IlsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAogICAgICJCb29sZWFuLnByb3RvdHlw
ZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252147</attachid>
            <date>2015-05-01 04:21:47 -0700</date>
            <delta_ts>2015-05-02 02:04:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144330-20150501202035.patch</filename>
            <type>text/plain</type>
            <size>15666</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MDhiNzJhNWI5ZTFhZGQ4NjU2ODQ0NjYyNjdmNDUzYzA4ZDdlNzc3Li5iNGY2MWIyOTE4ODU5Yzlh
NmJiYTlhYzI0ODQyZTFhNjBlYTkwYmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxNS0wNS0wMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3RyaW5nLnJhdworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MzMwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFN0cmluZy5yYXcu
IEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0YWdnZWQtdGVtcGxhdGVzIHN5bnRheC4K
KyAgICAgICAgVG8gaW1wbGVtZW50IFRvU3RyaW5nIGFic3RyYWN0IG9wZXJhdGlvbiBlZmZpY2ll
bnRseSwKKyAgICAgICAgd2UgaW50cm9kdWNlIEB0b1N0cmluZyBieXRlY29kZSBpbnRyaW5zaWMu
IEl0IGVtaXRzIG9wX3RvX3N0cmluZyBkaXJlY3RseS4KKworICAgICAgICAqIGJ1aWx0aW5zL1N0
cmluZ0NvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHJhdyk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfdG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc3RyaW5nLXJhdy5qczogQWRkZWQuCisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgICguZ2V0IHNob3VsZEJlKToKKyAgICAgICAgKENvdW50ZXIp
OgorCiAyMDE1LTA0LTMwICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBjb25zb2xlIHNob3VsZCBzaG93IGFuIGljb24gZm9yIGNvbnNvbGUuaW5m
bygpIG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
U3RyaW5nQ29uc3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3Ry
aW5nQ29uc3RydWN0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTMxMmZhNGI3MzBjYzBjYTY0OTBhYzg4NWVi
NjAxYTEwNTZmYmI2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9TdHJpbmdDb25zdHJ1Y3Rvci5qcwpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Z1bmN0aW9uIHJhdyh0
ZW1wbGF0ZSkgeworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICh0ZW1wbGF0ZSA9PT0gbnVs
bCB8fCB0ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJv
cigiU3RyaW5nLnJhdyByZXF1aXJlcyB0ZW1wbGF0ZSBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQi
KTsKKyAgICB2YXIgY29va2VkID0gQE9iamVjdCh0ZW1wbGF0ZSk7CisKKyAgICB2YXIgcmF3VmFs
dWUgPSBjb29rZWQucmF3OworICAgIGlmIChyYXdWYWx1ZSA9PT0gbnVsbCB8fCByYXdWYWx1ZSA9
PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiU3RyaW5nLnJhdyBy
ZXF1aXJlcyB0ZW1wbGF0ZS5yYXcgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisgICAgdmFy
IHJhdyA9IEBPYmplY3QocmF3VmFsdWUpOworCisgICAgdmFyIG51bWJlck9mU3Vic3RpdHV0aW9u
cyA9IGFyZ3VtZW50cy5sZW5ndGggLSAxOworCisgICAgdmFyIG1heFNhZmVJbnRlZ2VyID0gOTAw
NzE5OTI1NDc0MDk5MTsKKyAgICB2YXIgbnVtYmVyVmFsdWUgPSBATnVtYmVyKHJhdy5sZW5ndGgp
OworICAgIHZhciBsZW5ndGhWYWx1ZTsKKyAgICBpZiAobnVtYmVyVmFsdWUgIT0gbnVtYmVyVmFs
dWUpIHsgIC8vIGlzTmFOKG51bWJlclZhbHVlKQorICAgICAgICBsZW5ndGhWYWx1ZSA9IDA7Cisg
ICAgfSBlbHNlIGlmIChudW1iZXJWYWx1ZSA9PT0gMCB8fCAhQGlzRmluaXRlKG51bWJlclZhbHVl
KSkgeworICAgICAgICBsZW5ndGhWYWx1ZSA9IG51bWJlclZhbHVlOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGxlbmd0aFZhbHVlID0gKG51bWJlclZhbHVlID4gMCA/IDEgOiAtMSkgKiBAZmxvb3Io
QGFicyhudW1iZXJWYWx1ZSkpOworICAgIH0KKyAgICAvLyBvcmlnaW5hbGx5IE1hdGgubWluKE1h
dGgubWF4KGxlbmd0aCwgMCksIG1heFNhZmVJbnRlZ2VyKSk7CisgICAgdmFyIGxpdGVyYWxTZWdt
ZW50cyA9IGxlbmd0aFZhbHVlID4gMCA/IChsZW5ndGhWYWx1ZSA8IG1heFNhZmVJbnRlZ2VyID8g
bGVuZ3RoVmFsdWUgOiBtYXhTYWZlSW50ZWdlcikgOiAwOworCisgICAgaWYgKGxpdGVyYWxTZWdt
ZW50cyA8PSAwKQorICAgICAgICByZXR1cm4gJyc7CisKKyAgICB2YXIgc3RyaW5nRWxlbWVudHMg
PSAnJzsKKyAgICB2YXIgbmV4dEluZGV4ID0gMDsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAg
ICB2YXIgbmV4dFNlZyA9IEB0b1N0cmluZyhyYXdbbmV4dEluZGV4XSk7CisgICAgICAgIHN0cmlu
Z0VsZW1lbnRzICs9IG5leHRTZWc7CisKKyAgICAgICAgaWYgKG5leHRJbmRleCArIDEgPT09IGxp
dGVyYWxTZWdtZW50cykKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdFbGVtZW50czsKKworICAg
ICAgICB2YXIgbmV4dCA9ICcnOworICAgICAgICBpZiAobmV4dEluZGV4IDwgbnVtYmVyT2ZTdWJz
dGl0dXRpb25zKSB7CisgICAgICAgICAgICAvLyB8YXJndW1lbnRzfCBjb250YWluIHRoZSBmaXJz
dCBhcmd1bWVudCwgfHRlbXBsYXRlfC4KKyAgICAgICAgICAgIG5leHQgPSBAdG9TdHJpbmcoYXJn
dW1lbnRzW25leHRJbmRleCArIDFdKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cmluZ0VsZW1l
bnRzICs9IG5leHQ7CisKKyAgICAgICAgbmV4dEluZGV4ICs9IDE7CisgICAgfQorfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmlu
ZGV4IDBmMGI3OGYwZTU5MWQ5YmIxNmI5NTgxZDVkNTYwNGQ0OGU1Yjc3NmYuLmFkMzQyNWQ0ZDkx
NjI3YjA0YWI1MjRlZjc2M2EzOWE5MDM1NzZmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTY5Nyw2ICs2OTcsMTUg
QEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19wdXRC
eVZhbERpcmVjdChCeXRlY29kZUdlbmVyYXQKICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmVUb0Rl
c3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5VmFsKGJhc2Uu
Z2V0KCksIGluZGV4LmdldCgpLCB2YWx1ZS5nZXQoKSkpOwogfQogCitSZWdpc3RlcklEKiBCeXRl
Y29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3RvU3RyaW5nKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBBcmd1bWVudExpc3ROb2Rl
KiBub2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzcmMg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7CisgICAgQVNTRVJUKCFub2RlLT5tX25leHQpOwor
CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlVG9EZXN0aW5hdGlvbklmTmVlZGVkKGRzdCwgZ2Vu
ZXJhdG9yLmVtaXRUb1N0cmluZyhnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIHNyYy5n
ZXQoKSkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25D
YWxsQnJhY2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdp
c3RlcklEKiBGdW5jdGlvbkNhbGxCcmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDc5MDY5ZWE5NjRkNjA2
MTU0MWU5NWRkN2YxYzkzMzBmM2U4YzI4MmUuLmIwZTI4MzhkNjU4Y2JkM2M1MTljMTI3YmUwNTA2
YjRhNjkxMzNiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaApAQCAtMjQyLDcgKzI0Miw4IEBACiAgICAgbWFjcm8odW5zY29wYWJs
ZXMpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNTX0VBQ0hfTkFNRSht
YWNybykgXAotICAgIG1hY3JvKHB1dEJ5VmFsRGlyZWN0KQorICAgIG1hY3JvKHB1dEJ5VmFsRGly
ZWN0KSBcCisgICAgbWFjcm8odG9TdHJpbmcpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRF
X0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykgXAogICAgIEpTQ19DT01NT05f
QllURUNPREVfSU5UUklOU0lDU19FQUNIX05BTUUobWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAzMDljNmY3
YzJmMDU5MjlkZWQ1OGI0ZTY2OGFjYzE5YzgwMzJkZDYzLi5lOGQzOTY5NzA3M2UzNTVkMzc3NTIw
NjczMTYzMWU2ZTg3NzMzMTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiBAYmVnaW4gc3Ry
aW5nQ29uc3RydWN0b3JUYWJsZQogICBmcm9tQ2hhckNvZGUgICAgICAgICAgc3RyaW5nRnJvbUNo
YXJDb2RlICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBmcm9tQ29kZVBvaW50ICAgICAg
ICAgc3RyaW5nRnJvbUNvZGVQb2ludCAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICByYXcg
ICAgICAgICAgICAgICAgICAgc3RyaW5nUmF3ICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMQogQGVuZAogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9zdHJpbmctcmF3LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9zdHJpbmctcmF3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3Yzc2OWJiMDIzMTEwNDFmNjY0NTMyODBi
MGJjOTQ1NDZmYmRlOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3N0cmluZy1yYXcuanMKQEAgLTAsMCArMSwxNTQgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7YWN0dWFsfWApOworfQorCitm
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JU
aHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAg
IGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsK
KyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAh
PT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtT
dHJpbmcoZXJyb3IpfWApOworfQorCitzaG91bGRCZShTdHJpbmcucmF3Lm5hbWUsICdyYXcnKTsK
K3Nob3VsZEJlKFN0cmluZy5yYXcubGVuZ3RoLCAxKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24g
KCkgeworICAgIFN0cmluZy5yYXcoKTsKK30sICJUeXBlRXJyb3I6IFN0cmluZy5yYXcgcmVxdWly
ZXMgdGVtcGxhdGUgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisKK3Nob3VsZFRocm93KGZ1
bmN0aW9uICgpIHsKKyAgICBTdHJpbmcucmF3KHVuZGVmaW5lZCk7Cit9LCAiVHlwZUVycm9yOiBT
dHJpbmcucmF3IHJlcXVpcmVzIHRlbXBsYXRlIG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOwor
CitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgU3RyaW5nLnJhdyh7IHJhdzogdW5kZWZp
bmVkIH0pOworfSwgIlR5cGVFcnJvcjogU3RyaW5nLnJhdyByZXF1aXJlcyB0ZW1wbGF0ZS5yYXcg
bm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uICgpIHsK
KyAgICBTdHJpbmcucmF3KHsgcmF3OiBudWxsIH0pOworfSwgIlR5cGVFcnJvcjogU3RyaW5nLnJh
dyByZXF1aXJlcyB0ZW1wbGF0ZS5yYXcgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisKK3No
b3VsZFRocm93KGZ1bmN0aW9uICgpIHsKKyAgICBTdHJpbmcucmF3KHsKKyAgICAgICAgZ2V0IGxl
bmd0aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoJ3RlbXBsYXRlLmxlbmd0aCBj
YWxsZWQnKTsKKyAgICAgICAgfSwKKworICAgICAgICByYXc6IHsKKyAgICAgICAgICAgIGdldCBs
ZW5ndGgoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0ZW1wbGF0ZS5yYXcu
bGVuZ3RoIGNhbGxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7Cit9LCAi
RXJyb3I6IHRlbXBsYXRlLnJhdy5sZW5ndGggY2FsbGVkIik7CisKK3Nob3VsZEJlKFN0cmluZy5y
YXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IC0xCisgICAgfQorfSksICIiKTsKKwor
c2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7CisgICAgICAgIGxlbmd0aDogLTIuNQor
ICAgIH0KK30pLCAiIik7CisKK3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogeworICAg
ICAgICBsZW5ndGg6IC1JbmZpbml0eQorICAgIH0KK30pLCAiIik7CisKK3Nob3VsZEJlKFN0cmlu
Zy5yYXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IDAKKyAgICB9Cit9KSwgIiIpOwor
CitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3RoOiBOYU4K
KyAgICB9Cit9KSwgIiIpOworCitmdW5jdGlvbiBnZW5lcmF0ZVRlbXBsYXRlKCkgeworICAgIHZh
ciBjb29rZWQgPSBbXTsKKyAgICBjb29rZWQucmF3ID0gQXJyYXkuZnJvbShhcmd1bWVudHMpOwor
ICAgIHJldHVybiBjb29rZWQ7Cit9CisKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1w
bGF0ZSgiIiwgIiwiLCAiLCIsICIiKSwgIkNvY29hIiwgIkNhcHB1Y2Npbm8iLCAiTWF0Y2hhIiks
ICJDb2NvYSxDYXBwdWNjaW5vLE1hdGNoYSIpOworc2hvdWxkQmUoU3RyaW5nLnJhdyhnZW5lcmF0
ZVRlbXBsYXRlKCIiLCAiLCIsICIsIiwgIiIpLCAiQ29jb2EiLCAiQ2FwcHVjY2lubyIsICJNYXRj
aGEiLCAiSGVsbG8iKSwgIkNvY29hLENhcHB1Y2Npbm8sTWF0Y2hhIik7CitzaG91bGRCZShTdHJp
bmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoIiIsICIsIiwgIiwiLCAiIiksICJDb2NvYSIsICJDYXBw
dWNjaW5vIiksICJDb2NvYSxDYXBwdWNjaW5vLCIpOworc2hvdWxkQmUoU3RyaW5nLnJhdyhnZW5l
cmF0ZVRlbXBsYXRlKCIiLCAiLCIsICIsIiwgIiIpLCAiQ29jb2EiKSwgIkNvY29hLCwiKTsKK3No
b3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZSgiIiwgIiwiLCAiLCIsICIiKSksICIs
LCIpOworCitmdW5jdGlvbiBDb3VudGVyKHApIHsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHJl
dHVybiB7CisgICAgICAgIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGNvdW50Kys7
CisgICAgICAgIH0KKyAgICB9OworfQorCit2YXIgY291bnRlciA9IENvdW50ZXIoKTsKK3Nob3Vs
ZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBjb3VudGVyLCBjb3VudGVy
LCBjb3VudGVyKSksICIwMTIzIik7Cit2YXIgY291bnRlciA9IENvdW50ZXIoKTsKK3Nob3VsZEJl
KFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyLCBj
b3VudGVyKSwgY291bnRlciksICIwMTIzNCIpOwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7Citz
aG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291
bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50ZXIpLCAiMDEyMzQ1Iik7Cit2YXIgY291bnRl
ciA9IENvdW50ZXIoKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3Vu
dGVyLCBjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyKSwgY291bnRlciwgY291bnRlciwgY291bnRl
ciksICIwMTIzNDU2Iik7Cit2YXIgY291bnRlciA9IENvdW50ZXIoKTsKK3Nob3VsZEJlKFN0cmlu
Zy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyLCBjb3VudGVy
KSwgY291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciksICIwMTIzNDU2Iik7Cit2YXIg
Y291bnRlciA9IENvdW50ZXIoKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0
ZShjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyKSwgY291bnRlciwgY291bnRlciwg
Y291bnRlciwgY291bnRlciksICIwMTIzNDU2Iik7Cit2YXIgY291bnRlciA9IENvdW50ZXIoKTsK
K3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBjb3VudGVyLCBj
b3VudGVyLCBjb3VudGVyKSwgY291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciwgY291
bnRlciksICIwMTIzNDU2Iik7CisKKworc2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7
CisgICAgICAgIGxlbmd0aDogMy41LAorICAgICAgICAwOiAiYSIsCisgICAgICAgIDE6ICJiIiwK
KyAgICAgICAgMjogImMiCisgICAgfQorfSwgImQiLCAiZSIsICJmIiwgImciKSwgImFkYmVjIik7
CisKK3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IDIu
MywKKyAgICAgICAgMDogImEiLAorICAgICAgICAxOiAiYiIsCisgICAgICAgIDI6ICJjIgorICAg
IH0KK30sICJkIiwgImUiLCAiZiIsICJnIiksICJhZGIiKTsKKworc2hvdWxkQmUoU3RyaW5nLnJh
dyh7CisgICAgcmF3OiB7CisgICAgICAgIGxlbmd0aDogMi4zLAorICAgICAgICAwOiAiYSIsCisg
ICAgICAgIDI6ICJjIgorICAgIH0KK30sICJkIiwgImUiLCAiZiIsICJnIiksICJhZHVuZGVmaW5l
ZCIpOworCitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3Ro
OiAyLjMsCisgICAgICAgIDA6ICJhIiwKKyAgICAgICAgMTogImIiLAorICAgICAgICAyOiAiYyIK
KyAgICB9Cit9LCB1bmRlZmluZWQsICJlIiwgImYiLCAiZyIpLCAiYXVuZGVmaW5lZGIiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyZDA1MmM3MTlmOWQ0Njg3ZmJhYjFjZTg3Y2Q5ZmVhMTc5YzM2YWNjLi4zMWUxZDJmNjAz
ODU2M2QxNWQ2YzZiOGJkYzg4NWYxZGY0ZDYzMmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTUtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0VTNl0gSW1wbGVtZW50IFN0cmluZy5yYXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTdHJpbmcucmF3LgorCisgICAgICAgICoganMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3Njcmlw
dC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qczoKKwogMjAxNS0wNC0zMCAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
Z2FyZGVuaW5nLiBVcGRhdGUgcmVzdWx0cyBvZiBpbnNwZWN0b3IgdGVzdHMuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQK
aW5kZXggMzY0MjAwZTE1YmY0ODJmYTY0OWRmMzhkYzkyZjZjNThkZTZjMWUwMy4uZDgxMzQ5YjQx
MjgzZWFkMGNkYmZkNjgyZDkxYzdjM2U3ODU2MjFkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
anMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtNDcsNyAr
NDcsNyBAQCBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRnVuY3Rpb24pIGlzIFsnbGVu
Z3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1l
cyhGdW5jdGlvbi5wcm90b3R5cGUpIGlzIFsnYXBwbHknLCAnYmluZCcsICdjYWxsJywgJ2NvbnN0
cnVjdG9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3RvU3RyaW5nJ10KIFBBU1MgZ2V0U29ydGVkT3du
UHJvcGVydHlOYW1lcyhBcnJheSkgaXMgWydmcm9tJywgJ2lzQXJyYXknLCAnbGVuZ3RoJywgJ25h
bWUnLCAnb2YnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhB
cnJheS5wcm90b3R5cGUpIGlzIFsnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2VudHJpZXMnLCAn
ZXZlcnknLCAnZmlsbCcsICdmaWx0ZXInLCAnZmluZCcsICdmaW5kSW5kZXgnLCAnZm9yRWFjaCcs
ICdpbmNsdWRlcycsICdpbmRleE9mJywgJ2pvaW4nLCAna2V5cycsICdsYXN0SW5kZXhPZicsICds
ZW5ndGgnLCAnbWFwJywgJ3BvcCcsICdwdXNoJywgJ3JlZHVjZScsICdyZWR1Y2VSaWdodCcsICdy
ZXZlcnNlJywgJ3NoaWZ0JywgJ3NsaWNlJywgJ3NvbWUnLCAnc29ydCcsICdzcGxpY2UnLCAndG9M
b2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndW5zaGlmdCcsICd2YWx1ZXMnXQotUEFTUyBnZXRT
b3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN0cmluZykgaXMgWydmcm9tQ2hhckNvZGUnLCAnZnJvbUNv
ZGVQb2ludCcsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQorUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKFN0cmluZykgaXMgWydmcm9tQ2hhckNvZGUnLCAnZnJvbUNvZGVQb2lu
dCcsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAncmF3J10KIFBBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhTdHJpbmcucHJvdG90eXBlKSBpcyBbJ2FuY2hvcicsICdiaWcnLCAn
YmxpbmsnLCAnYm9sZCcsICdjaGFyQXQnLCAnY2hhckNvZGVBdCcsICdjb2RlUG9pbnRBdCcsICdj
b25jYXQnLCAnY29uc3RydWN0b3InLCAnZW5kc1dpdGgnLCAnZml4ZWQnLCAnZm9udGNvbG9yJywg
J2ZvbnRzaXplJywgJ2luY2x1ZGVzJywgJ2luZGV4T2YnLCAnaXRhbGljcycsICdsYXN0SW5kZXhP
ZicsICdsZW5ndGgnLCAnbGluaycsICdsb2NhbGVDb21wYXJlJywgJ21hdGNoJywgJ3JlcGVhdCcs
ICdyZXBsYWNlJywgJ3NlYXJjaCcsICdzbGljZScsICdzbWFsbCcsICdzcGxpdCcsICdzdGFydHNX
aXRoJywgJ3N0cmlrZScsICdzdWInLCAnc3Vic3RyJywgJ3N1YnN0cmluZycsICdzdXAnLCAndG9M
b2NhbGVMb3dlckNhc2UnLCAndG9Mb2NhbGVVcHBlckNhc2UnLCAndG9Mb3dlckNhc2UnLCAndG9T
dHJpbmcnLCAndG9VcHBlckNhc2UnLCAndHJpbScsICd0cmltTGVmdCcsICd0cmltUmlnaHQnLCAn
dmFsdWVPZiddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoQm9vbGVhbikgaXMgWyds
ZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5h
bWVzKEJvb2xlYW4ucHJvdG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3Zh
bHVlT2YnXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1n
ZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCmluZGV4IDI3ZjVmY2VjYTUxNjA4YjUwMGFlOGQ3MmZh
YzE1YTBiZDhmNzRkM2UuLjVjNmE5YmIzMzcxYzEwZWRmYzMwZGYxNjFhNTg4MTczYWIwNWE2Y2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJv
cGVydHlOYW1lcy5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdl
dE93blByb3BlcnR5TmFtZXMuanMKQEAgLTU2LDcgKzU2LDcgQEAKICAgICAiRnVuY3Rpb24ucHJv
dG90eXBlIjogIlsnYXBwbHknLCAnYmluZCcsICdjYWxsJywgJ2NvbnN0cnVjdG9yJywgJ2xlbmd0
aCcsICduYW1lJywgJ3RvU3RyaW5nJ10iLAogICAgICJBcnJheSI6ICJbJ2Zyb20nLCAnaXNBcnJh
eScsICdsZW5ndGgnLCAnbmFtZScsICdvZicsICdwcm90b3R5cGUnXSIsCiAgICAgIkFycmF5LnBy
b3RvdHlwZSI6ICJbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdlbnRyaWVzJywgJ2V2ZXJ5Jywg
J2ZpbGwnLCAnZmlsdGVyJywgJ2ZpbmQnLCAnZmluZEluZGV4JywgJ2ZvckVhY2gnLCAnaW5jbHVk
ZXMnLCAnaW5kZXhPZicsICdqb2luJywgJ2tleXMnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywg
J21hcCcsICdwb3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScs
ICdzaGlmdCcsICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3Ry
aW5nJywgJ3RvU3RyaW5nJywgJ3Vuc2hpZnQnLCAndmFsdWVzJ10iLAotICAgICJTdHJpbmciOiAi
Wydmcm9tQ2hhckNvZGUnLCAnZnJvbUNvZGVQb2ludCcsICdsZW5ndGgnLCAnbmFtZScsICdwcm90
b3R5cGUnXSIsCisgICAgIlN0cmluZyI6ICJbJ2Zyb21DaGFyQ29kZScsICdmcm9tQ29kZVBvaW50
JywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICdyYXcnXSIsCiAgICAgIlN0cmluZy5w
cm90b3R5cGUiOiAiWydhbmNob3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0Jywg
J2NoYXJDb2RlQXQnLCAnY29kZVBvaW50QXQnLCAnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2Vu
ZHNXaXRoJywgJ2ZpeGVkJywgJ2ZvbnRjb2xvcicsICdmb250c2l6ZScsICdpbmNsdWRlcycsICdp
bmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ2xpbmsnLCAnbG9j
YWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBlYXQnLCAncmVwbGFjZScsICdzZWFyY2gnLCAnc2xp
Y2UnLCAnc21hbGwnLCAnc3BsaXQnLCAnc3RhcnRzV2l0aCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1
YnN0cicsICdzdWJzdHJpbmcnLCAnc3VwJywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxl
VXBwZXJDYXNlJywgJ3RvTG93ZXJDYXNlJywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3Ry
aW0nLCAndHJpbUxlZnQnLCAndHJpbVJpZ2h0JywgJ3ZhbHVlT2YnXSIsCiAgICAgIkJvb2xlYW4i
OiAiWydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXSIsCiAgICAgIkJvb2xlYW4ucHJvdG90
eXBlIjogIlsnY29uc3RydWN0b3InLCAndG9TdHJpbmcnLCAndmFsdWVPZiddIiwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252225</attachid>
            <date>2015-05-02 02:04:25 -0700</date>
            <delta_ts>2015-05-09 20:35:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144330-20150502180312.patch</filename>
            <type>text/plain</type>
            <size>16069</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MDhiNzJhNWI5ZTFhZGQ4NjU2ODQ0NjYyNjdmNDUzYzA4ZDdlNzc3Li41M2YwMzM0NTBkNzAzYmNm
NjY1NzkzNzJjNDQ0NzljMDQ3ZDI0OWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNS0wNS0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3RyaW5nLnJhdworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MzMwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFN0cmluZy5yYXcu
IEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0YWdnZWQtdGVtcGxhdGVzIHN5bnRheC4K
KyAgICAgICAgVG8gaW1wbGVtZW50IFRvU3RyaW5nIGFic3RyYWN0IG9wZXJhdGlvbiBlZmZpY2ll
bnRseSwKKyAgICAgICAgd2UgaW50cm9kdWNlIEB0b1N0cmluZyBieXRlY29kZSBpbnRyaW5zaWMu
IEl0IGVtaXRzIG9wX3RvX3N0cmluZyBkaXJlY3RseS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ0NvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHJhdyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfdG9TdHJp
bmcpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc3Ry
aW5nLXJhdy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICguZ2V0IHNo
b3VsZEJlKToKKyAgICAgICAgKENvdW50ZXIpOgorCiAyMDE1LTA0LTMwICBKb24gRGF2aXMgIDxq
b25kQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb25zb2xlIHNob3VsZCBz
aG93IGFuIGljb24gZm9yIGNvbnNvbGUuaW5mbygpIG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNjVkODNhNDEzOWIyYjNlN2EyYTFlZDhiZjM0ZTY2MmVjM2Fk
ZGQ2ZS4uNWI4MTMxZGEzZTcwNjgxMDQxNGExOTdhMjZkYTRkMTA4YjVjM2JkMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMiwzICsxMjEyLDQgQEAgaWYgKEVOQUJM
RV9GVExfSklUKQogICAgIGFkZF9kZXBlbmRlbmNpZXMoSmF2YVNjcmlwdENvcmUgbGx2bUZvckpT
QykKIGVuZGlmICgpCiAKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL1N0cmluZ0NvbnN0cnVjdG9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1N0cmluZ0NvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMTJmYTRiNzMwY2MwY2E2NDkwYWM4
ODVlYjYwMWExMDU2ZmJiNjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvU3RyaW5nQ29uc3RydWN0b3IuanMKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmdW5jdGlvbiBy
YXcodGVtcGxhdGUpIHsKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBpZiAodGVtcGxhdGUgPT09
IG51bGwgfHwgdGVtcGxhdGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIlN0cmluZy5yYXcgcmVxdWlyZXMgdGVtcGxhdGUgbm90IGJlIG51bGwgb3IgdW5kZWZp
bmVkIik7CisgICAgdmFyIGNvb2tlZCA9IEBPYmplY3QodGVtcGxhdGUpOworCisgICAgdmFyIHJh
d1ZhbHVlID0gY29va2VkLnJhdzsKKyAgICBpZiAocmF3VmFsdWUgPT09IG51bGwgfHwgcmF3VmFs
dWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlN0cmluZy5y
YXcgcmVxdWlyZXMgdGVtcGxhdGUucmF3IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworICAg
IHZhciByYXcgPSBAT2JqZWN0KHJhd1ZhbHVlKTsKKworICAgIHZhciBudW1iZXJPZlN1YnN0aXR1
dGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTsKKworICAgIHZhciBtYXhTYWZlSW50ZWdlciA9
IDkwMDcxOTkyNTQ3NDA5OTE7CisgICAgdmFyIG51bWJlclZhbHVlID0gQE51bWJlcihyYXcubGVu
Z3RoKTsKKyAgICB2YXIgbGVuZ3RoVmFsdWU7CisgICAgaWYgKG51bWJlclZhbHVlICE9IG51bWJl
clZhbHVlKSB7ICAvLyBpc05hTihudW1iZXJWYWx1ZSkKKyAgICAgICAgbGVuZ3RoVmFsdWUgPSAw
OworICAgIH0gZWxzZSBpZiAobnVtYmVyVmFsdWUgPT09IDAgfHwgIUBpc0Zpbml0ZShudW1iZXJW
YWx1ZSkpIHsKKyAgICAgICAgbGVuZ3RoVmFsdWUgPSBudW1iZXJWYWx1ZTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBsZW5ndGhWYWx1ZSA9IChudW1iZXJWYWx1ZSA+IDAgPyAxIDogLTEpICogQGZs
b29yKEBhYnMobnVtYmVyVmFsdWUpKTsKKyAgICB9CisgICAgLy8gb3JpZ2luYWxseSBNYXRoLm1p
bihNYXRoLm1heChsZW5ndGgsIDApLCBtYXhTYWZlSW50ZWdlcikpOworICAgIHZhciBsaXRlcmFs
U2VnbWVudHMgPSBsZW5ndGhWYWx1ZSA+IDAgPyAobGVuZ3RoVmFsdWUgPCBtYXhTYWZlSW50ZWdl
ciA/IGxlbmd0aFZhbHVlIDogbWF4U2FmZUludGVnZXIpIDogMDsKKworICAgIGlmIChsaXRlcmFs
U2VnbWVudHMgPD0gMCkKKyAgICAgICAgcmV0dXJuICcnOworCisgICAgdmFyIHN0cmluZ0VsZW1l
bnRzID0gJyc7CisgICAgdmFyIG5leHRJbmRleCA9IDA7CisgICAgd2hpbGUgKHRydWUpIHsKKyAg
ICAgICAgdmFyIG5leHRTZWcgPSBAdG9TdHJpbmcocmF3W25leHRJbmRleF0pOworICAgICAgICBz
dHJpbmdFbGVtZW50cyArPSBuZXh0U2VnOworCisgICAgICAgIGlmIChuZXh0SW5kZXggKyAxID09
PSBsaXRlcmFsU2VnbWVudHMpCisgICAgICAgICAgICByZXR1cm4gc3RyaW5nRWxlbWVudHM7CisK
KyAgICAgICAgdmFyIG5leHQgPSAnJzsKKyAgICAgICAgaWYgKG5leHRJbmRleCA8IG51bWJlck9m
U3Vic3RpdHV0aW9ucykgeworICAgICAgICAgICAgLy8gfGFyZ3VtZW50c3wgY29udGFpbiB0aGUg
Zmlyc3QgYXJndW1lbnQsIHx0ZW1wbGF0ZXwuCisgICAgICAgICAgICBuZXh0ID0gQHRvU3RyaW5n
KGFyZ3VtZW50c1tuZXh0SW5kZXggKyAxXSk7CisgICAgICAgIH0KKworICAgICAgICBzdHJpbmdF
bGVtZW50cyArPSBuZXh0OworCisgICAgICAgIG5leHRJbmRleCArPSAxOworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNw
cAppbmRleCAwZjBiNzhmMGU1OTFkOWJiMTZiOTU4MWQ1ZDU2MDRkNDhlNWI3NzZmLi5hZDM0MjVk
NGQ5MTYyN2IwNGFiNTI0ZWY3NjNhMzlhOTAzNTc2ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC02OTcsNiArNjk3
LDE1IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNf
cHV0QnlWYWxEaXJlY3QoQnl0ZWNvZGVHZW5lcmF0CiAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3Zl
VG9EZXN0aW5hdGlvbklmTmVlZGVkKGRzdCwgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeVZhbChi
YXNlLmdldCgpLCBpbmRleC5nZXQoKSwgdmFsdWUuZ2V0KCkpKTsKIH0KIAorUmVnaXN0ZXJJRCog
Qnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY190b1N0cmluZyhCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgQXJndW1lbnRMaXN0
Tm9kZSogbm9kZSA9IG1fYXJncy0+bV9saXN0Tm9kZTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
c3JjID0gZ2VuZXJhdG9yLmVtaXROb2RlKG5vZGUpOworICAgIEFTU0VSVCghbm9kZS0+bV9uZXh0
KTsKKworICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRvRGVzdGluYXRpb25JZk5lZWRlZChkc3Qs
IGdlbmVyYXRvci5lbWl0VG9TdHJpbmcoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBz
cmMuZ2V0KCkpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0
aW9uQ2FsbEJyYWNrZXROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog
UmVnaXN0ZXJJRCogRnVuY3Rpb25DYWxsQnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA3OTA2OWVhOTY0
ZDYwNjE1NDFlOTVkZDdmMWM5MzMwZjNlOGMyODJlLi5iMGUyODM4ZDY1OGNiZDNjNTE5YzEyN2Jl
MDUwNmI0YTY5MTMzYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTI0Miw3ICsyNDIsOCBAQAogICAgIG1hY3JvKHVuc2Nv
cGFibGVzKQogCiAjZGVmaW5lIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDU19FQUNIX05B
TUUobWFjcm8pIFwKLSAgICBtYWNybyhwdXRCeVZhbERpcmVjdCkKKyAgICBtYWNybyhwdXRCeVZh
bERpcmVjdCkgXAorICAgIG1hY3JvKHRvU3RyaW5nKQogCiAjZGVmaW5lIEpTQ19DT01NT05fUFJJ
VkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUobWFjcm8pIFwKICAgICBKU0NfQ09N
TU9OX0JZVEVDT0RFX0lOVFJJTlNJQ1NfRUFDSF9OQU1FKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzA5
YzZmN2MyZjA1OTI5ZGVkNThiNGU2NjhhY2MxOWM4MDMyZGQ2My4uZThkMzk2OTcwNzNlMzU1ZDM3
NzUyMDY3MzE2MzFlNmU4NzczMzEwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtNDYsNiArNDYsNyBAQAogQGJlZ2lu
IHN0cmluZ0NvbnN0cnVjdG9yVGFibGUKICAgZnJvbUNoYXJDb2RlICAgICAgICAgIHN0cmluZ0Zy
b21DaGFyQ29kZSAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgZnJvbUNvZGVQb2ludCAg
ICAgICAgIHN0cmluZ0Zyb21Db2RlUG9pbnQgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAg
cmF3ICAgICAgICAgICAgICAgICAgIHN0cmluZ1JhdyAgICAgICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDEKIEBlbmQKICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3Mvc3RyaW5nLXJhdy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvc3RyaW5nLXJhdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2M3NjliYjAyMzExMDQxZjY2NDUz
MjgwYjBiYzk0NTQ2ZmJkZThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmctcmF3LmpzCkBAIC0wLDAgKzEsMTU0IEBACitmdW5jdGlv
biBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVlOiAke2FjdHVhbH1gKTsKK30K
KworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVy
cm9yVGhyb3duID0gZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAg
ICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvclRocm93biA9IHRy
dWU7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJv
cikgIT09IGVycm9yTWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6
ICR7U3RyaW5nKGVycm9yKX1gKTsKK30KKworc2hvdWxkQmUoU3RyaW5nLnJhdy5uYW1lLCAncmF3
Jyk7CitzaG91bGRCZShTdHJpbmcucmF3Lmxlbmd0aCwgMSk7CisKK3Nob3VsZFRocm93KGZ1bmN0
aW9uICgpIHsKKyAgICBTdHJpbmcucmF3KCk7Cit9LCAiVHlwZUVycm9yOiBTdHJpbmcucmF3IHJl
cXVpcmVzIHRlbXBsYXRlIG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworCitzaG91bGRUaHJv
dyhmdW5jdGlvbiAoKSB7CisgICAgU3RyaW5nLnJhdyh1bmRlZmluZWQpOworfSwgIlR5cGVFcnJv
cjogU3RyaW5nLnJhdyByZXF1aXJlcyB0ZW1wbGF0ZSBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQi
KTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkgeworICAgIFN0cmluZy5yYXcoeyByYXc6IHVu
ZGVmaW5lZCB9KTsKK30sICJUeXBlRXJyb3I6IFN0cmluZy5yYXcgcmVxdWlyZXMgdGVtcGxhdGUu
cmF3IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbiAo
KSB7CisgICAgU3RyaW5nLnJhdyh7IHJhdzogbnVsbCB9KTsKK30sICJUeXBlRXJyb3I6IFN0cmlu
Zy5yYXcgcmVxdWlyZXMgdGVtcGxhdGUucmF3IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOwor
CitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgU3RyaW5nLnJhdyh7CisgICAgICAgIGdl
dCBsZW5ndGgoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCd0ZW1wbGF0ZS5sZW5n
dGggY2FsbGVkJyk7CisgICAgICAgIH0sCisKKyAgICAgICAgcmF3OiB7CisgICAgICAgICAgICBn
ZXQgbGVuZ3RoKCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidGVtcGxhdGUu
cmF3Lmxlbmd0aCBjYWxsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOwor
fSwgIkVycm9yOiB0ZW1wbGF0ZS5yYXcubGVuZ3RoIGNhbGxlZCIpOworCitzaG91bGRCZShTdHJp
bmcucmF3KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3RoOiAtMQorICAgIH0KK30pLCAiIik7
CisKK3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IC0y
LjUKKyAgICB9Cit9KSwgIiIpOworCitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6IHsK
KyAgICAgICAgbGVuZ3RoOiAtSW5maW5pdHkKKyAgICB9Cit9KSwgIiIpOworCitzaG91bGRCZShT
dHJpbmcucmF3KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3RoOiAwCisgICAgfQorfSksICIi
KTsKKworc2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7CisgICAgICAgIGxlbmd0aDog
TmFOCisgICAgfQorfSksICIiKTsKKworZnVuY3Rpb24gZ2VuZXJhdGVUZW1wbGF0ZSgpIHsKKyAg
ICB2YXIgY29va2VkID0gW107CisgICAgY29va2VkLnJhdyA9IEFycmF5LmZyb20oYXJndW1lbnRz
KTsKKyAgICByZXR1cm4gY29va2VkOworfQorCitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRl
VGVtcGxhdGUoIiIsICIsIiwgIiwiLCAiIiksICJDb2NvYSIsICJDYXBwdWNjaW5vIiwgIk1hdGNo
YSIpLCAiQ29jb2EsQ2FwcHVjY2lubyxNYXRjaGEiKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2Vu
ZXJhdGVUZW1wbGF0ZSgiIiwgIiwiLCAiLCIsICIiKSwgIkNvY29hIiwgIkNhcHB1Y2Npbm8iLCAi
TWF0Y2hhIiwgIkhlbGxvIiksICJDb2NvYSxDYXBwdWNjaW5vLE1hdGNoYSIpOworc2hvdWxkQmUo
U3RyaW5nLnJhdyhnZW5lcmF0ZVRlbXBsYXRlKCIiLCAiLCIsICIsIiwgIiIpLCAiQ29jb2EiLCAi
Q2FwcHVjY2lubyIpLCAiQ29jb2EsQ2FwcHVjY2lubywiKTsKK3Nob3VsZEJlKFN0cmluZy5yYXco
Z2VuZXJhdGVUZW1wbGF0ZSgiIiwgIiwiLCAiLCIsICIiKSwgIkNvY29hIiksICJDb2NvYSwsIik7
CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoIiIsICIsIiwgIiwiLCAiIikp
LCAiLCwiKTsKKworZnVuY3Rpb24gQ291bnRlcihwKSB7CisgICAgdmFyIGNvdW50ID0gMDsKKyAg
ICByZXR1cm4geworICAgICAgICB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBjb3Vu
dCsrOworICAgICAgICB9CisgICAgfTsKK30KKwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7Citz
aG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291
bnRlciwgY291bnRlcikpLCAiMDEyMyIpOwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7CitzaG91
bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291bnRl
ciwgY291bnRlciksIGNvdW50ZXIpLCAiMDEyMzQiKTsKK3ZhciBjb3VudGVyID0gQ291bnRlcigp
Oworc2hvdWxkQmUoU3RyaW5nLnJhdyhnZW5lcmF0ZVRlbXBsYXRlKGNvdW50ZXIsIGNvdW50ZXIs
IGNvdW50ZXIsIGNvdW50ZXIpLCBjb3VudGVyLCBjb3VudGVyKSwgIjAxMjM0NSIpOwordmFyIGNv
dW50ZXIgPSBDb3VudGVyKCk7CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUo
Y291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50ZXIsIGNv
dW50ZXIpLCAiMDEyMzQ1NiIpOwordmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7CitzaG91bGRCZShT
dHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRlciwgY291bnRlciwgY291
bnRlciksIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIpLCAiMDEyMzQ1NiIpOwor
dmFyIGNvdW50ZXIgPSBDb3VudGVyKCk7CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVt
cGxhdGUoY291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50
ZXIsIGNvdW50ZXIsIGNvdW50ZXIpLCAiMDEyMzQ1NiIpOwordmFyIGNvdW50ZXIgPSBDb3VudGVy
KCk7CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291bnRlciwgY291bnRl
ciwgY291bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIsIGNvdW50ZXIs
IGNvdW50ZXIpLCAiMDEyMzQ1NiIpOworCisKK3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJh
dzogeworICAgICAgICBsZW5ndGg6IDMuNSwKKyAgICAgICAgMDogImEiLAorICAgICAgICAxOiAi
YiIsCisgICAgICAgIDI6ICJjIgorICAgIH0KK30sICJkIiwgImUiLCAiZiIsICJnIiksICJhZGJl
YyIpOworCitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6IHsKKyAgICAgICAgbGVuZ3Ro
OiAyLjMsCisgICAgICAgIDA6ICJhIiwKKyAgICAgICAgMTogImIiLAorICAgICAgICAyOiAiYyIK
KyAgICB9Cit9LCAiZCIsICJlIiwgImYiLCAiZyIpLCAiYWRiIik7CisKK3Nob3VsZEJlKFN0cmlu
Zy5yYXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IDIuMywKKyAgICAgICAgMDogImEi
LAorICAgICAgICAyOiAiYyIKKyAgICB9Cit9LCAiZCIsICJlIiwgImYiLCAiZyIpLCAiYWR1bmRl
ZmluZWQiKTsKKworc2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7CisgICAgICAgIGxl
bmd0aDogMi4zLAorICAgICAgICAwOiAiYSIsCisgICAgICAgIDE6ICJiIiwKKyAgICAgICAgMjog
ImMiCisgICAgfQorfSwgdW5kZWZpbmVkLCAiZSIsICJmIiwgImciKSwgImF1bmRlZmluZWRiIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMmQwNTJjNzE5ZjlkNDY4N2ZiYWIxY2U4N2NkOWZlYTE3OWMzNmFjYy4uZDI0MDE5
ZjA4OWY2MWYxYzY2ZDBlZDkxNWIzNTE0OGIzOWMxMTBkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE1LTA1LTAyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtFUzZdIEltcGxlbWVudCBTdHJpbmcucmF3CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQzMzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU3RyaW5nLnJhdy4KKworICAgICAgICAqIGpz
L09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9z
Y3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanM6CisKIDIwMTUtMDQtMzAg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIGdhcmRlbmluZy4gVXBkYXRlIHJlc3VsdHMgb2YgaW5zcGVjdG9yIHRlc3RzLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IDM2NDIwMGUxNWJmNDgyZmE2NDlkZjM4ZGM5MmY2YzU4ZGU2YzFlMDMuLmQ4MTM0
OWI0MTI4M2VhZDBjZGJmZDY4MmQ5MWM3YzNlNzg1NjIxZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKQEAgLTQ3
LDcgKzQ3LDcgQEAgUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEZ1bmN0aW9uKSBpcyBb
J2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5
TmFtZXMoRnVuY3Rpb24ucHJvdG90eXBlKSBpcyBbJ2FwcGx5JywgJ2JpbmQnLCAnY2FsbCcsICdj
b25zdHJ1Y3RvcicsICdsZW5ndGgnLCAnbmFtZScsICd0b1N0cmluZyddCiBQQVNTIGdldFNvcnRl
ZE93blByb3BlcnR5TmFtZXMoQXJyYXkpIGlzIFsnZnJvbScsICdpc0FycmF5JywgJ2xlbmd0aCcs
ICduYW1lJywgJ29mJywgJ3Byb3RvdHlwZSddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoQXJyYXkucHJvdG90eXBlKSBpcyBbJ2NvbmNhdCcsICdjb25zdHJ1Y3RvcicsICdlbnRyaWVz
JywgJ2V2ZXJ5JywgJ2ZpbGwnLCAnZmlsdGVyJywgJ2ZpbmQnLCAnZmluZEluZGV4JywgJ2ZvckVh
Y2gnLCAnaW5jbHVkZXMnLCAnaW5kZXhPZicsICdqb2luJywgJ2tleXMnLCAnbGFzdEluZGV4T2Yn
LCAnbGVuZ3RoJywgJ21hcCcsICdwb3AnLCAncHVzaCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQn
LCAncmV2ZXJzZScsICdzaGlmdCcsICdzbGljZScsICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywg
J3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywgJ3Vuc2hpZnQnLCAndmFsdWVzJ10KLVBBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTdHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2Zy
b21Db2RlUG9pbnQnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KK1BBU1MgZ2V0U29y
dGVkT3duUHJvcGVydHlOYW1lcyhTdHJpbmcpIGlzIFsnZnJvbUNoYXJDb2RlJywgJ2Zyb21Db2Rl
UG9pbnQnLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3JhdyddCiBQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMoU3RyaW5nLnByb3RvdHlwZSkgaXMgWydhbmNob3InLCAnYmln
JywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2RlQXQnLCAnY29kZVBvaW50QXQn
LCAnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2VuZHNXaXRoJywgJ2ZpeGVkJywgJ2ZvbnRjb2xv
cicsICdmb250c2l6ZScsICdpbmNsdWRlcycsICdpbmRleE9mJywgJ2l0YWxpY3MnLCAnbGFzdElu
ZGV4T2YnLCAnbGVuZ3RoJywgJ2xpbmsnLCAnbG9jYWxlQ29tcGFyZScsICdtYXRjaCcsICdyZXBl
YXQnLCAncmVwbGFjZScsICdzZWFyY2gnLCAnc2xpY2UnLCAnc21hbGwnLCAnc3BsaXQnLCAnc3Rh
cnRzV2l0aCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJpbmcnLCAnc3VwJywg
J3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3RvTG93ZXJDYXNlJywg
J3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQnLCAndHJpbVJpZ2h0
JywgJ3ZhbHVlT2YnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEJvb2xlYW4pIGlz
IFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhCb29sZWFuLnByb3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICd0b1N0cmluZycs
ICd2YWx1ZU9mJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmpl
Y3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9P
YmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwppbmRleCAyN2Y1ZmNlY2E1MTYwOGI1MDBhZThk
NzJmYWMxNWEwYmQ4Zjc0ZDNlLi41YzZhOWJiMzM3MWMxMGVkZmMzMGRmMTYxYTU4ODE3M2FiMDVh
NmNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93
blByb3BlcnR5TmFtZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCkBAIC01Niw3ICs1Niw3IEBACiAgICAgIkZ1bmN0aW9u
LnByb3RvdHlwZSI6ICJbJ2FwcGx5JywgJ2JpbmQnLCAnY2FsbCcsICdjb25zdHJ1Y3RvcicsICds
ZW5ndGgnLCAnbmFtZScsICd0b1N0cmluZyddIiwKICAgICAiQXJyYXkiOiAiWydmcm9tJywgJ2lz
QXJyYXknLCAnbGVuZ3RoJywgJ25hbWUnLCAnb2YnLCAncHJvdG90eXBlJ10iLAogICAgICJBcnJh
eS5wcm90b3R5cGUiOiAiWydjb25jYXQnLCAnY29uc3RydWN0b3InLCAnZW50cmllcycsICdldmVy
eScsICdmaWxsJywgJ2ZpbHRlcicsICdmaW5kJywgJ2ZpbmRJbmRleCcsICdmb3JFYWNoJywgJ2lu
Y2x1ZGVzJywgJ2luZGV4T2YnLCAnam9pbicsICdrZXlzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0
aCcsICdtYXAnLCAncG9wJywgJ3B1c2gnLCAncmVkdWNlJywgJ3JlZHVjZVJpZ2h0JywgJ3JldmVy
c2UnLCAnc2hpZnQnLCAnc2xpY2UnLCAnc29tZScsICdzb3J0JywgJ3NwbGljZScsICd0b0xvY2Fs
ZVN0cmluZycsICd0b1N0cmluZycsICd1bnNoaWZ0JywgJ3ZhbHVlcyddIiwKLSAgICAiU3RyaW5n
IjogIlsnZnJvbUNoYXJDb2RlJywgJ2Zyb21Db2RlUG9pbnQnLCAnbGVuZ3RoJywgJ25hbWUnLCAn
cHJvdG90eXBlJ10iLAorICAgICJTdHJpbmciOiAiWydmcm9tQ2hhckNvZGUnLCAnZnJvbUNvZGVQ
b2ludCcsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAncmF3J10iLAogICAgICJTdHJp
bmcucHJvdG90eXBlIjogIlsnYW5jaG9yJywgJ2JpZycsICdibGluaycsICdib2xkJywgJ2NoYXJB
dCcsICdjaGFyQ29kZUF0JywgJ2NvZGVQb2ludEF0JywgJ2NvbmNhdCcsICdjb25zdHJ1Y3Rvcics
ICdlbmRzV2l0aCcsICdmaXhlZCcsICdmb250Y29sb3InLCAnZm9udHNpemUnLCAnaW5jbHVkZXMn
LCAnaW5kZXhPZicsICdpdGFsaWNzJywgJ2xhc3RJbmRleE9mJywgJ2xlbmd0aCcsICdsaW5rJywg
J2xvY2FsZUNvbXBhcmUnLCAnbWF0Y2gnLCAncmVwZWF0JywgJ3JlcGxhY2UnLCAnc2VhcmNoJywg
J3NsaWNlJywgJ3NtYWxsJywgJ3NwbGl0JywgJ3N0YXJ0c1dpdGgnLCAnc3RyaWtlJywgJ3N1Yics
ICdzdWJzdHInLCAnc3Vic3RyaW5nJywgJ3N1cCcsICd0b0xvY2FsZUxvd2VyQ2FzZScsICd0b0xv
Y2FsZVVwcGVyQ2FzZScsICd0b0xvd2VyQ2FzZScsICd0b1N0cmluZycsICd0b1VwcGVyQ2FzZScs
ICd0cmltJywgJ3RyaW1MZWZ0JywgJ3RyaW1SaWdodCcsICd2YWx1ZU9mJ10iLAogICAgICJCb29s
ZWFuIjogIlsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10iLAogICAgICJCb29sZWFuLnBy
b3RvdHlwZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252801</attachid>
            <date>2015-05-09 20:35:45 -0700</date>
            <delta_ts>2015-05-13 09:50:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144330-20150510123426.patch</filename>
            <type>text/plain</type>
            <size>16104</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NmMzMTUxNzg4MzJiMWIxNTFkYTRkZjZjMGIxODNjNzRiYzVkYThlLi5iMzdkMTBlYWVmYzJkNjRh
NzkzNTA3MDJjMjM3YjA2MDFkYTM5NGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNS0wNS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgU3RyaW5nLnJhdworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MzMwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFN0cmluZy5yYXcu
IEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0YWdnZWQtdGVtcGxhdGVzIHN5bnRheC4K
KyAgICAgICAgVG8gaW1wbGVtZW50IFRvU3RyaW5nIGFic3RyYWN0IG9wZXJhdGlvbiBlZmZpY2ll
bnRseSwKKyAgICAgICAgd2UgaW50cm9kdWNlIEB0b1N0cmluZyBieXRlY29kZSBpbnRyaW5zaWMu
IEl0IGVtaXRzIG9wX3RvX3N0cmluZyBkaXJlY3RseS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ0NvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHJhdyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfdG9TdHJp
bmcpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvc3Ry
aW5nLXJhdy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICguZ2V0IHNo
b3VsZEJlKToKKyAgICAgICAgKENvdW50ZXIpOgorCiAyMDE1LTA1LTA5ICBZb2F2IFdlaXNzICA8
eW9hdkB5b2F2LndzPgogCiAgICAgICAgIFJlbW92ZSB0aGUgUElDVFVSRV9TSVpFUyBidWlsZCBm
bGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2ZmMDYwMWU3YjAzZTQ3
Yzc2NDU0OGU0YTU3MjlhNTk1ZDVkYzc4Zi4uMmVhOWRkMzJlY2EwNzQwZDE5ZDliZjVjNjlmNzVh
MmNmMTQ2ZjA2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIxMCwz
ICsxMjEwLDQgQEAgaWYgKEVOQUJMRV9GVExfSklUKQogICAgIGFkZF9kZXBlbmRlbmNpZXMoSmF2
YVNjcmlwdENvcmUgbGx2bUZvckpTQykKIGVuZGlmICgpCiAKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ0NvbnN0cnVjdG9yLmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ0NvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMy
M2QxYzNjZGFlMmM0OTI4OGRiMDQyMjk2YmFhMzljMjgwNmFiN2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nQ29uc3RydWN0b3IuanMKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitmdW5jdGlvbiByYXcodGVtcGxhdGUpIHsKKyAgICAidXNlIHN0cmljdCI7CisK
KyAgICBpZiAodGVtcGxhdGUgPT09IG51bGwgfHwgdGVtcGxhdGUgPT09IHVuZGVmaW5lZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlN0cmluZy5yYXcgcmVxdWlyZXMgdGVtcGxhdGUg
bm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisgICAgdmFyIGNvb2tlZFNlZ21lbnRzID0gQE9i
amVjdCh0ZW1wbGF0ZSk7CisKKyAgICB2YXIgcmF3VmFsdWUgPSBjb29rZWRTZWdtZW50cy5yYXc7
CisgICAgaWYgKHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQpCisg
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJTdHJpbmcucmF3IHJlcXVpcmVzIHRlbXBsYXRl
LnJhdyBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKKyAgICB2YXIgcmF3U2VnbWVudHMgPSBA
T2JqZWN0KHJhd1ZhbHVlKTsKKworICAgIHZhciBudW1iZXJPZlN1YnN0aXR1dGlvbnMgPSBhcmd1
bWVudHMubGVuZ3RoIC0gMTsKKworICAgIHZhciBtYXhTYWZlSW50ZWdlciA9IDB4MUZGRkZGRkZG
RkZGRkY7CisgICAgdmFyIG51bWJlclZhbHVlID0gQE51bWJlcihyYXdTZWdtZW50cy5sZW5ndGgp
OworICAgIHZhciBsZW5ndGhWYWx1ZTsKKyAgICBpZiAobnVtYmVyVmFsdWUgIT09IG51bWJlclZh
bHVlKSAgLy8gaXNOYU4obnVtYmVyVmFsdWUpCisgICAgICAgIGxlbmd0aFZhbHVlID0gMDsKKyAg
ICBlbHNlIGlmIChudW1iZXJWYWx1ZSA9PT0gMCB8fCAhQGlzRmluaXRlKG51bWJlclZhbHVlKSkK
KyAgICAgICAgbGVuZ3RoVmFsdWUgPSBudW1iZXJWYWx1ZTsKKyAgICBlbHNlCisgICAgICAgIGxl
bmd0aFZhbHVlID0gKG51bWJlclZhbHVlID4gMCA/IDEgOiAtMSkgKiBAZmxvb3IoQGFicyhudW1i
ZXJWYWx1ZSkpOworICAgIC8vIG9yaWdpbmFsbHkgTWF0aC5taW4oTWF0aC5tYXgobGVuZ3RoLCAw
KSwgbWF4U2FmZUludGVnZXIpKTsKKyAgICB2YXIgc2VnbWVudENvdW50ID0gbGVuZ3RoVmFsdWUg
PiAwID8gKGxlbmd0aFZhbHVlIDwgbWF4U2FmZUludGVnZXIgPyBsZW5ndGhWYWx1ZSA6IG1heFNh
ZmVJbnRlZ2VyKSA6IDA7CisKKyAgICBpZiAoc2VnbWVudENvdW50IDw9IDApCisgICAgICAgIHJl
dHVybiAnJzsKKworICAgIHZhciBzdHJpbmdFbGVtZW50cyA9ICcnOworICAgIGZvciAodmFyIGkg
PSAwOyA7ICsraSkgeworICAgICAgICB2YXIgc2VnbWVudCA9IEB0b1N0cmluZyhyYXdTZWdtZW50
c1tpXSk7CisgICAgICAgIHN0cmluZ0VsZW1lbnRzICs9IHNlZ21lbnQ7CisKKyAgICAgICAgaWYg
KChpICsgMSkgPT09IHNlZ21lbnRDb3VudCkKKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdFbGVt
ZW50czsKKworICAgICAgICBpZiAoaSA8IG51bWJlck9mU3Vic3RpdHV0aW9ucykgeworICAgICAg
ICAgICAgdmFyIHN1YnN0aXR1dGlvbkluZGV4SW5Bcmd1bWVudHMgPSBpICsgMTsKKyAgICAgICAg
ICAgIHZhciBuZXh0ID0gQHRvU3RyaW5nKGFyZ3VtZW50c1tzdWJzdGl0dXRpb25JbmRleEluQXJn
dW1lbnRzXSk7CisgICAgICAgICAgICBzdHJpbmdFbGVtZW50cyArPSBuZXh0OworICAgICAgICB9
CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCmluZGV4IDM5YjAzY2RkY2ZiMjMxMDMzNGExZDYzYzgzZjhmMzg1M2Qx
NmM2ZmMuLjBkYjM3NGQxNTgxMWRlNWJhZWUzMDg5YjU4NTIyNzgyNzJjMGEyOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
QEAgLTY5Nyw2ICs2OTcsMTUgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjpl
bWl0X2ludHJpbnNpY19wdXRCeVZhbERpcmVjdChCeXRlY29kZUdlbmVyYXQKICAgICByZXR1cm4g
Z2VuZXJhdG9yLm1vdmVUb0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5lcmF0b3IuZW1pdERp
cmVjdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIGluZGV4LmdldCgpLCB2YWx1ZS5nZXQoKSkpOwogfQog
CitSZWdpc3RlcklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3RvU3Ry
aW5nKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAg
ICBBcmd1bWVudExpc3ROb2RlKiBub2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlOworICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBzcmMgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7CisgICAgQVNTRVJU
KCFub2RlLT5tX25leHQpOworCisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlVG9EZXN0aW5hdGlv
bklmTmVlZGVkKGRzdCwgZ2VuZXJhdG9yLmVtaXRUb1N0cmluZyhnZW5lcmF0b3IudGVtcERlc3Rp
bmF0aW9uKGRzdCksIHNyYy5nZXQoKSkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25DYWxsQnJhY2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBGdW5jdGlvbkNhbGxCcmFja2V0Tm9kZTo6ZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmlu
ZGV4IDc5MDY5ZWE5NjRkNjA2MTU0MWU5NWRkN2YxYzkzMzBmM2U4YzI4MmUuLmIwZTI4MzhkNjU4
Y2JkM2M1MTljMTI3YmUwNTA2YjRhNjkxMzNiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjQyLDcgKzI0Miw4IEBACiAg
ICAgbWFjcm8odW5zY29wYWJsZXMpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRS
SU5TSUNTX0VBQ0hfTkFNRShtYWNybykgXAotICAgIG1hY3JvKHB1dEJ5VmFsRGlyZWN0KQorICAg
IG1hY3JvKHB1dEJ5VmFsRGlyZWN0KSBcCisgICAgbWFjcm8odG9TdHJpbmcpCiAKICNkZWZpbmUg
SlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShtYWNybykg
XAogICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDU19FQUNIX05BTUUobWFjcm8pIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmNwcAppbmRleCAzMDljNmY3YzJmMDU5MjlkZWQ1OGI0ZTY2OGFjYzE5YzgwMzJkZDYzLi5lOGQz
OTY5NzA3M2UzNTVkMzc3NTIwNjczMTYzMWU2ZTg3NzMzMTBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC00Niw2ICs0
Niw3IEBACiBAYmVnaW4gc3RyaW5nQ29uc3RydWN0b3JUYWJsZQogICBmcm9tQ2hhckNvZGUgICAg
ICAgICAgc3RyaW5nRnJvbUNoYXJDb2RlICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogICBm
cm9tQ29kZVBvaW50ICAgICAgICAgc3RyaW5nRnJvbUNvZGVQb2ludCAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gMQorICByYXcgICAgICAgICAgICAgICAgICAgc3RyaW5nUmF3ICAgICAgICAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gMQogQGVuZAogKi8KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmctcmF3LmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdHJpbmctcmF3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3Yzc2OWJi
MDIzMTEwNDFmNjY0NTMyODBiMGJjOTQ1NDZmYmRlOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N0cmluZy1yYXcuanMKQEAgLTAsMCArMSwx
NTQgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7
YWN0dWFsfWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2Up
IHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxsOwor
ICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVy
cm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24nKTsKKyAgICBp
ZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOworfQorCitzaG91bGRCZShTdHJpbmcu
cmF3Lm5hbWUsICdyYXcnKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcubGVuZ3RoLCAxKTsKKworc2hv
dWxkVGhyb3coZnVuY3Rpb24gKCkgeworICAgIFN0cmluZy5yYXcoKTsKK30sICJUeXBlRXJyb3I6
IFN0cmluZy5yYXcgcmVxdWlyZXMgdGVtcGxhdGUgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uICgpIHsKKyAgICBTdHJpbmcucmF3KHVuZGVmaW5lZCk7
Cit9LCAiVHlwZUVycm9yOiBTdHJpbmcucmF3IHJlcXVpcmVzIHRlbXBsYXRlIG5vdCBiZSBudWxs
IG9yIHVuZGVmaW5lZCIpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgU3RyaW5n
LnJhdyh7IHJhdzogdW5kZWZpbmVkIH0pOworfSwgIlR5cGVFcnJvcjogU3RyaW5nLnJhdyByZXF1
aXJlcyB0ZW1wbGF0ZS5yYXcgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisKK3Nob3VsZFRo
cm93KGZ1bmN0aW9uICgpIHsKKyAgICBTdHJpbmcucmF3KHsgcmF3OiBudWxsIH0pOworfSwgIlR5
cGVFcnJvcjogU3RyaW5nLnJhdyByZXF1aXJlcyB0ZW1wbGF0ZS5yYXcgbm90IGJlIG51bGwgb3Ig
dW5kZWZpbmVkIik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uICgpIHsKKyAgICBTdHJpbmcucmF3
KHsKKyAgICAgICAgZ2V0IGxlbmd0aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3Io
J3RlbXBsYXRlLmxlbmd0aCBjYWxsZWQnKTsKKyAgICAgICAgfSwKKworICAgICAgICByYXc6IHsK
KyAgICAgICAgICAgIGdldCBsZW5ndGgoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJ0ZW1wbGF0ZS5yYXcubGVuZ3RoIGNhbGxlZCIpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfSk7Cit9LCAiRXJyb3I6IHRlbXBsYXRlLnJhdy5sZW5ndGggY2FsbGVkIik7CisK
K3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IC0xCisg
ICAgfQorfSksICIiKTsKKworc2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7CisgICAg
ICAgIGxlbmd0aDogLTIuNQorICAgIH0KK30pLCAiIik7CisKK3Nob3VsZEJlKFN0cmluZy5yYXco
eworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IC1JbmZpbml0eQorICAgIH0KK30pLCAiIik7
CisKK3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogeworICAgICAgICBsZW5ndGg6IDAK
KyAgICB9Cit9KSwgIiIpOworCitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6IHsKKyAg
ICAgICAgbGVuZ3RoOiBOYU4KKyAgICB9Cit9KSwgIiIpOworCitmdW5jdGlvbiBnZW5lcmF0ZVRl
bXBsYXRlKCkgeworICAgIHZhciBjb29rZWQgPSBbXTsKKyAgICBjb29rZWQucmF3ID0gQXJyYXku
ZnJvbShhcmd1bWVudHMpOworICAgIHJldHVybiBjb29rZWQ7Cit9CisKK3Nob3VsZEJlKFN0cmlu
Zy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZSgiIiwgIiwiLCAiLCIsICIiKSwgIkNvY29hIiwgIkNhcHB1
Y2Npbm8iLCAiTWF0Y2hhIiksICJDb2NvYSxDYXBwdWNjaW5vLE1hdGNoYSIpOworc2hvdWxkQmUo
U3RyaW5nLnJhdyhnZW5lcmF0ZVRlbXBsYXRlKCIiLCAiLCIsICIsIiwgIiIpLCAiQ29jb2EiLCAi
Q2FwcHVjY2lubyIsICJNYXRjaGEiLCAiSGVsbG8iKSwgIkNvY29hLENhcHB1Y2Npbm8sTWF0Y2hh
Iik7CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoIiIsICIsIiwgIiwiLCAi
IiksICJDb2NvYSIsICJDYXBwdWNjaW5vIiksICJDb2NvYSxDYXBwdWNjaW5vLCIpOworc2hvdWxk
QmUoU3RyaW5nLnJhdyhnZW5lcmF0ZVRlbXBsYXRlKCIiLCAiLCIsICIsIiwgIiIpLCAiQ29jb2Ei
KSwgIkNvY29hLCwiKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZSgiIiwg
IiwiLCAiLCIsICIiKSksICIsLCIpOworCitmdW5jdGlvbiBDb3VudGVyKHApIHsKKyAgICB2YXIg
Y291bnQgPSAwOworICAgIHJldHVybiB7CisgICAgICAgIHRvU3RyaW5nKCkgeworICAgICAgICAg
ICAgcmV0dXJuIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9OworfQorCit2YXIgY291bnRlciA9
IENvdW50ZXIoKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVy
LCBjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyKSksICIwMTIzIik7Cit2YXIgY291bnRlciA9IENv
dW50ZXIoKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBj
b3VudGVyLCBjb3VudGVyLCBjb3VudGVyKSwgY291bnRlciksICIwMTIzNCIpOwordmFyIGNvdW50
ZXIgPSBDb3VudGVyKCk7CitzaG91bGRCZShTdHJpbmcucmF3KGdlbmVyYXRlVGVtcGxhdGUoY291
bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciksIGNvdW50ZXIsIGNvdW50ZXIpLCAiMDEy
MzQ1Iik7Cit2YXIgY291bnRlciA9IENvdW50ZXIoKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2Vu
ZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyKSwgY291bnRl
ciwgY291bnRlciwgY291bnRlciksICIwMTIzNDU2Iik7Cit2YXIgY291bnRlciA9IENvdW50ZXIo
KTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBjb3VudGVy
LCBjb3VudGVyLCBjb3VudGVyKSwgY291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciks
ICIwMTIzNDU2Iik7Cit2YXIgY291bnRlciA9IENvdW50ZXIoKTsKK3Nob3VsZEJlKFN0cmluZy5y
YXcoZ2VuZXJhdGVUZW1wbGF0ZShjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyKSwg
Y291bnRlciwgY291bnRlciwgY291bnRlciwgY291bnRlciksICIwMTIzNDU2Iik7Cit2YXIgY291
bnRlciA9IENvdW50ZXIoKTsKK3Nob3VsZEJlKFN0cmluZy5yYXcoZ2VuZXJhdGVUZW1wbGF0ZShj
b3VudGVyLCBjb3VudGVyLCBjb3VudGVyLCBjb3VudGVyKSwgY291bnRlciwgY291bnRlciwgY291
bnRlciwgY291bnRlciwgY291bnRlciksICIwMTIzNDU2Iik7CisKKworc2hvdWxkQmUoU3RyaW5n
LnJhdyh7CisgICAgcmF3OiB7CisgICAgICAgIGxlbmd0aDogMy41LAorICAgICAgICAwOiAiYSIs
CisgICAgICAgIDE6ICJiIiwKKyAgICAgICAgMjogImMiCisgICAgfQorfSwgImQiLCAiZSIsICJm
IiwgImciKSwgImFkYmVjIik7CisKK3Nob3VsZEJlKFN0cmluZy5yYXcoeworICAgIHJhdzogewor
ICAgICAgICBsZW5ndGg6IDIuMywKKyAgICAgICAgMDogImEiLAorICAgICAgICAxOiAiYiIsCisg
ICAgICAgIDI6ICJjIgorICAgIH0KK30sICJkIiwgImUiLCAiZiIsICJnIiksICJhZGIiKTsKKwor
c2hvdWxkQmUoU3RyaW5nLnJhdyh7CisgICAgcmF3OiB7CisgICAgICAgIGxlbmd0aDogMi4zLAor
ICAgICAgICAwOiAiYSIsCisgICAgICAgIDI6ICJjIgorICAgIH0KK30sICJkIiwgImUiLCAiZiIs
ICJnIiksICJhZHVuZGVmaW5lZCIpOworCitzaG91bGRCZShTdHJpbmcucmF3KHsKKyAgICByYXc6
IHsKKyAgICAgICAgbGVuZ3RoOiAyLjMsCisgICAgICAgIDA6ICJhIiwKKyAgICAgICAgMTogImIi
LAorICAgICAgICAyOiAiYyIKKyAgICB9Cit9LCB1bmRlZmluZWQsICJlIiwgImYiLCAiZyIpLCAi
YXVuZGVmaW5lZGIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlN2Y3ZWFkZmI1NjZjMTNjOWM2MzNjYzZjYWJjZDllMjBl
MWE3OTIxLi40MzMxNDYxZmE1MDI1MWE1ZWY0NDUxZWQ5MjJhMjk3NTFmYzI2ODk5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTUtMDUtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IFN0cmluZy5yYXcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDMzMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTdHJpbmcucmF3Lgor
CisgICAgICAgICoganMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qczoK
KwogMjAxNS0wNS0wOCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEu
Y29tPiBhbmQgWW91ZW5uIEZhYmxldCA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAg
ICAgICAgc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXJl
YWRlci5odG1sIGFuZCBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJs
eWluZy1zb3VyY2VzLmh0bWwgYXJlIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9P
YmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9P
YmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKaW5kZXggMzY0MjAwZTE1YmY0
ODJmYTY0OWRmMzhkYzkyZjZjNThkZTZjMWUwMy4uZDgxMzQ5YjQxMjgzZWFkMGNkYmZkNjgyZDkx
YzdjM2U3ODU2MjFkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blBy
b3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtNDcsNyArNDcsNyBAQCBQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMoRnVuY3Rpb24pIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJv
dG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhGdW5jdGlvbi5wcm90b3R5
cGUpIGlzIFsnYXBwbHknLCAnYmluZCcsICdjYWxsJywgJ2NvbnN0cnVjdG9yJywgJ2xlbmd0aCcs
ICduYW1lJywgJ3RvU3RyaW5nJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhBcnJh
eSkgaXMgWydmcm9tJywgJ2lzQXJyYXknLCAnbGVuZ3RoJywgJ25hbWUnLCAnb2YnLCAncHJvdG90
eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhBcnJheS5wcm90b3R5cGUpIGlz
IFsnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2VudHJpZXMnLCAnZXZlcnknLCAnZmlsbCcsICdm
aWx0ZXInLCAnZmluZCcsICdmaW5kSW5kZXgnLCAnZm9yRWFjaCcsICdpbmNsdWRlcycsICdpbmRl
eE9mJywgJ2pvaW4nLCAna2V5cycsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbWFwJywgJ3Bv
cCcsICdwdXNoJywgJ3JlZHVjZScsICdyZWR1Y2VSaWdodCcsICdyZXZlcnNlJywgJ3NoaWZ0Jywg
J3NsaWNlJywgJ3NvbWUnLCAnc29ydCcsICdzcGxpY2UnLCAndG9Mb2NhbGVTdHJpbmcnLCAndG9T
dHJpbmcnLCAndW5zaGlmdCcsICd2YWx1ZXMnXQotUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5h
bWVzKFN0cmluZykgaXMgWydmcm9tQ2hhckNvZGUnLCAnZnJvbUNvZGVQb2ludCcsICdsZW5ndGgn
LCAnbmFtZScsICdwcm90b3R5cGUnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN0
cmluZykgaXMgWydmcm9tQ2hhckNvZGUnLCAnZnJvbUNvZGVQb2ludCcsICdsZW5ndGgnLCAnbmFt
ZScsICdwcm90b3R5cGUnLCAncmF3J10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhT
dHJpbmcucHJvdG90eXBlKSBpcyBbJ2FuY2hvcicsICdiaWcnLCAnYmxpbmsnLCAnYm9sZCcsICdj
aGFyQXQnLCAnY2hhckNvZGVBdCcsICdjb2RlUG9pbnRBdCcsICdjb25jYXQnLCAnY29uc3RydWN0
b3InLCAnZW5kc1dpdGgnLCAnZml4ZWQnLCAnZm9udGNvbG9yJywgJ2ZvbnRzaXplJywgJ2luY2x1
ZGVzJywgJ2luZGV4T2YnLCAnaXRhbGljcycsICdsYXN0SW5kZXhPZicsICdsZW5ndGgnLCAnbGlu
aycsICdsb2NhbGVDb21wYXJlJywgJ21hdGNoJywgJ3JlcGVhdCcsICdyZXBsYWNlJywgJ3NlYXJj
aCcsICdzbGljZScsICdzbWFsbCcsICdzcGxpdCcsICdzdGFydHNXaXRoJywgJ3N0cmlrZScsICdz
dWInLCAnc3Vic3RyJywgJ3N1YnN0cmluZycsICdzdXAnLCAndG9Mb2NhbGVMb3dlckNhc2UnLCAn
dG9Mb2NhbGVVcHBlckNhc2UnLCAndG9Mb3dlckNhc2UnLCAndG9TdHJpbmcnLCAndG9VcHBlckNh
c2UnLCAndHJpbScsICd0cmltTGVmdCcsICd0cmltUmlnaHQnLCAndmFsdWVPZiddCiBQQVNTIGdl
dFNvcnRlZE93blByb3BlcnR5TmFtZXMoQm9vbGVhbikgaXMgWydsZW5ndGgnLCAnbmFtZScsICdw
cm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEJvb2xlYW4ucHJvdG90
eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVz
LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5h
bWVzLmpzCmluZGV4IDI3ZjVmY2VjYTUxNjA4YjUwMGFlOGQ3MmZhYzE1YTBiZDhmNzRkM2UuLjVj
NmE5YmIzMzcxYzEwZWRmYzMwZGYxNjFhNTg4MTczYWIwNWE2Y2YgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcworKysg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMu
anMKQEAgLTU2LDcgKzU2LDcgQEAKICAgICAiRnVuY3Rpb24ucHJvdG90eXBlIjogIlsnYXBwbHkn
LCAnYmluZCcsICdjYWxsJywgJ2NvbnN0cnVjdG9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3RvU3Ry
aW5nJ10iLAogICAgICJBcnJheSI6ICJbJ2Zyb20nLCAnaXNBcnJheScsICdsZW5ndGgnLCAnbmFt
ZScsICdvZicsICdwcm90b3R5cGUnXSIsCiAgICAgIkFycmF5LnByb3RvdHlwZSI6ICJbJ2NvbmNh
dCcsICdjb25zdHJ1Y3RvcicsICdlbnRyaWVzJywgJ2V2ZXJ5JywgJ2ZpbGwnLCAnZmlsdGVyJywg
J2ZpbmQnLCAnZmluZEluZGV4JywgJ2ZvckVhY2gnLCAnaW5jbHVkZXMnLCAnaW5kZXhPZicsICdq
b2luJywgJ2tleXMnLCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ21hcCcsICdwb3AnLCAncHVz
aCcsICdyZWR1Y2UnLCAncmVkdWNlUmlnaHQnLCAncmV2ZXJzZScsICdzaGlmdCcsICdzbGljZScs
ICdzb21lJywgJ3NvcnQnLCAnc3BsaWNlJywgJ3RvTG9jYWxlU3RyaW5nJywgJ3RvU3RyaW5nJywg
J3Vuc2hpZnQnLCAndmFsdWVzJ10iLAotICAgICJTdHJpbmciOiAiWydmcm9tQ2hhckNvZGUnLCAn
ZnJvbUNvZGVQb2ludCcsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXSIsCisgICAgIlN0
cmluZyI6ICJbJ2Zyb21DaGFyQ29kZScsICdmcm9tQ29kZVBvaW50JywgJ2xlbmd0aCcsICduYW1l
JywgJ3Byb3RvdHlwZScsICdyYXcnXSIsCiAgICAgIlN0cmluZy5wcm90b3R5cGUiOiAiWydhbmNo
b3InLCAnYmlnJywgJ2JsaW5rJywgJ2JvbGQnLCAnY2hhckF0JywgJ2NoYXJDb2RlQXQnLCAnY29k
ZVBvaW50QXQnLCAnY29uY2F0JywgJ2NvbnN0cnVjdG9yJywgJ2VuZHNXaXRoJywgJ2ZpeGVkJywg
J2ZvbnRjb2xvcicsICdmb250c2l6ZScsICdpbmNsdWRlcycsICdpbmRleE9mJywgJ2l0YWxpY3Mn
LCAnbGFzdEluZGV4T2YnLCAnbGVuZ3RoJywgJ2xpbmsnLCAnbG9jYWxlQ29tcGFyZScsICdtYXRj
aCcsICdyZXBlYXQnLCAncmVwbGFjZScsICdzZWFyY2gnLCAnc2xpY2UnLCAnc21hbGwnLCAnc3Bs
aXQnLCAnc3RhcnRzV2l0aCcsICdzdHJpa2UnLCAnc3ViJywgJ3N1YnN0cicsICdzdWJzdHJpbmcn
LCAnc3VwJywgJ3RvTG9jYWxlTG93ZXJDYXNlJywgJ3RvTG9jYWxlVXBwZXJDYXNlJywgJ3RvTG93
ZXJDYXNlJywgJ3RvU3RyaW5nJywgJ3RvVXBwZXJDYXNlJywgJ3RyaW0nLCAndHJpbUxlZnQnLCAn
dHJpbVJpZ2h0JywgJ3ZhbHVlT2YnXSIsCiAgICAgIkJvb2xlYW4iOiAiWydsZW5ndGgnLCAnbmFt
ZScsICdwcm90b3R5cGUnXSIsCiAgICAgIkJvb2xlYW4ucHJvdG90eXBlIjogIlsnY29uc3RydWN0
b3InLCAndG9TdHJpbmcnLCAndmFsdWVPZiddIiwK
</data>

          </attachment>
      

    </bug>

</bugzilla>