<?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>196631</bug_id>
          
          <creation_ts>2019-04-04 14:59:14 -0700</creation_ts>
          <short_desc>[JSC] makeBoundFunction should not assume incoming &quot;length&quot; value is Int32 because it performs some calculation in bytecode</short_desc>
          <delta_ts>2019-04-04 21:18:58 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1524466</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 14:59:14 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524544</commentid>
    <comment_count>1</comment_count>
      <attachid>366780</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 17:31:15 -0700</bug_when>
    <thetext>Created attachment 366780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524553</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 17:48:37 -0700</bug_when>
    <thetext>Double prediction injection found this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524563</commentid>
    <comment_count>3</comment_count>
      <attachid>366783</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 18:14:48 -0700</bug_when>
    <thetext>Created attachment 366783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524564</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-04 18:16:48 -0700</bug_when>
    <thetext>Attachment 366783 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:11:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer, fuzzer, fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524565</commentid>
    <comment_count>5</comment_count>
      <attachid>366784</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 18:19:25 -0700</bug_when>
    <thetext>Created attachment 366784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524568</commentid>
    <comment_count>6</comment_count>
      <attachid>366784</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 18:21:23 -0700</bug_when>
    <thetext>Comment on attachment 366784
Patch

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

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:257
&gt; +    RELEASE_AND_RETURN(scope, JSValue::encode(JSBoundFunction::create(vm, exec, globalObject, target, boundThis, boundArgs.isCell() ? jsCast&lt;JSArray*&gt;(boundArgs) : nullptr, length, name)));

I&apos;ll change `name` part to `WTFMove(name)`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524569</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-04 18:22:04 -0700</bug_when>
    <thetext>Attachment 366784 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:15:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer, fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524572</commentid>
    <comment_count>8</comment_count>
      <attachid>366784</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-04 18:32:47 -0700</bug_when>
    <thetext>Comment on attachment 366784
Patch

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

&gt; Source/JavaScriptCore/runtime/RandomizingFuzzerAgent.cpp:47
&gt; +    if (Options::injectDoublePredictionsForNumbers()) {
&gt; +        if (original &amp;&amp; mergeSpeculations(original, SpecBytecodeNumber) == SpecBytecodeNumber)
&gt; +            return SpecBytecodeDouble;
&gt; +        return original;
&gt; +    }

Can we make this a different fuzzer agent? It&apos;s no longer random.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524573</commentid>
    <comment_count>9</comment_count>
      <attachid>366784</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-04 18:33:36 -0700</bug_when>
    <thetext>Comment on attachment 366784
Patch

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

&gt; Source/JavaScriptCore/runtime/Options.h:439
&gt; +    v(bool, injectDoublePredictionsForNumbers, false, Normal, nullptr) \

Then this can be called &quot;useDoublePredictionFuzzerAgent&quot; or something similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524574</commentid>
    <comment_count>10</comment_count>
      <attachid>366784</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 18:38:00 -0700</bug_when>
    <thetext>Comment on attachment 366784
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/RandomizingFuzzerAgent.cpp:47
&gt;&gt; +    }
&gt; 
&gt; Can we make this a different fuzzer agent? It&apos;s no longer random.

Yeah, I&apos;ll change to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524582</commentid>
    <comment_count>11</comment_count>
      <attachid>366788</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 19:10:42 -0700</bug_when>
    <thetext>Created attachment 366788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524583</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-04 19:13:35 -0700</bug_when>
    <thetext>Attachment 366788 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:15:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: fuzzer, fuzzer, fuzzer, fuzzer  [changelog/unwantedsecurityterms] [3]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524587</commentid>
    <comment_count>13</comment_count>
      <attachid>366788</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-04 19:18:03 -0700</bug_when>
    <thetext>Comment on attachment 366788
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:251
&gt; +    int32_t length = lengthValue.toInt32(exec);

Should assert it&apos;s a number. Maybe even isAnyInt and that it&apos;s within 32-bits?

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:252
&gt; +    RETURN_IF_EXCEPTION(scope, { });

Should be an assert.

&gt; JSTests/stress/make-bound-function-should-not-assume-int32-length.js:1
&gt; +//@ runDefault(&quot;--useDoublePredictionFuzzerAgent=1&quot;)

maybe also concurrentJIT=0 to ensure we JIT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524592</commentid>
    <comment_count>14</comment_count>
      <attachid>366788</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 20:08:18 -0700</bug_when>
    <thetext>Comment on attachment 366788
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:251
&gt;&gt; +    int32_t length = lengthValue.toInt32(exec);
&gt; 
&gt; Should assert it&apos;s a number. Maybe even isAnyInt and that it&apos;s within 32-bits?

Changed.

&gt;&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:252
&gt;&gt; +    RETURN_IF_EXCEPTION(scope, { });
&gt; 
&gt; Should be an assert.

Fixed.

&gt;&gt; JSTests/stress/make-bound-function-should-not-assume-int32-length.js:1
&gt;&gt; +//@ runDefault(&quot;--useDoublePredictionFuzzerAgent=1&quot;)
&gt; 
&gt; maybe also concurrentJIT=0 to ensure we JIT?

Sounds fine. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524595</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-04 21:17:51 -0700</bug_when>
    <thetext>Committed r243925: &lt;https://trac.webkit.org/changeset/243925&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524596</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-04 21:18:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/49634426&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366780</attachid>
            <date>2019-04-04 17:31:15 -0700</date>
            <delta_ts>2019-04-04 18:14:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196631-20190404173115.patch</filename>
            <type>text/plain</type>
            <size>2454</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzOTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZGZlYmM5YjljZWY0YzU2MmFiMjk4ODRmZTJkZGI2NDlhYWQzOGE1Li5lMDg4MDIxYjk2YjcxMjRk
OWM1ZDg3ZDljYjFkODQyYzE4ZTFiZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOS0wNC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIG1ha2VCb3VuZEZ1bmN0aW9uIHNob3VsZCBub3QgYXNzdW1lIGlu
Y29taW5nICJsZW5ndGgiIHZhbHVlIGlzIEludDMyIGJlY2F1c2UgaXQgcGVyZm9ybXMgc29tZSBj
YWxjdWxhdGlvbiBpbiBieXRlY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk2NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6bWFrZUJvdW5kRnVuY3Rpb24pOgorCiAyMDE5LTA0LTA0ICBSb2JpbiBNb3Jpc3NldCAgPHJt
b3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgQjNSZWR1Y2VTdHJlbmd0aCBzaG91bGQga25v
dyB0aGF0IE11bCBkaXN0cmlidXRlcyBvdmVyIEFkZCBhbmQgU3ViCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggY2Q5M2QzOGFiM2U2
YWMyMzJkNDZhZTRhMGYwZTU0YzdhMTcyYWUzOC4uNTkwM2EyYjhlYzQxNGQ1NGY5ZWEzNzk2OWJm
ZmMyYzIzMjU5ZTU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcApAQCAtMjM4LDE2ICsyMzgsMjMgQEAgc3RhdGljIEpTVmFsdWUgY3Jl
YXRlQ29uc29sZVByb3BlcnR5KFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAKICAgICBKU09iamVjdCogdGFyZ2V0ID0gYXNP
YmplY3QoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIEpTVmFsdWUgYm91bmRUaGlz
ID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSk7CiAgICAgSlNWYWx1ZSBib3VuZEFyZ3MgPSBl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKTsKLSAgICBKU1ZhbHVlIGxlbmd0aCA9IGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDMpOwotICAgIEpTU3RyaW5nKiBuYW1lID0gYXNTdHJpbmcoZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoNCkpOworICAgIEpTVmFsdWUgbGVuZ3RoVmFsdWUgPSBleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgzKTsKKyAgICBKU1N0cmluZyogbmFtZVN0cmluZyA9IGFzU3RyaW5n
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDQpKTsKKworICAgIGludDMyX3QgbGVuZ3RoID0gbGVu
Z3RoVmFsdWUudG9JbnQzMihleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworCisgICAgU3RyaW5nIG5hbWUgPSBuYW1lU3RyaW5nLT52YWx1ZShleGVjKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZSgKLSAgICAgICAgdm0sIGV4ZWMsIGdsb2JhbE9i
amVjdCwgdGFyZ2V0LCBib3VuZFRoaXMsIGJvdW5kQXJncy5pc0NlbGwoKSA/IGpzQ2FzdDxKU0Fy
cmF5Kj4oYm91bmRBcmdzKSA6IG51bGxwdHIsIGxlbmd0aC5hc0ludDMyKCksIG5hbWUtPnZhbHVl
KGV4ZWMpKSk7CisgICAgcmV0dXJuIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKEpTQm91bmRGdW5jdGlvbjo6Y3JlYXRlKHZtLCBleGVjLCBnbG9iYWxPYmplY3QsIHRh
cmdldCwgYm91bmRUaGlzLCBib3VuZEFyZ3MuaXNDZWxsKCkgPyBqc0Nhc3Q8SlNBcnJheSo+KGJv
dW5kQXJncykgOiBudWxscHRyLCBsZW5ndGgsIG5hbWUpKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc093bkxlbmd0aFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhl
YykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366783</attachid>
            <date>2019-04-04 18:14:48 -0700</date>
            <delta_ts>2019-04-04 18:19:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196631-20190404181447.patch</filename>
            <type>text/plain</type>
            <size>6534</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzOTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZGZlYmM5YjljZWY0YzU2MmFiMjk4ODRmZTJkZGI2NDlhYWQzOGE1Li41NWI0ODEwYmZlOTg5YmE4
NDVkMDViODMzNWRlYTBlY2NiYWY4YjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxOS0wNC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIG1ha2VCb3VuZEZ1bmN0aW9uIHNob3VsZCBub3QgYXNzdW1lIGlu
Y29taW5nICJsZW5ndGgiIHZhbHVlIGlzIEludDMyIGJlY2F1c2UgaXQgcGVyZm9ybXMgc29tZSBj
YWxjdWxhdGlvbiBpbiBieXRlY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk2NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbWFrZUJvdW5kRnVuY3Rpb24gYXNzdW1lcyB0aGF0ICJsZW5ndGgiIGFy
Z3VtZW50IGlzIGFsd2F5cyBJbnQzMi4gQnV0IHRoaXMgc2hvdWxkIG5vdCBiZSBkb25lIHNpbmNl
IHRoaXMgImxlbmd0aCIgdmFsdWUgaXMgY2FsY3VsYXRlZCBpbiBidWlsdGluIEpTIGNvZGUuCisg
ICAgICAgIERGRyBtYXkgc3RvcmUgdGhpcyB2YWx1ZSBpbiBEb3VibGUgZm9ybWF0IHNvIHRoYXQg
d2Ugc2hvdWxkIG5vdCByZWx5IG9uIHRoYXQgdGhpcyB2YWx1ZSBpcyBJbnQzMi4gVGhpcyBwYXRj
aCBmaXhlcyBtYWtlQm91bmRGdW5jdGlvbiBmdW5jdGlvbiB0byBwZXJmb3JtCisgICAgICAgIHRv
SW50MzIgb3BlcmF0aW9uLiBXZSBhbHNvIGluc2VydCBhIG1pc3NpbmcgZXhjZXB0aW9uIGNoZWNr
IGZvciBgSlNTdHJpbmc6OnZhbHVlKEV4ZWNTdGF0ZSopYCBpbiBtYWtlQm91bmRGdW5jdGlvbi4g
VGhpcyBidWcgaXMgZm91bmQgYnkgRG91YmxlIHByZWRpY3Rpb24KKyAgICAgICAgaW5qZWN0aW9u
IGJ5IFJhbmRvbWl6aW5nRnV6emVyQWdlbnQuCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6bWFrZUJvdW5kRnVuY3Rpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvUmFuZG9taXppbmdGdXp6ZXJB
Z2VudC5jcHA6CisgICAgICAgIChKU0M6OlJhbmRvbWl6aW5nRnV6emVyQWdlbnQ6OmdldFByZWRp
Y3Rpb24pOgorCiAyMDE5LTA0LTA0ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5j
b20+CiAKICAgICAgICAgQjNSZWR1Y2VTdHJlbmd0aCBzaG91bGQga25vdyB0aGF0IE11bCBkaXN0
cmlidXRlcyBvdmVyIEFkZCBhbmQgU3ViCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggY2Q5M2QzOGFiM2U2YWMyMzJkNDZhZTRhMGYw
ZTU0YzdhMTcyYWUzOC4uMTNmNGM4OGNlOGVlZjc3MDFjNDZhOGIwNjVjNmUyNjdlMjRmZGZlYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cApAQCAtMjM4LDE2ICsyMzgsMjMgQEAgc3RhdGljIEpTVmFsdWUgY3JlYXRlQ29uc29sZVByb3Bl
cnR5KFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1ha2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCk7CiAKICAgICBKU09iamVjdCogdGFyZ2V0ID0gYXNPYmplY3QoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkpOwogICAgIEpTVmFsdWUgYm91bmRUaGlzID0gZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMSk7CiAgICAgSlNWYWx1ZSBib3VuZEFyZ3MgPSBleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgyKTsKLSAgICBKU1ZhbHVlIGxlbmd0aCA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDMpOwotICAgIEpTU3RyaW5nKiBuYW1lID0gYXNTdHJpbmcoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoNCkpOworICAgIEpTVmFsdWUgbGVuZ3RoVmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgzKTsKKyAgICBKU1N0cmluZyogbmFtZVN0cmluZyA9IGFzU3RyaW5nKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDQpKTsKKworICAgIGludDMyX3QgbGVuZ3RoID0gbGVuZ3RoVmFsdWUudG9JbnQz
MihleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgU3Ry
aW5nIG5hbWUgPSBuYW1lU3RyaW5nLT52YWx1ZShleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JvdW5kRnVu
Y3Rpb246OmNyZWF0ZSgKLSAgICAgICAgdm0sIGV4ZWMsIGdsb2JhbE9iamVjdCwgdGFyZ2V0LCBi
b3VuZFRoaXMsIGJvdW5kQXJncy5pc0NlbGwoKSA/IGpzQ2FzdDxKU0FycmF5Kj4oYm91bmRBcmdz
KSA6IG51bGxwdHIsIGxlbmd0aC5hc0ludDMyKCksIG5hbWUtPnZhbHVlKGV4ZWMpKSk7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCb3VuZEZ1bmN0aW9u
OjpjcmVhdGUodm0sIGV4ZWMsIGdsb2JhbE9iamVjdCwgdGFyZ2V0LCBib3VuZFRoaXMsIGJvdW5k
QXJncy5pc0NlbGwoKSA/IGpzQ2FzdDxKU0FycmF5Kj4oYm91bmRBcmdzKSA6IG51bGxwdHIsIGxl
bmd0aCwgbmFtZSkpKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
aGFzT3duTGVuZ3RoUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDI0MjA2ZTQ4Nzk4YzQ5ZTA5MjU2OGZiNGJmZDg3MDcy
ZWRlY2MyODEuLmQyNjUxYjcxNjhmMGYwYmQ2MmJmNjNjOWFlOTMyZWRmZjNhZjE0N2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTQzNiw2ICs0MzYsNyBAQCBj
b25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAg
IFwKICAgICB2KGJvb2wsIHVzZVJhbmRvbWl6aW5nRnV6emVyQWdlbnQsIGZhbHNlLCBOb3JtYWws
IG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBzZWVkT2ZSYW5kb21pemluZ0Z1enplckFnZW50
LCAxLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIGluamVjdERvdWJsZVByZWRpY3Rp
b25zRm9yTnVtYmVycywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZHVt
cFJhbmRvbWl6aW5nRnV6emVyQWdlbnRQcmVkaWN0aW9ucywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIFwKICAgICB2KGJvb2wsIGxvZ1BoYXNlVGltZXMsIGZhbHNlLCBOb3JtYWwsIG51
bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JhbmRv
bWl6aW5nRnV6emVyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmFu
ZG9taXppbmdGdXp6ZXJBZ2VudC5jcHAKaW5kZXggM2QyMjU5NTFiMjkxNTE0N2RmNzFkNTViYWM2
ZWNhMTdiYTY1NmYxNi4uM2ZkNjUyNzEzNmI5ZjA5MDRiOTZhZDA1YWY2YmI3OTBiYjMxMGQ0OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmFuZG9taXppbmdGdXp6
ZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmFuZG9taXpp
bmdGdXp6ZXJBZ2VudC5jcHAKQEAgLTM5LDYgKzM5LDEzIEBAIFJhbmRvbWl6aW5nRnV6emVyQWdl
bnQ6OlJhbmRvbWl6aW5nRnV6emVyQWdlbnQoVk0mKQogU3BlY3VsYXRlZFR5cGUgUmFuZG9taXpp
bmdGdXp6ZXJBZ2VudDo6Z2V0UHJlZGljdGlvbihDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3Qg
Q29kZU9yaWdpbiYgY29kZU9yaWdpbiwgU3BlY3VsYXRlZFR5cGUgb3JpZ2luYWwpCiB7CiAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworCisgICAgaWYgKE9wdGlvbnM6OmluamVj
dERvdWJsZVByZWRpY3Rpb25zRm9yTnVtYmVycygpKSB7CisgICAgICAgIGlmIChvcmlnaW5hbCAm
JiBtZXJnZVNwZWN1bGF0aW9ucyhvcmlnaW5hbCwgU3BlY0J5dGVjb2RlTnVtYmVyKSA9PSBTcGVj
Qnl0ZWNvZGVOdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gU3BlY0J5dGVjb2RlRG91YmxlOwor
ICAgICAgICByZXR1cm4gb3JpZ2luYWw7CisgICAgfQorCiAgICAgdWludDMyX3QgaGlnaCA9IG1f
cmFuZG9tLmdldFVpbnQzMigpOwogICAgIHVpbnQzMl90IGxvdyA9IG1fcmFuZG9tLmdldFVpbnQz
MigpOwogICAgIFNwZWN1bGF0ZWRUeXBlIGdlbmVyYXRlZCA9IHN0YXRpY19jYXN0PFNwZWN1bGF0
ZWRUeXBlPigoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhpZ2gpIDw8IDMyKSB8IGxvdykgJiBTcGVj
RnVsbFRvcDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMThjM2VjYjM2YzhlYzE0ZDcyOWM2MWFiNjExNGNjZjc3NjA1ZDg3OS4uODg2MDFm
MDkzYzRkMzBmNmFhZTZlMzVkMzc1M2VkOTJkNjJjNTIwOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0w
NC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0Nd
IG1ha2VCb3VuZEZ1bmN0aW9uIHNob3VsZCBub3QgYXNzdW1lIGluY29taW5nICJsZW5ndGgiIHZh
bHVlIGlzIEludDMyIGJlY2F1c2UgaXQgcGVyZm9ybXMgc29tZSBjYWxjdWxhdGlvbiBpbiBieXRl
Y29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2
NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
dHJlc3MvbWFrZS1ib3VuZC1mdW5jdGlvbi1zaG91bGQtbm90LWFzc3VtZS1pbnQzMi1sZW5ndGgu
anM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
dGVzdDIpOgorICAgICAgICAoZm9vKToKKwogMjAxOS0wNC0wNCAgU2FhbSBCYXJhdGkgIDxzYmFy
YXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBjcmVhdGVSZWdFeHBNYXRjaGVzQXJyYXkgZG9lcyBu
b3QgcmVzcGVjdCBpbmZlcnJlZCB0eXBlcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbWFr
ZS1ib3VuZC1mdW5jdGlvbi1zaG91bGQtbm90LWFzc3VtZS1pbnQzMi1sZW5ndGguanMgYi9KU1Rl
c3RzL3N0cmVzcy9tYWtlLWJvdW5kLWZ1bmN0aW9uLXNob3VsZC1ub3QtYXNzdW1lLWludDMyLWxl
bmd0aC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NzUwNzgxMjZkODNiODI1ZGI4ZmExNjRhODlkMzJiOGM1NGY2
MWViCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbWFrZS1ib3VuZC1mdW5jdGlv
bi1zaG91bGQtbm90LWFzc3VtZS1pbnQzMi1sZW5ndGguanMKQEAgLTAsMCArMSwyMyBAQAorLy9A
IHJ1bkRlZmF1bHQoIi0tdXNlUmFuZG9taXppbmdGdXp6ZXJBZ2VudD0xIiwgIi0taW5qZWN0RG91
YmxlUHJlZGljdGlvbnNGb3JOdW1iZXJzPTEiKQorLy8gVGhpcyB0ZXN0IHNob3VsZCBub3QgY3Jh
c2guCitmdW5jdGlvbiBhc3NlcnQoYikgeworICAgIGlmICghYikKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQiKQorfQorbm9JbmxpbmUoYXNzZXJ0KTsKKworZnVuY3Rpb24gdGVzdChmLCB2
LCBjLCBkKSB7CisgICAgcmV0dXJuIGYuYmluZCh2LCBjLCBkKTsKK30KKworZnVuY3Rpb24gdGVz
dDIoZiwgdikgeworICAgIHJldHVybiBmLmJpbmQodik7Cit9CisKK2Z1bmN0aW9uIGZvbyhhLGIs
YyxkLGUsZikgeyByZXR1cm4gdGhpczsgfQorbGV0IHRoaXNWYWx1ZSA9IHt9OworbGV0IHN0YXJ0
ID0gRGF0ZS5ub3coKTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxl
dCBmID0gdGVzdChmb28sIHRoaXNWYWx1ZSwgMjAsIDMwKTsKKyAgICBhc3NlcnQoZihmb28sIHRo
aXNWYWx1ZSwgMjAsIDMwKSA9PT0gdGhpc1ZhbHVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366784</attachid>
            <date>2019-04-04 18:19:25 -0700</date>
            <delta_ts>2019-04-04 19:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196631-20190404181924.patch</filename>
            <type>text/plain</type>
            <size>6354</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzOTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZGZlYmM5YjljZWY0YzU2MmFiMjk4ODRmZTJkZGI2NDlhYWQzOGE1Li5lNTk2YzZkZTJmMjZhZmE0
YTkxYzVhNjJhMzYzYzc3M2M4MDk1Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxOS0wNC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIG1ha2VCb3VuZEZ1bmN0aW9uIHNob3VsZCBub3QgYXNzdW1lIGlu
Y29taW5nICJsZW5ndGgiIHZhbHVlIGlzIEludDMyIGJlY2F1c2UgaXQgcGVyZm9ybXMgc29tZSBj
YWxjdWxhdGlvbiBpbiBieXRlY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk2NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbWFrZUJvdW5kRnVuY3Rpb24gYXNzdW1lcyB0aGF0ICJsZW5ndGgiIGFy
Z3VtZW50IGlzIGFsd2F5cyBJbnQzMi4gQnV0IHRoaXMgc2hvdWxkIG5vdCBiZSBkb25lIHNpbmNl
IHRoaXMgImxlbmd0aCIgdmFsdWUgaXMgY2FsY3VsYXRlZCBpbiBidWlsdGluIEpTIGNvZGUuCisg
ICAgICAgIERGRyBtYXkgc3RvcmUgdGhpcyB2YWx1ZSBpbiBEb3VibGUgZm9ybWF0IHNvIHRoYXQg
d2Ugc2hvdWxkIG5vdCByZWx5IG9uIHRoYXQgdGhpcyB2YWx1ZSBpcyBJbnQzMi4gVGhpcyBwYXRj
aCBmaXhlcyBtYWtlQm91bmRGdW5jdGlvbiBmdW5jdGlvbiB0byBwZXJmb3JtCisgICAgICAgIHRv
SW50MzIgb3BlcmF0aW9uLiBXZSBhbHNvIGluc2VydCBhIG1pc3NpbmcgZXhjZXB0aW9uIGNoZWNr
IGZvciBgSlNTdHJpbmc6OnZhbHVlKEV4ZWNTdGF0ZSopYCBpbiBtYWtlQm91bmRGdW5jdGlvbi4K
KworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpt
YWtlQm91bmRGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAg
ICogcnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmNwcDoKKyAgICAgICAgKEpTQzo6UmFu
ZG9taXppbmdGdXp6ZXJBZ2VudDo6Z2V0UHJlZGljdGlvbik6CisKIDIwMTktMDQtMDQgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBCM1JlZHVjZVN0cmVu
Z3RoIHNob3VsZCBrbm93IHRoYXQgTXVsIGRpc3RyaWJ1dGVzIG92ZXIgQWRkIGFuZCBTdWIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCBjZDkzZDM4YWIzZTZhYzIzMmQ0NmFlNGEwZjBlNTRjN2ExNzJhZTM4Li4xM2Y0Yzg4Y2U4ZWVm
NzcwMWM0NmE4YjA2NWM2ZTI2N2UyNGZkZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0yMzgsMTYgKzIzOCwyMyBAQCBzdGF0
aWMgSlNWYWx1ZSBjcmVhdGVDb25zb2xlUHJvcGVydHkoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0
KQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZUJvdW5kRnVuY3Rpb24o
RXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKIAogICAgIEpTT2JqZWN0
KiB0YXJnZXQgPSBhc09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgSlNW
YWx1ZSBib3VuZFRoaXMgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKICAgICBKU1ZhbHVl
IGJvdW5kQXJncyA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpOwotICAgIEpTVmFsdWUgbGVu
Z3RoID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMyk7Ci0gICAgSlNTdHJpbmcqIG5hbWUgPSBh
c1N0cmluZyhleGVjLT51bmNoZWNrZWRBcmd1bWVudCg0KSk7CisgICAgSlNWYWx1ZSBsZW5ndGhW
YWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDMpOworICAgIEpTU3RyaW5nKiBuYW1lU3Ry
aW5nID0gYXNTdHJpbmcoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoNCkpOworCisgICAgaW50MzJf
dCBsZW5ndGggPSBsZW5ndGhWYWx1ZS50b0ludDMyKGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBTdHJpbmcgbmFtZSA9IG5hbWVTdHJpbmctPnZhbHVl
KGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQm91bmRGdW5jdGlvbjo6Y3JlYXRlKAotICAgICAgICB2bSwg
ZXhlYywgZ2xvYmFsT2JqZWN0LCB0YXJnZXQsIGJvdW5kVGhpcywgYm91bmRBcmdzLmlzQ2VsbCgp
ID8ganNDYXN0PEpTQXJyYXkqPihib3VuZEFyZ3MpIDogbnVsbHB0ciwgbGVuZ3RoLmFzSW50MzIo
KSwgbmFtZS0+dmFsdWUoZXhlYykpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZSh2bSwgZXhlYywgZ2xvYmFsT2Jq
ZWN0LCB0YXJnZXQsIGJvdW5kVGhpcywgYm91bmRBcmdzLmlzQ2VsbCgpID8ganNDYXN0PEpTQXJy
YXkqPihib3VuZEFyZ3MpIDogbnVsbHB0ciwgbGVuZ3RoLCBuYW1lKSkpOwogfQogCiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNPd25MZW5ndGhQcm9wZXJ0eShFeGVjU3Rh
dGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggMjQy
MDZlNDg3OThjNDllMDkyNTY4ZmI0YmZkODcwNzJlZGVjYzI4MS4uZDI2NTFiNzE2OGYwZjBiZDYy
YmY2M2M5YWU5MzJlZGZmM2FmMTQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaApAQCAtNDM2LDYgKzQzNiw3IEBAIGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2Vt
Ymx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAgICAgXAogICAgIHYoYm9vbCwgdXNlUmFuZG9taXpp
bmdGdXp6ZXJBZ2VudCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQs
IHNlZWRPZlJhbmRvbWl6aW5nRnV6emVyQWdlbnQsIDEsIE5vcm1hbCwgbnVsbHB0cikgXAorICAg
IHYoYm9vbCwgaW5qZWN0RG91YmxlUHJlZGljdGlvbnNGb3JOdW1iZXJzLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgdihib29sLCBkdW1wUmFuZG9taXppbmdGdXp6ZXJBZ2VudFByZWRp
Y3Rpb25zLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgbG9n
UGhhc2VUaW1lcywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmFuZG9taXppbmdGdXp6ZXJBZ2VudC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmNwcAppbmRl
eCAzZDIyNTk1MWIyOTE1MTQ3ZGY3MWQ1NWJhYzZlY2ExN2JhNjU2ZjE2Li4zZmQ2NTI3MTM2Yjlm
MDkwNGI5NmFkMDVhZjZiYjc5MGJiMzEwZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmNwcApAQCAtMzksNiAr
MzksMTMgQEAgUmFuZG9taXppbmdGdXp6ZXJBZ2VudDo6UmFuZG9taXppbmdGdXp6ZXJBZ2VudChW
TSYpCiBTcGVjdWxhdGVkVHlwZSBSYW5kb21pemluZ0Z1enplckFnZW50OjpnZXRQcmVkaWN0aW9u
KENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBDb2RlT3JpZ2luJiBjb2RlT3JpZ2luLCBTcGVj
dWxhdGVkVHlwZSBvcmlnaW5hbCkKIHsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbG9j
ayk7CisKKyAgICBpZiAoT3B0aW9uczo6aW5qZWN0RG91YmxlUHJlZGljdGlvbnNGb3JOdW1iZXJz
KCkpIHsKKyAgICAgICAgaWYgKG9yaWdpbmFsICYmIG1lcmdlU3BlY3VsYXRpb25zKG9yaWdpbmFs
LCBTcGVjQnl0ZWNvZGVOdW1iZXIpID09IFNwZWNCeXRlY29kZU51bWJlcikKKyAgICAgICAgICAg
IHJldHVybiBTcGVjQnl0ZWNvZGVEb3VibGU7CisgICAgICAgIHJldHVybiBvcmlnaW5hbDsKKyAg
ICB9CisKICAgICB1aW50MzJfdCBoaWdoID0gbV9yYW5kb20uZ2V0VWludDMyKCk7CiAgICAgdWlu
dDMyX3QgbG93ID0gbV9yYW5kb20uZ2V0VWludDMyKCk7CiAgICAgU3BlY3VsYXRlZFR5cGUgZ2Vu
ZXJhdGVkID0gc3RhdGljX2Nhc3Q8U3BlY3VsYXRlZFR5cGU+KChzdGF0aWNfY2FzdDx1aW50NjRf
dD4oaGlnaCkgPDwgMzIpIHwgbG93KSAmIFNwZWNGdWxsVG9wOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAxOGMzZWNiMzZjOGVjMTRkNzI5
YzYxYWI2MTE0Y2NmNzc2MDVkODc5Li41MzI1NzhhOGY2Mjk2NDQ4YWYxOThhOGEwYjdjMWY4NGFk
ZWMzOTIyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVr
aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gbWFrZUJvdW5kRnVuY3Rpb24gc2hvdWxkIG5v
dCBhc3N1bWUgaW5jb21pbmcgImxlbmd0aCIgdmFsdWUgaXMgSW50MzIgYmVjYXVzZSBpdCBwZXJm
b3JtcyBzb21lIGNhbGN1bGF0aW9uIGluIGJ5dGVjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9tYWtlLWJvdW5kLWZ1bmN0aW9uLXNo
b3VsZC1ub3QtYXNzdW1lLWludDMyLWxlbmd0aC5qczogQWRkZWQuCisgICAgICAgIChhc3NlcnQp
OgorICAgICAgICAodGVzdCk6CisgICAgICAgIChmb28pOgorCiAyMDE5LTA0LTA0ICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIGNyZWF0ZVJlZ0V4cE1hdGNoZXNB
cnJheSBkb2VzIG5vdCByZXNwZWN0IGluZmVycmVkIHR5cGVzCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9tYWtlLWJvdW5kLWZ1bmN0aW9uLXNob3VsZC1ub3QtYXNzdW1lLWludDMyLWxlbmd0
aC5qcyBiL0pTVGVzdHMvc3RyZXNzL21ha2UtYm91bmQtZnVuY3Rpb24tc2hvdWxkLW5vdC1hc3N1
bWUtaW50MzItbGVuZ3RoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZTRkODMxN2Y1ZWVkNTY4Nzc4MDgyYjE3
NzhjNDkwNGZhZTdhM2UKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9tYWtlLWJv
dW5kLWZ1bmN0aW9uLXNob3VsZC1ub3QtYXNzdW1lLWludDMyLWxlbmd0aC5qcwpAQCAtMCwwICsx
LDE4IEBACisvL0AgcnVuRGVmYXVsdCgiLS11c2VSYW5kb21pemluZ0Z1enplckFnZW50PTEiLCAi
LS1pbmplY3REb3VibGVQcmVkaWN0aW9uc0Zvck51bWJlcnM9MSIpCisvLyBUaGlzIHRlc3Qgc2hv
dWxkIG5vdCBjcmFzaC4KK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCIpCit9Citub0lubGluZShhc3NlcnQpOworCitmdW5jdGlv
biB0ZXN0KGYsIHYsIGMsIGQpIHsKKyAgICByZXR1cm4gZi5iaW5kKHYsIGMsIGQpOworfQorCitm
dW5jdGlvbiBmb28oYSxiLGMsZCxlLGYpIHsgcmV0dXJuIHRoaXM7IH0KK2xldCB0aGlzVmFsdWUg
PSB7fTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxldCBmID0gdGVz
dChmb28sIHRoaXNWYWx1ZSwgMjAsIDMwKTsKKyAgICBhc3NlcnQoZihmb28sIHRoaXNWYWx1ZSwg
MjAsIDMwKSA9PT0gdGhpc1ZhbHVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366788</attachid>
            <date>2019-04-04 19:10:42 -0700</date>
            <delta_ts>2019-04-04 19:18:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196631-20190404191041.patch</filename>
            <type>text/plain</type>
            <size>18363</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzOTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZGZlYmM5YjljZWY0YzU2MmFiMjk4ODRmZTJkZGI2NDlhYWQzOGE1Li41MDEyNDkwYTI4MDZiMGRl
OGUyZTJiMzM5ZTAwMjU1MWZhMGY4ZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0wNC0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIG1ha2VCb3VuZEZ1bmN0aW9uIHNob3VsZCBub3QgYXNzdW1lIGlu
Y29taW5nICJsZW5ndGgiIHZhbHVlIGlzIEludDMyIGJlY2F1c2UgaXQgcGVyZm9ybXMgc29tZSBj
YWxjdWxhdGlvbiBpbiBieXRlY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk2NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbWFrZUJvdW5kRnVuY3Rpb24gYXNzdW1lcyB0aGF0ICJsZW5ndGgiIGFy
Z3VtZW50IGlzIGFsd2F5cyBJbnQzMi4gQnV0IHRoaXMgc2hvdWxkIG5vdCBiZSBkb25lIHNpbmNl
IHRoaXMgImxlbmd0aCIgdmFsdWUgaXMgY2FsY3VsYXRlZCBpbiBidWlsdGluIEpTIGNvZGUuCisg
ICAgICAgIERGRyBtYXkgc3RvcmUgdGhpcyB2YWx1ZSBpbiBEb3VibGUgZm9ybWF0IHNvIHRoYXQg
d2Ugc2hvdWxkIG5vdCByZWx5IG9uIHRoYXQgdGhpcyB2YWx1ZSBpcyBJbnQzMi4gVGhpcyBwYXRj
aCBmaXhlcyBtYWtlQm91bmRGdW5jdGlvbiBmdW5jdGlvbiB0byBwZXJmb3JtCisgICAgICAgIHRv
SW50MzIgb3BlcmF0aW9uLiBXZSBhbHNvIGluc2VydCBhIG1pc3NpbmcgZXhjZXB0aW9uIGNoZWNr
IGZvciBgSlNTdHJpbmc6OnZhbHVlKEV4ZWNTdGF0ZSopYCBpbiBtYWtlQm91bmRGdW5jdGlvbi4K
KworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lSW5s
aW5lcy5oOgorICAgICAgICAqIHJ1bnRpbWUvRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50LmNw
cDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZUlubGluZXMuaC4KKyAgICAgICAgKEpTQzo6RG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50OjpE
b3VibGVQcmVkaWN0aW9uRnV6emVyQWdlbnQpOgorICAgICAgICAoSlNDOjpEb3VibGVQcmVkaWN0
aW9uRnV6emVyQWdlbnQ6OmdldFByZWRpY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRG91Ymxl
UHJlZGljdGlvbkZ1enplckFnZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsRnJhbWVJbmxpbmVzLmguCisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Om1ha2VCb3VuZEZ1bmN0aW9uKToKKyAgICAg
ICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAg
ICAgKEpTQzo6Vk06OlZNKToKKwogMjAxOS0wNC0wNCAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNz
ZXRAYXBwbGUuY29tPgogCiAgICAgICAgIEIzUmVkdWNlU3RyZW5ndGggc2hvdWxkIGtub3cgdGhh
dCBNdWwgZGlzdHJpYnV0ZXMgb3ZlciBBZGQgYW5kIFN1YgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkM2ZmMTA1Nzc1NzA1MGIyY2NhYWZiMDg2MDEyMzc3NGM3M2VkNTY1Li45YWI4
ODMwYWQ4NDA5MDE0NjI0NGE0NWZkNDI0MWM5MTI5NWYyMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNDc5Myw2ICs0NzkzLDggQEAKIAkJRTNGMjNBN0MxRUNGMTNFNTAwOTc4
RDk5IC8qIFNuaXBwZXRQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U25pcHBldFBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0YyM0E3RDFF
Q0YxM0U1MDA5NzhEOTkgLyogU25pcHBldFJlZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTbmlwcGV0UmVnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRjIz
QTdFMUVDRjEzRTUwMDk3OEQ5OSAvKiBTbmlwcGV0U2xvd1BhdGhDYWxscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTbmlwcGV0U2xvd1BhdGhDYWxscy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFM0ZDMjUxMDIyNTZFQ0Y0MDA1ODM1MTggLyogRG91YmxlUHJl
ZGljdGlvbkZ1enplckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvdWJsZVByZWRpY3Rp
b25GdXp6ZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkMyNTEx
MjI1NkVDRjQwMDU4MzUxOCAvKiBEb3VibGVQcmVkaWN0aW9uRnV6emVyQWdlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHZXR0ZXJTZXR0
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUR2V0dGVyU2V0dGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTQ5MTJFRjI2MUEwMDE4NEEx
RiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NzcyLDYgKzY3NzQsOCBAQAogCQkJCUUz
MTYxODEwMUVDNUZFMDgwMDA2QTIxOCAvKiBET01Bbm5vdGF0aW9uLmggKi8sCiAJCQkJRTMxNjE4
MTExRUM1RkUwODAwMDZBMjE4IC8qIERPTUF0dHJpYnV0ZUdldHRlclNldHRlci5jcHAgKi8sCiAJ
CQkJRTMxNjE4MTIxRUM1RkUwODAwMDZBMjE4IC8qIERPTUF0dHJpYnV0ZUdldHRlclNldHRlci5o
ICovLAorCQkJCUUzRkMyNTEwMjI1NkVDRjQwMDU4MzUxOCAvKiBEb3VibGVQcmVkaWN0aW9uRnV6
emVyQWdlbnQuY3BwICovLAorCQkJCUUzRkMyNTExMjI1NkVDRjQwMDU4MzUxOCAvKiBEb3VibGVQ
cmVkaWN0aW9uRnV6emVyQWdlbnQuaCAqLywKIAkJCQlBNzA0NDdFQjE3QTBCRDcwMDBGNTg5OEUg
LyogRHVtcENvbnRleHQuY3BwICovLAogCQkJCUE3MDQ0N0VDMTdBMEJENzAwMEY1ODk4RSAvKiBE
dW1wQ29udGV4dC5oICovLAogCQkJCUZFMzE4RkREMUNBQzhDNTMwMERGQ0M1NCAvKiBFQ01BU2Ny
aXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmNwcCAqLywKQEAgLTgzMDUsMTAgKzgzMDksMTAgQEAK
IAkJCQlBRDJGQ0JCMzFEQjU4REE0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQ
cm90b3R5cGUuaCAqLywKIAkJCQlBRDQ5MzdDOTFEREQyNzM0MDA3N0M4MDcgLyogV2ViQXNzZW1i
bHlGdW5jdGlvbi5jcHAgKi8sCiAJCQkJQUQ0OTM3Q0ExREREMjczNDAwNzdDODA3IC8qIFdlYkFz
c2VtYmx5RnVuY3Rpb24uaCAqLywKLQkJCQk1MjNGRDg4RDIyNTU2NkM0MDAzQjNEQ0MgLyogV2Vi
QXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5jcHAgKi8sCi0JCQkJNTIzRkQ4OEMyMjU1NjZD
MzAwM0IzRENDIC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGUuaCAqLywKIAkJCQk1
MjEzMjI0MzFFQ0JDRTgyMDBGNjU2MTUgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuY3BwICov
LAogCQkJCTUyMTMyMjQ0MUVDQkNFODIwMEY2NTYxNSAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uQmFz
ZS5oICovLAorCQkJCTUyM0ZEODhEMjI1NTY2QzQwMDNCM0RDQyAvKiBXZWJBc3NlbWJseUZ1bmN0
aW9uSGVhcENlbGxUeXBlLmNwcCAqLywKKwkJCQk1MjNGRDg4QzIyNTU2NkMzMDAzQjNEQ0MgLyog
V2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oICovLAogCQkJCUFEMkZDQkI0MURCNThE
QTQwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwICovLAogCQkJ
CUFEMkZDQkI1MURCNThEQTQwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0
b3IuaCAqLywKIAkJCQlBRDJGQ0JCNjFEQjU4REE0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0
YW5jZVByb3RvdHlwZS5jcHAgKi8sCkBAIC04NjExLDYgKzg2MTUsNyBAQAogCQkJCTBGNkI4QUQ5
MUM0RUREQTIwMDk2OTA1MiAvKiBCM0R1cGxpY2F0ZVRhaWxzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVDODVDMTFCRTE2N0EwMDA4MEZGNzQgLyogQjNFZmZlY3RzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjcyNUNBODFDNTAzREVEMDBBRDk0M0EgLyogQjNFbGltaW5hdGVDb21tb25TdWJleHBy
ZXNzaW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzM5NUM3MDcyMjU1NUY2RDAwQkRCRkFEIC8q
IEIzRWxpbWluYXRlRGVhZENvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUJGMTcxMUYyM0E1
QTEwMDI5RDkxRCAvKiBCM0Vuc3VyZUxvb3BQcmVIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjY5NzFFQTFEOTJGNDI0MDBCQTAyQTUgLyogQjNGZW5jZVZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjZCOEFFNTFDNEVGRTE3MDA5NjkwNTIgLyogQjNGaXhTU0EuaCBpbiBIZWFkZXJz
ICovLApAQCAtODYyNCw3ICs4NjI5LDYgQEAKIAkJCQkwRjVCRjE2NDFGMjMxNzEyMDAyOUQ5MUQg
LyogQjNIb2lzdExvb3BJbnZhcmlhbnRWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCURDNjlC
OTlEMUQxNUY5MTQwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUM4NUJBMUJFMTQ2MkYwMDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTIzRkQ4OEUyMjU1NjZDOTAwM0IzRENDIC8qIFdlYkFzc2VtYmx5RnVuY3Rp
b25IZWFwQ2VsbFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUJCMUJFMTQ2MkYwMDgw
RkY3NCAvKiBCM0luc2VydGlvblNldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREY2
N0QyMUQ5QzZEMjcwMDFCOTgyNSAvKiBCM0tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNkU1
NDUzMUM0NjhFNzQwMEI1QUY3MyAvKiBCM0xlZ2FsaXplTWVtb3J5T2Zmc2V0cy5oIGluIEhlYWRl
cnMgKi8sCkBAIC04ODE3LDcgKzg4MjEsNiBAQAogCQkJCTQ3M0RBNEE0NzY0QzQ1RkU4NzFCMDQ4
NSAvKiBEZWZpbmVQcm9wZXJ0eUF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkI3
M0JCMURFRjg2NDUwMDJDMDA5RSAvKiBEZWxldGVBbGxDb2RlRWZmb3J0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjk2MzAzQzFENDE5MkNEMDA1NjA5RDkgLyogRGVzdHJ1Y3Rpb25Nb2RlLmggaW4g
SGVhZGVycyAqLywKLQkJCQk1MjdDRTM1NDIyNTU1RkU1MDBDNkYzODIgLyogSlNUb1dhc21JQ0Nh
bGxlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc3QTQyM0UxN0EwQkJGRDAwQThEQjgxIC8qIERG
R0Fic3RyYWN0SGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNEQ5MDMxN0EwQkFBODAwNkJB
NTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUUw
RkQ4MjA3QzcyNzMwMDk3RjBERSAvKiBERkdBYnN0cmFjdEludGVycHJldGVyQ2xvYmJlclN0YXRl
LmggaW4gSGVhZGVycyAqLywKQEAgLTkwOTEsNyArOTA5NCw2IEBACiAJCQkJMEY0ODUzMkExODdE
RkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkNFRkFBQzE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMjVGMUIyMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGwuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTMzOTVDNzA3MjI1NTVGNkQwMEJEQkZBRCAvKiBCM0VsaW1pbmF0ZURl
YWRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI1RjFCNDE4MTYzNUYzMDA1MjJGMzkgLyog
RlRMU2xvd1BhdGhDYWxsS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIyRTVBNzFEQTY0NEE4
MDA2RTc3MDkgLyogRlRMU25pcHBldFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMzVC
RDcxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFN0YWNrbWFwQXJndW1lbnRMaXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTk0NjAsNiArOTQ2Miw3IEBACiAJCQkJMEY5MTlEMEQxNTdFRTBBMjAwNEE0RTdE
IC8qIEpTU3ltYm9sVGFibGVPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwRUNBNjA2MUFG
REJFQTIwMDQ0OTczOSAvKiBKU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQUQ1QzM2RUExRjc1QUQ2QTAwMEJDQUFGIC8qIEpTVG9XYXNtLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MjdDRTM1NDIyNTU1RkU1MDBDNkYzODIgLyogSlNUb1dhc21JQ0NhbGxlZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MkEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTVHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTM0ODZCQjcxQzE3OTVDMzAwRjZGM0FGIC8qIEpTVHlwZWRB
cnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RkIxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCkBAIC05OTM2LDYgKzk5Mzks
NyBAQAogCQkJCUFEMkZDQzE3MURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseUNvbXBpbGVF
cnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENDkzN0Q0MURERDI3REUw
MDc3QzgwNyAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MjEz
MjI0NjFFQ0JDRTgyMDBGNjU2MTUgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUyM0ZEODhFMjI1NTY2QzkwMDNCM0RDQyAvKiBXZWJBc3NlbWJseUZ1bmN0
aW9uSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDJGQ0JGMTFEQjU4REFEMDBC
M0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBRDJGQ0MxODFEQjU5Q0IyMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0
cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQyRkNCRjMxREI1OERBRDAwQjNFNzM2
IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI0YzJkNjg1MzIzOWIwNjg1ODQyMWE2NmNiMzRiYmMx
YmY4OTYxMjAuLjMzMDJkZWEwNGRkMTZiNGVmOTViOWEzY2Q0ZTg5OTBkNGVhOTQ0OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTc0NSw2ICs3NDUsNyBAQCBydW50aW1lL0RpcmVj
dEFyZ3VtZW50cy5jcHAKIHJ1bnRpbWUvRGlyZWN0QXJndW1lbnRzT2Zmc2V0LmNwcAogcnVudGlt
ZS9EaXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAKIHJ1bnRpbWUvRGlzYWxsb3dWTVJlZW50cnkuY3Bw
CitydW50aW1lL0RvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5jcHAKIHJ1bnRpbWUvRHVtcENv
bnRleHQuY3BwCiBydW50aW1lL0VDTUFTY3JpcHRTcGVjSW50ZXJuYWxGdW5jdGlvbnMuY3BwCiBy
dW50aW1lL0Vycm9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0NhbGxGcmFtZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWVJbmxpbmVzLmgKaW5kZXggYWJkZWMxYmM4NjAzOGMzNmVlNDM1NzVkYWMx
YmFkODRhMDM1NTQ5Ny4uYzBjYmJkNTc4OTIxMDk2OGY5MDA5OGMzYmFiZjYxZTgyMTRjY2RkOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZUlu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
SW5saW5lcy5oCkBAIC0yNiw2ICsyNiw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNh
bGxGcmFtZS5oIgorI2luY2x1ZGUgIkpTQ2FsbGVlLmgiCisjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Eb3VibGVQcmVkaWN0aW9uRnV6emVyQWdlbnQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJjNDQzZDBjMmRhZDU0YWY1ZTZjZjI3MTYyYzAxMjAyNzc2YTRiM2IKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Eb3VibGVQcmVkaWN0aW9u
RnV6emVyQWdlbnQuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRG91
YmxlUHJlZGljdGlvbkZ1enplckFnZW50LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitEb3VibGVQ
cmVkaWN0aW9uRnV6emVyQWdlbnQ6OkRvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudChWTSYpCit7
Cit9CisKK1NwZWN1bGF0ZWRUeXBlIERvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudDo6Z2V0UHJl
ZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUgb3Jp
Z2luYWwpCit7CisgICAgaWYgKG9yaWdpbmFsICYmIG1lcmdlU3BlY3VsYXRpb25zKG9yaWdpbmFs
LCBTcGVjQnl0ZWNvZGVOdW1iZXIpID09IFNwZWNCeXRlY29kZU51bWJlcikKKyAgICAgICAgcmV0
dXJuIFNwZWNCeXRlY29kZURvdWJsZTsKKyAgICByZXR1cm4gb3JpZ2luYWw7Cit9CisKK30gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Eb3VibGVQcmVkaWN0aW9uRnV6emVyQWdlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmEwNGQwYjNh
NWM1OWI1ZjIyNTA1NjAyYWZjYzY2ZTM1YjFhOWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50LmgKQEAg
LTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRnV6emVyQWdlbnQuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisKK2NsYXNzIFZNOworCitjbGFzcyBEb3VibGVQcmVkaWN0aW9uRnV6emVyQWdlbnQg
ZmluYWwgOiBwdWJsaWMgRnV6emVyQWdlbnQgeworcHVibGljOgorICAgIERvdWJsZVByZWRpY3Rp
b25GdXp6ZXJBZ2VudChWTSYpOworCisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihD
b2RlQmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggY2Q5M2QzOGFiM2U2YWMyMzJkNDZhZTRhMGYw
ZTU0YzdhMTcyYWUzOC4uZDBiOWIwYzBjODY3NDQ4MTAyNjRmZDU3MmI4NTBiYTFmODljYzhkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cApAQCAtMjM4LDE2ICsyMzgsMjMgQEAgc3RhdGljIEpTVmFsdWUgY3JlYXRlQ29uc29sZVByb3Bl
cnR5KFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1ha2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCk7CiAKICAgICBKU09iamVjdCogdGFyZ2V0ID0gYXNPYmplY3QoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkpOwogICAgIEpTVmFsdWUgYm91bmRUaGlzID0gZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMSk7CiAgICAgSlNWYWx1ZSBib3VuZEFyZ3MgPSBleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgyKTsKLSAgICBKU1ZhbHVlIGxlbmd0aCA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDMpOwotICAgIEpTU3RyaW5nKiBuYW1lID0gYXNTdHJpbmcoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoNCkpOworICAgIEpTVmFsdWUgbGVuZ3RoVmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgzKTsKKyAgICBKU1N0cmluZyogbmFtZVN0cmluZyA9IGFzU3RyaW5nKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDQpKTsKKworICAgIGludDMyX3QgbGVuZ3RoID0gbGVuZ3RoVmFsdWUudG9JbnQz
MihleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgU3Ry
aW5nIG5hbWUgPSBuYW1lU3RyaW5nLT52YWx1ZShleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JvdW5kRnVu
Y3Rpb246OmNyZWF0ZSgKLSAgICAgICAgdm0sIGV4ZWMsIGdsb2JhbE9iamVjdCwgdGFyZ2V0LCBi
b3VuZFRoaXMsIGJvdW5kQXJncy5pc0NlbGwoKSA/IGpzQ2FzdDxKU0FycmF5Kj4oYm91bmRBcmdz
KSA6IG51bGxwdHIsIGxlbmd0aC5hc0ludDMyKCksIG5hbWUtPnZhbHVlKGV4ZWMpKSk7CisgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCb3VuZEZ1bmN0aW9u
OjpjcmVhdGUodm0sIGV4ZWMsIGdsb2JhbE9iamVjdCwgdGFyZ2V0LCBib3VuZFRoaXMsIGJvdW5k
QXJncy5pc0NlbGwoKSA/IGpzQ2FzdDxKU0FycmF5Kj4oYm91bmRBcmdzKSA6IG51bGxwdHIsIGxl
bmd0aCwgV1RGTW92ZShuYW1lKSkpKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgaGFzT3duTGVuZ3RoUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDI0MjA2ZTQ4Nzk4YzQ5ZTA5MjU2OGZi
NGJmZDg3MDcyZWRlY2MyODEuLjFkNTUxOTZiYzUwOTY5MTQxZWQ3NjJkMDk1NGE1NDhhNWI2ZGVi
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTQzNyw2ICs0
MzcsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZh
bHNlOwogICAgIHYoYm9vbCwgdXNlUmFuZG9taXppbmdGdXp6ZXJBZ2VudCwgZmFsc2UsIE5vcm1h
bCwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIHNlZWRPZlJhbmRvbWl6aW5nRnV6emVyQWdl
bnQsIDEsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZHVtcFJhbmRvbWl6aW5nRnV6
emVyQWdlbnRQcmVkaWN0aW9ucywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoYm9v
bCwgdXNlRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50LCBmYWxzZSwgTm9ybWFsLCBudWxscHRy
KSBcCiAgICAgXAogICAgIHYoYm9vbCwgbG9nUGhhc2VUaW1lcywgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikgXAogICAgIHYoZG91YmxlLCByYXJlQmxvY2tQZW5hbHR5LCAwLjAwMSwgTm9ybWFsLCBu
dWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggODc0MjNmZTVl
YzE3YTQ2M2E1OGExYmE3ZDAyZDU1Y2NjM2EyYjdmNC4uMmVjODRkNTcyYjFmZjFlODI1NzFkN2Y1
ZTU3NDZkNDA4ZjRhNWYzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRGlyZWN0
RXZhbEV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKKyNpbmNsdWRlICJE
b3VibGVQcmVkaWN0aW9uRnV6emVyQWdlbnQuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1
ZGUgIkVycm9yQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJFcnJvckluc3RhbmNlLmgiCkBAIC00
NTksOCArNDYwLDExIEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkK
ICAgICAgICAgbV9zYW1wbGluZ1Byb2ZpbGVyLT5zdGFydCgpOwogICAgIH0KICNlbmRpZiAvLyBF
TkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCisKICAgICBpZiAoT3B0aW9uczo6dXNlUmFuZG9taXpp
bmdGdXp6ZXJBZ2VudCgpKQogICAgICAgICBzZXRGdXp6ZXJBZ2VudChzdGQ6Om1ha2VfdW5pcXVl
PFJhbmRvbWl6aW5nRnV6emVyQWdlbnQ+KCp0aGlzKSk7CisgICAgZWxzZSBpZiAoT3B0aW9uczo6
dXNlRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50KCkpCisgICAgICAgIHNldEZ1enplckFnZW50
KHN0ZDo6bWFrZV91bmlxdWU8RG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50PigqdGhpcykpOwog
CiAgICAgaWYgKE9wdGlvbnM6OmFsd2F5c0dlbmVyYXRlUENUb0NvZGVPcmlnaW5NYXAoKSkKICAg
ICAgICAgc2V0U2hvdWxkQnVpbGRQQ1RvQ29kZU9yaWdpbk1hcHBpbmcoKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODQwNzM2YjY2ZDM0
MzEwZGM0OWI5M2RmMmYyMTljMmFmNjAwNzM2MS4uMWQzMDczNzJhODFjZmJjMTQxYmRlYzIxODE3
ZjQ0ZDkxMDRhOWEzNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0wNCAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIG1ha2VCb3VuZEZ1bmN0aW9uIHNo
b3VsZCBub3QgYXNzdW1lIGluY29taW5nICJsZW5ndGgiIHZhbHVlIGlzIEludDMyIGJlY2F1c2Ug
aXQgcGVyZm9ybXMgc29tZSBjYWxjdWxhdGlvbiBpbiBieXRlY29kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NjMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvbWFrZS1ib3VuZC1mdW5j
dGlvbi1zaG91bGQtbm90LWFzc3VtZS1pbnQzMi1sZW5ndGguanM6IEFkZGVkLgorICAgICAgICAo
YXNzZXJ0KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoZm9vKToKKwogMjAxOS0wNC0wNCAg
U2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBN
YWtlIHRoZSB0ZXN0IGZyb20gcjI0MzkwNiBjYXRjaCB0aGUgdGhyb3duIGV4Y2VwdGlvbnMuCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9tYWtlLWJvdW5kLWZ1bmN0aW9uLXNob3VsZC1ub3Qt
YXNzdW1lLWludDMyLWxlbmd0aC5qcyBiL0pTVGVzdHMvc3RyZXNzL21ha2UtYm91bmQtZnVuY3Rp
b24tc2hvdWxkLW5vdC1hc3N1bWUtaW50MzItbGVuZ3RoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNGFlN2Zk
YmI2NmI3OWE0MGUxY2UyNDliODUwYjUzMTc2ODQ3NWYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9tYWtlLWJvdW5kLWZ1bmN0aW9uLXNob3VsZC1ub3QtYXNzdW1lLWludDMyLWxl
bmd0aC5qcwpAQCAtMCwwICsxLDE4IEBACisvL0AgcnVuRGVmYXVsdCgiLS11c2VEb3VibGVQcmVk
aWN0aW9uRnV6emVyQWdlbnQ9MSIpCisvLyBUaGlzIHRlc3Qgc2hvdWxkIG5vdCBjcmFzaC4KK2Z1
bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCIpCit9Citub0lubGluZShhc3NlcnQpOworCitmdW5jdGlvbiB0ZXN0KGYsIHYsIGMsIGQp
IHsKKyAgICByZXR1cm4gZi5iaW5kKHYsIGMsIGQpOworfQorCitmdW5jdGlvbiBmb28oYSxiLGMs
ZCxlLGYpIHsgcmV0dXJuIHRoaXM7IH0KK2xldCB0aGlzVmFsdWUgPSB7fTsKK2ZvciAobGV0IGkg
PSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxldCBmID0gdGVzdChmb28sIHRoaXNWYWx1ZSwg
MjAsIDMwKTsKKyAgICBhc3NlcnQoZihmb28sIHRoaXNWYWx1ZSwgMjAsIDMwKSA9PT0gdGhpc1Zh
bHVlKTsKK30K
</data>
<flag name="review"
          id="383164"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>